CentOS 7.5下配置软RAID(Software RAID)
Posted 运维小菜鸟
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CentOS 7.5下配置软RAID(Software RAID)相关的知识,希望对你有一定的参考价值。
RAID 是英文Redundant Array of Independent Disks 的缩写,翻译成中文意思是"独立磁盘冗余阵列",有时也简称磁盘阵列(Disk Array)。
简单的说,RAID是一种把多块独立的硬盘(物理硬盘)按不同的方式组合起来形成一个硬盘组(逻辑硬盘),从而提供比单个硬盘更高的存储性能和提供数据备份的技术。
组成磁盘阵列的不同方式称为RAID级别(RAID Levels),常见的RAID Level 包括raid0, raid1, raid5, raid10。各level 对比如下:
RAID等级 | 最少硬盘 | 最大容错 | 可用容量 | 读取性能 | 写入性能 | 安全性 | 目的 | 应用产业 |
0 | 2 | 0 | n | n | n | 一个硬盘异常,全部硬盘都会异常 | 追求最大容量、速度 | 3D产业实时渲染、视频剪接高速缓存 |
1 | 2 | n-1 | 1 | n | 1 | 最高,一个正常即可 | 追求最大安全性 | 个人、企业备份 |
5 | 3 | 1 | n-1 | n-1 | n-1 | 高 | 追求最大容量、最小预算 | 个人、企业备份 |
10 | 4 | n/2 | n/2 | n | n/2 | 安全性高 | 综合RAID 0/1优点,理论速度较快 | 大型数据库、服务器 |
实验环境:VMware® Workstation 14 Pro
系统平台:CentOS Linux release 7.5.1804 (Core)
mdadm 版本:mdadm - v4.0 - 2017-01-09
mdadm 是multiple devices admin 的简称,它是Linux下的一款标准的软件RAID 管理工具。
创建RAID0 需要两块硬盘,所以我们拿/dev/sdb 和/dev/sdc 来实验。
输入"n" 新建分区,这里我们将整个磁盘都划分成一个分区,然后输入"p" 查看分区情况。
# mdadm -C /dev/md0 -ayes -l0 -n2 /dev/sd[b,c]1
-a --auto 同意创建设备,如不加此参数时必须先使用mknod 命令来创建一个RAID设备,不过推荐使用-a yes参数一次性创建;
-n --raid-devices 阵列中活动磁盘的数目,该数目加上备用磁盘的数目应该等于阵列中总的磁盘数目;
Total Devices : RAID中下属成员的总计个数,因为还有冗余硬盘或分区,也就是spare,为了RAID的正常运行,随时可以推上去加入RAID的;
State : clean, degraded, recovering 状态,包括三个状态,clean 表示正常,degraded 表示有问题,recovering 表示正在恢复或构建;
Active Devices : 被激活的RAID成员个数;
Working Devices : 正常的工作的RAID成员个数;
Spare Devices : 备用RAID成员个数,当一个RAID的成员出问题时,用其它硬盘或分区来顶替时,RAID要进行构建,在没构建完成时,这个成员也会被认为是spare设备;
5.8 创建RAID 配置文件/etc/mdadm.conf
RAID 的配置文件为/etc/mdadm.conf,默认是不存在的,需要手工创建。
该配置文件的主要作用是系统启动的时候能够自动加载软RAID,同时也方便日后管理。但不是必须的,推荐对该文件进行配置。
我们这里需要创建这个文件,测试中发现,如果没有这个文件,则reboot 后,已经创建好的md0 会自动变成md127。
由DEVICE 选项指定用于软RAID的所有设备,和ARRAY 选项所指定阵列的设备名、RAID级别、阵列中活动设备的数目以及设备的UUID号。
# echo DEVICE /dev/sd{b,c}1 >> /etc/mdadm.conf
# mdadm –Ds >> /etc/mdadm.conf
ARRAY /dev/md0 metadata=1.2 name=localhost.localdomain:0 UUID=33d3740b:c04ba090:22035d27:2f646d3f
为了下次开机还能正常使用我们的RAID设备,需要将挂载的信息写入/etc/fstab 文件中。
然后reboot 测试开机是否自动挂载,raid0 创建完毕。
和创建raid0 类似,我们拿/dev/sdd 和/dev/sde 这两块硬盘来做实验。
使用同样方法对/dev/sde 进行分区操作,分区结果如下:
# mdadm -C /dev/md1 -ayes -l1 -n2 /dev/sd[d,e]1
# echo DEVICE /dev/sd{b,c}1 >> /etc/mdadm.conf
# mdadm –Ds >> /etc/mdadm.conf
然后reboot 测试开机是否自动挂载,raid1 创建完毕。
RAID5 至少需要三块硬盘,我们拿/dev/sdf, /dev/sdg, /dev/sdh, /dev/sdi 这四块硬盘来做实验,三块做为活动盘,另一块做为热备盘。
# mdadm -C /dev/md5 -ayes -l5 –n3 -x1 /dev/sd[f,g,h,i]1
说明:"-x1" 或"–spare-devices=1" 表示当前阵列中热备盘只有一块,若有多块热备盘,则将"–spare-devices" 的值设置为相应的数目。
# echo DEVICE /dev/sd{f,g,h,i}1 >> /etc/mdadm.conf
# mdadm –Ds >> /etc/mdadm.conf
然后reboot 测试开机是否自动挂载,raid5 创建完毕。
RAID 做好之后,还需要进行日常的维护操作,比如其中一块物理硬盘损坏,我们需要进行更换故障磁盘的操作,下面我们将模拟raid5 中磁盘损坏来讲解软RAID 的维护操作。
在实际中,当软RAID 检测到某个磁盘有故障时,会自动标记该磁盘为故障磁盘,并停止对故障磁盘的读写操作。在这里我们将/dev/sdh1 模拟为出现故障的磁盘,命令如下:
当一个设备出现故障或被标记故障时,相应设备的方括号后将被标以(F),如 "sdh14"。
其中 "[3/2]" 的第一位数表示阵列所包含的设备数,第二位数表示活动的设备数,因为目前有一个故障设备,所以第二位数为2;
这时的阵列以降级模式运行,虽然该阵列仍然可用,但是不具有数据冗余;
而 "[UU_]" 表示当前阵列可以正常使用的设备是/dev/sdf1 和/dev/sdg1,如果是设备 "/dev/sdf1" 出现故障时,则将变成[_UU]。
如果是实际生产中添加新的硬盘,同样需要对新硬盘进行创建分区的操作,这里我们为了方便,将刚才模拟损坏的硬盘再次新加到raid5 中。
如果现在已经做好的RAID 空间还是不够用的话,那么我们可以向里面增加新的硬盘,来增加RAID 的空间。
上面我们已经在虚拟机中添加了八块硬盘,这里需要模拟新增硬盘,所以首先将虚拟机关闭,然后在存储里再次新增一块1GB的硬盘。然后分区等等操作,这里不再赘述。
默认情况下,我们向RAID 中增加的磁盘,会被默认当作热备盘,我们需要把热备盘加入到RAID 的活动盘中。
Array Size : 2.99 GB,磁盘容量已经增加了。
RAID 构建完毕后,阵列容量增加,但是文件系统还没有增加,这时我们还需要对文件系统进行扩容。
文件系统已经扩容到3G,而且测试数据正常,未丢失,新增物理硬盘成功。
mdadm --misc --zero-superblock /dev/sdf1
mdadm --misc --zero-superblock /dev/sdg1
mdadm --misc --zero-superblock /dev/sdh1
mdadm --misc --zero-superblock /dev/sdi1
mdadm --misc --zero-superblock /dev/sdj1
10.4 以上是关于CentOS 7.5下配置软RAID(Software RAID)的主要内容,如果未能解决你的问题,请参考以下文章