LVM RAID( lvmraid
)¶
虽然 Linux 软RAID 的 mdadm 软RAID构建 使用更为广泛和成熟,我也依然想尝试一下 lvmraid
部署。 lvmraid
基于 MD
驱动实现了RAID功能,是另一种解决方案。不过,从各方面信息来看, lvmraid
可能不够成熟,存在一些性能问题。
备注
以下是我的构想方案,尚未实践(还没有遇到实践环境),谨慎参考
假设方案使用 3块 磁盘构建 RAID 5(构建RAID5只少需要3块磁盘,我这里复用了 XFS文件系统快速起步 的磁盘分区方案):
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:
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
:
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