EBSの容量拡張を試してみる

Last-modified: Sun, 19 Feb 2017 14:50:19 JST (178d)

EBSの容量拡張が出来るようになったので、早速試してみました。
今まではサーバを落として、EBSのスナップショットを取って容量拡張したボリュームを作ってそれをアタッチして・・・
とずいぶん手間がかかっていましたが、それがRDSのようにサクッと出来るのでしょうか?
(なお、従来のスナップを取る方法は このあたりに自作スクリプトがあったり・・)

EBSの拡張

  1. AWSコンソールから実験用EC2を作成しました。T2.microなのでHVMですね。この通り初期状態の8GB、SSDです。
    ebs-01.jpg
  2. ではこれを拡張してみます。下にブロックデバイスの項目があり、そこにアタッチされているEBSへのリンクがあります。
    変更するデバイスのリンクをクリックします。
    ebs-02.jpg
  3. クリックすると、EBS IDが分かるので、そこをクリックします。
    ebs-03.jpg
  4. EBSの画面に飛びますので、対象のEBSを選択後右クリックし、「Modify Volume」をクリックします。
    ebs-04.jpg
  5. ボリューム変更画面が出ます。SSDのタイプも変更できるようです。ここでは8GBから10GBに拡張してみます。
    ebs-05.jpg
  6. 変更中はパフォーマンスが落ちるよ。OSのファイルシステムで拡張した領域割り当ててね。的なメッセージが出ます。
    ebs-06.jpg
  7. 変更が反映されます。この間インスタンスは通常通り動いています。ディスクの書き込みとかも大丈夫でした。
    ebs-07.jpg
  8. 変更中は進捗が一応出るのですが・・・これずっと1%だったのであまり意味はないです。
    ebs-08.jpg
  9. 約6分ほどでステータスがいきなり100%になります(笑)容量に比例するのかわかりませんが、2GB拡張するのに6分はちょっと長い気がします。
    ebs-09.jpg
  10. では確認してみます。まだ拡張していないので、OSからは増えた領域を認識できていません。
    ebs-10.jpg
  11. では、resize2fsで認識させましょう・・・と実行したのですが、何故か失敗します。
    ebs-11.jpg
  12. とりあえず、困ったときの再起動。というわけで再起動すると勝手に容量が拡張され認識されます。
    ebs-12.jpg

EBSの縮小

  • まぁ出来ないだろうな。と思いましたが、試してみました。予想通り拡張したら縮小はできません。
    ebs-13.jpg

スタンダートボリューム(マグネチック)ではどうか?

  • 費用を抑えるためにSSDじゃなくてHDDを選択している場合があるかもしれませんので、HDDでも試してみました。
    が、結果は御覧の通り、容量拡張が出来るのはSSDのみのようです。
    ebs-14.jpg
  1. という訳で、従来通りEC2をシャットダウン後、スナップを取ります。
    ebs-15.jpg
  2. 作成したスナップショットから新しいボリュームを作成します。
    ebs-16.jpg
  3. ここまでくれば、HDDからSSDへの変更、容量の拡張も可能になります。
    ebs-17.jpg
  4. このように、HDDからSSDに変更した上に10GBに拡張したボリュームができます。
    なお、この時EC2と同じアベイラビリティゾーンに揃えて作成するとパフォーマンスが向上します。
    ebs-18.jpg
  5. では、今までぶら下がっていたEBSをデタッチします。
    ebs-19.jpg
  6. 切り離してよい?と確認が出ます。
    ebs-20.jpg
  7. 切り離したら、先ほど作成したボリュームをアタッチします。
    ebs-21.jpg
  8. アタッチする際に、デバイス名は揃えておかないと、fstabで自動マウントされなくて詰まります。
    ebs-22.jpg
  9. アタッチしたら起動します。容量ははれて10GB・・・と期待したのですが変わっていません。
    ebs-23.jpg
  10. resize2fsしても変更されません。
    ebs-24.jpg
  11. SSDのときは再起動したら何故か認識されたのですが、それだとせっかくのオンライン容量拡張のメリットがありません。
    調べたところ、どうもHVMインスタンスはEBS内にパテーションを持っているらしく、パテーションが拡張されないと、
    その中でいくらresize2fsしてもダメなのだそうです。そりゃそうだわ。
    という訳で、原因が分かれば対処もわかります。growpartでパテーションを拡張します。
    その後、resize2fsします。
    ebs-25.jpg
  12. 無事認識されました。おそらくSSDの時もこの手順でやれば再起動は不要かもしれません。
    ebs-26.jpg
  • なお、今回HDDは後付けでやったのですが、もしやEC2作成時HDDで作れば(つまりルートボリュームをHDDにする)もしかしたら・・と思いましたが、そもそもHDDは容量拡張の対象外のようです・・
    うーんドキュメントにはそんなの見当たらなかったんだがなぁ・・
    ebs-27.jpg

Counter: 206, today: 1, yesterday: 4

このページの参照回数は、206です。