使用 Linux lvm2,我可以在 VG 中创建逻辑卷。当我使用lvcreate
命令 striping/stripesize 指定时,我可以手动将逻辑卷分布到所有物理卷上(如下面的lvnova所示)。
有没有办法配置 lvcreate 总是条带化,特别是如果我创建新的 LV,它们应该在设备上循环创建?(即没有在每个 lvcreate 中指定物理“启动”设备)
我需要为 OpenStack Nova 用于临时设备的卷组持久配置它。看起来我无法配置 lvm 驱动程序来更均匀地分配它们。
我正在寻找一种将其指定为 VG 上的属性的方法(因为 lvcreate 正在谈论继承分配),但我在手册中找不到它。
LV 继承了分配策略,VG 告诉我这是正常的:
# vgchange vgdata --alloc normal
Volume group allocation policy is already normal
我也在查看 lvm.conf 中是否有分配策略。但是 cling2 策略只有一些参数,它在扩展卷时特别使片段保持在一起(这不是我在这里主要关心的问题)。
手动条带化 LV 和 OpenStack 的示例在 4 个物理卷系统上生成了一个卷:
nvme0n1 259:0 0 1.5T 0 disk
└─nvme0n1p1 259:4 0 1.5T 0 part
├─vgdata-lvnova (dm-0) 252:0 0 750G 0 lvm /srv/data
├─vgdata-ec3d1f0d--76f2--4cb2--af66--665dba0582b1_disk (dm-3) 252:3 0 50G 0 lvm
├─vgdata-ec3d1f0d--76f2--4cb2--af66--665dba0582b1_disk.swap (dm-4) 252:4 0 8G 0 lvm
├─vgdata-290ef35d--6d84--49cf--8d7d--3240dcd84a3e_disk (dm-5) 252:5 0 20G 0 lvm
...
nvme1n1 259:1 0 1.5T 0 disk
└─nvme1n1p1 259:5 0 1.5T 0 part
└─vgdata-lvnova (dm-0) 252:0 0 750G 0 lvm /srv/data
nvme2n1 259:2 0 1.5T 0 disk
└─nvme2n1p1 259:6 0 1.5T 0 part
└─vgdata-lvnova (dm-0) 252:0 0 750G 0 lvm /srv/data
nvme3n1 259:3 0 1.5T 0 disk
└─nvme3n1p1 259:7 0 1.5T 0 part
└─vgdata-lvnova (dm-0) 252:0 0 750G 0 lvm /srv/data
root@compute18:~# lvs --segments
LV VG Attr #Str Type SSize
lv-root vg0 -wi-ao--- 1 linear 223.52g
lv-swap vg0 -wi-ao--- 1 linear 46.56g
17bad6e1-41f0-4725-a74d-7a1f1df5f0b6_disk vgdata -wi-ao--- 1 linear 20.00g
17bad6e1-41f0-4725-a74d-7a1f1df5f0b6_disk.swap vgdata -wi-ao--- 1 linear 1.00g
189585e0-9b69-4d7c-b1b4-194156312553_disk vgdata -wi-ao--- 1 linear 20.00g
...
lvnova vgdata -wi-ao--- 4 striped 750.00g
顺便说一句:我之前使用了条纹 /dev/md0,但我希望摆脱这种间接。
这是带有 KVM/nova OS Liberty 的 Ubuntu Trusty (lvm 2.0.2.98(2)) 上的 Linux 4.4.0。
您可以在
/etc/lvm.conf
. 如果您设置raid_stripe_all_devices=1
默认值应该是条纹而不是线性。你也应该看看use_linear_target
。Andreas 提到的
allocation/raid_stripe_all_devices=1
选项lvm.config
仅适用于Ubuntu Zesty,即使这样,它似乎也不会默认打开条带卷。出于这个原因,我们修补了操作系统:
这适用于我们的案例:
我们将为这个缺失的设置打开一个 OpenStack 错误。