1.RAID概念
磁盘阵列(Redundant Arrays of Independent Disks,RAID),有“独立磁盘构成的具有冗余能力的阵列”之意。 磁盘阵列是由很多价格较便宜的磁盘,以硬件(RAID卡)或软件(MDADM)形式组合成一个容量巨大的磁盘组,利用多个磁盘组合在一起,提升整个磁盘系统效能。利用这项技术,将数据切割成许多区段,分别存放在各个硬盘上。 磁盘阵列还能利用同位检查(Parity Check)的观念,在数组中任意一个硬盘故障时,仍可读出数据,在数据重构时,将数据经计算后重新置入新硬盘中
注:RAID可以预防数据丢失,但是它并不能完全保证你的数据不会丢失,所以大家使用RAID的同时还是注意备份重要的数据
RAID的创建有两种方式:软RAID(通过操作系统软件来实现)和硬RAID(使用硬件阵列卡);在企业中用的最多的是:raid1、raid5和raid10。不过随着云的高速发展,供应商一般可以把硬件问题解决掉。
1.1 RAID几种常见的类型
RAID类型 | 最低磁盘个数 | 空间利用率 | 各自的优缺点 | |
级 别 | 说 明 | |||
RAID0 | 条带卷 | 2+ | 100% | 读写速度快,不容错 |
RAID1 | 镜像卷 | 2 | 50% | 读写速度一般,容错 |
RAID5 | 带奇偶校验的条带卷 | 3+ | (n-1)/n | 读写速度快,容错,允许坏一块盘 |
RAID10 | RAID1的安全+RAID0的高速 | 4 | 50% | 读写速度快,容错 |
1.2 RAID基本思想
把好几块硬盘(物理硬盘和虚拟磁盘)通过一定组合方式把它组合起来,成为一个新的硬盘阵列组,从而使它能够达到高性能硬盘的要求。
RAID有三个关键技术:
(1)镜像(备份):提供了数据的安全性;
(2)chunk条带(块大小也可以说是条带的粒度),它的存在的就是为了提高I/O,提供了数据并发性
(3)数据的校验:提供了数据的安全
1.3 mdadm命令常见参数解释
-C或--create | 建立一个新阵列 | -r | 移除设备 |
-A | 激活磁盘阵列(磁盘阵列需要写入到/etc/mdadm.conf) | -l 或--level= | 设定磁盘阵列的级别 |
-D或--detail | 打印阵列设备的详细信息 | -n或--raid-devices= | 指定阵列成员(分区/磁盘)的数量 |
-s或--scan | 扫描配置文件或/proc/mdstat得到阵列缺失信息 | -x或--spare-devicds= | 指定阵列中备用盘的数量 |
-f | 将设备状态定为故障 | -c或--chunk= | 设定阵列的块chunk块大小 ,单位为KB |
-a或--add | 添加设备到阵列 | -G或--grow | 改变阵列大小或形态 |
-v | --verbose 显示详细信息 | -S | 停止阵列 |
2.搭建RAID0 开始前虚拟机准备13块硬盘
2.1 创建raid0,只需要两块盘(sdb,sdc)
#创建md0
mdadm -C -v /dev/md0 -l 0 -n 2 /dev/sd{b,c}
#查看阵列信息
mdadm -Ds
mdadm -D /dev/md0 #查询到以下信息
Version : 1.2
Creation Time : Fri Sep 6 15:58:00 2024
Raid Level : raid0
Array Size : 41908224 (39.97 GiB 42.91 GB) #两块盘的内存
Raid Devices : 2
Total Devices : 2
Persistence : Superblock is persistent
Update Time : Fri Sep 6 15:58:00 2024
State : clean
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0
Chunk Size : 512K #chunk是raid中最小的存储单位
Consistency Policy : none
Name : localhost.localdomain:0 (local to host localhost.localdomain)
UUID : 46740a79:596a22ca:1ad6bcda:ce4dc462
Events : 0
Number Major Minor RaidDevice State
0 8 16 0 active sync /dev/sdb
1 8 32 1 active sync /dev/sdc
2. 3.生成配置文件
mdadm -Ds > /etc/mdadm.conf
2.4 对创建的RAID0进行文件系统创建并挂载
#格式化md0
mkfs.xfs /dev/md0
#创建挂载点
mkdir /raid0
#挂载md0到/raid0
mount /dev/md0 /raid0/
#查看挂载的md0
df -Th /raid0/
2.5.开机自动挂载
blkid /dev/md0
echo "UUID=5bba0862-c4a2-44ad-a78f-367f387ad001 /raid0 xfs defaults 0 0" >> /etc/fstab
3.搭建RAID1 ,需要3块盘
3.1 创建raid1,保存配置文件,查看RAID1信息
#创建RAID1
mdadm -C -v /dev/md1 -l 1 -n 2 -x 1 /dev/sd[d,e,f]
#将RADI信息保存到配置文件
mdadm -Dsv > /etc/mdadm.conf
#查看 RAID 阵列信息
mdadm -D /dev/md1
Raid Level : raid1
Array Size : 20955136 (19.98 GiB 21.46 GB)
。。。
Number Major Minor RaidDevice State
0 8 48 0 active sync /dev/sdd
1 8 64 1 active sync /dev/sde
2 8 80 - spare /dev/sdf
3.2 在RAID设备上创建文件系统,挂载
#格式化
mkfs.xfs /dev/md1
#创建挂载目录
mkdir /raid1
#挂载md1到raid1目录
mount /dev/md1 /raid1/
3.3 准备测试热备盘,准备测试文件,模拟损坏
#准备测试文件
cp /etc/passwd /raid1/
#模拟损坏
#下面模拟RAID1中数据盘/dev/sde出现故障,观察/dev/sdf备用盘能否自动顶替故障盘
mdadm /dev/md1 -f /dev/sde
#查看阵列信息
mdadm -D /dev/md1
...
Number Major Minor RaidDevice State
0 8 96 0 active sync /dev/sde
2 8 128 1 spare rebuilding /dev/sdf #热备盘已经在同步数据,等到它变成active sync就同步成功。
1 8 112 - faulty /dev/sde #看到已经把sde换下来了
3.4 更新配置文件,查看数据是否丢失
mdadm -Dsv > /etc/mdadm.conf
查看数据丢失没有,看看有没有passwd
ls /raid1/
3.5 移除坏损坏的设备,查看信息,添加一块新热备盘
#移除损坏的设备
mdadm -r /dev/md1 /dev/sde
#查看信息
mdadm -D /dev/md1
Number Major Minor RaidDevice State
0 8 96 0 active sync /dev/sdd
2 8 128 1 active sync /dev/sdf #已经没有热备盘了
#添加一块新热备盘
mdadm -a /dev/md1 /dev/sde
#看看有没有/dev/sde
mdadm -D /dev/md1
4.搭建RAID5 需要4个硬盘
4.1 创建RAID5, 添加1个热备盘,指定chunk大小为32K,查看信息
#创建md5
mdadm -C -v /dev/md5 -l 5 -n 3 -x 1 -c32 /dev/sd{g,h,i,j}
#查看信息
mdadm -D /dev/md5
/dev/md5:
Version : 1.2
Creation Time : Thu May 17 18:54:20 2018
Raid Level : raid5
Array Size : 41910272 (39.97 GiB 42.92 GB)
Used Dev Size : 20955136 (19.98 GiB 21.46 GB)
Raid Devices : 3
Total Devices : 4
Persistence : Superblock is persistent
Update Time : Thu May 17 18:54:31 2018
State : clean, degraded, recovering
Active Devices : 2
Working Devices : 4
Failed Devices : 0
Spare Devices : 2
Layout : left-symmetric
Chunk Size : 32K #指定chunk大小为32K
Consistency Policy : resync
Rebuild Status : 7% complete #正在同步数据 请等待
Name : xuegod63.cn:5 (local to host xuegod63.cn)
UUID : fa685cea:38778d6a:0eb2c670:07ec5797
Events : 2
Number Major Minor RaidDevice State
0 8 96 0 active sync /dev/sdg
1 8 112 1 active sync /dev/sdh
4 8 128 2 spare rebuilding /dev/sdi
3 8 144 - spare /dev/sdj #热备盘
4.2 停止MD5阵列,停止前必须保存配置文件
#保存文件
mdadm -Dsv > /etc/mdadm.conf
##停止前,请确认数据已经同步完
mdadm -D /dev/md5
.....
Consistency Policy : resync #数据已经同步完
#停止阵列
mdadm -S /dev/md5
4.3 激活MD5阵列
mdadm -As
4.4 扩展RAID5磁盘阵列,将热备盘增加到md5中,使用md5中可以使用的磁盘数量为4块
#扩展RAID5磁盘阵列
mdadm -G /dev/md5 -n 4 -c 32
#保存配置文件
mdadm -Dsv > /etc/mdadm.conf
#查看状态
mdadm -D /dev/md5
。。。
Array Size : 41910272 (39.97 GiB 42.92 GB) #发现新增加硬盘后空间没有变大,为什么?
Used Dev Size : 20955136 (19.98 GiB 21.46 GB)
。。。
Reshape Status : 3% complete #重塑状态:3%完成 ,等到100%, 数据才同步完,同步完后会变成:Consistency Policy : resync #一致性策略:再同步,表示已经同步完
。。。
Number Major Minor RaidDevice State
0 8 96 0 active sync /dev/sdg
1 8 112 1 active sync /dev/sdh
4 8 128 2 active sync /dev/sdi
3 8 144 3 active sync /dev/sdj
等一会,等所有数据同步完成后,查看md5空间大小:
Array Size : 62865408 (59.95 GiB 64.37 GB) #空间已经变大
Used Dev Size : 20955136 (19.98 GiB 21.46 GB)
4.6 格式化,挂载,创建目录raid5
#格式化
mkfs.xfs /dev/md5
#创建挂载目录
mkdir /raid5
#挂载md1到raid5目录
mount /dev/md5 /raid5/
5. 创建RAID10,需要4块硬盘
5.1 创建raid10
#创建md10
mdadm -C -v /dev/md10 -l 10 -n 4 /dev/sd[k,l,m,n]
#查看信息
mdadm -D /dev/md10
5.2 创建raid10,挂载
#格式化
mkfs.xfs /dev/md10
#创建挂载目录
mkdir /raid10
#挂载md1到raid10目录
mount /dev/md10 /raid10/
5.3 使用命令查看挂载的一些情况
lsblk
总结:以上就是使用centos搭建raid0,1,5,10的全部过程,也可以用分区的形式来搭建raid,假如RAID硬盘失效处理,一般两种处理方法:热备和热插拔
热备:HotSpare
定义:当冗余的RAID组中某个硬盘失效时,在不干扰当前RAID系统的正常使用的情况下,用RAID系统中另外一个正常的备用硬盘自动顶替失效硬盘,及时保证RAID系统的冗余性
热插拔:HotSwap
定义:在不影响系统正常运转的情况下,用正常的物理硬盘替换RAID系统中失效硬盘
标签:RAID,阵列,sync,dev,RAID5,RAID0,mdadm,硬盘,磁盘阵列 From: https://blog.csdn.net/dxgcbhj/article/details/141967395