プラグインメモ

今日ACな溜り場(WORDとも言う)でごちゃごちゃと話していたことをメモ。

落ちない仮想サーバー

HypervisorのXenには、「Live Migration」という機能がある。これはあるホストで動作しているVMを、物理的に別のホストに「VMを止めずに」移動させることが出来る機能。Xen 3.0のユーザーマニュアルによれば、ユーザーから見るとVMのホストマシンの変化はimperceptible(感知できない)ほど一瞬で終わるらしい。仮想NICももちろん(たぶん…)持ち運ぶので、MACアドレスが変化しないで、TCPコネクションが切れない(たぶん)というのもポイントではなかろうか。
で、実はこの機能とは直接は関係ないのだけど、1つのVMを多数の物理ホストで多重化して保持し、物理ホストが何台か落ちてもVMを保持しつづける、という機能が思い付く。VM上のOSは、物理ホストが何台か落ちようと、何事もなく動きつづける。適当なサーバープログラムを単にそのVM上で動かせば、高い可用性が得られる…とは限らず、VM(物理世界ではハードウェアに相当)が動きつづけていても、ソフトウェア的にダウンしてしまうのはダメ。それでも物理世界でハードウェアに相当する層では高い可用性が得られる。


このあたりは「VIVERプラグインの共通APIみたいに整備しよう」と前から話していたわけですが、実現するためにはXenのLive Migrationだけでは足りないわけです。
「ヤバイ、落ちそうだ!このVMを頼む!」なんてできれば良いわけですが、落ちるときは突然落ちるわけで。

まだこの段階。具体的にどうすれば良いのかは不明。



どこからともなくサーバー

これもVM関連で。それからこの日記でも何回か書いてるSSI(Single System Image)も関連しているかもしれない。


「サーバーマシンは無い。でもサーバーがある」


複数の物理ホストで1台のサーバー用のVMを保持する。そしてクライアントが増えるほどそのVMの能力が増強される。
クライアントマシンが急増している近年、クライアントが増えるごとにサーバーを増強していたのでは、いくら金があっても足りない。サーバーが無い構造か、クライアントが増えるほどサーバーの能力が自動的に増強される構造を考える必要がある(他のやり方もたぶんある)。前者の考え方でP2Pが注目されているのだろうけど、このモデルは現在主流のシステムとの(考え方の上で)互換性が低いという問題点がたぶんある。上記のシステムなら、クライアントサーバーモデルの考え方で良い。
VIVERの分散ディスク共有もこの構造に近いのかもしれない。クライアントが増えるほど多重化度が増し、信頼性が増す。…いや、分散ディスク共有はP2Pなのかな…。




待て待て…「落ちない仮想サーバー」は「どこからともなくサーバー」の一部? うーむ。そうっぽいな…。


どちらにしても、実装する具体的な方法が思い付くわけでもなく。とりあえずメモ、と。