FreeBSD 8.1は"サーバに適した"バージョン

執筆現在(2010年7月中旬)はRC2が公開されているFreeBSD 8.1だが、数日から1週間といった見通しで正式版がリリースされる見通し。開発も大方終了し、あとはドキュメントを整えてリリースするという段階にきている。ほぼスケジュール通りのリリースになりそうだ。

FreeBSD 8.1-RELEASEは2年間のエクステンドサポート対象となる。仮に7月中にリリースされれば、FreeBSD 8.1は2012年7月いっぱいまでセキュリティアドバイザリや不具合報告が提供されることになる。すでにだいぶ安定していた8.0だが、そこから多くの改善が実施されサーバ用途での採用やアップグレードに適したバージョンに仕上がっている。

以降、特にユーザの観点から8.1-RELEASEで登場する新機能や改善点を紹介する。

ディスクサブシステム - ATA_CAM機能の導入

ATA_CAMカーネルオプションを追加してカーネルを再構築すると、ata(4)コントローラ周辺ドライバとインタフェースを無効にし、かわりにcam(4)ドライバおよびインタフェースを経由しての操作が可能になる。CAMサブシステムそのものも改善されている。将来的にATAサブシステムはCAMサブシステムのもとに統合され、CAMのもとで統一された操作を実現する。

ネットワークサブシステム

帯域制御機能dummynetおよびファイアウォール/パケットスケジューラipfwの大規模な書き換えと機能拡張が行われている。dummynetの大幅な書き換えで複数のスケジューリングアルゴリズムの使用が可能になった。現在サポートしているアルゴリズムは4つ。またskiptoルールのルックアップがより効率的になった。

IEEE 802.1Q VLANネットワークインタフェースのデフォルト取り込みがされている。GENERICカーネルにデフォルトでvlan(4)を追加している点に注目。

ネットワークスタック仮想化機能VIMAGE周りの実装も推進されている。Jailごとのネットワークスタック保持を実現するVIMAGEはいくつかの機能とは同時に使えなかったが、この改善が進んでいる。

ファイルシステム

ZFSのバージョンアップ。zpoolのバージョンが14へアップデートされている。またZFSでNFSv4 ACLをサポート。

NFSv4におけるACLサポートの実現。ls(1)、cp(1)、getfacl(1)、find(1)、mv(1)にもNFSv4 ACLサポート機能が実装されたほか、setfacl(1)におけるNFSv4サポートの追加、UFSのNFSv4 ACLサポートに必要になる機能の追加などが実施されている。NFSにも実験的にいくつか新しい機能が追加されている。

UFS2のファイルシステムサイズが16TBを越えた場合、unsignedで扱われるべきinode番号が負の値として扱われてしまうというバグがあった。このバグが修正されたほか、newfs(8)、libufs(3)、tunefs(8)、growfs(8)も更新されている。

ユーザランドユーティリティ

rc.dの制御下にあるサービスを制御するためのコマンドservice(8)の導入。「service sshd start」や「service sshd stop」のようにサービスを制御する。ファイルを直接指定して実行するのと比べて、環境変数の設定などが自動的に実施されより安全性が増す。service(8)コマンドを提供しているOSと同じコマンドで用意することで、操作の互換性を提供するといった目的もある。

chown(8)およびchgrp(1)へ"-x"オプションを追加。du(1)やcp(1)に用意されている"-x"オプションと同じように、再帰を指定して動作させた場合にクロスマウントポイントでの動作を避けるようになる。

GNU cpio(1)の削除。8.0以降はBSD cpioがデフォルトでビルドされるようになっており、8.1はオプションを指定してもGNU cpio(1)はビルドされなくなる。

またfetch(3)におけるHTTPダイジェスト認証のサポートも追加されている。

安定志向のサーバ、性能と堅牢を両立

ここで紹介した以外にも、セキュリティ修正やバグ修正、デバイスドライバの追加とアップデート、サードパーティアプリケーションのアップデートなど数々の変更が実施されている。最新の機能が取り込まれている9-CURRENTと比較すると8.1における新機能はマイナーな感じがするが、そもそも8-STABLEにマージされる機能は安定志向のものに絞られている。8.1はサーバとして採用のに優れたバージョンといえる。

NFSサーバ周りの改善やNFSv4の機能実装が進んでいる点も注目に値する。FreeBSD 7系をNFSサーバとして採用していて性能が発揮されないことが多いような場合は、8.1にアップグレードすることで改善される可能性がある。

デスクトップとして採用したい場合、PC-BSD 8.1がリリースされるのを待つという手もある。ZFSをベースとしたNASシステムを構築したい場合、FreeBSD 8.1をベースとしたFreeNASが登場するのを待つのもいい。PC-BSDもFreeNASもiXsystemsの支援するプロジェクトとして開発が進められており、今後のリリースが期待される。