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.

注意してください。そうしないと、本当に奇妙なオフセットが発生する可能性があります。

関連情報