系统管理:Linux 软RAID阵列仿真

实验配置:
Vmware 虚拟机 + Ubuntu16.04,虚拟磁盘三个:/dev/sdb /dev/sdc /dev/sdd (磁盘各2GB)

  1. 创建一个RAID5 阵列
  2. 增加热备份盘片,模仿盘片故障
  3. 没有热备份盘时,硬盘故障模拟

实验一,创建一个RAID5 阵列

  • 为每个虚拟硬盘创建一个DOS类型分区表 ,然后创建一个新的分区,把虚拟硬盘空间都分配给这个分区(推荐fdisk
    系统管理:Linux 软RAID阵列仿真

  • 使用三个分区(也可以[推荐]使用三个虚拟硬盘)创建一个RAID 5阵列
    系统管理:Linux 软RAID阵列仿真

  • 查看RAID 设备
    系统管理:Linux 软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

实验二 添加热备份盘

系统管理:Linux 软RAID阵列仿真
再次查询RAID状态
系统管理:Linux 软RAID阵列仿真理论上如果硬盘发生故障,系统自动使用备份盘进行数据保护

  • 模拟磁盘故障
    系统管理:Linux 软RAID阵列仿真查询RAID状态,会发现active的设备成为sde1

系统管理:Linux 软RAID阵列仿真倘若使用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初始配置如下
    系统管理:Linux 软RAID阵列仿真

  • sdd1 发生损坏
    $sudo mdadm /dev/md127 --fail sdd1
    系统管理:Linux 软RAID阵列仿真RAID5是一种冗余设计,此时硬盘会降级使用,但用户不一定会注意到它

  • 增加磁盘恢复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