GBase 8a
安装配置
文章

针对NVME盘如何通过mdadm工具进行软RAID配置参考

发表于2025-11-22 12:02:47156次浏览0个评论

由于NVMe硬盘不与机器所带RAID卡相连。而是直接与主板相连接,CPU直接纳管。所以RAID卡无法识别NVMe硬盘而进行RAID设置,但GBase8a产品要求的是所有数据盘进行RAID规划,这里结合某项目的实践介绍如何通过mdadm进行软RAID配置。

某项目采用12块NVME盘,通过lsblk可首先确认硬盘已接入系统:
[root@M04-H11-X1059H-03-MPPShuJuJieDianFuWuQi ~]# lsblk
NAME     MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
sda        8:0    0 894.2G  0 disk
├─sda1     8:1    0   600M  0 part /boot/efi
├─sda2     8:2    0     1G  0 part /boot
├─sda3     8:3    0     4G  0 part [SWAP]
├─sda4     8:4    0    70G  0 part /
├─sda5     8:5    0 808.6G  0 part /home
└─sda6     8:6    0    10G  0 part /var/log
nvme3n1  259:0    0   3.5T  0 disk
nvme2n1  259:1    0   3.5T  0 disk
nvme0n1  259:2    0   3.5T  0 disk
nvme4n1  259:3    0   3.5T  0 disk
nvme1n1  259:4    0   3.5T  0 disk
nvme5n1  259:5    0   3.5T  0 disk
nvme7n1  259:6    0   3.5T  0 disk
nvme6n1  259:7    0   3.5T  0 disk
nvme9n1  259:8    0   3.5T  0 disk
nvme8n1  259:9    0   3.5T  0 disk
nvme11n1 259:10   0   3.5T  0 disk
nvme10n1 259:11   0   3.5T  0 disk

  • 第一步,安装mdadm工具(若未安装 通过yum进行安装)
    yum install mdadm -y
  • 第二步,通过mdadm直接创建 RAID10,指定设备和级别(--level=10),并设置 chunk 大小(gbase8a建议 --chunk=1M),命令如下:
    mdadm --create /dev/md0 --level=10 --raid-devices=12 --chunk=1M /dev/nvme0n1 /dev/nvme1n1 /dev/nvme2n1 /dev/nvme3n1 /dev/nvme4n1 /dev/nvme5n1 /dev/nvme6n1 /dev/nvme7n1 /dev/nvme8n1 /dev/nvme9n1 /dev/nvme10n1 /dev/nvme11n1

--level=10:指定 RAID 级别为 RAID10。
--raid-devices=12:总磁盘数量为 12块。
--chunk=1M:条带块大小,建议根据 IO 特性调整(gbase8as数据库多为大文件传输,故设置为1M)。
完成后查看如下:
[root@M04-H11-X10529H-01-MPPShuJuJieDianFuWuQi ~]# lsblk
NAME     MAJ:MIN RM   SIZE RO TYPE   MOUNTPOINTS
loop0      7:0    0   3.9G  0 loop   /data/iso
sda        8:0    0 894.2G  0 disk
├─sda1     8:1    0   600M  0 part   /boot/efi
├─sda2     8:2    0     1G  0 part   /boot
├─sda3     8:3    0     4G  0 part   [SWAP]
├─sda4     8:4    0    70G  0 part   /
├─sda5     8:5    0 808.6G  0 part   /home
└─sda6     8:6    0    10G  0 part   /var/log
nvme0n1  259:0    0   3.5T  0 disk
└─md0      9:0    0    21T  0 raid10
nvme9n1  259:1    0   3.5T  0 disk
└─md0      9:0    0    21T  0 raid10
nvme8n1  259:2    0   3.5T  0 disk
└─md0      9:0    0    21T  0 raid10
nvme11n1 259:3    0   3.5T  0 disk
└─md0      9:0    0    21T  0 raid10
nvme1n1  259:4    0   3.5T  0 disk
└─md0      9:0    0    21T  0 raid10
nvme2n1  259:5    0   3.5T  0 disk
└─md0      9:0    0    21T  0 raid10
nvme3n1  259:6    0   3.5T  0 disk
└─md0      9:0    0    21T  0 raid10
nvme10n1 259:7    0   3.5T  0 disk
└─md0      9:0    0    21T  0 raid10
nvme6n1  259:8    0   3.5T  0 disk
└─md0      9:0    0    21T  0 raid10
nvme7n1  259:9    0   3.5T  0 disk
└─md0      9:0    0    21T  0 raid10
nvme4n1  259:10   0   3.5T  0 disk
└─md0      9:0    0    21T  0 raid10
nvme5n1  259:11   0   3.5T  0 disk
└─md0      9:0    0    21T  0 raid10

  • 第三步,格式化并挂载 RAID10 阵列,阵列创建完成后,需格式化并挂载才能使用,操作如下:
    # 格式化(建议为xfs)
    mkfs.xfs /dev/md0

第四步,创建挂载点、进行挂载
# 创建挂载点
mkdir /opt
#挂载
mount /dev/md0 /opt
# 永久挂载(写入/etc/fstab)
echo "/dev/md0 /opt xfs defaults 0 0" >> /etc/fstab

  • 第五步,保存RAID配置
    为防止系统重启后 RAID 配置丢失,需保存配置到mdadm.conf
    # 生成配置文件
    mdadm --detail --scan >> /etc/mdadm/mdadm.conf

[root@M04-H11-X1059H-03-MPPShuJuJieDianFuWuQi dd]# mdadm --detail --scan
ARRAY /dev/md0 metadata=1.2 name=0 UUID=c07bd80b:a2d8704a:2c41058f:1863f04d


# 强制重新生成当前内核的 initramfs
sudo dracut -f

# 或者指定内核版本(推荐)
sudo dracut -f /boot/initramfs-$(uname -r).img $(uname -r)


PS:项目同时也测过创建为RAID5D的情况,遇到性能较大差异,创建命令如下:

mdadm --create /dev/md0 --level=5 --raid-devices=11 --spare-devices=1 --chunk=1M /dev/nvme0n1 /dev/nvme1n1 /dev/nvme2n1 /dev/nvme3n1 /dev/nvme4n1 /dev/nvme5n1 /dev/nvme6n1 /dev/nvme7n1 /dev/nvme8n1 /dev/nvme9n1 /dev/nvme10n1 /dev/nvme11n1

创建后DD测试对比:

-----begin 1M test-----RAID10

记录了20000+0 的读入
记录了20000+0 的写出
20971520000字节(21 GB,20 GiB)已复制,7.94149 s,2.6 GB/s
记录了20000+0 的读入
记录了20000+0 的写出
20971520000字节(21 GB,20 GiB)已复制,9.05821 s,2.3 GB/s
记录了20000+0 的读入
记录了20000+0 的写出
20971520000字节(21 GB,20 GiB)已复制,17.0355 s,1.2 GB/s

-----begin 1M test-----RAID5

记录了20000+0 的读入
记录了20000+0 的写出
20971520000字节(21 GB,20 GiB)已复制,94.083 s,223 MB/s
记录了20000+0 的读入
记录了20000+0 的写出
20971520000字节(21 GB,20 GiB)已复制,51.8883 s,404 MB/s
记录了20000+0 的读入
记录了20000+0 的写出
20971520000字节(21 GB,20 GiB)已复制,142.347 s,147 MB/s

  • 于是删除RAID5后重做为RAID10,删除重做RAID5的语法命令如下:
    umount /dev/md0
    mdadm /dev/md0 -f /dev/nvme0n1 /dev/nvme1n1 /dev/nvme2n1 /dev/nvme3n1 /dev/nvme4n1 /dev/nvme5n1 /dev/nvme6n1 /dev/nvme7n1 /dev/nvme8n1 /dev/nvme9n1 /dev/nvme10n1 /dev/nvme11n1
    mdadm --detail /dev/md0
    mdadm /dev/md0 -r /dev/nvme0n1 /dev/nvme1n1 /dev/nvme2n1 /dev/nvme3n1 /dev/nvme4n1 /dev/nvme5n1 /dev/nvme6n1 /dev/nvme7n1 /dev/nvme8n1 /dev/nvme9n1 /dev/nvme10n1 /dev/nvme11n1
    mdadm --stop /dev/md0
    mdadm --zero-superblock /dev/nvme0n1 /dev/nvme1n1 /dev/nvme2n1 /dev/nvme3n1 /dev/nvme4n1 /dev/nvme5n1 /dev/nvme6n1 /dev/nvme7n1 /dev/nvme8n1 /dev/nvme9n1 /dev/nvme10n1 /dev/nvme11n1
    --CHECK 确认旧RAID5已删除
    [root@M04-H11-X10529H-02-MPPShuJuJieDianFuWuQi ~]# mdadm --detail /dev/md0
    mdadm: cannot open /dev/md0: No such file or directory
     
评论已关闭