pvresize를 할당된 물리적 범위에서 가져온 정확한 공간으로 조정할 수 없는 이유

pvresize를 할당된 물리적 범위에서 가져온 정확한 공간으로 조정할 수 없는 이유

물리 볼륨에는 각각 크기가 4194304바이트(또는 4MiB)인 32개의 물리 확장 영역을 할당했습니다. 32*4194304는 134217728(128MiB)입니다. 정확한 크기로 크기를 조정하려고 하면 오류가 발생합니다. 129MiB로 크기 조정을 시도했습니다.

PV 크기를 할당된 물리적 확장 영역의 정확한 수에 맞게 조정할 수 없는 이유는 무엇입니까? 크기를 얼마나 조정할 수 있는지 정확히 어떻게 알 수 있나요?

root@osboxes:/etc/lvm# pvdisplay --unit b
--- Physical volume ---
PV Name               /dev/sda4
VG Name               vg1
PV Size               135266304 B  / not usable 1048576 B
Allocatable           yes (but full)
PE Size               4194304 B
Total PE              32
Free PE               0
Allocated PE          32
PV UUID               4XbCGL-eTnk-KFea-eZs5-MQT4-il6C-OPPVTB

root@osboxes:/etc/lvm# pvresize --setphysicalvolumesize 134217728b /dev/sda4
/dev/sda4: Requested size 128.00 MiB is less than real size <270.06 GiB. Proceed?  [y/n]: y
  WARNING: /dev/sda4: Pretending size is 262144 not 566349824 sectors.
  /dev/sda4: cannot resize to 31 extents as 32 are allocated.
  0 physical volume(s) resized or updated / 1 physical volume(s) not resized

답변1

LVM 메타데이터는 어딘가에 저장되어야 합니다. 일반적으로 PV는 1MiB 크기로 시작됩니다.

다음과 같이 첫 번째 물리적 범위의 시작 오프셋을 확인할 수 있습니다.

pvs -o +pe_start

전체 크기에 첫 번째 PE 오프셋을 추가하면 제대로 작동합니다.

vgcreate매뉴얼 페이지에 설명된 대로 이 값을 설정할 수도 있습니다 .

   --dataalignment Size[k|UNIT]
          Align the start of the data to a multiple of this number.  Also
          specify an appropriate Physical Extent size when creating a VG.
          To see the location of the first Physical Extent of an existing
          PV, use pvs -o +pe_start. In addition, it may be shifted by an
          alignment offset.  See lvm.conf/data_alignment_offset_detection
          and --dataalignmentoffset.

   --dataalignmentoffset Size[k|UNIT]
          Shift the start of the data area by this additional offset.

주의하세요. 그렇지 않으면 정말 이상한 오프셋이 발생할 수 있습니다.

관련 정보