背景

今天在配置服务器基础环境的时候发现。。。两块儿nvme盘无法做硬raid,具体看了一下因为两块儿nvme是直连主板的没有接raid卡。硬raid做不了,那只能做软raid了,顺便写这篇文章记录一下。


前言

在服务器运维过程中,磁盘可靠性是非常重要的一环。
如果只有单块磁盘,一旦硬盘损坏,数据将面临丢失风险。

因此在生产环境中,通常会通过 RAID(Redundant Array of Independent Disks)技术来提高磁盘可靠性。

一、RAID 是什么?

RAID(独立磁盘冗余阵列)是一种将多块硬盘组合成一个逻辑磁盘的技术,主要目的是:提高数据安全性、提高磁盘性能、提高存储容量

Linux 中 RAID 分为两种:

类型 说明
硬 RAID 由 RAID 卡实现
软 RAID 由 Linux 内核实现

Linux 软 RAID 通常使用 mdadm 工具

二、常见 RAID 类型

RAID 类型 特点
RAID0 提升性能,无数据冗余
RAID1 数据镜像,安全性高
RAID5 奇偶校验,容量利用率高
RAID10 RAID1+RAID0,性能与安全兼顾

本次部署使用:

RAID1(镜像)

特点:

  • 两块盘互为备份
  • 任意一块盘损坏不会丢数据

示意图:

磁盘A: 数据1 数据2 数据3
磁盘B: 数据1 数据2 数据3

三、实验环境

服务器磁盘信息:

lsblk
fdisk -l

在这里插入图片描述

磁盘 用途 路径
sdb 系统盘 /dev/sdb
nvme0n1 数据盘 /dev/nvme0n1
nvme1n1 数据盘 /dev/nvme1n1

四、安装 RAID 工具

Linux 软 RAID 依赖 mdadm

yum install -y mdadm

一般操作系统自带 mdadm 工具

五、清理磁盘签名

如果磁盘之前使用过,需要清理旧数据。

wipefs -a /dev/nvme0n1
wipefs -a /dev/nvme1n1

在这里插入图片描述

删除旧文件系统,旧RAID信息、旧分区表

六、创建 RAID

执行

mdadm --create /dev/md0 \
--level=1 \
--raid-devices=2 \
/dev/nvme0n1 \
/dev/nvme1n1
参数 含义
–create 创建一个新的 RAID 阵列
/dev/md0 新建的RAID逻辑设备名
–level=1 RAID 级别设为1
–raid-devices=2 RAID 由 2 块成员盘组成
–detail 查看详情
–assemble 重新组装
RAID level 最少磁盘 容量利用率 可坏盘
RAID0 0 2 100% 0
RAID1 1 2 50% 1
RAID5 5 3 (n-1)/n 1
RAID6 6 4 (n-2)/n 2
RAID10 10 4 50% ≥1

系统会提示:

Continue creating array? yes

输入:

yes

创建成功后查看状态:

cat /proc/mdstat

在这里插入图片描述
说明:

状态 含义
UU 两块磁盘正常
resync RAID 正在同步

七、创建文件系统

RAID 创建完成后需要格式化。

使用 XFS 文件系统:

mkfs.xfs /dev/md0

八、挂载 raid

创建挂载目录

mkdir /data

挂载 RAID

mount /dev/md0 /data

在这里插入图片描述

查看磁盘:

df -h

在这里插入图片描述

九、配置开机自动挂载

获取 UUID:

blkid /dev/md0

输出:

UUID="994adc42-893a-4ad3-8c59-c5c501bb30d4"

编辑:

vi /etc/fstab

添加:

UUID=994adc42-893a-4ad3-8c59-c5c501bb30d4 /data xfs defaults 0 0

测试配置:

mount -a

如果没有报错说明配置正确

在这里插入图片描述

十、保存 RAID 配置

为了防止系统重启后 RAID 丢失:

mdadm --detail --scan > /etc/mdadm.conf

查看配置:

cat /etc/mdadm.conf

在这里插入图片描述

十一、更新启动镜像

更新 initramfs:

dracut -H -f /boot/initramfs-$(uname -r).img $(uname -r)

在这里插入图片描述

作用:

  • 确保系统启动时能够识别 RAID
  • 防止 RAID 在启动阶段无法加载

十二、查看 RAID 详细状态

mdadm -D /dev/md0

在这里插入图片描述
在这里插入图片描述

十三、RAID 故障恢复示例

如果某块盘损坏,例如:nvme0n1

标记故障:

mdadm /dev/md0 --fail /dev/nvme0n1

移除:

mdadm /dev/md0 --remove /dev/nvme0n1

更换新盘后加入:

mdadm /dev/md0 --add /dev/nvme0n1

RAID 会自动重建


总结

RAID 技术是服务器存储管理中的基础技术之一,通过合理选择 RAID 类型可以在性能、容量和可靠性之间取得平衡。

在 Linux 环境下,通过 mdadm 软件 RAID 可以灵活地实现 RAID0、RAID1、RAID5、RAID6 和 RAID10 等多种阵列方案,满足不同业务场景需求。

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐