結論を3行で
- まず【遂に来た!】EBS でボリュームサイズを変更できるようになりました(ボリュームタイプ変更も) | Developers.IO の
Modify Volume
をやる - resize2fsが実行できなくてハマりそうになった場合、AmazonLinuxはだいたいの場合boot時にresize2fsされるので、rebootすれば解決する
- いい時代になった
検証
【遂に来た!】EBS でボリュームサイズを変更できるようになりました(ボリュームタイプ変更も) | Developers.IO を参考に、稼働中のインスタンスにアタッチ済みのボリュームのサイズを増やしてみます。
今回ボリュームを増やしたいインスタンスはこのような感じです。
インスタンス的には/dev/xvda
というところに30GBのボリュームがあります。
ec2-user@ip-172-31-10-224 ~ $ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/xvda1 30G 3.8G 26G 13% /
devtmpfs 490M 56K 490M 1% /dev
tmpfs 499M 0 499M 0% /dev/shm
ec2-user@ip-172-31-10-224 ~ $ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda 202:0 0 30G 0 disk
└─xvda1 202:1 0 30G 0 part /
ほとんど元記事のとおりですが以下のような感じです。
Modify Volumeを押します
今回は 30GB -> 100GBにします
パフォーマンスが変更されるまで時間がかかるとのこと。。yesを押す。
完了。
ボリュームの状態は optimizing...0%
という表示になりますが、もうこの状態で ディスクの拡張は終わっています。
awscli的には $ aws ec2 describe-volumes-modifications
と叩くと進捗が表示されます(引数なしでOK)
$ aws ec2 describe-volumes-modifications
{
"VolumesModifications": [
{
"TargetSize": 100,
"TargetVolumeType": "gp2",
"ModificationState": "optimizing",
"VolumeId": "vol-0e92fb2e26dfd9687",
"TargetIops": 300,
"StartTime": "2017-05-18T02:34:07.151Z",
"Progress": 0,
"OriginalVolumeType": "gp2",
"OriginalIops": 100,
"OriginalSize": 30
}
]
}
"Progress": 0
ですが、lsblk
を叩くともう反映されていることがわかります。
ec2-user@ip-172-31-3-117 ~ $ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda 202:0 0 100G 0 disk # <- 100になってる
└─xvda1 202:1 0 30G 0 part /
次に resize2fs
すればよいのですが、以下のような感じで怒られます。
resize2fs 1.42.12 (29-Aug-2014)
resize2fs: Device or resource busy while trying to open /dev/xvda
Couldn't find valid filesystem superblock.
今回はパーティションの設定がされているためと思われます。パーティションを利用している場合の設定はこちら。http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/storage_expand_partition.html
ただルートパーティションの場合は面倒そうなので、起動時に実行されるresize2fsに任せることにしました。
見たところAmazonLinuxの場合 /etc/cloud/cloud.cfg.d/00_defaults.cfg
の中で resize2fs
の記述があるので、再起動時に実行されるようです。
こうして、何も考えずにrebootすることにより、dfの結果が変わりました
$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/xvda1 99G 9.1G 90G 10% / # <- 99GBに増えてる
devtmpfs 490M 56K 490M 1% /dev
tmpfs 499M 0 499M 0% /dev/shm