RAID 10作为磁盘阵列技术中的新生儿,因为其比较强的容错能力和硬盘使用率,现在正成为企业主流存储选择之一。
>当时,RAID是解决我们存储问题的灵丹妙药。通过RAID,我们可以将文件系统扩展得更大,获得更高的吞吐率,甚至还可以增加冗余度以便让我们可以承受磁盘损失的风险–这种风险在这段时间发生得尤其经常。
>随着NAS(网络附加存储)和SAN(存储局域网)设备的兴起,我们已经不是很需要那种深入到物理存储然后调整物理存储以满足系统需求的技能了。这不是一件好事。我们仅仅是将存储卸载到外部设备,这并不能改变我们需要深入理解存储的事实,我们还是需要在理解的基础上调整存储以满足系统的特定需求。
>过去五到十年来,人们似乎误以为RAID某种程度上相当于系统备份。其实它不是。RAID是一种容错形式。
>备份和容错是不同的概念。备份让你可以在灾难发生后恢复数据。容错是减少灾难发生的概率。你可以想象成容错是在悬崖顶部立一条护栏,而备份是在悬崖底部设立一座医院。护栏和医院都是你想要的,但是它们是完全不同的事物。
>一旦我们开始在驱动器上实施RAID,无论是本地连接的还是存储网络上的远程设备,如今的我们可以根据业务需要选择四种主要的RAID解决方案:RAID 1(镜像);RAID 5(带校验码的条带化);RAID 6(带双校验码的条带化);RAID 10(带条带的镜像)。
>市场上还有其他类型的RAID,比如RAID 0,不过如果你真正理解你的驱动器子系统需求的话,你就知道RAID 0只适用于很罕见的场合。RAID 50和51也被人们所使用,但是更加少见。十年前,RAID 1和RAID 5是很常见的,但是如今我们有更多的选择。
>RAID类型
>现在我们一个一个来分析这些RAID,并讨论基本的数据。在我们的例子中,我们使用”n”来表示阵列中驱动器的数量,用”s”来表示单个驱动器的大小。通过这些符号,我们可以描述任何阵列的可用存储空间,让存储容量的比较更加方便。
>RAID 1
>在这种RAID类型中,驱动器被镜像。如果你有两个驱动器,那么它们同时一起做所有事情,也就是”镜像”。镜像可以非常稳定,因为它的流程非常简单,但是和完全不使用RAID的情况比起来,它需要你购买双倍的驱动器,因为你要将第二个驱动器指定为冗余驱动器。
>这种RAID的好处就是你可以确保你在磁盘上写入的每个数据都被重复写入,从而达到数据保护的目的。通过RAID 1,我们的可用容量计算是(n*s/2)。RAID 1所能提供的相对于非RAID驱动器的性能提升很小。RAID 1的写入速度和非RAID系统相当,而读取速度在大部分情况下差不多是非RAID系统的两倍,因为在读取操作过程中,驱动器可以并行地访问,从而提高了吞吐率。RAID 1限定于双驱动器设置。
>RAID 5
>带校验码的条带化。在这种类型的RAID中,数据通过复杂的条带写入到阵列中的所有驱动器,同时分布式校验块留在所有驱动器上。通过这么做,RAID 5可以使用指定大小的三块以上磁盘的阵列,而且只牺牲与单个校验磁盘相当的存储容量。但是校验码是分布式的,它并不单独存在于任何一块物理磁盘。
>鉴于其成本经济性,RAID 5经常被使用。在大型阵列中,RAID 5所带来的容量损失是比较少的。和镜像不同,带校验码的条带化需要计算每条写入条带,这带来了一些系统开销。因此,RAID 5的吞吐量并不是那么容易计算,很大程度上需要依赖于系统在进行校验码计算时候的计算能力。
>计算RAID 5的容量很容易:就是((n-1)*s)。一个RAID 5阵列可以承受阵列中任何单个磁盘的故障和损失。
>RAID 6
>带双校验码的冗余条带化。RAID 6和RAID 5很像,不过使用的是两个校验块而不是一个校验块,从而提高了对抗磁盘故障的保护能力。
>RAID 6是RAID家族的新成员。RAID 6是在几年前在其他的RAID类型标准化后加入的。RAID 6比较特殊,因为它可以承受阵列中任意两块驱动器的故障,并同时防止数据丢失。但是为了提高冗余度,RAID 6阵列需要牺牲阵列中相当于两块驱动器的容量,并要求阵列拥有最少四块驱动器。我们可以用((n-2)*s)来计算RAID 6的可用容量。
>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损失的容量比例最小。
>如今,我们有其他方面的顾