FreeBSDプロジェクトから2015年第3四半期における活動報告「FreeBSD Quarterly Status Report - Third Quarter 2015」が公開されました。報告内容が第3四半期における活動のすべてということではないのですが、今ホットなトピックはこの報告書から知ることができます。報告書から特に興味深いものを紹介します。
FreeBSDクラスタ、主要機能をニュージャージーへ
FreeBSDプロジェクトが活用しているマシンは「FreeBSD Cluster Administration Team(FreeBSDクラスタ管理チーム)」が管理しています。これまでFreeBSDプロジェクトの主要マシンは数年に渡ってカリフォルニアでゲストとしてホスティングされてきました。FreeBSDクラスタ管理チームは現在、これら主要クラスタのうちコアとなる機能をニュージャージーのマシンに変更する手続きを進めています。
ニュージャージーにおけるホスティングは、これまでゲストとして使わせてもらっていたカリフォルニアの状況を踏襲するのではなく、正式な契約のもとでのホスティングという形で話が進められるようです。これに合わせてクラスタマシンの刷新やリソースのより有効的な活用などが取り組まれると説明があります。
第3四半期に進められた主な作業として次の項目が紹介されています。
- 内部の同期機能をrsyncから分散環境での同期が可能な「syncthing」に変更
- コード署名およびソースコード署名インフラストラクチャの開発
- 32コア搭載のリファレンスビルドホストのサービスを提供開始
- 内部のバグ管理システムをbugzilla 4.4からbugzilla 5.0へ変更
- キャッシュサーバをvarnish3からvarnish4へ変更
- hub.FreeBSD.orgのサポートを終了(2012年のセキュリティインシデント発生時に動作していたマシンの最後の1台)
- https://download.FreeBSD.org/の提供開始へ向けた取り組みが進む
- pkg、ftp、svn、vuxmlミラーリングサービスを提供する台湾ノードを追加
- freebsd-updateミラーサーバのひとつをlighttpdからnignxへ変更
- svnリポジトリを古いクラスタから分離し新しいホストへ移動
これまでのFreeBSDプロジェクトのクラスタは、すべてのマシンが信頼できるネットワークに存在し、NFSで共有が可能であるという前提のもとで構築されていました。この構造だとインターネットを介して異なる場所にある複数のマシンを接続して利用するということができません。ニュージャージーで主要機能を実装するにあたりこれまでの構造を見直し、それぞれのサービスやコンポーネントを独立させ、インターネットを介したネットワークでも安全に利用できることを目指しています。
FreeBSDプロジェクトは以前、開発者の不手際からSSHの秘密鍵が第3者に漏れるといった不手際が起こったことがあります。このセキュリティインシデントによるソースコードの改竄などは確認されていませんが、それ以降プロジェクトのマシンやネットワークをより安全な構成に振るようになってきています。
FreeBSDクラスタ管理チームはこれらクラスタがFreeBSD 11-CURRENTおよびFreeBSD 10-STABLEで稼働していることも紹介しています。これは最新の成果物を自分達で積極的に試すことを目的としており、月に1回の頻度でアップデートが実施されています。内部的には数日ごとにベースシステムのスナップショットの作成を実施しています。パッケージに関しては毎日ビルドが行われています。
ハイパーバイザbhyve
bhyveはFreeBSD/amd64プラットフォームで動作するハイパーバイザです。今のところゲストオペレーティングシステムとしてFreeBSD 8.x+、Linux i386/x64、OpenBSD i386/amd64、NetBSD/amd64、Illumos、Windows Vista/7/8/10/2008r2/2012r2/2016 x64(ヘッドレスモード)をサポートしています。現在は動作するゲストオペレーティングシステムの数を増やすための開発が進められているほか、ほかのハイパーバイザに存在している機能の実装がなどが進められています。
第3四半期における注目ポイントは、Intel edk2 UEFIを移植することでUEFIブートに対応した点にあります。UEFIブートが可能になったことでWindowsとIllumosをゲストオペレーティングシステムとして動作させることが可能になりました(今のところヘッドレスモードのみ)。
そのほかの取り組みとしてはGSoC 2015のプロジェクトとしてNE2000デバイスエミュレーションの実現、ARMへのbhyveの移植、ptnetmapサポートの実現などが選ばれたことも報告されています。
今後の開発課題としては次の項目が挙げられています。
- ドキュメントの質の向上
- UCL設定ファイルを使ったbhyveインスタンスの開始などを実現するbhyveuclの実装
- virtio-scsiの開発
- より多様なネットワークバックエンドの実現(wanprocy、vhost-netなど)
- 一般ユーザ権限でのbhyveの実行
- 代表的な仮想ディスクフォーマット(VMDK、VHD、QCOW2)への対応
- ビデオに対する抽象レイヤの実装
- サスペンドおよびレジュームのサポート(一部はすでに実現)
- Liveマイグレーション(一部はすでに実現)
- Nested VT-xのサポート(bhyve in bhyve)
- amd64以外のアーキテクチャのサポート
仮想インスタンスとして実行できるゲストオペレーティングシステムの数が増えてきたことで、bhyveを汎用的なハイパーバイザとして利用できるようになってきました。今後ARMなどのサポートが進めば、メニーコアシステムにおけるハイパーバイザとしてbhyveが利用できるようになるものと見られます。
現在、OpenBSDプロジェクトでもハイパーバイザの開発が進められています。bhyveがNested VT-xのサポートを提供するようになれば、bhyve上でOpenBSDを動作させ、さらにそこでOpenBSDのハイパーバイザvmmを実行して複数のOpenBSDを実行するといったことも可能になるものと見られます。
CAMターゲットレイヤにおける高可用性クラスタリング
iXsystemsのスポンサーシップのもとで実施されたCAMターゲットレイヤにおける高可用性クラスタリングの実現に関しても報告があります。CAMターゲットレイヤ(CAM Target Layer; CTL)はもともとCopan/SGIによって開発されたものですが、このレイヤは高可用性クラスタリングの機能を持っているものの、そのコードの重要な公開されていなかったため、これまで利用することができませんでした。
今回、iXsystemsのスポンサーシップのもとで欠けていた部分の再実装が行われ、CAMターゲットレイヤにおける高可用性クラスタリングが可能になったと説明があります。現在サポートしているのは4つのモードをもったデュアルノードクラスタ(非同期LUNユニットアクセス; Asyncronous LUN Unit Access; ALUA)がサポートされています。提供されているモードの組み合わせは次のとおりです。
- アクティブ/アンアベイレブル(ノード間連結なし)
- アクティブ/スタンバイ(セカンダリノードがプライマリ側のLUNディスカバリ/リザベーション、状態の同期、コマンド実行のハンドリングが可能)
- アクティブ/アクティブ(プライマリもセカンダリもプライマリ側のディスカバリ/リザベーション、状態の同期、コマンド実行のハンドリングが可能)
- アクティブ/アクティブ(セカンダリやバックストレージにアクセスすることはできないが、マスタノードへコマンドを転送するといったプロクシとして機能することができる)
また上記以外にも、CD/DVDドライブのエミュレーション、リムーバブルディスクのエミュレーション、ライブLUN再設定などいくつもの新機能が追加されたと説明があります。iXsystemsはFreeBSDをストレージアプライアンスのベースオペレーティングシステムとして活用している企業のひとつです。スポンサーシップの背景には、自社の製品で同機能を活用する狙いがあるものとみられます。
FreeBSD勉強会 告知
第46回 11月20日(金) 19:00~ The Design and Implementation of the FreeBSD Operating System (2nd Edition) 読書会 第11回目 P.121 The scheduler implements round-robin…~
『The Design and Implementation of the FreeBSD Operating System (2nd Edition)』の読書会です。読書会11回目の今回はハードカバーでP.121からです。D&I本がどういった本なのか読んでみたいという方、お気軽にご参加ください。参加申請はこちらから。
第47回 12月22日(火) 19:00~ ライトニングトーク×FreeBSD忘年会’15!
今やっていることがある、実はこんな感じで運用している、困っていることがあるので助け求むなど、FreeBSDに関することを5分から10分程度にまとめて、その時発表したい方が発表する「ライトニングトーク×FreeBSD忘年会'15!」を開催します。
後藤からは発表の冒頭、5分~10分くらいでbhyveを使った仮想環境構築のデモンストレーションを行います。CentOSかOpenBSDあたりをon bhyveで使う方法をご紹介します。ひとりあたりの発表時間は、全体の発表人数を見つつ当割でいきます。時間に余裕があれば現場で飛び込みライトニングトークも大歓迎です。参加申請はこちらから。