Solucionar el error de vgextend: los dispositivos tienen tamaños de bloques lógicos inconsistentes

Cómo solucionar problemas de vgextend causados ​​por tamaños de bloques lógicos mixtos.

Por qué ocurre este error

Esto suele ocurrir cuando el nuevo disco agregado por vgextend tiene un tamaño de bloque lógico diferente al de los discos que ya están en el VG.

Ejemplo:

  • Los discos VG existentes utilizan sectores lógicos de 512 bytes.
  • El dispositivo recién agregado utiliza sectores lógicos 4K

Entonces vgextend puede fallar con este error.

Solución 1: habilite tamaños de bloques mixtos en lvm.conf

Edite /etc/lvm/lvm.conf y configure:

1
allow_mixed_block_sizes=1

Discusión de referencia:
https://serverfault.com/questions/1150643/is-it-safe-to-use-allow-mixed-block-sizes-1-in-lvm-when-using-ext4-with-4k-blo

Solución 2: hacer que los tamaños de los bloques sean consistentes

Ajuste los tamaños de los bloques lógicos del dispositivo para que todos los discos del VG utilicen una configuración coherente.

Comprobar el tamaño del bloque lógico

lsblk

1
lsblk -td

PHY-SEC es el tamaño del sector físico, LOG-SEC es el tamaño del sector lógico.

sysfs

1
2
cat /sys/class/block/sda/queue/physical_block_size
cat /sys/class/block/sda/queue/logical_block_size

fdisco

1
sudo fdisk -l /dev/sda

Mire “Tamaño del sector (lógico/físico)”.

smartctl (NVMe)

1
sudo smartctl -a /dev/nvme0n1

Marque “Tamaños LBA admitidos”; + indica el formato LBA seleccionado actualmente.

Cambiar LBA/tamaño de bloque lógico

Advertencia: formatear o cambiar la configuración de LBA puede destruir datos.

Para HDD SATA (si es compatible)

Verifique los tamaños de sector admitidos:

1
sudo hdparm -I /dev/sdX | grep 'Sector size:'

Si es compatible, cambie a 4K (ejemplo):

1
hdparm --set-sector-size 4096 --please-destroy-my-drive /dev/sdX

Verificar:

1
hdparm -I /dev/sdX | grep 'Sector size:'

Para SSD NVMe

Verifique los formatos LBA admitidos:

1
sudo nvme id-ns -H /dev/nvme0n1 | grep "Relative Performance"

O:

1
smartctl -c /dev/nvme0n1

Formato para apuntar al formato LBA (ejemplo):

1
nvme format --lbaf=1 /dev/nvme0n1

lbaf corresponde al ID de formato. Esta operación borrará los datos y luego requerirá pasos de reinicio/reinicialización.

Notas adicionales de diagnóstico

El mensaje Devices have inconsistent logical block sizes no significa necesariamente que el disco esté averiado. Normalmente indica que los discos que intentas añadir al mismo grupo LVM presentan tamaños de sector lógico diferentes, por ejemplo 512 bytes en unos dispositivos y 4096 bytes en otros. Antes de cambiar la configuración, conviene listar todos los discos candidatos y confirmar Logical Sector size y Physical Sector size con herramientas como lsblk, smartctl, hdparm o nvme id-ns.

Si el volumen contiene datos importantes, no formatees ni cambies el formato LBA del disco directamente. Primero prepara una copia de seguridad y confirma qué discos pueden modificarse de forma segura. En muchos entornos de producción es preferible separar los discos en grupos LVM distintos en vez de mezclar tamaños de bloque dentro del mismo VG.

记录并分享
Creado con Hugo
Tema Stack diseñado por Jimmy