大纲
一、RAID概念
二、RAID级别
三、mdadm各模式介绍
四、软件RAID实现
五、各RAID级别对比
一、RAID概念
1987年, Patterson、Gibson和Katz这三位工程师在加州大学伯克利分校发表了题为《A Case of Redundant Array of Inexpensive Disks(廉价磁盘冗余阵列方案)》的论文,其基本思想就是将多只容量较小的、相对廉价的硬盘驱动器进行有机组合,使其性能超过一只昂贵的大硬盘。但是在后来的发展与实践中发现,想要完成在生产环境中能够达到标准的话,代价已经比当时的SLED盘便宜多少,所以后来便又重新定义了RAID的概念,将Inexpensive改为了Independent的意思,所以现在的RAID全称是Redundant Array of Independent Disks,译为独立冗余磁盘阵列
RAID分类
硬RAID:由装载在主板上的RAID卡结合驱动程序实现,Linux下表现为/dev/sd#
软RAID:由内核模块MD(Multi Device)软件方式模拟实现的软件RAID,Linux下表现为/dev/md#性能比硬件RAID差,生产环境建议不到万不得已不要使用软件RAID
二、RAID级别
1.、RAID0:Striping(条带模式),连续以位或字节为单位分割数据,并行读/写于多个磁盘上,因此具有很高的数据传输率,但它没有数据冗余,因此并不能算是真正的RAID结构。RAID 0只是单纯地提高性能,并没有为数据的可靠性提供保证,而且其中的一个磁盘失效将影响到所有数据。因此,RAID 0不能应用于数据安全性要求高的场合
2、RAID 1:mirroring(镜像模式),它是通过磁盘数据镜像实现数据冗余,在成对的独立磁盘上产生互为备份的数据。当原始数据繁忙时,可直接从镜像拷贝中读取数据,因此RAID 1可以提高读取性能。RAID 1是磁盘阵列中单位成本最高的,但提供了很高的数据安全性和可用性。当一个磁盘失效时,系统可以自动切换到镜像磁盘上读写,而不需要重组失效的数据
2、RAID 2:将数据条块化地分布于不同的硬盘上,条块单位为位或字节,并使用称为“加重平均纠错码(海明码)”的编码技术来提供错误检查及恢复。这种编码技术需要多个磁盘存放检查及恢复信息,使得RAID 2技术实施更复杂,因此在商业环境中很少使用
3、RAID 3:它同RAID 2非常类似,都是将数据条块化分布于不同的硬盘上,区别在于RAID 3使用简单的奇偶校验,并用单块磁盘存放奇偶校验信息。如果一块磁盘失效,奇偶盘及其他数据盘可以重新产生数据;如果奇偶盘失效则不影响数据使用。RAID 3对于大量的连续数据可提供很好的传输率,但对于随机数据来说,奇偶盘会成为写操作的瓶颈
4、RAID 4:RAID 4同样也将数据条块化并分布于不同的磁盘上,但条块单位为块或记录。RAID 4使用一块磁盘作为奇偶校验盘,每次写操作都需要访问奇偶盘,这时奇偶校验盘会成为写操作的瓶颈,因此RAID 4在商业环境中也很少使用
5、RAID 5:至少需要3块盘,数据同样是分散存储与多个磁盘之上,但是存储数据的同时也会存储校验码,而校验码轮流存储到多块磁盘上,读写性能都有提升,同时也有冗余能力
6、RAID 6:与RAID 5相比,RAID 6增加了第二个独立的奇偶校验信息块。两个独立的奇偶系统使用不同的算法,数据的可靠性非常高,即使两块磁盘同时失效也不会影响数据的使用。但RAID 6需要分配给奇偶校验信息更大的磁盘空间,相对于RAID 5有更大的“写损失”,因此“写性能”非常差。较差的性能和复杂的实施方式使得RAID 6很少得到实际应用
7、RAID 1+0:Raid 10是一个Raid 0与Raid1的组合体,它是利用奇偶校验实现条带集镜像,所以它继承了Raid0的快速和Raid1的安全。我们知道,RAID 1在这里就是一个冗余的备份阵列,而RAID 0则负责数据的读写阵列。数据是从主通路分出两路,做Striping操作,即把数据分割,而这分出来的每一路则再分两路,做Mirroring操作,即互做镜像
8、RAID 0+1:RAID 01类似RAID10,只不过RAID 01中的RAID 0和RAID 1的组合次序相反,RAID 01中数据是从主通路分出两路,先做Mirroring操作,即互做镜像,而这分出来的每一路则再分两路,后做Striping操作,即把数据分割
三、mdam各模式介绍
mdadm - manage MD devices aka Linux Software RAID # 管理软RAID工具SYNOPSIS mdadm [mode][options] 创建模式: -C:--create,创建新的阵列,如 mdadm -C /dev/md0 -l 0 -n 2 -a yes /dev/sdb{1,2} 专用选项: -l #:级别 -n #:设备个数 -a {yes|no}:是否自动为其创建设备文件 -c #:CHUNK大小, 2^n,默认为64K -x #:指定空闲盘个数,-x后的空闲盘数与-n设备数之和应等于后面指定的磁盘数 管理模式 -f:--fail,模拟磁盘损坏,如 mdadm /dev/md# -f /dev/sda7 -r:--remove,移除模拟损坏的盘,如 mdadm /dev/md# -r/dev/sda7 -a:--add,装载空闲盘,如 mdadm /dev/md# -a /dev/sda7 -S:--stop,停止一个阵列,如 mdadm -S /dev/md# 监控模式 -F:--monitor,选择监控模式 -D:--detail,显示指定RAID的详细信息,如 mdadm -Ds >> /etc/mdadm.conf可保存配置信息至配置文件 增长模式 -G:--grow,改变激活阵列的大小或形态 装配模式 -A:--assemble,装配一个此前已存在的阵列,如 mdadm -A /dev/md0 /dev/sdb{1,2}
四、软件RAID实现
RAID 0实现
RAID 1 实现
RAID 5实现
RAID 10实现
系统环境:CentOS6.5
mdadm-3.3.2-5.el6.x86_64
同一块磁盘的四个分区:/dev/sdb{1,2,3,4}
注意:生产环境建议尽量不要做软RAID,实在要做也要弄单独的磁盘做,而不是我这样弄四个分区,我这里只是演示方便,其实四个分区没有任何效果。
以下两步的结果是实验的必要条件,故放在这里,下面每个RAID实例都是在此基础上演示的。
首先安装mdadm软件,已经安装了的可以略过此步
[root@soysauce ~]# man mdadmNo manual entry for mdadm[root@soysauce ~]# yum install -y mdadm
接着准备四个分区
[root@soysauce ~]# fdisk /dev/sdbWARNING: DOS-compatible mode is deprecated. It's strongly recommended to switch off the mode (command 'c') and change display units to sectors (command 'u').Command (m for help): p # 一块新的磁盘,没有任何分区Disk /dev/sdb: 21.5 GB, 21474836480 bytes255 heads, 63 sectors/track, 2610 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0x84c99918 Device Boot Start End Blocks Id SystemCommand (m for help): n # 新建一个分区Command action e extended p primary partition (1-4)p # 主分区Partition number (1-4): 1 # 分区号为1First cylinder (1-2610, default 1): # 指定起始柱面位置Using default value 1Last cylinder, +cylinders or +size{K,M,G} (1-2610, default 2610): +2G # 大小为2GCommand (m for help): nCommand action e extended p primary partition (1-4)pPartition number (1-4): 2First cylinder (263-2610, default 263): Using default value 263Last cylinder, +cylinders or +size{K,M,G} (263-2610, default 2610): +2G Command (m for help): nCommand action e extended p primary partition (1-4)pPartition number (1-4): 3First cylinder (525-2610, default 525): Using default value 525Last cylinder, +cylinders or +size{K,M,G} (525-2610, default 2610): +2GCommand (m for help): nCommand action e extended p primary partition (1-4)pSelected partition 4First cylinder (787-2610, default 787): Using default value 787Last cylinder, +cylinders or +size{K,M,G} (787-2610, default 2610): +2GCommand (m for help): pDisk /dev/sdb: 21.5 GB, 21474836480 bytes255 heads, 63 sectors/track, 2610 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0x84c99918 Device Boot Start End Blocks Id System/dev/sdb1 1 262 2104483+ 83 Linux/dev/sdb2 263 524 2104515 83 Linux/dev/sdb3 525 786 2104515 83 Linux/dev/sdb4 787 1048 2104515 83 LinuxCommand (m for help): t # 调整分区类型为fdPartition number (1-4): 1Hex code (type L to list codes): fdChanged system type of partition 1 to fd (Linux raid autodetect)Command (m for help): tPartition number (1-4): 2Hex code (type L to list codes): fdChanged system type of partition 2 to fd (Linux raid autodetect)Command (m for help): tPartition number (1-4): 3Hex code (type L to list codes): fdChanged system type of partition 3 to fd (Linux raid autodetect)Command (m for help): tPartition number (1-4): 4Hex code (type L to list codes): fdChanged system type of partition 4 to fd (Linux raid autodetect)Command (m for help): pDisk /dev/sdb: 21.5 GB, 21474836480 bytes255 heads, 63 sectors/track, 2610 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0x84c99918 Device Boot Start End Blocks Id System/dev/sdb1 1 262 2104483+ fd Linux raid autodetect/dev/sdb2 263 524 2104515 fd Linux raid autodetect/dev/sdb3 525 786 2104515 fd Linux raid autodetect/dev/sdb4 787 1048 2104515 fd Linux raid autodetectCommand (m for help): wThe partition table has been altered!Calling ioctl() to re-read partition table.Syncing disks.
1、RAID 0
[root@soysauce ~]# mdadm -C /dev/md0 -a yes -l 0 -n 2 /dev/sdb{1,2} # 创建RAID 0mdadm: /dev/sdb1 appears to contain an ext2fs file system size=2104480K mtime=Thu Jan 1 08:00:00 1970Continue creating array? y # 因为这个sdb1以前创建过文件系统mdadm: Defaulting to version 1.2 metadatamdadm: array /dev/md0 started. # 显示创建成功并启动了[root@soysauce ~]# cat /proc/mdstat Personalities : [raid0] md0 : active raid0 sdb2[1] sdb1[0] # 这里可以看到RAID 0状态信息 4204544 blocks super 1.2 512k chunks unused devices:[root@soysauce ~]# mdadm -D /dev/md0 # 查看RAID阵列的详细状态信息/dev/md0: Version : 1.2 Creation Time : Wed Nov 25 14:32:22 2015 Raid Level : raid0 Array Size : 4204544 (4.01 GiB 4.31 GB) Raid Devices : 2 Total Devices : 2 Persistence : Superblock is persistent Update Time : Wed Nov 25 14:32:22 2015 State : clean Active Devices : 2Working Devices : 2 Failed Devices : 0 Spare Devices : 0 Chunk Size : 512K Name : soysauce:0 (local to host soysauce) UUID : 1cdf117e:769e1279:e7c96b21:2009ec4f Events : 0 Number Major Minor RaidDevice State 0 8 17 0 active sync /dev/sdb1 1 8 18 1 active sync /dev/sdb2[root@soysauce ~]# mdadm -D -s >> /etc/mdadm.conf # 将RAID配置信息保存至配置文件[root@soysauce ~]# mdadm -S /dev/md0 # 停止RAID 0mdadm: stopped /dev/md0[root@soysauce ~]# cat /proc/mdstat # 查看所有RAID信息,因为停止了,所以为空Personalities : [raid0] unused devices: [root@soysauce ~]# mdadm -A /dev/md0 # 装配RAID 0,因为配置信息保存了,所有不用指定磁盘mdadm: /dev/md0 has been started with 2 drives.[root@soysauce ~]# mke2fs -t ext4 /dev/md0 # 格式化,创建文件系统mke2fs 1.41.12 (17-May-2010)Filesystem label=OS type: LinuxBlock size=4096 (log=2)Fragment size=4096 (log=2)Stride=128 blocks, Stripe width=256 blocks262944 inodes, 1051136 blocks52556 blocks (5.00%) reserved for the super userFirst data block=0Maximum filesystem blocks=107793612833 block groups32768 blocks per group, 32768 fragments per group7968 inodes per groupSuperblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736Writing inode tables: done Creating journal (32768 blocks): doneWriting superblocks and filesystem accounting information: doneThis filesystem will be automatically checked every 20 mounts or180 days, whichever comes first. Use tune2fs -c or -i to override.[root@soysauce ~]# mount /dev/md0 /data/ # 挂载之后就可以使用了[root@soysauce ~]# ls /data/lost+found
2、RAID 1
[root@soysauce ~]# mdadm -C /dev/md1 -a yes -l 1 -n 2 /dev/sdb{1,2}mdadm: array /dev/md1 started.[root@soysauce ~]# cat /proc/mdstat # 正在同步Personalities : [raid0] [raid1] md1 : active raid1 sdb2[1] sdb1[0] 2102400 blocks super 1.2 [2/2] [UU] [================>....] resync = 82.1% (1726912/2102400) finish=0.0min speed=132839K/sec unused devices:[root@soysauce ~]# mke2fs -t ext4 /dev/md1 # 格式化,创建ext4文件系统mke2fs 1.41.12 (17-May-2010) Filesystem label=OS type: LinuxBlock size=4096 (log=2)Fragment size=4096 (log=2)Stride=0 blocks, Stripe width=0 blocks131648 inodes, 525600 blocks26280 blocks (5.00%) reserved for the super userFirst data block=0Maximum filesystem blocks=54106521617 block groups32768 blocks per group, 32768 fragments per group7744 inodes per groupSuperblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912Writing inode tables: done Creating journal (16384 blocks): doneWriting superblocks and filesystem accounting information: doneThis filesystem will be automatically checked every 33 mounts or180 days, whichever comes first. Use tune2fs -c or -i to override.[root@soysauce ~]# mount /dev/md1 /data/ # 挂载使用[root@soysauce ~]# cp /etc/inittab /data/[root@soysauce ~]# cd /data/[root@soysauce data]# mdadm -D /dev/md1 # 查看RAID阵列详细信息/dev/md1: Version : 1.2 Creation Time : Wed Nov 25 15:13:25 2015 Raid Level : raid1 Array Size : 2102400 (2.01 GiB 2.15 GB) Used Dev Size : 2102400 (2.01 GiB 2.15 GB) Raid Devices : 2 Total Devices : 2 Persistence : Superblock is persistent Update Time : Wed Nov 25 15:18:06 2015 State : clean Active Devices : 2Working Devices : 2 Failed Devices : 0 Spare Devices : 0 Name : soysauce:1 (local to host soysauce) UUID : 6330ff0a:f2d76826:9a24d91d:e218523f Events : 17 Number Major Minor RaidDevice State 0 8 17 0 active sync /dev/sdb1 1 8 18 1 active sync /dev/sdb2[root@soysauce data]# mdadm /dev/md1 -f /dev/sdb1 # 模拟sdb1损坏mdadm: set /dev/sdb1 faulty in /dev/md1[root@soysauce data]# mdadm -D /dev/md1 # 再次查看RAID 1信息/dev/md1: Version : 1.2 Creation Time : Wed Nov 25 15:13:25 2015 Raid Level : raid1 Array Size : 2102400 (2.01 GiB 2.15 GB) Used Dev Size : 2102400 (2.01 GiB 2.15 GB) Raid Devices : 2 Total Devices : 2 Persistence : Superblock is persistent Update Time : Wed Nov 25 15:19:11 2015 State : clean, degraded Active Devices : 1Working Devices : 1 Failed Devices : 1 Spare Devices : 0 Name : soysauce:1 (local to host soysauce) UUID : 6330ff0a:f2d76826:9a24d91d:e218523f Events : 19 Number Major Minor RaidDevice State 0 0 0 0 removed 1 8 18 1 active sync /dev/sdb2 0 8 17 - faulty /dev/sdb1 # 此时sdb1已被标记为faulty[root@soysauce data]# tail -5 inittab # 此时仍然可以正常查看文件# 4 - unused# 5 - X11# 6 - reboot (Do NOT set initdefault to this)# id:3:initdefault:[root@soysauce data]# mdadm /dev/md1 -r /dev/sdb1 # 移除模拟损坏的sdb1mdadm: hot removed /dev/sdb1 from /dev/md1[root@soysauce data]# mdadm -D /dev/md1 # 再次查看RAID阵列信息/dev/md1: Version : 1.2 Creation Time : Wed Nov 25 15:13:25 2015 Raid Level : raid1 Array Size : 2102400 (2.01 GiB 2.15 GB) Used Dev Size : 2102400 (2.01 GiB 2.15 GB) Raid Devices : 2 Total Devices : 1 Persistence : Superblock is persistent Update Time : Wed Nov 25 15:22:52 2015 State : clean, degraded Active Devices : 1Working Devices : 1 Failed Devices : 0 Spare Devices : 0 Name : soysauce:1 (local to host soysauce) UUID : 6330ff0a:f2d76826:9a24d91d:e218523f Events : 26 Number Major Minor RaidDevice State 0 0 0 0 removed # 此时可以看到sdb1已经被移除了 1 8 18 1 active sync /dev/sdb2[root@soysauce data]# mdadm /dev/md1 -a /dev/sdb1 # 再加进去一块盘[root@soysauce data]# mdadm -D /dev/md1 /dev/md1: Version : 1.2 Creation Time : Wed Nov 25 15:13:25 2015 Raid Level : raid1 Array Size : 2102400 (2.01 GiB 2.15 GB) Used Dev Size : 2102400 (2.01 GiB 2.15 GB) Raid Devices : 2 Total Devices : 2 Persistence : Superblock is persistent Update Time : Wed Nov 25 15:25:05 2015 State : clean, degraded, recovering Active Devices : 1Working Devices : 2 Failed Devices : 0 Spare Devices : 1 Rebuild Status : 31% complete Name : soysauce:1 (local to host soysauce) UUID : 6330ff0a:f2d76826:9a24d91d:e218523f Events : 57 Number Major Minor RaidDevice State 2 8 17 0 spare rebuilding /dev/sdb1 1 8 18 1 active sync /dev/sdb2[root@soysauce data]# cat /proc/mdstat # 此时正在同步数据Personalities : [raid0] [raid1] md1 : active raid1 sdb1[2] sdb2[1] 2102400 blocks super 1.2 [2/1] [_U] [=>...................] recovery = 9.7% (206016/2102400) finish=0.1min speed=206016K/sec unused devices: [root@soysauce data]# cat /proc/mdstat # 可以看到此时已经同步完成Personalities : [raid0] [raid1] md1 : active raid1 sdb1[2] sdb2[1] 2102400 blocks super 1.2 [2/2] [UU] unused devices: [root@soysauce data]# mdadm /dev/md1 -f /dev/sdb2 # 再移除sdb2mdadm: set /dev/sdb2 faulty in /dev/md1[root@soysauce data]# tail -5 inittab # 刚才加进来的sdb1数据已经同步完成,数据可以正常访问# 4 - unused# 5 - X11# 6 - reboot (Do NOT set initdefault to this)# id:3:initdefault:
3、RAID 5
[root@soysauce /]# mdadm -C /dev/md5 -a yes -l 5 -n 3 -x 1 -c 64 /dev/sdb{1,2,3,4}mdadm: array /dev/md5 started.[root@soysauce /]# cat /proc/mdstat # 正在做同步Personalities : [raid0] [raid1] [raid6] [raid5] [raid4] md5 : active raid5 sdb3[4] sdb4[3](S) sdb2[1] sdb1[0] 4204800 blocks super 1.2 level 5, 64k chunk, algorithm 2 [3/2] [UU_] [>....................] recovery = 2.5% (52888/2102400) finish=2.5min speed=13222K/sec unused devices:[root@soysauce /]# mdadm -D /dev/md5 # 查看RAID阵列信息/dev/md5: Version : 1.2 Creation Time : Wed Nov 25 16:03:06 2015 Raid Level : raid5 Array Size : 4204800 (4.01 GiB 4.31 GB) Used Dev Size : 2102400 (2.01 GiB 2.15 GB) Raid Devices : 3 Total Devices : 4 Persistence : Superblock is persistent Update Time : Wed Nov 25 16:03:16 2015 State : clean, degraded, recovering Active Devices : 2Working Devices : 4 Failed Devices : 0 Spare Devices : 2 Layout : left-symmetric Chunk Size : 64K # chunk大小为64k Rebuild Status : 6% complete Name : soysauce:5 (local to host soysauce) UUID : ede33181:d3d2cea6:c5a4c03e:9a12c4a3 Events : 2 Number Major Minor RaidDevice State 0 8 17 0 active sync /dev/sdb1 1 8 18 1 active sync /dev/sdb2 4 8 19 2 spare rebuilding /dev/sdb3 3 8 20 - spare /dev/sdb4[root@soysauce ~]# mke2fs -t ext4 -b 4096 -E stride=16 /dev/md5 # 格式化为ext4文件系统,并设置stride为chunk/block做性能优化mke2fs 1.41.12 (17-May-2010)Filesystem label=OS type: LinuxBlock size=4096 (log=2)Fragment size=4096 (log=2)Stride=16 blocks, Stripe width=32 blocks262944 inodes, 1051200 blocks52560 blocks (5.00%) reserved for the super userFirst data block=0Maximum filesystem blocks=107793612833 block groups32768 blocks per group, 32768 fragments per group7968 inodes per groupSuperblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736Writing inode tables: done Creating journal (32768 blocks): doneWriting superblocks and filesystem accounting information: doneThis filesystem will be automatically checked every 39 mounts or180 days, whichever comes first. Use tune2fs -c or -i to override.[root@soysauce /]# mdadm -Ds >> /etc/mdadm.conf # RAID配置信息保存至配置文件,下次装备时不用指定磁盘[root@soysauce /]# mount /dev/md5 /mnt/ # 挂载使用[root@soysauce /]# cd /mnt/[root@soysauce mnt]# lslost+found[root@soysauce mnt]# cd ..[root@soysauce /]# umount /dev/md5 # 卸载[root@soysauce /]# mdadm -S /dev/md5 # 停止阵列mdadm: stopped /dev/md5[root@soysauce /]# mdadm -A /dev/md5 # 重新装配,若是上面没有保存配置文件,则要求指定磁盘mdadm: /dev/md5 has been started with 3 drives and 1 spare.[root@CentOS6 ~]# mdadm /dev/md5 -a /dev/sdc1 # 添加一块新的盘mdadm: added /dev/sdc1[root@CentOS6 ~]# mdadm -D /dev/md5 # 再次查看RAID阵列信息/dev/md5: Version : 1.2 Creation Time : Wed Nov 25 16:03:06 2015 Raid Level : raid5 Array Size : 4204800 (4.01 GiB 4.31 GB) Used Dev Size : 2102400 (2.01 GiB 2.15 GB) Raid Devices : 3 Total Devices : 5 Persistence : Superblock is persistent Update Time : Wed Nov 25 16:22:47 2015 State : clean Active Devices : 3Working Devices : 5 Failed Devices : 0 Spare Devices : 2 Layout : left-symmetric Chunk Size : 64K Name : soysauce:5 UUID : ede33181:d3d2cea6:c5a4c03e:9a12c4a3 Events : 25 Number Major Minor RaidDevice State 0 8 17 0 active sync /dev/sdb1 1 8 18 1 active sync /dev/sdb2 4 8 19 2 active sync /dev/sdb3 3 8 20 - spare /dev/sdb4 5 8 33 - spare /dev/sdc1[root@CentOS6 ~]# mdadm -G /dev/md5 -n 5 # 扩展RAID 5到5块盘[root@CentOS6 ~]# mdadm -D /dev/md5 # 再次查看/dev/md5: Version : 1.2 Creation Time : Wed Nov 25 16:03:06 2015 Raid Level : raid5 Array Size : 4204800 (4.01 GiB 4.31 GB) Used Dev Size : 2102400 (2.01 GiB 2.15 GB) Raid Devices : 5 Total Devices : 5 Persistence : Superblock is persistent Update Time : Wed Nov 25 16:23:27 2015 State : clean, reshaping Active Devices : 5Working Devices : 5 Failed Devices : 0 Spare Devices : 0 Layout : left-symmetric Chunk Size : 64K Reshape Status : 0% complete Delta Devices : 2, (3->5) Name : soysauce:5 UUID : ede33181:d3d2cea6:c5a4c03e:9a12c4a3 Events : 36 Number Major Minor RaidDevice State 0 8 17 0 active sync /dev/sdb1 1 8 18 1 active sync /dev/sdb2 4 8 19 2 active sync /dev/sdb3 5 8 33 3 active sync /dev/sdc1 3 8 20 4 active sync /dev/sdb4 # 此时sdb4和sdc1都不再作为空闲盘使用了
4、RAID 10
[root@CentOS6 ~]# mdadm -C /dev/md11 -a yes -l 1 -n 2 -c 64 /dev/sdb{1,2} # 先创建一个RAID 1mdadm: Defaulting to version 1.2 metadatamdadm: array /dev/md11 started.[root@CentOS6 ~]# mdadm -C /dev/md12 -a yes -l 1 -n 2 -c 64 /dev/sdb{3,4} # 再创建一个RAID 1mdadm: Defaulting to version 1.2 metadatamdadm: array /dev/md12 started.[root@CentOS6 ~]# mdadm -C /dev/md10 -l 0 -n 2 -a yes -c 64 /dev/md{11,12} # 在创建一个RAID 0mdadm: Defaulting to version 1.2 metadatamdadm: array /dev/md10 started.[root@CentOS6 ~]# mdadm -D /dev/md10 # 查看RAID阵列信息/dev/md10: Version : 1.2 Creation Time : Wed Nov 25 16:34:43 2015 Raid Level : raid0 Array Size : 4200768 (4.01 GiB 4.30 GB) Raid Devices : 2 Total Devices : 2 Persistence : Superblock is persistent Update Time : Wed Nov 25 16:34:43 2015 State : clean Active Devices : 2Working Devices : 2 Failed Devices : 0 Spare Devices : 0 Chunk Size : 64K Name : CentOS6.5:10 (local to host CentOS6.5) UUID : 9ad9152e:e37caee8:d301e917:a78cddb8 Events : 0 Number Major Minor RaidDevice State 0 9 11 0 active sync /dev/md11 1 9 12 1 active sync /dev/md12[root@CentOS6 ~]# mdadm -Ds >> /etc/mdadm.conf # 保存配置信息至配置文件中[root@CentOS6 ~]# mke2fs -t ext4 -b 4096 -E stride=16 /dev/md10 # 格式化为ext4文件系统,并设置stride为chunk/block做性能优化[root@soysauce /]# mount /dev/md10 /mnt/ # 挂载使用[root@soysauce /]# cd /mnt/[root@soysauce mnt]# lslost+found
五、各RAID级别对比
注:此表来源于