2013年2月25日月曜日

CloudStack3.0のコンソールのキーバインド

多分いろんな人が既に言及していると思うけど、CloudStackのConsole Proxy(仮想サーバのコンソール画面をWebでユーザーに提供する機能)のキーバインドが結構ひどい。
端末側のキーボードが英語か日本語かによっても結果が違う。

当方、CloudStack 3.0ベースの某IaaSを利用中であるが、結構苦労している。
手元に英語キーボードと日本語キーボードの両方があるので、少し調べてみた。
なお、この某IaaSは、CloudStackにそこそこカスタマイズが入っているので、全ての環境で同じ結果かどうかは分からない。日本国内のIaaSなので、それ用にConsole Proxyのパラメータが設定されている可能性がある。
また、CentOS6.2での調査結果であることを最初に述べておく。他のディストリビューションやWindowsでは結果が異なるかも。

表を見ると分かるが、コロン、パイプ、アンダースコアなどに不自由する。これは厳しい。viを起動するとctrl+zで抜けなくてはならないし、そもそもファイルを保存できない。

2013年2月22日金曜日

CloudStackはCentOSベースの仮想アプライアンスと相性悪い

CloudStackにCentOS6.2ベースの仮想アプライアンスを入れて運用を始めた時の話。

まず、予備知識のおさらい。
CloudStackにCentOS6系のテンプレートを作成する際には、事前に
/etc/udev/rules.d/70-persistent-net.rules
を削除しておくのがお約束である。これをやっておかないと、テンプレートからインスタンスを作成した時に、NICを認識できなかったり、eth0のはずのNICがeth1やeth2として認識されたりと、色々な問題が起こる。
うっかり70-persistent-net.rulesを削除せずにテンプレートを作ってしまった場合、インスタンス作成後にファイルの中身を直してあげれば復旧可能である。

また、CloudStackにはインスタンスのSnapshotを取る機能があるが、そのSnapshotを復元するためには、Snapshotを元にしてテンプレートを作成し、そのテンプレートからインスタンスを作成するという手順を踏む必要がある。ここが素のHypervisorと違うところである。
すなわち、複製目的でテンプレートを作る時ばかりでなく、システム状態のバックアップを取る目的でSnapshotを取る際にも、
/etc/udev/rules.d/70-persistent-net.rules
を削除する必要がある。

で、仮想アプライアンスである。
今回私が取り扱ったそいつは、CentOSベースであるものの、好き勝手にいじれないように、CLIで使用できるコマンドはガチガチに制限されている(製品オリジナルのコマンドしか使えない)し、ファイルシステムの操作など一切できない。まあ、仮想アプライアンスって、そういうものである。
で、ファイルシステムが操作できないということは、
/etc/udev/rules.d/70-persistent-net.rules
を消したり編集することが一切できないのである。
これは困る。

実際にSnapshot作成⇒テンプレート作成⇒インスタンス作成を何度もやってみたところ、毎回結果が変わる。ほとんどの場合、NICの順番がおかしくなる(eth0とeth1が入れ替わるなど)。で、何度も試していると、たまに元通りのNICの順番になってくれることがある。なんだこの運ゲー。

以上、CloudStackと仮想アプライアンスの相性は決してよくない、というお話。