著者
山木田 和哉 山田 浩史 河野 健二
雑誌
研究報告 システムソフトウェアと オペレーティング・システム(OS)
巻号頁・発行日
vol.2011, no.4, pp.1-11, 2011-07-20

可用性の高いサービスを実現するために,オペレーティングシステム (OS) には高い信頼性が求められる.しかし,現在の OS 内部には多くのバグが含まれており,カーネルクラッシュの原因となっている.古くからカーネルクラッシュに対し広く用いられているリカバリ手法として,OS の再起動が挙げられる.OS 再起動はシンプルかつ強力なリカバリ手法であり,カーネルクラッシュの原因を特定せずとも,システムを復旧することができる.しかし,OS の再起動には時間を要するという問題点も存在する.これは,OS 再起動がハードウェアやカーネルの初期化など,多くの煩雑な手順を踏まなければならないためである.そこで本研究では,システム起動フェーズの再現性に着目した OS の再起動高速化手法 Phase-based Reboot を提案する.Phase-based Reboot では,OS 起動時の動作を実行フェーズ毎に分割して,システムの状態を保存する.そして,OS 再起動時に,過去の OS 起動時と同じ動作をする場合は,過去の実行フェーズを再利用することで,迅速に再起動と同等の効果を得る.また,Phase-based Reboot を Xen 3.4.1 上で稼働する Linux 2.6.18 内に実装し,評価実験を行った.実験では,既存の OS 再起動に要する時間を約 34% から 94% 削減できることを確認した.Although operating systems (OSes) are crucial to achieving high availability of computer systems, modern OSes are far from bug-free. Rebooting the OS is simple, powerful, and sometimes the only remedy for kernel failures. Once we accept reboot-based recovery as a fact of life, we should try to ensure that the downtime caused by reboots is as short as possible. Unfortunately, OS reboots involve significant downtime, which is unacceptable in commercial services. This paper presents "phase-based" reboots that shorten the downtime caused by reboot-based recovery. The key idea is to divide a boot sequence into phases. The phase-based reboot reuses a system state in the previous boot if the next boot reproduces the same state. A prototype of the phase-based reboot was implemented on Xen 3.4.1 running para-virtualized Linux 2.6.18. Experiments with the prototype show that it successfully recovered from kernel transient failures inserted by a fault injector, and its downtime was 34.3 to 93.6% shorter than that of the normal reboot-based recovery.