2012年7月31日火曜日

BHyVeハッカソンに参加してきました(1)

7月28日〜29日に埼玉県内某所にてBHyVeハッカソンが開催されました。BHyVeとはFreeBSD向けの全く新しい仮想マシンモニタです。


BHyVeについて簡単に紹介しておきましょう。2006年にXen 3.0がVT-xを使って完全仮想化を実現し、その後にLinux KVMが続きました。これらの仮想マシンモニタの設計上の大きな相違点は、ハイパーバイザーとして必要となるスケジューラなどの機能を新たに実装したか、
それともホストOSにある機能をうまく再利用したか、という点が第一に挙げられるでしょう。

もうすこし細かく解説しておくと、Xenの場合は何もなくてもXen自体が複数のOSを実行できます(管理のためにdomain-0が必要なのはここでは考慮しません)。それに対してLinux
KVMはユーザプロセスのひとつという位置づけで仮想マシンを実行するためのカーネルモジュールで、それ自体はスケジューラの機能をもちません。共通していえるのは、XenもLinux KVMもVT-xを使ったオープンソースの仮想マシンモニタであり、未改造のLinuxやWindowsなどのOSを実行できる、ということです。

Linux
KVMは、Xenでは実装しているようなスケジューラなどの機能を実装していないためコードが短くすんでいますが、BHyVeはさらに短いコードで実装されています。BHyVeは、以下の制約を受け入れることにより本体自体に非常にシンプルに実装しているのです。

  • VT-xなどのCPU仮想化機能を必須とする
  • EPTなどのメモリ仮想化機能を必須とする
  • I/OはBHyVe専用コンソールとvirtio、もしくはVT-dによるパススルーに限定
  • I/Oの実装は最小限
これらの制約はおそらく開発者の人的リソースによる事情もあるかと思いますが、Xenからに影響をうけつつ、不要な部分を取り除いてコンパクトに実装したものがLinux KVMであるとしたら、さらに KVM のうち一部の機能を割り切って実装したものが BHyVe であるといえます。なのでKVM が理解できれば BHyVe は理解できますし、逆に BHyVe を理解できれば KVM も理解できるでしょう。

0 件のコメント:

コメントを投稿