変更前の準備
まず、バックアップまたは仮想マシンのスナップショットを作成し、正常に使えることを確認してください。拡張は日常的な作業ですが、デバイス名を間違えるとデータを破損するおそれがあります。また、パーティションテーブルのバックアップはデータのバックアップにはなりません。次に、ハイパーバイザーまたはホスティング事業者側でディスクを拡張します。システムが使えるのは、ディスクにすでに存在する容量だけだからです。
ディスクの構成を調べる
各層は、ディスク、パーティション、LVM(使用している場合)、ファイルシステムの順に、下から個別に拡張する必要があります。これらのコマンドで、各層、ファイルシステムの種類、各領域のマウント先を確認できます。以下の例のデバイス名は説明用です。実際のサーバーのデバイス名を使ってください。
lsblk -f
df -hT
sudo pvs; sudo vgs; sudo lvsパーティションとext4またはXFS
UbuntuとDebianではcloud-guest-utilsパッケージに含まれるgrowpartで、パーティションをその後ろの空き領域まで拡張できます。ディスクとパーティション番号は別々の引数で指定する点に注意してください。次にファイルシステムを拡張します。ext4用のresize2fsにはデバイスを、xfs_growfsにはマウントポイントを指定します。どちらもファイルシステムをマウントしたまま実行できます。
sudo growpart /dev/sda 2
# ext4
sudo resize2fs /dev/sda2
# XFS
sudo xfs_growfs /LVMを使用している場合
パーティションがLVMの物理ボリュームを格納している場合は、LVMに新しいサイズを認識させ、論理ボリュームを拡張します。-rオプションを付けると、その上のファイルシステムも拡張されるため、別途サイズ変更コマンドを実行する必要はありません。
sudo growpart /dev/sda 3
sudo pvresize /dev/sda3
sudo lvextend -r -l +100%FREE /dev/ubuntu-vg/ubuntu-lv結果を確認し、制限を把握する
df -hTをもう一度実行し、新しいサイズを確認してください。growpartが使えるのはパーティションの直後にある空き領域だけなので、間にスワップや別のパーティションがある場合は先に対処する必要があります。XFSは縮小できません。他のファイルシステムでも縮小は拡張よりはるかに危険なため、拡張する容量は慎重に決めてください。
CH-J Server ManagerのDisk Manager
Linuxサーバー向けのDisk Managerは、パーティション、ファイルシステム、LVMとLUKSの各層を含むディスクマップを表示し、ディスク拡張後に自動拡張を提案できます。変更はキューに入り、計画として確認できます。実行前にはアプリケーションがサーバーの状態を再取得し、状態が一致しなくなっていれば停止します。変更前にパーティションテーブルのメタデータを保存しますが、データのバックアップの代わりにはなりません。Windowsサーバーは検出され、非対応として処理を拒否されます。