早期表示为廉价冗余磁盘整列(Redundant Arrays of Inexpensive Disks),然而发展至今并不廉价,而是独立冗余磁盘整列(Redundant Arrays of Independent Disks)
按实现方式可以分为:外接式磁盘阵列(通过扩展卡提供适配能力)、内接式RAID(主板集成RAID控制器)、软件实现
RAID级别
-
RAID-0: 读写性能有提升,可用空间为N*min(s1,s2,…),没有容错能力,最深磁盘数为2
-
RAID-1: 读性能有提升,写性能有下降,可用空间为min(S1,S2,…),有冗余,可以容错,最少需要磁盘数为2
-
RAID-4: N-1块盘用于存放数据,第N块用于存放校验码
-
RAID-5: 校验码较RAID-4打开存放,读写性能提升,可用空间为(N-1)*min(s1,s2,…),有容错能力,至少3个盘
-
RAID-6: 用循环校验码,用两个盘存放校验码,可用空间(N-2)*min(s1,s2,…),可以坏两块盘,至少4个盘
-
RAID-10: 先做RAID-1,然后再做RAID-0
-
RAID-01: 先做RAID-0,合起来再做RAID-1
RAID管理工具
mdadm: 模式化的工具
命令格式:mdadm [mode] <raiddevice> [option] <component-device>
模式分为:创建(-C)、装配(-A)、监控(-F)、管理(-f, -r, -a)
<raiddevice>
: /dev/md#
<component-device>
: 任意块设备
创建模式
-n #: 使用#个块设备来创建RAID
-l #: 指明要创建的RAID级别
-a {yes|no}: 是否自动创建模版RAID设备的设备文件
-c CHUNK_SIZE: 指明块大小
-x #: 指明空闲盘个数
例如:mdadm -C /dev/md0 -a yes -n 3 -x 1 -l 5 -c 1M /dev/sdb{1,2,3,4}
-D: 显示RAID的详细信息,例如mdadm -D /dev/md0
管理模式
-f: 标记指定磁盘为损坏,例如mdadm /dev/md0 -f /dev/adb4
-a: 添加磁盘,例如mdadm /dev/md0 -a /dev/sdb4
-r: 移除磁盘,例如mdadm /dev/md0 -r /dev/sdb4
cat /proc/mdstat
: 观察md的状态
mdadm -S /dev/md0
: 停止md设备
watch -n1 'COMMAND'
: 观察命令执行结果,单位为秒,例如watch -n1 'cat /proc/mdstat'