RAID(Redundant Array of Independent Disks):独立冗余磁盘阵列,简称磁盘阵列。
RAID的主要实现方式分为硬件RAID方式和软件RAID方式。
硬件RAID:采用集成了处理器的RAID适配卡(简称RAiD卡)来说实现的。它有自己的控制处理器、I/O处理芯片和存储器,减少对上机CPU运算时间的占用,塔高数据传输速度。
软件RAID:安全依赖于主机的CPU,没有额外的处理器和I/O芯片,软件RAID需要占用CPU处理周期,并且依赖于操作系统。
基于RAID技术,有两个基本的概念:
RAID采用校验、镜像的方式对数据安全提供保护。
注:硬盘容量大小。硬盘接口类型,硬盘速率要求都要保持相同。
传统的RAID数据保护主要采用的镜像和校验。
XOR校验的算法—–相同为假,相异为真。
0⊕0=0;0⊕1=1;1⊕0=1;1⊕1=0;
RAID技术将多个单独的物理硬盘以不同的方式组合成一个逻辑硬盘,提高了硬盘的读写性能和数据安全性,根据不同的组合方式可以分为不同的RAID级别。
常用RAID级别有:RAID0、RAID1、RAID3、RAID5、RAID6、组和RAID:RAID10、RAID50。
RAID0:数据条带化,无校验。它代表了所有RAID接班中最高的存储性能,RAID 0 至少使用两个磁盘驱动器。
优点:在读的过程中是多块硬盘同时进行工作。读写性能是最高的。磁盘利用率最高。
缺点:没有冗余。阵列中某一个驱动器发生故障,将导致其中的数据丢失。
RAID 1:数据镜像,无校验。RAID 1使用两组磁盘互补镜像,速度没有提高,但允许单个磁盘故障,数据可靠性最高。
优点:可以允许有一份数据可丢失。
缺点:读写性能不如RAID 0。但读性能与RAID 0相似。写的性能比RAID 0 有很大差距。
RAID 3:数据条带化读写,校验信息存放 + 专用硬盘。当N+1个硬盘中的其中一个硬盘出现故障时,可以通过硬盘恢复数据。
优点:冗余较好。
缺点:在校验过程汇中,容易出现校验盘负载过大,使整个校验盘失效。在数据写入时,是写入最慢的,每次写入都要与校验盘校验,校验盘也成为这个存储的瓶颈。数据读取相对较快,采用多块硬盘同时读取。
RAID 5:数据条带化,校验信息分布式存放。分布式奇偶校验码的独立磁盘结构。校验信息均匀的分部在阵列所属的硬盘上,没块硬盘上既有数据信息也有校验信息。
优点:校验信息在每块盘上,相对出故障的概率更小。数据写入相对比较快,所有盘都参与进来做校验。数据读取相对以比较快,采用条带化存储。可靠性高。
缺点:当有两块磁盘出现故障时,磁盘失效。
RAID 6:带有两个校验的独立磁盘结构,采用两种奇偶校验方法。需要至少N+2(N>2)个磁盘构成阵列。一般用在数据可靠性,可用性要求高的应用场合。
常用的RAID6技术:RAID6P+Q、RAID6DP。
RAID 6P+Q:
RAID6P+Q需要计算出两个校验数据P和Q,当有两个数据丢失时,根据P和Q恢复出丢失的数据。相当于两次RAID5的过程。校验数据P和Q是由以下公式计算得来的:
P=D0⊕D1⊕D2……
Q=(α⊗D0)⊕(β⊗D1)⊕(γ⊗D2)……
优点:可以允许有两块盘同时出现故障,而不影响整个数据的丢失。数据磁盘的可丢失率为2.
缺点:因为要做两次校验,所需写入性能相对一般。数据读取比较快。
RAID 6 DP:
DP-DoubleParity,就是在RAID4所使用的一个行XOR校验磁盘的基础上又增加了一个磁盘用于存放斜向的XOR校验信息。
横向校验盘中P0—P3为各个数据盘中横向数据的校验信息
例:P0=D0 XOR D1 XOR D2 XO RD3
斜向校验盘中DP0—DP3为各个数据盘及横向校验盘的斜向数据校验信息
例:DP0=D0 XOR D5 XOR D10 XOR D15
优点:可以允许有两块盘同时出现故障,而不影响整个数据的丢失。数据磁盘的可丢失率为2.
缺点:数据写入过程比较慢。读取比较快。
RAID10:是将镜像和条带进行组合的RAID级别,先进行RAID1镜像然后再做RAID0。RAID10也是一种应用比较广泛的RAID级别。
RAID50:是将RAID5和RAID0进行两级组合的RAID级别,第一级是RAID5,第二级为RAID0。至少需要6块硬盘。
从可靠性、性能和成本简单比较各RAID级别的优劣(相对而言),供在实际项目中选择时参考。
空间利用率:
RAID5明显优于RAID10
可靠性:
RAID5低于RAID10
性能:
业务是一些大文件的读写操作时,RAID5的性能会明显好于RAID10
业务以随机的小数据块读写为主的时候,RAID10是最优的选择
假设由5块硬盘组成的RAID5,每块盘同一条带数据如下:
如果有一个数据要写入,假设在第1个磁盘上写入的数据为0111。那么整个RAID5需要完成写入的过程分为:
由上述几个步骤可见,对于任何一次写入,在存储端,需要分别进行两次读+两次写,所以说RAID5的Write Penalty的值是4。
常见RAID级别的Write Penalty值:
在实际存储方案设计的过程中,计算实际可用IOPS的过程中必须纳入RAID的写惩罚计算。
计算的公式如下:
物理磁盘总的IOPS= 物理磁盘的IOPS×磁盘数目
可用的IOPS= (物理磁盘总的IOPS×写百分比÷RAID写惩罚) + (物理磁盘总的IOPS×读百分比)
假设组成RAID5的物理磁盘总共可以提供500 IOPS,使用该存储的应用程序读写比例是50%/50%,那么对于前端主机而言,实际可用的IOPS是:(500 ×50% ÷4)+ ( 500 * 50%) = 312.5 IOPS
热备(HotSpare):当冗余的RAID阵列中某个磁盘失效时,在不干扰当前RAID系统正常使用的情况下,用RAID系统中另外一个正常的备用磁盘顶替失效磁盘。
热备盘要求和RAID组成员盘的容量,接口类型,速率一致,最好是采用同一厂家的同型号硬盘。
预拷贝:系统通过监控发现RAID组中某成员盘即将故障时,将即将故障成员盘中的数据提前拷贝到热备盘中,有效降低数据丢失风险。
重构:RAID阵列中发生故障的磁盘上的所有用户数据和校验数据的重新生成,并将这些数据写到热备盘上的过程。
RAID由几个硬盘组成,从整体上看相当于由多个硬盘组成的一个大的物理卷。在物理卷的基础上可以按照指定容量创建一个或多个逻辑单元,这些逻辑单元称作LUN,可以做为映射给主机的基本块设备。
RAID 2.0+使得各硬盘均衡分担负载,不再有热点硬盘,提升了系统的性能和硬盘可靠性。
LUN上的数据可以根据数据的活跃度,自动调整,迁移到存储池中的不同存储层。