使用 LVM 和 LUKS 的多层存储虚拟化的框图/列表工具?

使用 LVM 和 LUKS 的多层存储虚拟化的框图/列表工具?

当多个存储虚拟化系统一起使用时,了解所涉及的各种关系的结构可能很复杂且耗时。有哪些工具可用于绘制和总结这些关系?

我特别感兴趣的案例是 Linux 的逻辑卷管理器和 LUKS。我有一个系统,它们彼此叠加。我的目标是绘制一个框图,其层次如下(稍微简化以避免不相关的复杂性):

  1. LVM 逻辑卷 (LV)
  2. LVM 卷组 (VG)
  3. LUKS 分区 == LVM 物理卷(PV)
  4. 物理分区
  5. 物理磁盘

请注意,尽管一般来说,VG 在 LV 和 PV 之间形成多对多关系,但我的情况更简单,因为每个 VG 仅与单个 PV 相关联。

框图上应标有诸如物理磁盘设备文件名、PV、VG 和 LV 名称、设备映射器设备名称以及磁盘 UUID(如果可用)等信息。

我刚刚画了那个框图。我发现我使用了 12 个信息源,以及对系统的先验知识,并在运行cryptsetupmount命令时观察系统随时间的变化。画图是一个痛苦且耗时的反复积累知识的过程,让我想起某种逻辑问题。下面是我使用的一些命令:

ls -l /dev/mapper/*
ls -l /dev/disk/by-uuid/*
dmsetup info
lvdisplay
ls -l /dev/mapper/<LV name>
pvs
vgs
lvs
cat /etc/fstab
cat /etc/crypttab
fdisk -l /dev/<physical disk device name>
mount

有哪些工具可用于生成此类存储虚拟化系统以及特定于 Linux 的系统(例如 LVM 和 LUKS)的摘要?我很乐意用纯文本关系列表代替框图。

就我的情况而言,还有一些额外的复杂因素。我将描述这些因素,以说明情况如何变得更加复杂,但请注意,上述情况已经足够复杂,以至于仅针对上述系统部分绘制框图就需要花费大量时间。我知道可以通过消除这些复杂因素来简化问题,所以请不要浪费篇幅。

一个复杂的问题是我还有许多旧分区,其中 LUKS/LVM 分层与上面描述的相反,即:

(物理分区==LVM PV)->VG->LV->LUKS加密设备->LUKS明文设备

代替:

物理分区 -> LUKS 加密设备 -> (LUKS 明文设备 == LVM PV) -> VG -> LV

此外,一个 LUKS 加密设备被错误标记,暗示它位于与实际不同的物理磁盘上!

显然还可能存在其他复杂情况,最明显的是单个卷组与多个物理卷相关联。在这种情况下,我需要多个框图(简单情况下需要两个,如果分层更复杂,则需要更多)。

相关内容