(57)【要約】【課題】記憶装置が記憶するデータが更新された場合に、各種の対応を可能とすること。【解決手段】データ処理プログラム３３０ａは、コンピュータ３００に、第一の記憶装置に記憶された第一のデータと対応付けられた、第二の記憶装置に記憶された第二のデータが更新されたかを検知する処理を実行させる。データ処理プログラム３３０ａは、コンピュータ３００に、更新が検知されると第二の記憶装置から更新前の第二のデータを取得して第一の記憶装置に保存する処理を実行させる。データ処理プログラム３３０ａは、コンピュータ３００に、第一の記憶装置に第二のデータがある場合は、第一の記憶装置から第二のデータを取得し、当該第二のデータおよび第一のデータを用いて第三のデータを生成する処理を実行させる。【選択図】図１５
2015170015.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに、
第一の記憶装置に記憶された第一のデータと対応付けられた、第二の記憶装置に記憶された第二のデータが更新されたかを検知し、
更新が検知されると前記第二の記憶装置から更新前の第二のデータを取得して前記第一の記憶装置に保存し、
前記第一の記憶装置に前記第二のデータがある場合は、前記第一の記憶装置から前記第二のデータを取得し、当該第二のデータおよび前記第一のデータを用いて第三のデータを生成する、
処理を実行させることを特徴とするデータ処理プログラム。
【請求項２】
前記第二のデータが更新されたかを検知する処理は、装置のイメージファイルの一部のデータである前記第二のデータが更新されたかを検知し、
前記第三のデータを生成する処理は、前記コンピュータが保持する前記装置のイメージファイルの一部のデータと、前記第二のデータとを用いて、前記装置のイメージファイルを生成する
ことを特徴とする請求項１に記載のデータ処理プログラム。
【請求項３】
前記第二のデータが更新されたかを検知する処理は、所定の情報に登録された前記第二のデータについて、更新されたかを検知するとともに、該所定の情報の登録内容が更新された場合には更新された該所定の情報に登録されたデータについて更新されたかを検知する
ことを特徴とする請求項１または２に記載のデータ処理プログラム。
【請求項４】
前記更新前の第二のデータを取得して前記第一の記憶装置に保存する処理は、検知された更新の状況に応じて、前記更新前の第二のデータを取得するか、または、取得しないかの制御を行う
ことを特徴とする請求項１〜３のいずれか１つに記載のデータ処理プログラム。
【請求項５】
前記第三のデータを生成する処理は、検知された更新の種類に応じて、前記第三のデータを生成するか、または、しないかの制御を行う
ことを特徴とする請求項１〜４のいずれか１つに記載のデータ処理プログラム。
【請求項６】
第一の記憶装置に記憶された第一のデータと対応付けられた、第二の記憶装置に記憶された第二のデータが更新されたかを検知し、更新が検知されると前記第二の記憶装置から更新前の第二のデータを取得して前記第一の記憶装置に保存する検知部と、
前記第一の記憶装置に前記第二のデータがある場合は、前記第一の記憶装置から前記第二のデータを取得し、当該第二のデータおよび前記第一のデータを用いて第三のデータを生成する生成部と、
を有することを特徴とするデータ処理装置。
【請求項７】
コンピュータが、
第一の記憶装置に記憶された第一のデータと対応付けられた、第二の記憶装置に記憶された第二のデータが更新されたかを検知し、
更新が検知されると前記第二の記憶装置から更新前の第二のデータを取得して前記第一の記憶装置に保存し、
前記第一の記憶装置に前記第二のデータがある場合は、前記第一の記憶装置から前記第二のデータを取得し、当該第二のデータおよび前記第一のデータを用いて第三のデータを生成する、
処理を実行することを特徴とするデータ処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理プログラム、データ処理装置及びデータ処理方法に関する。
【背景技術】
【０００２】
ＶＭ（Virtual  Machine）などの装置を復元するためのイメージを管理する管理装置がある。かかる管理装置の一例について説明する。例えば、管理装置は、装置のイメージに含まれるデータのうち、外部レポジトリなどが保持するデータについてはインターネット経由で取得できるため、インターネット経由で取得できるデータについては、保持しない。そして、管理装置は、例えば、装置を復元するタイミングなどの所定のタイミングで、インターネット経由でデータを取得し、取得したデータと、管理装置が保持するイメージのデータとを用いて、装置を復元するためのイメージを生成する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０００−２００２０８号公報
【特許文献２】特表２００５−５０１３４２号公報
【特許文献３】特開２０００−２９３４２０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上述した管理装置が取得したデータでは、以下に説明するように、外部レポジトリが保持するデータが更新された場合に、装置を復元するなどの対応が困難である場合があるという問題がある。
【０００５】
例えば、外部レポジトリが保持するデータは、外部レポジトリを利用するユーザによって更新される場合がある。また、外部レポジトリは、更新されたデータを全て保持するのではなく、所定数の世代のデータしか保持しない場合がある。このため、上述した管理装置が、所定のタイミングで、インターネット経由で更新される前のデータの取得を試みたとしても、更新される前のデータが外部レポジトリに保持されておらず、更新される前のデータを取得できない場合がある。また、管理装置が、更新される前のデータを取得できない場合に、更新後のデータを取得し、取得したデータと、管理装置が保持するイメージのデータとを用いて装置を復元するためのイメージの生成を試みることも考えられる。しかしながら、取得したデータが更新されているため、装置を復元するためのイメージが管理装置により生成できない場合がある。そのため、上述した管理装置が取得したデータでは、外部レポジトリが保持するデータが更新された場合に、装置を復元するなどの対応ができない場合があるという問題がある。なお、かかる問題は、外部レポジトリが保持するデータが更新された場合に限られず、外部レポジトリ以外の記憶装置が記憶するデータが更新された場合にも同様に発生する。また、かかる問題は、装置を復元する対応ができないという問題に限られない。
【０００６】
１つの側面では、本発明は、記憶装置が記憶するデータが更新された場合に、各種の対応を可能とすること目的とする。
【課題を解決するための手段】
【０００７】
データ処理プログラムは、コンピュータに、第一の記憶装置に記憶された第一のデータと対応付けられた、第二の記憶装置に記憶された第二のデータが更新されたかを検知する処理を実行させる。データ処理プログラムは、コンピュータに、更新が検知されると第二の記憶装置から更新前の第二のデータを取得して第一の記憶装置に保存する処理を実行させる。データ処理プログラムは、コンピュータに、第一の記憶装置に第二のデータがある場合は、第一の記憶装置から第二のデータを取得し、当該第二のデータおよび第一のデータを用いて第三のデータを生成する処理を実行させる。
【発明の効果】
【０００８】
記憶装置が記憶するデータが更新された場合に、各種の対応を可能とする。
【図面の簡単な説明】
【０００９】
【図１】図１は、実施例に係るデータ処理装置の一例である管理装置が適用されるシステム構成の一例を示す図である。
【図２】図２は、実施例に係る管理装置の機能構成の一例を示す図である。
【図３】図３は、実施例に係る分解部の機能構成の一例を示す図である。
【図４】図４は、ディスクイメージファイル取得部が生成したデータリストの一例を示す図である。
【図５】図５は、復元情報のデータ構造の一例を示す図である。
【図６】図６は、イメージ分解部が実行する処理の一例を説明するための図である。
【図７】図７は、イメージ分解部が実行する処理の一例を説明するための図である。
【図８】図８は、実施例に係る監視部の機能構成の一例を示す図である。
【図９】図９は、実施例に係る復元部の機能構成の一例を示す図である。
【図１０】図１０は、実施例に係る分解処理の手順を示すフローチャートである。
【図１１】図１１は、実施例に係る監視処理の手順を示すフローチャートである。
【図１２】図１２は、実施例に係る復元処理の手順を示すフローチャートである。
【図１３】図１３は、変形例に係る管理装置が実行する処理の一例を説明するための図である。
【図１４】図１４は、変形例に係る管理装置が実行する処理の一例を説明するための図である。
【図１５】図１５は、データ処理プログラムを実行するコンピュータを示す図である。
【発明を実施するための形態】
【００１０】
以下に、本願の開示するデータ処理プログラム、データ処理装置及びデータ処理方法の各実施例を図面に基づいて詳細に説明する。なお、各実施例は開示の技術を限定するものではない。
【実施例】
【００１１】
図１は、実施例に係るデータ処理装置の一例である管理装置が適用されるシステム構成の一例を示す図である。図１の例に示すように、システム１０は、外部レポジトリサーバ１１、管理装置１を有する。外部レポジトリサーバ１１と管理装置１とは、インターネット１２を介して接続される。
【００１２】
外部レポジトリサーバ１１は、オープンソースのソフトウェアを記憶し、ソフトウェアをインターネット１２を介して提供するサーバである。かかるソフトウェアは、外部レポジトリサーバ１１を利用するユーザによって更新される。本実施例に係る外部レポジトリサーバ１１は、あるソフトウェアについて複数回更新された場合であっても全ての世代のソフトウェアを記憶するのではなく、直近の所定数の世代（例えば３世代）のソフトウェアを記憶する。外部レポジトリサーバ１１は、ｙｕｍ（Yellowdog  Updater  Modified）レポジトリサーバ、ＲＨＵＩ（Red  Hat  Update  Infrastructure）などである。また、外部レポジトリサーバ１１は、例えば、記憶装置の一例である。
【００１３】
管理装置１は、ＶＭのイメージファイル、例えば、ディスクイメージを復元する。ここで、管理装置１は、ディスクイメージに含まれるソフトウェアのうち、外部レポジトリサーバ１１に記憶されたソフトウェアについては、管理装置１内の記憶部から削除する。これにより、管理装置１は、管理装置１内の記憶部に記憶されるデータのサイズの増大を抑制することができる。そして、管理装置１は、ＶＭのイメージファイルを復元する場合などに、次の処理を行う。すなわち、管理装置１は、削除したソフトウェアを外部レポジトリサーバ１１からダウンロードし、ダウンロードしたソフトウェアと、管理装置１内の記憶部に記憶されたディスクイメージとを用いて、ＶＭのイメージファイルを復元する。
【００１４】
さらに、本実施例に係る管理装置１は、外部レポジトリサーバ１１に記憶されたソフトウェアのうち、管理装置１内の記憶部から削除したソフトウェアが更新されたか否かを監視する。そして、管理装置１は、ソフトウェアが更新された場合に、更新される前のソフトウェアを外部レポジトリサーバ１１からダウンロードする。これにより、管理装置１は、外部レポジトリサーバ１１においてソフトウェアが更新された場合であっても、ＶＭを復元することが可能なソフトウェアを取得して保存することができる。
【００１５】
［管理装置１の機能構成の一例］
図２は、実施例に係る管理装置の機能構成の一例を示す図である。図２の例に示すように、管理装置１は、入力部２、通信部３、記憶部４及び制御部５を有する。
【００１６】
入力部２は、各種情報を制御部５に入力する。例えば、入力部２は、管理装置１のユーザから後述の分解処理を実行する対象のＶＭの指定を受け付けた場合には、受け付けたＶＭの指定を制御部５に入力する。また、入力部２は、ユーザから、どのＶＭのディスクイメージファイル４ａを復元するかの指示を受け付けた場合には、受け付けた指示を制御部５に入力する。入力部２のデバイスの一例としては、マウスやキーボードなどが挙げられる。
【００１７】
通信部３は、管理装置１と、ＶＭを稼働させる図示しない他の装置との通信を行うためのインターフェースである。通信部３は、インターネット１２や図示しないネットワークを介して他の装置に接続されている。
【００１８】
記憶部４は、各種情報を記憶する。例えば、記憶部４は、復元対象のＶＭごとのディスクイメージファイル４ａ、ＶＭごとの復元情報４ｂ、ＶＭごとのファイル群４ｃを記憶する。
【００１９】
ディスクイメージファイル４ａは、ＶＭのディスクのイメージファイルであり、例えば、ＲＰＭ（Redhat  Package  Manager）パッケージのイメージファイルである。ＲＰＭパッケージには、プログラムなどのバイナリファイルや設定ファイルがまとめられている。
【００２０】
復元情報４ｂ、ファイル群４ｃのそれぞれは、後述の分解部５ａにより生成される情報、まとめられた複数のファイルの集まりであり、詳細については後述する。
【００２１】
記憶部４は、例えば、フラッシュメモリなどの半導体メモリ素子、または、ハードディスク、光ディスクなどの記憶装置である。
【００２２】
制御部５は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、これらによって種々の処理を実行する。図２に示すように、制御部５は、分解部５ａと、監視部５ｂと、復元部５ｃとを有する。
【００２３】
分解部５ａは、以下に説明するように、ディスクイメージファイル４ａを更新し、復元情報４ｂ、ファイル群４ｃを生成する。図３は、実施例に係る分解部の機能構成の一例を示す図である。図３の例に示すように、分解部５ａは、ディスクイメージファイル取得部６ａ、外部レポジトリ取得部６ｂ、共通部分抽出部６ｃ、イメージ分解部６ｄを有する。
【００２４】
ディスクイメージファイル取得部６ａの一態様について説明する。例えば、ディスクイメージファイル取得部６ａは、入力部２から後述の分解処理を実行する対象のＶＭの指定が入力されると、指定されたＶＭに対応するディスクイメージファイル４ａを取得する。そして、ディスクイメージファイル取得部６ａは、取得したディスクイメージファイル４ａに含まれるＲＰＭパッケージの一覧を取得し、取得したＲＰＭパッケージの一覧をデータリストに登録することにより、データリストを生成する。図４は、ディスクイメージファイル取得部が生成したデータリストの一例を示す図である。図４の例は、ディスクイメージファイル取得部６ａが、「ＭＡＫＥＤＥＶ−３．２３−１．２．ｘ８６＿６４」、「ＰｙＸＭＬ−０．８．４−４．ｅｌ５＿４．２．ｘ８６＿６４」などの各種のＲＰＭパッケージなどをデータリストに登録した場合を示す。
【００２５】
外部レポジトリ取得部６ｂの一態様について説明する。外部レポジトリ取得部６ｂは、外部レポジトリ１１からオープンソースのソフトウェアの一覧を取得する。
【００２６】
共通部品抽出部６ｃの一態様について説明する。共通部品抽出部６ｃは、ディスクイメージファイル取得部６ａにより生成されたデータリストに登録されたＲＰＭパッケージを１つずつ順に選択する。そして、共通部品抽出部６ｃは、ＲＰＭパッケージを１つ選択するたびに、選択したＲＰＭパッケージと同一のパッケージが、外部レポジトリ取得部６ｂにより取得されたオープンソースのソフトウェアの一覧の中に存在するか否かを判定する。
【００２７】
選択したＲＰＭパッケージと同一のパッケージが、オープンソースのソフトウェアの一覧の中に存在する場合には、共通部分抽出部６ｃは、同一パッケージである選択したＲＰＭパッケージとオープンソースのソフトウェアとの間で次の処理を行う。すなわち、共通部分抽出部６ｃは、ＲＰＭパッケージに含まれるファイルの中身と、かかるファイルと同一名称の、オープンソースのソフトウェアに含まれるファイルの中身とがバイナリ単位で完全一致するか否かを判定する。例えば、共通部分抽出部６ｃは、選択したＲＰＭパッケージに含まれるファイル「／ｅｔｃ／ｍａｋｅｄｅｖ．ｄ」と、オープンソースのソフトウェアに含まれるファイル「／ｅｔｃ／ｍａｋｅｄｅｖ．ｄ」とがバイナリ単位で完全一致するか否かを判定する。そして、共通部分抽出部６ｃは、このような完全一致するか否かの判定を、選択したＲＰＭパッケージに含まれる全てのファイルについて行う。
【００２８】
イメージ分解部６ｄの一態様について説明する。イメージ分解部６ｄは、共通部分抽出部６ｃによりバイナリ単位で完全一致しないと判定した場合に、完全一致しないと判定した２つのファイルのうち、選択したＲＰＭパッケージに含まれるファイルを抽出する。そして、イメージ分解部６ｄは、抽出したファイルを、指定されたＶＭに対応するファイル群に追加する。このようにして、イメージ分解部６ｄは、オリジナルのファイルから変更されたファイルを、指定されたＶＭに対応するファイル群４ｃに新たに追加する。
【００２９】
例えば、イメージ分解部６ｄは、ＲＰＭパッケージ「ａｐａｃｈｅ」に含まれるファイル「ｈｔｔｐｄ．ｃｏｎｆ」と、オープンソースのソフトウェア「ａｐａｃｈｅ」に含まれるファイル「ｈｔｔｐｄ．ｃｏｎｆ」とが完全一致しない場合、次の処理を行う。すなわち、イメージ分解部６ｄは、選択したＲＰＭパッケージ「ａｐａｃｈｅ」に含まれるファイル「ｈｔｔｐｄ．ｃｏｎｆ」を、指定されたＶＭに対応するファイル群４ｃに新たに追加する。
【００３０】
また、イメージ分解部６ｄは、ＲＰＭパッケージ「ｔｏｍｃａｔ」に含まれるファイル「ｓｅｒｖｅｒ．ｘｍｌ」と、オープンソースのソフトウェア「ｔｏｍｃａｔ」に含まれるファイル「ｓｅｒｖｅｒ．ｘｍｌ」とが完全一致しない場合、次の処理を行う。すなわち、イメージ分解部６ｄは、選択したＲＰＭパッケージ「ｔｏｍｃａｔ」に含まれるファイル「ｓｅｒｖｅｒ．ｘｍｌ」を、指定されたＶＭに対応するファイル群４ｃに新たに追加する。
【００３１】
そして、イメージ分解部６ｄは、共通部分抽出部６ｃにより、選択されたＲＰＭパッケージと同一のパッケージが、オープンソースのソフトウェアの一覧の中に存在すると判定された場合には、次の処理を行う。すなわち、イメージ分解部６ｄは、共通部分抽出部６ｃにより選択されたＲＰＭパッケージを、指定されたＶＭに対応するディスクイメージファイル４ａから削除する。そして、イメージ分解部６ｄは、削除したＲＰＭパッケージを、指定されたＶＭに対応する復元情報４ｂに登録する。
【００３２】
図５は、復元情報のデータ構造の一例を示す図である。図５の例に示す復元情報４ｂは、指定されたＶＭのイメージの名称「ＤｉｓｋＩｍａｇｅ１」、指定されたＶＭに対応するファイル群４ｃの名称「ＤｉｓｋＩｍａｇｅ１＿Ｆｉｌｅ．ｔａｒ．ｇｚ」を含む。また、図５の例に示す復元情報４ｂは、「ＭＡＫＥＤＥＶ−３．２３−１．２．ｘ８６＿６４」、「ＰｙＸＭＬ−０．８．４−４．ｅｌ５＿４．２．ｘ８６＿６４」などの各種のＲＰＭパッケージを含む。ここで、復元情報４ｂに含まれるＲＰＭパッケージの名称は、外部レポジトリサーバ１１に記憶されているＲＰＭパッケージの名称である。
【００３３】
図６及び図７は、イメージ分解部が実行する処理の一例を説明するための図である。図６の例に示すように、イメージ分解部６ｄは、共通部分抽出部６ｃにより、選択されたＲＰＭパッケージ「ａｐａｃｈｅ」と同一のパッケージが、オープンソースのソフトウェアの一覧の中に存在すると判定された場合には、次の処理を行う。すなわち、イメージ分解部６ｄは、共通部分抽出部６ｃにより選択されたＲＰＭパッケージ「ａｐａｃｈｅ」を、指定されたＶＭに対応するディスクイメージファイル４ａから削除する。そして、イメージ分解部６ｄは、削除したＲＰＭパッケージ「ａｐａｃｈｅ」を、指定されたＶＭに対応する復元情報４ｂに登録する。
【００３４】
そして、図７の例に示すように、イメージ分解部６ｄは、共通部分抽出部６ｃにより、選択されたＲＰＭパッケージ「ｔｏｍｃａｔ」と同一のパッケージが、オープンソースのソフトウェアの一覧の中に存在すると判定された場合には、次の処理を行う。すなわち、イメージ分解部６ｄは、共通部分抽出部６ｃにより選択されたＲＰＭパッケージ「ｔｏｍｃａｔ」を、指定されたＶＭに対応するディスクイメージファイル４ａから削除する。そして、イメージ分解部６ｄは、削除したＲＰＭパッケージ「ｔｏｍｃａｔ」を、指定されたＶＭに対応する復元情報４ｂに登録する。
【００３５】
図２の説明に戻り、監視部５ｂは、以下に説明するように、外部レポジトリサーバ１１に記憶されたソフトウェアが更新されたか否かを監視し、ソフトウェアが更新された場合に、更新される前のソフトウェアを外部レポジトリサーバ１１から取得する。監視部５ｂは、検知部の一例である。図８は、実施例に係る監視部の機能構成の一例を示す図である。図８の例に示すように、監視部５ｂは、復元情報解析部７ａ、外部レポジトリ取得部７ｂ、復元情報更新部７ｃを有する。
【００３６】
復元情報解析部７ａの一態様について説明する。例えば、復元情報解析部７ａは、全てのＶＭについて、所定時間間隔で、ＶＭに対応する復元情報４ｂに含まれるＲＰＭパッケージの一覧を取得し、取得したＲＰＭパッケージの一覧を復元データリストに登録することにより、復元データリストを生成する。例えば、復元情報解析部７ａは、「ＭＡＫＥＤＥＶ−３．２３−１．２．ｘ８６＿６４」、「ＰｙＸＭＬ−０．８．４−４．ｅｌ５＿４．２．ｘ８６＿６４」などの各種のＲＰＭパッケージなどを復元データリストに登録して、復元データリストを生成する。
【００３７】
外部レポジトリ取得部７ｂの一態様について説明する。外部レポジトリ取得部７ｂは、復元情報解析部７ａにより復元データリストが生成されるたびに、外部レポジトリサーバ１１から、復元データリストに登録されたＲＰＭパッケージをダウンロードする。なお、外部レポジトリ取得部７ｂは、ＲＰＭパッケージをダウンロードする際に、バージョンの指定は行わない。
【００３８】
復元情報更新部７ｃの一態様について説明する。復元情報更新部７ｃは、外部レポジトリ取得部７ｂによりＲＰＭパッケージがダウンロードされるたびに、ダウンロードされたＲＰＭパッケージのバージョンと、復元データリストに登録されたＲＰＭパッケージのバージョンとを比較する。例えば、ＲＰＭパッケージのパッケージ名には、パッケージのバージョンを表す数値が含まれているので、復元情報更新部７ｃは、バージョンを表す数値を比較する。この数値は、例えば、大きいほど最新のパッケージであることを示す。そして、復元情報更新部７ｃは、比較の結果、ダウンロードされたＲＰＭパッケージのバージョンのほうが、復元データリストに登録されたＲＰＭパッケージのバージョンよりも新しい場合には、次の処理を行う。すなわち、復元情報更新部７ｃは、復元データリストに登録されたバージョン（更新される前のバージョン）のＲＰＭパッケージを外部レポジトリサーバ１１からダウンロードする。そして、復元情報更新部７ｃは、ダウンロードしたＲＰＭパッケージのファイルをファイル群４ｃに追加する。
【００３９】
そして、復元情報更新部７ｃは、新たにファイル群４ｃに追加されたＲＰＭパッケージを復元情報４ａから削除する。
【００４０】
図２の説明に戻り、復元部５ｃは、以下に説明するように、ディスクイメージファイル４ａを復元する。復元部５ｃは、生成部の一例である。図９は、実施例に係る復元部の機能構成の一例を示す図である。図９の例に示すように、復元部５ｃは、復元情報解析部８ａ、外部レポジトリ取得部８ｂ、イメージ復元部８ｃを有する。
【００４１】
復元情報解析部８ａの一態様について説明する。例えば、復元情報解析部８ａは、入力部２から、どのＶＭのディスクイメージファイル４ａを復元するかの指示が入力されると、ディスクイメージファイル４ａが復元される対象のＶＭに対応する復元情報４ｂを特定する。そして、復元情報解析部８ａは、特定した復元情報４ｂに含まれるＲＰＭパッケージの一覧を取得する。そして、復元情報解析部８ａは、取得したＲＰＭパッケージの一覧を復元データリストに登録することにより、復元データリストを生成する。例えば、復元情報解析部８ａは、「ＭＡＫＥＤＥＶ−３．２３−１．２．ｘ８６＿６４」、「ＰｙＸＭＬ−０．８．４−４．ｅｌ５＿４．２．ｘ８６＿６４」などの各種のＲＰＭパッケージなどを復元データリストに登録して、復元データリストを生成する。
【００４２】
外部レポジトリ取得部８ｂの一態様について説明する。外部レポジトリ取得部８ｂは、復元情報解析部８ａにより復元データリストが生成されるたびに、外部レポジトリサーバ１１から、復元データリストに登録されたＲＰＭパッケージをダウンロードする。なお、外部レポジトリ取得部８ｂは、ＲＰＭパッケージをダウンロードする際に、バージョンの指定を行う。
【００４３】
イメージ復元部８ｃの一態様について説明する。イメージ復元部８ｃは、ＶＭごとに、外部レポジトリ取得部８ｂによりＲＰＭパッケージがダウンロードされるたびに、ダウンロードされたＲＰＭパッケージを、ディスクイメージファイル４ａにインストールする。さらに、イメージ復元部８ｃは、ＶＭごとに、ファイル群４ｃをディスクイメージファイル４ａにコピーする。これにより、ＶＭを復元可能なディスクイメージファイル４ａが生成される。
【００４４】
制御部５は、ＡＳＩＣ（Application  Specific  Integrated  Circuit）、ＦＰＧＡ（Field  Programmable  Gate  Array）、ＣＰＵ（Central  Processing  Unit）、ＭＰＵ（Micro  Processing  Unit）などの回路である。
【００４５】
［処理の流れ］
次に、実施例に係る管理装置１が実行する各種の処理の流れについて説明する。図１０は、実施例に係る分解処理の手順を示すフローチャートである。実施例に係る分解処理は、例えば、入力部２から、分解処理を実行する対象のＶＭの指定が制御部５に入力された場合に、制御部５により実行される。
【００４６】
図１０に示すように、ディスクイメージファイル取得部６ａは、指定されたＶＭに対応するディスクイメージファイル４ａを取得する。そして、ディスクイメージファイル取得部６ａは、取得したディスクイメージファイル４ａに含まれるＲＰＭパッケージの一覧を取得し、取得したＲＰＭパッケージの一覧をデータリストに登録することにより、データリストを生成する（Ｓ１０１）。
【００４７】
外部レポジトリ取得部６ｂは、外部レポジトリ１１からオープンソースのソフトウェアの一覧を取得する（Ｓ１０２）。
【００４８】
共通部分抽出部６ｃは、ディスクイメージファイル取得部６ａにより生成されたデータリストに登録されたＲＰＭパッケージの中に、未選択のＲＰＭパッケージがあるか否かを判定する（Ｓ１０３）。未選択のＲＰＭパッケージがある場合（Ｓ１０３；Ｙｅｓ）には、共通部分抽出部６ｃは、未選択のＲＰＭパッケージを１つ選択する（Ｓ１０４）。
【００４９】
そして、共通部分抽出部６ｃは、選択したＲＰＭパッケージと同一のパッケージが、外部レポジトリ取得部６ｂにより取得されたオープンソースのソフトウェアの一覧の中に存在するか否かを判定する（Ｓ１０５）。
【００５０】
オープンソースのソフトウェアの一覧の中に存在する場合（Ｓ１０５；Ｙｅｓ）には、イメージ分解部６ｄは、共通部分抽出部６ｃにより選択されたＲＰＭパッケージを、指定されたＶＭに対応するディスクイメージファイル４ａから削除する（Ｓ１０６）。そして、イメージ分解部６ｄは、削除したＲＰＭパッケージを、指定されたＶＭに対応する復元情報４ｂに登録する（Ｓ１０７）。
【００５１】
そして、共通部分抽出部６ｃは、選択したＲＰＭパッケージに含まれるファイルの中に未選択のファイルがあるか否かを判定する（Ｓ１０８）。未選択のファイルがある場合（Ｓ１０８；Ｙｅｓ）には、共通部分抽出部６ｃは、未選択のファイルを１つ選択する（Ｓ１０９）。そして、共通部分抽出部６ｃは、同一パッケージである選択したファイルの中身と、かかるファイルと同一名称の、オープンソースのソフトウェアに含まれるファイルの中身とがバイナリ単位で完全一致するか否かを判定する（Ｓ１１０）。完全一致する場合（Ｓ１１０；Ｙｅｓ）には、共通部分抽出部６ｃは、Ｓ１０８に戻る。
【００５２】
一方、完全一致しない場合（Ｓ１１０；Ｎｏ）には、完全一致しないと判定した２つのファイルのうち、選択したＲＰＭパッケージに含まれるファイルを抽出する。そして、イメージ分解部６ｄは、抽出したファイルを、指定されたＶＭに対応するファイル群４ｃに追加し（Ｓ１１１）、Ｓ１０８に戻る。
【００５３】
一方、未選択のファイルがない場合（Ｓ１０８；Ｎｏ）や、オープンソースのソフトウェアの一覧の中に存在しない場合（Ｓ１０５；Ｎｏ）には、Ｓ１０３に戻る。
【００５４】
そして、未選択のＲＰＭパッケージがない場合（Ｓ１０３；Ｎｏ）には、共通部分抽出部６ｃは、処理を終了する。
【００５５】
図１１は、実施例に係る監視処理の手順を示すフローチャートである。実施例に係る監視処理は、例えば、所定時間間隔で制御部５により実行される。
【００５６】
図１１に示すように、復元情報解析部７ａは、全てのＶＭについて、所定時間間隔で、ＶＭに対応する復元情報４ｂに含まれるＲＰＭパッケージの一覧を取得する。そして、復元情報解析部７ａは、取得したＲＰＭパッケージの一覧を復元データリストに登録することにより、復元データリストを生成する（Ｓ２０１）。
【００５７】
外部レポジトリ取得部７ｂは、復元情報解析部７ａにより復元データリストが生成されるたびに、外部レポジトリサーバ１１から、復元データリストに登録されたＲＰＭパッケージをダウンロードする（Ｓ２０２）。なお、外部レポジトリ取得部７ｂは、ＲＰＭパッケージをダウンロードする際に、バージョンの指定は行わない。
【００５８】
そして、復元情報更新部７ｃは、ダウンロードされたＲＰＭパッケージのバージョンと、復元データリストに登録されたＲＰＭパッケージのバージョンとを比較する。そして、復元情報更新部７ｃは、比較の結果、ダウンロードされたＲＰＭパッケージのバージョンのほうが、復元データリストに登録されたＲＰＭパッケージのバージョンよりも新しいか否かを判定する（Ｓ２０３）。
【００５９】
新しい場合（Ｓ２０３；Ｙｅｓ）には、復元情報更新部７ｃは、次の処理を行う。すなわち、復元情報更新部７ｃは、復元データリストに登録されたバージョン（更新される前のバージョン）のＲＰＭパッケージを外部レポジトリサーバ１１からダウンロードする（Ｓ２０４）。そして、復元情報更新部７ｃは、ダウンロードしたＲＰＭパッケージのファイルをファイル群４ｃに追加する（Ｓ２０５）。
【００６０】
そして、復元情報更新部７ｃは、新たにファイル群４ｃに追加されたＲＰＭパッケージを復元情報４ａから削除し（Ｓ２０６）、処理を終了する。また、新しくない場合（Ｓ２０３；Ｎｏ）にも、復元情報更新部７ｃは、処理を終了する。
【００６１】
図１２は、実施例に係る復元処理の手順を示すフローチャートである。実施例に係る監視処理は、例えば、入力部２から、どのＶＭのディスクイメージファイル４ａを復元するかの指示が入力されると、制御部５により実行される。
【００６２】
図１２に示すように、復元情報解析部８ａは、ディスクイメージファイル４ａが復元される対象のＶＭに対応する復元情報４ｂを特定する。そして、復元情報解析部８ａは、特定した復元情報４ｂに含まれるＲＰＭパッケージの一覧を取得する。そして、復元情報解析部８ａは、取得したＲＰＭパッケージの一覧を復元データリストに登録することにより、復元データリストを生成する（Ｓ３０１）。
【００６３】
外部レポジトリ取得部８ｂは、外部レポジトリサーバ１１から、復元データリストに登録されたＲＰＭパッケージをダウンロードする（Ｓ３０２）。なお、外部レポジトリ取得部８ｂは、ＲＰＭパッケージをダウンロードする際に、バージョンの指定を行う。
【００６４】
イメージ復元部８ｃは、ＶＭごとに、ダウンロードされたＲＰＭパッケージを、ディスクイメージファイル４ａにインストールする。さらに、イメージ復元部８ｃは、ＶＭごとに、ファイル群４ｃをディスクイメージファイル４ａにコピーして、ＶＭを復元可能なディスクイメージファイル４ａを生成し（Ｓ３０３）、処理を終了する。
【００６５】
上述してきたように、管理装置１は、記憶部４に記憶されたディスクイメージファイル４ａと対応付けられた、外部レポジトリサーバ１１に記憶されたソフトウェアが更新されたかを検知する。そして、管理装置１は、更新が検知されると外部レポジトリサーバ１１から更新前のソフトウェアを取得して記憶部４に保存する。そして、管理装置１は、記憶部４に更新前のソフトウェアがある場合は、記憶部４から更新前のソフトウェアを取得し、更新前のソフトウェアおよびディスクイメージファイル４ａを用いてＶＭを復元可能なディスクイメージファイル４ａを生成する。したがって、管理装置１によれば、外部レポジトリサーバ１１が記憶するデータが更新された場合であっても、ＶＭを復元するという対応が可能となる。
【００６６】
また、管理装置１は、ＶＭのイメージファイルの一部のデータが更新されたかを検知する。そして、管理装置１は、管理装置１が保持するＶＭのイメージファイルの一部のデータと、ダウンロードした更新前のＶＭのイメージファイルの一部のデータとを用いて、ＶＭを復元可能なイメージファイルを生成する。
【００６７】
さて、これまで開示の装置に関する実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。
【００６８】
例えば、開示の装置は、入力部２を介して、ユーザによる復元情報４ｂの登録内容の更新を受け付けることもできる。この場合、開示の装置は、登録内容が更新された復元情報４ｂを用いて、復元情報４ｂに登録されたＲＰＭパッケージを外部レポジトリサーバ１１からダウンロードして、ディスクイメージファイル４ａを復元することができる。これにより、復元情報４ｂの更新という簡易な作業で、復元時のＶＭのＲＰＭパッケージのバージョンなどを新しいバージョンに更新することができる。図１３は、変形例に係る管理装置が実行する処理の一例を説明するための図である。図１３の例は、管理装置が、入力部２を介して、復元情報４ｂに登録された「ａｐａｃｈｅ  ｖ１」、「ｔｏｍｃａｔ  ｖ１」のＲＰＭパッケージから、「ａｐａｃｈｅ  ｖ２」、「ｔｏｍｃａｔ  ｖ２」のＲＰＭパッケージへの更新を受け付けた場合を示す。図１３の例の場合において、管理装置は、復元情報４ｂに登録された「ａｐａｃｈｅ  ｖ２」、「ｔｏｍｃａｔ  ｖ２」のＲＰＭパッケージを外部レポジトリサーバ１１からダウンロードして、ディスクイメージファイル４ａを復元する。このため、復元情報４ｂの更新という簡易な作業で、復元時のＶＭの「ａｐａｃｈｅ」、「ｔｏｍｃａｔ」のバージョンを新しいバージョンに更新することができる。
【００６９】
また、開示の装置は、外部レポジトリサーバ１１に記憶されたＲＰＭパッケージの更新を検知した場合に、更新が軽微な場合には、ＲＰＭパッケージのダウンロードを行わないように制御することもできる。ここで更新が軽微な場合の一例としては、例えば、ＲＰＭパッケージの更新が単なるバグの修正である場合が挙げられる。図１４は、変形例に係る管理装置が実行する処理の一例を説明するための図である。図１４の例に示すように、管理装置は、「ａｐａｃｈｅ  ｖ１．０．０」から「ａｐａｃｈｅ  ｖ１．０．１」へのバグの修正の軽微な更新を検知した場合には、更新前の「ａｐａｃｈｅ  ｖ１．０．０」をダウンロードしないように制御することもできる。これにより、軽微な更新などの場合には、機能的にあまり変わらないＲＰＭパッケージのダウンロードを抑止できるので、管理装置の処理負荷を軽減することができる。
【００７０】
なお、開示の装置は、更新があった場合に、更新前のＲＰＭパッケージをダウンロードする。そして、開示の装置は、ダウンロードしたＲＰＭパッケージに外部レポジトリサーバ１１によって付加された更新に関する情報に基づいて、イメージを復元するか、または、復元しないかの制御を行うこともできる。例えば、脆弱性対応のためＲＰＭパッケージを更新した場合には、ダウンロードしたＲＰＭパッケージは脆弱性を有することとなる。このときダウンロードしたＲＰＭパッケージを用いてＶＭを復元した場合には、復元したＶＭは脆弱性を有することとなる。そこで、管理装置は、付加された更新に関する情報が、脆弱性対応の更新であることを示す場合には、ダウンロードしたＲＰＭパッケージを用いて、イメージを復元しないように制御することができる。
【００７１】
また、各実施例において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともできる。また、各実施例において説明した各処理のうち、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。
【００７２】
また、各種の負荷や使用状況などに応じて、各実施例において説明した各処理の各ステップでの処理を任意に細かくわけたり、あるいはまとめたりすることができる。また、ステップを省略することもできる。
【００７３】
また、各種の負荷や使用状況などに応じて、各実施例において説明した各処理の各ステップでの処理の順番を変更できる。
【００７４】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的状態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
【００７５】
［データ処理プログラム］
また、上記の実施例で説明した管理装置１の各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータシステムで実行することによって実現することもできる。そこで、以下では、図１５を用いて、上記の実施例で説明した管理装置１と同様の機能を有するデータ処理プログラムを実行するコンピュータの一例を説明する。図１５は、データ処理プログラムを実行するコンピュータを示す図である。
【００７６】
図１５に示すように、コンピュータ３００は、ＣＰＵ３１０、ＲＯＭ３２０、ＨＤＤ（Hard  Disk  Drive）３３０、ＲＡＭ３４０を有する。これら各機器３１０〜３４０は、バス３５０を介して接続されている。
【００７７】
ＲＯＭ３２０には、ＯＳ（Operating  System）などの基本プログラムが記憶されている。また、ＨＤＤ３３０には、上記の実施例で示す分解部５ａ、監視部５ｂ、復元部５ｃと同様の機能を発揮するデータ処理プログラム３３０ａが予め記憶される。
【００７８】
そして、ＣＰＵ３１０が、データ処理プログラム３３０ａをＨＤＤ３３０から読み出して実行する。
【００７９】
なお、上記したデータ処理プログラム３３０ａについては、必ずしも最初からＨＤＤ３３０に記憶させておく必要はない。
【００８０】
例えば、コンピュータ３００に挿入されるフレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」にデータ処理プログラム３３０ａを記憶させておく。そして、コンピュータ３００がこれらからデータ処理プログラム３３０ａを読み出して実行するようにしてもよい。
【００８１】
さらには、公衆回線、インターネット、ＬＡＮ、ＷＡＮなどを介してコンピュータ３００に接続される「他のコンピュータ（またはサーバ）」などにデータ処理プログラム３３０ａを記憶させておく。そして、コンピュータ３００がこれらからデータ処理プログラム３３０ａを読み出して実行するようにしてもよい。
【符号の説明】
【００８２】
１        管理装置
４ａ      ディスクイメージファイル
４ｂ      復元情報
４ｃ      ファイル群
５        制御部
５ａ      分解部
５ｂ      監視部
５ｃ      復元部
【図１】
2015170015.tif 000003
【図２】
2015170015.tif 000004
【図３】
2015170015.tif 000005
【図４】
2015170015.tif 000006
【図５】
2015170015.tif 000007
【図６】
2015170015.tif 000008
【図７】
2015170015.tif 000009
【図８】
2015170015.tif 000010
【図９】
2015170015.tif 000011
【図１０】
2015170015.tif 000012
【図１１】
2015170015.tif 000013
【図１２】
2015170015.tif 000014
【図１３】
2015170015.tif 000015
【図１４】
2015170015.tif 000016
【図１５】
2015170015.tif 000017