
LVM VG と LV を作成しようとしていますが、LV が揃っていません。
私の出発点は次のとおりです。
% 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
ALIGNMENT
s がすべて (正しい) であることに注意してください0
。
ではsdd2
、VG を作成しtest
てから 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.
しかし、ALIGNMENT
はtest-align--me
間違いです:
% 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
次のログ メッセージも表示されます (4 回繰り返されます)。
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
vgcreate
および--dataalignmentoffset 4k
とを呼び出しました--dataalignment
が1m
、4m
結果は同じです。
実行中:
LVM version: 2.02.182(2) (2018-10-30)
Library version: 1.02.152 (2018-10-30)
Driver version: 4.39.0
答え1
症状
価値
lsblk -t
OPT-IO
は本当に高かった(frostschutzが指摘)smartctl
ディスク上で実行すると、次の画面が表示されました:Read Device Identity failed: scsi error unsupported field in scsi command
原因
-1
最適なIO値が読み取れない場合に返されるようです。
としてスティーブ・ディーが指摘:
- 33553920 / 512 (論理セクターサイズ) = 65535
- -1 を 16 ビット値で表すと 65535 になります (2 16 = 65536)。
この値は、次のように最初の PE ( ) を整列させるために33553920
使用されます。pvcreate
vgcreate
pe_start
sudo pvs -o +pe_start --units b
回避策
渡す--dataalignment 1m
と= 1048576B = 1MiBvgcreate
になりますpe_start
。
これにより、pe_start
ディスク セクターに確実に位置合わせされますが、(誤った) 位置合わせ不良メッセージは引き続き印刷されます。
根本原因の修正
UASを無効にするドライブ上の値は(他のディスク ドライブと一致する)OPT-IO
に戻りました。また、ドライブ上で実行できるようになりました。0
smartctl
--dataalignment 1m
この修正が適用されている場合は、渡す必要はありません。