Lvm

LVM2:如何使用分配給它們的 VG 的 UUID 列出物理分區標識符 - 或跟踪一個到另一個

  • November 14, 2021

(洛基 Linux 4.18.0-305.25.1.el8_4.x86_64)

我有 2 個卷組。兩個 VG 都命名為“rl”,因此我需要重命名其中一個並且必須使用正確的 VG UUID 來執行此操作。

我找不到一種方法來辨識哪個 UUID 屬於哪個 VG,由其物理儲存定義。

我有2個驅動器。

每個驅動器都有一個 LUKS 卷,其中包含一個 LVM2 VG,然後包含 3 個 LV:

sda                                            
├─sda1                                        
└─sda2                                         
 └─luks-bdf533b2-afca-4eda-8029-e0346ebaea99 
   ├─rl-root                                 
   ├─rl-swap                                
   └─rl-home                                
sdc                                            
├─sdc1                                         
└─sdc2                                    
 └─luks-b41a89f1-9040-48df-a10e-11261f899d0f 
   (not active)

pvdisplay給我:

 --- Physical volume ---
 PV Name               /dev/mapper/luks-b41a89f1-9040-48df-a10e-11261f899d0f
 VG Name               rl
 ...
 PV UUID               akQG9K-H5x4-U0K1-ij7c-4JQw-rbvk-9NUND5
 
 --- Physical volume ---
 PV Name               /dev/mapper/luks-bdf533b2-afca-4eda-8029-e0346ebaea99
 VG Name               rl
 ...
 PV UUID               gwKY6m-aesa-XKZZ-TL0d-XdFt-v09N-fRHPI6

vgdisplay給我:

--- Volume group ---
 VG Name               rl        
 ...
 VG UUID               lfTJTT-hCgr-nIfI-VB8o-i0ze-20F3-ReXssf
 
 --- Volume group ---
 VG Name               rl
 ... 
 VG UUID               c70c76-sSDO-EjZd-Zfuc-w3Hw-Da3Y-GM9lf6

顯然,從上面我無法分辨哪個 VG UUID 對應哪個驅動器。我找不到任何方法來顯示哪些物理卷附加到了哪個 VG,因為它們都被命名為“rl”,並且所有輸出都給出了 name 並且我可以看到 UUID 的唯一位置在vgdisplay.

我需要的是能夠使用分配給它們的 VG 的 UUID 查看物理分區標識符。有誰知道如何做到這一點?

我知道我只能列出活動的 vg 或按儲存大小進行辨識,但我想知道在一般情況下如何執行此操作。例如,我在相同的儲存介質上有多個非活動 vg,它們都具有相同的名稱。

您可以嘗試使用vgs自定義列輸出:

vgs -o vg_name,vg_uuid,pv_uuid

它應該看起來像這樣:

 VG  VG UUID                                PV UUID                               
 rl  lfTJTT-hCgr-nIfI-VB8o-i0ze-20F3-ReXssf akQG9K-H5x4-U0K1-ij7c-4JQw-rbvk-9NUND5
 rl  c70c76-sSDO-EjZd-Zfuc-w3Hw-Da3Y-GM9lf6 gwKY6m-aesa-XKZZ-TL0d-XdFt-v09N-fRHPI6

(或相反)

另一種方法是檢查 LVM 元數據備份/etc/lvm/(如果存在)。

$ grep -r lfTJTT-hCgr /etc/lvm
/etc/lvm/backup/rl: id = "lfTJTT-hCgr-nIfI-VB8o-i0ze-20F3-ReXssf"

(對於其他 UUID 依此類推,然後查看哪些文件匹配)

或者從備份文件中獲取所有 UUID(PV、VG、LV):

$ grep 'id = "' /etc/lvm/backup/rl
id = "lfTJTT-hCgr-nIfI-VB8o-i0ze-20F3-ReXssf"
           id = "gwKY6m-aesa-XKZZ-TL0d-XdFt-v09N-fRHPI6"

如果 LVM 工具集不可用或者如果您將備份儲存在另一台機器上,則 grep 方法可能會很有趣,否則最好使用 LVM 實用程序。

如果合併 VG 或移動 PV,LVM 備份文件也有可能反映過時的狀態。

引用自:https://unix.stackexchange.com/questions/677054