ご無沙汰しております。ご無沙汰といえば、先日あるお客様のところへ久しぶりに行ってきました。
そのお客様のあるシステムを僕たちが入れたのが2007年春でした。ちょうどRHEL5が出たばかりで仮想化対応(Xen)が大きく注目されていた時でした。
実は、私たちはそれ以前からXenを扱ってはいたのですが、どうも仮想化のメリットに疑問があって、なんとなく斜に構えていました。というのは単純にサーバを仮想化を用いてコンソリデーションしても運用という意味ではあんまり楽にならない(論理的なサーバ数までは減らない)ので、正直つまらないなぁって。
とはいうものの仮想化というのはテクニカルには非常に面白いので、愉快な使い方を模索していました。そんなときに、そのお客様から相談を受けました。
「予算に大きな縛りがあるが、サービスを提供する為の基盤なので可用性を求めたい」
なんと無茶苦茶なって思いましたけど、そこにヒントがありました。
通常可用性を高める為にクラスタリングという方法を使います。クラスタリングは障害時にそなえてスタンバイのサーバが必要なので単純に構成を組むとパフォーマンスは同じなのにサーバの数は倍になります。でも、この倍に増えたサーバを仮想化でまとめて”同コストで可用性が倍!”っていうことになるなら面白い話になります。早速、お客様に提案して受け入れてもらいました。(このお客様も相当変わっていますが)
今では当たり前かも知れませんが、仮想マシン間でクラスターを組むというのは割と斬新なアイディアでしたし、Redhat Cluster Suit+GFSなんて話も当時(3年前)では相当ぶっ飛んでいました。
ずばり最初はかなり苦労しました。
Xen用のカーネルモジュールが無かったり(仕方なく自分でRPMを作った)、NICのドライバーに問題があって8台の仮想マシンを同時に立ち上げると落ちるのでドライバーを差し替えたり(通常は推奨されないだろうけど、動くことを優先した結果)、パフォーマンスに問題があってGFSをチューニングしたり。その苦労の結果、クラスターを組んでいるのが悲しくなるくらい安定して動き続けています。
・・・・でも最後に注意して欲しいことがあります。
凄いのは私たちの技術力ではなく、あんな挑戦的なシステムを受け入れたお客様です。
一応、念のため。







