RAID磁盘阵列
RAID磁盘阵列
一、概念
首先我们来了解一下RAID这个概念
1988年由加利福尼亚大学伯克利分校发表的文章首次提到并定义了RAID,当今CPU性能每年可提升30%-50%但硬盘仅提升7%,渐渐的已经成为计算机整体性能的瓶颈,并且为了避免硬盘的突然损坏导致数据丢失还加入了冗余备份机制。
RAID的早先设计理念为”redundant array of Inexpensive disks“即不贵的硬盘组,而现在的定义是”Redundant Array ofIndependent Disks“即独立的硬盘组,作用是防止硬盘物理损坏以及增加存储设备的吞吐量。RAID常见的组合有0、1、5和10:
RAID0:需要至少两块(含)硬盘,可以有效的提高硬盘的性能和吞吐量,但没有数据的冗余和错误修复能力。

将多块硬盘通过硬件或软件的方式串联在一起,成为一个大的卷集,将数据依次写入到各个硬盘中,这样性能会极大提升,但若任意一块硬盘故障则整个系统的数据都会受到破坏。
RAID1:需要至少两块(含)硬盘,可以有效的提高数据资料的安全性和可修复性,但成本却提高了。

实现原来是在数据写入硬盘时也会在另外一块闲置的硬盘上生成镜像文件,在不影响性能的情况下最大限度保证数据资料的可靠性,只要在一对镜像盘中还有一块硬盘可以使用,那么数据也不会丢失,具有很好的硬盘冗余能力,虽然对数据来讲绝对的安全,但成本却明显增加,磁盘利用率仅为50%。
RAID5:需要至少三块(含)硬盘,兼顾存储性能、数据安全和储存成本。

如上图所示”parity”块中保存的是其他硬盘数据的奇偶校验信息(并非其他硬盘的数据),以数据的奇偶校验信息来保证数据的安全,RAID5不以单独的硬盘来存放数据的奇偶校验信息,而是保存在各个磁盘上。
这样当任何一个硬盘损坏都可以根据其他硬盘上的奇偶校验信息来尝试重建损坏的数据,性能也很高,兼顾了存储性能、数据安全和存储成本,可以看作是RAID0与RAID1的折中方案。
RAID 6:至少需要4块硬盘,使用数据条带化(striping)的方式将数据分散存储在多个磁盘驱动器上,并通过分布式奇偶校验和双重奇偶校验实现数据的冗余备份。数据和奇偶校验信息被组织成数据块,其中奇偶校验信息被分布式存储在不同的驱动器上,并通过双重奇偶校验提供更高的数据冗余性。当写入数据时,奇偶校验信息也会被更新。如果其中两个驱动器发生故障,系统可以通过重新计算奇偶校验信息来恢复丢失的数据。这种方式可以同时提供性能增强和更高级别的数据冗余。

RAID10:需要至少四块(含)硬盘,兼具速度和安全性,但成本很高。

继承了RAID0的快速与RAID1的安全,RAID1在这里提供了冗余备份的阵列,而RAID0则负责数据的读写阵列。
因这种结构的成本高,一般用于存放要求速度与差错控制的数据。
二、实际操作
2.1 添加磁盘
名称结构:

给虚拟机添加5个硬盘,注意要添加五个。因为sda已经被虚拟机本身占用。

[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
fd0 2:0 1 4K 0 disk
sda 8:0 0 60G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 59G 0 part
├─centos-root 253:0 0 55G 0 lvm /
└─centos-swap 253:1 0 4G 0 lvm [SWAP]
sdb 8:16 0 10G 0 disk
sdc 8:32 0 10G 0 disk
sdd 8:48 0 10G 0 disk
sde 8:64 0 10G 0 disk
sdf 8:80 0 10G 0 disk
sr0 11:0 1 1024M 0 rom
2.2 对所有磁盘分区
(我试过直接对磁盘做raid也可以,但是网上说raid是针对分区来进行的),以sdb为例:
fdisk /dev/sdb-->n-->回车-->回车-->回车-->回车-->t-->fd-->w
[root@localhost ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
Device does not contain a recognized partition table
使用磁盘标识符 0xfa7b363c 创建新的 DOS 磁盘标签。
The device presents a logical sector size that is smaller than
the physical sector size. Aligning to a physical sector (or optimal
I/O) size boundary is recommended, or performance may be impacted.
命令(输入 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-20971519,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-20971519,默认为 20971519):
将使用默认值 20971519
分区 1 已设置为 Linux 类型,大小设为 10 GiB
完成之后文件系统类型是linux,需要改成raid

此时先别退出,使用t命令修改分区类型:



依次对所有磁盘都做该操作。

2.3 安装raid管理工具
yum install -y mdadm
2.3 raid0
2.3.1 创建raid0
在/dev/md0目录下将sdb1与sdc1两块磁盘创建为RAID级别为0,磁盘数为2的RAID0阵列:
mdadm -C -v /dev/md0 -l 0 -n 2 /dev/sdb1 /dev/sdc1
[root@guojie ~]# mdadm -C -v /dev/md0 -l 0 -n 2 /dev/sdb1 /dev/sdc1
mdadm: chunk size defaults to 512K
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
2.3.2 查看
查看raid 0:cat /proc/mdstat
[root@guojie ~]# cat /proc/mdstat
Personalities : [raid0]
md0 : active raid0 sdc1[1] sdb1[0]
20951040 blocks super 1.2 512k chunks
unused devices: <none>
查看raid0详细信息:mdadm -D /dev/md0
[root@guojie ~]# mdadm -D /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Wed Mar 13 12:41:44 2024
Raid Level : raid0
Array Size : 20951040 (19.98 GiB 21.45 GB)
Raid Devices : 2
Total Devices : 2
Persistence : Superblock is persistent
Update Time : Wed Mar 13 12:41:44 2024
State : clean
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0
Chunk Size : 512K
Consistency Policy : none
Name : guojie:0 (local to host guojie)
UUID : 167fee8a:49713ce2:0d0c2c77:712ed679
Events : 0
Number Major Minor RaidDevice State
0 8 17 0 active sync /dev/sdb1
1 8 33 1 active sync /dev/sdc1
2.3.3 格式化分区
[root@guojie ~]# mkfs.ext4 /dev/md0
mke2fs 1.42.9 (28-Dec-2013)
Discarding device blocks: 完成
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=128 blocks, Stripe width=256 blocks
1310720 inodes, 5237760 blocks
261888 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=2153775104
160 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000
Allocating group tables: 完成
正在写入inode表: 完成
Creating journal (32768 blocks): 完成
Writing superblocks and filesystem accounting information: 完成
[root@guojie ~]# blkid /dev/md0
/dev/md0: UUID="dfaab706-1249-406d-b733-582e0f50d3e0" TYPE="ext4"
2.3.4 挂载
[root@guojie ~]# mkdir /data
[root@guojie ~]# mount /dev/md0 /data/
[root@guojie ~]# df -hT
文件系统 类型 容量 已用 可用 已用% 挂载点
devtmpfs devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs tmpfs 1.9G 9.1M 1.9G 1% /run
tmpfs tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/mapper/centos-root xfs 35G 1.5G 34G 5% /
/dev/sda1 xfs 1014M 150M 865M 15% /boot
tmpfs tmpfs 379M 0 379M 0% /run/user/0
/dev/md0 ext4 20G 45M 19G 1% /data
2.3.5停止raid阵列
#卸载磁盘、有可能会提示目标忙
[root@guojie data]# umount /dev/md0
umount: /data:目标忙。
(有些情况下通过 lsof(8) 或 fuser(1) 可以
找到有关使用该设备的进程的有用信息)
#安装lsof查看哪个进程再占用
[root@guojie data]# yum -y install lsof
# 查看占用线程
[root@guojie data]# lsof /data
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
bash 8193 root cwd DIR 9,0 41 1024 /data
lsof 23600 root cwd DIR 9,0 41 1024 /data
lsof 23601 root cwd DIR 9,0 41 1024 /data
# 这里是因为我自己处于该目录下,退出即可,如果你是其它进程,需要退出它
#停止,停止之后/dev/md0将释放
[root@guojie ~]# mdadm -S /dev/md0
mdadm: stopped /dev/md0
#重新组合(并启动)RAID 阵列,这个命令只能使用在之前组合过的raid磁盘上。
[root@guojie ~]# mdadm --assemble /dev/md0 /dev/sdb1 /dev/sdc1
mdadm: /dev/md0 has been started with 2 drives.
#重新组合后之前的数据都还在。
2.4 raid1
2.4.1 创建raid1
mdadm -C -v /dev/md1 -l 1 -n 2 /dev/sdb1 /dev/sdc1 -x 1 /dev/sdd1
[root@guojie ~]# mdadm -C -v /dev/md1 -l 1 -n 2 /dev/sdb1 /dev/sdc1 -x 1 /dev/sdd1
mdadm: /dev/sdb1 appears to be part of a raid array:
level=raid0 devices=2 ctime=Wed Mar 13 12:41:44 2024
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: /dev/sdc1 appears to be part of a raid array:
level=raid0 devices=2 ctime=Wed Mar 13 12:41:44 2024
mdadm: size set to 10475520K
Continue creating array? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md1 started.
# 从输出中我们可以看出,/dev/sdb1 和 /dev/sdc1 似乎已经是另一个 RAID 数组的一部分。在尝试将它们加入新的 RAID 数组之前,你需要先确认这两个设备是否确实要从原来的 RAID 数组中移除,或者你是否误将它们识别为可用于新数组的设备。如果你确定要继续,并希望覆盖或删除它们之前所属的 RAID 数组,你可以回答 y 来继续创建新的数组。但是,请注意这样做可能会导致数据丢失,所以在进行任何操作之前,确保你已经备份了重要数据。
2.4.2 查看raid状态
[root@guojie ~]# cat /proc/mdstat
Personalities : [raid0] [raid1]
md1 : active raid1 sdd1[2](S) sdc1[1] sdb1[0]
10475520 blocks super 1.2 [2/2] [UU]
unused devices: <none>
[root@guojie ~]# mdadm -D /dev/md1
/dev/md1:
Version : 1.2
Creation Time : Wed Mar 13 12:48:37 2024
Raid Level : raid1
Array Size : 10475520 (9.99 GiB 10.73 GB)
Used Dev Size : 10475520 (9.99 GiB 10.73 GB)
Raid Devices : 2
Total Devices : 3
Persistence : Superblock is persistent
Update Time : Wed Mar 13 12:49:30 2024
State : clean
Active Devices : 2 //正在使用的磁盘
Working Devices : 3 //工作的磁盘
Failed Devices : 0 //异常磁盘
Spare Devices : 1 //备用磁盘
Consistency Policy : resync
Name : guojie:1 (local to host guojie)
UUID : 6136632b:6a379cb4:8c7d476c:65129c96
Events : 17
Number Major Minor RaidDevice State
0 8 17 0 active sync /dev/sdb1
1 8 33 1 active sync /dev/sdc1
2 8 49 - spare /dev/sdd1
2.4.3 格式化并挂载
[root@guojie ~]# mkfs.xfs -f /dev/md1
Discarding blocks...Done.
meta-data=/dev/md1 isize=512 agcount=4, agsize=654720 blks
= sectsz=4096 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=2618880, 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=4096 sunit=1 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
[root@guojie ~]# blkid /dev/md1
/dev/md1: UUID="f95bc62c-daac-471e-8c93-c22ec8d7525c" TYPE="xfs"
[root@guojie ~]# mount /dev/md1 /data/
[root@guojie ~]# df -hT
文件系统 类型 容量 已用 可用 已用% 挂载点
devtmpfs devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs tmpfs 1.9G 9.1M 1.9G 1% /run
tmpfs tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/mapper/centos-root xfs 35G 1.5G 34G 5% /
/dev/sda1 xfs 1014M 150M 865M 15% /boot
tmpfs tmpfs 379M 0 379M 0% /run/user/0
/dev/md1 xfs 10G 33M 10G 1% /data
2.4.4 模拟磁盘损坏
# 模拟磁盘/dev/sdb损坏
[root@guojie ~]# mdadm /dev/md1 -f /dev/sdb1
mdadm: set /dev/sdb1 faulty in /dev/md1
# 查看
[root@guojie ~]# mdadm -D /dev/md1
/dev/md1:
Version : 1.2
Creation Time : Wed Mar 13 12:48:37 2024
Raid Level : raid1
Array Size : 10475520 (9.99 GiB 10.73 GB)
Used Dev Size : 10475520 (9.99 GiB 10.73 GB)
Raid Devices : 2
Total Devices : 3
Persistence : Superblock is persistent
Update Time : Wed Mar 13 13:04:02 2024
State : clean, degraded, recovering
Active Devices : 1 //正在使用的磁盘数量
Working Devices : 2 //可用磁盘数量
Failed Devices : 1 //异常磁盘数量
Spare Devices : 1 //备用磁盘数量
Consistency Policy : resync
Rebuild Status : 63% complete
Name : guojie:1 (local to host guojie)
UUID : 6136632b:6a379cb4:8c7d476c:65129c96
Events : 29
Number Major Minor RaidDevice State
2 8 49 0 spare rebuilding /dev/sdd1
1 8 33 1 active sync /dev/sdc1
0 8 17 - faulty /dev/sdb1
有一块磁盘异常之后备用磁盘会自动替换异常的磁盘,等待几分钟再查看RAID1阵列的详细信息。重建进度如下:

重建完成之后

2.4.5 移除异常的磁盘
[root@guojie ~]# mdadm -r /dev/md1 /dev/sdb1
mdadm: hot removed /dev/sdb1 from /dev/md1

2.4.6 添加新磁盘到raid1阵列中
[root@guojie ~]# mdadm -a /dev/md1 /dev/sdb1
mdadm: added /dev/sdb1

注意:
- 新增加的硬盘需要与原硬盘大小一致。
- 如果原有阵列缺少工作磁盘(如raid1只有一块在工作,raid5只有2块在工作),这时新增加的磁盘直接变为工作磁盘,如果原有阵列工作正常,则新增加的磁盘为热备磁盘。
2.5 raid5
2.5.1 创建raid5
mdadm -C -v /dev/md5 -l 5 -n 3 /dev/sdb1 /dev/sdc1 /dev/sdd1 -x 1 /dev/sde1
[root@guojie ~]# mdadm -C -v /dev/md5 -l 5 -n 3 /dev/sdb1 /dev/sdc1 /dev/sdd1 -x 1 /dev/sde1
mdadm: layout defaults to left-symmetric
mdadm: layout defaults to left-symmetric
mdadm: super1.x cannot open /dev/sdb1: Device or resource busy
mdadm: ddf: Cannot use /dev/sdb1: Device or resource busy
mdadm: Cannot use /dev/sdb1: It is busy
mdadm: cannot open /dev/sdb1: Device or resource busy
#这里提示设备或资源繁忙,需要先把之前的raid解除
[root@guojie ~]# umount /dev/md1
[root@guojie ~]# mdadm -S /dev/md1
mdadm: stopped /dev/md1
#再来一次,ok
[root@guojie ~]# mdadm -C -v /dev/md5 -l 5 -n 3 /dev/sdb1 /dev/sdc1 /dev/sdd1 -x 1 /dev/sde1
mdadm: layout defaults to left-symmetric
mdadm: layout defaults to left-symmetric
mdadm: chunk size defaults to 512K
mdadm: /dev/sdb1 appears to be part of a raid array:
level=raid1 devices=2 ctime=Wed Mar 13 12:48:37 2024
mdadm: /dev/sdc1 appears to be part of a raid array:
level=raid1 devices=2 ctime=Wed Mar 13 12:48:37 2024
mdadm: /dev/sdd1 appears to be part of a raid array:
level=raid1 devices=2 ctime=Wed Mar 13 12:48:37 2024
mdadm: size set to 10475520K
Continue creating array? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md5 started.
2.5.2 查看raid状态
[root@guojie ~]# cat /proc/mdstat
Personalities : [raid0] [raid1] [raid6] [raid5] [raid4]
md5 : active raid5 sdd1[4] sde1[3](S) sdc1[1] sdb1[0]
20951040 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/3] [UUU]
unused devices: <none>
[root@guojie ~]# mdadm -D /dev/md5
/dev/md5:
Version : 1.2
Creation Time : Wed Mar 13 13:25:22 2024
Raid Level : raid5
Array Size : 20951040 (19.98 GiB 21.45 GB)
Used Dev Size : 10475520 (9.99 GiB 10.73 GB)
Raid Devices : 3
Total Devices : 4
Persistence : Superblock is persistent
Update Time : Wed Mar 13 13:26:14 2024
State : clean
Active Devices : 3
Working Devices : 4
Failed Devices : 0
Spare Devices : 1
Layout : left-symmetric
Chunk Size : 512K
Consistency Policy : resync
Name : guojie:5 (local to host guojie)
UUID : abdb8c92:d5e1b83f:440fb946:ffd24053
Events : 18
Number Major Minor RaidDevice State
0 8 17 0 active sync /dev/sdb1
1 8 33 1 active sync /dev/sdc1
4 8 49 2 active sync /dev/sdd1
3 8 65 - spare /dev/sde1
2.5.3 模拟磁盘损坏
#模拟/dev/sdb1损坏
[root@guojie ~]# mdadm -f /dev/md5 /dev/sdb1
mdadm: set /dev/sdb1 faulty in /dev/md5
#等待一会儿之后
[root@guojie ~]# mdadm -D /dev/md5
/dev/md5:
Version : 1.2
Creation Time : Wed Mar 13 13:25:22 2024
Raid Level : raid5
Array Size : 20951040 (19.98 GiB 21.45 GB)
Used Dev Size : 10475520 (9.99 GiB 10.73 GB)
Raid Devices : 3
Total Devices : 4
Persistence : Superblock is persistent
Update Time : Wed Mar 13 13:30:25 2024
State : clean //替换干净
Active Devices : 3
Working Devices : 3
Failed Devices : 1
Spare Devices : 0 //备用磁盘为0
Layout : left-symmetric
Chunk Size : 512K
Consistency Policy : resync
Name : guojie:5 (local to host guojie)
UUID : abdb8c92:d5e1b83f:440fb946:ffd24053
Events : 37
Number Major Minor RaidDevice State
3 8 65 0 active sync /dev/sde1
1 8 33 1 active sync /dev/sdc1
4 8 49 2 active sync /dev/sdd1
0 8 17 - faulty /dev/sdb1
2.5.4 格式化并挂载
# 格式化
[root@guojie ~]# mkfs.xfs -f /dev/md5
meta-data=/dev/md5 isize=512 agcount=16, agsize=327296 blks
= sectsz=4096 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=5236736, imaxpct=25
= sunit=128 swidth=256 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=4096 sunit=1 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
#查看挂载
[root@guojie ~]# mount /dev/md5 /data/
[root@guojie ~]# blkid /dev/md5
/dev/md5: UUID="105e1de8-4aa4-4334-9d3b-1e543cd5babe" TYPE="xfs"
[root@guojie ~]# df -hT
文件系统 类型 容量 已用 可用 已用% 挂载点
devtmpfs devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs tmpfs 1.9G 9.1M 1.9G 1% /run
tmpfs tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/mapper/centos-root xfs 35G 1.5G 34G 5% /
/dev/sda1 xfs 1014M 150M 865M 15% /boot
tmpfs tmpfs 379M 0 379M 0% /run/user/0
/dev/md5 xfs 20G 33M 20G 1% /data
2.5.5停止阵列
[root@guojie ~]# umount /dev/md5
[root@guojie ~]# mdadm -S /dev/md5
mdadm: stopped /dev/md5
2.6 raid6
2.6.1 创建raid6
再添加一块磁盘(现在6块):

一样对它分区:fdisk /dev/sdg-->n-->回车-->回车-->回车-->回车-->t-->fd-->w

创建raid6:
mdadm -C -v /dev/md6 -l 6 -n 4 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1 -x 2 /dev/sdf1 /dev/sdg1
[root@guojie ~]# mdadm -C -v /dev/md6 -l 6 -n 4 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1 -x 2 /dev/sdf1 /dev/sdg1
mdadm: layout defaults to left-symmetric
mdadm: layout defaults to left-symmetric
mdadm: chunk size defaults to 512K
mdadm: /dev/sdb1 appears to be part of a raid array:
level=raid5 devices=3 ctime=Wed Mar 13 13:25:22 2024
mdadm: /dev/sdc1 appears to be part of a raid array:
level=raid5 devices=3 ctime=Wed Mar 13 13:25:22 2024
mdadm: /dev/sdd1 appears to be part of a raid array:
level=raid5 devices=3 ctime=Wed Mar 13 13:25:22 2024
mdadm: /dev/sde1 appears to be part of a raid array:
level=raid5 devices=3 ctime=Wed Mar 13 13:25:22 2024
mdadm: size set to 10475520K
Continue creating array? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md6 started.
2.6.2查看RAID 6阵列信息
[root@guojie ~]# cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4]
md6 : active raid6 sdg1[5](S) sdf1[4](S) sde1[3] sdd1[2] sdc1[1] sdb1[0]
20951040 blocks super 1.2 level 6, 512k chunk, algorithm 2 [4/4] [UUUU]
unused devices: <none>
[root@guojie ~]# mdadm -D /dev/md6
/dev/md6:
Version : 1.2
Creation Time : Wed Mar 13 13:53:17 2024
Raid Level : raid6
Array Size : 20951040 (19.98 GiB 21.45 GB)
Used Dev Size : 10475520 (9.99 GiB 10.73 GB)
Raid Devices : 4
Total Devices : 6
Persistence : Superblock is persistent
Update Time : Wed Mar 13 13:54:10 2024
State : clean
Active Devices : 4
Working Devices : 6
Failed Devices : 0
Spare Devices : 2
Layout : left-symmetric
Chunk Size : 512K
Consistency Policy : resync
Name : guojie:6 (local to host guojie)
UUID : 7ae4a7ec:db47bd9e:a28c3190:29453456
Events : 17
Number Major Minor RaidDevice State
0 8 17 0 active sync /dev/sdb1
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
5 8 97 - spare /dev/sdg1
[root@guojie ~]# lsblk /dev/md6
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
md6 9:6 0 20G 0 raid6
2.6.3 模拟磁盘损坏(同时损坏两块)
# 损坏/dev/sdb1
[root@guojie ~]# mdadm -f /dev/md6 /dev/sdb1
mdadm: set /dev/sdb1 faulty in /dev/md6
#损坏/dev/sdc1
[root@guojie ~]# mdadm -f /dev/md6 /dev/sdc1
mdadm: set /dev/sdc1 faulty in /dev/md6
#等待一会儿之后
[root@guojie ~]# mdadm -D /dev/md6
/dev/md6:
Version : 1.2
Creation Time : Wed Mar 13 13:53:17 2024
Raid Level : raid6
Array Size : 20951040 (19.98 GiB 21.45 GB)
Used Dev Size : 10475520 (9.99 GiB 10.73 GB)
Raid Devices : 4
Total Devices : 6
Persistence : Superblock is persistent
Update Time : Wed Mar 13 13:58:29 2024
State : clean
Active Devices : 4
Working Devices : 4
Failed Devices : 2
Spare Devices : 0
Layout : left-symmetric
Chunk Size : 512K
Consistency Policy : resync
Name : guojie:6 (local to host guojie)
UUID : 7ae4a7ec:db47bd9e:a28c3190:29453456
Events : 41
Number Major Minor RaidDevice State
5 8 97 0 active sync /dev/sdg1
4 8 81 1 active sync /dev/sdf1
2 8 49 2 active sync /dev/sdd1
3 8 65 3 active sync /dev/sde1
0 8 17 - faulty /dev/sdb1
1 8 33 - faulty /dev/sdc1
2.6.4 磁盘格式化挂载
[root@guojie ~]# mkfs.xfs -f /dev/md6
meta-data=/dev/md6 isize=512 agcount=16, agsize=327296 blks
= sectsz=4096 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=5236736, imaxpct=25
= sunit=128 swidth=256 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=4096 sunit=1 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
[root@guojie ~]# mount /dev/md6 /data/
[root@guojie ~]# df -hT
文件系统 类型 容量 已用 可用 已用% 挂载点
devtmpfs devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs tmpfs 1.9G 9.1M 1.9G 1% /run
tmpfs tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/mapper/centos-root xfs 35G 1.5G 34G 5% /
/dev/sda1 xfs 1014M 150M 865M 15% /boot
tmpfs tmpfs 379M 0 379M 0% /run/user/0
/dev/md6 xfs 20G 33M 20G 1% /data
2.6.5 停止阵列
[root@guojie ~]# umount /dev/md6
[root@guojie ~]# mdadm -S /dev/md6
mdadm: stopped /dev/md6
2.7 raid10
raid其实是raid1和raid0组成的。
2.7.1 创建两个raid1阵列
# 创建第一个raid1整列/dev/md1
[root@guojie ~]# mdadm -C -v /dev/md1 -l 1 -n 2 /dev/sdb1 /dev/sdc1
mdadm: /dev/sdb1 appears to be part of a raid array:
level=raid6 devices=4 ctime=Wed Mar 13 13:53:17 2024
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: /dev/sdc1 appears to be part of a raid array:
level=raid6 devices=4 ctime=Wed Mar 13 13:53:17 2024
mdadm: size set to 10475520K
Continue creating array? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md1 started.
# 创建第二个阵列raid1整列/dev/md0
[root@guojie ~]# mdadm -C -v /dev/md0 -l 1 -n 2 /dev/sdd1 /dev/sde1
mdadm: /dev/sdd1 appears to be part of a raid array:
level=raid6 devices=4 ctime=Wed Mar 13 13:53:17 2024
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: /dev/sde1 appears to be part of a raid array:
level=raid6 devices=4 ctime=Wed Mar 13 13:53:17 2024
mdadm: size set to 10475520K
Continue creating array? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
2.7.2 查看两个raid1阵列
[root@guojie ~]# mdadm -D /dev/md1
/dev/md1:
Version : 1.2
Creation Time : Wed Mar 13 14:05:20 2024
Raid Level : raid1
Array Size : 10475520 (9.99 GiB 10.73 GB)
Used Dev Size : 10475520 (9.99 GiB 10.73 GB)
Raid Devices : 2
Total Devices : 2
Persistence : Superblock is persistent
Update Time : Wed Mar 13 14:06:12 2024
State : clean
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0
Consistency Policy : resync
Name : guojie:1 (local to host guojie)
UUID : 5d45f5b0:5308c46e:599b067d:af1fa9ec
Events : 17
Number Major Minor RaidDevice State
0 8 17 0 active sync /dev/sdb1
1 8 33 1 active sync /dev/sdc1
[root@guojie ~]# mdadm -D /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Wed Mar 13 14:07:22 2024
Raid Level : raid1
Array Size : 10475520 (9.99 GiB 10.73 GB)
Used Dev Size : 10475520 (9.99 GiB 10.73 GB)
Raid Devices : 2
Total Devices : 2
Persistence : Superblock is persistent
Update Time : Wed Mar 13 14:08:14 2024
State : clean
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0
Consistency Policy : resync
Name : guojie:0 (local to host guojie)
UUID : 386e4b21:2ed93a98:dc81a439:04a8e980
Events : 17
Number Major Minor RaidDevice State
0 8 49 0 active sync /dev/sdd1
1 8 65 1 active sync /dev/sde1
2.7.3 创建raid 1+0阵列
[root@guojie ~]# mdadm -C -v /dev/md10 -l 0 -n 2 /dev/md1 /dev/md0
mdadm: chunk size defaults to 512K
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md10 started.
2.7.4查看RAID 1+0阵列信息
[root@guojie ~]# mdadm -D /dev/md10
/dev/md10:
Version : 1.2
Creation Time : Wed Mar 13 14:09:59 2024
Raid Level : raid0
Array Size : 20932608 (19.96 GiB 21.43 GB)
Raid Devices : 2
Total Devices : 2
Persistence : Superblock is persistent
Update Time : Wed Mar 13 14:09:59 2024
State : clean
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0
Chunk Size : 512K
Consistency Policy : none
Name : guojie:10 (local to host guojie)
UUID : e4b394a3:9ab0d585:ca42603b:ac727058
Events : 0
Number Major Minor RaidDevice State
0 9 1 0 active sync /dev/md1
1 9 0 1 active sync /dev/md0
2.7.5 磁盘挂载
[root@guojie ~]# mkfs.xfs -f /dev/md10
Discarding blocks...Done.
meta-data=/dev/md10 isize=512 agcount=16, agsize=327040 blks
= sectsz=4096 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=5232640, imaxpct=25
= sunit=128 swidth=256 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=4096 sunit=1 blks, lazy-count=1
realtime =none
[root@guojie ~]# df -hT
文件系统 类型 容量 已用 可用 已用% 挂载点
devtmpfs devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs tmpfs 1.9G 9.1M 1.9G 1% /run
tmpfs tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/mapper/centos-root xfs 35G 1.5G 34G 5% /
/dev/sda1 xfs 1014M 150M 865M 15% /boot
tmpfs tmpfs 379M 0 379M 0% /run/user/0
/dev/md10 xfs 20G 33M 20G 1% /data
2.7.6 停止阵列
[root@guojie ~]# umount /dev/md10
[root@guojie ~]# mdadm -S /dev/md10
mdadm: stopped /dev/md10
[root@guojie ~]# mdadm -S /dev/md1
mdadm: stopped /dev/md1
[root@guojie ~]# mdadm -S /dev/md0
mdadm: stopped /dev/md0
三、总结选择
| RAID级别 | 最小磁盘数 | 容错能力 | 磁盘空间开销 | 读取速度 | 写入速度 | 硬件成本 | 适用场景 |
|---|---|---|---|---|---|---|---|
| RAID 0 | 2 | 无 | 0% | 高 | 高 | 低 | 视频编辑和处理、大型数据库应用、实时流媒体 |
| RAID 1 | 2 | 单个磁盘 | 50% | 高 | 低 | 中 | 关键数据库存储、数据库服务器、文件服务器 |
| RAID 5 | 3 | 单个磁盘 | 1 / N | 中 | 低 | 中 | 文件服务器、数据库服务器、小型企业环境 |
| RAID 6 | 4 | 两个磁盘 | 2 / N | 中 | 低 | 高 | 大容量储存系统、长时间运行的应用程序、虚拟化环境 |
| RAID 10 | 4 | 多个磁盘 | 50% | 高 | 中 | 高 | 数据库服务器、虚拟化环境、关键业务应用 |

浙公网安备 33010602011771号