LVM RAID( lvmraid )

虽然 Linux 软RAIDmdadm 软RAID构建 使用更为广泛和成熟,我也依然想尝试一下 lvmraid 部署。 lvmraid 基于 MD 驱动实现了RAID功能,是另一种解决方案。不过,从各方面信息来看, lvmraid 可能不够成熟,存在一些性能问题。

备注

以下是我的构想方案,尚未实践(还没有遇到实践环境),谨慎参考

  • 假设方案使用 3块 磁盘构建 RAID 5(构建RAID5只少需要3块磁盘,我这里复用了 XFS文件系统快速起步 的磁盘分区方案):

3块 NVMe存储 磁盘使用 parted分区工具 完成分区
for i in {0..2};do
    parted -s /dev/nvme0n${i} mklabel gpt
    parted -s -a optimal /dev/nvmd0n${i} mkpart primary 0% 100%
    parted -s /dev/nvmd0n${i} set 1 lvm on
    parted -s /dev/nvmd0n${i} name 1 db_data
done
  • 使用LVM创建RAID的方法其实和 条带化逻辑卷管理(LVM) (条代化也是分布数据到多个数据磁盘)非常类似,区别在于传递了参数 --type ,例如 --type raid5 ,并且数据盘数量参数 -i 需要比 条带化逻辑卷管理(LVM) 减少 1 (因为有一块磁盘作为校验盘不直接存储数据)

举例,之前在 条带化逻辑卷管理(LVM) 使用以下命令构建跨3块磁盘的条代化LVM:

创建跨3块磁盘的条代化LVM卷
pvcreate /dev/nvme0n{0..2}p1
vgcreate vg_db /dev/nvme0n{0..2}p1

lvcreate -n vl_log -l 10%FREE -i 3 -I 128k vg_db
lvcreate -n vl_data -l 100%FREE -i 3 -I 128k vg_db

则需要调整数据盘数量(n-1) -i 2 ,并且传递类型 --type raid5 :

简单的创建RAID5的LVM卷
pvcreate /dev/nvme0n{0..2}p1
vgcreate vg_db /dev/nvme0n{0..2}p1

lvcreate -n vl_log -l 10%FREE -i 2 -I 128k --type raid5 vg_db
lvcreate -n vl_data -l 100%FREE -i 2 -I 128k --type raid5 vg_db

参考