注目の記事

【遂に来た!】EBS でボリュームサイズを変更できるようになりました(ボリュームタイプ変更も)

2017.02.14

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは、藤本です。

待ちに待ったアップデートです。EBS のボリュームサイズ、ボリュームタイプを変更できるようになりました。

概要

今まで運用中に EBS のボリュームが足りなくなった場合、
一度スナップショットを作成して、
新規ボリューム作成して(この時にボリュームサイズ増加)、
ディスクを差し替える必要がありました。

これにより、インスタンスを停止する必要が発生したり、出来るだけダウンタイムを短くしたくてノーリブートでスナップショットを取ると整合性が担保されない、スナップショット取得から切り替えまでのデータの欠損が発生するなど、多くの問題がありました。

それが今回のアップデートにより、インスタンスの停止する必要がなく、データの欠損が発生することなく、ボリュームサイズを増加させることが可能となりました。

また同時にボリュームタイプを変更することも可能となりました。GP2、IO1、SC1、ST1 どれからどれへも変更することが可能となりました。

やってみた

今回は起動中の Amazon Linux で 5GB (GP2) の EBS を 10GB (IO1) に変更します。

# cat /etc/os-release
NAME="Amazon Linux AMI"
VERSION="2016.03"
ID="amzn"
ID_LIKE="rhel fedora"
VERSION_ID="2016.03"
PRETTY_NAME="Amazon Linux AMI 2016.03"
ANSI_COLOR="0;33"
CPE_NAME="cpe:/o:amazon:linux:2016.03:ga"
HOME_URL="http://aws.amazon.com/amazon-linux-ami/"

# 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   5G  0 disk

# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/xvda1      7.8G  1.4G  6.4G  18% /
devtmpfs        236M   60K  236M   1% /dev
tmpfs           246M     0  246M   0% /dev/shm
/dev/xvdf       4.8G   10M  4.6G   1% /data

ボリュームサイズを拡張する

EBS の Actions に Modify Volume が追加されています。対象の EBS を選択し、Modify Volume を選択します。

Volume Type をプルダウンから変更でき、Size をテキストボックスで書き換えることが可能となっています。Volume Type をIO1に選択すると、Iops もテキストボックスになり、書き換えることができるようになりました。

EC2_Management_Console 6

設定を変更し、Modify を選択します。

EC2_Management_Console 7

確認のポップアップが表示されます。注意書きに記載されていますが、変更時はパフォーマンスに影響があります。オンラインで実行できますが、ディスクI/Oが低い時間帯で実施しましょう。また、今までと同じで、ボリュームサイズ拡張後、OS 上のサイズ変更も忘れずに実施しましょう。 「Yes」をクリックし、ボリュームサイズ拡張が開始します。

EC2_Management_Console 8

State にパーセンテージで進捗状況が表示されます。0%、2%、3% で次見たら Complete だったので、完了時間を推測するのにはあまり当てにならないのかもしれません。

EC2_Management_Console_9

今回は実データ量が少ないせいか、4, 5分ほどで完了しました。早い!

EC2_Management_Console 10

動作確認

OS から確認します。

# 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

ディスクサイズが拡張した 10GB で認識されています!!

OS での拡張

続いて、忘れずに OS からファイルサイズを拡張しましょう。今回はパーティションを切り出していないディスクですので、ファイルシステムの拡張だけすれば問題ありません。パーティションを切り出している場合はこちらの手順でパーティションを拡張しましょう。

# resize2fs /dev/xvdf
resize2fs 1.42.12 (29-Aug-2014)
Filesystem at /dev/xvdf is mounted on /data; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 1
The filesystem on /dev/xvdf is now 2621440 (4k) blocks long.

# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/xvda1      7.8G  1.4G  6.4G  18% /
devtmpfs        236M   60K  236M   1% /dev
tmpfs           246M     0  246M   0% /dev/shm
/dev/xvdf       9.8G  1.1G  8.3G  11% /data

ファイルシステムのサイズも拡張されました!!

まとめ

遂に待ち望んでいた EBS のボリュームサイズ変更機能がリリースされました。VMware から仮想化に入った私としては何でないんだろう、と思っていたのですが、その分、ストレージ担当のチームがキャパシティプランニングに苦しんでいた覚えがあります。AWS の非常に大きなプラットフォームでどのように実現したか想像もつきませんが、嬉しい機能追加です!