RedHat LinuxでLVMのサイズを変更した後のパーティションの縮小

RedHat LinuxでLVMのサイズを変更した後のパーティションの縮小

物理ハードウェアに物理Redhat RHEL 6.10システムがあり、それをvmwareに仮想化しようとしています。仮想化用のバックアップにはddを使用します。これで問題は、仮想マシンがまだ146 GBのSASディスクデータスペース(RAW)全体を占めていますが、実際のデータは27 GBのディスクスペースしか占有していないことです。

resize2fsおよびlvreduceコマンドを使用して、/dev/mapper/vg_sb00681-lv_rootおよび/dev/mapper/vg_sb00681-lv_homeパーティションの論理ボリュームのサイズを変更しました(以下の説明を参照)。https://www.linuxtechi.com/reduce-size-lvm-partition/)ルートパーティションは20GB、メインパーティションは5GBです。ご覧のとおり、パーティションが縮小されました。それでも問題ありません。

Filesystem                      Size    Used    Avail   Use%    Mounted on
/dev/mapper/vg_sb00681-lv_root  20G     9.8G    8.9G    53%     /
tmpfs                           931M    0       931M    0%      /dev/shm
/dev/sda1                       477M    105M    347M    24%     /boot
/dev/mapper/vg_sb00681-lv_home  4.8G    1.5G    3.2G    32%     home

GPartedを使用すると、LVMパーティションの空き領域を解放できなくなります。

ここに画像の説明を入力してください。

パーティションを縮小/移動しようとするとGPartedが発生し、エラーが発生します。エラーメッセージ:

shrink file system
    lvm pvresize -v --yes --setphysicalvolumesize 34433024K '/dev/sda2'
        0 physical volume(s) resized or updated / 1 physical volume(s) not resized
        
        Archiving volume group "vg_sb00681" metadata (seqno 32).
        WARNING: /dev/sda2: Pretending size is 68866048 not 285650944 sectors.
        Resizing volume "/dev/sda2" to 68866048 sectors.
        Resizing physical volume /dev/sda2 from 34869 to 8406 extents.
        /dev/sda2: cannot resize to 8406 extents as later ones are allocated.

そこで、物理拡張領域を物理ボリュームの最後に移動するためにpvmoveを使用してみました。物理ボリューム間に空きディスク容量を提供しますが、空き容量を最後まで埋めることはできません。次のステップが何であるか、ディスク容量を節約するために仮想マシンのパーティションを減らすことができるかどうかわかりません。

ubuntu@ubuntu:-$ sudo pvs -v --segments /dev/sda2
PV          VG          Fmt     Attr    PSize   PFree   Start       SSize   LV          Stat    Type    PE Ranges
/dev/sda2   vg_sb00681  lvm2    a--     <136.21g 103.37g    0       2006    lv_swap     0       linear  /dev/sda2:0-2005
/dev/sda2   vg_sb00681  lvm2    a--     <136.21g 103.37g    2006    16812               0       free
/dev/sda2   vg_sb00681  lvm2    a--     <136.21g 103.37g    18818   5120    lv_root     0       linear  /dev/sda2:18818-23937
/dev/sda2   vg_sb00681  lvm2    a--     <136.21g 103.37g    23938   1280    lv_home     0       linear  /dev/sda2:23938-25217
/dev/sda2   vg_sb00681  lvm2    a--     <136.21g 103.37g    25218   9651                0       free

誰かが私にどんなアイデアやアドバイスを与えることができますか?

ベストアンサー1

pvmove範囲を移動する必要があります。ソースとターゲットは同じディスク上にあるため、次の--alloc anywhereオプションが必要です。

pvmove --alloc anywhere /dev/sda2:18818-23937 /dev/sda2:2006-7125  # lv_root
pvmove --alloc anywhere /dev/sda2:23938-25217 /dev/sda2:7126-8405  # lv_home

LVがマウントされていて使用中でもこれを実行できますが、システムディスクI / O負荷が高い場合はこれを実行しないでください。

これらのコマンドの後、最初の空き物理範囲は8406回でなければならず、その物理範囲からPVの終わりまでのすべての項目が空である必要があるため、PVを減らすことができます。

おすすめ記事