この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
EBSとボリュームサイズ
EBSは正式名称を「Amazon Elastic Block Store」と言います。 名前の表すとおり、スケールの伸縮性が特徴の1つでスループット以外にもサイズの変更も容易です。
今回はEBSボリュームのサイズを変更する方法を整理していきます。
作業の整理
今回使用するのはAmazon Linux 2で起動したEC2インスタンスです。
すでにEBSボリュームはアタッチ済みで、XFSでファイルシステムを構築後に/data
に追加のボリュームをマウントしています。
lsblk
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda 202:0 0 8G 0 disk
└─xvda1 202:1 0 8G 0 part /
xvdf 202:80 0 1G 0 disk /data
サイズは1GiBでこれを今回は10GiBまで拡張します。
手順は以下の通りです。
- EBSボリュームの変更
- XFSのファイルシステムの拡張
今回はパーティションも区切っていないので、パーティションの拡張は行いません。
Windowsについては以下の記事が参考になるかと思います。
EBSボリュームの変更
今回はマネージメントコンソールから変更します。
「アクション」より「ボリュームサイズの変更」を選択します。 今回は説明の都合上簡略化しましたが、ファイルシステムの変更に失敗した場合などを考え、予めスナップショットを作成しておくのが良いと思います。
サイズを10GiBに変更します。
変更の確認画面が出てくるので「変更」ボタンを押します。
変更リクエストが成功するとマネージメントコンソール上でもサイズが10GiBになります。
ファイルシステムの拡張
EBSボリュームのサイズ変更が成功したみたいなので、EC2側からも確認します。
変更後の確認
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda 202:0 0 8G 0 disk
└─xvda1 202:1 0 8G 0 part /
xvdf 202:80 0 10G 0 disk /data
$ df -hT
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 356K 483M 1% /run
tmpfs tmpfs 483M 0 483M 0% /sys/fs/cgroup
/dev/xvda1 xfs 8.0G 1.6G 6.5G 20% /
/dev/xvdf xfs 1014M 40M 975M 4% /data
「/dev/xvdf」のサイズが10GiBに変わっていました。
ファイルシステムの拡張を行います。
今回はXFSを使用しているのでxfs_growfs
を使用します。
EXT4ならresize2fs
でリサイズできます。
ファイルシステムの拡張
$ sudo xfs_growfs -d /data
meta-data=/dev/xvdf isize=512 agcount=4, agsize=65536 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=1, rmapbt=0
= reflink=1 bigtime=0 inobtcount=0
data = bsize=4096 blocks=262144, 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 262144 to 2621440
ファイルシステムの拡張が完了したので、ファイルシステムのサイズを再確認します。
拡張後の確認
$ df -hT
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 356K 483M 1% /run
tmpfs tmpfs 483M 0 483M 0% /sys/fs/cgroup
/dev/xvda1 xfs 8.0G 1.6G 6.5G 20% /
/dev/xvdf xfs 10G 106M 9.9G 2% /data
無事に拡張成功したみたいです。
付録
拡張ができるということは、逆もできるのか気になったのでボリュームサイズを1GiBに戻そうとしたところ以下のような感じで警告がでて、ボリュームサイズを減らすことはできませんでした。
誤ってボリュームサイズを小さくするとデータの喪失などにつながるので、このほうが安全だと思います。 ボリュームサイズを小さくしたい場合は新しくEBSボリュームを作成し、EC2などでマウントしてファイルをコピーするのがよいと思います。