Raid(Redundant Array of independent Disks)独立磁盘冗余阵列:磁盘阵列
Raid 分为:软raid、硬raid、软硬混合三种。
软Raid:所有的功能均有操作系统和CPU来完成,没有独立的raid控制、处理芯片和IO处理处理芯片。
硬Raid:专门的raid控制、处理芯片和io处理芯片,阵列缓冲,不占用CPU资源,成本高。
软硬混合Raid:具备raid控制,处理芯片,缺少ui处理芯片,需要CPU+驱动来完成,性能、成本鉴于软raid和硬raid之间。
Raid是由多个独立的高性能磁盘驱动器组成的磁盘子系统,比单个磁盘更高的存储性能和数据冗余技术。
当磁盘或访问路径发生故障时,冗余信息可以用来重建用户数据。
Raid两个关键的目标提高数据可用性和I/O性能,Raid6可以支持两块磁盘同时损坏,这样可以直接更换故障磁盘,Raid会根据冗余信息校验重建丢失数据,保证数据的一致性和完整性。
数据分散保存在Raid多个不同磁盘中,并发数据读写大于单个硬盘的性能,因此可以获得更高的聚合IO带宽,但会减少全体磁盘的总可用空间,牺牲空间换取更高的性能和可靠性。
Raid1存储空间可利用率 50%,Raid5会损失一个硬盘的容量,空间利用率为 (n-1)/n
RAID 不可作为数据备份的替代方案。
Raid中三个关键技术:
镜像(Mirroring):将数据复制到多个磁盘,提高可靠性,并发从两个或多个副本读取数据提高性能,写性能低。
数据条带(Data Stripping):将数据分片存放在不同的磁盘中,多个数据分片组曾一个完整数据副本,访问数据时可以在不同的磁盘上对数据进行读写操作,提高IO性能。
数据校验(Data parity):利用冗余数据进行数据错误检测和修复,冗余数据采用海明码、异、或、计算获得。利用校验功能,提高磁盘阵列可靠性,鲁棒性和容错能力,但
数据校验需要从多处读取数据会影响系统性能。
Tips:
鲁棒性:控制系统在一定(结构,大小)的参数摄动下,维持某些性能的特性
(承受故障和干扰的能力)是许多复杂系统(包括复杂网络)的关键属性
海明码:海明校验码是由奇偶校验码中的偶校验延申出来的
Raid优势:
(1)大容量:由多个磁盘组成Raid,
(2)高性能:受益于数据条带化技术,raid数据将io分在各个成员盘上,形成聚合IO性能。
(3)可靠性:Raid镜像技术将数据分为多个副本,数据校验技术提供数据修改重建能力。
(4)可管理性:raid是一种虚拟化技术,便于管理,管理员只需要修改单个虚拟驱动器,raid同时可以动态增加硬盘驱动器,可以自动进行数据校验和数据重建。
Raid等级:
JBOD:不是标准的raid等级,通常表示一个没有控制软件提供协作控制的磁盘集合,JBOD将多个物理磁盘串联起来,提供一个巨大的逻辑磁盘。
标准的Raid等级:
SNIA,Berkeley等组织机构把Raid0-6七个等级定位标准的raid等级,标准等几种最基本的raid配置集合,单独或综合利用数据条带、镜像和数据校验技术。
标准Raid可以满足对性能,安全性,可靠性要求更高的存储应用需求。
无冗错的数据条带
Raid0:无数据校验的数据条带化技术,并不是一种真正的raid,无冗余策略。Raid0将磁盘条带化后组成巨大的存储空间,将数据分散在所有的磁盘中,独立访问的方式实现多块磁盘的并读访问,
由于可以并发执行IO,总线带宽可以充分利用,再加上不需要数据校验,Raid0是raid性能等级最高的,理论上n块盘组成的raid0,读写性能是单个磁盘的n倍。
优势:低成本,高性能,100%利用空间
劣势:无冗余保护,一旦数据损坏,无法修复。
利用空间:对性能要求高,对安全性和可靠性不高的应用,cache,视频,音频等。
无校验的相互镜像
Raid1:raid1被称为镜像,将数据完全一致的分别写到工作磁盘和镜像磁盘中,磁盘利用率50%,Raid1写数据响应会有影响,但不影响读数据。提供了最佳的数据保护,一旦
工作磁盘出现问题,系统自动从镜像中读取数据,不会影响用户工作。
优势:镜像备份安全性好,技术简单,方便管理,有容错能力
劣势:成本太高
应用场景:邮件系统数据保护
海明码校验
Raid2:被称为纠错海明码磁盘阵列,设计想法利用海明码实现数据校验冗余校验冗余,在Raid2中数据按位存储,每块磁盘
存储一位数据编码,图中数据带宽为4的raid2,它需要4块数据磁盘和3块校验磁盘。
海明码自身具备纠错能力,因为raid2可以在数据发生错误的情况下进行纠正错误,保证数据安全性,传输性能相当高。
Raid3:采用一个专用的磁盘作为校验盘,其他磁盘作为数据盘,至少需要3块磁盘,不同磁盘同一带区作XOR校验,校验值写入校验盘。
raid3完好时读性能与raid0完全一致,并行从多个磁盘条带读取数据,性能非常高,同时具备数据容错能力,raid3写入数据时,
必须计算与所有同条带的校验值,并将新的校验值写入到校验盘。一次写系统开销非常大,性能很差。
带有专用块级校验的数据条带
raid4:raid4与raid3原理大致相同,raid4利用块的方式存储数据信息,写操作只涉及当前数据盘和校验盘两个盘,多个IO请求能够同时处理,
提高了系统性能。raid4按块存储可以保证单块的完整性,避免收到其他磁盘上同条带产生的不利影响。不同磁盘上的同级数据块使用XOR,
校验,结果存储在校验盘中,写入数据时,把各个磁盘上的同级数据的校验值写入校验盘读取时同时进行校验。因此单个磁盘数据块损坏,
raid4可以通过校验值以及其他磁盘上的同级数据块进行数据重组。
优势:非常好的读性能。
劣势:单一的校验盘成为系统性能的瓶颈,对写操作raid4只能一个个磁盘的写,并且还要校验数据,所以写性能很差。
带分散校验的数据条带
raid5:目前最常见的raid等级,原理与raid4相似,区别在于数据校验分布在阵列中所有的磁盘上,没有专门的校验磁盘,对数据和校验数据,它们的写操作可以同时发生在
不同的磁盘中
优势:良好的读写性能,具有良好的扩展性,阵列磁盘越多,并行操作量的能力随之提升,更高的容量更好的性能。
劣势:当一个数据盘损坏时,系统可以根据其他数据块和对应的校验数据来重建损坏数据,在重建数据时对raid5性能会有较大的影响。
应用:目前主流的raid使用级别,兼容存储性能、数据安全、存储成本,目前综合性能最佳的数据保护解决方案,主流应用在:数据中心
带双重分散校验的数据条带
raid6:扩展Raid5等级,raid0-5只能保护单个磁盘失效而造成的数据丢失,如果两个磁盘同时故障数据无法恢复,raid引入双重校验的概念,
同时可以保护两个磁盘失效的问题,阵列能够正常工作,不会发生数据丢失。
raid6不仅支持数据的回复,还支持校验数据的回复,因此实现的代价很高,更贵。
优势:更快的读取性能,更好的容错能力。
劣势:成本高于raid5很多,写性能较差。
组合raid
标准raid各有优劣,考虑把raid等级进行组合,相互弥补,目前主流的raid组合:raid00/raid01/raid10/raid100/raid30/raid50/raid53/raid60
目前主流的raid组合:raid01 和 raid10
raid00
raid00是由多个raid0组成的更高等级的raid,区别在于raid0阵列替换了原先的成员磁盘,可以把raid00理解成两层条带化的磁盘阵列,
在对条带进行条带化,这种阵列可以提供更大的存储容量,更高的IO性能,更好的IO负均衡。
典型的 RAID01 (上)和 RAID10 (下)模型
raid01 / raid10
raid01先做条带化在做镜像,对物理磁盘实现镜像。
raid10先做镜像在做条带化,对虚拟磁盘实现镜像。
相同情况下raid01比raid10具有更好的容错能力。
raid01兼备了raid0和raid1的优点,先用两块磁盘建立镜像,在镜像内部做条带化,raid01的数据同时写入到两个磁盘阵列中,
如果一个阵列损坏仍可以继续工作,保证了数据的安全性又提高了性能。
raid01 和 raid10 内部都含有一个raid1模式,因此磁盘使用率仅为50%
典型的 RAID100 模型
RAID100:通常看作raid 1+0+0,或raid10+0,即条带化的raid10,raid100的缺陷与raid10相同,任意的一个raid1损坏一个磁盘不会发生数据丢失,
但是剩下的磁盘存在单点故障的危险,最顶级的raid0,即条带化任务,通常由软件层来完成。
raid100突破了单个raid控制器对物理磁盘的限制,可以获得更高的IO负载均衡,IO压力可以更多的分散到磁盘上,进一步提高随机读性能,
并降低了热点盘故障风险。
使用场景:大数据库。