RAID磁盘阵列技术
RAID磁盘阵列技术
1、RAID概述
RAID(Redundant Array of Independent Disk),从字面意思讲的是基于独立磁盘的具有冗余的磁盘阵列,其核心思想是将多块独立磁盘按不同方式组成一个逻辑磁盘,以此来提高其存储容量、提高性能或者提供数据备份的功能。按其组合的方式不同而分成不同级别的RAID。
RAID分为软件RAID和硬件RAID两类,在比较流行的操作系统中已经集成了软RAID功能,如常用的Windows、Linux系统都有软件RAID功能,在功能上,软件RAID与硬件RAID一样,但是由于软件RAID没有独立的硬件控制设备,所以其性能不如硬件RAID,但是其实现比硬件RAID简单,不需要额外的硬件支持。硬件RAID通常需要有RAID卡,而RAID卡自带有独立的控制部件和内存,所以不会占用系统资源。目前大部分主板都已经集成了RAID卡。
2、什么是RAID?
- RAID(Redundatnt Array of lndependent Disks),全称为:独立磁盘冗余阵列
RAID是一种把多块独立的硬盘(物理硬盘)按不同的方式组合起来形成一个硬盘组(逻辑硬盘),从而提供比单个硬盘 更高的存储性能 和提供 数据备份技术
常见的RAID级别别有以下几种:
RAID 0 、 RAID 1、 RAID 5、RAID 10
RAID 0、1、5、10方案技术对比
| RAID级别 | 硬盘数量 | 硬盘利用率 | 是否有校验 | 保护能力 | 写性能 |
|---|---|---|---|---|---|
| RAID0 | N | N | 无 | 无 | 单个硬盘的N倍 |
| RAID1 | N(偶数) | N/2 | 无 | 允许一个设备故障 | 需写两对存储设备,互为主备 |
| RAID5 | N≥3 | (N-1)N | 有 | 允许一个设备故障 | 需写计算校验 |
| RAID10 | N≥4(偶数) | N/2 | 无 | 允许两个基组各坏一个 | N/2块盘同时写入 |
注意:其中N代表硬盘总数
3、RAID级别详解
3.1 RAID 0(不含校验与冗余的条带存储)
RAID 0技术把多块物理硬盘设备(至少两块)通过硬件或软件的方式串联在一起,组成一个大的卷组,并将数据依次写入各个物理硬盘中。这样一来,在最理想的状态下,硬盘设备的读写性能会提升数倍,但是若任意一块硬盘发生故障,将导致整个系统的数据都受到破坏。通俗来说,RAID 0技术能够有效地提升硬盘数据的吞吐速度,但是不具备数据备份和错误修复能力

3.2 RAID 1(不含检验的镜像存储)
RAID 1技术 是把两块以上的硬盘设备进行绑定,在写入数据时,是将数据同时写入到多块硬盘设备上(可以将其视为数据的镜像或备份)。但在读取数据的时候,操作系统可以分别从两块硬盘中读取信息,因此理论读取速度的峰值可以是硬盘数量的倍数。另外,平时只要保证有一块硬盘稳定运行,数据就不会出现损坏的情况,可靠性较高。

3.3 RAID 5(数据块级别的分布式检验条带存储)
RAID 5 最少需要3块磁盘组成,使用的是硬盘切割(Disk Striping)技术。两块磁盘为数据的存储,一块磁盘为校验数据,数据存储的盘的数据读写和RAID 1(分布式存储)是一样的,但是有校验机制,所以写的速度相对RAID 0较差一点,读取的速度很高。任何一个磁盘数据丢失或损坏,都不会导致整个数据丢失,因为有校验机制的盘会通过其它没有损坏的盘计算出损坏的盘内容数据。

3.4 RAID 10(镜像与条带存储)
RAID 10技术是RAID 1+RAID 0技术的一个“组合体”,RAID 10需要至少4块硬盘来组建,其中先分别两两制作成RAID 1磁盘阵列,以保证数据的安全性;然后再对两个RAID 1磁盘阵列实施RAID 0技术,进一步提高硬盘设备的读写速度。RAID 10技术继承了RAID 0的高读写速度和RAID 1的数据安全性。

4、RAID实战
准备
安装CentOS 8操作系统主机,并添加4块20 GB硬盘。
命令
mdadm命令用于创建、调整、监控和管理RAID设备,语法格式为“mdadm 参数 硬盘名称”。
mdadm命令的常用参数和作用
| -D | 显示RAID设备的详细信息 |
|---|---|
| -A | 加入一个以前定义的RAID |
| -B | 创建一个没有超级块的RAID设备 |
| -F | 选项监控模式 |
| -G | 更改RAID设备的大小或形态 |
| -I | 添加设备到RAID中,或从RAID中删除设备 |
| -z | 组建RAID1、RAID4、RAID5、RAID6后从每个RAID成员获取的空间容量 |
| -s | 扫描配置文件或/proc/mdstat以搜寻丢失的信息 |
| -C | 把RAID信息写入每个成员超级块中 |
| -v | 显示RAID创建过程中的详细信息 |
| -B | 不把RAID信息写入每个成员的超级块中 |
| -l | 指定RAID的级别 |
| -n | 指定RAID中活动设备的数目 |
| -f | 把RAID成员列为有问题,以便移除该成员 |
| -r | 把RAID成员移出RAID设备 |
| -a | 向RAID设备中添加一个成员 |
| --re-add | 把最近移除的RAID成员重新添加到RAID设备中 |
| -E | 查看RAID成员详细信息 |
| -c | 创建一个RAID设备时默认为512kb |
| -R | 开始部分组装RAID |
| -S | 停用RAID设备,释放所有资源 |
| -x | 指定初始RAID设备的备用成员的数量 |
| --zero-superblock | 如果RAID设备包含一个有效的超级块,该块使用零覆盖 |
4.1 RAID 0部署
实验环境
| RAID级别 | 磁盘 | 热备盘 |
|---|---|---|
| raid0 | sdb,sdc |
# 安装mdadm
[root@localhost ~]# yum -y install mdadm
# 创建raid0
[root@localhost ~]# mdadm -C -v /dev/md0 -l 0 -n 2 /dev/sd[b,c]
mdadm: chunk size defaults to 512K
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
# 查看阵列信息
[root@localhost ~]# mdadm -Ds
ARRAY /dev/md0 metadata=1.2 name=localhost.localdomain:0 UUID=85c13218:1975466f:a1d59df8:b4833594
[root@localhost ~]# mdadm -D /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Tue Aug 16 11:21:04 2022
Raid Level : raid0
Array Size : 41908224 (39.97 GiB 42.91 GB)
Raid Devices : 2
Total Devices : 2
Persistence : Superblock is persistent
Update Time : Tue Aug 16 11:21:04 2022
State : clean
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0
Layout : -unknown-
Chunk Size : 512K
Consistency Policy : none
Name : localhost.localdomain:0 (local to host localhost.localdomain)
UUID : 85c13218:1975466f:a1d59df8:b4833594
Events : 0
Number Major Minor RaidDevice State
0 8 16 0 active sync /dev/sdb
1 8 32 1 active sync /dev/sdc
# 将RAID信息保存到配置文件
[root@localhost ~]# mdadm -Dsv > /etc/mdadm.conf
# 格式化
[root@localhost ~]# mkfs.xfs /dev/md0
log stripe unit (524288 bytes) is too large (maximum is 256KiB)
log stripe unit adjusted to 32KiB
meta-data=/dev/md0 isize=512 agcount=16, agsize=654720 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=1, rmapbt=0
= reflink=1
data = bsize=4096 blocks=10475520, imaxpct=25
= sunit=128 swidth=256 blks
naming =version 2 bsize=4096 ascii-ci=0, ftype=1
log =internal log bsize=4096 blocks=5120, version=2
= sectsz=512 sunit=8 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
# 创建挂载点
[root@localhost ~]# mkdir /raid0
[root@localhost ~]# ls /
bin boot dev etc home lib lib64 media mnt opt proc raid0 root run sbin srv sys tmp usr var
# 进行挂载
[root@localhost ~]# mount /dev/md0 /raid0/
[root@localhost ~]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 876M 0 876M 0% /dev
tmpfs 895M 0 895M 0% /dev/shm
tmpfs 895M 8.7M 887M 1% /run
tmpfs 895M 0 895M 0% /sys/fs/cgroup
/dev/mapper/cs-root 17G 1.9G 16G 11% /
/dev/sda1 1014M 195M 820M 20% /boot
tmpfs 179M 0 179M 0% /run/user/0
/dev/md0 40G 319M 40G 1% /raid0
# 查找md0UUID
[root@localhost ~]# blkid /dev/md0
/dev/md0: UUID="52e21055-43a3-442e-b649-110de8d92071" BLOCK_SIZE="512" TYPE="xfs"
# 将挂载写入到/etc/fstab中,实现永久挂载, 开机自动挂载
[root@localhost ~]# vim /etc/fstab
......
UUID="52e21055-43a3-442e-b649-110de8d92071" /raid0 xfs defaults 0 0
......
# 解除挂载
[root@localhost ~]# umount /raid0/
[root@localhost ~]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 876M 0 876M 0% /dev
tmpfs 895M 0 895M 0% /dev/shm
tmpfs 895M 8.7M 887M 1% /run
tmpfs 895M 0 895M 0% /sys/fs/cgroup
/dev/mapper/cs-root 17G 1.9G 16G 11% /
/dev/sda1 1014M 195M 820M 20% /boot
tmpfs 179M 0 179M 0% /run/user/0
# 加载fstab配置文件, 同时检测语法是否有错误
[root@localhost ~]# mount -a
[root@localhost ~]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 876M 0 876M 0% /dev
tmpfs 895M 0 895M 0% /dev/shm
tmpfs 895M 8.7M 887M 1% /run
tmpfs 895M 0 895M 0% /sys/fs/cgroup
/dev/mapper/cs-root 17G 1.9G 16G 11% /
/dev/sda1 1014M 195M 820M 20% /boot
tmpfs 179M 0 179M 0% /run/user/0
/dev/md0 40G 319M 40G 1% /raid0
4.2 RAID1 部署
实验环境
| RAID级别 | 磁盘 | 热备盘 |
|---|---|---|
| raid1 | sdb,sdc | sdd |
1)创建RAID1
2)添加1个热备盘
3)模拟磁盘故障,自动顶替故障盘
4)从raid1中移除故障盘
# 创建raid1
[root@localhost ~]# mdadm -C -v /dev/md1 -l 1 -n 2 -x 1 /dev/sd[b,c,d]
// -C 创建 -v 详细信息 -l阵列级别 -n 阵列成员数量 -x阵列备用盘数量
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? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md1 started.
# 将RAID信息保存到配置文件
[root@localhost ~]# mdadm -Dsv > /etc/mdadm.conf
# 查看RAID阵列信息
[root@localhost ~]# mdadm -D /dev/md1
/dev/md1:
Version : 1.2
Creation Time : Tue Aug 16 10:41:44 2022
Raid Level : raid1
Array Size : 20954112 (19.98 GiB 21.46 GB)
Used Dev Size : 20954112 (19.98 GiB 21.46 GB)
Raid Devices : 2
Total Devices : 3
Persistence : Superblock is persistent
Update Time : Tue Aug 16 10:43:29 2022
State : clean
Active Devices : 2
Working Devices : 3
Failed Devices : 0
Spare Devices : 1
Consistency Policy : resync
Name : localhost.localdomain:1 (local to host localhost.localdomain)
UUID : c371a1b7:49be4a4f:9d0c47c1:ca740e5d
Events : 17
Number Major Minor RaidDevice State
0 8 16 0 active sync /dev/sdb
1 8 32 1 active sync /dev/sdc
2 8 48 - spare /dev/sdd
# 格式化
[root@localhost ~]# mkfs.xfs /dev/md1
meta-data=/dev/md1 isize=512 agcount=4, agsize=1309632 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=1, rmapbt=0
= reflink=1
data = bsize=4096 blocks=5238528, 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 ~]# mkdir /raid1
# 进行挂载
[root@localhost ~]# mount /dev/md1 /raid1/
# 准备测试文件
[root@localhost ~]# cp /etc/passwd /raid1/
# 模拟损坏
[root@localhost ~]# mdadm /dev/md1 -f /dev/sdc
mdadm: set /dev/sdc faulty in /dev/md1
# 查看阵列状态信息
[root@localhost ~]# mdadm -D /dev/md1
/dev/md1:
Version : 1.2
Creation Time : Tue Aug 16 10:41:44 2022
Raid Level : raid1
Array Size : 20954112 (19.98 GiB 21.46 GB)
Used Dev Size : 20954112 (19.98 GiB 21.46 GB)
Raid Devices : 2
Total Devices : 3
Persistence : Superblock is persistent
Update Time : Tue Aug 16 10:51:21 2022
State : clean, degraded, recovering
Active Devices : 1
Working Devices : 2
Failed Devices : 1
Spare Devices : 1
Consistency Policy : resync
Rebuild Status : 11% complete
Name : localhost.localdomain:1 (local to host localhost.localdomain)
UUID : c371a1b7:49be4a4f:9d0c47c1:ca740e5d
Events : 20
Number Major Minor RaidDevice State
0 8 16 0 active sync /dev/sdb
2 8 48 1 spare rebuilding /dev/sdd
1 8 32 - faulty /dev/sdc
# 更新配置文件
[root@localhost ~]# mdadm -Dsv > /etc/mdadm.conf
# 查看数据是否丢失
[root@localhost ~]# ls /raid1/
passwd
[root@localhost ~]# cat -n /raid1/passwd
1 root:x:0:0:root:/root:/bin/bash
2 bin:x:1:1:bin:/bin:/sbin/nologin
3 daemon:x:2:2:daemon:/sbin:/sbin/nologin
......
# 移除损坏设备
[root@localhost ~]# mdadm -r /dev/md1 /dev/sdc
mdadm: hot removed /dev/sdc from /dev/md1
# 添加一块新热备盘
[root@localhost ~]# mdadm -a /dev/md1 /dev/sde
mdadm: added /dev/sde
# 查看阵列状态信息
[root@localhost ~]# mdadm -D /dev/md1
/dev/md1:
Version : 1.2
Creation Time : Tue Aug 16 11:03:51 2022
Raid Level : raid1
Array Size : 20954112 (19.98 GiB 21.46 GB)
Used Dev Size : 20954112 (19.98 GiB 21.46 GB)
Raid Devices : 2
Total Devices : 3
Persistence : Superblock is persistent
Update Time : Tue Aug 16 11:07:31 2022
State : clean
Active Devices : 2
Working Devices : 3
Failed Devices : 0
Spare Devices : 1
Consistency Policy : resync
Name : localhost.localdomain:1 (local to host localhost.localdomain)
UUID : fccb9296:7e443ff9:0b0b3537:d7b43b6e
Events : 54
Number Major Minor RaidDevice State
0 8 16 0 active sync /dev/sdb
2 8 48 1 active sync /dev/sdd
3 8 64 - spare /dev/sde
4.3 RAID 5部署
实验环境
| RAID级别 | 磁盘 | 热备盘 |
|---|---|---|
| raid5 | sdb,sdc,sdd | sde |
1)创建RAID5,添加1个热备盘,指定chunk大小为32K
-X或--spare- devicds= 指定阵列中备用盘的数量
-C或--chunk=设定阵列的块chunk块大小,单位为KB
2)停止阵列,重新激活阵列
3)使用热备盘,扩展阵列容量,从3个磁盘扩展到4个
# 创建raid5
[root@localhost ~]# mdadm -C -v /dev/md5 -l 5 -n 3 -x 1 -c 32 /dev/sd[b,c,d,e]
mdadm: layout defaults to left-symmetric
mdadm: layout defaults to left-symmetric
mdadm: size set to 20954112K
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md5 started.
# 查看阵列状态信息
[root@localhost ~]# mdadm -D /dev/md5
/dev/md5:
Version : 1.2
Creation Time : Tue Aug 16 14:06:04 2022
Raid Level : raid5
Array Size : 41908224 (39.97 GiB 42.91 GB)
Used Dev Size : 20954112 (19.98 GiB 21.46 GB)
Raid Devices : 3
Total Devices : 4
Persistence : Superblock is persistent
Update Time : Tue Aug 16 14:06:10 2022
State : clean, degraded, recovering
Active Devices : 2
Working Devices : 4
Failed Devices : 0
Spare Devices : 2
Layout : left-symmetric
Chunk Size : 32K
Consistency Policy : resync
Rebuild Status : 9% complete #同步状态,同步完,此行消失。
Name : localhost.localdomain:5 (local to host localhost.localdomain)
UUID : 6b7d5927:032f6b93:7e0638b1:5e9dec9f
Events : 2
Number Major Minor RaidDevice State
0 8 16 0 active sync /dev/sdb
1 8 32 1 active sync /dev/sdc
4 8 48 2 spare rebuilding /dev/sdd
3 8 64 - spare /dev/sde
# 将RAID信息保存到配置文件
[root@localhost ~]# mdadm -Dsv > /etc/mdadm.conf
# 确认数据同步
[root@localhost ~]# mdadm -D /dev/md5
/dev/md5:
Version : 1.2
Creation Time : Tue Aug 16 14:06:04 2022
Raid Level : raid5
Array Size : 41908224 (39.97 GiB 42.91 GB)
Used Dev Size : 20954112 (19.98 GiB 21.46 GB)
Raid Devices : 3
Total Devices : 4
Persistence : Superblock is persistent
Update Time : Tue Aug 16 14:07:49 2022
State : clean
Active Devices : 3
Working Devices : 4
Failed Devices : 0
Spare Devices : 1
Layout : left-symmetric
Chunk Size : 32K
Consistency Policy : resync
Name : localhost.localdomain:5 (local to host localhost.localdomain)
UUID : 6b7d5927:032f6b93:7e0638b1:5e9dec9f
Events : 18
Number Major Minor RaidDevice State
0 8 16 0 active sync /dev/sdb
1 8 32 1 active sync /dev/sdc
4 8 48 2 active sync /dev/sdd
3 8 64 - spare /dev/sde
# 扩展RAID5磁盘阵列
[root@localhost ~]# mdadm -G /dev/md5 -n 4 -c 32
# 确认数据同步
[root@localhost ~]# mdadm -D /dev/md5
/dev/md5:
Version : 1.2
Creation Time : Tue Aug 16 14:06:04 2022
Raid Level : raid5
Array Size : 41908224 (39.97 GiB 42.91 GB)
Used Dev Size : 20954112 (19.98 GiB 21.46 GB)
Raid Devices : 4
Total Devices : 4
Persistence : Superblock is persistent
Update Time : Tue Aug 16 14:10:20 2022
State : clean, reshaping
Active Devices : 4
Working Devices : 4
Failed Devices : 0
Spare Devices : 0
Layout : left-symmetric
Chunk Size : 32K
Consistency Policy : resync
Reshape Status : 26% complete
Delta Devices : 1, (3->4)
Name : localhost.localdomain:5 (local to host localhost.localdomain)
UUID : 6b7d5927:032f6b93:7e0638b1:5e9dec9f
Events : 50
Number Major Minor RaidDevice State
0 8 16 0 active sync /dev/sdb
1 8 32 1 active sync /dev/sdc
4 8 48 2 active sync /dev/sdd
3 8 64 3 active sync /dev/sde
# 停止MD5阵列
[root@localhost ~]# mdadm -Dsv > /etc/mdadm.conf #停止前,一定要先保存配置文件
[root@localhost ~]# mdadm -D /dev/md5 #停止前,请确认数据已经同步完(同步不完成,有时会无法激活)
......
Consistency Policy : resync #数据已经同步完
......
[root@localhost ~]# mdadm -S /dev/md5 #-S 停止阵列
mdadm: stopped /dev/md5
# 激活MD5阵列
[root@localhost ~]# mdadm -As #-A 激活磁盘阵列 s扫描配置文件得到阵列信息
mdadm: /dev/md5 has been started with 4 drives.
备注:
1)停止前,一定要先保存配置文件
2)阵列只有在正常状态下才能扩容,降级及重构时不允许扩容。对于raid5来说,只能增加成员盘,不能减少;而对于raid1来说,可以增加成员盘,也可以减少。
3)要等所有数据同步后,新增加的磁盘空间才会在md5空间中有数据变化
4.4 RAID 10 部署
实验环境
| RAID级别 | 磁盘 | 热备盘 |
|---|---|---|
| raid10 | 分区:sdb1,sdb2,sdb3,sdb4 |
备注:
1)--zero-superblock:清除设备上的MD超级块
2)如更换的RAID卡与原卡规格型号相同,则不会有什么问题;若两卡规格型号不同,需重新安装新卡驱动程序。若驱动程序差别不大,RAID盘组合顺序正常,硬盘原数据可正确读写;若驱动程序结构差别大,则可能发生读写错误。
# 创建raid10
[root@localhost ~]# mdadm -C -v /dev/md10 -l 10 -n 4 /dev/sd[b,c,d,e]
mdadm: layout defaults to n2
mdadm: layout defaults to n2
mdadm: chunk size defaults to 512K
mdadm: partition table exists on /dev/sdb
mdadm: partition table exists on /dev/sdb but will be lost or
meaningless after creating array
mdadm: size set to 20954112K
Continue creating array? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md10 started.
# 查看阵列状态信息
[root@localhost ~]# mdadm -D /dev/md10
/dev/md10:
Version : 1.2
Creation Time : Tue Aug 16 14:57:53 2022
Raid Level : raid10
Array Size : 41908224 (39.97 GiB 42.91 GB)
Used Dev Size : 20954112 (19.98 GiB 21.46 GB)
Raid Devices : 4
Total Devices : 4
Persistence : Superblock is persistent
Update Time : Tue Aug 16 14:57:53 2022
State : clean, resyncing
Active Devices : 4
Working Devices : 4
Failed Devices : 0
Spare Devices : 0
Layout : near=2
Chunk Size : 512K
Consistency Policy : resync
Resync Status : 4% complete #同步状态,同步完,此行消失。
Name : localhost.localdomain:10 (local to host localhost.localdomain)
UUID : 6c6b4207:a0b0cc25:6df948a3:4997c88c
Events : 0
Number Major Minor RaidDevice State
0 8 16 0 active sync set-A /dev/sdb
1 8 32 1 active sync set-B /dev/sdc
2 8 48 2 active sync set-A /dev/sdd
3 8 64 3 active sync set-B /dev/sde
# 将RAID信息保存到配置文件
[root@localhost ~]# mdadm -Dsv > /etc/mdadm.conf
# 确认数据同步
[root@localhost ~]# mdadm -D /dev/md10
/dev/md10:
Version : 1.2
Creation Time : Tue Aug 16 14:57:53 2022
Raid Level : raid10
Array Size : 41908224 (39.97 GiB 42.91 GB)
Used Dev Size : 20954112 (19.98 GiB 21.46 GB)
Raid Devices : 4
Total Devices : 4
Persistence : Superblock is persistent
Update Time : Tue Aug 16 15:01:21 2022
State : clean
Active Devices : 4
Working Devices : 4
Failed Devices : 0
Spare Devices : 0
Layout : near=2
Chunk Size : 512K
Consistency Policy : resync
Name : localhost.localdomain:10 (local to host localhost.localdomain)
UUID : 6c6b4207:a0b0cc25:6df948a3:4997c88c
Events : 17
Number Major Minor RaidDevice State
0 8 16 0 active sync set-A /dev/sdb
1 8 32 1 active sync set-B /dev/sdc
2 8 48 2 active sync set-A /dev/sdd
3 8 64 3 active sync set-B /dev/sde
# 查看阵列信息
[root@localhost ~]# cat /proc/mdstat
Personalities : [raid10]
md10 : active raid10 sde[3] sdd[2] sdc[1] sdb[0]
41908224 blocks super 1.2 512K chunks 2 near-copies [4/4] [UUUU]
unused devices: <none>
# 格式化阵列
[root@localhost ~]# mkfs.ext4 /dev/md10
mke2fs 1.45.6 (20-Mar-2020)
Creating filesystem with 10477056 4k blocks and 2621440 inodes
Filesystem UUID: 16833119-5f99-4104-a324-1c4fd0aeaf6b
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624
Allocating group tables: done
Writing inode tables: done
Creating journal (65536 blocks): done
Writing superblocks and filesystem accounting information: done
# 挂载阵列
[root@localhost ~]# mkdir /raid10 #创建挂载点
[root@localhost ~]# mount /dev/md10 /raid10/
[root@localhost ~]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 876M 0 876M 0% /dev
tmpfs 895M 0 895M 0% /dev/shm
tmpfs 895M 8.7M 887M 1% /run
tmpfs 895M 0 895M 0% /sys/fs/cgroup
/dev/mapper/cs-root 17G 1.9G 16G 11% /
/dev/sda1 1014M 195M 820M 20% /boot
tmpfs 179M 0 179M 0% /run/user/0
/dev/md10 40G 49M 38G 1% /raid10
# 编辑/etc/fstab永久挂载阵列
[root@localhost ~]# vim /etc/fstab
....
UUID="16833119-5f99-4104-a324-1c4fd0aeaf6b" /raid10 ext4 defaults 0 0
.....
[root@localhost ~]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 876M 0 876M 0% /dev
tmpfs 895M 0 895M 0% /dev/shm
tmpfs 895M 8.7M 887M 1% /run
tmpfs 895M 0 895M 0% /sys/fs/cgroup
/dev/mapper/cs-root 17G 1.9G 16G 11% /
/dev/sda1 1014M 195M 820M 20% /boot
tmpfs 179M 0 179M 0% /run/user/0
/dev/md10 40G 49M 38G 1% /raid10
# 模拟磁盘损坏及修复
//模拟/dev/sdc损坏
[root@localhost ~]# mdadm /dev/md10 -f /dev/sdc
mdadm: set /dev/sdc faulty in /dev/md10
[root@localhost ~]# mdadm -D /dev/md10
/dev/md10:
Version : 1.2
Creation Time : Tue Aug 16 14:57:53 2022
Raid Level : raid10
Array Size : 41908224 (39.97 GiB 42.91 GB)
Used Dev Size : 20954112 (19.98 GiB 21.46 GB)
Raid Devices : 4
Total Devices : 4
Persistence : Superblock is persistent
Update Time : Tue Aug 16 15:14:52 2022
State : clean, degraded
Active Devices : 3
Working Devices : 3
Failed Devices : 1
Spare Devices : 0
Layout : near=2
Chunk Size : 512K
Consistency Policy : resync
Name : localhost.localdomain:10 (local to host localhost.localdomain)
UUID : 6c6b4207:a0b0cc25:6df948a3:4997c88c
Events : 19
Number Major Minor RaidDevice State
0 8 16 0 active sync set-A /dev/sdb
- 0 0 1 removed
2 8 48 2 active sync set-A /dev/sdd
3 8 64 3 active sync set-B /dev/sde
1 8 32 - faulty /dev/sdc
#查看raid状态,缺了一个U,说明4个盘有一个down了
[root@localhost ~]# cat /proc/mdstat
Personalities : [raid10]
md10 : active raid10 sde[3] sdd[2] sdc[1](F) sdb[0]
41908224 blocks super 1.2 512K chunks 2 near-copies [4/3] [U_UU]
unused devices: <none>
#移除/dev/sdc
[root@localhost ~]# mdadm /dev/md10 -r /dev/sdc
mdadm: hot removed /dev/sdc from /dev/md10
#通过lsblk以及mdadm -D /dev/md0命令可以查看一下情况
[root@localhost ~]# mdadm /dev/md10 -r /dev/sdc
mdadm: hot removed /dev/sdc from /dev/md10
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 19G 0 part
├─cs-root 253:0 0 17G 0 lvm /
└─cs-swap 253:1 0 2G 0 lvm [SWAP]
sdb 8:16 0 20G 0 disk
└─md10 9:10 0 40G 0 raid10 /raid10
sdc 8:32 0 20G 0 disk #已经离开阵列
sdd 8:48 0 20G 0 disk
└─md10 9:10 0 40G 0 raid10 /raid10
sde 8:64 0 20G 0 disk
└─md10 9:10 0 40G 0 raid10 /raid10
sr0 11:0 1 9G 0 rom
#现在假设/dev/sdc已经修复,重新加回到阵列里
[root@localhost ~]# mdadm /dev/md10 -a /dev/sdc
mdadm: added /dev/sdc
# 四个U,表示4块盘都正常了
[root@localhost ~]# cat /proc/mdstat
Personalities : [raid10]
md10 : active raid10 sdc[4] sde[3] sdd[2] sdb[0]
41908224 blocks super 1.2 512K chunks 2 near-copies [4/4] [UUUU]
unused devices: <none>
# 更新配置文件
[root@localhost ~]# mdadm -Dvs /dev/md10 > /etc/mdadm.conf
注意
mdadm运行时会自动检查/etc/mdadm.conf 文件并尝试自动装配,因此第一次配置raid后可以将信息导入到/etc/mdadm.conf中,如果不生成mdadm.conf文件,mdadm会尝试自己加载raid,最后可能会出现把raid生成到/dev/md*里
RAID磁盘阵列技术的更多相关文章
- RAID磁盘阵列及CentOS7系统启动流程(week2_day3)--技术流ken
RAID概念 磁盘阵列(Redundant Arrays of Independent Disks,RAID),有“独立磁盘构成的具有冗余能力的阵列”之意. 磁盘阵列是由很多价格较便宜的磁盘,以硬件( ...
- 使用RAID与LVM磁盘阵列技术。
7.2 LVM逻辑卷管理器 前面学习的硬盘设备管理技术虽然能够有效地提高硬盘设备的读写速度以及数据的安全性,但是在硬盘分好区或者部署为RAID磁盘阵列之后,再想修改硬盘分区大小就不容易了.换句话说,当 ...
- RAID与LVM磁盘阵列技术
RAID(Redundant Array of Independent Disks,独立冗余磁盘阵列) RAID概念: RAID技术通过把多个硬盘设备组合成一个容量更大.安全性更好的磁盘阵列,并把数据 ...
- Linux 就该这么学 CH07 使用RAID和LVM磁盘阵列技术
1 RAID (独立冗余磁盘阵列) RAID 技术通过把多个硬盘设备组合成一个容量更大.安全性更好的磁盘阵列,并把数据切割成多个区段之后分别存在各个不同的物理硬盘设备上,然后利用分散读写计数来提升磁盘 ...
- 第7章 使用RAID与LVM磁盘阵列技术
章节简述: 您好,此章节为新增加的知识内容,正在努力的排版完善,预习2016年9月中旬完成,感谢您的支持,QQ群:340829. 7.1 磁盘冗余阵列 1988年由加利福尼亚大学伯克利分校发表的文章 ...
- RAID磁盘阵列学习笔记
RAID是“Redundant Array of Independent Disk”的缩写,中文意思是独立冗余磁盘阵列.简单地解释,就是将N台硬盘通过RAID Controller(分Hardware ...
- linux lvm管理扩展 RAID磁盘阵列管理
LVM逻辑卷将多个物理分区/磁盘从逻辑上组合成一个更大的整体,从其中划分出不同的逻辑分区,逻辑分区的大小可以根据需要扩大,缩减!!!!/boot用来存放引导文件,不要基于LVM创建 PV(物理卷)物理 ...
- RAID磁盘阵列及CentOS7系统启动流程
磁盘阵列(Redundant Arrays of Independent Disks,RAID),有“独立磁盘构成的具有冗余能力的阵列”之意,,数据读取无影响.将数据切割成许多区段,分别存放在各个硬盘 ...
- 末学者笔记--Linux中RAID磁盘阵列及centos7启动过程
<一>RAID概念 磁盘阵列(Redundant Arrays of Independent Disks,RAID),有“独立磁盘构成的具有冗余能力的阵列”之意. 磁盘阵列是由很多价格较便 ...
随机推荐
- ptorch常用代码梯度篇(梯度裁剪、梯度累积、冻结预训练层等)
梯度裁剪(Gradient Clipping) 在训练比较深或者循环神经网络模型的过程中,我们有可能发生梯度爆炸的情况,这样会导致我们模型训练无法收敛. 我们可以采取一个简单的策略来避免梯度的爆炸,那 ...
- UNION 与 UNION ALL 的区别
UNION:合并查询结果,并去掉重复的行. UNION ALL:合并查询结果,保留重复的行. 举例验证说明: 创建两个表:user_info 和 user_info_b,设置联合主键约束,联合主键的列 ...
- bintree
Python实现二叉树的建立与遍历 创建(二叉)树节点类 class Node: def __init__(self,data,l=None,r=None): self.val = data self ...
- 用C语言实现井字棋(人人/AI人机)--完结版
目录 用C语言实现井字棋(人人/AI人机)--完结版 BUG与优化3: 1. 修改了step的计算方法,每个玩家玩完就加一次step 2. 改变了电脑下棋的逻辑,每个玩家玩完之后都跳过这次循环 源码: ...
- React简单教程-1-组件
前言 React,Facebook开发的前端框架.当时Facebook对市面上的前端框架都不满意,于是自己捣鼓出了React,使用后觉得特别好用,于是就在2013年开源了. 我也用React开发了一个 ...
- python实现对简单的运算型验证码的识别【不使用OpenCV】
最近在写我们学校的教务系统的手机版,在前端用户执行绑定操作后,服务器将执行登录,但在登录过程中,教务系统中有个运算型的验证码,大致是这个样子的: 下面我们开始实现这个验证码的识别. 1.图片读取 从网 ...
- JAVA面向对象之封装和调用
一 面向对象 面向对象的三大特性 1 封装:概念:封装是把过程和数据私有化,打包封存起来,对数据访问只能通过指定的方式.简单的可以理解为你把钱存到银行里,银行专员首先要给你开一个账户,之后你的 ...
- 全新升级的AOP框架Dora.Interception[3]: 基于特性标注的拦截器注册方式
在Dora.Interception(github地址,觉得不错不妨给一颗星)中按照约定方式定义的拦截器可以采用多种方式注册到目标方法上.本篇文章介绍最常用的基于"特性标注"的拦截 ...
- python——进行年龄和性别检测
年龄和性别检测 使用Python编程语言带你完成使用机器学习进行年龄和性别检测的任务. 首先需要编写用于检测人脸的代码,因为如果没有人脸检测,我们将无法进一步完成年龄和性别预测的任务. 下一步是预测图 ...
- 使用强大的DBPack处理分布式事务(PHP使用教程)
主流的分布式事务的处理方案 近些年,随着微服务的广泛使用,业务对系统的分布式事务处理能力的要求越来越高. 早期的基于XA协议的二阶段提交方案,将分布式事务的处理放在数据库驱动层,实现了对业务的无侵入, ...