【ITニュース解説】Resize Disk on VM Proxmox Non-LVM
2025年09月17日に「Dev.to」が公開したITニュース「Resize Disk on VM Proxmox Non-LVM」について初心者にもわかりやすく解説しています。
ITニュース概要
Proxmox VMでLVMではないディスクの容量を増やす方法を解説。GUIでサイズを拡張後も、VM内でパーティションとファイルシステムを広げる手動作業が必要だ。`growpart`でパーティションを、`resize2fs`などでファイルシステムを拡張する手順を紹介する。
ITニュース解説
仮想マシン(VM)のディスク容量は、運用中にデータが増えたり、新しいサービスを導入したりする際に不足することがよくある。このような状況でディスク容量を拡張する方法は、システムエンジニアにとって避けて通れない重要なスキルの一つである。ここでは、Proxmoxという仮想化プラットフォーム上で稼働する仮想マシンのディスクを、特にLVM(Logical Volume Manager)を使用していない環境で拡張する具体的な手順を解説する。
まず、ディスク拡張作業を始める前に、対象となる仮想マシンのパーティションがLVMを使用しているかどうかを確認する必要がある。LVMは、複数の物理ディスクをまとめて論理的なボリュームとして扱うことで、ディスク管理の柔軟性を高める技術である。LVMを使っているかどうかで、ディスク拡張の手順が大きく変わるため、この確認は非常に重要だ。確認方法の一つとして、lsblkコマンドが挙げられる。このコマンドは、システムに接続されているブロックデバイス(ディスクやパーティションなど)の情報をツリー形式で表示する。lsblk -o NAME,FSTYPE,SIZE,MOUNTPOINTという形式で実行すると、デバイス名、ファイルシステムの種類、サイズ、マウントポイントといった詳細な情報が一覧で表示される。この出力結果の中に「LVM2_member」という記述があれば、そのパーティションはLVMによって管理されている。もし「ext4」や「xfs」、「btrfs」といったファイルシステム名が直接表示されている場合は、LVMは使われていないと判断できる。もう一つの確認方法は、pvdisplayコマンドを使用することである。このコマンドは、LVMの物理ボリュームに関する情報を表示する。もしシステムがLVMを使用していれば、物理ボリューム(PV)、ボリュームグループ(VG)、論理ボリューム(LV)といったLVM関連の出力が表示されるが、LVMを使用していなければ何も表示されないか、LVMに関する情報がない旨のメッセージが表示される。この確認によって、今回の解説が対象とする「LVMではない」環境であることを確実に判断できる。
今回のシナリオでは、LVMを使用していない仮想マシンのルートパーティションを300GBから600GBへ拡張するケースを想定する。この作業の最初のステップは、Proxmoxの管理画面(Web UI)を使って、仮想マシンに割り当てられているディスクのサイズを物理的に拡張することである。ProxmoxのGUI上からディスクサイズを600GBに変更する操作は比較的簡単に行える。この操作が完了すると、仮想マシンが認識する「物理的な」ディスクサイズは増える。例えば、仮想マシン内でfdisk -lのようなコマンドを実行すると、ディスクの総容量が600GBになっていることが確認できるだろう。しかし、これだけではまだディスク容量の拡張は完了していない。なぜなら、ディスクの総容量は増えたものの、そのディスク上に存在するパーティションや、そのパーティション上に構築されたファイルシステムのサイズはまだ古い300GBのままだからである。この状態は、新しい土地は購入したものの、その土地の区画分けや建物の基礎がまだ以前の小さいサイズのままで、実際には利用できない状態に例えることができる。したがって、実際に新しい容量を利用するためには、仮想マシン内部でパーティションとファイルシステムを拡張する作業が必要となる。この二段階の作業を適切に行うことで、仮想マシンのダウンタイムを最小限に抑えつつ、ディスク容量を増やすことが可能になる。
具体的な手順としては、まず拡張したいパーティション、通常はOSがインストールされているルートパーティション(/)を特定する。これには再度lsblkコマンドが有用である。lsblkの出力でMOUNTPOINTの欄が/となっている行を見つけ、対応するNAMEの欄に表示されているデバイス名(例:/dev/sda1)を把握する。このデバイス名が、これから操作するターゲットとなる。
次に、パーティション自体のサイズを拡張する。この目的にはgrowpartツールが非常に便利である。growpartは、指定したパーティションを、そのパーティションが属するディスクの利用可能な最大サイズまで拡張する役割を持つ。もしこのツールが仮想マシンにインストールされていない場合は、DebianやUbuntuベースのシステムであればsudo apt install cloud-guest-utils -yというコマンドでインストールできる。インストール後、sudo growpart /dev/sda 1のようにコマンドを実行する。このコマンドの最初の引数/dev/sdaはディスクデバイス全体を指し、2番目の引数1はそのディスク内の1番目のパーティションを意味する。このコマンドを実行することで、/dev/sda1パーティションが、Proxmox GUIで拡張した600GBのディスクの残りの空き領域を使って、最大限まで拡張される。
パーティションのサイズが拡張されたら、最後にそのパーティション上に構築されているファイルシステムのサイズも拡張する必要がある。パーティションが大きくなっても、ファイルシステムがその新しい領域を認識して利用できるようにならなければ、実際のデータ保存領域は増えないままだからである。ファイルシステムの拡張コマンドは、ファイルシステムの種類によって異なる。もしファイルシステムがext4であれば、sudo resize2fs /dev/sda1というコマンドを使用する。このコマンドはext4ファイルシステムを、そのファイルシステムが構築されているパーティションの利用可能な最大サイズまで自動的に拡張する。一方、ファイルシステムがxfsであれば、sudo xfs_growfs /というコマンドを実行する。xfs_growfsは、xfsファイルシステムを、それがマウントされているパーティションのサイズに合わせて拡張する。ここで引数として/を指定しているのは、ルートファイルシステムを拡張したいことを意味している。
これら一連のコマンド実行が完了したら、最後にディスクの容量が正しく拡張されたかを確認する。これにはdf -hコマンドが最適である。df -hは、現在マウントされているファイルシステムのディスク使用状況を人間が読みやすい形式で表示する。このコマンドの出力で、ルートパーティション(/)の容量が300GBから600GBに増えていることを確認できれば、すべての作業は成功である。
まとめると、Proxmox上のLVMではない仮想マシンのディスク容量を拡張するプロセスは、Proxmox GUIでのディスクサイズ変更、仮想マシン内でのパーティション拡張(growpart)、そしてファイルシステム拡張(resize2fsまたはxfs_growfs)という三つの主要なステップから構成される。これらの手順を正しく理解し、順序通りに実行することで、システムの安定性を保ちながら、必要なディスク容量を安全に増やすことが可能となる。この知識は、システムエンジニアとして仮想環境を管理していく上で、非常に実践的で役立つだろう。