我使用 LVM 通过 raid5 设置我的低级存储lvcreate --type raid5 --size 2T -I 256K -i 3 -n my_lv my_vg
现在我想使用 LVM 在此基础上设置 VDO。我知道本手册页但我尝试lvconvert --type vdo-pool -V 20T my_vg/my_lv
以不进行突袭来结束。
如果我在我的 raid LV 上使用 PV 来设置 VDO,是否会获得具有 vdo 的功能齐全的 dmeventd 堆栈?
答案1
你应该有一个受 RAID 保护的 LVO 卷,但lvm
其本身的报告并不那么清楚。
我尝试使用 CentOS 8.2 盒和 RAID1 LVM 卷,并vdo-pool
使用以下命令将其转换为类型:lvconvert --type vdo-pool -n VDOLV -V 1G vg_test/lv_test
如何检查 RAID1 是否正常工作?您需要向命令行传递一些附加选项。执行lvs -o +seg_type -a
结果如下:
[root@localhost ~]# lvs -o +seg_type -a
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert Type
root system -wi-ao---- 50.00g linear
swap system -wi-ao---- 7.90g linear
VDOLV vg_test vwi-a-v--- 1.00g lv_test 0.00 vdo
lv_test vg_test dwi------- 8.00g 37.62 vdo-pool
[lv_test_vdata] vg_test rwi-aor--- 8.00g 100.00 raid1
[lv_test_vdata_rimage_0] vg_test iwi-aor--- 8.00g linear
[lv_test_vdata_rimage_1] vg_test iwi-aor--- 8.00g linear
[lv_test_vdata_rmeta_0] vg_test ewi-aor--- 4.00m linear
[lv_test_vdata_rmeta_1] vg_test ewi-aor--- 4.00m linear
注意raid1
段类型。并dmsetup table
显示(再次查看 RAIDrimage/rmeta
设备):
[root@localhost ~]# dmsetup table
vg_test-lv_test_vdata_rimage_1: 0 16777216 linear 230:16 10240
vg_test-lv_test-vpool: 0 2099200 vdo V2 /dev/dm-6 2097152 4096 32768 16380 on auto vg_test-lv_test-vpool maxDiscard 1 ack 1 bio 4 bioRotationInterval 64 cpu 2 hash 1 logical 1 physical 1
vg_test-lv_test_vdata: 0 16777216 raid raid1 3 0 region_size 4096 2 253:2 253:3 253:4 253:5
vg_test-VDOLV: 0 2097152 linear 253:7 1024
vg_test-lv_test_vdata_rimage_0: 0 16777216 linear 230:0 10240
vg_test-lv_test_vdata_rmeta_1: 0 8192 linear 230:16 2048
system-swap: 0 16572416 linear 8:2 104859648
vg_test-lv_test_vdata_rmeta_0: 0 8192 linear 230:0 2048
system-root: 0 104857600 linear 8:2 2048
最后,我删除了一个块设备并尝试重新导入该池 - 它成功了(并发出有关缺少设备的警告):
[root@localhost ~]# lvs -o +seg_type -a
WARNING: Couldn't find device with uuid 8jLeqt-TRKt-IVHy-JP0g-mAta-XL2k-cXpEdF.
WARNING: VG vg_test is missing PV 8jLeqt-TRKt-IVHy-JP0g-mAta-XL2k-cXpEdF (last written to /dev/zd16).
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert Type
root system -wi-ao---- 50.00g linear
swap system -wi-ao---- 7.90g linear
VDOLV vg_test vwi-a-v-p- 1.00g lv_test 0.06 vdo
lv_test vg_test dwi-----p- 8.00g 37.63 vdo-pool
[lv_test_vdata] vg_test rwi-aor-p- 8.00g 100.00 raid1
[lv_test_vdata_rimage_0] vg_test iwi-aor--- 8.00g linear
[lv_test_vdata_rimage_1] vg_test Iwi-aor-p- 8.00g linear
[lv_test_vdata_rmeta_0] vg_test ewi-aor--- 4.00m linear
[lv_test_vdata_rmeta_1] vg_test ewi-aor-p- 4.00m linear
所以,它应该可以工作。但是,RAID 和 VDO 是 LVM 中相对较新的功能(顺便说一句,它的复杂性正在增加),混合使用不同段类型时应小心谨慎。因此,我通常使用 plainmdadm
来创建软件 RAID 阵列,并在其上分层 LVM。
如果您愿意,请发布输出,lvs -o +seg_type -a
以便我(和其他人)在创建 RAID 和 VDO 卷后检查您的 LVM 设置。无论如何,在将任何有价值的数据放入卷之前,请务必仔细检查您的 RAID 设置。