磁盘系统管理3-RAID及软RAID
RAID及软RAID创建
mdadm
创建软RAID
mdadm -C -v /dev/创建的设备名 -l级别 -n数量 添加的磁盘 [-x数量 添加的热备份盘]
-C:创建一个新的阵列--create
-v:显示细节--verbose
-l:设定RAID级别--level=
-n:指定阵列中可用device数目--raid-devices=
-x:指定初始阵列的富余device数目--spare-devices=,空闲盘(热备磁盘)能在工作盘损坏后自动顶替
查看详细信息
mdadm -D /dev/设备名
-D:打印一个或多个md device的详细信息--detail
查看RAID的状态
cat /proc/mdstat
模拟损坏
mdadm -f /dev/设备名 磁盘
-f:模拟损坏fail
移除损坏
mdadm -r /dev/设备名 磁盘
-r:移除remove
添加新硬盘作为热备份盘
mdadm -a /dev/设备名 磁盘
-a:添加add
介绍
RAID0
RAID0俗称条带,它将两个或多个硬盘组成一个逻辑硬盘,容量是所有硬盘之和,因为是多个硬盘组合成一个,故可并行写操作,写入速度提高,但此方式硬盘数据没有冗余,没有容错,一旦一个物理硬盘损坏,则所有数据均丢失。因而,RAID0适合于对数据量大,但安全性要求不高的场景,比如音像、视频文件的存储等。
RAID1
RAID1俗称镜像,它最少由两个硬盘组成,且两个硬盘上存储的数据均相同,以实现数据冗余。RAID1读操作速度有所提高,写操作理论上与单硬盘速度一样,但由于数据需要同时写入所有硬盘,实际上稍为下降。容错性是所有组合方式里最好的,只要有一块硬盘正常,则能保持正常工作。但它对硬盘容量的利用率则是最低,只有50%,因而成本也是最高。RAID1适合对数据安全性要求非常高的场景,比如存储数据库数据文件之类。
RAID5
RAID5最少由三个硬盘组成,它将数据分散存储于阵列中的每个硬盘,并且还伴有一个数据校验位,数据位与校验位通过算法能相互验证,当丢失其中的一位时,RAID控制器能通过算法,利用其它两位数据将丢失的数据进行计算还原。因而RAID5最多能允许一个硬盘损坏,有容错性。RAID5相对于其它的组合方式,在容错与成本方面有一个平衡,因而受到大多数使用者的欢迎。一般的磁盘阵列,最常使用的就是RAID5这种方式。
RAID6
RAID6是在RAID5的基础上改良而成的,RAID6再将数据校验位增加一位,所以允许损坏的硬盘数量也由 RAID5的一个增加到二个。由于同一阵列中两个硬盘同时损坏的概率非常少,所以,RAID6用增加一块硬盘的代价,换来了比RAID5更高的数据安全性。
RAID10
RAID10是先将数据进行镜像操作,然后再对数据进行分组,RAID1在这里就是一个冗余的备份阵列,而RAID0则负责数据的读写阵列。至少要四块盘,两两组合做RAID1,然后做RAID0,RAID10对存储容量的利用率和RAID1一样低,只有50%。Raid10方案造成了50%的磁盘浪费,但是它提供了200%的速度和单磁盘损坏的数据安全性,并且当同时损坏的磁盘不在同一RAID1中,就能保证数据安全性,RAID10能提供比RAID5更好的性能。这种新结构的可扩充性不好,使用此方案比较昂贵。
RAID01
RAID01则是先做条带,然后再做镜象。不常用仅做了解
常见RAID间比较
名称 硬盘数量 容量/利用率 读性能 写性能 数据冗余
RAID0 N N块总和 N倍 N倍 无,一个故障,丢失所有数据
RAID1 N(偶数) 50% ↑ ↓ 写两个设备,允许一个故障
RAID5 N≥3 (N-1)/N ↑↑ ↓ 计算校验,允许一个故障
RAID6 N≥4 (N-2)/N ↑↑ ↓↓ 双重校验,允许两个故障
RAID10 N(偶数,N≥4) 50% (N/2)倍 (N/2)倍 允许基组中的磁盘各损坏一个
实验
RAID1实验
添加4块20G的硬盘,分区
fdisk -l | grep sd
创建RAID5,并添加1个热备份盘
mdadm -C -v /dev/md5 -l5 -n3 /dev/sd[b-d]1 -x1 /dev/sde1
查看raidstat状态,查看RAID的详细信息
cat /proc/mdstat
mdadm -D /dev/md5
格式化
mkfs.xfs /dev/md5
挂载使用
mkdir /mnt/md5
mount /dev/md5 /mnt/md5/
df -Th
创建测试文件,查看文件,故障模拟,再次查看文件
touch /mnt/md5/test{1..9}.txt
ls /mnt/md5/
mdadm -f /dev/md5 /dev/sdb1
ls /mnt/md5/
查看测试文件
cat /proc/mdstat
mdadm -D /dev/md5
移出损坏的硬盘,重新添加热备份盘并查看
mdadm -r /dev/md5 /dev/sdb1
mdadm -a /dev/md5 /dev/sdb1
mdadm -D /dev/md5
RAID10实验
添加4块20G的硬盘,分区并查看
fdisk -l | grep sd
创建2个RAID1
mdadm -C -v /dev/md101 -l1 -n2 /dev/sd{b,c}1
mdadm -C -v /dev/md102 -l1 -n2 /dev/sd{d,e}1
查看raidstat状态,查看RAID101和RAID102的详细信息
cat /proc/mdstat
mdadm -D /dev/md101
mdadm -D /dev/md102
创建RAID10
mdadm -C -v /dev/md10 -l0 -n2 /dev/md10{1,2}
查看raidstat状态,查看RAID10的详细信息
cat /proc/mdstat
mdadm -D /dev/md10
格式化
mkfs.xfs /dev/md10
挂载使用
mkdir /mnt/md10
mount /dev/md10 /mnt/md10/
df -Th
创建测试文件,故障模拟,查看状态
touch /mnt/md10/test{1..9}.txt
ls /mnt/md10/
mdadm -f /dev/md101 /dev/sdb1
mdadm -f /dev/md102 /dev/sdd1
ls /mnt/md10/
查看状态
cat /proc/mdstat
mdadm -D /dev/md10
mdadm -D /dev/md101
mdadm -D /dev/md102
移出损坏硬盘,重新添加备份硬盘并查看
mdadm -r /dev/md101 /dev/sdb1
mdadm -r /dev/md102 /dev/sdd1
mdadm -a /dev/md101 /dev/sdb1
mdadm -a /dev/md102 /dev/sdd1
cat /proc/mdstat
mdadm -D /dev/md10