RAID

1、RAID简介

独立硬盘冗余阵列(RAID, Redundant Array of Independent Disks),旧称廉价磁盘冗余阵列(Redundant Array of Inexpensive Disks),简称磁盘阵列。利用虚拟化存储技术把多个硬盘组合起来,成为一个或多个硬盘阵列组,目的为提升性能或数据冗余,或是两者同时提升。

RAID把多个硬盘组合成为一个逻辑硬盘,因此,操作系统只会把它当作一个实体硬盘。

RAID一般使用在服务器上,安装服务器操作系统前需要先创建RAID。

RAID 分多种级别,数据会以多种模式分散于各个硬盘,RAID 级别的命名会以 RAID 开头并带数字,例如:RAID 0、RAID 1、RAID 5、RAID 6、RAID 7、RAID 01、RAID 10、RAID 50、RAID 60。每种级别都有其理论上的优缺点,不同的等级在两个目标间获取平衡,分别是增加数据可靠性以及增加存储器(群)读写性能。

  • RAID功能实现
    • 提高IO能力,磁盘并行读写
    • 提高耐用性,磁盘冗余算法来实现
  • RAID实现的方式
    • 外接式磁盘阵列:通过扩展卡提供适配能力
    • 内接式RAID:主板集成RAID控制器,安装OS前在BIOS里配置
    • 软件RAID:通过OS实现,比如:群晖的NAS

2、RAID级别

2.1、RAID-0

以块(chunk)为单位读写数据,因为读写时都可以并行处理,所以在所有的级别中,RAID 0的速度是最快的。但是RAID 0既没有冗余功能,也不具备容错能力,如果一个磁盘(物理)损坏,所有数据都会丢失。

图片[1]-RAID-李佳程的个人主页
  • 读、写性能提升
  • 可用空间:N*min(S1,S2,…)
  • 无容错能力
  • 最少磁盘数:1+

2.2、RAID-1

也称为镜像, 两组以上的N个磁盘相互作镜像,在一些多线程操作系统中能有很好的读取速度,理论上读取速度等于硬盘数量的倍数,与RAID 0相同。另外写入速度有微小的降低。

图片[2]-RAID-李佳程的个人主页
  • 读性能提升、写性能略有下降
  • 可用空间:1*min(S1,S2,…)
  • 磁盘利用率 50%
  • 有冗余能力
  • 最少磁盘数:2+

2.3、RAID-4

图片[3]-RAID-李佳程的个人主页
  • 多块数据盘异或运算值存于专用校验盘
  • 磁盘利用率 (N-1)/N
  • 有冗余能力
  • 至少3块硬盘才可以实现

2.4、RAID-5

图片[4]-RAID-李佳程的个人主页
  • 读、写性能提升
  • 可用空间:(N-1)*min(S1,S2,…)
  • 有容错能力:允许最多1块磁盘损坏
  • 最少磁盘数:3, 3+

2.5、RAID-6

图片[5]-RAID-李佳程的个人主页
  • 双份校验位,算法更复杂
  • 读、写性能提升
  • 可用空间:(N-2)*min(S1,S2,…)
  • 有容错能力:允许最多2块磁盘损坏
  • 最少磁盘数:4, 4+

2.6、RAID-10

图片[6]-RAID-李佳程的个人主页
  • 读、写性能提升
  • 可用空间:N*min(S1,S2,…)/2
  • 有容错能力:每组镜像最多只能坏一块
  • 最少磁盘数:4, 4+

2.7、RAID-01

多块磁盘先实现RAID0,再组合成RAID1

图片[7]-RAID-李佳程的个人主页

2.8、JBOD

JBOD:Just a Bunch Of Disks 只是一堆磁盘

图片[8]-RAID-李佳程的个人主页
  • 将多块磁盘的空间合并一个大的连续空间使用
  • 第一块硬盘存放所有磁盘的分段信息,如果损坏,整个阵列会失败
  • 后续磁盘损坏只会影响本块磁盘的数据
  • 可用空间:sum(S1,S2,…)

2.9、RAID 总结

常用级别:RAID-0, RAID-1, RAID-5

图片[9]-RAID-李佳程的个人主页
图片[10]-RAID-李佳程的个人主页

3、软RAID

mdadm工具:为软RAID提供管理界面,为空余磁盘添加冗余,结合内核中的md(multi devices)
RAID设备可命名为/dev/md0、/dev/md1、/dev/md2、/dev/md3等
mdadm:模式化的工具,支持的RAID级别:LINEAR, RAID0, RAID1, RAID4, RAID5, RAID6, RAID10

mdadm [mode] <raiddevice> [options] <component-devices>
模式:
   创建:-C
   装配:-A
   监控:-F
   管理:-f, -r, -a
<raiddevice>: /dev/md#
<component-devices>: 任意块设备
-C: 创建模式
   -n #: 使用#个块设备来创建此RAID
   -l #:指明要创建的RAID的级别
   -a {yes|no}:自动创建目标RAID设备的设备文件
   -c CHUNK_SIZE: 指明块大小,单位k
   -x #: 指明空闲盘的个数
-D:显示raid的详细信息
   mdadm -D /dev/md#

管理模式:
   -f: 标记指定磁盘为损坏
   -a: 添加磁盘
   -r: 移除磁盘
#使用mdadm创建并定义RAID设备
mdadm -C /dev/md0 -a yes -l 5 -n 3 -x 1 /dev/sd{b,c,d,e}1
#用文件系统对每个RAID设备进行格式化
mkfs.xfs /dev/md0
#使用mdadm检查RAID设备的状况
mdadm --detail|D /dev/md0
#增加新的成员
mdadm -G /dev/md0 -n4  -a /dev/sdf1
#模拟磁盘故障
mdadm /dev/md0  -f /dev/sda1
#移除磁盘
mdadm   /dev/md0 -r /dev/sda1
#在备用驱动器上重建分区
mdadm /dev/md0  -a /dev/sda1
#系统日志信息
cat /proc/mdstat
#生成配置文件
mdadm -D -s >> /etc/mdadm.conf
#停止设备
mdadm -S /dev/md0
#激活设备
mdadm -A -s /dev/md0
#强制启动
mdadm -R /dev/md0
#删除raid信息
mdadm --zero-superblock /dev/sdb1#

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享