系统管理:Linux 软RAID阵列仿真
实验配置:
Vmware 虚拟机 + Ubuntu16.04,虚拟磁盘三个:/dev/sdb /dev/sdc /dev/sdd (磁盘各2GB)
- 创建一个RAID5 阵列
- 增加热备份盘片,模仿盘片故障
- 没有热备份盘时,硬盘故障模拟
实验一,创建一个RAID5 阵列
-
为每个虚拟硬盘创建一个DOS类型分区表 ,然后创建一个新的分区,把虚拟硬盘空间都分配给这个分区(推荐fdisk)
-
使用三个分区(也可以[推荐]使用三个虚拟硬盘)创建一个RAID 5阵列
-
查看RAID 设备
-
确认设备状态active sync,RAID上创建DOS分区表,新建两个分区 *分区工具推荐fdisk
fdisk 识别/dev/md0 ,设备容量为4G,这个数据是合理的(2个分区作为data,1个分区作为校验块) -
分别在两个分区上建立文件系统ntfs和ext4,推荐 mkfs工具集
$sudo mkfs.ext4 /dev/md0p2
$sudo mkfs.ntfs /dev/mdop1
实验二 添加热备份盘
再次查询RAID状态理论上如果硬盘发生故障,系统自动使用备份盘进行数据保护
- 模拟磁盘故障
查询RAID状态,会发现active的设备成为sde1
倘若使用dmesg查看系统日志,在sdb1设置为故障后,md自动进行了恢复工作
[ 616.249646] md: minimum guaranteed speed: 1000 KB/sec/disk.
[ 616.249648] md: using maximum available idle IO bandwidth (but not more than 200000 KB/sec) for recovery.
[ 616.249794] md: using 128k window, over a total of 2095104k.
[ 626.700075] md: md127: recovery done.
[ 626.707872] RAID conf printout:
[ 626.707875] — level:5 rd:3 wd:3
[ 626.707877] disk 0, o:1, dev:sde1
[ 626.707878] disk 1, o:1, dev:sdc1
[ 626.707879] disk 2, o:1, dev:sdd1
实验三、没有热备份,硬盘发生故障
-
RAID初始配置如下
-
sdd1 发生损坏
$sudo mdadm /dev/md127 --fail sdd1RAID5是一种冗余设计,此时硬盘会降级使用,但用户不一定会注意到它
-
增加磁盘恢复RAID5
$sudo mdadm /dev/md127 --add sdd1 -
停用阵列
mdadm /dev/md127 --fail /dev/sdc --remove /dev/sdd1
mdadm /dev/md127 --fail /dev/sde --remove /dev/sde1
mdadm /dev/md127 --fail /dev/sdf --remove /dev/sdc1
mdadm --stop /dev/md127