首页 > 代码库 > 实现软件RAID
实现软件RAID
RAID设备可命名为/dev/md0、 /dev/md1、 /dev/md2、/dev/md3等
模式化的工具:mdadm,为软ride提供管理界面
支持的RAID级别:RAID-0, RAID-1, RAID-4,RAID-5,RAID-6,RAID-10
mdadm命令的语法格式:mdadm [mode] <raiddevice> [options]<component-devices>
模式<mode>:创建、装配、监控、管理
1、创建模式:
-C: 创建模式
-n #: 使用#个块设备来创建此RAID
-l #:指明要创建的RAID的级别
-a {yes|no}:自动创建目标RAID设备的设备文件
-c CHUNK_SIZE: 指明块大小(默认512k)
-x #: 指明空闲盘的个数
-D:显示raid的详细信息;
mdadm -D /dev/md#
-Ds:显示raid的简要信息
2、装配模式:
-A:装配模式,重新识别此前识别的RADE
激活设备: mdadm –A –s /dev/md0 激活
3、监控模式:
-F:监控模式
4、管理模式:
-f: 标记指定磁盘为损坏
-a: 添加磁盘
-r: 移除磁盘
其他管理
观察md的状态:cat/proc/mdstat
停止md设备:mdadm -S /dev/md#
生成配置文件:mdadm –D –s >> /etc/mdadm.conf
强制启动:mdadm –R /dev/md0
删除raid信息:mdadm --zero-superblock /dev/sdb1
CentOS6.9部署RAID磁盘阵列组
一、前期准备
1、虚拟机添加4块硬盘
通常添加磁盘后需重启才能显示新添加的磁盘,我们也可以使用命令的方式触发磁盘扫描来使磁盘信息更新。
2、配置分区:
①RAID磁盘阵列的各磁盘或分区需容量大小相同。我们使用fdisk命令在每块磁盘上取容量为1G的分区来作为RAID磁盘。注意:主设备号要改为fd (linux raid auto)
②以/dev/sdb为模板批量克隆分区/dev/sdc,/dev/sdd ,/dev/sde
③ 由于使用的是CentOS6系列版本,同步命令partprobe不可用,我们用partx -a来同步分区
二、创建RAID-5:
1、使用命令mdadm -C /dev/md5 -l 5 -n 3 -x 1 /dev/sd{b,c,d,e}1开始创建RAID5
2、通过命令mdadm -D /dev/md5显示RAID的详细信息
我们添加了四块容量1G的分区,其中一块作为备用分区。由于RAID5特性使用容量相当一块磁盘(分区)的空间来放置校验信息,所以容量显示为2G。
3、查看md5分区信息并保存
4、给md5创建文件体统 mkfs.ext4 /dev/md5
将md5挂载到mount /dev/md5 /mnt/raid5(需手工创建目录)。
三、模拟损坏及移除、添加磁盘
1、模拟磁盘(分区)/dev/sdb1损坏
查看md5详细信息可看到备用分区/dev/sde1自动顶替了损坏分区/dev/sdb1
2、生产中我们可以移除坏掉的磁盘(分区)
3、买来新的磁盘(或做好相同容量分区),更改主设备号后把它添加进来
Tips:添加、移除操作需取消挂载后进行
四、删除RAID:
1、将RAID磁盘阵列中数据做好备份后,停止md设备mdadm -S /dev/md#
2、删除对应挂载点内的数据
3、依次删除raid信息:mdadm --zero-superblock /dev/sdb1
4、删除配置信息:rm -f /etc/mdadm5.conf
5、删除/etc/fstab中对应挂载信息
同理实现RAID-10也可采用同样的方式进行创建、修改、测试。我把创建的简要步骤写一下有兴趣的朋友可以试着练习一下RAID-10的创建、修改、测试。
①mdadm -Cv /dev/md0 -a yes -n 4 -x 1 -l 10 -c 1M /dev/sd{b,c,d,e,f}
-Cv /dev/md0:创建设备名为md0的磁盘阵列并显示过程
-a yes:自动创建目标RAID设备的设备文件
-n 4:指定4块可用磁盘dev/sd{b,c,d,e}
-l 10:指定要创建的RAID级别为10
-x 1:指定1块备用磁盘dev/sdf(-x写在-n之后所以对应最后一块磁盘)
-c 1M:指定块大小为1M
②mkfs.ext4 /dev/md0
实现软件RAID