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

Bob*_*Bob 3 lvm

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

\n

我有 2 个卷组。\n两个 VG 均名为“rl”,因此我需要重命名其中一个,并且必须使用正确的 VG UUID 才能执行此操作。

\n

我无法找到一种方法来识别哪个 UUID 属于哪个 VG(由其物理存储定义)。

\n

我有 2 个驱动器。

\n

每个驱动器都有一个 LUKS 卷,其中包含一个 LVM2 VG,其中包含 3 个 LV:

\n
sda                                            \n\xe2\x94\x9c\xe2\x94\x80sda1                                        \n\xe2\x94\x94\xe2\x94\x80sda2                                         \n  \xe2\x94\x94\xe2\x94\x80luks-bdf533b2-afca-4eda-8029-e0346ebaea99 \n    \xe2\x94\x9c\xe2\x94\x80rl-root                                 \n    \xe2\x94\x9c\xe2\x94\x80rl-swap                                \n    \xe2\x94\x94\xe2\x94\x80rl-home                                \nsdc                                            \n\xe2\x94\x9c\xe2\x94\x80sdc1                                         \n\xe2\x94\x94\xe2\x94\x80sdc2                                    \n  \xe2\x94\x94\xe2\x94\x80luks-b41a89f1-9040-48df-a10e-11261f899d0f \n    (not active)\n
Run Code Online (Sandbox Code Playgroud)\n

pvdisplay给我:

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

vgdisplay给我:

\n
--- Volume group ---\n  VG Name               rl        \n  ...\n  VG UUID               lfTJTT-hCgr-nIfI-VB8o-i0ze-20F3-ReXssf\n  \n  --- Volume group ---\n  VG Name               rl\n  ... \n  VG UUID               c70c76-sSDO-EjZd-Zfuc-w3Hw-Da3Y-GM9lf6\n
Run Code Online (Sandbox Code Playgroud)\n

显然,从上面我无法判断哪个VG UUID对应于哪个驱动器。我找不到任何方法来显示哪些物理卷附加到哪个 VG,因为它们都被命名为“rl”,并且所有输出都给出了名称,而我唯一能看到 UUID 的地方是在vgdisplay.

\n

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

\n

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

\n

fro*_*utz 5

您可以尝试使用vgs自定义列输出:

vgs -o vg_name,vg_uuid,pv_uuid
Run Code Online (Sandbox Code Playgroud)

它应该看起来有点像这样:

  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
Run Code Online (Sandbox Code Playgroud)

(或相反)

另一种方法是检查 LVM 元数据备份/etc/lvm/(如果存在)。

$ grep -r lfTJTT-hCgr /etc/lvm
/etc/lvm/backup/rl: id = "lfTJTT-hCgr-nIfI-VB8o-i0ze-20F3-ReXssf"
Run Code Online (Sandbox Code Playgroud)

(其他 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"
Run Code Online (Sandbox Code Playgroud)

如果 LVM 工具集不可用或者您将备份存储在另一台计算机上,则 grep 方法可能会很有趣,否则最好使用 LVM 实用程序。

如果您合并 VG 或移动 PV,LVM 备份文件也有可能反映过时的状态。