软RAID需要内核支持md模块

    mdadm可以将任何块设备做成RAID


mdadm:模式化命令

创建模式 -C|--create

    -l|--level=:指定级别

    -c|--chunk=:指定数据块大小,默认为64,单位为K

    -n|--raid-devices=:指定设备数

    -a:自动创建设备文件,yes|no

    -s| --scan    Scan config file or /proc/mdstat for missing information.

    -x|--spare-devices=,指定空闲磁盘个数

监控模式 -F|--folow|--monitor

增长模式 -G|--group

装配模式 -A|--assemble

管理模式 

    -a|--add,添加,若使用-f模拟损坏后,不能直接-a添加,要先-r移除后在-a添加

    -r|--remove,移除

    -f|--fail|--set-fault,模拟某个磁盘损坏,用于实验

    -S|--stop,停止阵列

查看详细信息

# mdadm -D|--detail /dev/md0


实验1 创建4G RAID 0

磁盘准备

1 创建2个2G分区,调整格式为fd


2 重读分区表

# partprobe /dev/sdb

# cat /proc/partitions


3 创建RAID 0

# mdadm -C /dev/md0 -a yes -l 0 -n 2 /dev/sdb{1,2}

mdadm: array /dev/md0 started.


4 查看

# cat /proc/mdstat

Personalities : [raid0] 

md0 : active raid0 sdb2[1] sdb1[0]

      3919616 blocks 64k chunks

查看RAID详细信息

# mdadm -D|--detail /dev/md0


5 格式化

# mke2fs -j /dev/md0


6 挂载

# mount /dev/md0 /mnt/


实验2 创建2G RAID 1

磁盘准备

1 创建2个2G分区,调整格式为fd


2 重读分区表

# partprobe /dev/sdb

# cat /proc/partitions


3 创建

# mdadm -C /dev/md1 -a yes -n 2 -l 1 /dev/sdb{3,4}

mdadm: array /dev/md1 started.

说明:RAID 1创建速度比RAID 0慢,因为有磁盘块同步


4 格式化

# mke2fs -j /dev/md1

挂载

# mount /dev/md1 /media/


5 测试

模拟损坏

# mdadm /dev/md1 -f /dev/sdb4

mdadm: set /dev/sdb4 faulty in /dev/md1

# mdadm -D /dev/md1查看到/dev/sdb4已经损坏


移除

# mdadm /dev/md1 -r /dev/sdb4

mdadm: hot removed /dev/sdb4


添加

# mdadm /dev/md1 -a /dev/sdb4


6 停止RAID

先卸载

# umount /media/

再停止

# mdadm -S /dev/md1

mdadm: stopped /dev/md1


7 重新启用,使用装配模式

# mdadm -A /dev/md1 /dev/sdb{3,4}

mdadm: /dev/md1 has been started with 2 drives.


说明:热空闲盘RAID 1

    可在原有的raid1基础上直接添加空闲raid磁盘,使其作为备用


实验3 创建2G RAID 5,1个磁盘做热备用

1 创建4个1G分区,调整格式为fd


2 重读分区表

# partprobe /dev/sdc


3 创建 RAID 5

# mdadm -C /dev/md2 -a yes -l 5 -n 3 -x 1 /dev/sdc{5,6,7,8}


4 格式化,格式化时指定条带大小,可以优化RAID性能

# mke2fs -j -E stride=16 -b 4096 /dev/md2


5 查看RAID信息

# mdadm -D /dev/md2

 Number   Major   Minor   RaidDevice State

       0       8       37        0      active sync   /dev/sdc5

       1       8       38        1      active sync   /dev/sdc6

       2       8       39        2      active sync   /dev/sdc7

 

       3       8       40        -      spare   /dev/sdc8

说明:条带size=chunk/block


实验4 创建2G RAID 01

1 创建4个1G分区,调整格式为fd


2 重读分区表

# partprobe /dev/sdc


3 先创建两个RAID 1

# mdadm -C /dev/md3 -a yes -n 2 -l 1 /dev/sdc{5,6}

# mdadm -C /dev/md4 -a yes -n 2 -l 1 /dev/sdc{7,8}


4 再在RAID 1基础上创建RAID 0

# mdadm -C /dev/md01 -a yes -n 2 -l 0 /dev/md{3,4}

# mdadm -D /dev/md01

    Number   Major   Minor   RaidDevice State

       0       9        3        0      active sync   /dev/md3

       1       9        4        1      active sync   /dev/md4

5 格式化和挂载

# mke2fs -j -E stride=16 -b 4096 /dev/md01

# mount /dev/md01 /media


6 查看磁盘使用

# df -h

/dev/md01             1.9G   35M  1.8G   2% /media


将当前raid信息保存至配置文件,便于以后装配

# mdadm --detail --scan

ARRAY /dev/md0 level=raid0 num-devices=2 metadata=0.90 UUID=899e0793:2ff1001b:c671487f:ce8b31d4

ARRAY /dev/md1 level=raid1 num-devices=2 metadata=0.90 spares=1 UUID=6c6ed1c0:e6faccf0:2c47bfa6:d4bce3ee

# mdadm --detail --scan > /etc/mdadm.conf

# mdadm -S /dev/md1

mdadm: stopped /dev/md1

# mdadm -A /dev/md1

mdadm: /dev/md1 has been started with 2 drives and 1 spare.



来自为知笔记(Wiz)