¿El grupo de volumen sigue activo después de deshabilitarlo con vgchange?

¿El grupo de volumen sigue activo después de deshabilitarlo con vgchange?

Noté que a veces vgchange -a n [vgname]parece que el grupo de volúmenes no se cierra correctamente. Esto sucede con mayor frecuencia cuando preparo un nuevo sistema y no sé qué está causando esto. Considere la siguiente estructura de disco (salida de lsblk -o name,fstype)

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

Cuando abro todas estas cosas de la manera normal ( cryptsetup open ...,, vgchange -a y ...etc.), hago algunas cosas test_lvm-testy luego cierro todo con

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

test_lvmdesaparece de la salida de vgscomo se esperaba. PERO, si acabo de crear esta estructura (ver reproducción a continuación), la monté por primera vez y luego la cerré de la misma manera, test_lvmno desaparece de la salida de vgs. En cambio, vgsse queja de que el dispositivo para el volumen físico "no fue encontrado o rechazado por un filtro". Para eliminar el error vgstengo que volver a abrir test_luksy test_lvmdesactivar test_lvmnuevamente y cerrar test_luksnuevamente.

¿Por qué pasó esto? ¿Por qué LVM mantiene un control de test_lvmafter vgchange -a n test_lvm; cryptsetup close test_lukscuando se montó por primera vez, pero no después?


Pude reproducir este comportamiento de manera más consistente con el Live CD de Arch Linux "Arch Linux 5.2.5-arch1-1-ARCH" en VirtualBox de esta manera

# 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.

Respuesta1

Los mensajes de error sobre el PV que no se encuentra después de cerrar el contenedor LUKS se pueden desactivar/eliminar simplemente ejecutando pvscan --cacheafter cryptsetup close <device>. Sin embargo, todavía no sé si cerrar el contenedor LUKS en esta situación puede tener efectos secundarios negativos en los datos almacenados en su interior. Si alguien sabe más sobre esto, hágamelo saber.

información relacionada