O grupo de volumes ainda está ativo após desabilitar com vgchange?

O grupo de volumes ainda está ativo após desabilitar com vgchange?

Percebi que às vezes vgchange -a n [vgname]parece não fechar o grupo de volumes corretamente. Isso acontece com mais frequência quando eu preparo um novo sistema e não sei o que está causando isso. Considere a seguinte estrutura de disco (saída de lsblk -o name,fstype)

NAME                   FSTYPE
/dev/sdx
+- /dev/sdx1           crypto_LUKS
|  +- test_luks        LVM2_member
|  |  +- test_lvm-test ext4

Quando eu abro tudo isso da maneira normal ( cryptsetup open ..., vgchange -a y ..., etc.), faço algumas coisas test_lvm-teste fecho tudo com

umount [mountpoint of test_lvm-test]
vgchange -a n test_lvm
cryptsetup close test_luks

test_lvmdesaparece da saída vgsconforme esperado. MAS, se eu apenas criei essa estrutura (veja abaixo para reproduzir), montei ela pela primeira vez e depois fechei da mesma forma, test_lvmnão desaparece da saída do vgs. Em vez disso, vgsreclama que o dispositivo para o volume físico “não foi encontrado ou rejeitado por um filtro”. Para remover o erro vgstenho que reabrir test_lukse test_lvmdesabilitar test_lvmnovamente e fechar test_luksnovamente.

Por que isso acontece? Por que o LVM mantém um identificador test_lvmafter vgchange -a n test_lvm; cryptsetup close test_luks, quando foi montado pela primeira vez, mas não depois?


Consegui reproduzir esse comportamento de forma mais consistente com o Live CD do Arch Linux "Arch Linux 5.2.5-arch1-1-ARCH" no VirtualBox assim

# Let /dev/sdx1 be the partition to test this on

#
# Create LVM on LUKS with one ext4 volume
#
cryptsetup luksFormat --cipher aes-xts-plain64 --hash sha256 --label "Test (Encrypted)" /dev/sdx1
cryptsetup open /dev/sdx1 test_luks
pvcreate /dev/mapper/test_luks
vgcreate test_lvm /dev/mapper/test_luks
lvcreate --extents 100%FREE test_lvm --name test
mkfs.ext4 -L Test /dev/test_lvm/test

#
# Mount volume and write to it
#
mount /dev/test_lvm/test /mnt
echo "Hello World" > /mnt/test.txt

#
# Unmount everything
#
umount /mnt
vgchange -a n test_lvm
# -> 0 logical volume(s) in volume group "test_lvm" now active
cryptsetup close test_luks

#
# Check vgs
#
vgs
# -> Warning: Device for PV [uuid] not found or rejected by a filter.
# -> Warning: Device for PV [same uuid] not found or rejected by a filter.
# -> Couldn't find device with uuid [same uuid again].
# -> VG       #PV #LV #SM Attr   VSize   VFree
# -> test_lvm   1   1   0 wz-pn- 492.00m    0

#
# Mount and unmount again
#
cryptsetup open /dev/sdx1 test_luks
vgs
# No error this time
vgchange -a n test_lvm
cryptsetup close test_luks
# test_lvm no longer listed in vgs and no errors.

Responder1

As mensagens de erro sobre o PV não ser encontrado após o fechamento do contêiner LUKS podem ser desabilitadas/removidas simplesmente executando pvscan --cacheafter cryptsetup close <device>. No entanto, ainda não sei se fechar o contêiner LUKS nesta situação pode ter efeitos colaterais negativos nos dados armazenados nele. Se alguém souber mais sobre isso, por favor me avise.

informação relacionada