软件磁盘阵列(Software RAID)
不组成磁盘阵列时,磁盘与磁盘之间是没有任何关系的,假设把文件、数据全部放到磁盘A,那和磁盘B是完全没有任何关系的,两块磁盘的完全独立的两个数据仓库,即:Just a bunch of disk(只是一堆磁盘),JBOD结构,这样就导致有一个弊端,比如我们要调取磁盘A里的数据,A盘是全力工作的,而磁盘B是空闲的,这样就会导致磁盘性能的浪费,所以为了提升效率以及数据的安全,有了磁盘阵列,RAID。
什么是RAID?
磁盘阵列全称【Redundant Arrays of Inexpensive Disks:RAID】,独立冗余磁盘阵列
RAID可以将多个较小的磁盘整合成为一个较大的磁盘设备,而这个较大的磁盘功能不仅仅只是存储,还具有数据保护的功能。
整个RAID由于选择的level(0~7)不同,整合后的磁盘具有的功能也不同:
RAID0(等量模式,stripe):性能最佳使用相同型号与容量的磁盘来组成时效果较佳,该模式的RAID会将磁盘先切出等量的数据块(
chunk,4KB~1MB),当一个文件要写入RAID时,该文件会根据chunk的大小切割好,再依序放到各个磁盘中,由于每个磁盘会交错的存放数据,因此当我们的数据要写入RAID时,数据会被等量的放置在各个磁盘上,例如有两块磁盘组成的RAID0,当有一个100MB的数据要写入,则每个磁盘会各被分配到50MB的存储量,如下图
上图的意思是,在组成RAID0的时候,每块磁盘都先分割为小数据块(
chunk),当数据写入RAID时数据会先被切割成符合chunk的大小,然后再依序地放置到不同的磁盘中,因此越多块磁盘组成的RAID0,性能会越好,因为每块磁盘负责的数据量就更低了,但是,也正因为数据是分散存储的,数据损坏的风险也不容小觑,在RAID0中,只要有任何一块磁盘损坏,在RAID上面的所有数据都会遗失且无法读取此外,如果使用不同容量的磁盘来组成RAID0时,比如一块200GB与一块500GB的磁盘组成RAID0,前400GB的数据可以同时写入两块盘(各200GB),但是超过之后,因为200GB容量的盘已满,所以剩余的数据都会堆到500GB的盘中,反而性能就会变差,这就会造成木桶短板效应
RAID1(镜像模式,mirror):完整备份该模式也需要相同的磁盘容量,最好是一模一样的磁盘,如果是不同容量的磁盘组成RAID1时,那么总容量将以最小的那一块磁盘为主,该RAID模式主要是让
同一份数据,完整的保存在两块磁盘上面,例如我有一个100MB的文件,且我仅有两块磁盘组成RAID1时,那么这两块磁盘将会同步写入100MB到他们的存储仓库中,也因此导致整体的RAID容量少了几乎50%,由于两块磁盘的内容一模一样,所以也称为镜像模式
由于同一份数据会被分别写入到其他不同的磁盘中,因此如果要写入100MB时,数据传送到I/O总线后会被复制多份到各个磁盘,结果就是数据量感觉变大了,在大量写入RAID1的情况下,写入性能可能会变得非常差(因为南桥只有一个)
- 使用硬盘阵列卡会主动地复制一份而不适用系统的I/O总线,性能方面还可以,但是软件磁盘阵列性能就不是很好了。
- 由于两块磁盘内的数据一模一样,所以任何一块磁盘损坏时,我们的数据还是可以保存下来,所以RAID1的优点在于:数据的备份,不过由于磁盘容量有一般用在备份,因此总容量会是全部磁盘容量的一半而已
RAID1+0,RAID0+1RAID0性能好,但是数据不安全,RAID1数据安全,但是性能不好,将二者整合起来组成RAID就是
RAID10或RAID01RAID10- 让两块磁盘组成
RAID1 - 再将各组
RAID1组成一组RAID0
- 让两块磁盘组成
RAID01- 让两块磁盘组成
RAID0 - 再让各组
RAID0组成一组RAID1
- 让两块磁盘组成
为什么推荐
RAID10?当我们有20块磁盘组成的系统,每两块组成
RAID1,这样我们有10组组成了RAID1的可以自己回复的系统,在此基础上将10组RAID1组成一组RAID0,速度能提升10倍注意:因为每组
RAID1都是独立存在的,所以任何一块磁盘损坏,数据都是从另一块磁盘直接复制过来重建,并不像RAID5和RAID6必须要整组RAID的磁盘共同共同建立一块独立的磁盘系统,且RAID1与RAID0是不需要经过计算的(striping),读写性能也比其他RAID级别好很多RAID2
利用
海明码校验的一种磁盘阵列,在RAID0的基础上增加了纠错能力(并非容灾,还是很容易坏),RAID2里将2的n次方作为纠错的校验码,其他的位置才是原始数据,如图
编码数位越少,磁盘利用率越低
由于写入数据可以往多块磁盘里写入,所以其具有和RAID0较为相似的并发性能,但是因为写入数据需要计算校验码,读取数据也需要计算校验码用于纠错,所以性能开销较大
RAID3
在RAID0的基础上增加了一块磁盘的容灾能力
如上图所示,三块磁盘组成的RAID0,将第四块磁盘专门用来存放前三块磁盘的恢复码,在前面三块磁盘任意一个损坏时,可以根据另外两块磁盘的数据和第四块磁盘的恢复码恢复损坏磁盘的数据,而第四块磁盘损坏也不会影响到前三块磁盘内的数据,因此就是为什么说RAID3增加了1块磁盘的容灾能力,RAID3的性能非常接近RAID0
RAID4
和RAID3很像,也是在RAID0的基础上增加了一块恢复码的磁盘
RAID3在存放文件的时候是这样的,例:将一块文件分成三份,每一再分三块加一份恢复码
而RAID4是将文件拆分成三块后连同恢复码直接写入,如下图
和RAID3的区别在于,RAID3是将一个数据块拆分,分开存,其校验码也是根据拆分开的那部分计算的,而RAID4是按区块存储,校验码是根据几个数据区块遗器进行计算的
RAID5:性能与数据备份的均衡考虑RAID5需要三块以上的磁盘才能组成,这种磁盘阵列的数据写入有点类似RAID0,不过每个循环的写入过程中(striping),在每块磁盘还会加入一个奇偶校验数据(Parity)这个数据会记录其他磁盘的备份数据,用于当有磁盘损坏时的恢复码读写情况
每个循环写入时,都会有部分的奇偶校验值(
parity)被记录下来,并且每次都记录不同的磁盘,因此任何一个磁盘损坏时都能借其他磁盘的恢复码重新恢复原本磁盘内的数据。由于有奇偶校验值的存在,所以RAID5得总容量会是整体磁盘数量减一块,如下图,原本的三块磁盘就剩下2块磁盘的容量,而且当损坏的磁盘数量>=2时,整组RAID5的数据就损坏了,RAID5只能支持一块磁盘的损坏情况

读写性能
- 与
RAID0相比,RAID5读取性能还算可以,不过写入性能没见得提升多少,主要是因为RAID5得数据还得要经过计算奇偶校验值(parity)的关系,由于加上计算的操作,所以写入的性能与系统的硬件关系较大,尤其是使用软件磁盘阵列时,奇偶校验值是通过CPU去计算的,而非专职的磁盘阵列卡
- 与
Spare Disk:热备份磁盘- 通常磁盘阵列里的某一块磁盘坏了,我们需要先关机,然后换掉坏的磁盘,磁盘阵列才会开始主动重建(
rebuild)原本坏掉的那块磁盘数据到新的磁盘上 - 为了让系统可以实时地在磁盘坏掉时主动地重建,就需要热备份磁盘(
spare disk)的辅助。所谓的热磁盘备份就是一块或多块没有包含在原本磁盘阵列级别中的磁盘,这块磁盘平时不会被磁盘阵列所使用,当磁盘阵列有任何磁盘损坏时,这块热备份磁盘就会被主动拉进磁盘阵列中,并将坏掉的那块硬盘移除磁盘阵列,然后立即重建数据系统。当然,如果磁盘阵列支持热插拔就更完美了,直接将坏掉的那块磁盘拔除并换一块新的,再将那块新的磁盘设置为热备份磁盘即可
- 通常磁盘阵列里的某一块磁盘坏了,我们需要先关机,然后换掉坏的磁盘,磁盘阵列才会开始主动重建(
磁盘阵列的优点
- 数据安全与可靠性:并非指网络信息安全,而是在磁盘损坏时,数据是否还能够安全地恢复或使用
- 读写性能:例如RAID0可以加强读写性能,让系统I/O部分得以改善
- 容量:让多快磁盘组合起来,所以单一文件系统可以有相当大的容量
| 项目 | RAID 0 | RAID 1 | RAID 10 | RAID 5 | RAID 6 |
|---|---|---|---|---|---|
| 最少磁盘数 | 2 | 2 | 4 | 3 | 4 |
| 最大容错磁盘数(1) | 无 | n-1 | n/2 | 1 | 2 |
| 数据安全性(1) | 完全没有 | 最佳 | 最佳 | 好 | 比RAID 5好 |
| 理论写入性能(2) | n | 1 | n/2 | <n-1 | <n-2 |
| 理论读出性能(2) | n | n | n | <n-1 | <n-2 |
| 可用容量(3) | n | 1 | n/2 | n-1 | n-2 |
| 一般应用 | 强调性能但数据不重要的环境 | 数据与备份 | 服务器、云系统常用 | 数据与备份 | 数据与备份 |
Considerations:因为RAID5、RAID6读写都需要经过计算奇偶校验值,所以读写性能都不会刚好满足于使用的磁盘数量
硬件RAID,软件RAID
硬件RAID:通过磁盘阵列卡来完成磁盘阵列
软件RAID:利用软件来模拟磁盘阵列的任务,因此会损耗较多的系统资源(CPU的运算、I/O总线的资源)
- 在CentOS里提供的软件磁盘阵列为
mdadm这个软件,这个软件会以分区或disk为单位,即我们不需要两块以上的磁盘,只需要有两个以上的硬盘分区(partition)就能够设计我们的磁盘阵列,mdadm支持RAID0、RAID1、RAID5、热磁盘备份等,且提供的管理机制可以打到类似热插拔的功能,可以在文件系统正常使用的情况下进行分区的抽换。
硬件磁盘阵列在Linux下看起来就是一块实际的大磁盘,因此硬件磁盘阵列的设备文件名为
/dev/sd[a-p],因为使用到SCSI的模块。软件磁盘阵列则是系统模拟的,因此使用的设备文件名是系统的设备文件,文件名为
/dev/md0、/dev/md1等,二者的设备文件名并不相同
软件磁盘阵列的设置
[root@localhost /]# mdadm --detail /dev/md0
[root@localhost /]# mdadm --create /dev/md[0-9] --auto=yes --level=[015] --chunk=NK --raid-devices=N --spare-devices=N /dev/sdx ...
选项与参数:
--create :为建立RAID的选项
--auto=yes :决定建立后接的软件磁盘阵列设备,即/dev/md0、/dev/md1等
--chunk=NK :决定这个设备的chunk大小,也可以当成strip大小,一般是64K或512K
--raid-devices=N :使用几个磁盘分区(partition)作为磁盘阵列的设备
--spare-devices=N :使用几个磁盘作为备用(spare)设备
--level=[015] :设置这组磁盘阵列的级别,支持很多,不过建议只要用0、1、5即可
--detail :后面所接的哪个磁盘阵列设备的详细信息
使用mdadm建立RAID5磁盘阵列
[root@localhost dev]# mdadm --create /dev/md0 --auto=yes --level=5 --chunk=256K --raid-devices=4 --spare-devices=1 /dev/sda{5,6,7,8,9}
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
查看创建的磁盘阵列md0
[root@localhost dev]# mdadm --detail /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Wed Apr 17 15:03:01 2024
Raid Level : raid5
Array Size : 3139584 (2.99 GiB 3.21 GB)
Used Dev Size : 1046528 (1022.00 MiB 1071.64 MB)
Raid Devices : 4
Total Devices : 5
Persistence : Superblock is persistent
Update Time : Wed Apr 17 15:03:06 2024
State : clean
Active Devices : 4
Working Devices : 5
Failed Devices : 0
Spare Devices : 1
Layout : left-symmetric
Chunk Size : 256K
Consistency Policy : resync
Name : localhost.localdomain:0 (local to host localhost.localdomain)
UUID : 11f6c708:b6fb79ca:e63064df:e01d3415
Events : 18
Number Major Minor RaidDevice State
0 8 5 0 active sync /dev/sda5
1 8 6 1 active sync /dev/sda6
2 8 7 2 active sync /dev/sda7
5 8 8 3 active sync /dev/sda8
4 8 9 - spare /dev/sda9
# 最后五行就是五个设备目前的情况,包括四个active sync一个spare(热磁盘设备)
# RaidDevice是此RAID内的磁盘顺序
当然也可以查看/proc/mdstat文件来查看系统软件磁盘阵列的情况
4 8 9 - spare /dev/sda9
[root@localhost dev]# cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4]
md0 : active raid5 sda8[5] sda9[4](S) sda7[2] sda6[1] sda5[0] <==第一行
3139584 blocks super 1.2 level 5, 256k chunk, algorithm 2 [4/4] [UUUU] <==第二行
unused devices: <none>
- 第一行:指出md0为raid5,且使用了sda8、sda7、sda6、sda5等四块磁盘设备,每个设备后面的[]内的数字代表此磁盘在RAID中的顺序(RaidDevice),至于sda9后面的S代表其为热磁盘设备
- 第二行:此磁盘阵列拥有3139584个区块(每个区块单位为1KB),所以总容量约为3GB,使用raid5级别,写入磁盘的小数据块(chunk)大小为256KB,使用algorithm2磁盘阵列算法。[m/n]代表此磁盘阵列需要m个设备,且n个设备正常运行,因md0需要4个设备且这4个设备均正常运行。[UUUU]代表四个所需的设备的启动情况,U代表正常运行,_代表不正常。
格式化与挂载使用RAID
- stripe(chunk)容量为256KB,所以su=256k
- 共有4块组成RAID5,因此容量少一块,所以sw=3
- 计算出数据宽度为:256k*3=768k
[root@localhost dev]# mkfs.xfs -f -d su=256k,sw=3 -r extsize=768k /dev/md0
meta-data=/dev/md0 isize=512 agcount=8, agsize=98048 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=784384, imaxpct=25
= sunit=64 swidth=192 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=64 blks, lazy-count=1
realtime =none extsz=786432 blocks=0, rtextents=0
挂载
[root@localhost dev]# mkdir /srv/raid
[root@localhost dev]# mount /dev/md0 /srv/raid
[root@localhost dev]# df -Th /srv/raid
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/md0 xfs 3.0G 33M 3.0G 2% /srv/raid
# 多了一个/dev/md0的设备,挂载的地方在我们创建的/srv/raid中
组建RAID10
创建并格式化分区(5,6,7,8)
# 1.创建扩展分区4 [root@localhost raid]# fdisk /dev/sda 欢迎使用 fdisk (util-linux 2.23.2)。 更改将停留在内存中,直到您决定将更改写入磁盘。 使用写入命令前请三思。 命令(输入 m 获取帮助):n Partition type: p primary (3 primary, 0 extended, 1 free) e extended Select (default e): e 已选择分区 4 起始 扇区 (35674112-83886079,默认为 35674112): 将使用默认值 35674112 Last 扇区, +扇区 or +size{K,M,G} (35674112-83886079,默认为 83886079):+10G 分区 4 已设置为 Extended 类型,大小设为 10 GiB # 2.创建逻辑分区5、6、7、8 命令(输入 m 获取帮助):n All primary partitions are in use 添加逻辑分区 5 起始 扇区 (35676160-56645631,默认为 35676160): 将使用默认值 35676160 Last 扇区, +扇区 or +size{K,M,G} (35676160-56645631,默认为 56645631):+1G 分区 5 已设置为 Linux 类型,大小设为 1 GiB 命令(输入 m 获取帮助):n All primary partitions are in use 添加逻辑分区 6 起始 扇区 (37775360-56645631,默认为 37775360): 将使用默认值 37775360 Last 扇区, +扇区 or +size{K,M,G} (37775360-56645631,默认为 56645631):+1G 分区 6 已设置为 Linux 类型,大小设为 1 GiB 命令(输入 m 获取帮助):n All primary partitions are in use 添加逻辑分区 7 起始 扇区 (39874560-56645631,默认为 39874560): 将使用默认值 39874560 Last 扇区, +扇区 or +size{K,M,G} (39874560-56645631,默认为 56645631):+1G 分区 7 已设置为 Linux 类型,大小设为 1 GiB 命令(输入 m 获取帮助):n All primary partitions are in use 添加逻辑分区 8 起始 扇区 (41973760-56645631,默认为 41973760): 将使用默认值 41973760 Last 扇区, +扇区 or +size{K,M,G} (41973760-56645631,默认为 56645631):+1G 分区 8 已设置为 Linux 类型,大小设为 1 GiB 命令(输入 m 获取帮助):w The partition table has been altered! # 3.使用partprobe -s更新Linux内核的分区表信息 [root@localhost raid]# partprobe -s /dev/sda: msdos partitions 1 2 3 4 <5 6 7 8 9> /dev/sdb: msdos partitions 1 2 3 4 # 4.格式化为xfs类型(5、6、7、8四个分区) [root@localhost raid]# mkfs.xfs -f /dev/sda5 meta-data=/dev/sda5 isize=512 agcount=4, agsize=65536 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=0, sparse=0 data = bsize=4096 blocks=262144, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 ftype=1 log =internal log bsize=4096 blocks=2560, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 [root@localhost raid]# mkfs.xfs -f /dev/sda6 meta-data=/dev/sda6 isize=512 agcount=4, agsize=65536 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=0, sparse=0 data = bsize=4096 blocks=262144, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 ftype=1 log =internal log bsize=4096 blocks=2560, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 [root@localhost raid]# mkfs.xfs -f /dev/sda7 meta-data=/dev/sda7 isize=512 agcount=4, agsize=65536 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=0, sparse=0 data = bsize=4096 blocks=262144, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 ftype=1 log =internal log bsize=4096 blocks=2560, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 [root@localhost raid]# mkfs.xfs -f /dev/sda8 meta-data=/dev/sda8 isize=512 agcount=4, agsize=65536 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=0, sparse=0 data = bsize=4096 blocks=262144, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 ftype=1 log =internal log bsize=4096 blocks=2560, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 # 查看UUID与TYPE确认是否格式化完成 [root@localhost raid]# blkid /dev/sda* /dev/sda: PTTYPE="dos" /dev/sda2: UUID="1ae3bbf7-d0b6-4482-af22-e9fa816410e2" TYPE="xfs" /dev/sda3: UUID="5lsM5H-xprD-Opd9-vMX9-OkAs-5liF-rxFujb" TYPE="LVM2_member" /dev/sda5: UUID="d7cd45fa-f763-413e-bfd0-1d1ed7888049" TYPE="xfs" /dev/sda6: UUID="744e3019-7da3-43e3-a3ee-ada2efe82c0c" TYPE="xfs" /dev/sda7: UUID="8ee54c11-ba26-4738-a619-7a485f00a498" TYPE="xfs" /dev/sda8: UUID="6a9a6a98-e05c-4c40-a080-698f8e611a6d" TYPE="xfs"将磁盘两两组建
RAID1# 5.sda5、sda6组RAID1(md0),sda7、sda8组RAID1(md1) [root@localhost /]# mdadm --create /dev/md0 --auto=yes --level=1 --chunk=256K --raid-devices=2 /dev/sda{5,6} mdadm: Note: this array has metadata at the start and may not be suitable as a boot device. If you plan to store '/boot' on this device please ensure that your boot-loader understands md/v1.x metadata, or use --metadata=0.90 Continue creating array? y mdadm: Defaulting to version 1.2 metadata mdadm: array /dev/md0 started. [root@localhost /]# mdadm --create /dev/md1 --auto=yes --level=1 --chunk=256K --raid-devices=2 /dev/sda{7,8} mdadm: Note: this array has metadata at the start and may not be suitable as a boot device. If you plan to store '/boot' on this device please ensure that your boot-loader understands md/v1.x metadata, or use --metadata=0.90 Continue creating array? y mdadm: Defaulting to version 1.2 metadata mdadm: array /dev/md1 started.将两个
RAID1组成一个RAID0(md3)# 6.将md0和md1组成RAID0(md3) [root@localhost /]# mdadm --create /dev/md3 --auto=yes --level=0 --chunk=256K --raid-devices=2 /dev/md{0,1} mdadm: Defaulting to version 1.2 metadata mdadm: array /dev/md3 started. [root@localhost /]# mdadm --detail /dev/md3 /dev/md3: Version : 1.2 Creation Time : Wed Apr 17 16:34:50 2024 Raid Level : raid0 Array Size : 2091008 (2042.00 MiB 2141.19 MB) Raid Devices : 2 Total Devices : 2 Persistence : Superblock is persistent Update Time : Wed Apr 17 16:34:50 2024 State : clean Active Devices : 2 Working Devices : 2 Failed Devices : 0 Spare Devices : 0 Chunk Size : 256K Consistency Policy : none Name : localhost.localdomain:3 (local to host localhost.localdomain) UUID : 5ce98002:f148d891:33c1cd8d:5568473e Events : 0 Number Major Minor RaidDevice State 0 9 0 0 active sync /dev/md0 1 9 1 1 active sync /dev/md1格式化md3为xfs文件系统
# 7.格式化md3 [root@localhost /]# mkfs.xfs -f /dev/md3 meta-data=/dev/md3 isize=512 agcount=8, agsize=65344 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=0, sparse=0 data = bsize=4096 blocks=522752, imaxpct=25 = sunit=64 swidth=128 blks naming =version 2 bsize=4096 ascii-ci=0 ftype=1 log =internal log bsize=4096 blocks=2560, version=2 = sectsz=512 sunit=64 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0挂载md3
# 8.将md3挂载到我们自己创建的目录/srv/raid下 [root@localhost /]# mount /dev/md3 /srv/raid [root@localhost /]# df -Th /srv/raid 文件系统 类型 容量 已用 可用 已用% 挂载点 /dev/md3 xfs 2.0G 33M 2.0G 2% /srv/raid [root@localhost /]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 40G 0 disk ├─sda1 8:1 0 2M 0 part ├─sda2 8:2 0 1G 0 part /boot ├─sda3 8:3 0 16G 0 part │ ├─centos-root 253:0 0 10G 0 lvm / │ ├─centos-swap 253:1 0 1G 0 lvm [SWAP] │ └─centos-home 253:5 0 5G 0 lvm /home ├─sda4 8:4 0 512B 0 part ├─sda5 8:5 0 1G 0 part │ └─md0 9:0 0 1022M 0 raid1 │ └─md3 9:3 0 2G 0 raid0 /srv/raid ├─sda6 8:6 0 1G 0 part │ └─md0 9:0 0 1022M 0 raid1 │ └─md3 9:3 0 2G 0 raid0 /srv/raid ├─sda7 8:7 0 1G 0 part │ └─md1 9:1 0 1022M 0 raid1 │ └─md3 9:3 0 2G 0 raid0 /srv/raid ├─sda8 8:8 0 1G 0 part │ └─md1 9:1 0 1022M 0 raid1 │ └─md3 9:3 0 2G 0 raid0 /srv/raid └─sda9 8:9 0 1G 0 part sdb 8:16 0 5G 0 disk ├─sdb1 8:17 0 1G 0 part │ └─vg0-lv0 253:4 0 32M 0 lvm ├─sdb2 8:18 0 1G 0 part │ └─vg1-lv1 253:2 0 20M 0 lvm ├─sdb3 8:19 0 1G 0 part │ └─vg2-lv2 253:3 0 20M 0 lvm └─sdb4 8:20 0 1G 0 part sr0 11:0 1 9.6G 0 rom /run/media/feliks/CentOS 7 x86_64 # 至此RAID10组建成功