Optimal_io_size es grande causando inconsistencia en la alineación LVM LV

Optimal_io_size es grande causando inconsistencia en la alineación LVM LV

Estoy intentando crear un LVM VG y un LV, pero el LV no está alineado.

Aquí está mi posición inicial:

% lsblk -t /dev/sdd
NAME   ALIGNMENT MIN-IO   OPT-IO PHY-SEC LOG-SEC ROTA SCHED       RQ-SIZE  RA WSAME
sdd            0   4096 33553920    4096     512    1 mq-deadline      60 128   32M
├─sdd1         0   4096 33553920    4096     512    1 mq-deadline      60 128   32M
├─sdd2         0   4096 33553920    4096     512    1 mq-deadline      60 128   32M
└─sdd3         0   4096 33553920    4096     512    1 mq-deadline      60 128   32M

Tenga en cuenta que las ALIGNMENTs son todas 0(correctas).

En sdd2, creo un VG testy luego un LV align-me:

% sudo vgcreate --pvmetadatacopies 2 --vgmetadatacopies 2 test /dev/6TBd1p2
  Physical volume "/dev/6TBd1p2" successfully created.
  Volume group "test" successfully created
% sudo lvcreate -L 64g -n align-me test
  Logical volume "align-me" created.

Sin embargo, ALIGNMENTestá test-align--memal:

% lsblk -t /dev/sdd
NAME               ALIGNMENT MIN-IO   OPT-IO PHY-SEC LOG-SEC ROTA SCHED       RQ-SIZE  RA WSAME
sdd                        0   4096 33553920    4096     512    1 mq-deadline      60 128   32M
├─sdd1                     0   4096 33553920    4096     512    1 mq-deadline      60 128   32M
├─sdd2                     0   4096 33553920    4096     512    1 mq-deadline      60 128   32M
│ └─test-align--me        -1   4096        0    4096     512    1                 128 128   32M
└─sdd3                     0   4096 33553920    4096     512    1 mq-deadline      60 128   32M

También veo el siguiente mensaje de registro (repetido 4 veces):

kernel: device-mapper: table: 254:6: adding target device sdd2 caused an alignment inconsistency: physical_block_size=4096, logical_block_size=512, alignment_offset=0, start=33553920

He llamado vgcreatecon --dataalignmentoffset 4ky también --dataalignmentcon 1my 4mpero los resultados son los mismos.

Estoy corriendo:

LVM version:     2.02.182(2) (2018-10-30)
Library version: 1.02.152 (2018-10-30)
Driver version:  4.39.0

Respuesta1

Síntomas

  1. El lsblk -t OPT-IOvalor era realmente alto (señalado por frostschutz)

  2. Al ejecutar smartctlen el disco, estaba viendo:

    Read Device Identity failed: scsi error unsupported field in scsi command
    

Causa

Parece que -1se devuelve si no se puede leer un valor de IO óptimo.

Comoseñalado por Steve Dee:

  • 33553920/512 (tamaño del sector lógico) = 65535
  • -1 representado como un valor de 16 bits = 65535. (2 16 = 65536)

Luego, / 33553920utiliza este valor para alinear el primer PE ( ) como se muestra en:pvcreatevgcreatepe_start

sudo pvs -o +pe_start --units b

Solución alterna

Pasando --dataalignment 1ma vgcreatetendrá pe_start= 1048576B = 1MiB.

Esto asegurará que pe_startesté alineado con un sector del disco, pero aún así se imprimirá el mensaje de desalineación (incorrecta).

Solución de causa raíz

Deshabilitar UASen la unidad tenía el OPT-IOvalor regresado 0(consistente con mis otras unidades de disco). También permitió smartctlsu ejecución en el disco.

No es necesario aprobar --dataalignment 1msi se aplica esta solución.

información relacionada