FreeBSD 9.xオープンディスカッション

FreeBSD 9.0または9.xで実施すべきかどうか議題に上がった項目は次のとおり。

  • SUJ (Soft Updates Journal)をデフォルトで有効にすべきかどうか。
  • カーネルおよびシステムのビルドをGCCからClangへ切り替えるべきか。
  • Ports CollectionのビルドをGCCからClangへ切り替えるべきか。
  • GCC/Clangの移行についてはベンチマークの結果を重視すべきではないか。
  • BSDInstallのより多くの試験が必要ではないか。
  • UFS2のデフォルトブロックサイズを32KBへ、フラグメントサイズを4KBへ拡大。
  • マルチスレッドGEOMへ拡張。
  • デフォルトのファイルシステムレイアウトの検討。

SUJが有効になればfsckにかかる時間が数時間から数秒といったレベルまで劇的に短縮される。数秒、最悪でも1分ほどしかかからない。デフォルトでこの機能を有効にするほど信頼性が高いものになっているか検討する必要がある。UFS2のブロック/フラグメントサイズを32kB/4KBへアップすると、ディスク容量の面では使われない領域が増えることになるが、逆に性能の向上が期待できる。この値は時代が進み、ディスクの大容量化が進むと同時に随時2倍の値へ引き上げが実施されており、状況からみてそろそろ次の引き上げのタイミングだとみられている。

今回のFreeBSD DevSummitで印象的だったのは、これまで方針にすぎなかったGCCからClangへの移行が、具体的な日程や条件まで含めた議論に発展していたことだ。コンパイル後バイナリはGCCの方が性能が高いことが多く、ビルド時間はClangの方が短い。パフォーマンス的に妥当だと判断されるまでGCCの採用は続きそうだが、デフォルトコンパイラをClangに置き換えるタイミングがかなり近づいてきた感触があった。

FreeBSD 10.0オープンディスカッション

FreeBSD 10.0はさらに先のリリースになるため、現在開発が進められている機能や、FreeBSDベンダが要求している機能などをベースに議論が実施された。10.0に向けた機能として話題があがったものは次のとおり。

  • カーネル - NUMA、仮想マシンオブジェクトドメインカラー、仮想マシンオブジェクトポリシー、キュースピンロック、CPUオフライン/オンライン、IO用のアンマップドバッファ、スレッドベースクレデンシャル、x86におけるEFIブート
  • ファイルシステム - VFSにおけるRangeロック
  • ユーザランド - rc.d最適化による高速起動、外部ツールチェーンのサポート、Linux 64ビットバイナリ互換機能(amd64)、ツールチェーンからGPLライセンスベースを取り除きBSDライセンスツールへ置き換え
  • 仮想化 - i386 PV UPの安定化、i386 PV SMP対応、amd64 PV開発、dom0対応、BHyVe(レガシーデバイスエミュレーション、AMD-サポート、non-x86対応)
  • デバイスドライバ - ExpressCard、ホットプラグPCI、PCI AER、スケジューラ、リソース管理に対するマルチパスの使用、パワーマネージメント機能

10.0ではエンタープライズで要求される機能にさらに焦点が当てられている。ここ数年、FreeBSDベンダから機能の要求やパッチの提供、FreeBSD Foundationによる支援、FreeBSDプロジェクトによる開発やフィードバックといったエコシステムが効果的に動いており、エンタープライズ向けの機能が充実しつつある。

BSD Hypervisor - BHyVe ビハイブ

今回のDevSummitやBSDCanでもっとも興味深かったのは、NetAppがBSDライセンスのもとで提供した「BHyVe (ビハイブ)」だ。FreeBSDをベースに構築されたハイパーバイザで、今のところゲストOSとしてFreeBSDをサポートしている。ホストはFreeBSD 8.1 amd64、ゲストはカーネルに多少のパッチを適用したFreeBSD 8.1 amd64と7.2 amd64がサポートされている。

比較的シンプルな構成のハイパーバイザで、ホストではカーネルモジュールの形で要の機能が実装されている。メモリ確保は構造をシンプルにするために固定割り当てで、共有なしのタイプ。ホストからこのメモリ確保は隠蔽されている。仮想マシンはホストOSではデバイスノードとして表現され、制御はioctrl経由で実施する。PCIパススルー機能が提供されている点も興味深い。

今後の開発目標としてライブマイグレーション、LinuxやWindows、ほかの*BSDのサポート、BIOSエミュレーション、AMD-Vのサポート、ゲストのサスペンド/レジュームなどが挙げられていた。FreeBSDにマージされるにはまだ時間がかかるとみられるが、ベースにマージされればハイパーバイザOSとして魅力的な選択肢になるとみられる。