CH-J Server ManagerSSH によるサーバー管理
メニュー
すべてのガイドと記事 →

データを失わずにLinuxサーバーのディスクを拡張する方法

仮想ディスクを拡張した後、パーティション、LVM、ext4またはXFSファイルシステムを正しい順序で拡張します。

変更前の準備

まず、バックアップまたは仮想マシンのスナップショットを作成し、正常に使えることを確認してください。拡張は日常的な作業ですが、デバイス名を間違えるとデータを破損するおそれがあります。また、パーティションテーブルのバックアップはデータのバックアップにはなりません。次に、ハイパーバイザーまたはホスティング事業者側でディスクを拡張します。システムが使えるのは、ディスクにすでに存在する容量だけだからです。

ディスクの構成を調べる

各層は、ディスク、パーティション、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サーバーは検出され、非対応として処理を拒否されます。

詳しいドキュメント

man: resize2fs →

man: xfs_growfs →

man: lvextend →

生体認証によるロック解除とセキュリティ →