アジェンダ
1 はじめに
2 環境説明及び前提条件
3 事前確認
4 EBSボリュームサイズ拡張
5 パーティション拡張
6 ファイルシステム拡張
7 まとめ
1 はじめに
こんにちは、NTTデータ先端技術の陰です。
今回は、Amazon Web Services(AWS)のElastic Compute Cloud(EC2)インスタンスにアタッチされているElastic Block Store(EBS)ボリュームのサイズを拡張する方法について紹介します。
2 環境情報及び前提条件
今回、作業を実施する環境情報及び前提条件は以下の通りです。
環境情報
OSイメージ:Amazon Linux 2 Kernel 5.10 AMI 2.0.20220912.1 x86_64 HVM gp2
リージョン:ap-northeast-1(アジアパシフィック (東京))
前提条件
①シェル・ターミナル・コンソールがセットアップされていること
②AWSマネジメントコンソールにアクセスでき、作業に必要な権限が付与されたIdentity and Access Management(IAM)ユーザを持っていること
③EC2インスタンスが作成されていること
④拡張対象のEBSボリュームがEC2インスタンスにアタッチされていること
3 事前確認
EBSボリュームサイズを拡張する前にEBSボリュームの状態を確認します。
AWSマネジメントコンソールから確認
AWSマネジメントコンソール上部の検索窓から「EC2」を検索し選択します。その後、左ペインの「ELASTIC BLOCK STORE > ボリューム」をクリックし、移動した「ボリューム」ページから今回拡張対象のEBSボリュームがインスタンスにアタッチされていること、拡張前のサイズが1GiBであることを確認します。(拡張前のボリュームサイズは各環境ごとに異なりますので、自環境のボリュームサイズをご確認ください)
ターミナル・コンソールから確認
OSサーバ上でも拡張対象のEBSボリュームがインスタンスにアタッチされていること、拡張前のサイズが1GiBであることを確認します。(拡張前のボリュームサイズは各環境ごとに異なりますので、自環境のボリュームサイズをご確認ください)
$ lsblk -o +SERIAL
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT SERIAL
xvda 202:0 0 8G 0 disk
└xvda1 202:1 0 8G 0 part /
xvdf 202:80 0 1G 0 disk ##拡張対象のデバイス
└xvdf1 202:81 0 1023M 0 part /ebs_data ##拡張対象のパーティション
$ df -Th
Filesystem Type Size Used Avail Use% Mounted on
devtmpfs devtmpfs 474M 0 474M 0% /dev
tmpfs tmpfs 483M 0 483M 0% /dev/shm
tmpfs tmpfs 483M 472K 483M 1% /run
tmpfs tmpfs 483M 0 483M 0% /sys/fs/cgroup
/dev/xvda1 xfs 8.0G 1.6G 6.5G 20% /
tmpfs tmpfs 97M 0 97M 0% /run/user/1000
tmpfs tmpfs 97M 0 97M 0% /run/user/0
/dev/xvdf1 xfs 1020M 34M 987M 4% /ebs_data ##拡張対象のファイルシステム
4 EBSボリュームサイズ拡張
「ELASTIC BLOCK STORE > ボリューム」をクリックし、「ボリューム」ページに移動します。その後、拡張対象のEBSボリュームを選択し、「アクション」プルダウンから「ボリュームの変更」をクリックします。
「ボリュームの変更」ページから拡張したいボリュームサイズ(2GiB)をサイズ欄に入力し、「変更」をクリックしてボリュームサイズを変更します。(ここでは拡張したいボリュームサイズを2GiBにしておりますが、各自適切なボリュームサイズを設定してください)
「ボリューム」ページから拡張対象のボリュームを選択し、ボリュームのサイズが変更されていること、ボリューム状態が「使用中」であることを確認します。
AWSマネジメントコンソール上でEBSボリュームサイズを拡張した後、OSサーバ上でも変更内容が反映されているか確認します。
$ lsblk -o +SERIAL
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT SERIAL
xvda 202:0 0 8G 0 disk
└xvda1 202:1 0 8G 0 part /
xvdf 202:80 0 2G 0 disk ##拡張対象のデバイス
└xvdf1 202:81 0 1023M 0 part /ebs_data ##拡張対象のパーティション
$ df -Th
Filesystem Type Size Used Avail Use% Mounted on
devtmpfs devtmpfs 474M 0 474M 0% /dev
tmpfs tmpfs 483M 0 483M 0% /dev/shm
tmpfs tmpfs 483M 472K 483M 1% /run
tmpfs tmpfs 483M 0 483M 0% /sys/fs/cgroup
/dev/xvda1 xfs 8.0G 1.6G 6.5G 20% /
tmpfs tmpfs 97M 0 97M 0% /run/user/1000
tmpfs tmpfs 97M 0 97M 0% /run/user/0
/dev/xvdf1 xfs 1020M 34M 987M 4% /ebs_data ##拡張対象のファイルシステム
AWSマネジメントコンソール上でEBSボリュームサイズを拡張してもOSサーバ上のパーティション(xvdf1)や、ファイルシステム(/dev/xvdf1)のサイズは拡張されてないことがわかります。
拡張したストレージ容量をOSサーバ上でも利用するためには、固有のコマンドを実行し、サイズを拡張する必要があります。今回作業を実施している環境はOSイメージがAmazon Linuxのため、Linuxコマンドを実行し、サイズを拡張します。
※環境情報の詳細は2 環境情報及び前提条件を参考にしてください
5 パーティション拡張
ボリュームのパーティションを拡張するために対象のパーティション名(xvdf1)を指定し、growpartコマンドを実行します。
$ growpart /dev/xvdf 1
CHANGED: partition=1 start=2048 old: size=2095104 end=2097152 new: size=4192223 end=4194271
ボリュームのパーティションサイズがAWSマネジメントコンソール上で拡張したボリュームサイズ(2GiB)に拡張されていることを確認します。
$ lsblk -o +SERIAL
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT SERIAL
xvda 202:0 0 8G 0 disk
└xvda1 202:1 0 8G 0 part /
xvdf 202:80 0 2G 0 disk ##拡張対象のデバイス
└xvdf1 202:81 0 2G 0 part /ebs_data ##拡張対象のパーティション
6 ファイルシステム拡張
ファイルシステムを拡張するために対象のファイルシステム名(/dev/xvdf1)を指定し、xfs_growfsコマンドを実行します。
ファイルシステムのタイプによって拡張コマンドが異なりますので、拡張前にファイルシステムのタイプをご確認ください。
今回拡張対象のファイルシステムのタイプはxfsのため、xfs_growfsコマンドで実行します。
タイプ | コマンド |
---|---|
xfs | xfs_growfs |
ext2・ext3・ext4 | resize2fs |
$ xfs_growfs -d /dev/xvdf1
meta-data=/dev/xvdf1 isize=512 agcount=4, agsize=65472 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=1 spinodes=0
data = bsize=4096 blocks=261888, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal bsize=4096 blocks=855, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 261888 to 524027
ファイルシステムのサイズがAWSマネジメントコンソール上で拡張したサイズ(2GiB)に拡張されていることを確認します。
$ df -Th
Filesystem Type Size Used Avail Use% Mounted on
devtmpfs devtmpfs 474M 0 474M 0% /dev
tmpfs tmpfs 483M 0 483M 0% /dev/shm
tmpfs tmpfs 483M 476K 483M 1% /run
tmpfs tmpfs 483M 0 483M 0% /sys/fs/cgroup
/dev/xvda1 xfs 8.0G 1.6G 6.5G 20% /
tmpfs tmpfs 97M 0 97M 0% /run/user/1000
tmpfs tmpfs 97M 0 97M 0% /run/user/0
/dev/xvdf1 xfs 2.0G 35M 2.0G 2% /ebs_data ##拡張対象のファイルシステム
これでEBSボリュームサイズの拡張が完了し、OSサーバ上で使用できるようになります。
7 まとめ
今回は、EC2インスタンスにアタッチされているEBSボリュームサイズを拡張する方法について紹介しました。
AWSマネジメントコンソール上でEBSボリュームサイズを拡張した場合、追加のストレージ容量を利用するためにはOSサーバ上でボリュームのパーティションとファイルシステムのサイズも一緒に拡張する必要があることに注意してください。