针对NVME盘如何通过mdadm工具进行软RAID配置参考
由于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
热门帖子
- 12025-12-01浏览数:182764
- 22023-05-09浏览数:25062
- 42023-09-25浏览数:18526
- 52020-05-11浏览数:17529