当多个存储虚拟化系统一起使用时,了解所涉及的各种关系的结构可能很复杂且耗时。有哪些工具可用于绘制和总结这些关系?
我特别感兴趣的案例是 Linux 的逻辑卷管理器和 LUKS。我有一个系统,它们彼此叠加。我的目标是绘制一个框图,其层次如下(稍微简化以避免不相关的复杂性):
- LVM 逻辑卷 (LV)
- LVM 卷组 (VG)
- LUKS 分区 == LVM 物理卷(PV)
- 物理分区
- 物理磁盘
请注意,尽管一般来说,VG 在 LV 和 PV 之间形成多对多关系,但我的情况更简单,因为每个 VG 仅与单个 PV 相关联。
框图上应标有诸如物理磁盘设备文件名、PV、VG 和 LV 名称、设备映射器设备名称以及磁盘 UUID(如果可用)等信息。
我刚刚画了那个框图。我发现我使用了 12 个信息源,以及对系统的先验知识,并在运行cryptsetup
和mount
命令时观察系统随时间的变化。画图是一个痛苦且耗时的反复积累知识的过程,让我想起某种逻辑问题。下面是我使用的一些命令:
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 加密设备被错误标记,暗示它位于与实际不同的物理磁盘上!
显然还可能存在其他复杂情况,最明显的是单个卷组与多个物理卷相关联。在这种情况下,我需要多个框图(简单情况下需要两个,如果分层更复杂,则需要更多)。