일지에서 다음과 같은 내용을 받았습니다.
Jan 27 18:23:08 tara kernel: device-mapper: table: 254:2: adding target device sdb2 caused an alignment inconsistency: physical_block_size=4096, logical_block_size=512, alignment_offset=0, start=33553920
Jan 27 18:23:08 tara kernel: device-mapper: table: 254:2: adding target device sdb2 caused an alignment inconsistency: physical_block_size=4096, logical_block_size=512, alignment_offset=0, start=33553920
Jan 27 18:23:08 tara kernel: device-mapper: table: 254:3: adding target device sdb2 caused an alignment inconsistency: physical_block_size=4096, logical_block_size=512, alignment_offset=0, start=34393292288
Jan 27 18:23:08 tara kernel: device-mapper: table: 254:3: adding target device sdb2 caused an alignment inconsistency: physical_block_size=4096, logical_block_size=512, alignment_offset=0, start=34393292288
이것을 어떻게 설명합니까?
- 여기서 정렬에 정확히 어떤 문제가 있나요?
- 숫자는 어디에서 오는가
start=
?
정렬을 일관되게 하려면 어떻게 해야 합니까?
추가 정보:
[ravi@tara ~]$ uname -a
Linux tara 4.8.17-1-MANJARO #1 SMP PREEMPT Mon Jan 9 10:24:58 UTC 2017 x86_64 GNU/Linux
[ravi@tara ~]$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 3.7T 0 disk
sdb 8:16 0 3.7T 0 disk
├─sdb1 8:17 0 200M 0 part
└─sdb2 8:18 0 3.7T 0 part
├─usb-eMMC_backup 254:2 0 32G 0 lvm
└─usb-ark 254:3 0 3.6T 0 lvm /ark
sdc 8:32 1 7.5G 0 disk
└─sdc1 8:33 1 7.5G 0 part
mmcblk0 179:0 0 29.1G 0 disk
├─mmcblk0p1 179:1 0 200M 0 part /mnt/esp
└─mmcblk0p2 179:2 0 28.9G 0 part
├─lvm-root 254:0 0 24G 0 lvm /
└─lvm-swap 254:1 0 4.9G 0 lvm [SWAP]
mmcblk0boot0 179:8 0 4M 1 disk
mmcblk0boot1 179:16 0 4M 1 disk
mmcblk0rpmb 179:24 0 4M 0 disk
[ravi@tara ~]$
답변1
이 경고는 검사에 정의된 대로 파티션과 LVM 장치가 잘못 정렬되었을 수 있음을 나타냅니다.blk_stack_limits. 출력 값을 확인 lsblk -t /dev/sdb
하고 캡처된 정렬 불량 유형을 확인할 수 있습니다 blk_stack_limits
(예: 물리적은 논리적 블록 크기의 배수, opt 및 min I/O는 물리적 블록 크기의 배수 등).
2019-03-03 업데이트:@derobert가 의견에서 지적했듯이 이 경우 경고는 정확합니다. PV는 물리적 블록 크기 4,096의 배수가 아닌 바이트 33,553,920에서 시작합니다. 이 문제를 해결하려면 4,096의 배수에서 시작하도록 PV/파티션을 이동하거나 다시 생성해야 합니다(예: / 또는 에 --dataalignment
전달 ).vgcreate
pvcreate
--offset
cryptsetup
안타깝게도 수정이 시작된 후에도 "일관되지 않은 정렬" 메시지가 계속 인쇄됩니다. Sven Eschenberg는 dm-crypt 목록의 긴 게시물에서 이러한 검사 중 일부가 잘못된 경고를 생성할 수 있다는 결론을 내렸습니다. 특히 sdb
USB 디스크인 경우 최적의 I/O 크기는 물리적 섹터 크기의 배수가 아닐 수 있습니다. 예를 들어 physical_block_size
4,096과 optimal_io_size
33,553,920을 보고하는 4k USB3 디스크가 있습니다. 이 값은 정확하고(드라이브에서 보고한 대로) 합리적이며(USB 제한으로 인해) 장치 매퍼 매개변수를 기반으로 하지 않습니다.
문제는 논리에서 blk_stack_limits
최적의 I/O 크기가 물리적 섹터 크기의 배수라고 가정하지만 일부 장치의 경우 그렇지 않다는 것입니다. 이것이 유일한 문제라면 경고를 무시해도 됩니다.
2019-03-03 업데이트: 불행하게도 일부 도구는 잘못 정렬된 PV/파티션을 생성할 수 있습니다. 관련 문제/수정 사항:
- Red Hat 오류 1513820cryptsetup의 경우(v2.0.0에서 수정됨 -b80278c0)
- 데비안 버그 923561별도(고정되지 않음)용
- util-linux libfdisk (v2.27에서 수정됨 -ACB7651F8)
- 레드햇 버그 1685787lvm2 pvcreate의 경우(고정되지 않음)
답변2
동맹을 맺으세요드라이브를 최적으로 사용하십시오. 소프트웨어에서 이 오류가 발생하고 더 큰 캐시를 사용하여 보상하는 경우가 있습니다. 확인하십시오.
cat /sys/block/sd?/queue/optimal_io_size
다시 포맷해야 하는 문제(GPT/LVM 레이어일 수 있음)를 해결하려면 pvcreate의 --dataalignment 및 --dataalignmentoffset을 확인하세요.
답변3
설명하다
첫 번째 값 은 대상 장치(위 ) 에 있는 첫 번째 LV의 첫 번째 PE의 오프셋 start=
입니다 .33553920
/dev/sdb2
이는 다음을 통해 확인할 수 있습니다.
sudo pvs -o +pe_start --units b
VG에 두 개의 LV( 및 LV ) 가 포함되어 있으므로 또 다른 start=
중복 값이 있습니다 . 왜 각각 중복되는지 모르겠습니다.sdb2
usb-eMMC_backup
usb-ark
이유
정렬 불일치는 다음과 같이 나눌 수 pe_start
없기 때문에 존재합니다 PHY-SEC
.
lsblk -t /dev/sdb
PHY-SEC
4096이고 33553920 % 4096 != 0입니다.
pe_start
정렬되지 않은 경우(기본 PE 크기는 4MiB) VG의 모든 LV가 잘못 정렬됩니다.
해결하다
pe_start
디스크 섹터 크기로 균등하게 나눌 수 있는 VG를 만들어야 합니다 .
전달된 값 --dataalignment 1m
은 = 1048576B = 1MiB vgcreate
입니다 .pe_start
그래도 받으면 어떻게 되나요 alignment inconsistency
?
기본 파티션이 정렬되어 있다고 가정하면 (잘못된) 정렬 메시지가 계속 생성될 수 있습니다. 바라보다이 답변특히 USB 연결 SATA(UAS)를 사용할 때 가능한 원인과 해결 방법에 대해 알아보세요.