著者
田村 芳明 柳澤 佳里 佐藤 孝治 盛合 敏
雑誌
情報処理学会論文誌コンピューティングシステム(ACS) (ISSN:18827829)
巻号頁・発行日
vol.3, no.1, pp.13-24, 2010-03-16

インターネット上で提供されるサービスの増加と高機能化に加え,PC サーバの小型化,高速化,低価格化により,企業では多数の PC サーバで構成された複雑なシステムのコスト削減とリソースの有効利用が求められている.この課題を解決するために,仮想マシンを利用して,1 つの物理マシン上に複数のサーバ機能を統合することが検討されている.しかし,ハードウェア障害発生時にサービスを継続するためには,特殊なハードウェア,アプリケーションや OS に依存しない,可用性の高い構成が必要である.本論文では,仮想マシン間の同期による耐故障クラスタリング技術,Kemari について述べる.Kemari は,アプリケーションや OS に依存しないで,障害発生時にサービスを継続することができる.Kemari を仮想マシンモニタである Xen に実装し,実験を行ったところ,運用系の電源断といった障害でも,アプリケーションや OS が待機系で透過的に継続できることを確認した.
著者
柳澤 佳里 光来 健一 千葉 滋
出版者
一般社団法人情報処理学会
雑誌
情報処理学会研究報告システムソフトウェアとオペレーティング・システム(OS) (ISSN:09196072)
巻号頁・発行日
vol.2004, no.82, pp.33-40, 2004-08-01

本稿は、OSカーネル内での経過時間などのログを取得するために我々が開発したアスペクト指向システムについて述べる。本システムを使うと、カーネルソースコードを手動で変更せずに、カーネルの各所で網羅的にログ出力を行うことが容易に出来る。しかし、ログ出力を行う箇所を変えるたびに、カーネルの再コンパイル、再起動が必要では、実用上好ましくない。そこで我々は、アスペクトを実行する位置で割り込みを発生させるように実行時にカーネルコードを書き換える方法で、動的にアスペクトを組み込む方法を提案する。関数の呼び出し部分ではブレークポイント割り込み、変数の読み書き部分ではページフォールト割り込みを用いて実現する。こうして実現することで困難な基本ブロックの解析やデータ構造の解析の必要性が無くなる。この実装では負荷が大きいように見えるが実験の結果より通信処理に300程度のブレークポイント割り込みを挿入してもスループットが低下しないことが確認された。This paper presents our aspect-oriented system for logging the time of events happening in an OS kernel. It enables to perform logging a large number of kernel events without modifying the source code by hand. However, previous implementation techniques have required recompiling the kernel and rebooting the system whenever the logged events are changed. We propose a new implementation technique for dynamically weaving an aspect into the OS kernel. In this technique, a software interrupt is issued when the program execution reaches the join points where an aspect should be executed. Our system substitutes a machine instruction for software interrupt for an original instruction if the join point is a function call. It uses a page-fault interrupt if the join point is memory access. Our technique can be easily implemented since it does not need complicated analysis of basic blocks and data structures. Although this technique might seem to involve heavy execution overheads, our preliminary experiments showed that the overheads do not significantly decrease the throughput if less than 300 software interrupts are inserted through the execution path for network communication.