著者
金津 穂 山田 浩史
雑誌
研究報告システムソフトウェアとオペレーティング・システム(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 の機構の設計 ・ 実装を示し,また,今後の課題について検討を行なった.