tl;dr
EC2 でディスク使用量がパンパンになってきて
ボリュームをオンラインで拡張したくなったときのやりかたメモです。
基本的に公式ガイドに沿えば OK です:
https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/recognize-expanded-volume-linux.html
チェック
df -h
Filesystem Size Used Avail Use% Mounted on
/dev/xvda1 7.7G 6.7G 1.1G 87% /
(※ルート以外省略してます)
ここのルート /
の容量を拡張したいとします。
lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda 202:0 0 8G 0 disk
└─xvda1 202:1 0 8G 0 part /
ボリュームの容量をチェックしておきます。
ボリュームの容量を変更する
コンソールだとボリュームの編集でかんたんに変更できます:
(少しだけ時間かかります。5分くらい?)
パーティションの拡張
で lsblk
でサイズを再度確認してみます:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda 202:0 0 12G 0 disk
└─xvda1 202:1 0 8G 0 part /
ボリューム全体のサイズは拡張されていますが、
ルートのパーティションのサイズは変わってません。
なので growpart
で xvda1
のサイズを拡張します:
sudo growpart /dev/xvda 1
CHANGED: partition=1 start=2048 old: size=16775135 end=16777183 new: size=25163743,end=25165791
CHANGED
とか出たら変わってます。
容量がカツカツのときはこの操作に必要な一時ファイルを/tmp
に作成することもできないので、いくらか空き容量を空けておきます。
ふたたび lsblk
してパーティションが拡張されていれば OK です:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda 202:0 0 12G 0 disk
└─xvda1 202:1 0 12G 0 part /
ファイルシステムの拡張
ここで df -h
をしてみて、まだ容量が変化してないことに気づいたときは:
Filesystem Size Used Avail Use% Mounted on
/dev/xvda1 7.7G 6.7G 1.1G 87% /
ファイルシステムもあわせて拡張する必要があるのでリサイズします (ext4
の例):
sudo resize2fs /dev/xvda1
resize2fs 1.42.13 (17-May-2015)
Filesystem at /dev/xvda1 is mounted on /; on-> line resizing required
old_desc_blocks = 1, new_desc_blocks = 1
The filesystem on /dev/xvda1 is now 3145467 (4k) blocks long.
Filesystem Size Used Avail Use% Mounted on
/dev/xvda1 12G 7.7G 6.0G 56% /
これで OK です。
xfs
とか ext4
以外のファイルシステムの場合は別のコマンドを使用して同様に拡張すればいいです。