空き容量のあるLVM物理ボリュームを縮小する方法

空き容量のあるLVM物理ボリュームを縮小する方法

LVM物理ボリュームを縮小し、この空き容量を使用して他のオペレーティングシステム用の別のパーティションを作成したいと思います。

以下を使用して、ルートボリュームとプライマリ論理ボリュームのサイズを変更し、lvresize今すぐ使用しようとしましたpvresizeが、次のエラーが発生します。

/dev/sda2: cannot resize to xxxxx extents as later ones are allocated.

このPVの空き容量は2つの論理ボリュームに分かれているため、パーティションを縮小できないようです。

出力はpvs -v --segments /dev/sda2次のとおりです

PV         VG        Fmt  Attr PSize   PFree   Start SSize LV      Start Type   PE Ranges             
  /dev/sda2  volgroup0 lvm2 a--  446.64g 148.00g     0  7680 lv_root     0 linear /dev/sda2:0-7679      
  /dev/sda2  volgroup0 lvm2 a--  446.64g 148.00g  7680 51712 lv_home     0 linear /dev/sda2:7680-59391  
  /dev/sda2  volgroup0 lvm2 a--  446.64g 148.00g 59392 37888             0 free                         
  /dev/sda2  volgroup0 lvm2 a--  446.64g 148.00g 97280 17060 lv_root  7680 linear /dev/sda2:97280-114339

空き領域はセグメント59392と97279の間に割り当てられる。空き領域を別のセグメントに移動することが可能なことはわかりますがpmove、正直にどのように使用するのか分からず、データが破損するかと心配です。

誰でもこの問題を解決するのに役立ちますか?ありがとうございます!

答え1

pvmove は空き領域ではなくセグメントを移動します。 17061 セグメントであるセグメント 59392 から開始するには、この範囲 /dev/sda2:97280-114339 を移動する必要があります。

~によるとこれあなたは:

# pvmove --alloc anywhere /dev/sda2:97280-114339 /dev/sda2:59392-76453

その後、PVのサイズを変更し、パーティションを分割し、空き容量をお楽しみください。 LVMが自分の足に銃を撃つのを避けようとしている間、これは危険な仕事です。データが失われると、問題が発生する可能性があります。破損する可能性が高いので、まずバックアップしてください。。あるいは、Linux VM を作成し、確信が持てるまでこのコマンドをテストすることもできます。

関連情報