在Linux系统中做RAID,磁盘阵列的设备可以是一块磁盘中的三个以上的分区,也可以是三块或以上的磁盘。本文主要以几块磁盘为例,来实现在RAID5。
实验环境:
系统中有一块磁盘sda,新添加6块SCSI磁盘,分别为sdb,sdc,sdd,sde,sdf,sdg,其中4块作为磁盘阵列的设备,1块作为预备(spare)磁盘,还有1块留作备用(用于扩展RAID)。
创建RAID5:
1.先查看一下系统中磁盘设备:fdisk -l
...显示结果省略
2.接下来开始创建RAID了,主要会应用到mdadm命令,使用此命令需要先安装RHEL6安装光盘中自带的mdadm包,如果没有安装,先进行安装。
创建RAID5,命令如下:
1
|
[root@svr /]# mdadm --create --auto=yes /dev/md0 --level=
5
--raid-devices=
4
--spare-devices=
1
/dev/sd[b-f]
|
参数说明:
--create //表示要创建raid
--auto=yes /dev/md0 //新建立的软件磁盘阵列设备为md0,md序号可以为0-9
--level=5 //磁盘阵列的等级,这里表示创建是的raid5
--raid-devices //添加作为磁盘阵列用的磁盘的块数
--spare-devices //添加作为预备(spare)磁盘的块数
/dev/sd[b-f] //磁盘阵列所使用的设备,还可写成/dev/sdb /dev/sdc /dev/sdd /dev/sde /dev/sdf
另外这条命令也可以简写:
1
|
[root@svr /]#mdadm -C /dev/md0 -l5 -n4 -x1 /dev/sd[b-f]
|
3.查看RAID是否成功创建及是否正常运行,有两种方法(当磁盘容量越大时,磁盘阵列构建的时间越长,所以可能需要等待很长时间才能看到以下信息):
执行mdadm --detail/dev/md0 命令查看RAID的详细信息:
查看/proc/mdstat文件,可以比较简单明了的查看RAID创建和运行的情况:
1
|
[root@svr ~]#cat /proc/mdstat
|
S代表预备(spare)磁盘,4个U代表正常,出现_表示不正常
确认新建的RAID设备
执行 mdadm -Q /dev/md0 //-Q用来查询设备信息。
1
|
[root@svr ~]#mdadm -Q /dev/md0
|
4.格式化并且挂载和使用创建的RAID:
1
2
3
|
[root@svr ~]# mkfs.ext4 /dev/md0
[root@svr ~]# mkdir /raid5
[root@svr ~]# mount /dev/md0 /mnt/raid5
|
查看一下新挂的RAID是否可以使用
5.设置开机自动启动RAID以及自动挂载:
先建立/etc/mdadm.conf这个配置文件
1
2
3
|
[root@svr ~]# mdadm --detail /dev/md0 |grep UUID > /etc/mdadm.conf
[root@svr ~]# vi/etc/mdadm.conf
ARRAY/dev/md0 UUID=d58ed27d:00ce5cf5:b26ed1e9:879d0805
|
然后再修改/etc/fstab文件,设置开机自动挂载:
1
2
|
[root@svr ~]# vi/etc/fstab
/dev/md0 /mnt/raid5 ext4 defaults
0
0
|
然后再修改/etc/fstab文件,设置开机自动挂载:
重启一下系统,就可以检查开机自动挂载有没有设置成功了!
扩容raid磁盘阵列:
显示磁盘阵列的组成情况,4个块设备组成,:
1
|
[root@svr /]# cat /proc/mdstat
|
把/dev/sdg增加进阵列/dev/md0:
1
|
[root@svr /]#mdadm --add /dev/md0 /dev/sdg
|
把raid5阵列/dev/md0修改为5个块设备:
1
|
[root@svr /]#mdadm --grow/dev/md0 -n5
|
再显示一下磁盘阵列的组成情况,现在/dev/md1是6个块设备组成,完成扩容,还需要7.7分钟。
1
|
[root@svr /]#cat /proc/mdstat
|
等待扩容完成.....
执行下列命令:
1
|
[root@svr /]#resize2fs -f /dev/md0
|
验证是否已经扩大容量:
1
|
[root@svr /]#df -hT
|
验证预备磁盘是否能正常工作:
模拟RAID5中一块磁盘损坏,检验spare磁盘的功能(raid5中允许一块磁盘损坏,我们所设置的那1块spare磁盘会立即替代损坏的磁盘,进行RAID的重建,保障数据的安全):
先查看一下/dev/md0当前的状态
1
2
|
[root@svr /]#mdadm --detail /dev/md0
[root@svr /]#cat /proc/mdstat
|
使用以下命令设置磁盘sdd成为出错状态
1
|
[root@svr ~]#mdadm --manage /dev/md0 --fail /dev/sdd
|
接下来再来查看一下/dev/md0当前的状态
1
2
|
[root@svr /]#mdadm --detail /dev/md0
[root@svr /]#cat /proc/mdstat
|
进入到RAID挂载的目录raid5目录下,发现raid还可以使用,说明预备磁盘工作正常。
1
2
3
|
[root@svr /]#cd /raid5
[root@svr /]#touch
1
.txt
[root@svr /]#
|
将出错的磁盘删除并加入新的磁盘:
先删除损坏的磁盘sdd,命令如下:
1
|
[root@svr raid5]#mdadm --manage /dev/md0 --remove/dev/sdd
|
再添加一块新的磁盘作为spare磁盘,命令如下:
1
|
[root@svr raid5]#mdadm --manage /dev/md0 --add /dev/sdg
|
OK,再来执行以下命令查看一下:
1
|
[root@svr /]#mdadm --detail /dev/md0
|
关闭软件RAID的方法:
当你不再需要已经设置的RAID的时候,可以用以下方法关闭RAID:
1、卸载/dev/md0,并且删除或注释掉/etc/fstab文件中的配置:
1
2
3
|
[root@svr ~]#umount /dev/md0
[root@svr ~]#vi /etc/fstab
#/dev/md0 /mnt/raid5 ext4 defaults
00
|
2、注释掉或删除/etc/mdadm.conf中的设置
1
2
|
[root@svr ~]#vi /etc/mdadm.conf
#ARRAY /dev/md0 UUID=d58ed27d:00ce5cf5:b26ed1e9:879d0805
|
3、停止raid设备
1
|
[root@svr ~]#mdadm --stop/dev/md0
|
4)删除raid中的所有磁盘
1
|
[root@svr ~]#mdadm --misc --zero-superblock /dev/sd[b-f]
|
这时候raid中的磁盘就删除了,重启后也不会有raid了。
RAID0和RAID1实同于RAID5
RAID0:并行读写数据(带区卷)
RAID1:镜像磁盘阵列(镜像卷)
本文转自yun5277 51CTO博客,原文链接:http://blog.51cto.com/dengqi/1294831,如需转载请自行联系原作者