LVM 類型 raid1 和 Thinpool 可能嗎?
我們正在將安裝從頂部帶有 LVM 的 mdadm raid 移動到純 LVM,因此我們會將原始 raid 分區作為獨立分區添加到 LVM 組中 類似:
lvcreate -L 240G -n thin pve /dev/nvme0n1p2 Logical volume "thin" created.
然後我們在另一個磁碟/分區上添加一個鏡像
lvconvert –type raid1 –mirrors 1 pve/thing /dev/nvme1n1p2 Logical volume pve/thin successfully converted.
當我們為 LXC 使用精簡池儲存系統時,我們假設我們可以將其轉換為精簡池 lvconvert –type thin-pool pve/thin 將 pve/thin 轉換為精簡池。
一切似乎都有效,但問題是我們不確定最後一次轉換是否會影響前一次。原因是當我們使用 lvs 列出時,我們得到:
thin pve twi-a-tz-- 240,00g 0,00 10,42
屬性 1 a 7 顯示這是一個精簡池,但沒有提及 raid1 或同步中的值。
雖然 lvs -a -o +devices 確實顯示它被鏡像到兩個分區:
[thin_tdata] pve rwi-aor--- 240,00g 24,17 thin_tdata_rimage_0(0),thin_tdata_rimage_1(0) [thin_tdata_rimage_0] pve iwi-aor--- 240,00g /dev/nvme0n1p2(67074) [thin_tdata_rimage_1] pve Iwi-aor--- 240,00g /dev/nvme1n1p2(67075) [thin_tdata_rmeta_0] pve ewi-aor--- 4,00m /dev/nvme0n1p2(128514) [thin_tdata_rmeta_1] pve ewi-aor--- 4,00m /dev/nvme1n1p2(67074) [thin_tmeta] pve ewi-ao---- 120,00m /dev/sdd2(0)
所以現在的疑問是,如果在thinpool 的“後面”,raid 是否仍在工作,或者只是已經分配但現在沒有被使用。創建精簡池並將其轉換為 –raid1 類型會返回錯誤。
我們還沒有找到任何關於這種情況的文件,如果這是有效的,我們完全不知道如何監控 lvm-raid 狀態,因為我們計劃通過返回“r”類型的 lvs 來監控驅動器狀態。
是的,可以有一個帶有 RAID 1 的精簡池,並且您的設置幾乎是正確的。問題在於元數據不是 RAID 1 而是線性的,因此在失去一個驅動器後,您的精簡池將被破壞。您需要為元數據創建一個單獨的 RAID 1 LV,然後
--poolmetadata <vg>/<metadata lv>
在將 RAID LV 轉換為精簡池時使用lvconvert
.有關更多詳細資訊,請參見lvmthin 手冊頁部分Tolerate device failures using raid。
手冊頁中的範例:
# lvcreate --type raid1 -m 1 -n pool0 -L 10G vg /dev/sdA /dev/sdB # lvcreate --type raid1 -m 1 -n pool0meta -L 1G vg /dev/sdC /dev/sdD # lvconvert --type thin-pool --poolmetadata vg/pool0meta vg/pool0
lvs -a
使用此設置的輸出:$ sudo lvs raid_test -a LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert [lvol0_pmspare] raid_test ewi------- 12,00m pool0 raid_test twi-a-tz-- 100,00m 0,00 10,29 [pool0_tdata] raid_test rwi-aor--- 100,00m 100,00 [pool0_tdata_rimage_0] raid_test iwi-aor--- 100,00m [pool0_tdata_rimage_1] raid_test iwi-aor--- 100,00m [pool0_tdata_rmeta_0] raid_test ewi-aor--- 4,00m [pool0_tdata_rmeta_1] raid_test ewi-aor--- 4,00m [pool0_tmeta] raid_test ewi-aor--- 12,00m 100,00 [pool0_tmeta_rimage_0] raid_test iwi-aor--- 12,00m [pool0_tmeta_rimage_1] raid_test iwi-aor--- 12,00m [pool0_tmeta_rmeta_0] raid_test ewi-aor--- 4,00m [pool0_tmeta_rmeta_1] raid_test ewi-aor--- 4,00m
屬性輸出的問題
lvs
是,只有第一位用於指定 LV 的類型,並且看起來兩者都有(r)aid
,(t)hin pool
精簡池獲勝,你只能到達t
那裡。