はじめに
前回のディスクフルでログインできなくなった際の対処を行った後など、そもそものサイズを増やすためEBSボリュームを拡張することもあるかと思うので、拡張方法を紹介しようと思います。
EBSボリュームの拡張
EC2インスタンスのボリュームを拡張する場合、使用しているファイルシステムによりますが、ext4
やxfs
ファイルシステムの場合は無停止で拡張できるようになっているため、急遽容量を追加したい場合でもすぐに対処できるのが利点です。
尚、今回はxfs
のファイルシステムを使用している場合の手順となりますので、他のファイルシステムを使用している場合はファイルシステムに沿った方法を実施してください。
EBSボリュームサイズの変更
EBSボリュームの拡張を行うために、「Elastic Block Store」→「ボリューム」で該当のEBSボリュームを選択→「アクション」から「ボリュームの変更」を選択します。
「サイズ(GiB)」のサイズを変更して「変更」を選択することでボリュームサイズを変更します。
パーティションの拡張
上記のボリューム変更を行っただけでは、ファイルシステムとして認識されているサイズは変わらないため、拡張操作を行い、領域を拡張します。
lsblk
コマンドで物理デバイスのサイズとパーティションサイズを確認すると、物理デバイスのサイズとしては20GBとして認識されておりますが、デバイスの中で区切られたパーティションのサイズは8GBとなっていることが確認できると思います。
$ sudo lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda 202:0 0 20G 0 disk
└─xvda1 202:1 0 8G 0 part /
パーティションのサイズを拡張して全領域使用するため、growpart
コマンドでパーティションのサイズを拡張します。
尚、デバイス名と末尾の「1」の間にはスペースが必要となり、末尾の「1」はパーティション番号を指定する必要があります。
パーティション番号はlsblk
で表示されたパーティション番号を指定してください。
$ sudo growpart /dev/xvda 1
CHANGED: partition=1 start=4096 old: size=16773087 end=16777183 new: size=41938911 end=41943007
成功すれば、lsblk
コマンドの結果が以下のようになることが確認できるかと思います。
$ sudo lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda 202:0 0 20G 0 disk
└─xvda1 202:1 0 20G 0 part /
ファイルシステムの拡張
パーティションサイズを変更しただけでは以下のようにファイルシステムとして認識しているサイズは変わりません。
パーティションサイズを変更した時点でdf
コマンドを実行すると/dev/xvda1
のサイズが8.0Gのままであることが確認できるかと思います。
$ df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 474M 0 474M 0% /dev
tmpfs 483M 0 483M 0% /dev/shm
tmpfs 483M 452K 482M 1% /run
tmpfs 483M 0 483M 0% /sys/fs/cgroup
/dev/xvda1 8.0G 1.6G 6.5G 20% /
tmpfs 97M 0 97M 0% /run/user/1000
拡張したパーティションをxfs
で使用できるようにするため、xfs_growfs
コマンドを実行し、ファイルシステム領域を拡張します。
-d
で拡張したいマウントポイントを指定することで拡張できます。
$ sudo xfs_growfs -d /
meta-data=/dev/xvda1 isize=512 agcount=4, agsize=524159 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=0, rmapbt=0
= reflink=0 bigtime=0 inobtcount=0
data = bsize=4096 blocks=2096635, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0, ftype=1
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 2096635 to 5242363
ファイルシステム拡張後、再度df
コマンドを実行すると、/dev/xvda1
のサイズが20Gに拡張されたことが確認できるかと思います。
$ df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 474M 0 474M 0% /dev
tmpfs 483M 0 483M 0% /dev/shm
tmpfs 483M 452K 482M 1% /run
tmpfs 483M 0 483M 0% /sys/fs/cgroup
/dev/xvda1 20G 1.6G 19G 8% /
tmpfs 97M 0 97M 0% /run/user/1000
おわりに
頻繁に発生する問題では無いですが、たまにしかやらないこともあり毎回調べて行っていたので、次からは本記事を見返してやろうと思います。