【AWS】EBSルートボリュームの拡張方法とつまづいた点を解説

AWS全般

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の設計や構築などを代行いたします
タイトルとURLをコピーしました