仮想化が流行りらしいけど

設計のことは別にして、一番厄介で面倒臭いのは、hyper visorをどうするかと言うことよりは、

共有ファイルシステム

をどうするかということじゃないかと思う。

ライブマイグレートをするためには、ファイルシステムは共有されたネットワーク上にないといけない。ところが、ネットワーク上のファイルシステムは、どれをとってもイマイチだ。nfs rootというのが一番スマートに見えるのだが、

  • パフォーマンスが出ない
  • 動作が不安定
  • nfs固有の厄介な問題がつきまとう

ということで、使いものにならない。実際使ってみたのだが、ワーニングの嵐だ。

どうもロックやら細いファイルの操作やらが問題のようなので、rootをファイルイメージにしてやってみるのだが、これだとパフォーマンスが出ない。またrootではないがDBファイルだととんでもない負荷になる。

じゃあNBD(network block device)にするとどうかと言えば、どうもLinuxのNBDの実装は手抜きが多いらしく、ちょっと激しくファイルを読み書きすると、ハングアップしてしまう。つまり使いものにならない。

そんなわけで、「これ」というものがない。

また、その他にも、

  • ファイルサーバのフェイルオーバ
  • RAID 1 over network
  • 複数のインスタンス間でのファイル共有

というような問題もつきまとう。「仮想化してハッピー」になる規模のものをうまく運用するには、どうやってもこの辺の問題は避けて通れないわりに、良いソリューションがない。仮想化を売りにしている会社も、どうも決定版っぽいものは持ち合わせてないようである。

逆にこの辺をうまくやればいい商売になるんではないかなとは思う。私にそこまで手を回す体力はないけど、そうであるがゆえに強くそう思う。