El problema
No se puede realizar lvresize, lvextend o lvcreate en volúmenes lógicos y se recibe el siguiente error después de ejecutar cualquier comando LVM:
device-mapper: resume ioctl on (major:minor) failed: Invalid argument Unable to resume vgname-lvname (major:minor) Failed to activate new LV
La solución
El error anterior se activa si se ha realizado alguna configuración incorrecta con LVM. Este problema se produce cuando PSize (Tamaño físico) se establece mayor que el DevSize (Tamaño del dispositivo). Se puede verificar con la salida del siguiente comando:
# pvs -v Scanning for physical volume names PV VG Fmt Attr PSize PFree DevSize PV UUID /dev/xvdc testvg1 lvm2 a- 10.00G 5.00G 5.00G 2XEI4w-LmJi-iR3B-xXVU-XxK3-dfTf-WPZXF6
Aquí puede notar que PSize está configurado en 10G, pero el tamaño real del dispositivo es solo 5G y, por lo tanto, PSize debe ser más pequeño o igual que DevSize. También puede ver los cambios realizados echando un vistazo a los archivos de almacenamiento de lvm.
# cd /etc/lvm/archive # less testvg1_00000-320386444.vg description = "Created *before* executing 'pvresize --setphysicalvolumesize 10G /dev/xvdc'"
Arriba, el tamaño del volumen físico para el archivo de almacenamiento está configurado en 10 G, lo que provocó la corrupción o el bloqueo de la funcionalidad LVM.
Plan de acción
NOTA :Como va a reducir el tamaño, primero haga la copia de seguridad completa para evitar perder sus datos en el peor de los casos, ya que es un método muy arriesgado y también ha configurado su /root en el mismo volgroup.
1. Revierta todos los cambios realizados en sus volúmenes lógicos y vuelva al tamaño original.
2. Luego use pvresize -v /dev/xxxxx/xxxxx, según su convención de nomenclatura.
3. Ahora verifique la salida pvs -v y asegúrese de que PVSize y DEVSize coincidan.
4. Finalmente ejecute lvresize, debería funcionar.
Si desea aumentar el tamaño del volumen físico, primero cree una nueva partición y luego inicialice con pvcreate y agregue esta partición al volgroup existente con vgextend e inicie el procedimiento normal para lv extend.
Ejemplo
A continuación se muestra un ejemplo del Plan de Acción anterior:
1. Revertir los cambios realizados en LV y asegurarse de que LVSize esté dentro del límite de Devsize.
# lvresize -L 4G /dev/testvg1/test_lv WARNING: Reducing active logical volume to 4.00 GB THIS MAY DESTROY YOUR DATA (filesystem etc.) Do you really want to reduce test_lv? [y/n]: y Reducing logical volume test_lv to 4.00 GB Logical volume test_lv successfully resized
2. Ahora usará pvresize -v /dev/xxxx/xxxx
# pvresize -v /dev/xvdc Using physical volume(s) on command line Archiving volume group "testvg1" metadata (seqno 9). Resizing physical volume /dev/xvdc from 2559 to 1279 extents. Resizing volume "/dev/xvdc" to 10485376 sectors. Updating physical volume "/dev/xvdc" Creating volume group backup "/etc/lvm/backup/testvg1" (seqno 10). Physical volume "/dev/xvdc" changed 1 physical volume(s) resized / 0 physical volume(s) not resized
3. Verificación mediante el comando pvs -v:
# pvs -v Scanning for physical volume names PV VG Fmt Attr PSize PFree DevSize PV UUID /dev/xvdc testvg1 lvm2 a- 5.00G 1020.00M 5.00G 2XEI4w-LmJi-iR3B-xXVU-XxK3-dfTf-WPZXF6
Ahora es posible ver que PSize es igual a DevSize.
4. Ahora realice cualquier otra operación normal con su LVM.