AWSのEC2サーバで使用しているEBSのルートボリュームを拡張する機会がありましたので、拡張手順や、つまづいた点を解説したいと思います。
EBSルートボリュームの拡張方法
前提
・OS:Amazon Linux2
・ファイルシステム:xfs
AWS側の操作手順
1.AWSマネジメントコンソールを開きます。
2.EC2のコンソールを開きます。
3.左ペインから「ボリューム」を開きます。
4.容量を増加したいボリュームのチェックボックスにチェックを入れます。
5.画面右上のアクションから「ボリュームの変更」をクリックします。
6.サイズ (GiB)に任意の数字を入力します。
7.「変更」ボタンをクリックします。
8.ボリュームの一覧画面で、対象のボリュームを選択します。
9.サイズの値が変更後の容量になっていることを確認します。
OS側の操作手順
EC2サーバにログインします。
下記コマンドで現在のディスク容量を確認します。
$ df -hT
/dev/xvda1 xfs 8.0G 8.0G 30K 100% /
lsblk コマンドで、ボリュームに拡張が必要なパーティションがあるかどうかを確認します。
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda 202:0 0 30G 0 disk
└─xvda1 202:1 0 8G 0 part /
下記コマンドでパーティションを拡張します。
$ growpart /dev/xvda 1
CHANGED: partition=1 start=4096 old: size=16773087 end=16777183 new: size=104853471,end=104857567
lsblkコマンドでパーティションが拡張されたことを確認します。
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda 202:0 0 50G 0 disk
└─xvda1 202:1 0 50G 0 part /
xfs_growfsコマンドにてファイルシステムの拡張を行います。
$ xfs_growfs /dev/xvda1
meta-data=/dev/xvda1 isize=512 agcount=4, agsize=524159 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=1 spinodes=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 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 13106683
dfコマンドでファイルシステムが拡張されたことを確認する。
$ df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/xvda1 52416492 8420532 43995960 17% /
つまづいた点
・パーティションの拡張
サーバのディスク容量が少なすぎると、下記のようにgrowpartコマンド失敗します。エラー発生時はディスクの空き容量が30Kでした。50Mの容量を確保した後にgrowpartコマンドを再実行したら成功しました。
$ growpart /dev/xvda 1
mkdir: cannot create directory ‘/tmp/growpart.25729’: No space left on device
FAILED: failed to make temp dir
・ファイルシステムの拡張
xfsフォーマットでは、resize2fsで拡張しようとすると、下記のようなエラーになります。xfs_growfsコマンドで拡張を実行する必要があります。
Couldn't find valid filesystem superblock.
まとめ
今回は、EBSボリュームの拡張方法について解説しました。AWSマネジメントコンソール側の操作は簡単ですが、サーバ側の操作は慣れていないと難しく感じる方もいるのではないでしょうか。クラウド部では、ココナラにてAWS設定代行を承っております。EBSボリュームの拡張も対応可能ですので、うまくいかないことがありましたらご相談頂ければと思います。
初心者歓迎、認定者がAWS設定を代行いたします 現役AWSエンジニアがAWSの設計や構築などを代行いたします