create build 或grow时使用的选项:
-n, --raid-devices=: 指定阵列中活动的device数目,不包括spare磁盘,这个数目只能由--grow修改
-x, --spare-devices=:指定初始阵列的冗余device 数目即spare device数目;
-c, --chunk=: Specify chunk size of kibibytes. 缺省为 64. chunk-size是一个重要的参数,决定了一次向阵列中每个磁盘写入数据的量
(Chunk :,可以理解为raid分储数据时每个数据段的大小(通常为32/64/128等这类数字大小);合理的选择chunk大小非常重要,若chunk过大可能一块磁盘上的带区空间就可以满足大部分的I/O操作,使得数据的读写只局限于一块硬盘上,这便不能充分发挥RAID并发的优势;如果chunk设置过小,任何很小的I/O指令都 可能引发大量的读写操作,不能良好发挥并发性能,占用过多的控制器总线带宽,也影响了阵列的整体性能。所以,在创建带区时,我们应该根据实际应用的需要,合理的选择带区大小。)
-z, --size=:组建RAID1/4/5/6后从每个device获取的空间总数;但是大小必须为chunk的倍数,还需要在每个设备最后给RAID的superblock留至少128KB的大小。
--rounding=: Specify rounding factor for linear array (==chunk size)
-l, --level=: 设定 raid level.raid的几倍
--create: 可用:linear, raid0, 0, stripe, raid1,1, mirror, raid4, 4, raid5, 5, raid6, 6, multipath, mp.
--build: 可用:linear, raid0, 0, stripe.
-p, --layout=:设定raid5 和raid10的奇偶校验规则;并且控制故障的故障模式;其中RAID-5的奇偶校验可以在设置为::eft-asymmetric, left-symmetric, right-asymmetric, right-symmetric, la, ra, ls, rs.缺省为left-symmetric
--parity: 类似于--layout=
--assume-clean:目前仅用于 --build 选项
-R, --run: 阵列中的某一部分出现在其他阵列或文件系统中时,mdadm会确认该阵列。此选项将不作确认。
-f, --force: 通常mdadm不允许只用一个device 创建阵列,而且此时创建raid5时会使用一个device作为missing drive。此选项正相反
-N,--name=: 设定阵列的名称
管理模式选项(For Manage mode):
-a, --add: 添加列出的设备到一个工作的阵列中;当阵列处于降级状态(故障状态),你添加一个设备,该设备将作为备用设备并且在该备用设备上开始数据重建。
-r, --remove:从阵列中移除列出的设备,并且该设备不能处于活动状态(是冗余盘或故障盘);
-f,--fail:将列出的设备标记为faulty状态,标记后就可以移除设备;(可以作为故障恢复的测试手段)
--set-faulty:同上
监控模式选项(For Monitor mode):
-m, --mail: 设置一个mail地址,在报警时给该mail发信;该地址可写入conf文件,在启动阵列是生效
-p, --program, --alert:当检测到一个事件时运行一个指定的程序
-y, --syslog: 设置所有的事件记录于syslog中
-t, --test: 给启动时发现的每个阵列生成test警告信息;该信息传递给mail或报警程序;(以此来测试报警信息是否能正确接收)
MISC模式选项:
Usage: mdadm options ... devices ...
-Q, --query: 查看一个device,判断它为一个 md device 或是 一个 md 阵列的一部分
-D, --detail: 打印一个或多个md device 的详细信息
-E, --examine:打印 device 上的 md superblock 的内容
开始试验,创建一个raid5
raid5至少需要3个设备,可以使分区,也可以是磁盘;在这里使用4块磁盘做环境(3块陈列磁盘,一块备用磁盘)
一:选定磁盘(或者分区)
二:创建raid
三:使用raid
三:查看磁盘阵列状态
四:raid配置文件
五:raid管理
一:选定磁盘
isk /dev/sdb: 536 MB, 536870912 bytes
64 heads, 32 sectors/track, 512 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
Disk /dev/sdb doesn't contain a valid partition table
Disk /dev/sdc: 536 MB, 536870912 bytes
64 heads, 32 sectors/track, 512 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
Disk /dev/sdc doesn't contain a valid partition table
Disk /dev/sdd: 536 MB, 536870912 bytes
64 heads, 32 sectors/track, 512 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
Disk /dev/sdd doesn't contain a valid partition table
Disk /dev/sde: 536 MB, 536870912 bytes
64 heads, 32 sectors/track, 512 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
Disk /dev/sde doesn't contain a valid partition table
[root@jxbsn ~]# mdadm -C /dev/md0 -l 5 -n 3 -x 1 /dev/sd{b,c,d,e}
mdadm: array /dev/md0 started.
-C 创建模式,创建一个阵列;
[root@jxbsn ~]# mdadm -C --help
Usage: mdadm --create device -chunk=X --level=Y --raid-devices=Z devices
-l 指定raid级别
-n 陈列中活动磁盘数目
-x 备用磁盘数目
/dev/sd{b,c,d,e} 使用这四个磁盘;前面为活动磁盘,后面为备用磁盘
就是这么简单,一个磁盘阵列就已经创建好了;
三:查看阵列状态
[root@jxbsn ~]# cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4]
md0 : active raid5 sdd[2] sde[3](S) sdc[1] sdb[0]
1048448 blocks level 5, 64k chunk, algorithm 2 [3/3] [UUU]
unused devices: <none>
通过cat /proc/mdstat信息查看所有运行的RAID阵列的状态,在第二行中首先是MD的设备名md0,active和inactive选项表示阵列是否是活动的,接着是阵列的RAID级别raid5,后面是属于阵列的块设备,方括号[]里的数字表示设备在阵列中的序号,(S)表示其是热备盘,(F)表示这个磁盘是 faulty状态。第三行中首先是阵列的大小,用块数来表示;后面有chunk-size的大小,然后是layout类型,不同RAID级别的 layout类型不同,[3/3] [UUU]表示阵列有3个磁盘并且3个磁盘都是正常运行的;在后面的试验中,会出现[3/2]和[_UU]表示阵列有3个磁盘中2个是正常运行的,下划线对应的那个位置的磁盘是faulty状态的。
查看阵列的详细信息:mdadm -D /dev/md0 或者mdadm --detail /cev/md0
[root@jxbsn ~]# mdadm -D /dev/md0
/dev/md0:
Version : 0.90
Creation Time : Tue Sep 18 15:54:09 2012
Raid Level : raid5
Array Size : 1048448 (1024.05 MiB 1073.61 MB)
Used Dev Size : 524224 (512.02 MiB 536.81 MB)
Raid Devices : 3
Total Devices : 4
Preferred Minor : 0
Persistence : Superblock is persistent
Update Time : Tue Sep 18 15:54:12 2012
State : clean
Active Devices : 3
Working Devices : 4
Failed Devices : 0
Spare Devices : 1
Layout : left-symmetric
Chunk Size : 64K
UUID : a772cb0e:45c2e79e:87d40370:2f0ef83f
Events : 0.4
Number Major Minor RaidDevice State
0 8 16 0 active sync /dev/sdb
1 8 32 1 active sync /dev/sdc
2 8 48 2 active sync /dev/sdd
3 8 64 - spare /dev/sde
四:磁盘阵列的配置文件/etc/mdadm.conf
mdadm.conf是mdadm的默认配置文件,默认不存在,需要创建,一遍在机器重启的时候重新加载阵列;
mdadm -Ds > /etc/mdadm.conf
[root@jxbsn ~]# cat /etc/mdadm.conf
ARRAY /dev/md0 level=raid5 num-devices=3 metadata=0.90 spares=1 UUID=a772cb0e:45c2e79e:87d40370:2f0ef83f
五:raid的停止和加载
1、停止某个raid
[root@jxbsn ~]# mdadm -S /dev/md0
mdadm: stopped /dev/md0
2、停止所有raid
mdadm -Ss
3、开启一个raid
[root@jxbsn ~]# mdadm -A /dev/md0 #md0必须有配置文件
mdadm: /dev/md0 has been started with 3 drives and 1 spare.
4、开启配置文件中所有raid
mdadm -As
5、如果没有配置文件,加载一个raid的时候需要制定设备
[root@jxbsn ~]# mdadm -A /dev/md0 /dev/sdb /dev/sdc /dev/sdd /dev/sde
mdadm: /dev/md0 has been started with 3 drives and 1 spare.
6、如果没有配置文件,也不知道都有哪些设备在raid中,就需要逐个检查设备是否是raid设备以及包含的信息(这些信息在设备的超级块中);根据信息装载raid
[root@jxbsn ~]# mdadm -E /dev/sde
/dev/sde:
Magic : a92b4efc
Version : 0.90.00
UUID : 91f772df:e58c04b0:275ea0c6:0e04f184
Creation Time : Tue Sep 18 17:17:40 2012
Raid Level : raid5
Used Dev Size : 524224 (512.02 MiB 536.81 MB)
Array Size : 1048448 (1024.05 MiB 1073.61 MB)
Raid Devices : 3
Total Devices : 4
Preferred Minor : 0
Update Time : Tue Sep 18 17:17:43 2012
State : clean
Active Devices : 3
Working Devices : 4
Failed Devices : 0
Spare Devices : 1
Checksum : f6cbd2a7 - correct
Events : 4
Layout : left-symmetric
Chunk Size : 64K
Number Major Minor RaidDevice State
this 3 8 64 3 spare /dev/sde
0 0 8 16 0 active sync /dev/sdb
1 1 8 32 1 active sync /dev/sdc
2 2 8 48 2 active sync /dev/sdd
3 3 8 64 3 spare /dev/sde