磁盘系统管理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
image

创建RAID5,并添加1个热备份盘

mdadm -C -v /dev/md5 -l5 -n3 /dev/sd[b-d]1 -x1 /dev/sde1
image

查看raidstat状态,查看RAID的详细信息

cat /proc/mdstat
mdadm -D /dev/md5
image
image

格式化

mkfs.xfs /dev/md5
image

挂载使用

mkdir /mnt/md5
mount /dev/md5 /mnt/md5/
df -Th
image

创建测试文件,查看文件,故障模拟,再次查看文件

touch /mnt/md5/test{1..9}.txt
ls /mnt/md5/
mdadm -f /dev/md5 /dev/sdb1
ls /mnt/md5/
image

image

image

查看测试文件

cat /proc/mdstat
mdadm -D /dev/md5
image

移出损坏的硬盘,重新添加热备份盘并查看

mdadm -r /dev/md5 /dev/sdb1
mdadm -a /dev/md5 /dev/sdb1
mdadm -D /dev/md5
image

RAID10实验

添加4块20G的硬盘,分区并查看

fdisk -l | grep sd
image

创建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
image

查看raidstat状态,查看RAID101和RAID102的详细信息

cat /proc/mdstat
mdadm -D /dev/md101
mdadm -D /dev/md102
image
image

创建RAID10

mdadm -C -v /dev/md10 -l0 -n2 /dev/md10{1,2}
image

查看raidstat状态,查看RAID10的详细信息

cat /proc/mdstat
mdadm -D /dev/md10
image

格式化

mkfs.xfs /dev/md10
image

挂载使用

mkdir /mnt/md10
mount /dev/md10 /mnt/md10/
df -Th
image

创建测试文件,故障模拟,查看状态

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/

image

image

查看状态

cat /proc/mdstat
mdadm -D /dev/md10
mdadm -D /dev/md101
mdadm -D /dev/md102
image

image

image

image

移出损坏硬盘,重新添加备份硬盘并查看

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
image

image

image

image

posted @ 2022-07-06 15:35  玖拾一  阅读(280)  评论(0编辑  收藏  举报