OpenStack 雑感

ここ数日、さくらインターネットの専用サーバ上にOpenStack でプライベートクラウドの構築を進めていた。OpenStackの噂が聞こえてきてから、すでに数年たっているので、ずいぶんと安定して使いやすくなっているのでは、と期待して始めたのだが、すぐに裏切られた。

まだまだOpenStackは使いやすい状況ではない。

VMware、XenServer、HyperV、RedHat Virtualization と使ってきたので、それなりに仮想化には知見があるつもりでいたが、OpenStackはまだまだそれ以上に複雑だった。

OpenStack というだけに、様々なモジュールが疎結合になっている。設計としてはカッコ良いのだが、設定は大変。とにかく、あちこちに設定が隠れているのだ。

結局、複雑すぎて設定が大変なので、簡単インストールのためのツールがいくつも作られている。DevStackや PackStackがそれだ。でも、これらはあくまで簡単インストールのためであり、実際に詳しい中身を触ろうとすると、むしろ、どこにどんな設定が入っているか分からない、という問題もある。

で、うっかりさわってしまうと、どうやって回復させていいのかわからない、という問題も生じる。

結局、ある程度わかった時点でえいや、とサービスインして、いろいろなサーバを載せ始めたが、今日は、うっかりホスト側のサーバのネットワークを切断してしまい、全部の仮想サーバの外部ネットワークが切れる、という事態を招いてしまった。

いくつか学んだことを散漫に書いていくが、
 ・Keystone が結構大事。データベースを生で見るのもあり。
 ・IPアドレスの変更は大変なので、事前によく設計しておくべき。
  (特に、外部向けのIPか、内部向けのIPか、を良く考えるべし)
 ・現状(2013/10/17時点)では、Grizzly を使っているが、nova と quantum の切り分けが今一つ。
  (まだ nova に余分なコマンドが残っており、わかりにくい)
 ・cinder を使うためには、最初から lvm 用のパーティションを用意しておくべし。
  (今回は、手遅れだったのっで、なんと loop デバイスで逃げている。)

 ・quantum は、 openvswitch も使っているので、その設定、関係を良く理解しないと
 ネットワークが切れる。また、 iptables は手で触りにくくなる。
    (/etc/init.d/iptables はやめるべし)

 ・Horizon は、まだまだ OpenStack の全ての機能が使えるわけではない。
  CD-ROM をつけたりはずしたり、とか、いろいろな 仮想サーバ用の管理機能は
  ほとんど実装されていない。


というわけで、数日で、コードネームとサービスの対応が頭に入ってしまうほど苦しんだ、ということでありました。一体何をやってんだか。。。


PackStack all-in-one だと、なんと nagios まで入るのだが、中途半端な設定で、またこれも悩まされる。 nrpe (Nagios Remote Plugin Exchange)を使うことになる。また nagios-plugin も、 epel のリポジトリを使うと、コマンド毎に入れることになる。。。