JP2017076264A - ファイルアクセスシステム、方法及びプログラム - Google Patents

ファイルアクセスシステム、方法及びプログラム Download PDF

Info

Publication number
JP2017076264A
JP2017076264A JP2015203625A JP2015203625A JP2017076264A JP 2017076264 A JP2017076264 A JP 2017076264A JP 2015203625 A JP2015203625 A JP 2015203625A JP 2015203625 A JP2015203625 A JP 2015203625A JP 2017076264 A JP2017076264 A JP 2017076264A
Authority
JP
Japan
Prior art keywords
file
virtual container
operation command
access
container instance
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2015203625A
Other languages
English (en)
Inventor
誠 島本
Makoto Shimamoto
誠 島本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2015203625A priority Critical patent/JP2017076264A/ja
Priority to US15/287,907 priority patent/US20170109372A1/en
Publication of JP2017076264A publication Critical patent/JP2017076264A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/188Virtual file systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】想コンテナインスタンスを起動せずに仮想コンテナインスタンスにおけるファイルシステム内のファイルへのアクセスを容易にすること。【解決手段】本発明にかかるファイルアクセスシステムは、仮想コンテナインスタンスの永続化されたデータが格納された格納領域を含む論理ボリュームと、仮想コンテナインスタンスにおける第1のファイルシステム内の所定のファイルパスに対する操作コマンドを受け付ける受付手段と、格納領域を第2のファイルシステムからアクセス可能にして、当該第2のファイルシステムを介して操作コマンドを実行するアクセス処理手段と、を備える。【選択図】図1

Description

本発明は、ファイルアクセスシステム、方法及びプログラムに関し、特に、仮想コンテナインスタンス内のファイルにアクセスするためのファイルアクセスシステム、方法及びプログラムに関する。
近年、Docker(登録商標)に代表される仮想コンテナ技術(LXC(Linux(登録商標) Containers))の普及により、アプリケーションが依存する環境(ミドルウェアやライブラリ)をバイナリ形式のイメージファイルとして配布することが可能となり、アプリケーションの移植性が向上した。仮想コンテナ基盤は、ホストOS(Operating System)への環境依存性を排除するために、仮想コンテナインスタンス環境上のプロセスをホストOSから隔離した名前空間上のプロセスとして動作させる。
ここで、特許文献1には、計算機管理者が指定したサイズの仮想ディスクボリュームを仮想計算機に割当て、仮想計算機から仮想ディスクボリュームに、ハイパーバイザの介在なしにアクセスする技術が開示されている。また、特許文献2には、予めNFS(Network File System)で接続されたvirtual file system上のファイルに対して、バックアップサーバからNFSオペレーションを行う技術が開示されている。また、特許文献3には、クラウドコンピューティングシステムから切り出したリソースをクライアント環境に割り当てる技術が開示されている。
特開2012−079245号公報 欧州特許出願公開第2234018号明細書 米国特許出願公開第2010/0050173号明細書
ここで、仮想コンテナ技術では、仮想コンテナインスタンスを起動せずには仮想コンテナインスタンスにおけるファイルシステム内のファイルへアクセスすることが困難であるという問題点がある。その理由を以下に説明する。
まず、主な仮想コンテナ基盤ソフトウェアでは、上記の環境依存性の排除を確立するために、いくつかの前提の手順を踏んだ上で、基盤ソフトウェアで公開するAPI(Application Programming Interface)を介した運用操作が必要となる。例えば、単純なファイル書き換え操作を行う場合には、仮想コンテナイメージから仮想コンテナインスタンスの起動処理、仮想コンテナインスタンスへのエントリ処理、目的の処理(ファイル書き換え)、仮想コンテナインスタンスの停止処理、そして最後に変更を永続化するために仮想コンテナイメージへの反映処理を行わなければならない。そのため、仮想コンテナイメージにおけるファイルシステム内のファイルへのアクセスを行うためには、仮想コンテナインスタンスに対してこのような運用操作が必要となり、手間が大きい。
また、仮想コンテナインスタンス環境、例えば、仮想コンテナインスタンスにおけるファイルシステム内のファイルは、仮想コンテナ基盤が動作するホスト環境(ホストOS)から仮想的に隔離されている。そのため、ホストOSが提供するコマンドを使って、仮想コンテナインスタンス環境からホストOSにおけるファイルシステム内のファイルに対するアクセスや、逆に、ホスト環境から仮想コンテナインスタンスにおけるファイルシステム内のファイルに対する直接的なアクセスを行うことができない。したがって、仮想コンテナが提供するAPIを利用するか、ネットワーク等を利用して間接的にファイル操作を行わなければならないという手間がある。
尚、特許文献1から3は、仮想計算機(VM)に関する技術であり、仮想コンテナに関する上述した課題を解決することはできない。
本発明は、このような問題点を解決するためになされたものであり、仮想コンテナインスタンスを起動せずに仮想コンテナインスタンスにおけるファイルシステム内のファイルへのアクセスを容易にするためのファイルアクセスシステム、方法及びプログラムを提供することを目的とする。
本発明の第1の態様にかかるファイルアクセスシステムは、
仮想コンテナインスタンスの永続化されたデータが格納された格納領域を含む論理ボリュームと、
前記仮想コンテナインスタンスにおける第1のファイルシステム内の所定のファイルパスに対する操作コマンドを受け付ける受付手段と、
前記格納領域を第2のファイルシステムからアクセス可能にして、当該第2のファイルシステムを介して前記操作コマンドを実行するアクセス処理手段と、
を備える。
本発明の第2の態様にかかるファイルアクセス方法は、
仮想コンテナインスタンスにおける第1のファイルシステム内の所定のファイルパスに対する操作コマンドを受け付け、
論理ボリュームに含まれる仮想コンテナインスタンスの永続化されたデータが格納された格納領域を第2のファイルシステムからアクセス可能にし、
前記第2のファイルシステムを介して前記操作コマンドを実行する。
本発明の第3の態様にかかるファイルアクセスプログラムは、
仮想コンテナインスタンスにおける第1のファイルシステム内の所定のファイルパスに対する操作コマンドを受け付ける処理と、
論理ボリュームに含まれる仮想コンテナインスタンスの永続化されたデータが格納された格納領域を第2のファイルシステムからアクセス可能にする処理と、
前記第2のファイルシステムを介して前記操作コマンドを実行する処理と、
をコンピュータに実行させる。
本発明により、仮想コンテナインスタンスを起動せずに仮想コンテナインスタンスにおけるファイルシステム内のファイルへのアクセスを容易にするためのファイルアクセスシステム、方法及びプログラムを提供することができる。
本発明の実施の形態1にかかるファイルアクセスシステムの全体構成を示すブロック図である。 本発明の実施の形態1にかかるファイルアクセス処理の流れを説明するためのフローチャートである。 本発明の実施の形態2にかかるホストコンピュータの構成を示すブロック図である。 本発明の実施の形態2にかかる仮想コンテナイメージ情報の例を示す図である。 本発明の実施の形態2にかかるデバイス構成情報の例を示す図である。 本発明の実施の形態2にかかるデバイスプール名の例を示す図である。 本発明の実施の形態2にかかるマウントポイント情報の例を示す図である。 本発明の実施の形態2にかかるファイルアクセス処理の流れを説明するためのフローチャートである。 本発明の実施の形態2にかかるファイルアクセスコマンドの例を示す図である。 本発明の実施の形態3にかかるファイルアクセスシステムの構成を示すブロック図である。
以下では、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。各図面において、同一要素には同一の符号が付されており、説明の明確化のため、必要に応じて重複説明は省略する。
<実施の形態1>
図1は、本発明の実施の形態1にかかるファイルアクセスシステム1の全体構成を示すブロック図である。ファイルアクセスシステム1は、論理ボリューム11と、受付手段12と、アクセス処理手段13とを備える。論理ボリューム11は、仮想コンテナインスタンスの永続化されたデータが格納された格納領域を含むものである。ここで、仮想コンテナインスタンスの永続化されたデータは、仮想コンテナインスタンスにおける第1のファイルシステムを介してアクセス可能であるものとする。また、論理ボリューム11は、1以上のストレージデバイスからなる物理デバイス領域を、1以上の論理的なディスクとして扱うための記憶領域である。尚、本発明の実施の形態1にかかるファイルアクセスシステム1が備える論理ボリュームは少なくとも1以上であればよい。そして、仮想コンテナインスタンスの永続化されたデータとは、仮想コンテナインスタンスのイメージデータである。つまり、論理ボリューム11から切り出された一部の領域に、仮想コンテナインスタンスのイメージデータが格納されていることを示す。そのため、仮想コンテナインスタンスが仮想コンテナ基盤から起動された場合には、論理ボリューム11内の上記格納領域に対して、仮想コンテナインスタンスにより第1のファイルシステム内の所定のディレクトリ及びファイルへのアクセスが可能である。一方、論理ボリューム11内の領域は、通常、ホストOS等の後述する第2のファイルシステムを介しては直接アクセスできないものとする。
受付手段12は、仮想コンテナインスタンスにおける第1のファイルシステム内の所定のファイルパスに対する操作コマンドを受け付ける。アクセス処理手段13は、前記格納領域を第2のファイルシステムからアクセス可能にして、当該第2のファイルシステムを介して操作コマンドを実行する。
図2は、本発明の実施の形態1にかかるファイルアクセス処理の流れを説明するためのフローチャートである。まず、受付手段12は、仮想コンテナインスタンスにおける第1のファイルシステム内の所定のファイルパスに対する操作コマンドを受け付ける(S11)。次に、アクセス処理手段13は、論理ボリュームに含まれる仮想コンテナインスタンスの永続化されたデータが格納された格納領域を第2のファイルシステムからアクセス可能にする(S12)。そして、アクセス処理手段13は、第2のファイルシステムを介してステップS11で受け付けた操作コマンドを実行する(S13)。
このように、本発明の実施の形態1により、アクセス処理手段13が論理ボリューム11のうち仮想コンテナインスタンスの永続化されたデータが格納された格納領域について、仮想コンテナインスタンスにおける第1のファイルシステム以外である第2のファイルシステムからアクセス可能にするものである。そのため、第2のファイルシステムを介して第1のファイルシステム内の所定のファイルパスに対する操作コマンドを実行できる。そのため、仮想コンテナインスタンスを起動する必要がなく、仮想コンテナインスタンスにおけるファイルシステム内のファイルへのアクセスを容易にすることができる。
<実施の形態2>
図3は、本発明の実施の形態2にかかるホストコンピュータ100の構成を示すブロック図である。ホストコンピュータ100は、特定のホストOS環境上に仮想コンテナ基盤ソフトウェアがインストールされており、同環境上でユーザにより1つ以上のコンテナイメージが作成済みであるものとする。尚、以下の例では仮想コンテナ基盤としてDockerを、ブロックデバイスドライバとしてDevicemapperを想定する。また、Devicemapperに対する操作手段はシステムコールIOCTLを利用した場合を想定する。さらに、Devicemapperによるデバイステーブルのマッピング手段はthin−poolとする。
ホストコンピュータ100は、ホストOS110と、ディスク装置120とを備える。ホストコンピュータ100は、汎用的なコンピュータ装置であり、そのハードウェア構成は公知なものであるため、詳細な説明を省略する。尚、図3は、ホストコンピュータ100について機能ブロックとして示したものである。
ディスク装置120は、領域121、122・・・等の複数の領域に区切られている。尚、ホストコンピュータ100は、少なくとも1以上のディスク装置を備えていればよい。領域121等には、ホストコンピュータ100で使用される各種データが格納されている。ここでは、領域121は、ホストOS110のファイルシステムにマウントされており、領域122は、ホストOS110のファイルシステムにはマウントされていないものとする。そして、領域122には、仮想コンテナインスタンスのイメージデータが格納されているものとする。
ホストOS110は、仮想コンテナ基盤20と、ブロックデバイスドライバ30と、静的ファイル操作手段40とを備える。
ブロックデバイスドライバ30は、制御部31と、デバイスプール32とを備える。制御部31は、ホストOS110がブロックデバイスへのアクセスを制御するドライバソフトウェアである。制御部31は、IOCTL関数を介して渡されるデバイスID、サイズ及びプール名の情報を元に、デバイスプール32の特定の領域を論理デバイスとして有効化する。
デバイスプール32は、予め制御部31を介してユーザにより物理デバイス領域が論理ボリューム化された領域である。デバイスプール32は、ディスク装置120の領域122等の物理デバイス領域を論理デバイスとして管理する。各論理デバイスにはデバイスIDが付与されているものとする。そして、デバイスプール32は、ユーザの要求内容に応じて論理ボリューム領域から特定の領域を切り出して論理デバイスとして利用することが可能な記憶領域である。
仮想コンテナ基盤20は、仮想コンテナ制御部21と、仮想コンテナ構成情報記憶装置22とを備える。仮想コンテナ制御部21は、ユーザからの処理リクエストを受け付けるコマンドインターフェースを有するソフトウェアである。そして、仮想コンテナ制御部21は、仮想コンテナの起動、停止及び永続化等のコマンドに応じて、仮想コンテナ構成情報記憶装置22に格納された情報を用いて、ブロックデバイスドライバ30が管理するデバイスプール32に格納された仮想コンテナインスタンスの永続化されたデータであるイメージデータにアクセスする。そして、仮想コンテナ制御部21は、アクセスしたイメージデータを元に、ブロックデバイスドライバ30を介して仮想コンテナインスタンスのスナップショットを作成し、ホストOS110のファイルシステムにおける特定のディレクトリにマウントし、仮想コンテナインスタンスを生成し、生成した仮想コンテナインスタンスからアクセス可能なファイルシステムとして割り当てる。
仮想コンテナ構成情報記憶装置22は、仮想コンテナイメージ情報221と、デバイス構成情報222と、デバイスプール名223とを記憶する。図4は、本発明の実施の形態2にかかる仮想コンテナイメージ情報221の例を示す図である。仮想コンテナイメージ情報221は、ユーザが作成した仮想コンテナインスタンスのイメージ名(以下、「仮想コンテナイメージ名」と呼ぶ。)と、イメージID(以下、「仮想コンテナイメージID」と呼ぶ。)とを対応付けた永続化されたデータである。仮想コンテナイメージ名及び仮想コンテナイメージIDは、仮想コンテナインスタンスの識別情報の一例である。
図5は、本発明の実施の形態2にかかるデバイス構成情報222の例を示す図である。デバイス構成情報222は、仮想コンテナイメージIDと、デバイスIDと、サイズとを対応付けた永続化されたデータである。ここで、デバイスIDとは、デバイスプール32で管理される論理デバイスを特定するための情報である。サイズは、対応するデバイスIDにおける永続データ量を示す情報である。
図6は、本発明の実施の形態2にかかるデバイスプール名223の例を示す図である。デバイスプール名223は、仮想コンテナ基盤20がブロックデバイスドライバ30を介して作成したデバイスプールの名称である。
静的ファイル操作手段40は、制御部41と、マウントポイント記憶装置42とを備える。制御部41は、上述した受付手段12及びアクセス処理手段13の一例である。制御部41は、ユーザからのファイルアクセスコマンドを受け付ける。ファイルアクセスコマンドの引数としては、操作対象となる仮想コンテナイメージ名と、コマンドラインイメージが含まれる。コマンドラインイメージは、仮想コンテナインスタンスにおけるファイルシステム内の所定のディレクトリ及びファイルで特定されるファイルパスと、当該ファイルパスに対する操作コマンドとを含む。
制御部41は、仮想コンテナ構成情報記憶装置22に格納された仮想コンテナイメージ情報221を参照して、受け付けた仮想コンテナイメージ名に対応付けられた仮想コンテナイメージIDを取得する。言い換えると、制御部41は、仮想コンテナイメージ名から、対応する仮想コンテナイメージIDに変換する。その後、制御部41は、仮想コンテナイメージIDを用いて仮想コンテナインスタンスのファイルシステムマウントポイント先を決定し、マウントポイント記憶装置42へ格納する。
また、制御部41は、仮想コンテナ構成情報記憶装置22に格納されたデバイス構成情報222を参照して、受け付けた仮想コンテナイメージ名に対応付けられたデバイスID及びサイズを取得する。併せて、制御部41は、仮想コンテナ構成情報記憶装置22に格納されたデバイスプール名223を取得する。その後、制御部41は、IOCTL関数を介して、デバイスプール名223、デバイスID及びサイズによりデバイスプール32内の領域を特定する。そして、制御部41は、特定した領域を論理デバイスとして有効化するようにブロックデバイスドライバ30に依頼する。そして、制御部41は、有効化された論理デバイスを、マウントポイント記憶装置42に格納したマウントポイント先にマウントする。
制御部41は、マウントの完了後に、ユーザから受け付けたコマンドラインイメージを実行する。実行終了後、制御部41は、論理デバイスをマウントポイント先からアンマウントし、論理デバイスを無効化し、マウントポイント記憶装置42からマウントポイントの情報を削除する。
マウントポイント記憶装置42は、制御部41により決定されたマウントポイントを記憶する。図7は、本発明の実施の形態2にかかるマウントポイント情報の例を示す図である。マウントポイント情報は、仮想コンテナインスタンスのイメージIDとマウントポイント先とを対応付けた永続化されたデータである。
ここで、本実施の形態は、次のように表現することができる。すなわち、前記アクセス処理手段は、少なくとも前記格納領域を所定のマウントポイントにマウントし、前記マウントポイントに対して前記操作コマンドを実行するものである。このように、元々第2のファイルシステムからアクセスできなかった仮想コンテナイメージの格納領域をマウントすることにより、受け付けたファイルパスでのアクセスが可能となる。
また、前記受付手段は、前記仮想コンテナインスタンスの識別情報を前記操作コマンドと共に受け付け、前記アクセス処理手段は、前記識別情報に基づいて前記マウントポイントを生成し、前記格納領域を前記生成したマウントポイントにマウントすることが望ましい。これにより、対象の仮想コンテナインスタンスに対応する一意なマウントポイントによりアクセスすることができる。
さらに、前記論理ボリュームにおける前記格納領域を示す領域特定情報を記憶する記憶手段をさらに備え、前記アクセス処理手段は、前記領域特定情報から特定される格納領域を論理デバイスとして有効化し、前記有効化した論理デバイスを前記マウントポイントにマウントし、前記マウントポイントに対して前記操作コマンドを実行するとよい。
さらにまた、前記アクセス処理手段は、前記操作コマンドの実行後に、前記論理デバイスを前記マウントポイントからアンマウントして無効化するとよい。これにより、一回のファイルアクセスコマンド実行により処理が完結し、ファイルシステムを実行前の状態に戻すため、他の処理(その後の仮想コンテナ起動等)に影響を与えない。
また、前記受付手段は、前記所定のファイルパスに対して更新を行う更新コマンドを前記操作コマンドとして受け付け、前記アクセス処理手段は、前記操作コマンドの実行による更新内容を前記格納領域に反映するとよい。これにより、仮想コンテナインスタンスを起動せずに、コンテナイメージの永続化を行うことができ、スナップショットが不要となり、ファイルI/Oの劣化を抑制できる。
また、前記受付手段は、前記第2のファイルシステムに対する処理を行うホスト環境において、前記操作コマンドを受け付け、前記アクセス処理手段は、前記ホスト環境において前記操作コマンドを実行する。これにより、仮想コンテナインスタンスとは異なる環境から仮想コンテナインスタンスを起動せずに、仮想コンテナインスタンス内のファイルへのアクセスが実現できる。
さらに、前記アクセス処理手段は、前記仮想コンテナインスタンスが起動していない場合に、前記操作コマンドを実行するとよい。このような排他制御により、ファイルアクセスコマンド実行時の安全性を確保できる。
図8は、本発明の実施の形態2にかかるファイルアクセス処理の流れを説明するためのフローチャートである。ここでは、特定の仮想コンテナインスタンスのイメージIDで特定される仮想コンテナイメージにおいて、仮想コンテナイメージ内に展開されているファイルシステム内の特定のディレクトリにおいて特定のファイルをコピーする場合を例に説明する。
尚、デバイスプール32の領域は、仮想コンテナ基盤20が仮想コンテナイメージを格納するために、仮想コンテナ基盤20の環境構築の際に、予め作成されているものとする。そして、デバイスプール32の領域は、一意のプール名”docker-253:0-204468014-pool”で特定されているものとする。また、以下の説明のために、仮想コンテナ名”ImageA”で特定される仮想コンテナイメージが仮想コンテナ基盤20上に構築されているものとする。また、仮想コンテナ構成情報記憶装置22には、図4〜図6で示されるデータが登録されているものとする。また、コンテナイメージがマッピングされた論理デバイスが特定のパスにマウントされている間は、その論理デバイスに対してはOS及びDevicemapperにより排他制御が行われるものとする。さらに、ホストOSのファイルシステムの管理下には、“/opt/dir/fileA”というディレクトリ及びファイルが存在しないものとする。
まず、ユーザは、静的ファイル操作手段40を介して、仮想コンテナイメージ名と実行対象のコマンドラインイメージを引数とするファイルアクセスコマンドを入力する。ここで、図9は、本発明の実施の形態2にかかるファイルアクセスコマンドの例を示す図である。ここで、“SFO”は、本発明の実施の形態2にかかるファイルアクセスコマンドの一例である。また、”ImageA”は仮想コンテナイメージ名であり、”cp /opt/dir/fileA /opt/dir/fileB”は仮想コンテナインスタンス環境におけるコマンドラインイメージである。“cp”は、上述した操作コマンドの一例であり、ホストOSのコマンドでもある。また、ファイルパス“/opt/dir/fileA”及び“/opt/dir/fileB”は、”ImageA”により特定される仮想コンテナインスタンスにおけるファイルシステム内の(ルートディレクトリからの)所定のファイルパスの一例である。
ここで、実行対象のコマンドラインイメージは、本来であれば、”ImageA”により特定される仮想コンテナインスタンスが起動された後に、各種手順を踏むことで実行可能なコマンドラインである。そのため、この段階では、仮想コンテナインスタンスのファイルシステムが管理する“/opt/dir”ディレクトリ以下のファイルに対して、ホストOSからはアクセスできない状態である。そのため、この段階ではホストOS上で”cp /opt/dir/fileA /opt/dir/fileB”をそのまま実行できない。
尚、仮に、ホストOSのファイルシステムの管理下に“/opt/dir/fileA”というディレクトリ及びファイルが存在したとしても、”ImageA”により特定される仮想コンテナインスタンスにおけるファイルシステムの管理下のディレクトリ及びファイルとは異なるものであるため、この段階での”cp /opt/dir/fileA /opt/dir/fileB”の実行結果は、ユーザの意図とは異なったものとなってしまう。
制御部41は、ユーザの入力により、仮想コンテナイメージ名と実行対象のコマンドラインイメージを引数とするファイルアクセスコマンドを受信する(S21)。そして、制御部41は、仮想コンテナ構成情報記憶装置22を参照し、仮想コンテナイメージ情報221から仮想コンテナイメージ名”ImageA”に対応付けられた仮想コンテナイメージID” 44bf58acdee7893aa8f985f565222711f1021e2ef374a62eeeca8e2be8f3823c”を取得する。その後、制御部41は、取得した仮想コンテナイメージIDを元にマウントポイントを” /mnt/44bf58acdee7893aa8f985f565222711f1021e2ef374a62eeeca8e2be8f3823c”に決定する。この時、該当するマウントポイント先のパスが存在しない場合は、制御部41は、該当するマウントポイント先に対応するディレクトリの作成を行う。そして、制御部41は、マウントポイント先パスの情報をマウントポイント記憶装置42へ格納する(S24)。
また、制御部41は、仮想コンテナイメージIDをキーに仮想コンテナ制御部21を介して仮想コンテナ構成情報記憶装置22からデバイスIDの値”580”およびサイズの値”10737418240”を取得する(S25)。そして、制御部41は、デバイスID”580”、サイズ”10737418240”と、仮想コンテナ構成情報記憶装置22に格納されたプール名”docker-253:0-204468014-pool”を引数に、IOCTL関数を介してデバイスプール32内から仮想コンテナイメージ”ImageA”の永続データが格納された領域を論理デバイスとして有効化する(S26)。具体的には、ブロックデバイスドライバ30がIOCTLを介して得られたリクエストに従って、指定領域を論理デバイスとして有効化する。そして、制御部41は、マウントポイント記憶装置42からマウントポイント先を読み出し、有効化された論理デバイスを、読み出したマウントポイント先にマウントする(S27)。これにより、ホストOSにおけるファイルシステムから仮想コンテナインスタンスにおけるファイルシステム内のファイルに対してアクセス可能となる。
マウントの完了後、制御部41は、ステップS21でユーザから入力されたコマンドライン”cp /opt/dir/fileA /opt/dir/fileB”を、ホストOS上で実行する(S28)。上述の通り、仮想コンテナインスタンスにおけるファイルシステムの管理下のルートディレクトリ以下がホストOSにおけるファイルシステムの管理下のマウントポイント先にマウントされたことにより、上記コマンドラインで指定されたファイルパスにより、仮想コンテナインスタンスにおけるファイルシステム内のファイルを参照でき、ユーザの意図通りのファイルに対するアクセスが実施される。特に、この例では、操作コマンドがホストOSが提供するファイルのコピーコマンドであるため、”ImageA”で特定される仮想コンテナインスタンスを起動せずに、仮想コンテナインスタンスのイメージデータに対して、コピー先のファイルを直接書き込むことができる。
操作コマンドの実行による処理の完了後、制御部41は、論理デバイスのアンマウント、無効化、及び、マウントポイント記憶装置42から該当するマウントポイント先の情報の削除を順次行う(S29)。
本実施の形態により仮想コンテナインスタンスの起動から永続処理までにかかるコストについて、仮想コンテナ基盤が論理デバイス上に展開した仮想コンテナイメージ毎のデバイス構成を解析し、特定の仮想コンテナイメージのファイルシステムをホストOSにおけるファイルシステムにマウントすることで、本来、仮想コンテナインスタンス内に隔離されているファイルシステムへ、仮想コンテナインスタンスを介することなくアクセス可能となる。つまり、仮想コンテナインスタンスの起動から永続化までの操作をすることなく仮想コンテナイメージ上のファイルシステムへのアクセスが可能となる。
また、ホストOSのファイルシステムに各仮想コンテナイメージのファイルシステムを直接マウントすることで、ホストOSのコマンドを利用して直接的にファイル操作を行うことが可能となる。
ここで、本実施の形態によりファイルI/Oの劣化を抑制できる点について説明する。まず、一般的には、仮想コンテナインスタンス上のファイルシステムへの操作により生じた変更内容を新たな仮想コンテナイメージとして永続的に保存する手段として、論理ボリュームのスナップショット機構が利用されている。そのため、仮想コンテナインスタンスの永続処理を行う度にスナップショットが作成されることとなる。現状の仮想コンテナ基盤のファイルシステム機構はUnion FSを採用していることが多い。そのため、永続処理、すなわち、スナップショットの作成に応じてファイルI/Oが劣化する傾向にある。つまり、これまでの仮想コンテナ環境では、論理ボリュームのスナップショット機能を利用して仮想コンテナイメージの永続化を行っていたため、仮想コンテナイメージ管理の利便性を上げる反面、スナップショット機構に起因するファイルI/Oの劣化を発生させていた。そのため、ユーザとしては、極力、スナップショットを作成しないような運用操作を行う手段が望まれる。しかしながら、主な仮想コンテナ基盤ソフトウェアでは現状、そのような手段を有していなかった。そこで、本実施の形態により、ホストOSのファイルシステムから仮想コンテナのファイルシステム内のファイルを操作できるため、スナップショットを作成することなく仮想コンテナイメージ上のファイルシステムへの永続化が可能となる。そのため、ファイルI/Oの劣化原因を抑制することができる。
<実施の形態3>
上述した実施の形態2では、単一のホストコンピュータ内での実施例を説明したが、本実施の形態3では、仮想コンテナインスタンスのイメージデータと、マウントポイントとが異なるホストコンピュータに存在する例について説明する。
図10は、本発明の実施の形態3にかかるファイルアクセスシステム200の構成を示すブロック図である。ファイルアクセスシステム200は、ホストコンピュータ50と、ホストコンピュータ60とを備える。ホストコンピュータ50は、ホストOS51が稼働し、少なくとも静的ファイル操作手段52を備える。静的ファイル操作手段52は、上述した静的ファイル操作手段40と同等の構成である。但し、静的ファイル操作手段52は、ネットワークを介してホストコンピュータ60にアクセス可能である。
ホストコンピュータ60は、ホストOS61と、ディスク装置62とを備える。ホストOS61は、少なくとも仮想コンテナ基盤611と、ブロックデバイスドライバ612とを備える。仮想コンテナ基盤611は上述した仮想コンテナ基盤20と同等の構成であり、ブロックデバイスドライバ612は上述したブロックデバイスドライバ30と同等の構成である。また、ディスク装置62は、上述したディスク装置120と同等の構成である。
静的ファイル操作手段52は、ユーザから図9に示したようなファイルアクセスコマンドを受信した場合に、ネットワークを介して仮想コンテナ基盤611から仮想コンテナイメージ名に基づいて仮想コンテナイメージIDを特定して、ホストOS51のファイルシステムの管理下のマウントポイント先を決定する。また、静的ファイル操作手段52は、ネットワークを介して仮想コンテナ基盤611から仮想コンテナイメージIDに基づいてデバイスID及びサイズ並びにデバイスプール名を取得し、ブロックデバイスドライバ612に対して論理デバイスの有効化をさせる。その後、静的ファイル操作手段52は、有効化された論理デバイスを決定したマウントポイント先にマウントし、入力されたコマンドラインを実行する。そして、実行後にホストOS51は、論理デバイスのアンマウント及び無効化等を行う。このように、本発明の実施の形態3にかかるファイルアクセスシステム200も上述と同様の効果を奏することができる。
尚、図10では、ホストコンピュータ50及び60の最少限の機能ブロックのみを示したがこれに限定されない。つまり、ホストコンピュータ50及び60とは、同等の機能を有し、ホストコンピュータ50と60の役割を入れ替えても構わない。また、本実施の形態では、ホストコンピュータは3台以上であっても構わない。
<その他の実施の形態>
本発明の各実施の形態は、仮想コンテナ技術によって構成される環境において、隔離された仮想コンテナ空間を提供するシステムということができる。
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。
また、上述の実施の形態では、本発明をハードウェアの構成として説明したが、本発明は、これに限定されるものではない。本発明は、任意の処理を、CPU(Central Processing Unit)にコンピュータプログラムを実行させることにより実現することも可能である。
上述の例において、プログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non-transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば光磁気ディスク)、CD−ROM(Read Only Memory)、CD−R、CD−R/W、DVD(Digital Versatile Disc)、BD(Blu-ray(登録商標) Disc)、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(Random Access Memory))を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
上記の実施形態の一部又は全部は、以下の付記のようにも記載され得るが、以下には限られない。
(付記1)
仮想コンテナインスタンスの永続化されたデータが格納された格納領域を含む論理ボリュームと、
前記仮想コンテナインスタンスにおける第1のファイルシステム内の所定のファイルパスに対する操作コマンドを受け付ける受付手段と、
前記格納領域を第2のファイルシステムからアクセス可能にして、当該第2のファイルシステムを介して前記操作コマンドを実行するアクセス処理手段と、
を備えるファイルアクセスシステム。
(付記2)
前記アクセス処理手段は、
前記格納領域を所定のマウントポイントにマウントし、
前記マウントポイントに対して前記操作コマンドを実行する
付記1に記載のファイルアクセスシステム。
(付記3)
前記受付手段は、前記仮想コンテナインスタンスの識別情報を前記操作コマンドと共に受け付け、
前記アクセス処理手段は、前記識別情報に基づいて前記マウントポイントを生成し、
前記格納領域を前記生成したマウントポイントにマウントする
付記2に記載のファイルアクセスシステム。
(付記4)
前記論理ボリュームにおける前記格納領域を示す領域特定情報を記憶する記憶手段をさらに備え、
前記アクセス処理手段は、
前記領域特定情報から特定される格納領域を論理デバイスとして有効化し、
前記有効化した論理デバイスを前記マウントポイントにマウントし、
前記マウントポイントに対して前記操作コマンドを実行する
付記2又は3に記載のファイルアクセスシステム。
(付記5)
前記アクセス処理手段は、
前記操作コマンドの実行後に、前記論理デバイスを前記マウントポイントからアンマウントして無効化する
付記4に記載のファイルアクセスシステム。
(付記6)
前記受付手段は、前記所定のファイルパスに対して更新を行う更新コマンドを前記操作コマンドとして受け付け、
前記アクセス処理手段は、前記操作コマンドの実行による更新内容を前記格納領域に反映する
付記1乃至5のいずれか1項に記載のファイルアクセスシステム。
(付記7)
前記受付手段は、前記第2のファイルシステムに対する処理を行うホスト環境において、前記操作コマンドを受け付け、
前記アクセス処理手段は、前記ホスト環境において前記操作コマンドを実行する
付記1乃至6のいずれか1項に記載のファイルアクセスシステム。
(付記8)
前記アクセス処理手段は、前記仮想コンテナインスタンスが起動していない場合に、前記操作コマンドを実行する
付記1乃至7のいずれか1項に記載のファイルアクセスシステム。
(付記9)
仮想コンテナインスタンスにおける第1のファイルシステム内の所定のファイルパスに対する操作コマンドを受け付け、
論理ボリュームに含まれる仮想コンテナインスタンスの永続化されたデータが格納された格納領域を第2のファイルシステムからアクセス可能にし、
前記第2のファイルシステムを介して前記操作コマンドを実行する
ファイルアクセス方法。
(付記10)
仮想コンテナインスタンスにおける第1のファイルシステム内の所定のファイルパスに対する操作コマンドを受け付ける処理と、
論理ボリュームに含まれる仮想コンテナインスタンスの永続化されたデータが格納された格納領域を第2のファイルシステムからアクセス可能にする処理と、
前記第2のファイルシステムを介して前記操作コマンドを実行する処理と、
をコンピュータに実行させるファイルアクセスプログラム。
1 ファイルアクセスシステム
11 論理ボリューム
111 格納領域
12 受付手段
13 アクセス処理手段
100 ホストコンピュータ
110 ホストOS
120 ディスク装置
121 領域
122 領域
20 仮想コンテナ基盤
21 仮想コンテナ制御部
22 仮想コンテナ構成情報記憶装置
221 仮想コンテナイメージ情報
222 デバイス構成情報
223 デバイスプール名
30 ブロックデバイスドライバ
31 制御部
32 デバイスプール
40 静的ファイル操作手段
41 制御部
42 マウントポイント記憶装置
200 ファイルアクセスシステム
50 ホストコンピュータ
51 ホストOS
52 静的ファイル操作手段
60 ホストコンピュータ
61 ホストOS
611 仮想コンテナ基盤
612 ブロックデバイスドライバ
62 ディスク装置

Claims (10)

  1. 仮想コンテナインスタンスの永続化されたデータが格納された格納領域を含む論理ボリュームと、
    前記仮想コンテナインスタンスにおける第1のファイルシステム内の所定のファイルパスに対する操作コマンドを受け付ける受付手段と、
    前記格納領域を第2のファイルシステムからアクセス可能にして、当該第2のファイルシステムを介して前記操作コマンドを実行するアクセス処理手段と、
    を備えるファイルアクセスシステム。
  2. 前記アクセス処理手段は、
    前記格納領域を所定のマウントポイントにマウントし、
    前記マウントポイントに対して前記操作コマンドを実行する
    請求項1に記載のファイルアクセスシステム。
  3. 前記受付手段は、前記仮想コンテナインスタンスの識別情報を前記操作コマンドと共に受け付け、
    前記アクセス処理手段は、前記識別情報に基づいて前記マウントポイントを生成し、
    前記格納領域を前記生成したマウントポイントにマウントする
    請求項2に記載のファイルアクセスシステム。
  4. 前記論理ボリュームにおける前記格納領域を示す領域特定情報を記憶する記憶手段をさらに備え、
    前記アクセス処理手段は、
    前記領域特定情報から特定される格納領域を論理デバイスとして有効化し、
    前記有効化した論理デバイスを前記マウントポイントにマウントし、
    前記マウントポイントに対して前記操作コマンドを実行する
    請求項2又は3に記載のファイルアクセスシステム。
  5. 前記アクセス処理手段は、
    前記操作コマンドの実行後に、前記論理デバイスを前記マウントポイントからアンマウントして無効化する
    請求項4に記載のファイルアクセスシステム。
  6. 前記受付手段は、前記所定のファイルパスに対して更新を行う更新コマンドを前記操作コマンドとして受け付け、
    前記アクセス処理手段は、前記操作コマンドの実行による更新内容を前記格納領域に反映する
    請求項1乃至5のいずれか1項に記載のファイルアクセスシステム。
  7. 前記受付手段は、前記第2のファイルシステムに対する処理を行うホスト環境において、前記操作コマンドを受け付け、
    前記アクセス処理手段は、前記ホスト環境において前記操作コマンドを実行する
    請求項1乃至6のいずれか1項に記載のファイルアクセスシステム。
  8. 前記アクセス処理手段は、前記仮想コンテナインスタンスが起動していない場合に、前記操作コマンドを実行する
    請求項1乃至7のいずれか1項に記載のファイルアクセスシステム。
  9. 仮想コンテナインスタンスにおける第1のファイルシステム内の所定のファイルパスに対する操作コマンドを受け付け、
    論理ボリュームに含まれる仮想コンテナインスタンスの永続化されたデータが格納された格納領域を第2のファイルシステムからアクセス可能にし、
    前記第2のファイルシステムを介して前記操作コマンドを実行する
    ファイルアクセス方法。
  10. 仮想コンテナインスタンスにおける第1のファイルシステム内の所定のファイルパスに対する操作コマンドを受け付ける処理と、
    論理ボリュームに含まれる仮想コンテナインスタンスの永続化されたデータが格納された格納領域を第2のファイルシステムからアクセス可能にする処理と、
    前記第2のファイルシステムを介して前記操作コマンドを実行する処理と、
    をコンピュータに実行させるファイルアクセスプログラム。
JP2015203625A 2015-10-15 2015-10-15 ファイルアクセスシステム、方法及びプログラム Pending JP2017076264A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2015203625A JP2017076264A (ja) 2015-10-15 2015-10-15 ファイルアクセスシステム、方法及びプログラム
US15/287,907 US20170109372A1 (en) 2015-10-15 2016-10-07 File access system, method, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015203625A JP2017076264A (ja) 2015-10-15 2015-10-15 ファイルアクセスシステム、方法及びプログラム

Publications (1)

Publication Number Publication Date
JP2017076264A true JP2017076264A (ja) 2017-04-20

Family

ID=58523059

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015203625A Pending JP2017076264A (ja) 2015-10-15 2015-10-15 ファイルアクセスシステム、方法及びプログラム

Country Status (2)

Country Link
US (1) US20170109372A1 (ja)
JP (1) JP2017076264A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10514947B2 (en) 2017-09-29 2019-12-24 Hitachi, Ltd. Container management apparatus, container management method, and nonvolatile recording medium

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107844539A (zh) * 2017-10-19 2018-03-27 广州阿里巴巴文学信息技术有限公司 隔离数据管理方法、装置、系统、计算设备及存储介质
CN109190386B (zh) * 2018-04-04 2021-11-12 中国电子科技网络信息安全有限公司 基于Device Mapper的容器镜像分层加密存储方法
US10579606B2 (en) 2018-05-03 2020-03-03 Samsung Electronics Co., Ltd Apparatus and method of data analytics in key-value solid state device (KVSSD) including data and analytics containers
US20190354386A1 (en) * 2018-05-21 2019-11-21 International Business Machines Corporation System and method for executing virtualization software objects with dynamic storage
US11822522B2 (en) * 2020-01-31 2023-11-21 EMC IP Holding Company LLC Intelligent filesystem for container images
US11418588B2 (en) 2020-09-29 2022-08-16 EMC IP Holding Company LLC Intelligent peer-to-peer container filesystem
US20220147378A1 (en) * 2020-11-09 2022-05-12 International Business Machines Corporation Container image creation and deployment

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110265076A1 (en) * 2010-04-21 2011-10-27 Computer Associates Think, Inc. System and Method for Updating an Offline Virtual Machine
WO2012176307A1 (ja) * 2011-06-23 2012-12-27 株式会社日立製作所 ストレージ管理システム及びストレージ管理方法
US20130061014A1 (en) * 2008-09-05 2013-03-07 Commvault Systems, Inc. Systems and methods for management of virtualization data

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130061014A1 (en) * 2008-09-05 2013-03-07 Commvault Systems, Inc. Systems and methods for management of virtualization data
US20110265076A1 (en) * 2010-04-21 2011-10-27 Computer Associates Think, Inc. System and Method for Updating an Offline Virtual Machine
WO2012176307A1 (ja) * 2011-06-23 2012-12-27 株式会社日立製作所 ストレージ管理システム及びストレージ管理方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
内田 誠悟: "Docker実戦投入 設計の原則、本番環境の構築、運用ノウハウ", WEB+DB PRESS, vol. 第86巻, JPN6019027787, 25 May 2015 (2015-05-25), JP, pages 90 - 94, ISSN: 0004080104 *
米田 聡: "玄箱T4 最強カスタマイズ法", 日経LINUX, vol. 第12巻第1号通巻124号, JPN6020008434, 8 December 2009 (2009-12-08), JP, pages 74 - 86, ISSN: 0004227045 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10514947B2 (en) 2017-09-29 2019-12-24 Hitachi, Ltd. Container management apparatus, container management method, and nonvolatile recording medium

Also Published As

Publication number Publication date
US20170109372A1 (en) 2017-04-20

Similar Documents

Publication Publication Date Title
US11611479B2 (en) Migration of existing computing systems to cloud computing sites or virtual machines
JP2017076264A (ja) ファイルアクセスシステム、方法及びプログラム
US10791025B2 (en) Migration of an existing computing system to new hardware
CN110088733B (zh) 虚拟机迁移的基于存储层的编排
US9451023B2 (en) Information management of virtual machines having mapped storage devices
US9575991B2 (en) Enabling coarse-grained volume snapshots for virtual machine backup and restore
US10154112B1 (en) Cloud-to-cloud data migration via cache
EP3502877B1 (en) Data loading method and apparatus for virtual machines
US9753768B2 (en) Instant xvmotion using a private storage virtual appliance
US9547506B2 (en) Synthetic device for installation source media
KR102238942B1 (ko) 가상화 인스턴스 내의 파일의 계층화된 액세스를 위한 방법 및 장치
US9436494B2 (en) Preserving an independent virtual disk
US20160378348A1 (en) Methods and apparatus to manage inter-virtual disk relations in a modularized virtualization topology using virtual hard disks
WO2015000378A1 (en) Method to optimize provisioning time with dynamically generated virtual disk contents
US9804789B2 (en) Methods and apparatus to apply a modularized virtualization topology using virtual hard disks
US10169027B2 (en) Upgrade of an operating system of a virtual machine
US9032402B2 (en) Managing an independent virtual disk
US20150254092A1 (en) Instant xvmotion using a hypervisor-based client/server model
US11263183B2 (en) Integrating virtual machine file system into a native file explorer
US9921884B1 (en) Local and remote access to virtual machine image filesystems
US10126983B2 (en) Methods and apparatus to enforce life cycle rules in a modularized virtualization topology using virtual hard disks
US20240104114A1 (en) Techniques for upgrading and accessing metadata
US20240205082A1 (en) Replicating functionality and data of a primary computing device onto a virtual machine
US20210141560A1 (en) Supporting file exclusions and commits in disk-based write filters

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180905

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190619

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190723

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190918

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200310

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200406

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20200602