详解CentOS 7中RAID 6与RAID 10配置(理论+实践)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了详解CentOS 7中RAID 6与RAID 10配置(理论+实践)相关的知识,希望对你有一定的参考价值。
RAID 6介绍RAID6
是在RAID5
的基础上改良而成的,RAID6
再将数据校验位增加一位,所以允许损坏的硬盘数量也由 RAID5
的一个增加到二个。由于同一阵列中两个硬盘同时损坏的概率非常少,所以,RAID6
用增加一块硬盘的代价,换来了比 RAID5
更高的数据安全性,其特点与RAID 5基本相同,最少需要4块大小相同的磁盘,总容量为(n-2)/n。
-
RAID 6
的构建1、首先,在虚拟机中添加5块硬盘,每块硬盘分别是20G,并重启虚拟机Linux系统,识别硬盘。然后,将添加的硬盘进行分区管理,修改分区号为fd(Linux raid 自动),(我这里做用4块硬盘构架RAID 6磁盘阵列,1块硬盘做备用盘。)
[root@localhost ~]# cd /dev
[root@localhost dev]# ls
agpgart kmsg sda tty tty30 tty53 vcs
autofs log sda1 tty0 tty31 tty54 vcs1
block loop-control sda2 tty1 tty32 tty55 vcs2
bsg lp0 sda3 tty10 tty33 tty56 vcs3
btrfs-control lp1 sda4 tty11 tty34 tty57 vcs4
bus lp2 sda5 tty12 tty35 tty58 vcs5
cdrom lp3 sdb tty13 tty36 tty59 vcs6
char mapper sdc tty14 tty37 tty6 vcsa
console mcelog sdd tty15 tty38 tty60 vcsa1
core mem sde tty16 tty39 tty61 vcsa2
cpu mqueue sdf tty17 tty4 tty62 vcsa3
...//省略部分内容...
[root@localhost dev]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
Device does not contain a recognized partition table
使用磁盘标识符 0xf0ae3f91 创建新的 DOS 磁盘标签。
命令(输入 m 获取帮助):n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p
分区号 (1-4,默认 1):
起始 扇区 (2048-41943039,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +sizeK,M,G (2048-41943039,默认为 41943039):
将使用默认值 41943039
分区 1 已设置为 Linux 类型,大小设为 20 GiB
命令(输入 m 获取帮助):t
已选择分区 1
Hex 代码(输入 L 列出所有代码):fd
已将分区“Linux”的类型更改为“Linux raid autodetect”
命令(输入 m 获取帮助):p
磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xf0ae3f91
设备 Boot Start End Blocks Id System
/dev/sdb1 2048 41943039 20970496 fd Linux raid autodetect
命令(输入 m 获取帮助):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。
...//sdc、sdd、sde、sdf同样操作...
[root@localhost dev]# fdisk -l
磁盘 /dev/sda:42.9 GB, 42949672960 字节,83886080 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
...//省略部分内容...
磁盘 /dev/sdd:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x061db7c4
设备 Boot Start End Blocks Id System
/dev/sdd1 2048 41943039 20970496 fd Linux raid autodetect
磁盘 /dev/sde:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x377651e1
设备 Boot Start End Blocks Id System
/dev/sde1 2048 41943039 20970496 fd Linux raid autodetect
磁盘 /dev/sdf:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x98d97c23
设备 Boot Start End Blocks Id System
/dev/sdf1 2048 41943039 20970496 fd Linux raid autodetect
磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xf0ae3f91
设备 Boot Start End Blocks Id System
/dev/sdb1 2048 41943039 20970496 fd Linux raid autodetect
磁盘 /dev/sdc:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x7f05f086
设备 Boot Start End Blocks Id System
/dev/sdc1 2048 41943039 20970496 fd Linux raid autodetect
? 2、通过mdadm命令构建RAID 6磁盘阵列,并构建保存备用盘;然后查看是否构建成功。
[root@localhost dev]# mdadm -C -v /dev/md6 -l6 -n4 /dev/sd[b-e]1 -x1 /dev/sdf1
mdadm: layout defaults to left-symmetric //构建RAID 6磁盘阵列
mdadm: layout defaults to left-symmetric
mdadm: chunk size defaults to 512K
mdadm: size set to 20954112K
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md6 started.
[root@localhost dev]# cat /proc/mdstat //查看RAID磁盘阵列状态
Personalities : [raid6] [raid5] [raid4]
md6 : active raid6 sdf1[4](S) sde1[3] sdd1[2] sdc1[1] sdb1[0]
41908224 blocks super 1.2 level 6, 512k chunk, algorithm 2 [4/4] [UUUU]
[====>................] resync = 23.8% (5006208/20954112) finish=1.3min speed=200248K/sec //正在同步磁盘
unused devices: <none>
[root@localhost dev]# mdadm -D /dev/md6 //查看RAID阵列详细信息
/dev/md6:
Version : 1.2
Creation Time : Sat Aug 24 21:35:32 2019
Raid Level : raid6
Array Size : 41908224 (39.97 GiB 42.91 GB) //总容量
Used Dev Size : 20954112 (19.98 GiB 21.46 GB)
Raid Devices : 4 //组成RAID的磁盘数量
Total Devices : 5
Persistence : Superblock is persistent
Update Time : Sat Aug 24 21:37:17 2019
State : clean
Active Devices : 4
Working Devices : 5
Failed Devices : 0
Spare Devices : 1
Layout : left-symmetric
Chunk Size : 512K
Consistency Policy : resync
Name : localhost.localdomain:6 (local to host localhost.localdomain)
UUID : 3d6b6ec3:05bcd2c1:696cf1ab:1b94b41d
Events : 17
Number Major Minor RaidDevice State
0 8 17 0 active sync /dev/sdb1 //组成RAID的磁盘
1 8 33 1 active sync /dev/sdc1
2 8 49 2 active sync /dev/sdd1
3 8 65 3 active sync /dev/sde1
4 8 81 - spare /dev/sdf1 //备用磁盘
? 3、用mdadm -f命令模拟构建的RAID 6 中一块磁盘损坏,看看备用盘是否会顶替损坏的磁盘。
[root@localhost dev]# mdadm -f /dev/md6 /dev/sdb1 //撤掉RAID 6阵列中sdb1磁盘
mdadm: set /dev/sdb1 faulty in /dev/md6
[root@localhost dev]# mdadm -D /dev/md6 //查看RAID阵列详细信息
/dev/md6:
Version : 1.2
Creation Time : Sat Aug 24 21:35:32 2019
Raid Level : raid6
Array Size : 41908224 (39.97 GiB 42.91 GB)
Used Dev Size : 20954112 (19.98 GiB 21.46 GB)
Raid Devices : 4
Total Devices : 5
Persistence : Superblock is persistent
Update Time : Sat Aug 24 21:55:16 2019
State : clean
Active Devices : 4
Working Devices : 4
Failed Devices : 1
Spare Devices : 0
Layout : left-symmetric
Chunk Size : 512K
Consistency Policy : resync
Name : localhost.localdomain:6 (local to host localhost.localdomain)
UUID : 3d6b6ec3:05bcd2c1:696cf1ab:1b94b41d
Events : 36
Number Major Minor RaidDevice State
4 8 81 0 active sync /dev/sdf1 //备用盘顶替撤掉的磁盘
1 8 33 1 active sync /dev/sdc1
2 8 49 2 active sync /dev/sdd1
3 8 65 3 active sync /dev/sde1
0 8 17 - faulty /dev/sdb1
RAID 10介绍
`
RAID 10也叫
RAID 1+0,顾名思义,就是
RAID 1与
RAID 0的组合,
RAID1+0 是先将数据进行镜像操作,然后再对数据进行分组,
RAID 1 在这里就是一个冗余的备份阵列,而
RAID 0 则负责数据的读写阵列。至少要四块硬盘,四块硬盘组成两组
RAID 1,再把两组
RAID 1组成
RAID 0,以提高读写速度。
RAID 10对存储容量的利用率和
RAID 1`一样低,只有磁盘总容量的一半。
Raid1+0
方案造成了50%
的磁盘浪费,但是它提供了200%
的速度和单磁盘损坏的数据安全性,并且当同时损坏的磁盘不在同一Raid1
中,就能保证数据安全性,RAID 10
能提供比RAID 5
更好的性能。RAID 10
也是在实际应用中比较常用的磁盘阵列。
-
RAID 10
的构建1、首先,在虚拟机中添加4块硬盘,每块硬盘分别是20G,然后,重启Linux系统,识别添加的硬盘,并将添加的硬盘进行分区管理,修改分区号为fd(Linux raid 自动)。
[root@localhost ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
Device does not contain a recognized partition table
使用磁盘标识符 0xca2594aa 创建新的 DOS 磁盘标签。
命令(输入 m 获取帮助):n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p):
Using default response p
分区号 (1-4,默认 1):
起始 扇区 (2048-41943039,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +sizeK,M,G (2048-41943039,默认为 41943039):
将使用默认值 41943039
分区 1 已设置为 Linux 类型,大小设为 20 GiB
命令(输入 m 获取帮助):t
已选择分区 1
Hex 代码(输入 L 列出所有代码):fd
已将分区“Linux”的类型更改为“Linux raid autodetect”
命令(输入 m 获取帮助):p
磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xca2594aa
设备 Boot Start End Blocks Id System
/dev/sdb1 2048 41943039 20970496 fd Linux raid autodetect
命令(输入 m 获取帮助):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。
...//sdc、sdd、sde同样操作...
[root@localhost ~]# fdisk -l
磁盘 /dev/sda:42.9 GB, 42949672960 字节,83886080 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
...//省略部分内容...
磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xca2594aa
设备 Boot Start End Blocks Id System
/dev/sdb1 2048 41943039 20970496 fd Linux raid autodetect
磁盘 /dev/sdd:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x66e98
设备 Boot Start End Blocks Id System
/dev/sdd1 2048 41943039 20970496 fd Linux raid autodetect
磁盘 /dev/sde:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x2d9046ca
设备 Boot Start End Blocks Id System
/dev/sde1 2048 41943039 20970496 fd Linux raid autodetect
磁盘 /dev/sdc:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x8db10f78
设备 Boot Start End Blocks Id System
/dev/sdc1 2048 41943039 20970496 fd Linux raid autodetect
2、通过mdadm命令制作两组RAID 1磁盘阵列,并查看是否创建成功。
[root@localhost ~]# mdadm -C -v /dev/md1 -l1 -n2 /dev/sd[b-c]1 //创建RAID 1磁盘阵列
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
mdadm: size set to 20954112K
Continue creating array?
Continue creating array? (y/n) y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md1 started.
[root@localhost ~]# mdadm -C -v /dev/md2 -l1 -n2 /dev/sd[d-e]1 //创建RAID 1磁盘阵列
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
mdadm: size set to 20954112K
Continue creating array?
Continue creating array? (y/n) y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md2 started.
[root@localhost ~]# cat /proc/mdstat //查看RAID状态
Personalities : [raid1]
md2 : active raid1 sde1[1] sdd1[0]
20954112 blocks super 1.2 [2/2] [UU]
//成功创建的两组RAID 1磁盘阵列
md1 : active raid1 sdc1[1] sdb1[0]
20954112 blocks super 1.2 [2/2] [UU]
unused devices: <none>
? 3、将两组RAID 1磁盘阵列组成RAID 0磁盘阵列,并查看磁盘整列是否创建成功。
[root@localhost ~]# mdadm -C -v /dev/md10 -l0 -n2 /dev/md1 /dev/md2 //创建RAID 0磁盘阵列
mdadm: chunk size defaults to 512K
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md10 started.
[root@localhost ~]# cat /proc/mdstat //查看状态
Personalities : [raid1] [raid0] //创建的RAID 0磁盘阵列
md10 : active raid0 md2[1] md1[0]
41875456 blocks super 1.2 512k chunks
md2 : active raid1 sde1[1] sdd1[0]
20954112 blocks super 1.2 [2/2] [UU]
md1 : active raid1 sdc1[1] sdb1[0]
20954112 blocks super 1.2 [2/2] [UU]
unused devices: <none>
[root@localhost ~]# mdadm -D /dev/md10 //查看创建的RAID 0磁盘阵列
/dev/md10:
Version : 1.2
Creation Time : Sat Aug 24 23:51:34 2019
Raid Level : raid0
Array Size : 41875456 (39.94 GiB 42.88 GB) //容量大小
Raid Devices : 2
Total Devices : 2
Persistence : Superblock is persistent
Update Time : Sat Aug 24 23:51:34 2019
State : clean
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0
Chunk Size : 512K
Consistency Policy : none
Name : localhost.localdomain:10 (local to host localhost.localdomain)
UUID : 9ee47118:a7934574:6ccd01df:6e20700b
Events : 0
Number Major Minor RaidDevice State
0 9 1 0 active sync /dev/md1 //组成RAID 0的两块RAID 1磁盘
1 9 2 1 active sync /dev/md2
通过上面的讲解与实践操作大家应该能够配置RAID 6
与RAID 10
,希望对大家有所帮助。
以上是关于详解CentOS 7中RAID 6与RAID 10配置(理论+实践)的主要内容,如果未能解决你的问题,请参考以下文章
CentOS 7 RAID磁盘阵列详解一(raid0raid1)实验全程可跟做