IDCFクラウド仮想マシンを無停止スケールアップしてみた


仮想マシンを停止せずにリサイズできますか? | IDCFクラウド によると

以下の場合を除き、仮想マシンを停止することなくCPU、メモリのスペック変更が可能です。
(以下略)

どうやら、CentOS6以上でLight.S1/S2以外ならば、仮想マシンをシャットダウンせずにスケールアップ可能のようです。
また、Light.S1であっても「S1→S2」への変更ならば可能のようです。

「(一部のケースを除けば) 停止せずスペック変更できる 」と、さも当たり前かのように書いてあるのですが、これは結構魅力的な機能なのではないでしょうか。
少なくとも、Microsoft Azure VMs や AWS EC2 を多く触ってきた自分にとってはあまり馴染みのない概念です。

本当に無停止でできるのかどうか、実験してみました。

事前準備

CentOS7で仮想マシンを構築しておき、sshログインできるようにしておきます。

$ ssh (ホスト名)
$ cat /etc/redhat-release
CentOS Linux release 7.2.1511 (Core)

今回の操作手順

  1. IDCFクラウド仮想マシンにsshログイン
  2. topコマンド実行
  3. IDCFクラウド管理コンソールから「コンピューティング」→「仮想マシン」→「リサイズ」でスケールアップ

実験: Light.S1 → Light.S2

まずは、ワンコインで構築できることがウリのLight.S1仮想マシンを、メモリとCPUクロック数が倍増するS2に上げてみました。

name CPU RAM
Light.S1 1CPU 1GB
Light.S2 1CPU 2GB


(Windowsでttyrecした録画データをMacでttygif化したせいか多少崩れていますが気にしないでください)

IDCFクラウド管理画面から操作して10秒程度で、topで観測していたメモリが突如 1,010,340→2,058,916 KiB に倍増しました。
再起動はおろか、sshセッションもtopプロセスも途切れることなく、何事もなくいきなりスペックだけが上がりました。

しかしCPUの動作クロック数が上がったのかどうかは、ちょっとこれだけではよく分かりません。

実験: Standard.L16 → Standard.XL32

せっかくならCPU数もちゃんと増加させてみたいと思い、先ほどと同じ仮想マシンを一旦シャットダウンしてStandard.L16に変更し、再度実験してみました。

name CPU RAM
Standard.L16 4CPU 16GB
Standard.XL32 8CPU 32GB

※メモリが倍増したのを確認した後、手動で「1」キーを2回押してCPU毎の状態を再表示させています。

Cpu0~3までだったのが、0~7までの8CPUに増加しています。
CPUもメモリも、サーバを停止させることなく増加することが分かりました。

まとめ

一部の条件を除けば、IDCFクラウドで仮想マシンを無停止でスケールアップできることが分かりました。

実際サーバは無停止でスケールアップできても「稼働中のサービスが影響を受けずに継続できるか?」「スペックアップで空いたリソースの恩恵をサービスが無停止で受けられるのか?」など、本番環境での実戦投入にはいくつか検証が必要だと思います。ですがsshセッションもtopプロセスも切れずに反映されたことを鑑みると、大体ある程度は大丈夫なのではないでしょうか。

もちろん、無停止でのスケーリングが必要ならスケールアウトの手立てを予め用意しておくのが理想だと思います。
しかしWebサイトが知らぬ内にワールドビジネスサテライトに取り上げられていた等、インフラ構築時に予期しきれないレベルの緊急事態に対する切り札として予め検証しておくと、夜も安心して眠れるのではないかと思いました。