软件RAID实现linux高可靠存储干货分享

admin 技术文档 2025-07-16 17

摘要:实现服务器存储高可靠主要技术是什么?...

实现服务器存储高可靠主要技术是什么?大家第一时间想到的应该就是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的实现方式有一个直观的理解。

相关推荐

评论列表
关闭

用微信“扫一扫”