FreeBSD Daily Topics
2012年5月16日 BIOSを飛ばし高速再起動を実現するFreeBSD kload
developments
- Fast FreeBSD reboots with kload
BSDCan 2012の初日はMicrosoftおよびNetAppからFreeBSDのHyper-Vサポートの発表があったことも印象的でしたが,
この日最も印象的だったのはIsilon SystemsでFreeBSDカーネルコンサルタントを務めるRussell Cattelan氏が発表したkloadではなかったかと思います。 kloadはFreeBSDの終了前に新しいカーネルメモリイメージを作成し,
現在実行中のカーネルメモリ領域を上書きし, ハードウェアのリセットを実施することなくシステムの再起動を実現するための機能です。BIOSやファームウェア, 起動時における周辺機器の処理などを飛ばすことがき, 再起動にかかる時間を大幅に高速化できるという特徴があります。 この機能はBHyVe向けに開発されたuserboot.
soをベースに開発された機能です。再起動時にはkenvパラメータの上書きや, 特定のカーネルを指定してのシステム再起動もできると説明がありました。 kloadはまず1BG以下のメモリ領域に一時的なページ領域を確保します。ここに作成すべきカーネルメモリイメージを構築し,
マッピングすべきデータをコピーしたら, 現在のカーネルイメージに作成したカーネルイメージを上書きして, 処理を最初のコードへ移動させます。こうすることでH/ W的なリセット処理を実施することなく, BIOS関連の処理を飛ばした高速な起動が可能になります。 発表の会場では実際にkloadを使った再起動のデモンストレーションがありました。rebootコマンドが実行されてから数秒してすぐに起動が開始されるといった様子でした。BIOS関連の処理が省略されており,
高速な再起動に効果的であることがわかります。 対応すべき課題としては,
ドライバがそれぞれ適切にハードウェアをリセットする処理を実施する必要があること, アセンブラで開発されている部分のデバッグが困難であること, kload自体はアンロードができないことなどが挙げられいました。なお, デバッグに関しては今後はBochsを使って実施可能であること, 不必要なページのコピーを避けることでさらに高速化が期待できることなどの説明もありました。 FreeBSD HEADへのマージについてはいまのところ確かなスケジュールは持っていないということでした。しかし,
会場にきているFreeBSD committersはかなり関心を持って発表を聞いており, 質疑応答の様子をみても, マージするための障壁はそれほど高くないように思いました。そう遠くない段階でマージが実施されるような印象を受けました。
バックナンバー
FreeBSD Daily Topics
- 2012年5月31日 Linuxバイナリ互換機能にDTrace
- 2012年5月30日 CentOS 6.2に対応したlinux_base-c6登場
- 2012年5月29日 FreeBSD対応1U/2U/3U/4Uラックマウントサーバ発表 - システムワークス
- 2012年5月28日 FreeBSD MCA(Machine Check Architecture)による障害検出
- 2012年5月25日 FreeBSDデベロッパアワード:5名受賞
- 2012年5月24日 BSDオークション:BSDCan一番のみどころ
- 2012年5月23日 FreeBSD DevSummit 201205 カナダ/オタワ
- 2012年5月22日 pkgngとPBI
- 2012年5月21日 次世代パッケージシステムpkgngとJail
- 2012年5月17日 FreeBSD ZFS,DMUの最適化と高速化:3倍~10倍/第8回FreeBSD勉強会,6/8に開催