RAID基本概念与技术原理
RAID基本概念:
RAID(Redundant Array of Independent Disks):独立冗余磁盘阵列,简称磁盘阵列。
RAID的实现方式:
RAID的主要实现方式分为硬件RAID方式和软件RAID方式。
硬件RAID:采用集成了处理器的RAID适配卡(简称RAiD卡)来说实现的。它有自己的控制处理器、I/O处理芯片和存储器,减少对上机CPU运算时间的占用,塔高数据传输速度。
软件RAID:安全依赖于主机的CPU,没有额外的处理器和I/O芯片,软件RAID需要占用CPU处理周期,并且依赖于操作系统。
RAID技术:
基于RAID技术,有两个基本的概念:
- RAID采用分条带,并行的方式进行存储。更有效的数据组织。
- RAID采用校验、镜像的方式对数据安全提供保护。
条带:磁盘中单个或者多个连续的扇区构成一个条带。它是组成分条的元素。
注:硬盘容量大小。硬盘接口类型,硬盘速率要求都要保持相同。
分条:同一磁盘阵列中的多个磁盘驱动器上的相同“位置”(或者说是相同编号)的条带。
传统的RAID数据保护主要采用的镜像和校验。
XOR校验的算法—–相同为假,相异为真。
0⊕0=0;0⊕1=1;1⊕0=1;1⊕1=0;
RAID组的四个状态:
RAID技术与应用
RAID级别:
RAID技术将多个单独的物理硬盘以不同的方式组合成一个逻辑硬盘,提高了硬盘的读写性能和数据安全性,根据不同的组合方式可以分为不同的RAID级别。
常用RAID级别有:RAID0、RAID1、RAID3、RAID5、RAID6、组和RAID:RAID10、RAID50。
RAID0:
RAID0:数据条带化,无校验。它代表了所有RAID接班中最高的存储性能,RAID 0 至少使用两个磁盘驱动器。
优点:在读的过程中是多块硬盘同时进行工作。读写性能是最高的。磁盘利用率最高。
缺点:没有冗余。阵列中某一个驱动器发生故障,将导致其中的数据丢失。
RAID 1:
RAID 1:数据镜像,无校验。RAID 1使用两组磁盘互补镜像,速度没有提高,但允许单个磁盘故障,数据可靠性最高。
优点:可以允许有一份数据可丢失。
缺点:读写性能不如RAID 0。但读性能与RAID 0相似。写的性能比RAID 0 有很大差距。
RAID 3:
RAID 3:数据条带化读写,校验信息存放 + 专用硬盘。当N+1个硬盘中的其中一个硬盘出现故障时,可以通过硬盘恢复数据。
优点:冗余较好。
缺点:在校验过程汇中,容易出现校验盘负载过大,使整个校验盘失效。在数据写入时,是写入最慢的,每次写入都要与校验盘校验,校验盘也成为这个存储的瓶颈。数据读取相对较快,采用多块硬盘同时读取。
RAID 5:
RAID 5:数据条带化,校验信息分布式存放。分布式奇偶校验码的独立磁盘结构。校验信息均匀的分部在阵列所属的硬盘上,没块硬盘上既有数据信息也有校验信息。
优点:校验信息在每块盘上,相对出故障的概率更小。数据写入相对比较快,所有盘都参与进来做校验。数据读取相对以比较快,采用条带化存储。可靠性高。
缺点:当有两块磁盘出现故障时,磁盘失效。
RAID 6:
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.
缺点:数据写入过程比较慢。读取比较快。
RAID 10:
RAID10:是将镜像和条带进行组合的RAID级别,先进行RAID1镜像然后再做RAID0。RAID10也是一种应用比较广泛的RAID级别。
RAID50:
RAID50:是将RAID5和RAID0进行两级组合的RAID级别,第一级是RAID5,第二级为RAID0。至少需要6块硬盘。
RAID比较:
RAID应用场景选择:
RAID级别选择:
从可靠性、性能和成本简单比较各RAID级别的优劣(相对而言),供在实际项目中选择时参考。
空间利用率:
RAID5明显优于RAID10
可靠性:
RAID5低于RAID10
性能:
业务是一些大文件的读写操作时,RAID5的性能会明显好于RAID10
业务以随机的小数据块读写为主的时候,RAID10是最优的选择
随机读写性能比较:
RAID5和RAID10下分条深度变化随机写性能规律:
- RAID5规律:随着分条深度的增加,随机写IOPS先会不断的增加,到达一定程度之后,随机写IOPS会不断的递减;
- RAID10规律:随着分条深度的增加,随机写IOPS不断的增长,当分条深度增大到一定程度后,随机写IOPS保持一个较为稳定的状态;
写惩罚:
假设由5块硬盘组成的RAID5,每块盘同一条带数据如下:
如果有一个数据要写入,假设在第1个磁盘上写入的数据为0111。那么整个RAID5需要完成写入的过程分为:
- 读取原数据,然后与新数据0111做XOR操作:1010XOR 0111= 1101
- 读取原有的校验位1111
- 用第一步算出的数值与原校验再做一次XOR操作:1101XOR 1111= 0010
- 然后将0111新数据写入到数据磁盘,将第三步计算出来的新的校验位写入校验盘。
由上述几个步骤可见,对于任何一次写入,在存储端,需要分别进行两次读+两次写,所以说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
RAID数据保护,RAID与LUN
热备盘:
热备(HotSpare):当冗余的RAID阵列中某个磁盘失效时,在不干扰当前RAID系统正常使用的情况下,用RAID系统中另外一个正常的备用磁盘顶替失效磁盘。
- 全局热备盘
- 局部热备盘。
热备盘要求和RAID组成员盘的容量,接口类型,速率一致,最好是采用同一厂家的同型号硬盘。
预拷贝:
预拷贝:系统通过监控发现RAID组中某成员盘即将故障时,将即将故障成员盘中的数据提前拷贝到热备盘中,有效降低数据丢失风险。
重构:
重构:RAID阵列中发生故障的磁盘上的所有用户数据和校验数据的重新生成,并将这些数据写到热备盘上的过程。
RAID与LUN:
RAID由几个硬盘组成,从整体上看相当于由多个硬盘组成的一个大的物理卷。在物理卷的基础上可以按照指定容量创建一个或多个逻辑单元,这些逻辑单元称作LUN,可以做为映射给主机的基本块设备。
RAID 2.0
RAID 2.0原理:
- RAID 2.0:为增强型RAID技术,有效解决了机械硬盘容量越来越大,重构一块机械硬盘所需时间越来越长,传统RAID组重构窗口越来越大而导致重构期间又故障一块硬盘而彻底丢失数据风险的问题。
- RAID2.0+:在RAID 2.0的基础上提供了更细粒度(可以达几十KB粒度)的资源颗粒,形成存储资源的标准分配及回收单位,类似计算虚拟化中的虚拟机,我们称之为虚拟块技术。
- 华为RAID2.0+:是华为针对传统RAID 的缺点,设计的一种满足存储技术虚拟化架构发展趋势的全新的RAID 技术,其变传统固定管理模式为两层虚拟化管理模式,在底层块级虚拟化(Virtual for Disk)硬盘管理的基础之上,通过一系列Smart 效率提升软件,实现了上层虚拟化(Virtual for Pool)的高效资源管理。
- 将硬盘划分成若干个连续的固定大小的存储空间,称为存储块(chunk)简称CK。
- Ck按RAID策略组合成RAID组,称为存储块组(chunkgroup)简称CKG。
- 在CKG中划分若干小数据块(extent),LUN就是由来自不同CKG的extent组成。
- 用作热备空间的CK也是分散在各个盘上的。
RAID2.0+原理:
软件逻辑对象:
- Volume即卷,是存储系统内部管理对象。
- LUN是可以直接映射给主机读写的存储单元,是Volume对象的对外体现。
RAID2.0+优势:
自动负载均衡
RAID 2.0+使得各硬盘均衡分担负载,不再有热点硬盘,提升了系统的性能和硬盘可靠性。
系统可靠性高:
快速精简重构:
提升单LUN性能:
SmartTier:
LUN上的数据可以根据数据的活跃度,自动调整,迁移到存储池中的不同存储层。
- I/O监控:统计每个数据块的活跃度计数
- 数据分布分析:对每个数据的活跃度计数进行排序
- 数据迁移:根据排名结果和数据迁移策略实施数据迁移