年に1回くらい作業中にストレージが足りなくなってその都度手順を確認してるので備忘録。
基本的にAWSのドキュメント通りの手順で何も問題なくリブートも不要でサイズ拡張できる。
before
20GBの/パーティションを増やす、というシナリオ。
dfとlsblkの出力は以下の通り。
[ec2-user@ip-10-1-2-125 ~]$ df -h Filesystem Size Used Avail Use% Mounted on devtmpfs 4.0M 0 4.0M 0% /dev tmpfs 3.8G 84K 3.8G 1% /dev/shm tmpfs 1.6G 22M 1.5G 2% /run /dev/xvda4 19G 11G 8.6G 55% / /dev/xvda3 960M 273M 688M 29% /boot /dev/xvda2 200M 7.1M 193M 4% /boot/efi tmpfs 769M 20K 769M 1% /run/user/1000 [ec2-user@ip-10-1-2-125 ~]$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS xvda 202:0 0 20G 0 disk ├─xvda1 202:1 0 1M 0 part ├─xvda2 202:2 0 200M 0 part /boot/efi ├─xvda3 202:3 0 1G 0 part /boot └─xvda4 202:4 0 18.8G 0 part /
ブロックデバイスを拡張
まずはインスタンスの画面で対象ストレージを確認

ここからボリュームの画面へ遷移し、右クリックメニューで「ボリュームの変更」を選択、「サイズ(GiB)」に変更後のストレージサイズを入力して「変更」押下する。

ここでは30を入力。

しばらく待てばweb画面で30に更新されたことを確認できる。

パーティションを拡張
この時点で、dfで確認できるパーティションサイズには変化が無いが、lsblkの出力でデバイスは30GBに拡張されていることを確認できる。
(以下のxvdaの行)
[ec2-user@ip-10-1-2-125 ~]$ df -h Filesystem Size Used Avail Use% Mounted on devtmpfs 4.0M 0 4.0M 0% /dev tmpfs 3.8G 84K 3.8G 1% /dev/shm tmpfs 1.6G 22M 1.5G 2% /run /dev/xvda4 19G 11G 8.6G 55% / /dev/xvda3 960M 273M 688M 29% /boot /dev/xvda2 200M 7.1M 193M 4% /boot/efi tmpfs 769M 20K 769M 1% /run/user/1000 [ec2-user@ip-10-1-2-125 ~]$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS xvda 202:0 0 30G 0 disk ├─xvda1 202:1 0 1M 0 part ├─xvda2 202:2 0 200M 0 part /boot/efi ├─xvda3 202:3 0 1G 0 part /boot └─xvda4 202:4 0 18.8G 0 part /
ここで/dev/xvda4のパーティションを拡張する。
引数はパーティション名でなくデバイス名と、パーティション番号(ここでは4)を指定。
[ec2-user@ip-10-1-2-125 ~]$ sudo growpart /dev/xvda 4 CHANGED: partition=4 start=2510848 old: size=39432159 end=41943006 new: size=60403679 end=62914526
これでパーティションが拡張され、xvda4(/)が18.8Gから28.8Gに増加する。
[ec2-user@ip-10-1-2-125 ~]$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS xvda 202:0 0 30G 0 disk ├─xvda1 202:1 0 1M 0 part ├─xvda2 202:2 0 200M 0 part /boot/efi ├─xvda3 202:3 0 1G 0 part /boot └─xvda4 202:4 0 28.8G 0 part / [ec2-user@ip-10-1-2-125 ~]$ df -h Filesystem Size Used Avail Use% Mounted on devtmpfs 4.0M 0 4.0M 0% /dev tmpfs 3.8G 84K 3.8G 1% /dev/shm tmpfs 1.6G 22M 1.5G 2% /run /dev/xvda4 19G 11G 8.6G 55% / /dev/xvda3 960M 273M 688M 29% /boot /dev/xvda2 200M 7.1M 193M 4% /boot/efi tmpfs 769M 20K 769M 1% /run/user/1000
ファイルシステムの拡張
まだdfで確認できるファイルシステムのサイズがそのままなのでこれを拡張する。
[ec2-user@ip-10-1-2-125 ~]$ df -hT Filesystem Type Size Used Avail Use% Mounted on devtmpfs devtmpfs 4.0M 0 4.0M 0% /dev tmpfs tmpfs 3.8G 84K 3.8G 1% /dev/shm tmpfs tmpfs 1.6G 22M 1.5G 2% /run /dev/xvda4 xfs 19G 11G 8.6G 55% / /dev/xvda3 xfs 960M 273M 688M 29% /boot /dev/xvda2 vfat 200M 7.1M 193M 4% /boot/efi tmpfs tmpfs 769M 20K 769M 1% /run/user/1000
ファイルシステムがxfsなので、xfs_growfs -dでサイズを拡大する。
サイズを特に指定しない場合は最大サイズまで拡張される。
[ec2-user@ip-10-1-2-125 ~]$ sudo xfs_growfs -d /
meta-data=/dev/xvda4 isize=512 agcount=9, agsize=576895 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=1, rmapbt=0
= reflink=1 bigtime=1 inobtcount=1 nrext64=0
data = bsize=4096 blocks=4929019, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0, ftype=1
log =internal log bsize=4096 blocks=16384, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 4929019 to 7550459
ファイルシステムがext4の場合はresize2fsを使う
# resize2fs /dev/xvda1
after
[ec2-user@ip-10-1-2-125 ~]$ df -hT Filesystem Type Size Used Avail Use% Mounted on devtmpfs devtmpfs 4.0M 0 4.0M 0% /dev tmpfs tmpfs 3.8G 84K 3.8G 1% /dev/shm tmpfs tmpfs 1.6G 22M 1.5G 2% /run /dev/xvda4 xfs 29G 11G 19G 36% / /dev/xvda3 xfs 960M 273M 688M 29% /boot /dev/xvda2 vfat 200M 7.1M 193M 4% /boot/efi tmpfs tmpfs 769M 20K 769M 1% /run/user/1000
拡張されました。