Когда несколько систем виртуализации хранения используются вместе, может быть сложно и долго понять структуру различных задействованных отношений. Какие инструменты доступны для диаграммирования и обобщения этих отношений?
Случай, который меня особенно интересует, это LinuxЛВМи LUKS. У меня есть система, где они накладываются друг на друга. Моя цель была нарисоватьблок-схема, со следующими слоями (немного упрощая, чтобы исключить ненужные осложнения):
- Логический том LVM (LV)
- Группа томов LVM (VG)
- Раздел LUKS == Физический том LVM (PV)
- Физический раздел
- Физический диск
Обратите внимание, что хотя в целом VG образуют связь «многие ко многим» между LV и PV, мой случай был проще, поскольку каждый VG был связан только с одним PV.
Блок-схема должна была быть помечена такой информацией, как имена файлов физических дисковых устройств, имена PV, VG и LV, имена устройств сопоставления устройств и универсальные уникальные идентификаторы дисков, если таковые имелись.
Я только что нарисовал эту блок-схему. Я обнаружил, что использовал 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 было неправильно маркировано, что позволяет предположить, что оно находилось на другом физическом диске, чем на самом деле!
Очевидно, могут быть и другие осложнения, наиболее очевидные, когда одна группа томов связана с несколькими физическими томами. В этом случае я бы хотел несколько блок-схем (две в простом случае, больше, если наслоение более сложное).