改變 PE 大小 – 必須調整 LV

  1. 先卸載 /mnt/pub。
    [root@kvm10 ~]# umount /mnt/pub
    
  2. PE 改變大小必須看「新的 PE 大小是否可整除 VG 大小」,以下列 VG vg_mntx 為例,PE 大小是 4MiB,總數有 748 個,VG 總大小為 4MiB*748 = 2992MiB
    [root@kvm10 ~]# vgdisplay vg_mntx | egrep '(Size|Total)'
      VG Size               2.92 GiB
      PE Size               4.00 MiB
      Total PE              748
      Alloc PE / Size       62 / 248.00 MiB
      Free  PE / Size       686 / <2.68 GiB
    
  3. vg_mntx 的 PE size 由 4M 改成 16M (放大 4 倍),2992MiB/16MiB=187 個,應該可以順利改變 PE 大小,但卻出現剩餘的空間不是剛好整數個 PE 的問題。
    [root@kvm10 ~]# vgchange -s 16M vg_mntx 
      New size 5619712 for vg_mntx free space not an exact number of new extents.
    
  4. 原因是 LV pubx 用了 50 個 PE,swap 用了 12 個 PE,共用了 62 個,剩下 686 個,不是 4 的倍數,必須先修改 LV 的大小,先符合 16M 的倍數。
    [root@kvm10 ~]# lvdisplay /dev/vg_mntx/pubx 
      --- Logical volume ---
      LV Path                /dev/vg_mntx/pubx
      LV Name                pubx
      VG Name                vg_mntx
      LV UUID                FUbp9Q-jIOJ-rR6r-H2sv-mNqv-rlv5-3jYXEH
      LV Write Access        read/write
      LV Creation host, time kvm10.deyu.wang, 2019-11-11 14:16:55 +0800
      LV Status              available
      # open                 0
      LV Size                200.00 MiB
      Current LE             50
      Segments               2
      Allocation             inherit
      Read ahead sectors     auto
      - currently set to     8192
      Block device           253:3
    
  5. 假設最後要調整成 PE 16M, LV 30 個 PE,也就是 480M,可以在 PE 還是 4M 時,先將 LV 的 PE 個數調整成 120 個,接著去調整 PE 大小後就不用再修改 LV 的 PE 個數。
    [root@kvm10 ~]# lvresize -l 120 -r /dev/vg_mntx/pubx
    fsck from util-linux 2.32.1
    /dev/mapper/vg_mntx-pubx: clean, 11/51200 files, 8076/204800 blocks
      Size of logical volume vg_mntx/pubx changed from 200.00 MiB (50 extents) to 480.00 MiB (120 extents).
      Logical volume vg_mntx/pubx successfully resized.
    resize2fs 1.44.3 (10-July-2018)
    Resizing the filesystem on /dev/mapper/vg_mntx-pubx to 491520 (1k) blocks.
    The filesystem on /dev/mapper/vg_mntx-pubx is now 491520 (1k) blocks long.
    
  6. 再查看 VG 剩餘 PE 數量是 616,616/4=154。
    [root@kvm10 ~]# vgdisplay vg_mntx | egrep '(Size|Total)'
      VG Size               2.92 GiB
      PE Size               4.00 MiB
      Total PE              748
      Alloc PE / Size       132 / 528.00 MiB
      Free  PE / Size       616 / <2.41 GiB
    
  7. vg_mntx 的 PE size 由 4M 改成 16M (放大 4 倍)。
    [root@kvm10 ~]# vgchange -s 16M vg_mntx
      Volume group "vg_mntx" successfully changed
    
  8. 查看 VG 的 PE Size 是16M,總個數是 187。
    [root@kvm10 ~]# vgdisplay vg_mntx | egrep '(Size|Total)'
      VG Size               2.92 GiB
      PE Size               16.00 MiB
      Total PE              187
      Alloc PE / Size       33 / 528.00 MiB
      Free  PE / Size       154 / <2.41 GiB
    
  9. 查看 LV 的 PE 個數由 120 個變成 30 個,總大小還是 480M。
    [root@kvm10 ~]# lvdisplay /dev/vg_mntx/pubx | grep LE
      Current LE             30