著者
高川 雄平 松原 克弥
雑誌
研究報告システムソフトウェアとオペレーティング・システム(OS) (ISSN:21888795)
巻号頁・発行日
vol.2019-OS-145, no.13, pp.1-8, 2019-02-21

Linux において確立されたコンテナ型仮想化技術は,Docker の登場と普及にともなって,標準化団体 Open Container Intiative (OCI) 主導でコンテナ仕様が定義され,現在では,Windows や macOS などの他の OS 環境でもコンテナを利用できるようになった.FreeBSD 環境で動作する Docker では,FreeBSD が持つ Linux バイナリ互換機能などを活用してコンテナを実現している.しかし,FreeBSD 上の既存コンテナ実装は,プロセスのアイソレーション機能やマイグレーション機能など,OCI コンテナ仕様と比較して,その実現が十分とはいえない箇所が存在する.本研究では,FreeBSD 上で OCI 仕様に準拠するコンテナを実装し,さらに,そのコンテナのマイグレーションを実現する手法について提案する.
著者
尾崎 雄一 山本 裕明 光来 健一
雑誌
研究報告システムソフトウェアとオペレーティング・システム(OS) (ISSN:21888795)
巻号頁・発行日
vol.2019-OS-145, no.12, pp.1-10, 2019-02-21

情報システムに障害が発生すると大きな損失となるため,システム障害はできるだけ早く検知して復旧を行う必要がある.システム障害の検知を行うには,監視対象システムの外部から監視を行う方法と内部から監視を行う方法が挙げられる.しかし,外部から監視を行う場合はネットワーク障害などで監視を継続できなくなることがあり,内部から検知を行う場合はシステム障害の影響を受けて障害検知ができなくなる可能性がある.そこで,本稿ではシステム内部で監視でき,システム障害の影響を受けにくい GPU を用いて障害検知を行う GPUSentinel を提案する.GPUSentinel では,GPU 上の検知プログラムがメインメモリを参照することによってシステムの状態を取得する.OS のソースコードを最大限に利用して検知プログラムを記述可能にするために,LLVM を用いてプログラム変換を行う.Linux,GPU ドライバ,CUDA を用いて GPUSentinel を実装し,意図的に発生させた障害が検知できることを確認した.
著者
吉村剛 河野健二
雑誌
研究報告システムソフトウェアとオペレーティング・システム(OS)
巻号頁・発行日
vol.2014-OS-130, no.10, pp.1-12, 2014-07-21

Linux カーネルにおいてバグ対策は不可欠である.しかし,コードの大規模化に伴い,バグ対策のために必要となるシステム全体の深い知識や誤りやすいパターンを把握することは難しい.特に誤りやすいパターンを把握するためには過去に大量に蓄積されたバグ報告やパッチの変更履歴を把握しなければならない.本研究は linux のパッチ 37 万件に対してパッチの説明文を自然言語処理し,トップダウンクラスタリングを用いることで全体の中でより高い頻度で発生した話題を抽出し,パッチ集合を 66 クラスタに分割してバグの実態調査に利用する.調査の有用性を示すため,割り込みに関するクラスタを調査してバグパターンを定義し,コード解析による検査を linux 3.15 において行って 2 件のバグを発見した.
著者
吉岡 恵吾 穐山 空道
雑誌
研究報告システムソフトウェアとオペレーティング・システム(OS) (ISSN:21888795)
巻号頁・発行日
vol.2023-OS-160, no.7, pp.1-7, 2023-07-27

本研究では RowHammer 攻撃でこれまで着目されていなかったページテーブル上のフラグを書き換えることで,攻撃者が被攻撃者のデータにアクセス可能になることを示した.RowHammer 攻撃とは,メモリ上の同一のアドレスに繰り返しアクセスすることで,DRAMの特定のセルから電荷が放出され,メモリ上の値が書き換わる現象である.本研究では,ページテーブル上の Global bit の反転により起こる現象を,CPU シミュレータ上で動作する Linux を用いた実験を通して解明した.RowHammer 攻撃で Global bit を書き換え,攻撃者と被攻撃者のプロセスでアドレス変換情報を共有させることで,攻撃者が被攻撃者のデータにアクセスすることが可能になった.さらに,提案した攻撃手法に対する緩和策や,ARM,RISC-V などの様々な ISA における攻撃についても考察した.
著者
石井 玲真 深井 貴明 品川 高廣
雑誌
研究報告システムソフトウェアとオペレーティング・システム(OS) (ISSN:21888795)
巻号頁・発行日
vol.2023-OS-159, no.12, pp.1-10, 2023-05-09

近年の IaaS 型クラウドでは,ユーザーが独自のハイパーバイザを実行できるネステッド仮想化がサポートされるようになってきた.ネステッド仮想化では,クラウド事業者のハイパーバイザが,CPU のハードウェア仮想化支援機能をエミュレートすることにより,ユーザーのハイパーバイザを実行可能にするが,仮想化支援機能は非常に複雑であるため,ネステッド仮想化の実装にもしばしば脆弱性が発見されている.脆弱性を発見する手法としてはファジングが有効であることが知られているが,ネステッド仮想化に単純にファジングを適用すると,(1) 入力として特殊な CPU 命令列が必要,(2) 仮想マシンの状態空間が膨大,(3) CPU 機能の有無による挙動変化,といった問題によりカバレッジを向上させることが難しい.本研究では,ネステッド仮想化のファジングにおけるカバレッジ向上に向けて,(1) 異なる特権レベルで指定した命令列を実行できる特殊な小型ハーネスの導入,(2) 適切な仮想マシンの状態を生成できる有効状態判定器の導入,(3) ハイパーバイザの起動時パラメータのミューテーション,といった手法により,正しい状態と不正な状態の境界領域を効率的にファジングすることでカバレッジを向上させる手法を提案する.実験により,提案手法は syzkaller と比べてネステッド仮想化のコードカバレッジを 17.9% 向上させることができることを確認した.また,提案手法を用いて KVM をファジングしたところ,ネステッド仮想化における未知の脆弱性を発見し CVE ID が割り当てられた.
著者
三宮 浩太 光来 健一
雑誌
研究報告システムソフトウェアとオペレーティング・システム(OS) (ISSN:21888795)
巻号頁・発行日
vol.2015-OS-135, no.1, pp.1-9, 2015-11-17

IaaS 型クラウドでは,ユーザはアプリケーションの利用率が低い時にインスタンスのスケールインやスケールダウンを行うことでコストを削減することが可能である.しかし,このようなインスタンス構成の最適化では利用率の低いアプリケーションを動かすためであっても最低性能のインスタンスが最低 1 台必要となり,それ以上のコスト削減を行うことができない.さらなる最適化のために複数のアプリケーションを 1 台のインスタンスに統合することも考えられるが,統合時にアプリケーションを一旦停止させる必要がある上,統合後のアプリケーション間の隔離が弱くなるという問題がある.本稿では,これらの問題を解決するために,ライブラリ OS を用いてインスタンス構成の動的な最適化を実現するシステム FlexCapsule を提案する.FlexCapsule はネストした仮想化とライブラリ OS を用いてインスタンスの中の個々のアプリケーションを軽量な VM の中で動作させる.そして,VM マイグレーションの技術を用いることによりアプリケーションを停止することなくインスタンス構成の最適化を行う.また,VM による強い隔離によりアプリケーション間のセキュリティを保つ.我々は FlexCapsule を Xen の Mini-OS および OSv を用いて実装し,FlexCapsule におけるいくつかの機能の性能を調べた.
著者
青葉 隼人 川島 龍太 松尾 啓志
雑誌
研究報告システムソフトウェアとオペレーティング・システム(OS) (ISSN:21888795)
巻号頁・発行日
vol.2023-OS-160, no.4, pp.1-7, 2023-07-27

インメモリ KVS はデータベースや Web アプリケーションで生成されたデータのキャッシュとして用いられている.しかし,インメモリ KVS は Linux カーネルのプロトコルスタックがボトルネックとなる.DPDK と F-Stack を用いてインメモリ KVS を再設計した手法では,Linux カーネルのパケット I/O 処理で生じたオーバーヘッドを解消し高速化を図ったが,依然としてプロトコルスタックがボトルネックとなる.また,XDP を用いてドライバ層でキャッシュを行う手法では,キャッシュヒット時にプロトコルスタックをバイパスしてボトルネックを解消したが,ドライバ層におけるカーネル由来のオーバーヘッドは未解消である.本研究では DPDK を用いた透過型 L2 プロキシで KVS のキャッシュを行う手法を提案する.DPDK によりコンテキスト切り替えのオーバーヘッドを解消し,OSI 参照モデルのデータリンク層でキャッシュ制御を行い,キャッシュヒット時にプロキシがレスポンスを送信してスループットを向上させる.インメモリ DB である Redis に適用して提案手法の性能を評価した結果,キャッシュヒット時においてレイテンシを 36% 削減した.また,READ リクエスト割合の増加に伴いスループット性能が向上し,公式の Redis と比較して最大 13.6 倍向上した.
著者
畑山 大地 山田 浩史
雑誌
研究報告システムソフトウェアとオペレーティング・システム(OS) (ISSN:21888795)
巻号頁・発行日
vol.2023-OS-159, no.5, pp.1-11, 2023-05-09

ECC-uncorrectable メモリエラーはコンピュータシステムの信頼性に大きく影響するが,近年では発生頻度が増加している.オペレーティングシステム(OS)がこうしたメモリエラーに遭遇すると,OS カーネル内のデータが破壊されることで OS は継続稼働が不可能となり,それまでに処理をしていたメモリ上のデータを損失してしまう.この ECC-uncorrectable メモリエラーによる影響を特に受けるのがファイルシステムである.なぜなら,ファイルシステムはバッキングストアへのアクセスによる性能劣化を避けるために,ダーティなデータをバッキングストアに逐次書き出さずに,メモリをキャッシュとして用いて,ある程度纏めてから書き出す手法を採用しているからである.ファイルシステムにはジャーナリング機能を有する場合もあるが,これはファイルシステムとしての整合性を保つことが目的である.アプリケーションからすると,ファイル内容の整合性が保たれていない.そのため,ECC-uncorrectable メモリエラーが検知されるタイミングによってはメモリ上のダーティなデータは同期される前に消失してしまう.本論文では,OS カーネル領域において ECC-uncorrectable メモリエラーが発生した場合でもダーティなデータを失わないファイルシステムを提案する.ECC-uncorrectable メモリエラーの発生箇所がファイルシステムが使用するオブジェクト内ならば修復処理を行い,メモリ上のダーティなデータを同期させる.提案手法を Linux 5.15.54 上に実装を行い,ECC-uncorrectable メモリエラーを模したフォールト下で実験を行った.実験結果として,低いオーバヘッドでダーティなデータを書き出すことを確認した.
著者
小堀 和人 李 忠翰 廣津 登志夫
雑誌
研究報告システムソフトウェアとオペレーティング・システム(OS) (ISSN:21888795)
巻号頁・発行日
vol.2022-OS-155, no.1, pp.1-9, 2022-05-19

近年普及の進んでいるマイクロサービスアーキテクチャでは,多数のモジュールが目的や状況に応じて柔軟に連携しあうため,構成が複雑になりやすくシステム全体を通した性能分析や負荷状況の把握が困難である.このような分散した複数のモジュールからなるサービスの実行状況の監視や性能の分析のためには分散トレーシングが用いられる.分散トレーシングでは,各マイクロサービス上で収集した統計情報の整合性を確保するため,サーバ間の高精度な時刻同期が重要である.Linux 上の高精度時刻同期プロトコル (Precision Time Protocol: PTP) の実装では,NIC のドライバ上でパケットのタイムスタンプを取得することで時刻同期の精度を向上させることができるが,これはドライバの実装に依存するためより汎用な仕組みで実現することが望ましい.本研究ではカーネルが提供する機能の一つである eBPF を用い,可搬性の高い高精度時刻同期を実現した.その設計と実装について述べるとともに,PTP マスタとの同期のずれの推移を元に,本提案実装がドライバ依存の実装と同等の性能を持つことを示す.
著者
森 真誠 深井 貴明 山本 啓二 広渕 崇宏 朝香 卓也
雑誌
研究報告システムソフトウェアとオペレーティング・システム(OS) (ISSN:21888795)
巻号頁・発行日
vol.2022-OS-157, no.7, pp.1-8, 2022-09-06

近年,爆発的に増加するデータを処理するために,多くのソフトウェアが利用されている.これらを共用 HPC システム上で利用する需要はあるものの,現在の共用 HPC システムはユーザが管理者権限を使用 (以後,root 化) できず,これらソフトウェアの導入に多くの労力を要する.また,システムレベルの最適化も root 化ができないため共用 HPC 環境では困難である.一方で共用 HPC 環境で単に root 化を許可すると,ハードウェアへの恒久的な変更などセキュリティや運用上で問題ある操作を防げない.また,ユーザのジョブがシステムの設定を変更できるため,ジョブの実行毎に設定変更の影響を取り除くためのマシン再起動が必要となるものの,再起動処理には多くの時間を要する.仮想計算機を用いるとこれらを解決できるものの,仮想化処理による性能劣化があり HPC システムには適さない.本研究では,上記課題を解決しユーザの root 化を可能とするシステムを提案する.提案システムは軽量なハイパバイザによって (1) ハードウェアの恒久的な変更を防ぐ機能と (2) ジョブ実行後マシンの再起動なしにシステムを既定の状態へ戻す機能を提供する.本手法を富岳と同系統システムで評価するため,Arm プロセッサで動作する軽量ハイパバイザ MilvusVisor と上記 2 つの機能を設計および実装した.本実装による実験の結果,メモリ性能における性能劣化について 2% 以下で上記機能を実現できることを確認した.
著者
谷本 陽祐 山田 浩史
雑誌
研究報告システムソフトウェアとオペレーティング・システム(OS) (ISSN:21888795)
巻号頁・発行日
vol.2023-OS-159, no.13, pp.1-15, 2023-05-09

オペレーティングシステム(OS)カーネルはシステムの根幹をなし,カーネルの障害はシステム全体に影響が及ぶ.一般的なモノリシックカーネルは単一のカーネル空間を持ち,あらゆるシステムコールは単一のメモリ空間を共有している.この問題点の一つとして,カーネル空間でメモリ破壊が発生した際に,カーネル全体に影響が伝播し,カーネルが未定義の動作を起こす可能性がある.しかしながら,現在も Linux や Windows など広く利用されているモノリシックカーネル OS において脆弱性の報告は跡を絶たず,バグ修正までの期間も要する.そこで本研究では,カーネルのメモリ破壊によるエラーの伝播の影響を小さくする手法を提案する.各システムコールが自身に許可されたメモリオブジェクトのみアクセスできるようアクセス制御を行い,不正なアクセスが生じた場合,ページフォルトを起こしてシステムコールの実行を停止させる.これによりカーネルのバグによる誤ったメモリアクセスが未然に阻止され,未定義の動作を防止することができる.本研究では単一のメモリ空間内の隔離(Isolation)に Intel MPK を用いて,提案手法を xv6 に実装し,そのすべてのシステムコールにアクセス制御を実現した.実験の結果,システムコールによる不正アクセスが生じたとき,ページフォルトが発生し実行を停止できた.また,xv6 のテストプログラムである usertests を実行したところ,全体の実行時間は従来の約 1.55 倍であった.
著者
根津 直也 山田 浩史
雑誌
研究報告システムソフトウェアとオペレーティング・システム(OS) (ISSN:21888795)
巻号頁・発行日
vol.2022-OS-155, no.3, pp.1-12, 2022-05-19

メモリ容量の増大や,電圧の微細化などの原因によるメモリエラーの増加に伴い,ソフトウェアにメモリエラー耐性を持たせるための手法が多く提案されている.フォールトインジェクタは擬似的にメモリエラーを発生させる事ツールであり,これらの対策手法の評価・検証に有効である.既存のフォールトインジェクタの多くはメモリ上のランダムな位置にエラーを挿入するという特徴がある.たとえば,LLFI では中間コード内のランダムに選ばれた動的命令の結果に対してエラーを挿入するため,どのデータに対してエラーが挿入されるかはランダムである.このようなランダムにエラーを挿入する手法では,特定のエラーケースを意図的に再現することが難しいと言った問題点がある.本研究では,指定したメモリオブジェクトに対して直接エラーを挿入でき,特定のエラーケースを容易に再現できるフォールトインジェクタを提案する.本フォールトインジェクタは memcached を対象として,メモリオブジェクト情報の表示,指定したメモリオブジェクトへの 2 種類のエラー挿入,エラー挿入後に検証したい処理への遷移などの機能を持つ.また,既存の耐メモリエラー機構である software-based ECC に対して,作成したフォールトインジェクタを適用する事でその有効性の検証も行った.
著者
瀬貫 真菜 石黒 健太 河野 健二
雑誌
研究報告システムソフトウェアとオペレーティング・システム(OS) (ISSN:21888795)
巻号頁・発行日
vol.2022-OS-155, no.5, pp.1-9, 2022-05-19

マルチテナント型のクラウド環境において,ハイパーバイザは仮想マシンの隔離と安全性を保証しているものの,ハイパーバイザにも多くの脆弱性が報告されており,特にデバイスエミュレータはその温床となっている.デバイスエミュレータはその複雑さから修正パッチの開発が容易ではなく,脆弱性の発見からパッチの適用までに長い時間を要することが多い.本論文では,デバイスエミュレータを対象に一時的に脆弱性を防ぐ手法を提案する.デバイスエミュレータの脆弱性を突く攻撃では,通常の I/O 処理では行われることのない I/O 要求を行うことが多い.そこで,脆弱性を突く不正攻撃に特有の I/O 要求を拒否する I/O フィルタの仕組みを導入する.I/O フィルタでは,特定の脆弱性を突くための特徴的な I/O 要求が記述でき,その記述に合致する I/O 要求を拒絶する.このフィルタはデバイスの内部構造を理解することなく記述可能であるため,修正パッチの作成より容易であることが期待できる.実際に CVE-2015-3456 (VENOM),CVE-2016-7909 など 4 個の脆弱性を防ぐフィルタの記述が可能であり,通常時の仮想マシンの動作を阻害することはなく,実行時オーバーヘッドも最大 8% 程度であることを示す.
著者
松村 俊太郎 関谷 博 鍜治 武志 中村 英児
雑誌
研究報告システムソフトウェアとオペレーティング・システム(OS)
巻号頁・発行日
vol.2013-OS-124, no.12, pp.1-7, 2013-02-21

分散処理システムにおいて,アプリケーションの処理速度が低下した場合の発生箇所の絞込みは,(1)自律動作により処理を担当するサブシステムや時系列などが異なること.(2)処理負荷やシステム環境による競合条件などの変化によるボトルネック発生箇所の変化,により困難である.これらの課題に対して,分散処理システムにおいてI/Oシステムコールをトレースして性能情報や呼出し履歴を収集・分析することにより,ボトルネックの発生箇所を特定する方式を提案する.また,提案方式を実装して評価を行い,トレースによる性能低下を抑止しながらI/Oボトルネックの原因となるコード位置が特定できることを報告する.
著者
Wataru Hashimoto Takahiro Shinagawa
雑誌
研究報告システムソフトウェアとオペレーティング・システム(OS) (ISSN:21888795)
巻号頁・発行日
vol.2023-OS-160, no.9, pp.1-9, 2023-07-27

Low-level languages including C/C++ require manual heap management, which often leads to memory-related bugs. The key challenge of UAF prevention is to ensure that freed heap objects are not accessed through dangling pointers, while not introducing significant performance overhead, and preserving the source code compatibility. We present LeaseMalloc, a system that combines a source code transformation and a runtime library to detect UAF. It ”leases” heap objects to users, then ensures that memory is not accessed through dangling pointers by supervising the lease status of heap objects. Lease information is updated dynamically at runtime, which allows LeaseMalloc to skip the lease check to reduce the performance overhead. We implement LeaseMalloc as an LLVM Pass Plugin to instrument target application and confirmed that it can detect temporal memory errors without modifying application source code.
著者
鷲津 優維 牧田 俊明
雑誌
研究報告システムソフトウェアとオペレーティング・システム(OS) (ISSN:21888795)
巻号頁・発行日
vol.2022-OS-156, no.12, pp.1-9, 2022-07-20

今後,5G/6G の普及により,大容量・低遅延を活かしたサービスが MEC 上において展開されることが予測される.また,コンテナ技術が広まることで,この MEC においてもコンテナの利用が予測されるが,Kubernetes などのコンテナ基盤では,ネットワークの様々な機能をソフトウェア実装するため,性能面のオーバヘッドが大きくネットワーク性能向上においてボトルネックとなりうる.このオーバーヘッドの抜本的な解決のために,物理マシン上においてコンテナ基盤を展開する場合,ハードウェアオフロードという手法が存在する.一方で,柔軟性向上等の目的で VM 上においてコンテナ基盤を展開する場合,ゲスト内で動作するコンテナ基盤の管理ソフトウェアから,直接ホストのハードウェアオフロードを制御できないため,この手法を適用できない.そこで,本研究では,VM 上において動作するコンテナ基盤において,ゲストから制御可能なハードウェアオフロードを用いて高速化するために,SR-IOV を用いたホストの仮想ファンクション (VF) をゲストに物理ファンクション (PF) として認識させる手法を検討した.本稿では,SR-IOV の L2 スイッチング機能に対応した,VM 上の仮想ネットワークのハードウェアオフロードを実装し,ネットワーク性能の向上を,スループットとレイテンシの 2 点で確認した.また,SR-IOV の L2 以外のパケットヘッダマッチ機能にも対応させ,コンテナネットワーク機能をオフロードするための実装方針の検討と,それにあたっての課題を述べる.
著者
木村 健人 光来 健一
雑誌
研究報告システムソフトウェアとオペレーティング・システム(OS) (ISSN:21888795)
巻号頁・発行日
vol.2020-OS-150, no.6, pp.1-8, 2020-07-23

近年の大規模かつ複雑なシステムにおいてシステム障害を回避するのは難しい.そのため,システムに障害が発生した場合には迅速に障害を検知して復旧を行うことが重要である.障害からの復旧を行うにはシステムにログインして作業を行う必要があるが,システムが応答しなければハードウェアリセットによって復旧するしかない.しかし,強制的にシステムのリセットを行うとデータが失われ,復旧に時間やコストがかかる可能性がある.本稿では,GPU 上の復旧システムが OS を間接的に制御することでシステム障害からの復旧を行う GPUfas を提案する.GPUfas では,GPU からメインメモリ上の OS データを書き換え,OS 自身の機能を用いて障害の原因を取り除く.復旧の一例として,GPU からプロセスに疑似的なシグナルを送信することによりプロセスレベルの障害からの復旧を可能にする.我々は Linux と CUDA を用いて GPUfas を実装し,GPU からメインメモリ上の OS データを透過的に書き換えられるようにした.VM 内のシステムの障害については,VM イントロスペクションを拡張して OS データを書き換えられるようにした.GPUfas を用いてプロセスレベルの障害からの復旧についての実験を行った.
著者
窪田 貴文 吉村 剛 河野 健二
雑誌
研究報告システムソフトウェアとオペレーティング・システム(OS) (ISSN:21888795)
巻号頁・発行日
vol.2016-OS-136, no.11, pp.1-10, 2016-02-22

ログは実行エラー時のシステムの挙動を理解するのに有効な情報源である.これはログの出力にはデバッグに必要な情報が含まれていたり,また実行パスの推定にも有効だからである.しかしながら,近年のマルチスレッド環境に対応したシステムソフトウェアでは単純なログのみではシステムの挙動を理解するのは難しい.なぜなら,マルチスレッド環境では複数スレッドで共有されるデータによりデータフローがスレッドをまたぎ,スレッド間で依存関係が発生するからである.さらに,このような複雑なデータフローを追跡するログを手動で挿入するのは,ソフトウェアの専門的な知識と開発コストが必要な作業である.そこで,本研究ではスレッド間の依存関係を追跡するログの自動挿入を行なうツールを提案する.提案手法では,型情報を考慮したデータフロー解析を行なうことでスレッドをまたいで依存関係が発生するデータフローのペアを特定し,そのデータフローを追跡するログの自動挿入を行なう.本研究では提案手法を Linux I/O に適用し,実際に Btrfs におけるバグのデバッグにおいて有用性が示している.また,提案手法におけるオーバヘッドはデータベースアプリケーションにおいて約 2%であった.
著者
金津 穂 山田 浩史
雑誌
研究報告システムソフトウェアとオペレーティング・システム(OS) (ISSN:21888795)
巻号頁・発行日
vol.2018-OS-144, no.3, pp.1-6, 2018-07-23

IaaS 型のクラウドプラットフォームでは仮想化技術によって計算資源を細かに制御 ・ 分配することにより,ユーザがオンデマンドに必要最小限の計算資源を借りることができる反面,仮想マシンを借りることになるためユーザが OS の管理を行なわなければならない.PaaS 型のクラウドプラットフォームではユーザが直接アプリケーションをデプロイできるため容易にエンドユーザへサービスを提供できる反面,IaaS 型ほど細かにユーザが計算資源を制御することは不可能である.また,IaaS 型と PaaS 型のどちらにおいても,既存ソフトウェア資産の活用や普及度の問題から既存の汎用 OS が使用されるものの,特定のサービスを稼動させる目的だけを考えると汎用 OS は巨大であり,不要な機能が多い.そこで,カーネル機能をライブラリとしアプリケーションとリンクし単一のプロセス空間へ配置することで,機構を簡易化しオーバヘッドを大幅に削減することによって軽量化とパフォーマンスの向上を実現した Unikerne lが存在する.Unikernel はパフォーマンスや管理の面だけではなく仮想化環境上で直接動作するためカーネルをアプリケーションへ特化させることも容易であるというメリットがある.しかし,単一のプロセス空間で動作するためマルチプロセス機能が存在しないため,POSIX API を実装したものであっても既存のプログラムへの互換性が不十分である.そこで,マルチノードへスケールすることを前提としたマルチプロセス機構を有している Unikernel,Unikernel fork を提案する.Unikernel fork は (1) アプリケーションに応じて容易にカーネルを特化させることができる,(2) マルチプロセスに対応する,(3) 既存のプログラムを改変せず利用可能である,(4) 他ノードへアプリケーション透過的に子プロセスが配置可能である,という四点を特徴とする.本稿では Unikernel fork の実現のため,まずシングルノードで複数 VM を用いてマルチプロセスに対応する Unikernel の機構の設計 ・ 実装を示し,また,今後の課題について検討を行なった.
著者
榎本 優樹 深町 賢一
雑誌
研究報告システムソフトウェアとオペレーティング・システム(OS) (ISSN:21888795)
巻号頁・発行日
vol.2018-OS-142, no.6, pp.1-8, 2018-02-20

OS のユーザランド構成における粒度は OS ごとに様々であるが,運用面を重視すれば,より小さな粒度でのアップデートやリスタート,ロールバックなど,こまやかなシステム管理ができるように OS ビルドシステムを再構成するべきである.歴史的経緯により,Linux ディストリビューションは粒度の細かなパッケージ群から OS が組み上げられているが,BSD Unix はシステム全体でも十数種類の分割で,かつ基本的に上書き処理という粒度の荒い構成となっており,改善が望まれる.そこで,我々は,NetBSD ベースシステムをパッケージ化するシェルスクリプトベースのシステム basepkg を開発し,より細かな粒度でのシステム管理と機能拡充を実現した.basepkg を pkgsrc (NetBSD サードパーティソフトウエア管理フレームワーク) の上に作成することで,既存の不完全なフレームワーク syspkg にくらべ,より少ないコード量で見通しの良いソフトウエアとなっている.また,実運用環境下での評価のため,ベースパッケージ配布サーバも試験運用している.本システムは,NetBSD ユーザやカスタマーにとっての利便性向上に寄与すると考えられるが,解決するべき課題も多い.本稿では,一つの大きなシステムを細かい粒度へ再構成した実践例において,以前より改善できた点と,再構成したことで新たに生じた課題について報告する.