如何在 LVM RAID 之上創建 LVM VDO 卷?
我使用 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 會得到一個功能齊全的 dmeventd 堆棧和 vdo 嗎?
您應該有一個受 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 中相對較新的補充(順便說一句,它的複雜性正在增長),在混合不同的段類型時應小心。出於這個原因,我通常使用 plain
mdadm
來創建軟體 RAID 陣列,並在其上分層 LVM。如果您願意,
lvs -o +seg_type -a
請在創建 RAID 和 VDO 卷後發布讓我(和其他人)檢查您的 LVM 設置的輸出。無論如何,在將任何有價值的數據放入您的捲之前,請務必三重檢查您的 RAID 設置。