二.为可用性和冗余做考虑

一个可靠的和冗余的存储网络以SAN的设计开始,这已经超越了这个白皮书的范围。但是,一些存储系统设计方面的问题----例如硬盘和RAID组的选择—--是存储系统理所当然的课题。

请记住一点,动态的LUN的迁移,使在初始化应用后再改变RAID和硬盘的类型变得可能。

1. 高可用性的配属

高度的可用性的配属方法,是定义对应用CLARiiON存储系统的最佳实践。The

EMC CLARiiON Open Systems Configuration Guide

概述了配属方法和支持的设备。

2. RAID-level的考虑

大部分CLARiiON存储都使用RAID 1/0或者RAID

5组,因为冗余的striped的RAID类型能提供最好的性能和冗余性。RAID 3

提供了和RAID 5一样的的冗余性(一个单一校验硬盘)。

A. RAID 5

RAID

5最好应用在4-9个硬盘的RAID组里面。更小的组会招致在校验开销上的更高成本。而更大硬盘数的组的主要缺点是在rebuild的时候的数据量的影响。更大的RAID组的rebuild时间会更加长,尽管把大的RAID5组跨越了两个后端的总线上能减小这种影响。Table

5给了对rebuild时间的详细说明。此外,一个更小的组会提供更高层次的可用性,因为显然对比5块硬盘坏2块,10块硬盘坏2块的概率会大得多。

对于那些不能接受可能会因为硬盘故障而导致速度减慢的系统,或者数据的完全性是非常重要的,使用RAID

1/0

B. RAID 1/0

在可用性和冗余性是极为重要的时候,适用RAID

1/0。镜像的RAID比校验配置的冗余性肯定会更加强。此外,一个RAID

1/0只需要两个DAE—--一个对应一个后端总线----这样能让数据的可用性提升到最高可能性级别。“Binding

across DAEs”里有更多的信息。最后,Table 5图解了在rebuild情况下Raid

1/0对比Raid 5的优势。

C. RAID 3

RAID 3的硬盘组可以用5块或者9块硬盘建立。冗余性跟RAID

5一致。但是,rebuild会更快一些,因为rebuild的代码会从RAID3使用的大的后端request

size中得益。

D. 热备份(Hot spares)

更换的算法如下:最小的热备份硬盘,要跟目标里面选的故障的硬盘的大小一致。第二,把所有的热备份硬盘放在同一个loop里面,因为最好用大小相近的硬盘来代替故障的硬盘。任何不在BCC控制下的硬盘(如2Gb的ATA,必须要有他们自己的热备份硬盘)可以为正常的DAE作为热备份硬盘,所以谨慎地规划LCFC/FC混插的环境,来实现最少为每一种类型的硬盘都安排一个热备份。LCFC可以用来热备FC硬盘,但会有明显的速度的降低。对特定硬盘类型的每两个DAE使用一个热备份的原因是凭经验来做的。他们可以放在除系统硬盘外的任何地方。

3. 把RAID组通过总线和DAE绑定

有对老的基于SCSI的系统的工作经验的工程师,会认为需要在校验RAID组里绑定每一个不同硬盘柜里面的硬盘。当每一个盘柜使用的是一条单独的SCSI总线的时候,就会应用这个方法。为可用性考虑是因为SCSI的故障不再适用于光纤。但是,在绑定硬盘的时候,还是有好几个方面需要我们考虑。

A. 跨DAE来绑定硬盘

当绑定的硬盘跨DAE的时候,在现场的一些科目可能会导致很多的顾虑和疑惑。会有性能方面的提升吗?会有冗余方面的提升吗?在两种情形下,这都取决于RAID的配置;而在不同的情形下,这种区别是轻微的。

校验的硬盘组(RAID3,RAID5)

绑定校验RAID组,把每一个硬盘放在不同的DAE并不能提升性能。但是,这个方式可以轻微地提升数据的可用性。但是,这是非常的笨拙的方式;如果真的要求非常高的可能性,那么使用RAID1/0。请参考“binding

across back-end buses”,这里面会提到。

RAID 1/0硬盘组 显然把一个RAID

1/0硬盘组绑定在多于两个DAE的时候,性能并不会得到提升,但这也不会有什么负面的影响。

B. 跨后端总线绑定硬盘

目前所有的CLARiiON系统除了CX3-20和CX300之外,都有多于绑定在DAE一组的双后端光纤总线。一个硬盘组里的硬盘可以来自一条,两条或者多条总线。标准的联接DAE的方式是把总线交替地跨越他们,像DPE和第一个DAE使用bus

0,下一个DAE使用bus 1,等等。

校验的硬盘组(RAID3,RAID5)

10个或者更多的校验的硬盘组可以从跨两个总线绑定当中得到更多的好处,因为这帮助减少了rebuild的时间。例如,绑定一个10个硬盘的RAID5,把5个硬盘放在一个DAE,另5个方在下一个DAE。

镜像的硬盘组(RAID1,RAID1/0)

跨两条总线绑定镜像的RAID组,可以增加可用性,也会减少rebuild的时间。这个方法确保了在两种(很少出现)情形下的双故障数据下数据的可用性:一个DAE或者冗余后端的总线(双端口故障)。绑定这些硬盘以便让每一个镜像组的primary的硬盘在第一个后端总线,而secondary(镜像)硬盘在第二个后端总线。跨总线的绑定也会有很小但是积极的性能影响。

当建立一个RAID组的时候(或者在绑定命令的时候定义一个特定的LUN),使用Navisphere

CLI来跨总线绑定。当指派这些硬盘时,Navisphere

CLI使用硬盘的排序,以createrg 或者 bind 命令来创建

Primary0,Mirror0,Primary1,Mirror1,等等,命令要按这个顺序。硬盘被指派为Bus_Enclosure_Disk型式。以下是一个例子:绑定来自每一个总线的各自硬盘柜里的前两个硬盘:

Navicli –h createrg 55 0_1_0 1_1_0 0_1_1

1_1_1

C. 通过DPE磁盘绑定

在一个完全停电的情景下,SPS(standby power

supply)提供了电池后备电源给SP和系统硬盘。这允许存储系统把写缓存上的内容写入硬盘。

然而,电力到没有系统盘的存储系统的硬盘柜是无法持续的。当存储系统重启的时候,有着显著I/O的LUN将会被检查,使用后台校验流程,来核实又没有任何在进行中的写只完成了部分。后台的校验是一个相当的慢的过程。

但是,如果一个LUN里面的一些硬盘是在系统硬盘(DPE或者第一个DAE,视哪种型号而定)的盘柜和一些硬盘在系统硬盘柜外面的硬盘柜,那么可能会要求rebuild,这是一个对硬盘影响更大的过程。如果影响性能达到一定程度会重启。

为了避免在启动后就rebuild,使用在系统硬盘柜内面或者外面的硬盘,建立硬盘组。如果硬盘组被分开了,遵循以下的方针:

1. 不要把RAID 1的硬盘组分布在系统硬盘柜和其他的DAE。 2.

对于校验的RAID(RAID5,RAID3),确保至少两个硬盘在系统硬盘柜之外。

3. 对于RAID

1/0,确保至少一个镜像(primary和secondary硬盘作为一对)是在系统硬盘柜之外。

D. 热备份的策略

FLARE的驱动会为最低数字(LUN的编号)热备份硬盘来扫描故障硬盘所在的总线。如果那个热备份的硬盘有足够的空间来rebuild故障硬盘的空间,他就会被选中。如果不行,FLARE会继续扫描在那个总线上的硬盘列表,然后再到其他总线,最后另一个SP的所有列表中的热备份硬盘,直到找到一个合适的硬盘。

4. 数据复制的持续性

SnapView,MirrorView和SAN

Copy的使用,已经超出了这个白皮书的范围,但持续性这个概念跟可用性是非常相近的,所以还是有理由在这里强调一下。(参考EMC关于这些其他产品的白皮书)

当使用任何类型(包括备份)的涉及到多个LUN的数据的镜像或者复制时,工程师必须把持续性考虑在内。涉及多个LUN的数据是指那些跨越了多于一个LUN和相互关联的LUN。我们有以下例子:

关系型数据库的组件:数据目录,日志,TEMP,和RBS

在主机卷集里的卷(VERITAS,PowerVolume)

消息数据库的组件

共享的文件系统

多个LUN的持续性取决于存储系统中的特定行为。例如,到一个跨越多个LUN组成的数据库的写操作,必须让这些LUN都要保证持续性。三个在存储设计中必须要达到这个要求的情形是:clone

fractures,snapshot starts, 和mirroring。

MirrorView/A

提供了阵列内持续性组,这可以保证有关联的LUN能跟着一致的split而更新。MirrorView/S有一致的fracture。SnapView提供了一致的Clone的split和一致的Snapshot

Session的开始。

三. 评估存储的需求的大小

存储系统的评估包括了为容量计算正确的硬盘数,为性能计算正确的硬盘个数和正确的存储系统。

1. 容量的计划

现在是确定RAID类型和硬盘组大小的时候了(这会影响校验RAID类型的容量)。如果这个能了解,那么我们就可以做性能方面的计算。EMC员工有工具来确定给定系统的确切的要求容量。这些工具会计算多方面对最终容量有影响的要素,例如把数据的每一个sector都存在一个CLARiiON存储系统来达到更好的数据冗余性。

A. Vault硬盘

在CX系列的存储系统的前5个硬盘包含了Vault。Vault的硬盘跟其他系统里的任何硬盘一样,都可以被使用。但是,Vault硬盘会有更小的使用容量(大概少6.3GB)。当Vault硬盘跟其他非Vault硬盘一起绑定,所有在这个组里面的硬盘会减少容量来匹配Vault硬盘的容量。从容量的利用率上面来看,只绑定Vault硬盘作为一个组(或者几个组)是最有效率的。

B. 真实的硬盘容量

硬盘的容量是要比额定的容量低一些的。这主要是因为生产厂商把1

gigabyte 当成1,000,000,000 byte(基于10

gigabyte)。一台使用基于2进制的时候,1个2进制的gigabyte是1,073,741,824byte。很多客户都会惊奇的发现一个36GB的硬盘只有33GB的容量。

同时,CLARiiON会在每512byte的sector里,使用额外的8个byte作为存储冗余的信息。这些小的偏差会减少使用的容量。

C. 校验或者镜像的保护

使用校验或者镜像来保护数据不受硬盘故障的影响,这样也会减少存储的使用空间。镜像总是需要50%的校验RAID的空间,overhead取决于在组里面的硬盘个数。

2. 性能计划

性能计划或者评估是一门值得考虑的科学。这里描述的步骤只是大体上的的评估。

A. 单凭经验的的方法途径

开始性能的评估的时候,一种单凭经验的方法是使用每一个硬盘的IO/s和MB/s来计算(看table

6)。这是保守的和有意的相对单纯的方法。这必须要注意的是:这是一个精确的性能评估的开始;基于经验的评估可以作为一个快速的设计评估。EMC的员工会有更多精确评估的方法。

Table 6里面的表格假设:

IO/s描述了假设2KB到8KB的随机请求

MB/s(带宽)描述了假设128KB和更大的随机请求

*ATA硬盘在这种数据下,并不推荐作为持续性的随机工作负载,因为他们的工作时间会受到他们特定的MTBF的限制。

快速评估的方法: 1. 确定主机I/O或者带宽负载 2.

计算硬盘I/O或者带宽负载 3. 计算硬盘I/O或者带宽负载需要的硬盘的个数

4. 计算存储系统的个数和类型

记住这些都是按照经验的方法。一个单一的线程应用(例如,一个一次只有对硬盘一个突出的I/O的请求,对一个10K

rpm的硬盘的所有可寻址空间,做了一个8KB的随机读操作)可以达到大概120

IO/s @ 8ms per I/O。同样的硬盘使用12个模拟8KB的线程可以达到215 IO/s

@ 50ms per

I/O。注意在这个图表中,单凭经验的方法得出的是每个硬盘能达到140

IO/s;大部分安装都会有多于一个的线程存在,但仍想要把响应时间保持在20ms以下。对于8KB或者更大的块大小的响应时间敏感的应用,可能会使用120(甚至100)IO/s作为一个更加保守的估计。在很少的例外情形里,非常的随机块大小(比256KB大),可能会造成比几个I/O还少的情况。在很好的运行的顺序访问的情形下,这个速率可能会大于300IO/s,甚至比大I/O还要大。

确定主机的负载

这通常是评估最难确定的部分。很多客户都不知道自己目前的负载,不管被提议的系统的负载。然而对客户来说,最重要的是他们的预计应当尽可能的精确。必须要去做一些评估。

评估必须不仅包括整体的IO/s,还要包括其中多少比例的负载是属于读操作和写操作。加之,主要的I/O大小也是必须要确定下来的。

确定硬盘的负载 必须主要的是Table6里

IO/s的值是硬盘的IO/s。要确定主机I/O负载需要的硬盘IO/s的数目,根据是校验还是镜像的操作来调整:

Parity RAID: Disk IO/s=Read IO/s + 4* Write IO/s Mirrored RAID:

Disk IO/s=Read IO/s + 2* Write IO/s

对于带宽计算,当你期待大和/或者顺序I/O来填充LUN的stripe时,使用以下的方法,写的负载会通过RAID的multiplier而增加

Parity RAID: RAID multiplier is 1+(1/RAID组的硬盘个数)

Disk MB/s=Read MB/s + Write MB/s *(1+(1/(组里的硬盘个数)))

Mirrored RAID: multiplier is 2

Disk MB/s=Read MB/s + Write MB/s *2

举个例子,如果一个校验的组的大小是 4 +

1(组里有5个硬盘)而且读的负载是100MB/s而写的负载是40MB/s:

Disk MB/s=100MB/s + 40MB/s * (1 + (1/5))

=148MB/s

计算需要的硬盘个数 把整体的IO/s或者带宽分摊到Table

6里的每一个硬盘的IO/s或者带宽。这只是一个近似的硬盘个数你需要用来为预计的I/O负载服务的。如果是使用大于8KB的I/O占主导作用的随机I/O,那么增加10%-20%的硬盘的个数。

计算存储系统的数目和类型

当评估完硬盘的个数之后,必须根据这个结果来选择相应的存储系统或者系统的集合来提供相应的性能,容量和价值给客户。

对于那些对性能很敏感的部署,参考Table

4来选择那些有高效率/高性能的硬盘个数最能满足客户需求的存储系统。

通过高效能/高性能硬盘总个数,再根据存储系统自身能提供的相应服务的硬盘个数,来确定使用多少个存储系统。

对于性能不那么重要的部署,使用硬盘柜能达到的最大的硬盘个数。通过硬盘柜最大的支持硬盘数来确定存储系统的个数。

B. 解决性能和容量的需要

系统里面硬盘的个数是由性能和容量的需要来决定的。我们可以使用这种方法来描述:高于确定要达到性能要求的最小的硬盘个数。对于不同的硬盘大小,通过需要达到容量要求来计算硬盘的个数。使用硬盘的个数,不仅要满足性能要求,也至少要满足容量的要求。

3. sizing例子

接下来的例子使用了刚才所描述的程序。

步骤1:确定要求的I/O负载 Client

X有一个需求:要为一个对象的数据库安排10TB的存储。这个应用被设计为执行非常多的随机的8KB的I/O。大致的要求是:

. 70%的随机读操作 . 30%的随机写操作 . 主要的I/O的大小是8KB .

总共的主机IO/s是20,000。这个客户对价格非常敏感,所以使用9个硬盘的RAID5是一个很自然的选择。但是,由于写操作的百分比(30%)比较高,所以RAID

1/0也是可能被考虑的

步骤2:计算硬盘的负载

我们计划使用一个校验的RAID,所以硬盘的负载是: 0.7 * 20,000 + 4 *

0.3 * 20,000 = 38,000 disk IO/s 但是,使用RAID

1/0的硬盘会比较小一些: 0.7 * 20,000 + 2 * 0.3 * 20,000 = 28,000

disk IO/s

步骤3:计算需要的硬盘的个数 对于要达成38,000

IO/s的RAID5的负载,我们需要38,000/180 =212 个硬盘。

如果考虑RAID 1/0,我们只需要28,000/1180=156

个硬盘。对于性价比的想法来看,RAID

1/0在这个情形下是一个更好的选择。

212个硬盘做RAID 5的可使用的容量是[8/9 * 212 * 66GB],大概12TB。

156个硬盘做RAID 1的可使用的容量是[1/2 * 156 * 66GB],大概是

5TB。

一个合理的RAID5的解决方案会是215个硬盘作为数据,一个有15个ATA或者LCFC硬盘的硬盘柜作为备份,5个热备份的,还有5个作为Vault(和归档空间),这样总共是240个硬盘。

因为RAID

1/0的解决方案会要求使用多于300个硬盘来到到容量的需求而且可以承受更多的I/O,一个好一些的解决方案会是使用

156个146GB 4-Gb 15K

rpm的硬盘。增加一个ATA/LCFC的硬盘柜,Vault的硬盘和热备份的硬盘,这样会达到181个硬盘。(所以我们可能要减少一个热备份硬盘以避免一个硬盘柜里面只有一个硬盘的情况出现)

另外一种RAID 1/0的替代的做法是使用更便宜的 146GB 10K rpm 2Gb

的硬盘,此时IO/s要减少到每个硬盘140

IO/s。在这个情形下,必须要仔细考虑DSS和备份操作的带宽,因为后端的loop的速度只有4Gb的一半(loop的速度并不会影响到随机的小block

IO/s,但会对带宽有明显的影响)。ATA硬盘加上热备份硬盘和Vault硬盘会使总共的硬盘数达到225个。

步骤4:计算存储系统的个数和类型

在每一个情形下,一个CX3-40会是一个好的选择。注意RAID

5的解决方案和2Gb RAID

1/0的解决方案,如果要对目前的硬盘数量上再做clone,snap,或者镜像的话,可能就要转换为CX3-80了。4Gb

RAID

1/0方案还能增加四个硬盘柜作为分层的应用(或其他的)。最后的选择会取决于怎么在容量,性能,可用性,增长性还有成本等多方面的均衡考量。

四. 结论

性能,可靠性,冗余性和容量是在选择存储的时候得主要考虑方面。

使用一个CLARiiON的光纤通道存储系统,得到非常好的性能—--这也是很大一部分顾客所需要的—--是相当地简单。要榨干存储系统的最后一点性能,操作员必须能了解到基于主机的影响和RAID配置的geomery(译者注:geometry应该翻译为几何数据,其实就是指的CHS(Cylinder、Head、Sector/Track))。应用的分析和主机内存的配置必须在对存储系统调优之前完成。

可靠性是建立在存储系统里的----拥有着比99.99还要高的可用性。冗余性是很容易实现,但成本会比没有高度可用性的配置高很多。CLARiiON存储系统得大部分冗余性是建立在----双SP,热插拔硬盘,冗余RAID和热备份硬盘。在实际操作中我们还可以选择一些特定的方法和选择RAID的类型。对于成本有考虑的用户,必须对他们解释在配置里面不建立冗余性的成本。RAID

1/0是一个冗余的最佳办法。

确定容量可以通过EMC的工具来直接实现。使用性能白皮书作为一个指引,对给定的I/O的整体轮廓和负载来确定应该要部署的存储系统的数目和类型。

linux内核增加emc拨号功能,[转载]EMC存储最佳实践(五)相关推荐

  1. linux内核打开prntk,操作系统实验一向Linux内核增加一个系统调用.docx

    操作系统实验一: 向Linux内核增加一个系统调用 xx 711103xx 2012年3月18日 一.实验目的 通过实验,熟悉Linux操作系统的使用,掌握构建与启动Linux内核的方法:掌握用 户程 ...

  2. 向linux内核增加新的系统调用,为linux内核添加新的系统调用

    为linux内核添加新的系统调用 作者:李志勇 更多精彩: 更多精彩: 开发平台:x86 ubuntu 目标平台:S3C6410 linux3.4.4 一.    打开内核源码目录下arch/arm/ ...

  3. 【Linux内核分析与应用-陈莉君老师】动手实践-把虚拟内存转换成物理地址

    目录 1.地址转换 2.Linux4级页表 3.64位线性地址 4.实际观察寻页的过程  1.地址转换 进程中不直接对物理地址直接操作,CPU在运行时指定的地址需要经过内存管理单元MMU 转换后才能访 ...

  4. linux内核 quota,磁盘配额(Quota)的应用与实践

    1>什么是Quota 在Linux中,由于是多用户,多任务的环境,所以会有多用户共同使用一个硬盘空间的情况发生,如果其中有少数几个用户大量占用掉了硬盘空间的话,那肯定影响其他用户的使 用权限,因 ...

  5. 【转载】jQuery最佳实践

    jQuery最佳实践 分享按钮 作者: 阮一峰 日期: 2011年8月 4日 上周,我整理了<jQuery设计思想>. 那篇文章是一篇入门教程,从设计思想的角度,讲解"怎么使用j ...

  6. Linux内核有加网速功能吗,Linux下使用有线网络和WiFi能不能叠加网速?网友评论不一...

    有人在Linux操作系统下同时使用有线网络和WiFi,都已经连接上两个不同的网络,看能不能将这两个网络的速度叠加起来?形成一股更快速的网络环境.比如假设一条有线宽带50M,一个WiFi 50M,如果是 ...

  7. linux openssh打补丁,OpenSSH 服务器的 20 个最佳实践–手工升级、打补丁

    前几天安全团队发邮件说其中一台服务器的OpenSSH6.2的版本有bug,需要升级到6.7才行. 于是我赶紧登录到服务器看,在openSuSE里的yast里提供的最新版本就是6.2,如果要强升级到6. ...

  8. linux内核4.0,新闻|Linux内核4.0功能:实时内核补丁,支持PS3

    Linux Torvalds 在Linux内核邮件列表里发布了Linux内核新的稳定版. Linux 4.0,代号为'Hurr durr I'm a sheep',带来了一小系列新硬件支持,驱动改进, ...

  9. linux内核配置系统浅析(转)

    随着 Linux 操作系统的广泛应用,特别是 Linux 在嵌入式领域的发展,越来越多的人开始投身到 Linux 内核级的开发中.面对日益庞大的 Linux 内核源代码,开发者在完成自己的内核代码后, ...

最新文章

  1. nvJPEG Codec库
  2. Git学习系列之一些常用的Git命令收录更新ing
  3. 3.APC的挂入过程
  4. SQL语句--INSERT INTO SELECT 语句用法示例
  5. 设置MySQL的字符编码
  6. pythondatetime小时_使用python从时间戳中提取小时
  7. 计算机硬件结构控制信息,计算机硬件的基本结构
  8. mongodb副本集搭建
  9. Linux环境下的LD_PRELOAD:库预加载
  10. Rust笔记1 rust基本概念
  11. linux下Jdk版本切换
  12. pyspark调用spark以及执行带in语句参数的hql示例
  13. 系统设计-HIPO图
  14. 实现阿里云DDNS解析
  15. 数字图像处理 自学笔记 (武汉大学 贾永红)
  16. 论文阅读:Enhanced Pix2pix Dehazing Network
  17. 关于修改思科WLC SSID
  18. OBM-业务高可用性
  19. 不是吧!做了3年Android还没看过OkHttp源码?好吧,带你彻底理解一波!
  20. Cherno_游戏引擎系列教程(1):1~16

热门文章

  1. C语言 五子棋 图形界面 人机对战
  2. 清华大学之计算机科学与技术,冯建华(清华大学计算机科学与技术系教授)_百度百科...
  3. Cesium粒子特效js封装(火焰、水枪、爆炸、喷雾、烟),包含demo图片
  4. 粤传媒构建大数据全媒体平台
  5. 用友 SAP 金蝶 季报
  6. 用Java实现的简单人品测试程序
  7. 『甲子加速器』免费送一个月VIP会员活动
  8. 远程安装无法退出电脑管家
  9. python操作xls文件_【转】使用Python操作XLS文件
  10. 9. MySQL EXPLAIN解析