前提
软RAID很少使用,大家简单了解一下即可。
软RAID说明
- mdadm:为软RAID提供管理界面
- 为空余磁盘添加冗余
- 结合内核中的md(multi devices)来实现
- RAID设备可命名为/dev/md0、/dev/md1、/dev/md2、/dev/md3等
软RAID实现
mdadm
mdadm 是Linux上的模式化工具。支持的RAID级别:LINEAR, RAID0, RAID1, RAID4, RAID5, RAID6, RAID10。
mdadm 语法格式:
# mdadm [mode] <raiddevice> [options] <component-devices>
# 模式:
创建:-C
装配: -A
监控: -F
管理:-f, -r, -a
# <raiddevice>: /dev/md#
# <component-devices>: 任意块设备
# -C: 创建模式
-n #: 使用#个块设备来创建此RAID
-l #:指明要创建的RAID的级别
-a {yes|no}:自动创建目标RAID设备的设备文件
-c CHUNK_SIZE: 指明块大小,单位k
-x #: 指明空闲盘的个数
# -D:显示raid的详细信息
mdadm -D /dev/md#
# 管理模式:
-f: 标记指定磁盘为损坏
-a: 添加磁盘
-r: 移除磁盘
# 观察md的状态:cat /proc/mdstat
# 停止md设备:mdadm -S /dev/md#
配置示例
# 使用mdadm创建并定义RAID设备
mdadm -C /dev/md0 -a yes -l 5 -n 3 -x 1 /dev/sd{b,c,d,e}{1..3}
# 用文件系统对每个RAID设备进行格式化
mkfs.xfs /dev/md0
# 测试RAID设备
# 使用mdadm检查RAID设备的状况
mdadm --detail | D /dev/md0
# 增加新的成员
mdadm –G /dev/md0 –n4 -a /dev/sdf1
软RAID测试和修复
# 模拟磁盘故障
mdadm /dev/md0 -f /dev/sda1
# 移除磁盘
mdadm /dev/md0 –r /dev/sda1
# 从软件RAID磁盘修复磁盘故障
# 替换出故障的磁盘然后开机
# 在备用驱动器上重建分区
# mdadm /dev/md0 -a /dev/sda1
# mdadm、/proc/mdstat 及 系统日志信息
软RAID管理
# 生成配置文件:mdadm –D –s >> /etc/mdadm.conf
# 停止设备:mdadm –S /dev/md0
# 激活设备:mdadm –A –s /dev/md0 激活
# 强制启动:mdadm –R /dev/md0
# 删除raid信息:mdadm --zero-superblock /dev/sdb1
练习示例
创建一个10G可用空间的RAID5。
第1步:准备3块 5G 的硬盘。并对其进行分区创建,分区格式为 fd ,大小 5G
Disk /dev/sdd: 5368 MB, 5368709120 bytes, 10485760 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x76c17432
Device Boot Start End Blocks Id System
/dev/sdd1 2048 10485759 5241856 fd Linux raid autodetect
Disk /dev/sde: 5368 MB, 5368709120 bytes, 10485760 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0xc3a00755
Device Boot Start End Blocks Id System
/dev/sde1 2048 10485759 5241856 fd Linux raid autodetect
Disk /dev/sdf: 5368 MB, 5368709120 bytes, 10485760 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x81a57d07
Device Boot Start End Blocks Id System
/dev/sdf1 2048 10485759 5241856 fd Linux raid autodetect
[root@LeeMumu ~]# partx -a /dev/sdd
partx: /dev/sdd: error adding partition 1
[root@LeeMumu ~]# partx -a /dev/sde