RAID(Redundant Array of Independent Disks)即独立冗余磁盘阵列,是一种把多块独立的硬盘(物理硬盘)按不同的方式组合起来形成一个硬盘组(逻辑硬盘),让用户认为只有一个单个超大硬盘,从而提供比单个硬盘更高的存储性能和提供数据备份技术。
1.实现方式:硬件、软件
硬件RAID:由主板芯片组、主板内置的RAID芯片或外界RAID卡实现
软件RAID:有些主板附有RAID功能,通常基于SATA界面,并非真正的硬件RAID,速度较慢,仅有 将不同磁盘排列组合功能,在数据保护上使用主机CPU
2.RAID级别:组成磁盘阵列的不同方式
RAID0:(Data Stripping)数据分条技术,以把多块硬盘连成一个容量更大的硬盘群,可以提高磁 盘的性 能和吞吐量。没有冗余或错误修复能力,成本低,要求至少 2 个磁盘,一般只是在那些对数 据安全性要求不高的情况下才被使用
缺点:不提供数据冗余,因此一旦用户数据损坏,损坏的数据将无法得到恢复。
RAID 1:磁盘镜像,把一个磁盘的数据镜像到另一个磁盘上,在不影响性能情况下最大限度的保证系统 的可靠性和可修复性上,具有很高的数据冗余能力,但磁盘利用 率为50%,故成本最高,多用在保存关键性的重要数据的场合
RAID 5:至少需要 3 块盘不对存储的数据进行备份,而是把数据和相对应的奇偶校验信息存储到组成RAID5的各个磁盘上,并且奇偶校验信息和相对应的数据分别存储于不同的磁盘 上。当RAID5的一个磁盘数据发生损坏后,利用剩下的数据和相应的奇偶校验信息去恢复被损坏的数据。可以理解为是RAID 0和RAID 1的折衷方案
RAID10:镜象阵列条带。像RAID0一样,数据跨磁盘抽取;像RAID1一样,每个磁盘都有一个镜象磁盘, 所以RAID 10的另一种会说法是 RAID 1+0。RAID10提供100%的数据冗余,成本较高
3.优点:扩大存储能力,可让多块硬盘组合起来,故单一文件系统可以有相当大的容量
读写性能:例如RAID0可以加强读写性能,让系统I/O部分得以改善
容错性,如有单块硬盘出错,不会影响到整体的继续使用
4..总结
实际应用场景举例:
ceph项目中,标准设备0、1槽位专门放置ssd raid盘,2个ssd组RAID 1,在创建osd过程中,系统会把bluestore 中的wal 分区全部创建在RAID盘中。wal分区是存放系统日志的,很重要,利用RAID 1的镜像存储性能,确保数据安全性,当其中一块raid盘出现故障时,不会影响到ceph集群健康。
测试过程中,我们会模拟raid盘故障场景,拔掉一块raid盘,ceph health ok,在后台通过命令能看到因为有一块raid盘故障(被拔掉),RAID 1降级。
再插入一块全新的ssd(不是刚拔掉的raid盘),就会看到raid 1正在rebuilding,剩余的那块好raid盘正在把自己上面的数据全部同步到新盘。
后台查看RAID健康状态:
看到RAID 1降级,slot 0 正在rebuilding:
这里特别说明一下RAID 1 降级:
降级之前,设置好热备盘,一拔掉其中一块raid盘,热备盘就会顶上去,进入rebuding状态,相当于查了一块新盘,这个过程时间比较长;
恢复所有数据及分区信息,快慢取决于数据多少和盘的大小;
如果原来是其中一块的话,没有数据损坏,直接插回去就能用;有损坏的话,就恢复对应的部分
(ceph项目因为机器原因,不用设置热备盘,可通过直接插拔raid盘或拔掉一块raid盘,插入新盘来实现raid降级)