こんにちは。CTOの馬場です。
弊社のご近所さん。IDCフロンティアさんのセルフクラウドがリニューアルしたのでさっそく使ってみました。 今なら1万円クーポンももらえます。
「IDCFクラウド」使いやすく、よりパワフルに。|IDCフロンティア
今回は個人的に気になる「無停止でのオンラインスペックアップ」を試してみました。
アカウント作成
まずはアカウントを作成します。
2014/11/14 17:00までは以下URLの黄色いバナーにあるクーポンコードで1万円分なのでガンガン使いましょう。
「IDCFクラウド」使いやすく、よりパワフルに。|IDCフロンティア
アカウント作成の途中で電話認証があります。 英語ですが数字だけ聞き取れればいいので大丈夫です。 ただし電話認証完了→画面の反映に少し時間がかかるようで、 電話を受けながら入力して次に進もうとするとエラーになることがあります。 おおらかな気持ちで、30秒くらい待ってから入力するようにしましょう。
アカウントができたら支払い系の登録が必要です。 すぐ使いたい場合はクレジットカードにしましょう。
支払い系の登録が完了したらクーポンの登録もお忘れなく!
仮想マシン起動
アカウントが作成できたら仮想マシンを起動します。
今回はIDCFが提供しているCentOS6.5のイメージを利用します。 まずはS4(1core x2.4GHz、4GB)で起動します。
サーバ無停止でのオンラインスペックアップをする場合は以下の制約があるので気をつけてください。 特にメモリ周りの制約に注意しましょう。
IDCFクラウド |「060仮想マシンは停止せずにリサイズできますか?」よくあるご質問 | IDCフロンティア
すべてのOSにおいて、仮想マシンを停止せずにCPU,メモリのスペックダウンはできません。 スペックアップについては、以下の制限があります。
*Linux系OSの場合、メモリが3GB以下の仮想マシンを停止せずに メモリ3GB以上のスペックへリサイズすることができません。
*RHELの場合、仮想マシンを停止せずに、メモリのスペックアップする事ができません。 一度仮想マシンを停止し、リサイズをおこなってください。
つまり、普段は格安月500円の仮想マシン(S1タイプ)を稼働させておき、必要になったらハイスペックにする運用はできません。 ハイスペックにしたい仮想マシンは最低でもS4タイプにしておく必要があります。
なおサイトには20秒でサーバ作成とありますが、サーバが作成されて起動処理に入るのに20秒というだけで、GCEのようにすぐにログインできるようになるわけではないので注意してください。 20秒はさておき、AWSと同じくらいの感覚(数分)でログインまでできるようになっています。
API操作クライアントツールをインストール
APIの公式ドキュメントを参考にして cloudstack-api
をインストールします。
yum -y groupinstall "Development Tools"
yum -y install python-devel libxslt-devel
yum -y install python-setuptools
easy_install pip
pip install git+https://github.com/idcf/cloudstack-api
~/.idcfrc に認証情報などを記入しておきます。
スペックアップ実施
それではスペックアップしてみます。
スペックアップは cloudstack-api scaleVirtualMachine
で実施します。
cloudstack-api scaleVirtualMachine --id <仮想マシンID> --serviceofferingid <サービスオファリングID>
仮想マシンIDは cloudstack-api listVirtualMachines
から確認できます。
サービスオファリングID(要するに仮想マシンのプランのID)は
cloudstack-api listServiceOfferings
で確認できます。
今回は以下のL8に変更してみます。
{
"cpunumber": 4,
"cpuspeed": 2600,
"created": "2014-10-03T21:23:34+0900",
"defaultuse": false,
"displaytext": "highcpu.L8( 4CPU / 8GB RAM )",
"hosttags": "VS",
"id": "435c1aab-e796-42c7-9320-22ebdc8f50aa",
"iscustomized": false,
"issystem": false,
"isvolatile": false,
"limitcpuuse": true,
"memory": 8192,
"name": "highcpu.L8",
"networkrate": 2000,
"offerha": false,
"storagetype": "shared",
"tags": "ROOT"
},
以下のコマンドでスペックアップを実行します。
cloudstack-api scaleVirtualMachine \
--id aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa \
--serviceofferingid 435c1aab-e796-42c7-9320-22ebdc8f50aa
...すると2〜3秒であっという間にスペックアップ完了です。すごい!はやい!
数秒でするっとスペックアップする様子は見ていて驚きます。
[root@foo ~]# while true; do echo "
date +%Y/%m/%d\ %H:%M:%S
: CPU: cat /proc/cpuinfo | grep processor | wc -l
free -m | grep ^Mem | awk '{print $1,$2}'
" ; sleep 1; done
2014/10/28 20:22:18: CPU: 1 Mem: 3824
2014/10/28 20:22:19: CPU: 1 Mem: 3824
2014/10/28 20:22:20: CPU: 1 Mem: 3824
2014/10/28 20:22:21: CPU: 1 Mem: 3824
2014/10/28 20:22:22: CPU: 1 Mem: 3824
2014/10/28 20:22:23: CPU: 4 Mem: 7920
2014/10/28 20:22:24: CPU: 4 Mem: 7920
2014/10/28 20:22:25: CPU: 4 Mem: 7920
2014/10/28 20:22:26: CPU: 4 Mem: 7920
スペックアップに伴ってミドルウェアのチューニングは必要にはなりますし、 Linuxカーネルは起動時にカーネルパラメータをスペックから自動決定しているものも多くあるので細かい調整は必要かもしれませんが、 とはいえこれはいざというときにかなり助かりますね。
ちなみに先に説明した仮想マシンタイプの制約に違反した場合、もちろんスペックアップはできません。
ただしWeb管理画面の操作ログ上では Successfully completed Upgrading VM
になっていたりするのでデバッグのときには注意しましょう。
APIから listAsyncJobs
で確認するときちんとfailしていることが確認できます。
ディスクのリサイズもできます
APIはホント便利で、
cloudstack-api resizeVolume
を使うとディスクのリサイズもできたりします。
試した範囲ではリサイズは一瞬で完了しますが、OSへの反映に再起動が必要そうです。
いままで長ーい調整やデータセンター・機器ベンダーと調整が必要だった部分が全て自分でできるようになっています。すばらしい。
このディスク、スナップショットも取得できます。 ただしVMwareの制限?によりスナップショット作成中はサーバを停止してしまうと起動できなくなるため注意してください。 200GBのディスクに120GBのランダムデータを書き込んだ状態でスナップショットを取得してみたところ、所要時間は1時間45分でした。 毎日のバックアップ用途であればディスクスナップショットではない方法を検討したほうがよさそうです。
なおスナップショットを取得すると、スナップショット名が
<インスタンス名>_<ボリューム名>_<UTC日時(YYYYMMDDHHMMSS)>
になります。なぜか日時がUTCなので注意してください。
まとめ
- 新しいIDCFクラウドは無停止でスペックアップできてすばらしい!
- APIは楽しい!
- キャンペーンは2014/11/14 17:00まで!