Когда несколько систем виртуализации хранилищ используются вместе, это может быть сложным и трудоемким, чтобы получить представление о структуре различных вовлеченных отношений. Какие инструменты доступны для построения диаграмм и обобщения этих отношений?
Случай, который меня особенно интересует, это Linux LVM и 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 было неправильно маркировано, предполагая, что оно было на другом физическом диске, чем оно было на самом деле!
Очевидно, что могут быть и другие сложности, наиболее очевидно, когда одна группа томов связана с несколькими физическими томами. В этом случае я хотел бы иметь несколько блок-схем (две в простом случае, больше, если расслоение сложнее).