1、RAID的基本类型
RAID主要有几种级别—-RAID 0,RAID 1,RAID 5,RAID 6,RAID 10
RAID 0:条带化的磁盘阵列,没有容错能力,但可使用所有硬盘空间。
RAID 1: 两块硬盘的磁盘镜像,允许坏任一块,空间的利用率只有一半。
RAID 5:带奇偶校验的条带化,支持三块以上硬盘,允许任坏一块,空间利用率为(N-1)/N。 (就是有一块盘算作备用)
RAID 6:与RAID 5相比,RAID 6增加了第二个独立的奇偶校验信息块。两个独立的奇偶系统使用不同的算法,数据的可靠性非常高,即使两块磁盘同时失效也不会影响数据的使用。但RAID 6需要分配给奇偶校验信息更大的磁盘空间,相对于RAID 5有更大的“写损失”,因此“写性能”非常差。
RAID 10:这个说起来就比较浪费了,可利用硬盘空间只有N/2,每块硬盘都有一个备用盘,不过最不容易坏。
2、RAID热备盘(Hot Spare)工作模式:
Local Spare 特定热备:针对某一RAID组,只有该组硬盘出现问题后才启用恢复。
Globe Spare 全局热备:针对所有RAID组,只要某一个RAID组出现问题就进行恢复。
Enclosure Spare 机框热备:针对盘柜,只会作用于该磁盘所在盘柜,当该磁盘所在盘柜中RIAD组故障才进行恢复。
以RAID5为例。当RAID5+1组(最多允许故障2个盘)中的1块硬盘损坏、热备盘自动起用时,需要用RAID5阵列中未损坏的硬盘对热备盘进行数据重建。注意在数据重建过程中不能插拔阵列中的非损坏硬盘!一旦正常开始数据重建,我们就可以更换损坏的硬盘了,更换后的硬盘会自动成为新的热备盘。在数据重建的过程中,RAID纪要承担大量的奇偶校验计算读写,同时还要承担业务系统自身的读写任务,因此在数据重建的过程中,是RAID组硬盘风险最严峻的时期。为了降低风险,必须要减少数据重建的时间,那就意味着一方面要合理控制RAID组的硬盘数量,进而减少奇偶校验的计算时长,另一方面也可以采用RAID5+2(最多允许故障3个盘),多配置1个热备盘,进而增加RAID组的强壮性,或者可以考虑RAID6,RAID6比RAID多一块校验盘。
3、RAID阵列的参数分析
我们将详细阐述RAID阵列和潜在磁盘技术的这些参数。分别在什么时候采用SAS、SATA、FC或SCSI?部署存储阵列时,是否还有其它衡量标准,如每个控制器拥有几个驱动器时,效果最佳?供应商提供的其它性能规范呢?
供应商的数据手册只是告诉你需要了解哪些有关存储阵列和磁盘驱动器的参数:原始容量、吞吐量(通常以MB/sec计算)、IOPS、可靠性(MTBF)、驱动器种类(SAS、SATA、FC等)。大多数存储阵列在前端具有光纤通道接口(有一些提供无限宽带),也可能是在磁盘端具有FC、 SATA或SAS。只有JBOD(简单磁盘捆绑)阵列支持RAID。如果你没有SAN,那么你的存储环境通常包括DAS(直接附属存储),也就是指服务器里的内部驱动器或附属在一台或两台服务器中的SCSI RAID阵列。
RAID本质上是一组磁盘,通常具有奇偶校验或分条功能,或者两项功能兼备。奇偶校验是指磁盘中数据块的冗余,分条功能可以提高单个磁盘的速度,增加消息源,其性能优于单个驱动器。每种RAID都可以在可靠性、性能和成本之间达成平衡。(你选择的冗余级别可能会耗费你许多可用的容量。)
RAID的某些方面会影响吞吐量或IOPS。(请记住:你需要较高的IOPS性能,满足数据库、邮件等延迟敏感的应用程序)。RAID的性能在驱动器发生故障时会受很大影响,这是因为RAID控制器会尽力利用通用型热备援硬盘,重新构建RAID群组。
等等,Joel!我只购买了1 TB容量的驱动器。你说我拥有2.7 TB的可用容量,这是什么意思?
可用容量 VS 原始容量。你需要分配的容量不是数据手册中描述的容量。由于磁盘分区或“开销”等原因,750GB的SATA 驱动器中可能只有690 GB可用。而1TB的驱动器可能只有900GB可用。
RAID种类也会影响可用容量。大多数RAID阵列可以让你拥有一个或多个通用型热备硬盘, RAID群组中的一个驱动器发生故障,就会有一个磁盘取而代之,这样磁盘发生故障时,驱动器上就能立即建立冗余。计算可用容量时,别忘了减去热备硬盘的驱动器容量。
你说我们只有200 MB/sec的速度,这是什么意思?数据手册上说是800 MB/sec的RAID。
你的SAN存储传输的性能各不相同,取决于数据访问方式,如连续顺序读操作、随机读操作、连续顺序写操作、随机写操作以及几种联合使用。不要担心——你不用对每个LUN都做出基准报告,但是,如果你需要解决具体的应用程序问题,就应该做出基准报告。除非你是在部署具体的应用程序,否则可以联合使用上述数据访问方式。
请记住一件事。对于RAID阵列,性能最差的情况就是随机写操作,最佳情况则是连续顺序读操作。猜猜供应商的数据手册中会主要突出哪项。
控制器中最多能有几个驱动器,通常应根据具体情况而定,驱动器数量极有可能“过多”。你需要弄清楚:性能达到最佳时,需要多少驱动器;添加多少驱动器后,性能开始受到影响。(这只是模块存储存在的问题之一;大型企业的阵列支持大量驱动器。)在部署SAN磁盘需求时,我建议从DBA或邮件管理员那了解具体要求。
驱动器种类
如何判断你的环境需要哪种驱动器?以下述方式对容量需求进行分类:
第一类是IOPS敏感的应用程序。第二类是吞吐量敏感的应用程序(如视频流、视频编辑、备份到D2D或VTL中)。你的基础文件服务器、web服务器、打印机、个人驱动器空间和存档空间属于存档类。
对于数据库、邮件等事务处理程序,你需要把服务器的容量需求归入IOPS敏感的应用程序。建议:15K SAS或FC 磁盘等。如果你要决定RAID种类,计算可用容量,发现你需要5个300GB 15K RPM SAS或FC驱动器,才能利用那些容量,你最好采用10个15K 146GB SAS或FC驱动器。驱动器数量增加一倍,你就具有更多的IOPS;而且,10个15K 146GB驱动器的花费低于5个300GB的驱动器。
如果你的存储环境较大,需要大量驱动器,使用300GB 15K驱动器会更好些,因为你已经有足够的驱动器获取IOPS,能充分利用容量。如果你需要满足一定量的IOPS,考虑下述性能,能帮你初步满足这些需求。你可能会发现,你需要20个76GB 15K驱动器。你的RAID群组可能没这么大,那么你需要多个RAID群组,集成RAID群组的人员应该通过存储资源,了解服务器如何利用RAID。(RAID群组中驱动器越多,发生故障时所需的重建时间越长。)
视频编辑、视频流、备份和特定的文件服务器属于吞吐量敏感的应用程序。(工作负荷如果对存储资源具有“同时性”需求,那么可能需要10K或 15K的SAS或FC驱动器,但是7.2K RPM SATA驱动器在配置合适的控制器后,也能传输足够的性能。)我曾见过800MB/sec的连续顺序写速度,发生在存储服务器利用新型SATA RAID控制器时。请注意:如果你的web、文件、打印服务器对速度或IOPS没有要求,你应该把它们归为深层廉价存档型应用程序。可能是750GB或 1TB 7.2K RPM SATA驱动器。我也推荐在SATA存储解决方案中使用RAID 6,因为根据厂商对平均故障时间间隔的统计,SATA故障率是SAS或FC的2倍。
RAID选择
如果你希望你的存储解决方案具有高可用性,你就需要一定的冗余级别和校验级别,从而在一个或多个驱动器发生故障时保护数据。你也需要平衡分条功能(RAID 0),群集各个磁盘驱动器的性能,实际中还需要结合奇偶校验和分条技术。最后,采用RAID 50 (5+0 或 0+5) or RAID 10 (1+0 或 1/0)。我们从重建期和故障期的速度、空间利用率以及性能等角度,比较各种RAID级别(RAID-1/0、RAID-5、RAID 50 和RAID-6)。
RAID种类比较
RAID-1/0是指数据在镜像(RAID-1)组中分条(RAID-0)。(RAID-0-1不同于RAID-1/0;对于 Microsoft Exchange数据,我建议不要使用RAID-0-1。)采用ID-1/0后,事务性能良好,这是因为镜像中的磁盘都能对读请求作出反应。奇偶信息都不需要校验,这样能有效实现磁盘的写操作。镜像组中的磁盘必须具有同等的写操作性能。
如果RAID-1/0阵列中某个磁盘发生故障,写操作性能不受影响,因为镜像中的磁盘仍能进行写操作。读操作会受到一定程度的影响,因为只有一个磁盘对读操作有反应。替换了发生故障的磁盘后,镜像就能重新建立,而数据必须复制或者重建。但是,你的磁盘容量减小了一半,因为你创建了“1”,磁盘中就会产生冗余“1”。
RAID-5具有奇偶校验功能,能在磁盘发生故障后,利用剩余数据重新构建数据。数据写在RAID-5阵列上后,由于每个I/O都需要进行写操作,I/O开销增加了4倍;奇偶校验会消耗大量的控制器和服务器资源。采用RAID-5后,事务性能良好,尤其是采用存储控制器校验奇偶时更是如此。
RAID-5阵列中磁盘发生故障时,阵列降级,性能降低,延迟增加。之所以会发生这种情况,是因为大多数阵列在所有的磁盘阵列中平均传输校验信息,结合剩余数据块,就能实时重建数据。读写操作都需要访问多个物理磁盘,才能重新在故障磁盘中构建数据,因而故障发生时,RAID-5阵列延迟增加,性能降低。
替换了发生故障的磁盘后,可以利用奇偶校验和剩余数据块重新构建丢失的数据,但是可能需要花费几天的时间。如果在恢复数据或重建数据时,RAID-5阵列中又有一个磁盘发生故障,那么阵列也会随之丢失。RAID-6就是为了解决这一问题。
RAID Levels 0+5 (05)和5+0 (50)技术结合了数据块分条功能和分布式奇偶校验功能。RAID 05和50形式的大型阵列融合了块分条、RAID 5的奇偶校验以及RAID 0的直接块分条技术。RAID 05是一种RAID 5阵列,由一些分条的RAID 0阵列组成。RAID 05不如RAID 50普遍,RAID 50是一种RAID 0阵列,在RAID 5中分条。RAID 50和05通过添加RAID 0提高了RAID 5的性能,尤其是写操作性能,比单级别的RAID具有更好的容错性能,尤其是在配置了RAID 50后。RAID 05和50的大部分特征与RAID 03和30相似。在小型文件的事务环境中,RAID 05和50比RAID 03和30更加常用。如果你在编辑视频文件,我建议你首先考虑RAID 03和30。
RAID-6比RAID-5多了一个奇偶校验块,数据保护功能是RAID-5的2倍,但是写操作的性能也降低了。随着物理磁盘越来越大, RAID重建时间越来越长,如果重建过程发生不可更改的错误,或者重建过程阵列群组中有第二个磁盘发生故障,RAID-6或许能防止LUN出现故障。由于磁盘容量的原因,一些供应商支持RAID-6,不支持RAID-5.
为了达到Exchange 2007对既定容量的需求,实现IOPS目标,RAID-5可能比RAID-10需要更多的磁盘。
最后,性能取决于驱动器、RAID群组配置和RAID种类的功能特征。在挑选RAID-5(或RAID-6)时,由于RAID 5的局部分条写操作或RAID 6的双分条写操作,主机IOP需要实现4倍的操作。操作需要对驱动器进行奇偶性读取和验算,同时对驱动器和奇偶性进行写操作,使驱动器的有效IO速率降低四分之一。
选择一种RAID
要选择一种RAID,你需要平衡对容量、吞吐量、事务I/O和故障/重建性能的需求。RAID-1/0是数据库和邮件的理想配置,与大容量磁盘协作良好。在你的环境中,读操作占的比例是否较大?是的话,就采用RAID-1/0。在驱动器出现故障时,RAID-1/0能保持性能的一致性。
对于RAID-5和RAID-6,重建性能对存储吞吐量具有重要影响,使吞吐量几乎减少一半,具体按照存储阵列和配置而定。在工作时间之外进行重建,可以减少这种性能影响,但是又得牺牲可靠性。在群集连续复制(CCR)环境中,你可以将Mailbox server迁移到被动节点,从而使其成为主动节点。如果这两种方法都不可行,在架构中应该设计额外的I/O吞吐量,在工作时间提供RAID-5或 RAID-6的重建条件。这种额外的I/O吞吐量可以达到非故障状态下I/O吞吐量的2倍。
如果你的备份解决方案(VTL或D2D)需要维持一定量的数据吞吐量,你就得考虑需要多少驱动器资源,才能维持“连续、顺序写操作”的性能水平。如果你的RAID阵列能够根据规格处理350 MB/sec的连续、顺序写操作,就可以简单地将控制器中的平衡负荷写入磁盘资源中。你需要保证驱动器数量足够多,阵列性能达到最优。通常情况下,你需要 2到3“盘”阵列,才能完成这项工作。计划为每个“通道”(RAID阵列中通向RAID控制器的数据路径)创建RAID群组。因此,如果你具有双控制器的 RAID阵列,你就需要使RAID群组在两个控制器之间平均分配。