EBSの容量拡張を試してみる
Last-modified: Sun, 19 Feb 2017 14:50:19 JST (2990d)
Top > EBSの容量拡張を試してみる
EBSの容量拡張が出来るようになったので、早速試してみました。
今まではサーバを落として、EBSのスナップショットを取って容量拡張したボリュームを作ってそれをアタッチして・・・
とずいぶん手間がかかっていましたが、それがRDSのようにサクッと出来るのでしょうか?
(なお、従来のスナップを取る方法は このあたりに自作スクリプトがあったり・・)
EBSの拡張
- AWSコンソールから実験用EC2を作成しました。T2.microなのでHVMですね。この通り初期状態の8GB、SSDです。
- ではこれを拡張してみます。下にブロックデバイスの項目があり、そこにアタッチされているEBSへのリンクがあります。
変更するデバイスのリンクをクリックします。 - クリックすると、EBS IDが分かるので、そこをクリックします。
- EBSの画面に飛びますので、対象のEBSを選択後右クリックし、「Modify Volume」をクリックします。
- ボリューム変更画面が出ます。SSDのタイプも変更できるようです。ここでは8GBから10GBに拡張してみます。
- 変更中はパフォーマンスが落ちるよ。OSのファイルシステムで拡張した領域割り当ててね。的なメッセージが出ます。
- 変更が反映されます。この間インスタンスは通常通り動いています。ディスクの書き込みとかも大丈夫でした。
- 変更中は進捗が一応出るのですが・・・これずっと1%だったのであまり意味はないです。
- 約6分ほどでステータスがいきなり100%になります(笑)容量に比例するのかわかりませんが、2GB拡張するのに6分はちょっと長い気がします。
- では確認してみます。まだ拡張していないので、OSからは増えた領域を認識できていません。
- では、resize2fsで認識させましょう・・・と実行したのですが、何故か失敗します。
- とりあえず、困ったときの再起動。というわけで再起動すると勝手に容量が拡張され認識されます。
EBSの縮小
- まぁ出来ないだろうな。と思いましたが、試してみました。予想通り拡張したら縮小はできません。
スタンダートボリューム(マグネチック)ではどうか?
- 費用を抑えるためにSSDじゃなくてHDDを選択している場合があるかもしれませんので、HDDでも試してみました。
が、結果は御覧の通り、容量拡張が出来るのはSSDのみのようです。
- という訳で、従来通りEC2をシャットダウン後、スナップを取ります。
- 作成したスナップショットから新しいボリュームを作成します。
- ここまでくれば、HDDからSSDへの変更、容量の拡張も可能になります。
- このように、HDDからSSDに変更した上に10GBに拡張したボリュームができます。
なお、この時EC2と同じアベイラビリティゾーンに揃えて作成するとパフォーマンスが向上します。 - では、今までぶら下がっていたEBSをデタッチします。
- 切り離してよい?と確認が出ます。
- 切り離したら、先ほど作成したボリュームをアタッチします。
- アタッチする際に、デバイス名は揃えておかないと、fstabで自動マウントされなくて詰まります。
- アタッチしたら起動します。容量ははれて10GB・・・と期待したのですが変わっていません。
- resize2fsしても変更されません。
- SSDのときは再起動したら何故か認識されたのですが、それだとせっかくのオンライン容量拡張のメリットがありません。
調べたところ、どうもHVMインスタンスはEBS内にパテーションを持っているらしく、パテーションが拡張されないと、
その中でいくらresize2fsしてもダメなのだそうです。そりゃそうだわ。
という訳で、原因が分かれば対処もわかります。growpartでパテーションを拡張します。
その後、resize2fsします。 - 無事認識されました。おそらくSSDの時もこの手順でやれば再起動は不要かもしれません。
- なお、今回HDDは後付けでやったのですが、もしやEC2作成時HDDで作れば(つまりルートボリュームをHDDにする)もしかしたら・・と思いましたが、そもそもHDDは容量拡張の対象外のようです・・
うーんドキュメントにはそんなの見当たらなかったんだがなぁ・・
Counter: 936,
today: 1,
yesterday: 0
このページの参照回数は、936です。