LVM2:如何列出物理分区标识符以及它们分配到的 VG 的 UUID——或者跟踪一个到另一个

LVM2:如何列出物理分区标识符以及它们分配到的 VG 的 UUID——或者跟踪一个到另一个

(洛基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”,并且所有输出都给出了名称,而我唯一能看到 UUID 的地方是在vgdisplay.

我需要的是能够查看物理分区标识符及其分配到的 VG 的 UUID。有谁知道如何做到这一点?

我知道我只能列出活动 vgs 或通过存储大小进行识别,但我想知道在一般情况下如何执行此操作。一个例子是,我在相同的存储介质上有多个不活动的卷组,并且所有卷组都具有相同的名称。

答案1

您可以尝试使用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 备份文件也有可能反映过时的状态。

相关内容