optimal_io_size ist groß, was zu einer Inkonsistenz der LVM-LV-Ausrichtung führt

optimal_io_size ist groß, was zu einer Inkonsistenz der LVM-LV-Ausrichtung führt

Ich versuche, ein LVM VG und LV zu erstellen, aber das LV ist nicht ausgerichtet.

Hier ist meine Ausgangslage:

% 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

Beachten Sie, dass ALIGNMENTalle S 0(richtig) sind.

Am sdd2erstelle ich ein VG testund dann ein 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.

Allerdings ist ALIGNMENTfor test-align--mefalsch:

% 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

Ich sehe außerdem die folgende Protokollmeldung (4-mal wiederholt):

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

Ich habe vgcreatemit --dataalignmentoffset 4kund auch --dataalignmentmit 1mund angerufen 4m, aber die Ergebnisse sind dieselben.

Ich renne:

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

Antwort1

Problembeschreibung

  1. Der lsblk -t OPT-IOWert war wirklich hoch (darauf hingewiesen von frostschutz)

  2. Beim Ausführen smartctlauf der Festplatte habe ich Folgendes gesehen:

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

Ursache

Es scheint, dass dies -1zurückgegeben wird, wenn kein optimaler IO-Wert gelesen werden kann.

Alsvon Steve Dee hervorgehoben:

  • 33553920 / 512 (logische Sektorgröße) = 65535
  • -1 dargestellt als 16-Bit-Wert = 65535. (2 16 = 65536)

Dieser 33553920Wert wird dann von pvcreate/ verwendet, um das erste PE ( ) wie folgt vgcreateauszurichten :pe_start

sudo pvs -o +pe_start --units b

Problemumgehung

Die Übergabe --dataalignment 1man vgcreateergibt pe_start= 1048576B = 1MiB.

Dadurch wird sichergestellt, dass pe_startdie Ausrichtung mit einem Festplattensektor erfolgt, die (falsche) Fehlausrichtungsmeldung wird jedoch trotzdem gedruckt.

Behebung der Grundursache

UAS deaktivierenauf dem Laufwerk wurde der OPT-IOWert wiederhergestellt 0(konsistent mit meinen anderen Laufwerken). Es ließ sich auch smartctlauf dem Laufwerk ausführen.

Eine Weitergabe --dataalignment 1mist nicht erforderlich, wenn dieser Fix angewendet wird.

verwandte Informationen