摘要:实现服务器存储高可靠主要技术是什么?...
实现服务器存储高可靠主要技术是什么?大家第一时间想到的应该就是RAID(Redundant Array of Independent Disks,独⽴冗余磁盘阵列),RAID技术主要是通过组合多个物理硬盘形成的存储,提供更⾼的数据传输速率、更⼤的存储容量以及数据冗余和容错功能,该技术在服务器领域使用非常广泛。
RAID主要有硬件实现和软件实现两种方式。 硬件实现是通过专用 RAID 控制器(独立于主机 CPU)管理磁盘阵列,此种方式性能高、CPU占用率低,但成本也高,依赖特定专有硬件及驱动等,图像界面配置较简单;软件实现是通过操作系统或特定软件程序实现的磁盘阵列技术,无需专用硬件控制器,依靠 CPU 和软件算法管理磁盘数据的存储与冗余。此种方式性能没有硬件方式好,但是几乎无成本,夸平台,配置难度较高。
本文主要介绍linux系统通过mdadm(Multiple Devices Admin)软件实现系统高可靠存储的配置步骤,具体以RAID5为例(关于RAID的种类本文就不再叙述)。
1. 前置条件
1.1 服务器配置
一台rockylinux服务器,服务器配置除了系统盘sda,还配置有另外的4块硬(vda,vdb,vdc,vdd),本文介绍的是使用4块硬盘做RAID5,其中前3块磁盘做数据盘,第4块磁盘当做RAID组的热备盘,如下图:

请注意,我这里的服务器环境配置的4块磁盘容量各不相等,实际生产环境建议是同等的磁盘,否则会影响存储的性能和容量使用率等。
1.2 软件安装
有些发行版的linux系统里面自带安装有mdadm软件,如果你的系统没有安装这个软件,需要进行安装,安装方法如下:
Debian/Ubuntu/Linux Mint:apt install mdadm
RHEL/CentOS/Fedora:dnf install mdadm # Fedora/RHEL 8+
yum install mdadm # CentOS 7 及旧版 RHEL
openSUSE:zypper install mdadm
我这里的系统是rockylinux,安装如下:
2. 通过mdadm配置RAID5
2.1 创建名为/dev/md5的RAID组,(3个数据盘,1个热备盘)
mdadm --create /dev/md5 -a yes -l 5 -n 3 -x 1 /dev/vda /dev/vdb /dev/vdc /dev/vdd
参数说明:
--create: 创建一个新的 RAID 阵列,也可以使用-C(大写)/dev/md5:新建的raid名称-a yes:自动创建目标RAID设备的必要文件-l 5:指定 RAID 5级别 ,实际中你可以根据情况配置0(RAID0),1(RAID1)等类型-n 3:制定raid组的数据块有3 块磁盘-x 1 :为指定备用磁盘个数,放在最后的默认为备用磁盘2.2 查看RAID组的状态
[root@rockylinux ~]# mdadm -D /dev/md5(也可以用 mdadm --detail /dev/md5 )
通过 lsblk命令也能看到4块盘属于md5组里了。
通过 [root@rockylinux ~]# cat /proc/mdstat 查看简要信息,vdd盘属于热备盘(S)标识。
2.3 格式化并挂载 RAID
(1)格式化 RAID(我这里格式化为 ext4文件系统)
mkfs. ext4 /dev/md5
(2) 创建挂载点并挂载
mkdir /md5
mount -t ext4 /dev/md5 /md5/
到此,已经完成了新建RAID组md5挂载到了根目录下的md5目录。
(3)设置开机自动挂载
将新建好的RAID组分区挂载指令写入/etc/fstab文件,如果不写入,系统重启后会不挂载RAID组分区。这里我只是举个例子,实际操作可以用UUID或者标签的形式挂载:
echo "/dev/md5 /md5 ext4 defaults 0 0" >> /etc/fstab (你也可以使用vi编辑fstab文件)
请注意!为了让系统在启动时自动加载 RAID,最好生成配置文件:
mdadm --detail --scan | tee -a /etc/mdadm/mdadm.conf
然后更新 initramfs(Ubuntu/Debian):
update-initramfs -u (为当前运行的内核重建 initramfs)
(CentOS/RHEL 使用 dracut):
dracut --force (为当前运行的内核重建 initramfs)
2.4 mdadm的其他命令
(1)模拟磁盘故障并更换
mdadm /dev/md5 --fail /dev/sdb # 标记 sdb 为故障,也可以用-f
mdadm /dev/md5 --remove /dev/sdb # 移除故障盘 ,也可以用-r
mdadm /dev/md5 --add /dev/sdd # 添加新磁盘,也可以用-a
(2)增加raid成员数量从3变为4个
mdadm -G /dev/md5 -n 4 -a /dev/sdd
(3)禁用和启用
先执行卸载分区:umount /md5
执行停止RAID组:mdadm -S /dev/md0
执行启动RAID组:mdadm -A /dev/md0
(4)重新组装现有 RAID
mdadm --assemble /dev/md5 /dev/vda /dev/vdb /dev/vdc
3. 总结
本章节主要介绍了linux系统中,通过mdadm软件配置磁盘RAID组(本章只介绍RAID 5,其他类型比如RAID0、RAID1、RAID50等可自行配置和测试),实现软件构建高可靠存储的步骤和方法,同时也介绍了软件RAID组构建后的查看、添加/删除故障磁盘的命令和方法。希望能带给大家关于存储RAID的实现方式有一个直观的理解。