RAID 10
带条带化的镜像。从技术上来说,RAID 10是复合RAID,结合了无校验码条带(RAID 0)和RAID 1。
在阵列中只有两块驱动器的情况下,许多厂商也使用RAID 10(或RAID 1+0)这个术语,不过实际上这种阵列只是RAID 1,因为只有阵列中拥有四块以上驱动器条带化才会开始运作。通过RAID 10,驱动器必须是一对一对地添加,因此阵列中驱动器的数量只可能是偶数。
RAID 10可以承受占驱动器总数一半的驱动器故障和损失,同时最多只能承受每对驱动器中一个驱动器的故障和损失。RAID 10没有校验码计算,这使得它相对于RAID 5或RAID 6有性能上的优势,对阵列驱动器计算性能的要求也更低。在所有常见的RAID类型中,RAID 10提供了最高的读取性能,因为在读取操作中,阵列中的所有驱动器都可以同时使用。但是它的写入性能要更低。RAID 10的容量计算和RAID 1相同,即(n*s/2)。
在如今的企业中,无论RAID软件或硬件是否已经实施,很少有IT部门需要考虑上述四种基本设置以外的驱动器设置。以前,RAID阵列决策中最主要的考量就是可用容量。这是因为当年驱动器比较贵而且容量比较小。
如今,驱动器都很大,存储容量基本上不是问题,至少不像几年前那样。驱动器的成本也下降了许多,因此购买更多的驱动器以实现更高的冗余度也基本上不成问题。当容量是主要顾虑的时候,RAID 5是比较受欢迎的选择,因为和其他阵列类型相比,RAID 5损失的容量比例最小。
如今,我们有其他方面的顾虑,主要是数据安全性和性能。花稍微更多一点钱来确保数据保护是比较明智的选择。RAID 5只能承受一块驱动器的故障和损失。对于拥有三块驱动器的阵列,RAID 5的安全性只比RAID 1差一些。
我们可能可以接受三块驱动器中损失一块。三块驱动器损失一块和两块驱动器损失一块相比好像没那么让人害怕。但是如果是更大的阵列呢,比如说16块驱动器?如果我们只能承受16块驱动器中损失一块,那我们有理由怀疑系统的可靠性。
RAID 6可以填补这个安全性空白。RAID 6在用于大型阵列的时候,不会牺牲多少存储容量和性能,同时还提供可以承受任意两块驱动器故障/损失的保护能力。带校验码的条带化RAID的支持者经常引用这些数字来安抚客户的管理层,称RAID 5/6可以提供足够"物廉价美"的存储子系统。但是用户还有其他因素需要考虑。
对RAID 10的分析
在RAID的可靠性--这个也是很少被讨论的话题--讨论中,几乎完全被忽视的一个问题就是校验码计算的可靠性。
在RAID 1或RAID 10的情况下,系统不需要"计算"来创建带校验码的条带。系统以稳定的方式简单地写入数据。当一块驱动器发生故障的时候,它的伙伴会接过工作负荷,在替换 驱动器之前,驱动器性能会有一些下滑。系统没有会影响现有驱动器成员的重建流程,也没有校验条带重建流程。
带校验码的RAID阵列需要有一定的计算操作来算出操作的数据是什么以及应该将哪些数据放到驱动器。虽然这种计算非常简单,但是有出错的可能性。
如果RAID 1或RAID 10阵列控制发生故障,从理论上来说,系统有可能在驱动器的内容中写入坏数据。但是由于控制器本身没有进行驱动器变动的进程,因此这种情况发生的可能性非常小,因为除了创建镜像外,系统没有"重建"流程。
当带校验码的阵列执行重建操作时,它们会执行复杂的进程来逐步审视阵列的整个内容,然后将丢失的数据写回到被替代的驱动器。就其本身来说是个简单的步骤,应该不需要担心。
我和其他一些人首先注意到的是稍微不同的情境,即由于与阵列的连接器松动所导致的磁盘连接性的丢失。随着时间的流逝,服务器中的驱动器有可能会松动,尤其是持续服务好几年以后。
在极端的情况下,如果阵列控制器认为一个或更多的驱动器相继发生故障,驱动器中的好数据会被坏校验数据所覆盖,然后返回在线并进行重建。在这种情况下,驱动器本身其实没有发生故障,也没有数据丢失。理论上来说其实只要重新调整一下驱动器的位置就可以了。
在 热插拔系统中,在故障磁盘移除和替换的基础上,驱动器重建的管理经常是自动的。因此,在没有人工干预的情况下,这种丢失和替换驱动器的流程可能会发生-- 而重建流程会开始。在这种流程下,驱动器系统会蒙受风险,如果驱动器阵列再发生这种情况,根据驱动器的状况,系统可能会开始条带化坏数据,并覆盖正常的文 件系统。
对于服务器管理员来说,最痛苦的莫过于看到没有驱动器故障的系统仅仅因为不必要的重建操作而丢失整个阵列。
理论上来说,这种情况不应该发生,而管理员应采取措施来防止这类事件发生。但是判断底层驱动器控制器的情况,判定驱动器当前和过去的情况,以及判断驱动器所承载的数据的质量并不是那么容易,还是有可能发生错误。
虽然这种事情发生的概率不高,但是它还是有发生的可能,并使得RAID 5和RAID 6系统的风险计算几乎变得不可能。除了阵列可以容许的驱动器故障/损失数量外,我们必须考虑校验码错误的风险。随着驱动器变得更加可靠,校验码错误风险显得更加醒目。
此外,RAID 5和RAID 6校验码需要计算,带来了系统负担。校验码的计算通常是由专门的RAID硬件来执行的。这种计算带来了驱动器子系统的延迟性,不过延迟性的大小很大程度上 取决于硬件与软件的设置。这使得我们几乎无法比较RAID之间的性能水平,因为每种设置都是独一无二的。
如今,RAID决策中最大的问题就是我们可以方便地获得有关存储效率和驱动器容错的指标,但是有关可靠性和性能的指标却几乎无法获得。这里面隐藏的危险是人们经常关注那些可以方便衡量的因素而忽视那些无法方便衡量的因素,尽管这些无法方便衡量的因素有可能带来重大影响。
所有类型的RAID都有自己的立足之地,关键是考虑使用背景并对风险有完整的理解。我们应该争取从现在行业中广泛使用的RAID 5转变到RAID 10。驱动器现在很便宜,而数据损失所带来的成本很昂贵。
from:
http://tech.watchstor.com/storage-module-121402.htm