
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
(올바릅니다)입니다.
On에서는 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
vgcreate
나는 with --dataalignmentoffset 4k
와 also --dataalignment
with 1m
and 로 전화했지만 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
- 16비트 값으로 표현되는 -1 = 65535. (2 16 = 65536)
그런 다음 이 값은 / 에서 다음과 같이 첫 번째 PE( )를 정렬하는 데 33553920
사용됩니다 .pvcreate
vgcreate
pe_start
sudo pvs -o +pe_start --units b
해결 방법
전달 --dataalignment 1m
하면 = 1048576B = 1MiB vgcreate
가 됩니다 .pe_start
이렇게 하면 pe_start
디스크 섹터와 정렬되지만 (잘못된) 정렬 오류 메시지는 계속 인쇄됩니다.
근본 원인 수정
UAS 비활성화드라이브의 OPT-IO
값이 반환 되었습니다 0
(다른 디스크 드라이브와 일치). 또한 smartctl
드라이브에서 실행할 수도 있습니다.
--dataalignment 1m
이 수정 사항을 적용하면 통과가 필요하지 않습니다.