Quando vários sistemas de virtualização de armazenamento são usados juntos, pode ser complicado e demorado compreender a estrutura dos vários relacionamentos envolvidos. Que ferramentas estão disponíveis para diagramar e resumir essas relações?
O caso no qual estou particularmente interessado é o do LinuxLVMe LUCAS. Eu tenho um sistema onde eles são colocados uns sobre os outros. Meu objetivo era desenhar umdiagrama de bloco, com camadas como segue (simplificando um pouco para evitar complicações irrelevantes):
- Volume lógico LVM (LV)
- Grupo de volumes LVM (VG)
- Partição LUKS == Volume físico LVM (PV)
- Partição física
- Disco físico
Observe que, embora em geral os VGs formem um relacionamento muitos-para-muitos entre LVs e PVs, meu caso foi mais simples porque cada VG estava associado apenas a um único PV.
O diagrama de blocos deveria ser rotulado com informações como nomes de arquivos de dispositivos de disco físico, nomes de PV, VG e LV, nomes de dispositivos mapeadores de dispositivos e UUIDs de disco, quando disponíveis.
Acabei de desenhar aquele diagrama de blocos. Descobri que usei 12 fontes de informação, juntamente com conhecimento prévio do sistema, e observei as mudanças do sistema ao longo do tempo enquanto executava os comandos cryptsetup
e mount
. Desenhar foi um processo iterativo doloroso e demorado de construção de conhecimento, lembrando-me deum certo tipo de problema lógico. Aqui estão alguns dos comandos que usei:
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
Quais ferramentas estão disponíveis para produzir resumos desse tipo de sistema de virtualização de armazenamento e de sistemas específicos do Linux, como LVM e LUKS em particular? Eu ficaria feliz em me contentar com listagens relacionais de texto simples no lugar de diagramas de blocos.
No meu caso, houve algumas complicações adicionais. Descreverei isso apenas para ilustrar como isso pode ficar mais complicado, mas observe que a situação acima foi complicada o suficiente para tornar demorado desenhar o diagrama de blocos apenas para a parte do meu sistema descrita acima. Estou ciente de que o problema poderia ser simplificado com a remoção dessas complicações, então não desperdicemos espaço com isso.
Uma complicação foi que eu também tenho várias partições antigas nas quais a camada LUKS/LVM é oposta à descrita acima, ou seja:
(partição física == LVM PV) -> VG -> LV -> dispositivo criptografado LUKS -> dispositivo de texto simples LUKS
em vez de:
partição física -> dispositivo criptografado LUKS -> (dispositivo de texto simples LUKS == LVM PV) -> VG -> LV
Além disso, um dispositivo criptografado LUKS foi rotulado incorretamente, sugerindo que ele estava em um disco físico diferente do que realmente estava!
Obviamente, também pode haver outras complicações, mais obviamente quando um único grupo de volumes está associado a vários volumes físicos. Nesse caso, eu gostaria de vários diagramas de blocos (dois no caso simples, mais se as camadas forem mais complicadas).