Proxmox VEの論理ボリュームサイズを変更する

こんにちは。tukapiyoです。

Proxmox VEはインストール時に大きく3つのLVM論理ボリュームが作成されます。
しかし、これらの論理ボリュームサイズはインストール時に自由に決めることができないため、変更したい場合は後から変更することになります。

特に、ISOファイルなどを保存する領域が割と大きめに取られている印象です。
個人で利用するような環境の場合、どちらかと言えばVM領域を大きくしたいというようなことも多いと思います。
(逆に、大規模な環境を構築する場合は、VM用のストレージを別途設けることが多いでしょうから、そこまで問題にはならないかもしれません。)

ということで、今回は論理ボリュームサイズを変更する方法を紹介したいと思います。

基本情報

Proxmox VEでは、以下の様なパーティション構成が自動的に作成されます。(インストール時にext4を選択した場合)

パーティション タイプ VG LV ファイルシステム Proxmox上の扱い
パーティション1 BIOS boot
パーティション2 EFI System
パーティション3 Linux LVM pve data LVM-Thin(local-lvm)
swap swap
root ext4 ディレクトリ(local)

LVのdata(今後、pve-dataと書きます)は、Proxmox VE上ではlocal-lvmストレージとして見えます。
ディスクイメージ、コンテナの保存領域として使われます。

LVのroot(今後、pve-rootと書きます)は、Proxmox VE上ではlocalストレージとして見えます。
Linuxのルート領域であり、ISOイメージなどの保存領域として使われます。

前提条件

今回やりたい事としては、pve-rootの縮小と、pve-dataの拡張です。
pve-rootの縮小はその上のファイルシステムも縮小する必要がありますが、インストール時にxfsを選択していると縮小できないのでご注意ください。

ファイルシステムの縮小ですが、Linuxのルート領域として使用中のためProxmox VEの起動中には行えません。
そのためGPartedのLive CDで起動して行います(別のLinux Live CDでも問題ないと思います)。
GParted Live CDは以下からダウンロード可能ですので、USBなり、DVDに焼くなり、仮想メディアで使うなりして、これをブートメディアにしておきましょう。

サイズの変更手順

現在の容量の確認

縮小する前に現状を確認しておきましょう。

local(pve-root)

localのストレージは現在36.54GBとなっています。

local-lvm(pve-data)

local-lvmのストレージは現在45.36GBとなっています。

Proxmoxの再起動

この後GParted Live CDを起動することになるので、ブートメディアを接続して起動できる状態にして、Proxmox VEを再起動します。

GParted Live CDの起動

  1. BIOS/UEFIブートのタイミングで、(頑張って)ブートメディアから起動します。
  2. ブートメニューが表示されたら、最初に選ばれている「GParted Live (default settings)」を選択してEnterキーを押下します。
  3. キーマップの設定で、最初に選ばれている「Don’t touch keymap」を選択してEnterキーを押下します。
  4. 言語の設定で、日本語に設定するので、「15」と入力しEnterキーを押下します。
  5. 起動モードは、デフォルトのままとするので、何も入力せずEnterキーを押下します。
  6. GParted Live CDのGUIが起動します。
    最初に起動しているGPartedは使わないので、ウィンドウ右上の黒いボタンをクリックして閉じます。
  7. デスクトップにある「Terminal」をダブルクリックして、端末を起動します。

LVのサイズ変更

以降の操作は端末上で行います。

状況確認

LV(論理ボリューム)の状況をlvdisplayコマンドで確認します。

$ sudo su -
# lvdisplay
  --- Logical volume ---
  LV Name                data
  VG Name                pve
(..snip..)
  LV Status              NOT available
  LV Size                <42.25 GiB
(..snip..)

  --- Logical volume ---
  LV Path                /dev/pve/swap
  LV Name                swap
  VG Name                pve
(..snip..)
  LV Status              available
  # open                 0
  LV Size                8.00 GiB
(..snip..)

  --- Logical volume ---
  LV Path                /dev/pve/root
  LV Name                root
  VG Name                pve
(..snip..)
  LV Status              available
  # open                 0
  LV Size                34.87 GiB
(..snip..)

論理ボリュームが3つ作成されていることが分かります。
GBとGiBの単位違いがあって多少数字が異なりますが、容量も同じになっていますね。

LV(pve-root)の容量縮小

まずpve-rootの容量を縮小します。
今回は25GiBまで縮小します。

手順としては、resize2fsコマンドでファイルシステムの縮小の後、lvreduceコマンドでLVの縮小となります。
なお、ファイルシステム縮小前にはfsckを先に実行する必要があるようです。

# e2fsck -f /dev/mapper/pve-root
(..snip..)
# resize2fs /dev/mapper/pve-root 25G
resize2fs 1.47.2 (1-Jan-2025)
Resizing the filesystem on /dev/mapper/pve-root to 6553600 (4k) blocks.
The filesystem on /dev/mapper/pve-root is now 6553600 (4k) blocks long.

# lvreduce --size 25G /dev/mapper/pve-root
  File system ext4 found on pve/root.
  File system size (25.00 GiB) is equal to the requested size (25.00 GiB).
  File system reduce is not needed, skipping.
  Size of logical volume pve/root changed from 34.87 GiB (8927 extents) to 25.00 GiB (6400 extents).
  Logical volume pve/root successfully resized.

最終的にsuccessfully resizedと表示されれば成功です。

LV(pve-data)のアクティブ化

pve-dataはLive CDで起動した際は非アクティブとなっていて操作出来ないので、これをアクティブにします。
上で実行したlvdisplayコマンドでLV StatusNOT availableと表示されていたのが、非アクティブを示しています。

# lvchange -ay pve/data
  /usr/sbin/thin_check: execvp failed: No such file or directory
  WARNING: Check is skipped, please install recommended missing binary /usr/sbin/thin_check!
# lvdisplay
  --- Logical volume ---
  LV Name                data
  VG Name                pve
(..snip..)
  LV Status              available
(..snip..)

無事LV Statusavailableと変わりました。

LV(pve-data)の容量拡大

pve-dataの容量を空き容量いっぱいまで拡大します。
pve-dataにはファイルシステムがないので、lvextendコマンドでLVの拡大を行うだけです。

# lvextend -l +100%FREE /dev/mapper/pve-data
  Size of logical volume pve/data_tdata changed from <42.25 GiB (10815 extents) to <64.50 GiB (16511 extents).
  Logical volume pve/data successfully resized.

最終的にsuccessfully resizedと表示されれば成功です。

GParted Live CDの再起動

ここまで来れば後は再起動して、Proxmox VEを起動します。
再起動前にGParted Live CDのブータブルメディアは取り除いておきましょう。

再起動は、端末でそのままrebootコマンドを実行します。

# reboot

容量変更結果の確認

Proxmox VEが起動してきたら、容量が変わったことを確認してみましょう。

local(pve-root)

localのストレージは36.54GBから26.11GBに縮小されました。

local-lvm(pve-data)

local-lvmのストレージは45.36GBから69.25GBに拡張されました。

まとめ

論理ボリュームサイズの変更は、Live CDを使って実施する必要があることが分かりました。
インストール時にパーティションをいじれないので、サイズを変更したい場合は、Proxmox VEを導入直後に実施するのが良いでしょう。

おすすめ

コメントを残す