(57)【要約】【課題】想コンテナインスタンスを起動せずに仮想コンテナインスタンスにおけるファイルシステム内のファイルへのアクセスを容易にすること。【解決手段】本発明にかかるファイルアクセスシステムは、仮想コンテナインスタンスの永続化されたデータが格納された格納領域を含む論理ボリュームと、仮想コンテナインスタンスにおける第１のファイルシステム内の所定のファイルパスに対する操作コマンドを受け付ける受付手段と、格納領域を第２のファイルシステムからアクセス可能にして、当該第２のファイルシステムを介して操作コマンドを実行するアクセス処理手段と、を備える。【選択図】図１
2017076264.tif 000002
【特許請求の範囲】
【請求項１】
仮想コンテナインスタンスの永続化されたデータが格納された格納領域を含む論理ボリュームと、
前記仮想コンテナインスタンスにおける第１のファイルシステム内の所定のファイルパスに対する操作コマンドを受け付ける受付手段と、
前記格納領域を第２のファイルシステムからアクセス可能にして、当該第２のファイルシステムを介して前記操作コマンドを実行するアクセス処理手段と、
を備えるファイルアクセスシステム。
【請求項２】
前記アクセス処理手段は、
前記格納領域を所定のマウントポイントにマウントし、
前記マウントポイントに対して前記操作コマンドを実行する
請求項１に記載のファイルアクセスシステム。
【請求項３】
前記受付手段は、前記仮想コンテナインスタンスの識別情報を前記操作コマンドと共に受け付け、
前記アクセス処理手段は、前記識別情報に基づいて前記マウントポイントを生成し、
前記格納領域を前記生成したマウントポイントにマウントする
請求項２に記載のファイルアクセスシステム。
【請求項４】
前記論理ボリュームにおける前記格納領域を示す領域特定情報を記憶する記憶手段をさらに備え、
前記アクセス処理手段は、
前記領域特定情報から特定される格納領域を論理デバイスとして有効化し、
前記有効化した論理デバイスを前記マウントポイントにマウントし、
前記マウントポイントに対して前記操作コマンドを実行する
請求項２又は３に記載のファイルアクセスシステム。
【請求項５】
前記アクセス処理手段は、
前記操作コマンドの実行後に、前記論理デバイスを前記マウントポイントからアンマウントして無効化する
請求項４に記載のファイルアクセスシステム。
【請求項６】
前記受付手段は、前記所定のファイルパスに対して更新を行う更新コマンドを前記操作コマンドとして受け付け、
前記アクセス処理手段は、前記操作コマンドの実行による更新内容を前記格納領域に反映する
請求項１乃至５のいずれか１項に記載のファイルアクセスシステム。
【請求項７】
前記受付手段は、前記第２のファイルシステムに対する処理を行うホスト環境において、前記操作コマンドを受け付け、
前記アクセス処理手段は、前記ホスト環境において前記操作コマンドを実行する
請求項１乃至６のいずれか１項に記載のファイルアクセスシステム。
【請求項８】
前記アクセス処理手段は、前記仮想コンテナインスタンスが起動していない場合に、前記操作コマンドを実行する
請求項１乃至７のいずれか１項に記載のファイルアクセスシステム。
【請求項９】
仮想コンテナインスタンスにおける第１のファイルシステム内の所定のファイルパスに対する操作コマンドを受け付け、
論理ボリュームに含まれる仮想コンテナインスタンスの永続化されたデータが格納された格納領域を第２のファイルシステムからアクセス可能にし、
前記第２のファイルシステムを介して前記操作コマンドを実行する
ファイルアクセス方法。
【請求項１０】
仮想コンテナインスタンスにおける第１のファイルシステム内の所定のファイルパスに対する操作コマンドを受け付ける処理と、
論理ボリュームに含まれる仮想コンテナインスタンスの永続化されたデータが格納された格納領域を第２のファイルシステムからアクセス可能にする処理と、
前記第２のファイルシステムを介して前記操作コマンドを実行する処理と、
をコンピュータに実行させるファイルアクセスプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ファイルアクセスシステム、方法及びプログラムに関し、特に、仮想コンテナインスタンス内のファイルにアクセスするためのファイルアクセスシステム、方法及びプログラムに関する。
【背景技術】
【０００２】
近年、Docker（登録商標）に代表される仮想コンテナ技術（ＬＸＣ（Ｌｉｎｕｘ（登録商標）  Ｃｏｎｔａｉｎｅｒｓ））の普及により、アプリケーションが依存する環境（ミドルウェアやライブラリ）をバイナリ形式のイメージファイルとして配布することが可能となり、アプリケーションの移植性が向上した。仮想コンテナ基盤は、ホストＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）への環境依存性を排除するために、仮想コンテナインスタンス環境上のプロセスをホストＯＳから隔離した名前空間上のプロセスとして動作させる。
【０００３】
ここで、特許文献１には、計算機管理者が指定したサイズの仮想ディスクボリュームを仮想計算機に割当て、仮想計算機から仮想ディスクボリュームに、ハイパーバイザの介在なしにアクセスする技術が開示されている。また、特許文献２には、予めＮＦＳ（Network File System）で接続されたvirtual file system上のファイルに対して、バックアップサーバからＮＦＳオペレーションを行う技術が開示されている。また、特許文献３には、クラウドコンピューティングシステムから切り出したリソースをクライアント環境に割り当てる技術が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１２−０７９２４５号公報
【特許文献２】欧州特許出願公開第２２３４０１８号明細書
【特許文献３】米国特許出願公開第２０１０／００５０１７３号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ここで、仮想コンテナ技術では、仮想コンテナインスタンスを起動せずには仮想コンテナインスタンスにおけるファイルシステム内のファイルへアクセスすることが困難であるという問題点がある。その理由を以下に説明する。
【０００６】
まず、主な仮想コンテナ基盤ソフトウェアでは、上記の環境依存性の排除を確立するために、いくつかの前提の手順を踏んだ上で、基盤ソフトウェアで公開するＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｉｎｔｅｒｆａｃｅ）を介した運用操作が必要となる。例えば、単純なファイル書き換え操作を行う場合には、仮想コンテナイメージから仮想コンテナインスタンスの起動処理、仮想コンテナインスタンスへのエントリ処理、目的の処理（ファイル書き換え）、仮想コンテナインスタンスの停止処理、そして最後に変更を永続化するために仮想コンテナイメージへの反映処理を行わなければならない。そのため、仮想コンテナイメージにおけるファイルシステム内のファイルへのアクセスを行うためには、仮想コンテナインスタンスに対してこのような運用操作が必要となり、手間が大きい。
【０００７】
また、仮想コンテナインスタンス環境、例えば、仮想コンテナインスタンスにおけるファイルシステム内のファイルは、仮想コンテナ基盤が動作するホスト環境（ホストＯＳ）から仮想的に隔離されている。そのため、ホストＯＳが提供するコマンドを使って、仮想コンテナインスタンス環境からホストＯＳにおけるファイルシステム内のファイルに対するアクセスや、逆に、ホスト環境から仮想コンテナインスタンスにおけるファイルシステム内のファイルに対する直接的なアクセスを行うことができない。したがって、仮想コンテナが提供するＡＰＩを利用するか、ネットワーク等を利用して間接的にファイル操作を行わなければならないという手間がある。
【０００８】
尚、特許文献１から３は、仮想計算機（ＶＭ）に関する技術であり、仮想コンテナに関する上述した課題を解決することはできない。
【０００９】
本発明は、このような問題点を解決するためになされたものであり、仮想コンテナインスタンスを起動せずに仮想コンテナインスタンスにおけるファイルシステム内のファイルへのアクセスを容易にするためのファイルアクセスシステム、方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明の第１の態様にかかるファイルアクセスシステムは、
仮想コンテナインスタンスの永続化されたデータが格納された格納領域を含む論理ボリュームと、
前記仮想コンテナインスタンスにおける第１のファイルシステム内の所定のファイルパスに対する操作コマンドを受け付ける受付手段と、
前記格納領域を第２のファイルシステムからアクセス可能にして、当該第２のファイルシステムを介して前記操作コマンドを実行するアクセス処理手段と、
を備える。
【００１１】
本発明の第２の態様にかかるファイルアクセス方法は、
仮想コンテナインスタンスにおける第１のファイルシステム内の所定のファイルパスに対する操作コマンドを受け付け、
論理ボリュームに含まれる仮想コンテナインスタンスの永続化されたデータが格納された格納領域を第２のファイルシステムからアクセス可能にし、
前記第２のファイルシステムを介して前記操作コマンドを実行する。
【００１２】
本発明の第３の態様にかかるファイルアクセスプログラムは、
仮想コンテナインスタンスにおける第１のファイルシステム内の所定のファイルパスに対する操作コマンドを受け付ける処理と、
論理ボリュームに含まれる仮想コンテナインスタンスの永続化されたデータが格納された格納領域を第２のファイルシステムからアクセス可能にする処理と、
前記第２のファイルシステムを介して前記操作コマンドを実行する処理と、
をコンピュータに実行させる。
【発明の効果】
【００１３】
本発明により、仮想コンテナインスタンスを起動せずに仮想コンテナインスタンスにおけるファイルシステム内のファイルへのアクセスを容易にするためのファイルアクセスシステム、方法及びプログラムを提供することができる。
【図面の簡単な説明】
【００１４】
【図１】本発明の実施の形態１にかかるファイルアクセスシステムの全体構成を示すブロック図である。
【図２】本発明の実施の形態１にかかるファイルアクセス処理の流れを説明するためのフローチャートである。
【図３】本発明の実施の形態２にかかるホストコンピュータの構成を示すブロック図である。
【図４】本発明の実施の形態２にかかる仮想コンテナイメージ情報の例を示す図である。
【図５】本発明の実施の形態２にかかるデバイス構成情報の例を示す図である。
【図６】本発明の実施の形態２にかかるデバイスプール名の例を示す図である。
【図７】本発明の実施の形態２にかかるマウントポイント情報の例を示す図である。
【図８】本発明の実施の形態２にかかるファイルアクセス処理の流れを説明するためのフローチャートである。
【図９】本発明の実施の形態２にかかるファイルアクセスコマンドの例を示す図である。
【図１０】本発明の実施の形態３にかかるファイルアクセスシステムの構成を示すブロック図である。
【発明を実施するための形態】
【００１５】
以下では、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。各図面において、同一要素には同一の符号が付されており、説明の明確化のため、必要に応じて重複説明は省略する。
【００１６】
＜実施の形態１＞
図１は、本発明の実施の形態１にかかるファイルアクセスシステム１の全体構成を示すブロック図である。ファイルアクセスシステム１は、論理ボリューム１１と、受付手段１２と、アクセス処理手段１３とを備える。論理ボリューム１１は、仮想コンテナインスタンスの永続化されたデータが格納された格納領域を含むものである。ここで、仮想コンテナインスタンスの永続化されたデータは、仮想コンテナインスタンスにおける第１のファイルシステムを介してアクセス可能であるものとする。また、論理ボリューム１１は、１以上のストレージデバイスからなる物理デバイス領域を、１以上の論理的なディスクとして扱うための記憶領域である。尚、本発明の実施の形態１にかかるファイルアクセスシステム１が備える論理ボリュームは少なくとも１以上であればよい。そして、仮想コンテナインスタンスの永続化されたデータとは、仮想コンテナインスタンスのイメージデータである。つまり、論理ボリューム１１から切り出された一部の領域に、仮想コンテナインスタンスのイメージデータが格納されていることを示す。そのため、仮想コンテナインスタンスが仮想コンテナ基盤から起動された場合には、論理ボリューム１１内の上記格納領域に対して、仮想コンテナインスタンスにより第１のファイルシステム内の所定のディレクトリ及びファイルへのアクセスが可能である。一方、論理ボリューム１１内の領域は、通常、ホストＯＳ等の後述する第２のファイルシステムを介しては直接アクセスできないものとする。
【００１７】
受付手段１２は、仮想コンテナインスタンスにおける第１のファイルシステム内の所定のファイルパスに対する操作コマンドを受け付ける。アクセス処理手段１３は、前記格納領域を第２のファイルシステムからアクセス可能にして、当該第２のファイルシステムを介して操作コマンドを実行する。
【００１８】
図２は、本発明の実施の形態１にかかるファイルアクセス処理の流れを説明するためのフローチャートである。まず、受付手段１２は、仮想コンテナインスタンスにおける第１のファイルシステム内の所定のファイルパスに対する操作コマンドを受け付ける（Ｓ１１）。次に、アクセス処理手段１３は、論理ボリュームに含まれる仮想コンテナインスタンスの永続化されたデータが格納された格納領域を第２のファイルシステムからアクセス可能にする（Ｓ１２）。そして、アクセス処理手段１３は、第２のファイルシステムを介してステップＳ１１で受け付けた操作コマンドを実行する（Ｓ１３）。
【００１９】
このように、本発明の実施の形態１により、アクセス処理手段１３が論理ボリューム１１のうち仮想コンテナインスタンスの永続化されたデータが格納された格納領域について、仮想コンテナインスタンスにおける第１のファイルシステム以外である第２のファイルシステムからアクセス可能にするものである。そのため、第２のファイルシステムを介して第１のファイルシステム内の所定のファイルパスに対する操作コマンドを実行できる。そのため、仮想コンテナインスタンスを起動する必要がなく、仮想コンテナインスタンスにおけるファイルシステム内のファイルへのアクセスを容易にすることができる。
【００２０】
＜実施の形態２＞
図３は、本発明の実施の形態２にかかるホストコンピュータ１００の構成を示すブロック図である。ホストコンピュータ１００は、特定のホストＯＳ環境上に仮想コンテナ基盤ソフトウェアがインストールされており、同環境上でユーザにより１つ以上のコンテナイメージが作成済みであるものとする。尚、以下の例では仮想コンテナ基盤としてＤｏｃｋｅｒを、ブロックデバイスドライバとしてＤｅｖｉｃｅｍａｐｐｅｒを想定する。また、Ｄｅｖｉｃｅｍａｐｐｅｒに対する操作手段はシステムコールＩＯＣＴＬを利用した場合を想定する。さらに、Ｄｅｖｉｃｅｍａｐｐｅｒによるデバイステーブルのマッピング手段はｔｈｉｎ−ｐｏｏｌとする。
【００２１】
ホストコンピュータ１００は、ホストＯＳ１１０と、ディスク装置１２０とを備える。ホストコンピュータ１００は、汎用的なコンピュータ装置であり、そのハードウェア構成は公知なものであるため、詳細な説明を省略する。尚、図３は、ホストコンピュータ１００について機能ブロックとして示したものである。
【００２２】
ディスク装置１２０は、領域１２１、１２２・・・等の複数の領域に区切られている。尚、ホストコンピュータ１００は、少なくとも１以上のディスク装置を備えていればよい。領域１２１等には、ホストコンピュータ１００で使用される各種データが格納されている。ここでは、領域１２１は、ホストＯＳ１１０のファイルシステムにマウントされており、領域１２２は、ホストＯＳ１１０のファイルシステムにはマウントされていないものとする。そして、領域１２２には、仮想コンテナインスタンスのイメージデータが格納されているものとする。
【００２３】
ホストＯＳ１１０は、仮想コンテナ基盤２０と、ブロックデバイスドライバ３０と、静的ファイル操作手段４０とを備える。
【００２４】
ブロックデバイスドライバ３０は、制御部３１と、デバイスプール３２とを備える。制御部３１は、ホストＯＳ１１０がブロックデバイスへのアクセスを制御するドライバソフトウェアである。制御部３１は、ＩＯＣＴＬ関数を介して渡されるデバイスＩＤ、サイズ及びプール名の情報を元に、デバイスプール３２の特定の領域を論理デバイスとして有効化する。
【００２５】
デバイスプール３２は、予め制御部３１を介してユーザにより物理デバイス領域が論理ボリューム化された領域である。デバイスプール３２は、ディスク装置１２０の領域１２２等の物理デバイス領域を論理デバイスとして管理する。各論理デバイスにはデバイスＩＤが付与されているものとする。そして、デバイスプール３２は、ユーザの要求内容に応じて論理ボリューム領域から特定の領域を切り出して論理デバイスとして利用することが可能な記憶領域である。
【００２６】
仮想コンテナ基盤２０は、仮想コンテナ制御部２１と、仮想コンテナ構成情報記憶装置２２とを備える。仮想コンテナ制御部２１は、ユーザからの処理リクエストを受け付けるコマンドインターフェースを有するソフトウェアである。そして、仮想コンテナ制御部２１は、仮想コンテナの起動、停止及び永続化等のコマンドに応じて、仮想コンテナ構成情報記憶装置２２に格納された情報を用いて、ブロックデバイスドライバ３０が管理するデバイスプール３２に格納された仮想コンテナインスタンスの永続化されたデータであるイメージデータにアクセスする。そして、仮想コンテナ制御部２１は、アクセスしたイメージデータを元に、ブロックデバイスドライバ３０を介して仮想コンテナインスタンスのスナップショットを作成し、ホストＯＳ１１０のファイルシステムにおける特定のディレクトリにマウントし、仮想コンテナインスタンスを生成し、生成した仮想コンテナインスタンスからアクセス可能なファイルシステムとして割り当てる。
【００２７】
仮想コンテナ構成情報記憶装置２２は、仮想コンテナイメージ情報２２１と、デバイス構成情報２２２と、デバイスプール名２２３とを記憶する。図４は、本発明の実施の形態２にかかる仮想コンテナイメージ情報２２１の例を示す図である。仮想コンテナイメージ情報２２１は、ユーザが作成した仮想コンテナインスタンスのイメージ名（以下、「仮想コンテナイメージ名」と呼ぶ。）と、イメージＩＤ（以下、「仮想コンテナイメージＩＤ」と呼ぶ。）とを対応付けた永続化されたデータである。仮想コンテナイメージ名及び仮想コンテナイメージＩＤは、仮想コンテナインスタンスの識別情報の一例である。
【００２８】
図５は、本発明の実施の形態２にかかるデバイス構成情報２２２の例を示す図である。デバイス構成情報２２２は、仮想コンテナイメージＩＤと、デバイスＩＤと、サイズとを対応付けた永続化されたデータである。ここで、デバイスＩＤとは、デバイスプール３２で管理される論理デバイスを特定するための情報である。サイズは、対応するデバイスＩＤにおける永続データ量を示す情報である。
【００２９】
図６は、本発明の実施の形態２にかかるデバイスプール名２２３の例を示す図である。デバイスプール名２２３は、仮想コンテナ基盤２０がブロックデバイスドライバ３０を介して作成したデバイスプールの名称である。
【００３０】
静的ファイル操作手段４０は、制御部４１と、マウントポイント記憶装置４２とを備える。制御部４１は、上述した受付手段１２及びアクセス処理手段１３の一例である。制御部４１は、ユーザからのファイルアクセスコマンドを受け付ける。ファイルアクセスコマンドの引数としては、操作対象となる仮想コンテナイメージ名と、コマンドラインイメージが含まれる。コマンドラインイメージは、仮想コンテナインスタンスにおけるファイルシステム内の所定のディレクトリ及びファイルで特定されるファイルパスと、当該ファイルパスに対する操作コマンドとを含む。
【００３１】
制御部４１は、仮想コンテナ構成情報記憶装置２２に格納された仮想コンテナイメージ情報２２１を参照して、受け付けた仮想コンテナイメージ名に対応付けられた仮想コンテナイメージＩＤを取得する。言い換えると、制御部４１は、仮想コンテナイメージ名から、対応する仮想コンテナイメージＩＤに変換する。その後、制御部４１は、仮想コンテナイメージＩＤを用いて仮想コンテナインスタンスのファイルシステムマウントポイント先を決定し、マウントポイント記憶装置４２へ格納する。
【００３２】
また、制御部４１は、仮想コンテナ構成情報記憶装置２２に格納されたデバイス構成情報２２２を参照して、受け付けた仮想コンテナイメージ名に対応付けられたデバイスＩＤ及びサイズを取得する。併せて、制御部４１は、仮想コンテナ構成情報記憶装置２２に格納されたデバイスプール名２２３を取得する。その後、制御部４１は、ＩＯＣＴＬ関数を介して、デバイスプール名２２３、デバイスＩＤ及びサイズによりデバイスプール３２内の領域を特定する。そして、制御部４１は、特定した領域を論理デバイスとして有効化するようにブロックデバイスドライバ３０に依頼する。そして、制御部４１は、有効化された論理デバイスを、マウントポイント記憶装置４２に格納したマウントポイント先にマウントする。
【００３３】
制御部４１は、マウントの完了後に、ユーザから受け付けたコマンドラインイメージを実行する。実行終了後、制御部４１は、論理デバイスをマウントポイント先からアンマウントし、論理デバイスを無効化し、マウントポイント記憶装置４２からマウントポイントの情報を削除する。
【００３４】
マウントポイント記憶装置４２は、制御部４１により決定されたマウントポイントを記憶する。図７は、本発明の実施の形態２にかかるマウントポイント情報の例を示す図である。マウントポイント情報は、仮想コンテナインスタンスのイメージＩＤとマウントポイント先とを対応付けた永続化されたデータである。
【００３５】
ここで、本実施の形態は、次のように表現することができる。すなわち、前記アクセス処理手段は、少なくとも前記格納領域を所定のマウントポイントにマウントし、前記マウントポイントに対して前記操作コマンドを実行するものである。このように、元々第２のファイルシステムからアクセスできなかった仮想コンテナイメージの格納領域をマウントすることにより、受け付けたファイルパスでのアクセスが可能となる。
【００３６】
また、前記受付手段は、前記仮想コンテナインスタンスの識別情報を前記操作コマンドと共に受け付け、前記アクセス処理手段は、前記識別情報に基づいて前記マウントポイントを生成し、前記格納領域を前記生成したマウントポイントにマウントすることが望ましい。これにより、対象の仮想コンテナインスタンスに対応する一意なマウントポイントによりアクセスすることができる。
【００３７】
さらに、前記論理ボリュームにおける前記格納領域を示す領域特定情報を記憶する記憶手段をさらに備え、前記アクセス処理手段は、前記領域特定情報から特定される格納領域を論理デバイスとして有効化し、前記有効化した論理デバイスを前記マウントポイントにマウントし、前記マウントポイントに対して前記操作コマンドを実行するとよい。
【００３８】
さらにまた、前記アクセス処理手段は、前記操作コマンドの実行後に、前記論理デバイスを前記マウントポイントからアンマウントして無効化するとよい。これにより、一回のファイルアクセスコマンド実行により処理が完結し、ファイルシステムを実行前の状態に戻すため、他の処理（その後の仮想コンテナ起動等）に影響を与えない。
【００３９】
また、前記受付手段は、前記所定のファイルパスに対して更新を行う更新コマンドを前記操作コマンドとして受け付け、前記アクセス処理手段は、前記操作コマンドの実行による更新内容を前記格納領域に反映するとよい。これにより、仮想コンテナインスタンスを起動せずに、コンテナイメージの永続化を行うことができ、スナップショットが不要となり、ファイルＩ／Ｏの劣化を抑制できる。
【００４０】
また、前記受付手段は、前記第２のファイルシステムに対する処理を行うホスト環境において、前記操作コマンドを受け付け、前記アクセス処理手段は、前記ホスト環境において前記操作コマンドを実行する。これにより、仮想コンテナインスタンスとは異なる環境から仮想コンテナインスタンスを起動せずに、仮想コンテナインスタンス内のファイルへのアクセスが実現できる。
【００４１】
さらに、前記アクセス処理手段は、前記仮想コンテナインスタンスが起動していない場合に、前記操作コマンドを実行するとよい。このような排他制御により、ファイルアクセスコマンド実行時の安全性を確保できる。
【００４２】
図８は、本発明の実施の形態２にかかるファイルアクセス処理の流れを説明するためのフローチャートである。ここでは、特定の仮想コンテナインスタンスのイメージＩＤで特定される仮想コンテナイメージにおいて、仮想コンテナイメージ内に展開されているファイルシステム内の特定のディレクトリにおいて特定のファイルをコピーする場合を例に説明する。
【００４３】
尚、デバイスプール３２の領域は、仮想コンテナ基盤２０が仮想コンテナイメージを格納するために、仮想コンテナ基盤２０の環境構築の際に、予め作成されているものとする。そして、デバイスプール３２の領域は、一意のプール名”docker-253:0-204468014-pool”で特定されているものとする。また、以下の説明のために、仮想コンテナ名”ImageA”で特定される仮想コンテナイメージが仮想コンテナ基盤２０上に構築されているものとする。また、仮想コンテナ構成情報記憶装置２２には、図４〜図６で示されるデータが登録されているものとする。また、コンテナイメージがマッピングされた論理デバイスが特定のパスにマウントされている間は、その論理デバイスに対してはＯＳ及びDevicemapperにより排他制御が行われるものとする。さらに、ホストＯＳのファイルシステムの管理下には、“/opt/dir/fileA”というディレクトリ及びファイルが存在しないものとする。
【００４４】
まず、ユーザは、静的ファイル操作手段４０を介して、仮想コンテナイメージ名と実行対象のコマンドラインイメージを引数とするファイルアクセスコマンドを入力する。ここで、図９は、本発明の実施の形態２にかかるファイルアクセスコマンドの例を示す図である。ここで、“ＳＦＯ”は、本発明の実施の形態２にかかるファイルアクセスコマンドの一例である。また、”ImageA”は仮想コンテナイメージ名であり、”cp /opt/dir/fileA /opt/dir/fileB”は仮想コンテナインスタンス環境におけるコマンドラインイメージである。“cp”は、上述した操作コマンドの一例であり、ホストＯＳのコマンドでもある。また、ファイルパス“/opt/dir/fileA”及び“/opt/dir/fileB”は、”ImageA”により特定される仮想コンテナインスタンスにおけるファイルシステム内の（ルートディレクトリからの）所定のファイルパスの一例である。
【００４５】
ここで、実行対象のコマンドラインイメージは、本来であれば、”ImageA”により特定される仮想コンテナインスタンスが起動された後に、各種手順を踏むことで実行可能なコマンドラインである。そのため、この段階では、仮想コンテナインスタンスのファイルシステムが管理する“/opt/dir”ディレクトリ以下のファイルに対して、ホストＯＳからはアクセスできない状態である。そのため、この段階ではホストＯＳ上で”cp /opt/dir/fileA /opt/dir/fileB”をそのまま実行できない。
【００４６】
尚、仮に、ホストＯＳのファイルシステムの管理下に“/opt/dir/fileA”というディレクトリ及びファイルが存在したとしても、”ImageA”により特定される仮想コンテナインスタンスにおけるファイルシステムの管理下のディレクトリ及びファイルとは異なるものであるため、この段階での”cp /opt/dir/fileA /opt/dir/fileB”の実行結果は、ユーザの意図とは異なったものとなってしまう。
【００４７】
制御部４１は、ユーザの入力により、仮想コンテナイメージ名と実行対象のコマンドラインイメージを引数とするファイルアクセスコマンドを受信する（Ｓ２１）。そして、制御部４１は、仮想コンテナ構成情報記憶装置２２を参照し、仮想コンテナイメージ情報２２１から仮想コンテナイメージ名”ImageA”に対応付けられた仮想コンテナイメージＩＤ” 44bf58acdee7893aa8f985f565222711f1021e2ef374a62eeeca8e2be8f3823c”を取得する。その後、制御部４１は、取得した仮想コンテナイメージＩＤを元にマウントポイントを” /mnt/44bf58acdee7893aa8f985f565222711f1021e2ef374a62eeeca8e2be8f3823c”に決定する。この時、該当するマウントポイント先のパスが存在しない場合は、制御部４１は、該当するマウントポイント先に対応するディレクトリの作成を行う。そして、制御部４１は、マウントポイント先パスの情報をマウントポイント記憶装置４２へ格納する（Ｓ２４）。
【００４８】
また、制御部４１は、仮想コンテナイメージＩＤをキーに仮想コンテナ制御部２１を介して仮想コンテナ構成情報記憶装置２２からデバイスＩＤの値”580”およびサイズの値”10737418240”を取得する（Ｓ２５）。そして、制御部４１は、デバイスＩＤ”580”、サイズ”10737418240”と、仮想コンテナ構成情報記憶装置２２に格納されたプール名”docker-253:0-204468014-pool”を引数に、ＩＯＣＴＬ関数を介してデバイスプール３２内から仮想コンテナイメージ”ImageA”の永続データが格納された領域を論理デバイスとして有効化する（Ｓ２６）。具体的には、ブロックデバイスドライバ３０がＩＯＣＴＬを介して得られたリクエストに従って、指定領域を論理デバイスとして有効化する。そして、制御部４１は、マウントポイント記憶装置４２からマウントポイント先を読み出し、有効化された論理デバイスを、読み出したマウントポイント先にマウントする（Ｓ２７）。これにより、ホストＯＳにおけるファイルシステムから仮想コンテナインスタンスにおけるファイルシステム内のファイルに対してアクセス可能となる。
【００４９】
マウントの完了後、制御部４１は、ステップＳ２１でユーザから入力されたコマンドライン”cp /opt/dir/fileA /opt/dir/fileB”を、ホストＯＳ上で実行する（Ｓ２８）。上述の通り、仮想コンテナインスタンスにおけるファイルシステムの管理下のルートディレクトリ以下がホストＯＳにおけるファイルシステムの管理下のマウントポイント先にマウントされたことにより、上記コマンドラインで指定されたファイルパスにより、仮想コンテナインスタンスにおけるファイルシステム内のファイルを参照でき、ユーザの意図通りのファイルに対するアクセスが実施される。特に、この例では、操作コマンドがホストＯＳが提供するファイルのコピーコマンドであるため、”ImageA”で特定される仮想コンテナインスタンスを起動せずに、仮想コンテナインスタンスのイメージデータに対して、コピー先のファイルを直接書き込むことができる。
【００５０】
操作コマンドの実行による処理の完了後、制御部４１は、論理デバイスのアンマウント、無効化、及び、マウントポイント記憶装置４２から該当するマウントポイント先の情報の削除を順次行う（Ｓ２９）。
【００５１】
本実施の形態により仮想コンテナインスタンスの起動から永続処理までにかかるコストについて、仮想コンテナ基盤が論理デバイス上に展開した仮想コンテナイメージ毎のデバイス構成を解析し、特定の仮想コンテナイメージのファイルシステムをホストＯＳにおけるファイルシステムにマウントすることで、本来、仮想コンテナインスタンス内に隔離されているファイルシステムへ、仮想コンテナインスタンスを介することなくアクセス可能となる。つまり、仮想コンテナインスタンスの起動から永続化までの操作をすることなく仮想コンテナイメージ上のファイルシステムへのアクセスが可能となる。
また、ホストＯＳのファイルシステムに各仮想コンテナイメージのファイルシステムを直接マウントすることで、ホストＯＳのコマンドを利用して直接的にファイル操作を行うことが可能となる。
【００５２】
ここで、本実施の形態によりファイルＩ／Ｏの劣化を抑制できる点について説明する。まず、一般的には、仮想コンテナインスタンス上のファイルシステムへの操作により生じた変更内容を新たな仮想コンテナイメージとして永続的に保存する手段として、論理ボリュームのスナップショット機構が利用されている。そのため、仮想コンテナインスタンスの永続処理を行う度にスナップショットが作成されることとなる。現状の仮想コンテナ基盤のファイルシステム機構はＵｎｉｏｎ  ＦＳを採用していることが多い。そのため、永続処理、すなわち、スナップショットの作成に応じてファイルＩ／Ｏが劣化する傾向にある。つまり、これまでの仮想コンテナ環境では、論理ボリュームのスナップショット機能を利用して仮想コンテナイメージの永続化を行っていたため、仮想コンテナイメージ管理の利便性を上げる反面、スナップショット機構に起因するファイルＩ／Ｏの劣化を発生させていた。そのため、ユーザとしては、極力、スナップショットを作成しないような運用操作を行う手段が望まれる。しかしながら、主な仮想コンテナ基盤ソフトウェアでは現状、そのような手段を有していなかった。そこで、本実施の形態により、ホストＯＳのファイルシステムから仮想コンテナのファイルシステム内のファイルを操作できるため、スナップショットを作成することなく仮想コンテナイメージ上のファイルシステムへの永続化が可能となる。そのため、ファイルＩ／Ｏの劣化原因を抑制することができる。
【００５３】
＜実施の形態３＞
上述した実施の形態２では、単一のホストコンピュータ内での実施例を説明したが、本実施の形態３では、仮想コンテナインスタンスのイメージデータと、マウントポイントとが異なるホストコンピュータに存在する例について説明する。
【００５４】
図１０は、本発明の実施の形態３にかかるファイルアクセスシステム２００の構成を示すブロック図である。ファイルアクセスシステム２００は、ホストコンピュータ５０と、ホストコンピュータ６０とを備える。ホストコンピュータ５０は、ホストＯＳ５１が稼働し、少なくとも静的ファイル操作手段５２を備える。静的ファイル操作手段５２は、上述した静的ファイル操作手段４０と同等の構成である。但し、静的ファイル操作手段５２は、ネットワークを介してホストコンピュータ６０にアクセス可能である。
【００５５】
ホストコンピュータ６０は、ホストＯＳ６１と、ディスク装置６２とを備える。ホストＯＳ６１は、少なくとも仮想コンテナ基盤６１１と、ブロックデバイスドライバ６１２とを備える。仮想コンテナ基盤６１１は上述した仮想コンテナ基盤２０と同等の構成であり、ブロックデバイスドライバ６１２は上述したブロックデバイスドライバ３０と同等の構成である。また、ディスク装置６２は、上述したディスク装置１２０と同等の構成である。
【００５６】
静的ファイル操作手段５２は、ユーザから図９に示したようなファイルアクセスコマンドを受信した場合に、ネットワークを介して仮想コンテナ基盤６１１から仮想コンテナイメージ名に基づいて仮想コンテナイメージＩＤを特定して、ホストＯＳ５１のファイルシステムの管理下のマウントポイント先を決定する。また、静的ファイル操作手段５２は、ネットワークを介して仮想コンテナ基盤６１１から仮想コンテナイメージＩＤに基づいてデバイスＩＤ及びサイズ並びにデバイスプール名を取得し、ブロックデバイスドライバ６１２に対して論理デバイスの有効化をさせる。その後、静的ファイル操作手段５２は、有効化された論理デバイスを決定したマウントポイント先にマウントし、入力されたコマンドラインを実行する。そして、実行後にホストＯＳ５１は、論理デバイスのアンマウント及び無効化等を行う。このように、本発明の実施の形態３にかかるファイルアクセスシステム２００も上述と同様の効果を奏することができる。
【００５７】
尚、図１０では、ホストコンピュータ５０及び６０の最少限の機能ブロックのみを示したがこれに限定されない。つまり、ホストコンピュータ５０及び６０とは、同等の機能を有し、ホストコンピュータ５０と６０の役割を入れ替えても構わない。また、本実施の形態では、ホストコンピュータは３台以上であっても構わない。
【００５８】
＜その他の実施の形態＞
本発明の各実施の形態は、仮想コンテナ技術によって構成される環境において、隔離された仮想コンテナ空間を提供するシステムということができる。
【００５９】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。
【００６０】
また、上述の実施の形態では、本発明をハードウェアの構成として説明したが、本発明は、これに限定されるものではない。本発明は、任意の処理を、ＣＰＵ（Central Processing Unit）にコンピュータプログラムを実行させることにより実現することも可能である。
【００６１】
上述の例において、プログラムは、様々なタイプの非一時的なコンピュータ可読媒体（non-transitory computer readable medium）を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体（tangible storage medium）を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば光磁気ディスク）、ＣＤ−ＲＯＭ（Read Only Memory）、ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、ＤＶＤ（Digital Versatile Disc）、ＢＤ（Blu-ray（登録商標） Disc）、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ（Programmable ROM）、ＥＰＲＯＭ（Erasable PROM）、フラッシュＲＯＭ、ＲＡＭ（Random Access Memory））を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体（transitory computer readable medium）によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【００６２】
上記の実施形態の一部又は全部は、以下の付記のようにも記載され得るが、以下には限られない。
（付記１）
仮想コンテナインスタンスの永続化されたデータが格納された格納領域を含む論理ボリュームと、
前記仮想コンテナインスタンスにおける第１のファイルシステム内の所定のファイルパスに対する操作コマンドを受け付ける受付手段と、
前記格納領域を第２のファイルシステムからアクセス可能にして、当該第２のファイルシステムを介して前記操作コマンドを実行するアクセス処理手段と、
を備えるファイルアクセスシステム。
（付記２）
前記アクセス処理手段は、
前記格納領域を所定のマウントポイントにマウントし、
前記マウントポイントに対して前記操作コマンドを実行する
付記１に記載のファイルアクセスシステム。
（付記３）
前記受付手段は、前記仮想コンテナインスタンスの識別情報を前記操作コマンドと共に受け付け、
前記アクセス処理手段は、前記識別情報に基づいて前記マウントポイントを生成し、
前記格納領域を前記生成したマウントポイントにマウントする
付記２に記載のファイルアクセスシステム。
（付記４）
前記論理ボリュームにおける前記格納領域を示す領域特定情報を記憶する記憶手段をさらに備え、
前記アクセス処理手段は、
前記領域特定情報から特定される格納領域を論理デバイスとして有効化し、
前記有効化した論理デバイスを前記マウントポイントにマウントし、
前記マウントポイントに対して前記操作コマンドを実行する
付記２又は３に記載のファイルアクセスシステム。
（付記５）
前記アクセス処理手段は、
前記操作コマンドの実行後に、前記論理デバイスを前記マウントポイントからアンマウントして無効化する
付記４に記載のファイルアクセスシステム。
（付記６）
前記受付手段は、前記所定のファイルパスに対して更新を行う更新コマンドを前記操作コマンドとして受け付け、
前記アクセス処理手段は、前記操作コマンドの実行による更新内容を前記格納領域に反映する
付記１乃至５のいずれか１項に記載のファイルアクセスシステム。
（付記７）
前記受付手段は、前記第２のファイルシステムに対する処理を行うホスト環境において、前記操作コマンドを受け付け、
前記アクセス処理手段は、前記ホスト環境において前記操作コマンドを実行する
付記１乃至６のいずれか１項に記載のファイルアクセスシステム。
（付記８）
前記アクセス処理手段は、前記仮想コンテナインスタンスが起動していない場合に、前記操作コマンドを実行する
付記１乃至７のいずれか１項に記載のファイルアクセスシステム。
（付記９）
仮想コンテナインスタンスにおける第１のファイルシステム内の所定のファイルパスに対する操作コマンドを受け付け、
論理ボリュームに含まれる仮想コンテナインスタンスの永続化されたデータが格納された格納領域を第２のファイルシステムからアクセス可能にし、
前記第２のファイルシステムを介して前記操作コマンドを実行する
ファイルアクセス方法。
（付記１０）
仮想コンテナインスタンスにおける第１のファイルシステム内の所定のファイルパスに対する操作コマンドを受け付ける処理と、
論理ボリュームに含まれる仮想コンテナインスタンスの永続化されたデータが格納された格納領域を第２のファイルシステムからアクセス可能にする処理と、
前記第２のファイルシステムを介して前記操作コマンドを実行する処理と、
をコンピュータに実行させるファイルアクセスプログラム。
【符号の説明】
【００６３】
１  ファイルアクセスシステム
１１  論理ボリューム
１１１  格納領域
１２  受付手段
１３  アクセス処理手段
１００  ホストコンピュータ
１１０  ホストＯＳ
１２０  ディスク装置
１２１  領域
１２２  領域
２０  仮想コンテナ基盤
２１  仮想コンテナ制御部
２２  仮想コンテナ構成情報記憶装置
２２１  仮想コンテナイメージ情報
２２２  デバイス構成情報
２２３  デバイスプール名
３０  ブロックデバイスドライバ
３１  制御部
３２  デバイスプール
４０  静的ファイル操作手段
４１  制御部
４２  マウントポイント記憶装置
２００  ファイルアクセスシステム
５０  ホストコンピュータ
５１  ホストＯＳ
５２  静的ファイル操作手段
６０  ホストコンピュータ
６１  ホストＯＳ
６１１  仮想コンテナ基盤
６１２  ブロックデバイスドライバ
６２  ディスク装置
【図１】
2017076264.tif 000003
【図２】
2017076264.tif 000004
【図３】
2017076264.tif 000005
【図４】
2017076264.tif 000006
【図５】
2017076264.tif 000007
【図６】
2017076264.tif 000008
【図７】
2017076264.tif 000009
【図８】
2017076264.tif 000010
【図９】
2017076264.tif 000011
【図１０】
2017076264.tif 000012