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磁盘阵列技术的更多相关文章

  1. RAID磁盘阵列及CentOS7系统启动流程(week2_day3)--技术流ken

    RAID概念 磁盘阵列(Redundant Arrays of Independent Disks,RAID),有“独立磁盘构成的具有冗余能力的阵列”之意. 磁盘阵列是由很多价格较便宜的磁盘,以硬件( ...

  2. 使用RAID与LVM磁盘阵列技术。

    7.2 LVM逻辑卷管理器 前面学习的硬盘设备管理技术虽然能够有效地提高硬盘设备的读写速度以及数据的安全性,但是在硬盘分好区或者部署为RAID磁盘阵列之后,再想修改硬盘分区大小就不容易了.换句话说,当 ...

  3. RAID与LVM磁盘阵列技术

    RAID(Redundant Array of Independent Disks,独立冗余磁盘阵列) RAID概念: RAID技术通过把多个硬盘设备组合成一个容量更大.安全性更好的磁盘阵列,并把数据 ...

  4. Linux 就该这么学 CH07 使用RAID和LVM磁盘阵列技术

    1 RAID (独立冗余磁盘阵列) RAID 技术通过把多个硬盘设备组合成一个容量更大.安全性更好的磁盘阵列,并把数据切割成多个区段之后分别存在各个不同的物理硬盘设备上,然后利用分散读写计数来提升磁盘 ...

  5. 第7章 使用RAID与LVM磁盘阵列技术

    章节简述: 您好,此章节为新增加的知识内容,正在努力的排版完善,预习2016年9月中旬完成,感谢您的支持,QQ群:340829. 7.1  磁盘冗余阵列 1988年由加利福尼亚大学伯克利分校发表的文章 ...

  6. RAID磁盘阵列学习笔记

    RAID是“Redundant Array of Independent Disk”的缩写,中文意思是独立冗余磁盘阵列.简单地解释,就是将N台硬盘通过RAID Controller(分Hardware ...

  7. linux lvm管理扩展 RAID磁盘阵列管理

    LVM逻辑卷将多个物理分区/磁盘从逻辑上组合成一个更大的整体,从其中划分出不同的逻辑分区,逻辑分区的大小可以根据需要扩大,缩减!!!!/boot用来存放引导文件,不要基于LVM创建 PV(物理卷)物理 ...

  8. RAID磁盘阵列及CentOS7系统启动流程

    磁盘阵列(Redundant Arrays of Independent Disks,RAID),有“独立磁盘构成的具有冗余能力的阵列”之意,,数据读取无影响.将数据切割成许多区段,分别存放在各个硬盘 ...

  9. 末学者笔记--Linux中RAID磁盘阵列及centos7启动过程

    <一>RAID概念 磁盘阵列(Redundant Arrays of Independent Disks,RAID),有“独立磁盘构成的具有冗余能力的阵列”之意. 磁盘阵列是由很多价格较便 ...

随机推荐

  1. 【Azure 存储服务】Java Azure Storage SDK V12使用Endpoint连接Blob Service遇见 The Azure Storage endpoint url is malformed

    问题描述 使用Azure Storage Account的共享访问签名(Share Access Signature) 生成的终结点,连接时遇见  The Azure Storage endpoint ...

  2. Java基本运算

    目录 运算符 运算符优先级 运算 自增(++)自减(--)运算 数学运算(Math类) 逻辑运算 位运算 拓展运算符 三元运算符 视频课程 运算符 Java语言支持如下运算符: 算术运算符: +, - ...

  3. 当运行npm install 命令的时候带上ignore-scripts,会发生什么?

    摘要:运行npm install 命令的时候带上ignore-scripts, 可以避免一个恶意包里的病毒. 本文分享自华为云社区<运行npm install 命令的时候带上--ignore-s ...

  4. 定制.NET 6.0的依赖注入

    大家好,我是张飞洪,感谢您的阅读,我会不定期和你分享学习心得,希望我的文章能成为你成长路上的垫脚石,让我们一起精进. 在本章中,我们将学习ASP.NET Core的依赖项注入(DI)以及如何自定义它. ...

  5. 2021.06.05【NOIP提高B组】模拟 总结

    T1 题意:给你一个 \(n\) 个点 \(n\) 条边的有向图, 求每个店经过 \(K\) 条边后的边权和.最小边权 \(K\le 10^{10}\) 考试时:一直想着环,结果一直不知道怎么做 正解 ...

  6. Eureka属性配置

    一:Eureka Instance实例信息配置   里面的配置以"-"隔开 其实也支持驼峰命名代替"-" 首先是入门时的配置: server: port: 80 ...

  7. 【Azure 应用服务】NodeJS Express + MSAL 实现API应用Token认证(AAD OAuth2 idToken)的认证实验 -- passport.authenticate('oauth-bearer', {session: false})

    问题描述 在前两篇博文中,对NodeJS Express应用 使用MSAL + AAD实现用户登录并获取用户信息,获取Authorization信息 ( ID Token, Access Token) ...

  8. 一文掌握软件安全必备技术 SAST

    上一篇文章中,我们讨论了软件供应链的概念并了解到近年来软件供应链安全事件层出不穷.为了保障软件供应链安全,我们需要了解网络安全领域中的一些主要技术.本篇文章将介绍其中一个重要技术--SAST. 当开发 ...

  9. Vue.js与Node.js一起打造一款属于自己的音乐App(收藏)

    更多内容请见原文,原文转载自:https://blog.csdn.net/weixin_44519496/article/details/118755888

  10. SAP APO-需求计划

    需求计划可以对市场中的产品进行预测. 需求计划过程的输出就是需求计划,它考虑了影响需求的所有因素. 需求计划流程定义了需求计划周期中的活动. 由于需求计划过程以循环的形式进行,因此可以重复某些活动. ...