
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
s はALIGNMENT
すべて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
forが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
私はそれをandvgcreate
と呼びましたが、結果は同じです。--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
は本当に非常に高いです(Frost Schutzが指摘)smartctl
ディスク上で実行すると、以下が表示されます。Read Device Identity failed: scsi error unsupported field in scsi command
理由
-1
最適なIO値が読み取れない場合は返されるようです。
〜のようにスティーブ・ディが指摘した。:
- 33553920 / 512(論理セクタサイズ) = 65535
- -1は16ビット値で表現= 65535です。 (2 16 = 65536)
次に、33553920
その値を使用して、次のように最初のPE()をソートします。pvcreate
vgcreate
pe_start
sudo pvs -o +pe_start --units b
解決策
渡される--dataalignment 1m
値vgcreate
はpe_start
= 1048576B = 1MiB です。
これにより、pe_start
ディスクセクタがソートされますが、まだ(間違った)ソートエラーメッセージが表示されます。
根本原因の修正
無人航空システムの無効化ドライブの値OPT-IO
が返されます0
(他のディスクドライブと一致)。また、smartctl
ドライブで実行することもできます。
--dataalignment 1m
この修正を適用すると、パスは必要ありません。