JPWO2014155693A1 - 仮想マシンイメージ管理サーバ、及び仮想マシンイメージ管理方法 - Google Patents

仮想マシンイメージ管理サーバ、及び仮想マシンイメージ管理方法 Download PDF

Info

Publication number
JPWO2014155693A1
JPWO2014155693A1 JP2015507884A JP2015507884A JPWO2014155693A1 JP WO2014155693 A1 JPWO2014155693 A1 JP WO2014155693A1 JP 2015507884 A JP2015507884 A JP 2015507884A JP 2015507884 A JP2015507884 A JP 2015507884A JP WO2014155693 A1 JPWO2014155693 A1 JP WO2014155693A1
Authority
JP
Japan
Prior art keywords
catalog
master image
image
virtual machine
intermediate master
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.)
Granted
Application number
JP2015507884A
Other languages
English (en)
Other versions
JP5996094B2 (ja
Inventor
佑樹 長沼
佑樹 長沼
田口 雄一
雄一 田口
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Application granted granted Critical
Publication of JP5996094B2 publication Critical patent/JP5996094B2/ja
Publication of JPWO2014155693A1 publication Critical patent/JPWO2014155693A1/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

仮想マシンイメージ管理情報に基づいて、仮想マシンイメージを構築する途中までの追加処理をマスタイメージに適用した中間マスタイメージを構築するか否かを判定し、中間マスタイメージを構築すると判定した場合、中間マスタイメージを構築して記憶部に格納し、仮想マシンイメージ管理情報中のマスタイメージを、中間マスタイメージに置換し、仮想マシンイメージ管理情報に基づいて、記憶部に格納されているマスタイメージ又は中間マスタイメージに残りの追加処理を適用して仮想マシンイメージを構築する仮想マシンイメージ管理サーバ。

Description

本発明は、仮想マシンイメージ管理サーバ及び仮想マシンイメージ管理方法の技術に関する。
大規模なデータセンタを有するサーバで仮想的な計算機である仮想マシンを稼働させ、ユーザに、通信ネットワークを介して、その仮想マシンを利用させるサービスが実現されている。
このようなサービスは、予めOS(Operating System)及びソフトウェア等(以下「仮想環境」という)がインストールされた複数の仮想マシンの一覧を、カタログとしてユーザに提示する。ユーザは、そのカタログから所望の実行環境がインストールされた仮想マシンを選択することによって、その実行環境を含む仮想マシンを利用することができる。
サーバは、仮想マシン上で実行される実行環境をファイル等のイメージデータ(つまり、仮想マシンイメージ)として扱うことができる。従って、サーバは、カタログから或る実行環境を含む仮想マシンが選択された場合、その実行環境に対応する仮想マシンイメージを複製するだけで、ユーザにその実行環境を含む仮想マシンを提供することができる(例えば、特許文献1、2)。
US2012/0081395 特開2007−114983号公報
サーバから提供されたカタログに所望の実行環境を含む仮想マシンが存在する場合、ユーザは、その仮想マシンを選択するだけで良い。しかし、カタログに所望の実行環境を含む仮想マシンが存在しない場合、ユーザは、ベースとなる実行環境を含む仮想マシンをカスタマイズして、所望の実行環境を含む仮想マシンを構築する必要がある。
ベースとなる実行環境を含む仮想マシンにユーザの所望するソフトウェア等をインストールする処理は、仮想マシンイメージをコピーする処理と比較して、サーバの処理負荷が大きい。この場合ユーザは、所望の実行環境を含む仮想マシンが利用できるようになるまで、長い時間待たされてしまう虞がある。
この問題は、サーバで、OS及びソフトウェア等を様々に組み合わせた複数の仮想マシンイメージを予め構築しておくという解決手段が考えられる。しかし、この解決手段は、仮想マシンイメージの数が増えるほど、サーバのストレージの消費量が増加してしまうという問題を含む。
そこで、本発明の目的は、ユーザの所望する実行環境を含む仮想マシンの提供時間の短縮と、サーバにおけるストレージの消費量と、のバランスを考慮する仮想マシンイメージ管理サーバを提供することにある。
本発明の一実施例に係る仮想マシンイメージ管理サーバは、仮想マシン及び当該仮想マシン上の実行環境に関するデータである仮想マシンイメージを管理する。
仮想マシンイメージ管理サーバは、演算処理を実行する演算部と、データを格納する記憶部と、を備える。
記憶部は、
仮想マシンイメージの基礎となるマスタイメージと、
一のマスタイメージと、それぞれが一のマスタイメージに適用され得る1又は2以上の追加処理と、の組み合わせを含む仮想マシンイメージ管理情報と、を格納する。
演算部は、
仮想マシンイメージ管理情報に基づいて、仮想マシンイメージを生成する途中までの追加処理をマスタイメージに適用した中間マスタイメージを構築するか否かを判定する判定処理と、
判定処理での判定結果が中間マスタイメージを構築するという真の判定結果の場合、中間マスタイメージを構築して記憶部に格納し、仮想マシンイメージ管理情報中のマスタイメージを、中間マスタイメージに置換する中間マスタイメージ構築処理と、
仮想マシンイメージ管理情報に基づいて、記憶部に格納されているマスタイメージ又は中間マスタイメージに残りの追加処理を適用して仮想マシンイメージを構築する仮想マシンイメージ構築処理と、を実行する。
本発明によれば、ユーザの所望する実行環境を含む仮想マシンの提供時間の短縮と、サーバにおけるストレージの消費量と、のバランスを取ることができる。
図1は、カタログ管理システムの全体構成の例を示す。 図2は、カタログ管理サーバのハードウェア構成の例を示す。 図3は、カタログ管理テーブルの例を示す。 図4は、スクリプト管理テーブルの例を示す。 図5は、実行時間管理テーブルの例を示す。 図6は、マスタイメージ管理テーブルの例を示す。 図7は、ストレージ容量管理テーブルの例を示す。 図8は、ポリシ管理テーブルの例を示す。 図9は、実施例1に係る処理の概要を説明するための図である。 図10は、カタログ管理システムにおける処理のシーケンスチャートの例を示す。 図11は、第1カタログ管理部における処理のフローチャートの例を示す。 図12は、第1のポリシに係る第1カタログ構築部の処理のフローチャートの例を示す。 図13は、第1のポリシに係る第1カタログ構築部の処理のフローチャートの例を示す。 図14は、第2のポリシに係る第1カタログ構築部の処理のフローチャートの例を示す。 図15は、第3のポリシに係る第1カタログ構築部の処理のフローチャートの例を示す。 図16は、第4のポリシに係る第1カタログ構築部の処理のフローチャートの例を示す。 図17は、第5のポリシに係る第1カタログ構築部の処理のフローチャートの例を示す。 図18は、マスタイメージ監視部の処理のフローチャートの例を示す。 図19は、カタログ管理サーバに係るGUIの画面の例を示す。 図20は、実施例3に係る処理の概要を説明するための図である。 図21は、実施例3に係るカタログ管理サーバの構成の例を示す。 図22は、カタログ構築処理テーブルの例を示す。 図23は、中間マスタイメージ管理テーブルの例を示す。 図24は、第2カタログ管理部の処理のフローチャートの例を示す。 図25は、実施例3に係るGUIの画面の例を示す。 図26は、第2カタログ構築部の処理のフローチャートの例を示す。 図27は、実施例4に係るカタログ管理サーバの構成の例を示す。 図28は、第3カタログ管理部の処理のフローチャートの例を示す。 図29は、実施例5に係るカタログ管理サーバの構成の例を示す。 図30は、実施例5に係るカタログ管理サーバの処理のフローチャートの例を示す。
仮想マシンイメージを管理するカタログ管理サーバの幾つかの実施例を、図面を参照しながら、以下に述べる。
図1は、カタログ管理システムの全体構成の例を示す。
カタログ管理システム10は、仮想マシンにOS及びソフトウェア等がインストールされている(つまり、実行環境を含む)1又は2以上の仮想マシンイメージを、カタログとして管理する。ユーザは、カタログ管理システム10の提供するカタログを通じて、所望の実行環境を含む仮想マシンを容易に利用することができる。
カタログ管理システム10は、カタログを管理する仮想マシン管理サーバ11と、実行環境を含む仮想マシンイメージを管理する仮想マシンイメージ管理サーバ12と、仮想マシンを動作させる物理的な計算機である物理サーバ13と、様々なデータを格納するストレージ装置15と、これらのサーバ11、12、13等を管理するための端末である管理端末14と、を有する。これらのサーバ11、12、13、ストレージ装置15及び管理端末14は、通信ネットワーク18を介して、相互にデータの送受信を行うことができる。
通信ネットワーク18は、各装置間で送受信される様々なデータを伝送する。通信ネットワーク18は、例えば、LAN(Local Area Network)、SAN(Storage Area Network)又はこれらの組み合わせ等によって構成される。通信ネットワーク18は、更に外部の通信ネットワーク(不図示)と接続されても良い。
物理サーバ13は、ハイパーバイザ51を有する。ハイパーバイザ51は、物理サーバ13の有する物理リソース(例えば、CPU及びメモリ等のリソース)を、論理的に分割して、仮想マシン53から利用可能とするハードウェア又はソフトウェアである。つまり、仮想マシン53は、このハイパーバイザ51上に実現される。例えば、VMware(登録商標)におけるESX等は、ハイパーバイザ51の一例である。
ハイパーバイザ51は、仮想マシンイメージ46(ファイル)を用いて仮想マシン53を実現する。つまり、ハイパーバイザ51は、OS及びソフトウェア等を含む仮想マシンイメージ46を用いて、そのOS及びソフトウェア等のインストールされた仮想マシン53を実現する。仮想マシンイメージ46は、ストレージ装置15に格納されても良いし、物理サーバ13の有する所定の記憶部(不図示)に格納されても良い。
ストレージ装置15は、データのI/O(Input/Output)を制御する制御部41と、データを記憶するボリューム42とを有する。
ボリューム42は、仮想マシンイメージ管理サーバ12及び物理サーバ13上のハイパーバイザ53が、共に認識可能なファイルシステム45を有する。仮想マシンイメージ46及びマスタイメージ81等は、このファイルシステム45に格納される。ボリューム42及びファイルシステム45は、何れも複数であっても良い。例えば、VMware(登録商標)のvSphereの場合、拡張子が「VMFS」のファイルが、ファイルシステム45に該当する。ファイルシステム45は、データストアと呼ばれることもある。ストレージ装置15は、SANに適応しても良いし、NAS(Network Attached Storage)に適応しても良い。
ファイルシステム45には、仮想マシンイメージ46と、マスタイメージ81と、中間マスタイメージ82と、スクリプト83と、が格納される。
仮想マシンイメージ46は、OS等のデータを含むディスクイメージ48と、物理リソースから仮想マシンに割り当てられるリソースに関する情報を定義した定義情報49と、を含む。例えば、VMware(登録商標)におけるvSphereの場合、拡張子が「VMDK」のファイルがディスクイメージ48に該当し、拡張子が「VMX」のファイルが定義情報49に該当する。
マスタイメージ81は、仮想マシンイメージ46の構築に用いられる。通常、仮想マシンイメージ46は、複製したマスタイメージ81を用いて構築される。マスタイメージ81は、仮想マシンイメージ46と同じデータ構成であっても良いし、所定のフォーマットで記載されたデータ構成であっても良い。例えば、VMware(登録商標)における拡張子が「OVF(Open Virtualization Format)」のファイル等は、所定のフォーマットに該当する。マスタイメージ81は、ストレージ装置15のボリューム42と異なるボリュームやファイルシステム45と異なるファイルシステムに格納されても良いし、他の装置に格納されても良い。マスタイメージ81は、仮想マシンイメージ管理サーバ12からアクセス可能であり、仮想マシンイメージ管理サーバ12を経由して、各物理サーバ13へ転送可能な他の装置に格納されても良い。
スクリプト83は、Windows(登録商標)におけるバッチファイル、又はLinux(登録商標)におけるシェルスクリプト等であっても良い。スクリプト83は、独自のフォーマットによってシステムのあるべき状態が記述されていても良い。スクリプト83は、自動的に実行されるものであっても良いし、ユーザの指示を受けたオペレータから手動で実行されるものであっても良い。スクリプト83は、ストレージ装置15に格納されても良いし、カタログ管理サーバ11の記憶部24に記憶されても良い。スクリプト83の詳細については、後述する。
中間マスタイメージ83は、マスタイメージ81にスクリプト83を適用して生成される。中間マスタイメージ83の詳細については、後述する。
仮想マシンイメージ管理サーバ12は、実行環境を含む仮想マシンイメージを管理する。仮想マシンイメージ管理サーバ12は、実行環境を含む仮想マシンイメージを管理する仮想マシンイメージ管理部31と、様々なデータを記憶する記憶部33と、外部に対して機能を公開するAPI32と、を有する。
仮想マシンイメージ管理部31は、ハイパーバイザ51、仮想マシン53及びファイルシステム45等を管理する。
記憶部33は、ハイパーバイザ51等を管理するための情報を含む構成情報36を記憶する。記憶部33は、揮発性記憶媒体で構成されても良いし、不揮発性記憶媒体で構成されても良い。構成情報320は、所定のDB(DataBase)として構成されても良い。
API32は、仮想マシンイメージ管理サーバ12の有する機能を外部に公開する。仮想マシンイメージ管理サーバ12は、このAPI32を介して受けた要求に基づいて、構成情報36に関する情報を提供したり、所定の設定を行ったりする。API32は、HTTPプロトコルによる情報の取得及び設定を可能とするREST(Representational State Transfer)に関する機能を公開しても良い。API32は、独自のプロトコルに基づく機能を公開しても良い。
一般的に、仮想環境が異なると、仮想マシンイメージ管理部31、構成情報36及びAPI32も異なり得る。例えば、VMware(登録商標)のvSphereの場合、vCenterと呼ばれるソフトウェアが、これらに該当する機能を提供する。例えば、vSphereの仮想環境とHyper−Vの仮想環境とが混在する場合、カタログ管理システム10は、仮想環境毎に異なる仮想マシンイメージ管理サーバ12を有しても良い。若しくは、カタログ管理システム10は、1つの仮想マシンイメージ管理サーバ12を有し、この仮想マシンイメージ管理サーバ12上で、異なる仮想環境を統合して管理できるソフトウェア(例えば、CloudStack等)を実行しても良い。
カタログ管理サーバ11は、カタログに対応する仮想マシンイメージ46を構築する。ユーザは、仮想マシンイメージ管理サーバ12の有するAPI32を介して、カタログ管理サーバ11に対して、所望の仮想マシンイメージを指定しても良い。カタログ管理サーバ11は、第1カタログ管理部21と、第1カタログ構築部22と、マスタイメージ監視部23と、記憶部24とを有する。記憶部24は、カタログ管理テーブル100と、スクリプト管理テーブル200と、実行時間管理テーブル400と、マスタイメージ管理テーブル400と、ストレージ容量管理テーブル500と、ポリシ管理テーブル600と、を記憶する。これらの要素の詳細については、後述する。
仮想マシンイメージ管理サーバ12及びカタログ管理サーバ11は、管理端末14及び通信ネットワーク18を介して制御されても良いし、所定の入出力I/F(不図示)を介して直接制御されても良い。カタログ管理サーバ11と仮想マシンイメージ管理サーバ12とは、一つの装置であっても良い。カタログ管理サーバ11、仮想マシンイメージ管理サーバ12及び管理端末14は、物理的な計算機であっても良いし、或る物理的な計算機上で動作する仮想計算機であっても良い。
仮想マシンイメージ管理サーバ12は、2台以上であっても良い。この場合、カタログ管理サーバ11は、テーブル及び処理の各々に、仮想マシンイメージ管理サーバ12を識別するための情報(例えば、IPアドレス等)を付与しても良い。
図2は、カタログ管理サーバ11のハードウェア構成の例を示す。なお、仮想マシンイメージ管理サーバ12及び物理サーバ13のハードウェア構成は、図2に示すハードウェア構成とほぼ同様であるので、説明を省略する。
カタログ管理サーバ11は、コンピュータプログラム(以下「プログラム」という)に基づき演算処理を実行するCPU1001と、プログラム及びデータを一時的に格納するメモリ1002と、通信ネットワーク18に接続するためのネットワークI/F1003と、マウス、キーボード及びディスプレイ等のユーザインタフェースに係る装置を接続するための入出力I/F1004と、ディスク(記憶媒体)にアクセスするためのディスクI/F1005と、を有する。これらの要素1001〜1005は、双方向にデータの送受信が可能な内部バス1008で接続されている。
ネットワークI/F1003は、例えば、NIC(Network Interface Card)等によって構成される。CPU1001は、ディスクI/F1005を介して、自装置の内部に有する内部ディスク1006(例えば、HDD(Hard Disk Drive))にアクセスしても良いし、外部ディスクI/F1007を介して、自装置の外部のストレージ装置15にアクセスしても良い。外部ディスクI/F1007は、HBA(Host Bus Adapter)等によって構成されても良いし、ネットワークIF1008として構成されても良い。
図3は、カタログ管理テーブル100の構成例を示す。
カタログ管理テーブル100は、ユーザに提供するカタログ要素と、カタログ要素に対応する仮想マシンを構築するために使用するマスタイメージ及びそのマスタイメージに対する設定と、を有する。ここで、カタログは複数のカタログ要素を含み、カタログ要素は実行環境を含む仮想マシンイメージに対応する。
カタログ管理テーブル100は、データ項目として、カタログ要素を識別するカタログ要素名111と、カタログ要素に係る仮想マシンイメージの構築に用いるマスタイメージを識別するマスタイメージ名112と、カタログ要素に係る仮想マシンイメージの構築に許容される最大時間を示す許容時間113と、カタログ要素に係る仮想マシンイメージの構築の頻度を示す構築頻度114と、カタログ要素に係る仮想マシンイメージの構築の優先度を示す優先度115と、カタログ要素の属するグループを示すグループ116と、マスタイメージに対する追加の設定及び処理を含むスクリプトのリストを管理する適用スクリプトリスト117と、を有する。
適用スクリプトリスト117には、コピーされたマスタイメージに対して適用される設定及び処理を含むスクリプトが格納される。マスタイメージに2以上のスクリプトが適用されることもあるので、適用スクリプトリスト117には、2以上のスクリプトが格納されても良い。
また、適用スクリプトリスト117は、スクリプトを適用する順番を有しても良い。例えば、カタログ管理テーブル100のレコード101aは、「第1マスタイメージ」に、「第1スクリプト」、「第2スクリプト」及び「第3スクリプト」の順番にスクリプトを適用して「第1カタログ要素」が構築されることを示す。例えば、カタログ管理テーブル100のレコード101bは、「第1マスタイメージ」に、「第1スクリプト」及び「第2スクリプト」を適用して、「第2カタログ要素」が構築されることを示す。マスタデータに適用すべきスクリプトが存在しない場合、適用スクリプトリスト117は、空欄であっても良い。適用スクリプトリスト117に記載されたスクリプトは、自動的に適用されても良いし、ユーザの指示を受けたオペレータによって手動で適用されても良い。
マスタイメージ名112には、マスタイメージに適用スクリプトリスト117の一部のスクリプトを適用して構築された中間マスタイメージが格納されても良い。中間マスタイメージの詳細については後述する。
許容時間113には、ユーザがカタログ要素の構築にかかる時間として許容できる最大時間が格納される。この許容時間113は、ユーザからカタログ要素の構築の要求を受けてから、そのカタログ要素の構築が完了するまでの時間であっても良い。許容時間113の詳細については、後述する。
構築頻度114には、カタログ要素が構築された頻度(回数)が格納される。構築頻度114には、所定のシステム定義時からカタログ要素が構築された回数の累積が格納されても良い。又は、構築頻度114には、ポリシで設定された或る期間にカタログが構築された回数の平均が格納されても良い。構築頻度114の詳細については、後述する。
優先度115には、カタログ要素の優先度の高さが格納される。カタログ管理サーバ11は、優先度115の高いカタログ要素から先に構築してストレージに格納することで、カタログ要素の構築処理に要する時間の短縮と、ストレージの消費量とのバランスを取ることができる。優先度115は、予め決められていても良いし、所定の条件に基づいて適宜更新されても良い。優先度115の詳細については、後述する。
グループ116には、カタログ要素が属しているグループの識別情報が格納される。例えば、図3に示すカタログ管理テーブル100において、第1カタログと第2カタログは、同じ「グループA」に属している。グループ116の詳細については、後述する。
本実施例では、1つのカタログ要素に、1つのマスタイメージが対応するとする。しかし、1つのカタログ要素に、2以上のマスタイメージ及びそれらに関連する設定が対応するとしても良い。
図4は、スクリプト管理テーブル200の構成例を示す。
スクリプト管理テーブル200は、各スクリプトの詳細を有する。スクリプト管理テーブル200は、データ項目として、スクリプトを識別するスクリプト名211と、スクリプトの実行の種別を示す実行種別212と、スクリプトで設定されるソフトウェアに関する情報を示すソフトウェア情報213と、スクリプトの格納場所(アドレス)を示すアドレス214と、を有する。
スクリプト名211には、各スクリプトの識別情報が格納される。スクリプト管理テーブル210のスクリプト名211に格納されているスクリプト名と、カタログ管理テーブル100の適用スクリプトリスト117に格納されているスクリプト名と、が同一の場合、それらのスクリプトは、同一のスクリプトとしても良い。
実行種別212には、スクリプトの実行に関する種別が格納される。実行種別212には、マスタイメージによって実現される仮想マシンにソフトウェアをインストールすることを示す「インストール」、マスタイメージに含まれるOS及びソフトウェア等に対するパラメータを変更することを示す「変更」、及びマスタイメージによって実現される仮想マシンからソフトウェアをアンインストールすることを示す「アンインストール」等の種別が格納される。
ソフトウェア情報213は、データ項目として、ソフトウェア名221aと、そのソフトウェアのバージョン221bと、を有する。スクリプトがソフトウェアに関する処理を含まない場合、ソフトウェア情報213は、空欄であっても良い。
アドレス214には、スクリプトの実体データ(ファイル)の格納場所(アドレス)が格納される。格納場所は、ファイルパスとして表記されても良いし、URL(Uniform Resource Locator)として表記されても良い。
例えば、スクリプト管理テーブル214のレコード201aは、「第1スクリプト」は、「バージョン7」の「Tomcat」というソフトウェアを「インストール」する処理であり、「¥¥xxx¥yyy¥tomcat.bat」のファイルパスに格納されていることを示す。スクリプトは、OSの各種パラメータの設定(例えば、IPアドレスの設定等)に関する処理であってもよい。
スクリプトは、Windows(登録商標)におけるバッチファイル、又はLinux(登録商標)におけるシェルスクリプトであっても良い。スクリプトには、独自のフォーマット(ルール)によって、システムのあるべき状態が記述されており、第1カタログ管理部21が、そのスクリプトを、所定の命令に変換してマスタイメージによって実現される仮想マシンに適用するとしてもよい。
スクリプトは、カタログ管理サーバ11の内部の記憶部24に格納されても良いし、カタログ管理サーバ11の外部のストレージ装置15に格納されても良い。
スクリプトは、自動的に実行されるものであって良い。又は、スクリプトは、オペレータから手動で実行されるものであっても良い。この場合、スクリプト管理テーブル200は、そのスクリプトが手動で実行されるものであることを示す情報を更に有し、アドレス214が、そのスクリプトの実行手順書(Runbook)の格納場所を有するとしても良い。
図5は、実行時間管理テーブル300の構成例を示す。
実行時間管理テーブル300は、カタログ要素の構築に必要な各処理の実行時間を有する。実行時間管理テーブル300は、データ項目として、処理の種別を示す処理種別311と、処理の対象を示す処理対象312と、処理の実行に要する時間を示す実行時間313とを有する。
例えば、実行時間管理テーブル300のレコード301aは、「第1マスタイメージ」の「コピー」に、「30分」を要することを示す。例えば、実行時間管理テーブル300のレコード301cは、「第1スクリプト」を「適用」するのに、「15分」を要することを示す。
実行時間313には、予め測定された時間が格納されても良い。又は、実行時間313には、最初に所定のデフォルト時間が格納されており、その後の測定に基づいてそのデフォルト時間が適宜更新されても良い。
オペレータよる手動の処理を含む場合は、処理種別311を「手動処理」とし、実行時間313を手動の処理に要する「平均時間」又は「最長時間」若しくは「作業時間及び確認時間の合計時間」としても良い。
図6は、マスタイメージ管理テーブル400の構成例を示す。
マスタイメージ管理テーブル400は、カタログ要素の構築に用いられるマスタイメージ及び中間マスタイメージを管理する。マスタイメージ管理テーブル400は、マスタイメージを識別するマスタイメージ名411と、マスタイメージのデータ(ファイル)のサイズを示すイメージサイズ412と、マスタイメージのファイルとしての属性を示す属性413と、基礎としたマスタイメージの情報を示す基礎マスタイメージ情報414と、適用済みのスクリプトの情報を示す適用済スクリプトリスト415と、を有する。
マスタイメージ名411には、各マスタイメージの識別情報が格納される。マスタイメージ管理テーブル400のマスタイメージ名411に格納されているマスタイメージ名と、カタログ管理テーブル100のマスタイメージ名112に格納されているマスタイメージ名とが同一の場合、それらのマスタイメージは、同一のマスタイメージとしても良い。
イメージサイズ412には、マスタイメージのデータ(ファイル)のサイズが格納される。イメージサイズ412には、マスタイメージの記憶領域を消費する量が格納されても良い。イメージサイズ412は、ハイパーバイザ51が認識するマスタイメージのデータ(ファイル)のサイズを示すものであり、仮想マシン53の内部で動作するOS(ゲストOS)が認識する仮想的な記憶デバイスのサイズを示すものではない。
属性413には、マスタイメージのデータ(ファイル)としての属性が格納される。属性413には、「Thick」又は「Thin」の何れかが格納される。
属性413が「Thick」の場合、ハイパーバイザ50の認識するマスタイメージのイメージサイズ412と、仮想マシンの内部で動作するゲストOSの認識する記憶デバイスの容量とは、ほぼ同じになる。したがって、仮にゲストOSにソフトウェアをインストールしたり、ゲストOSからソフトウェアをアンインストールしたりしても、イメージサイズ412は変化しない。
属性413が「Thin」の場合、イメージサイズ412は、仮想マシンの内部で動作するゲストOSの認識する記憶デバイスの容量以下となる。したがって、仮にゲストOSにソフトウェアをインストールしたり、ゲストOSからソフトウェアをアンインストールしたりした場合、イメージサイズ412は変化し得る。
基礎マスタイメージ情報414は、マスタイメージ名411の示すマスタイメージの基礎となったマスタイメージ(以下「基礎マスタイメージ」という)の名称を示す基礎マスタイメージ名421aと、その基礎マスタイメージによって実現されるゲストOSの名称を示すゲストOS名421bと、を有する。ゲストOS名421bは、第1カタログ構築部21の所定の処理において使用され得る。また、基礎マスタイメージ情報414は、ゲストOSの詳細情報を更に有しても良い。ゲストOSの詳細情報は、例えば、ゲストOSがWindows(登録商標)の場合におけるServicePack等の情報である。
適用済スクリプトリスト415は、基礎マスタイメージに対して適用されたスクリプトをリストとして有する。中間マスタイメージは、基礎マスタイメージに、適用済みスクリプトリストに示される順番にスクリプトを適用したものである。
例えば、マスタイメージ管理テーブル400のレコード401aは、基礎マスタイメージである「第1マスタイメージ」のゲストOSが「Windows(登録商標)」であることを示す。そして、レコード401aは、マスタイメージ名411の示す「第1マスタイメージ」が、基礎マスタイメージである「第1マスタイメージ」そのものであり、何のスクリプトも適用されていないことを示す。そして、レコード401aは、「第1マスタイメージ」のイメージサイズ412が「30GB」であり、その属性413が「Thick」であることを示す。
例えば、マスタイメージ管理テーブル400のレコード401bは、基礎マスタイメージである「第2マスタイメージ」のゲストOSが「Linux(登録商標)」であることを示す。そして、レコード401bは、マスタイメージ名411の示す「第2中間マスタイメージ」は、基礎マスタイメージである「第2マスタイメージ」にカラム423aの「第1スクリプト」を適用したものであることを示す。そして、レコード401bは、「第2中間マスタイメージ」のイメージサイズ412が「10GB」であり、その属性413が「Thin」であることを示す。
図7は、ストレージ容量テーブル500の構成例を示す。
ストレージ容量テーブル500は、ストレージ装置15の有するファイルシステム45における未使用の容量を有する。
ストレージ容量テーブル500は、データ項目として、ファイルシステム45を識別するファイルシステム名511と、ファイルシステム45における未使用の容量を示す未使用容量512と、を有する。
例えば、ストレージ容量テーブル500のレコード501aは、「第1データストア」には、「10TB(Tera Bytes)」の未使用容量があることを示す。
ストレージ容量テーブル500には、ファイルシステム45の全容量と、ファイルシステム45における使用済みの容量とが格納され、未使用容量512には、ファイルシステム45における全容量と使用済みの容量との差分が格納されても良い。
ストレージ容量テーブル500におけるファイルシステム名511は、複数のファイルシステムから構成されても良い。この場合、ファイルシステム名511の未使用容量512には、各ファイルシステムの未使用容量の合計値又は最大値が格納されても良い。
図8は、ポリシ管理テーブル600の構成例を示す。
ポリシ管理テーブル600は、中間マスタイメージを構築するためのポリシを有する。
ポリシ管理テーブル600は、ポリシを識別するポリシ名611と、カタログ管理サーバ11が何れのポリシを選択しているのかを示す状態612と、ポリシの内容を示すポリシ内容613と、を有する。選択中のポリシに対応する状態612には、「選択中」という値が格納される。
カタログ管理サーバ11は、選択中のポリシに適合するように、中間マスタイメージを構築する。これにより、カタログ管理サーバ11は、選択中のポリシに適合するカタログを構築することができる。ポリシ内容613には、図8に示した以外のポリシが格納されても良い。各ポリシの詳細及び各ポリシが選択された場合における中間マスタイメージの構築処理については、後述する。
図9は、実施例1に係る処理の概要を説明するための概念図である。
第1の方法において、第1カタログ要素8001aは、第1マスタイメージ8001に、第1スクリプト8021と第2スクリプト8022とを適用して構築される。第2カタログ要素8002aは、第1マスタイメージ8011に、第1スクリプト8021と第3スクリプト8023とを適用して構築される。ストレージ装置25の有するファイルシステム42には、第1マスタイメージ8011と、第1スクリプト8021と、第2スクリプト8022と、第3スクリプト8023と、が格納されている。
以下、第1の方法によって、第1カタログ要素8001a及び第2カタログ要素8002aを構築する場合の処理を説明する。
まず、カタログ管理サーバ11は、第1マスタイメージ8011をコピーし、そのコピーした第1マスタイメージ8011に、第1スクリプト8021及び第2スクリプト8022を順番に適用して第1カタログ8001aを構築する。
次に、カタログ管理サーバ11は、第1マスタイメージ8011をコピーし、そのコピーした第1マスタイメージ8011に、第1スクリプト8021及び第3スクリプト9023を順番に適用して第2カタログ8002aを構築する。
つまり、第1の方法の場合、第1スクリプト8021は、2回適用(実行)される。仮に、この第1スクリプト8021の適用にあたって手動の作業が必要となる場合、そこには、オペレータによる手動の作業コスト及び検証(テスト)コスト等も発生し得る。
以下、第2の方法によって、第1カタログ8001b及び第2カタログ8002bを構築する場合の処理を説明する。
まず、カタログ管理サーバ11は、第1マスタイメージ8011をコピーし、そのコピーした第1マスタイメージ8011に、第1カタログ8001b及び第2カタログ8002bに共通する第1スクリプト8021を適用して第2中間マスタイメージ8012を構築する。この第2中間マスタイメージ8012は、ファイルシステム45に格納される。
次に、カタログ管理サーバ11は、第2中間マスタイメージ8012をコピーし、そのコピーした第2中間マスタイメージ8012に、第2スクリプト8022を適用して第1カタログ8001bを構築する。
次に、カタログ管理サーバ11は、第2中間マスタイメージ8012をコピーし、そのコピーした第2中間マスタイメージ8012に、第3スクリプト8012を適用して第2カタログ8002bを構築する。
第2の方法は、第1の方法と比べて、第1スクリプト8021を適用する回数が1回少ない。したがって、第2の方法は、第1の方法と比べて、より短時間で第1カタログ8001b及び第2カタログ8002bを構築でき得る。しかしながら、第2の方法は、ファイルシステム45に第2中間マスタイメージ8012が格納される分、第1の方法と比べて、ファイルシステム45の未使用容量が減少する。
このように、中間マスタイメージを構築することによって、全てのカタログを構築するまでに要する時間が短縮され得るものの、ファイルシステム45の未使用容量が減少する虞も高くなる。そこで、カタログ管理サーバ11は、選択されたポリシに適合するように、カタログ要素の構築に要する時間とファイルシステム45の未使用容量とのバランスを考慮し、中間マスタイメージを構築する。
図10は、カタログ管理システム10における処理のシーケンスチャートの例を示す。
このシーケンスチャートは、カタログ管理サーバ11を利用するユーザ3と、カタログ管理サーバ11と、仮想マシンイメージ管理サーバ12と、ハイパーバイザ53と、の間の処理を示す。カタログ管理サーバ11における処理は、第1カタログ管理部21及び/又は第1カタログ構築部22によって実行される。
以下、「ポリシ選択要求」に関する処理を述べる。
ユーザ3は、所定のGUI(Graphical User Interface)を介して、ポリシ管理テーブル600に示すポリシの中から何れかのポリシを選択し、その選択結果をカタログ管理サーバ11に伝える(S11)。
カタログ管理サーバ11は、ユーザの選択したポリシに基づいて、カタログ再構築処理を実行する(S12)。この処理において、カタログ管理サーバ11は、必要に応じて仮想マシンイメージ管理サーバ12のAPI32に、情報要求、マスタイメージのコピー要求、スクリプト適用要求及び各種設定要求等を行う(S13)。
仮想マシンイメージ管理サーバ12の仮想マシンイメージ管理部31は、API32を介して受けた要求に基づいて、ハイパーバイザ51にマスタイメージのコピーを実行させたり、仮想マシン53にスクリプト適用を実行させたりする(S14)。
カタログ管理サーバ11は、仮想マシンイメージ管理サーバ12を介さずに、直接、ハイパーバイザ51にマスタイメージのコピーを実行させたり、仮想マシン53等にスクリプト適用を実行させたりしても良い(S15)
以下、「カタログ追加/削除要求」に関する処理を述べる。
ユーザ3は、所定のGUIを介して、追加又は削除するカタログを選択し、その選択結果をカタログ管理サーバ11に伝える(S21)。以降のステップS22〜S25の処理は、上述のステップS12〜S15の処理とほぼ同様であるので、ここでは、説明を省略する。
以下、「カタログ要素構築要求」に関する処理を述べる。
ユーザ3は、所定のGUIを介して、構築するカタログ要素を選択し、その選択結果をカタログ管理サーバ11に伝える(S31)。カタログ管理サーバ11は、カタログ要素の構築処理を実行する(S32)。そして、カタログ管理サーバ11は、仮想マシンイメージ管理サーバ12のAPI32に、適宜、情報の要求及び各種設定の要求等(例えば、マスタイメージのコピー及びスクリプト適用等)を行う(S33)。以降のステップS34〜S35の処理は、上述のステップS12〜S15の処理とほぼ同様であるので、ここでは、説明を省略する。
なお、カタログ管理サーバ11は、API32を介さずに、仮想マシンイメージ管理サーバ12に要求を行っても良い。
図11は、カタログ管理サーバ11の有する第1カタログ管理部21における処理のフローチャート例を示す。
以下、カタログ管理サーバ11が、ユーザ3から図10に係る「ポリシ選択要求」を受けた場合の処理について述べる。
第1カタログ管理部21は、ユーザ3から「ポリシ選択要求」を受けた場合、ポリシ選択のGUI画面を表示し、ユーザ3からポリシの選択等を受け付ける(S101)。このポリシ選択のGUI画面には、ポリシ管理テーブル600の有するポリシ内容613が表示される。
そして、第1カタログ管理部21は、ユーザ3に選択されたポリシとそのポリシに関する情報等とを含む「ポリシ選択情報」に基づいて、ポリシ選択処理を実行し(S102)、当該処理を終了する(END)。ポリシ選択処理の詳細については、後述する。
図8における第1のポリシが選択された場合、ポリシ選択情報に、各カタログ要素の許容する許容時間113(図3参照)が含まれても良い。図8における第3のポリシが選択された場合、ポリシ選択情報に、各カタログの構築頻度114(図3参照)が含まれても良い。
以下、カタログ管理サーバ11が、ユーザ3から図10に係る「カタログ要素追加要求」を受けた場合の処理について述べる。
第1カタログ管理部21は、ユーザ3から「カタログ要素追加要求」を受けた場合、カタログ要素追加のGUI画面を表示し、ユーザ3から追加するカタログ要素の選択を受け付ける(S111)。
そして、第1カタログ管理部21は、ユーザ3に選択された追加するカタログ要素とその追加するカタログ要素に関する情報等を含む「カタログ要素追加情報」に基づいて、カタログ要素追加処理を実行し(S112)、当該処理を終了する(END)。カタログ要素追加処理の詳細については、後述する。
以下、カタログ管理サーバ11が、ユーザ3から図10に係る「カタログ要素削除要求」を受けた場合の処理について述べる。
第1カタログ管理部21は、ユーザ3から「カタログ要素削除要求」を受けた場合、カタログ要素削除のGUI画面を表示し、ユーザ3から削除するカタログ要素の選択を受け付ける(S121)。
そして、第1カタログ管理部21は、ユーザ3に選択された削除するカタログ要素とその削除するカタログ要素に関する情報等を含む「カタログ要素削除情報」に基づいて、カタログ要素削除処理を実行し(S122)、当該処理を終了する(END)。カタログ要素削除処理の詳細については、後述する。
以下、カタログ管理サーバ11が、ユーザ3から図10に係る「カタログ要素構築要求」を受けた場合の処理について述べる。
第1カタログ管理部21は、ユーザ3から「カタログ要素構築要求」を受けた場合、カタログ要素構築のGUI画面を表示し、ユーザ3から構築するカタログ要素の選択を受け付ける(S131)。
第1カタログ管理部21は、カタログ管理テーブル100から、ユーザ3に選択されたカタログ要素を構築するために必要なマスタイメージ及びスクリプト等に関する情報を取得する(S132)。そして、第1カタログ管理部21は、その取得した情報に基づいて、カタログ要素構築処理を実行し(S133)、当該処理を終了する(END)。なお、第1カタログ管理部21は、選択中のポリシに基づいてカタログ要素を構築するとしても良い。
第1カタログ管理部21は、マスタイメージのコピーに要した時間、及び/又はスクリプトの適用に要した時間等を計測し、その計測結果を実行時間管理テーブル300に格納しても良い。第1カタログ管理部21は、カタログ管理テーブル100において、この構築を要求されたカタログ要素に対応する構築頻度114を更新(例えば、カウントアップ)しても良い。
カタログ要素構築要求に対する処理の途中に、オペレータが手動で実施する処理が介在しても良い。例えば、第1カタログ管理部21は、ユーザから構築要求されたカタログ要素の構築手順(例えば、マスタデータ及びスクリプトの適用の順番等)を、オペレータに通知しても良い。そして、オペレータが、その構築手順に従って、手動でカタログ要素を構築しても良い。そして、第1カタログ管理部21は、オペレータからカタログ要素の構築を完了した旨の応答を受けて、処理を終了しても良い。このとき、第1カタログ管理部21は、オペレータが手動でカタログ要素を構築するのに要した時間及び構築したカタログ要素の検証に要した時間等を計測し、その計測結果を実行時間管理テーブル100に格納しても良い。
図12は、図11において「ポリシ選択要求」が選択され、「第1のポリシ」が選択された場合における第1カタログ構築部22の処理のフローチャート例を示す。
第1のポリシは、図8のポリシ管理テーブル600に示すように、「カタログ要素の構築時間が許容時間内となるように、中間マスタイメージを構築しておく」というものである。つまり、第1のポリシが選択中の場合、カタログ管理サーバ11は、ユーザ3から要求されたカタログ要素の構築を、そのカタログに対して設定されている許容時間内に完了することが求められる。以下、その場合の処理について述べる。
第1カタログ構築部22は、第1カタログ管理部21から「ポリシ選択情報」によって第1のポリシに基づく処理を要求された場合、ステップS200以降の処理を実行する。なお、選択中のポリシは、ポリシ管理テーブル600の状態612を参照することによって判断できる。
第1カタログ構築部22は、カタログ管理テーブル100の有する各カタログ要素に対して、ステップS200〜S222のループ処理を実行する。以下、ループ処理の内容について説明する。
第1カタログ構築部22は、カタログ管理テーブル100を参照し、当該ループ処理の対象であるカタログ要素に係るマスタイメージ名112と、適用スクリプトリスト117とを抽出する(S201)。
第1カタログ構築部22は、実行時間管理テーブル300を参照し、上記のマスタイメージ名112に対応するマスタイメージのコピーに要する実行時間313(以下「コピー時間」という)と、上記適用スクリプトリスト117に含まれる各スクリプトの適用に要する実行時間313(以下「スクリプト適用時間」という)とを取得する。
そして、第1カタログ構築部22は、コピー時間とスクリプト適用時間とを合計し、カタログ要素の構築に要する時間(以下「カタログ要素構築時間」という)を見積もる。例えば、図3に示したカタログ管理テーブル100の第2カタログのカタログ要素構築時間は、実行時間管理テーブル300を参照すると、第2マスタイメージのコピー時間である「20分」と、第1スクリプトのスクリプト適用時間である「15分」と、第2スクリプトのスクリプト適用時間である「10分」とを合計した「45分」と見積られる。
第1カタログ構築部22は、このカタログ要素構築時間と、処理対象のカタログ要素の許容時間113とを比較し、「カタログ要素構築時間≦許容時間」であるか否かを判定する(S202)。第1カタログ構築部22は、「カタログ要素構築時間≦許容時間」の場合(S202:YES)、当該処理対象のカタログ要素は第1のポリシを満たしているので、次のループ処理に進む(S222)。なお、第1カタログ構築部22は、ステップS202において、「カタログ要素構築時間≦許容時間−所定のマージン時間」であるか否かを判定しても良い。
第1カタログ構築部22は、「カタログ要素構築時間>許容時間」の場合(S202:NO)、次の処理を実行する。
第1カタログ構築部22は、ストレージ容量テーブル500を参照して、ファイルシステム45が、中間マスタイメージを格納するのに十分な未使用容量を有しているか否かを判定する(S203)。
第1カタログ構築部22は、「マスタイメージのイメージサイズ>未使用容量」の場合(S203:NO)、中間マスタイメージの格納が不可能であると判定し、当該処理を異常終了する(END)。このとき、第1カタログ構築部22は、当該処理が異常終了した旨及びその理由等を、GUI画面に表示しても良い。
第1カタログ構築部220は、「マスタイメージのイメージサイズ≦未使用容量」の場合(S203:YES)、中間マスタイメージの格納が可能であると判定し、次の処理に進む。なお、ファイルシステム45が複数の未使用容量512を有している場合、第1カタログ構築部22は、中間マスタイメージのイメージサイズと、最大の未使用容量とを比較しても良い。また、マスタイメージの属性413が「Thin」の場合、第1カタログ構築部22は、スクリプト適用後の中間マスタイメージのイメージサイズが、元のマスタイメージのイメージサイズよりも増加する場合を考慮し、ステップS203において、「マスタイメージのイメージサイズ≦未使用容量−所定のマージン容量」を判定しても良い。また、マスタイメージのイメージサイズ412に代えて、ゲストOSの認識するストレージ容量を用いて比較しても良い。
次に、第1カタログ構築部22は、マスタイメージのコピー処理を実行する(S204)。このとき、第1カタログ構築部22は、このコピー処理時間を計測し、その計測結果を、実行時間管理テーブル300に格納しても良い。
第1カタログ構築部22は、マスタイメージの属性413が「Thick」であるか「Thin」であるかを判定する(S205)。なぜなら、マスタイメージの属性413が「Thick」の場合は、スクリプトを適用してもマスタイメージのイメージサイズは変化しないが、マスタイメージの属性413が「Thin」の場合は、スクリプトを適用するとマスタイメージのイメージサイズが変化し、それによってコピー処理時間が変化し得るからである。
以下、ステップS205において、マスタイメージの属性413が「Thick」の場合(S205:Thick)について述べる。
第1カタログ構築部22は、「カタログ要素構築時間≦許容時間」となるように、マスタイメージに適用すべきスクリプトを特定する。ここで、属性413は「Thick」であるため、スクリプトの適用後であってもマスタイメージのコピー処理時間は変化しない。したがって、カタログ要素構築時間は、スクリプトが適用済みである分、短縮される。例えば、実行時間管理テーブル300を参照すると、第1マスタイメージに第1スクリプトを適用した場合のカタログ要素構築時間は、「30分(第1マスタイメージのコピー処理時間)+15分(第1スクリプト適用時間)=45分」であることがわかる。これに対して、第1マスタイメージに第1スクリプトを適用した中間イメージマスタを予め生成しておくことによって、カタログ要素構築時間は、「30分(中間マスタイメージのコピー処理時間)」に短縮される。このように、第1カタログ構築部22は、「カタログ要素構築時間≦許容時間」となるように適用すべきスクリプトを特定する。
上述のとおり、属性413が「Thick」の場合、幾つスクリプトを適用しても、その後のコピー処理時間は変化しない。よって、第1カタログ構築部22は、(1)カタログ管理テーブル100の適用スクリプトリスト117に格納されている全てのスクリプトを適用した中間マスタイメージを生成しても良い。
若しくは、(2)第1カタログ構築部22は、カタログ管理テーブル100の適用スクリプトリスト117に格納されているスクリプトを、許容時間以下となるまで順番に適用して中間マスタイメージを生成しても良い。
上記(1)の場合、対象カタログ要素のカタログ要素構築時間は短くなるが、そこで生成した中間マスタイメージが他のカタログ要素の構築に再利用される可能性は低くなる。上記(2)の場合、対象カタログ要素のカタログ要素構築時間は上記(1)と比較して長くなるが、そこで生成した中間マスタイメージが他のカタログ要素の構築に再利用される可能性は高くなる。第1カタログ構築部22は、上記(1)及び(2)の何れの処理を採用しても良いし、状況に合わせて上記(1)及び(2)の処理を切り換えても良い。
また、ステップS202において、第1カタログ構築部22は、「許容時間<マスタイメージのコピー処理時間」の場合を異常終了としても良い。なぜなら、この場合、中間マスタイメージを生成したとしても、そのコピー処理時間は、マスタイメージのコピー処理時間よりも短くならないからである。
ステップS207として、第1カタログ構築部22は、ステップS206で特定したスクリプトをステップS204でコピーしたマスタイメージに適用して中間マスタイメージを構築し(S207)、ステップS220に進む。
以下、ステップS205において、マスタイメージの属性413が「Thin」の場合(S205:Thin)について述べる。
マスタイメージの属性413が「Thin」の場合、スクリプトが適用されると、元のマスタイメージのファイルサイズは変化し得る。したがって、属性413が「Thick」の場合と異なり、マスタイメージと、スクリプトを適用した中間マスタイメージとのコピー処理時間は、同じであるとは限らない。よって、第1カタログ構築部22は、1つずつ順番にスクリプトを適用して中間マスタイメージを構築し、その中間マスタイメージを用いた場合のカタログ要素構築時間を見積る必要がある。そして、第1カタログ構築部22は、「カタログ要素構築時間≦許容時間」となる中間マスタイメージを求める。以下、この処理について述べる。
第1カタログ構築部22は、カタログ管理テーブル100の適用スクリプトリスト117を参照し、最初に(又は、次に)適用するスクリプトを特定する。そして、第1カタログ構築部22は、この特定したスクリプトを、マスタイメージに(又は、中間マスタイメージに)適用し、新たな中間マスタイメージを構築する(S211)。このとき、ファイルシステム45が、この新たな中間マスタイメージを格納できる未使用容量を有していない場合、第1カタログ構築部22は、当該処理を異常終了としても良い。
次に、第1カタログ構築部22は、新たな中間マスタイメージのファイルサイズを取得する。そして、第1カタログ構築部22は、このファイルサイズに基づいて、コピー処理時間を見積る。第1カタログ構築部22は、ファイルサイズの比率に基づいて、コピー処理時間を見積もっても良い。例えば、スクリプト適用前のマスタイメージのファイルサイズが「20GB」であって、コピー処理時間が「30分」であり、新たな中間マスタイメージのファイルサイズが「30GB」であったとする。この場合、第1カタログ構築部22は、新たな中間マスタイメージのコピー処理時間を、「30分×(30GB/20GB)=45分」と見積もっても良い。
そして、第1カタログ構築部22は、「新たな中間マスタイメージを用いた場合のカタログ要素構築時間≦許容時間」であるか否かを判定する(S213)。新たな中間マスタイメージを用いた場合のカタログ要素構築時間は、「新たな中間マスタイメージのコピー処理時間+残りのスクリプト適用時間」として算出しても良い。
第1カタログ構築部22は、「新たな中間マスタイメージを用いた場合のカタログ要素構成時間≦許容時間」である場合(S213:YES)、ステップS220に進む。
第1カタログ構築部22は、「新たな中間マスタイメージを用いた場合のカタログ要素構成時間>許容時間」である場合(S213:NO)、当該「新たな中間マスタイメージ」を「中間マスタイメージ」としてステップS211に戻り、次の順番のスクリプトの適用を試みる。なお、「全てのスクリプトを適用した中間マスタイメージのコピー処理時間>許容時間」であった場合、第1カタログ構築部22は、当該処理を異常終了しても良い。
次に、ステップS220以降の処理を述べる。第1カタログ構築部22は、ステップS207又はステップS211で構築した中間マスタイメージを利用するように、当該処理対象のカタログ要素に係るマスタイメージ名112及び適用スクリプトリスト117を更新する(S220)。そして、第1カタログ構築部22は、マスタイメージ管理テーブル400のマスタイメージ名411に、当該中間マスタイメージを新規登録する。
例えば、カタログ管理テーブル100において、第2カタログ要素が処理対象であり、第2中間マスタイメージが第2マスタイメージに第1スクリプトを適用したものである場合、第1カタログ構築部22は、次の処理を行う。即ち、第1カタログ構築部22は、第2カタログ要素に対応するマスタイメージ名112を、「第2中間マスタイメージ」に更新し、適用スクリプトリスト117の一番目119aの「第1スクリプト」を削除し、二番目以降のスクリプトの順番を上げる。そして、第1カタログ構築部22は、マスタイメージ管理テーブル400のマスタイメージ名411に「第2中間マスタイメージ」を新規登録すると共に、第2中間マスタイメージのイメージサイズ412、属性413、及び基礎マスタイメージ情報414に適切な情報を格納する。
例えば、第1カタログ構築部22は、イメージサイズ412に、第2中間マスタイメージのファイルサイズである「10GB」を格納する。例えば、第1カタログ構築部22は、基礎マスタイメージ名421aに、「第2マスタイメージ」を格納する。例えば、第1カタログ構築部22は、適用済スクリプトリスト415の一番目412aに、「第1スクリプト」を格納する。
なお、第1カタログ構築部22は、ステップS220の前又は後で、ストレージ容量テーブル500、及び/又は実行時間管理テーブル300を更新しても良い。例えば、第1カタログ構築部22は、その構築した中間マスタイメージのコピー処理時間を、実行時間管理テーブル300に登録しても良い。
次に、第1カタログ構築部22は、カタログ管理テーブル100から、その構築した中間マスタイメージを再利用可能な他のカタログ要素を検索し、その検索に該当する他のカタログ要素のデータ項目を更新しても良い(S221)。例えば、カタログ管理テーブル100を参照すると、第1マスタイメージに第1スクリプトを適用した第1中間マスタイメージは、「第1カタログ要素」に限らず、「第4カタログ要素」でも再利用可能である。よって、カタログ管理テーブル100において、「第4カタログ要素」のマスタイメージ名112を、「第1中間マスタイメージ」に更新し、適用スクリプトリスト117の一番目119aの「第1スクリプト」を削除しても良い。
第1カタログ構築部22は、上述のS200〜S222のループ処理を、カタログ管理テーブル100の全てのカタログ要素に対して完了した場合、当該処理を終了する(END)。
図13は、「第1のポリシ」の選択中に、図11において「カタログ追加」又は「カタログ削除」が選択された場合における第1カタログ構築部22の処理のフローチャート例を示す。
図13に示す処理は、ポリシとして「第1のポリシ」が選択されている状態で、第1カタログ管理部21から「カタログ要素追加」又は「カタログ要素削除」の指示を受けた場合に実行される。
以下、第1カタログ構築部22が「カタログ要素追加」の指示を受けた場合について述べる。第1カタログ構築部22は、カタログ要素をカタログ管理テーブル100に追加する(S241)。そして、第1カタログ構築部22は、その追加したカタログ要素に対して、図12に示したステップS201〜S221の中間マスタイメージを構築する処理を実行し(S242)、当該処理を終了する(END)。
以下、第1カタログ構築部22が「カタログ要素削除」の指示を受けた場合について述べる。第1カタログ構築部22は、カタログ管理テーブル100を参照し、削除対象のカタログ要素が中間マスタイメージを利用しているか否かを判定する(S251)。この判定は、カタログ管理テーブル100のマスタイメージ名112が、中間マスタイメージの名称であるか否かに基づいて行っても良い。若しくは、この判定は、マスタイメージ管理テーブル400のマスタイメージ名411と、基礎マスタイメージ名421aとが異なるか否かに基づいて行っても良い。
削除対象のカタログ要素が中間マスタイメージを使用していない場合(S251:NO)、第1カタログ構築部22は、カタログ管理テーブル100から削除対象のカタログ要素を削除し(S254)、当該処理を終了する(END)。
削除対象のカタログ要素が中間マスタイメージを使用している場合(S251:YES)、第1カタログ構築部22は、当該中間マスタイメージが他のカタログ要素でも利用されているか否かを判定する(S252)。この判定は、カタログ管理テーブル100のマスタイメージ名112を参照し、削除対象のカタログ要素以外に、当該中間マスタイメージを含むカタログが存在するか否かに基づいて行っても良い。
中間マスタイメージが他のカタログ要素でも利用されている場合(S252:YES)、第1カタログ構築部22は、カタログ管理テーブル100から削除対象のカタログ要素を削除し(S254)、当該処理を終了する(END)。
中間マスタイメージが他のカタログ要素で使用されていない場合(S252:NO)、第1カタログ構築部22は、ファイルシステム45から、当該中間マスタイメージに係るファイルを削除する(S253)。そして、第1カタログ構築部22は、カタログ管理テーブル100から削除対象のカタログ要素を削除し(S254)、当該処理を終了する(END)。
図14は、「第2のポリシ」に係る第1カタログ構築部22の処理のフローチャート例を示す。
第2のポリシは、図8に示したポリシ管理テーブル600のレコード601bに該当する。即ち、第2のポリシは、「優先度の高いカタログ要素の構築時間が許容時間内となるように、中間マスタイメージを構築しておく」というポリシである。
以下、「第2のポリシ」の「ポリシ選択要求」を受けた場合のポリシ選択処理について述べる。第1カタログ構築部22は、カタログ数を上限として、以降のステップS301〜S304のループ処理を実行する(S301)。
第1カタログ構築部22は、カタログ管理テーブル100の優先度115を参照して、未処理のカタログの中で優先度の高いカタログを処理対象のカタログに選択する(S302)。そして、第1カタログ構築部22は、この選択した処理対象のカタログ要素に対して、図12に示したステップS201〜S221の処理を実行する(S303)。
ステップS304において、第1カタログ構築部22は、ループ回数がカタログ要素数に達した場合、又は、図12に示したステップS203にて未使用容量が十分で無い場合、ループを抜けて当該処理を終了する(END)。
本処理は、基本的に第1のポリシ選択時の処理に類似する。しかし、第1のポリシ選択時は、処理対象のカタログ要素を選択する順番に特に決まりが無かったのに対し、本処理は、優先度の高い順番に処理対象のカタログ要素を選択する点において相違する。これにより、図12に示したステップS203にて未使用容量が十分で無い場合等、全てのカタログ要素に対してステップS301〜S304の処理ができなかった場合であっても、本処理は、優先度の高いカタログ要素に関する中間マスタイメージを構築しておくことができる。
以下、第2のポリシの選択中に「カタログ要素追加要求」を受けた場合のカタログ要素追加処理について述べる。第1カタログ構築部22は、マスタイメージ管理テーブル400を参照し、ファイルシステムに格納されている全ての中間マスタイメージを削除する(S31)。そして、第1カタログ構築部22は、カタログ要素追加要求がなされたカタログ要求を、カタログ管理テーブル100に追加する(S312)。そして、第1カタログ構築部22は、第2のポリシのポリシ選択処理と同様に、ステップS301〜S304の処理を実行して中間マスタイメージを再構築し(S313)、当該処理を終了する(END)。
ステップS311において全ての中間マスタイメージを削除する理由は、第1カタログ構築部22が、ステップS313において未使用容量が十分で無い場合等の理由によって、新たに追加された優先度の高いカタログ要素の中間マスタイメージを構築及び格納できないという可能性を回避するためである。
なお、第2のポリシ選択中のカタログ要素追加処理は、以下の処理であっても良い。
(第1ステップ)第1カタログ構築部22は、カタログ要素追加要求がなされたカタログ要素をカタログ管理テーブル100に追加する。
(第2ステップ)第1カタログ構築部22は、何れのマスタイメージ及びスクリプトの組み合わせの中間マスタイメージを構築すべきかを判断する。このとき、第1カタログ構築部22は、中間マスタイメージの実体は構築しない。
(第3ステップ)第1カタログ構築部22は、新たに構築すべきと判断した中間マスタイメージの優先度と、既存の中間マスタイメージの優先度とを比較する。ここで、新たに構築すべきと判断した中間マスタイメージの優先度が高い場合は、優先度の低い既存の中間マスタイメージをファイルシステム45から削除し、新たに構築すべきと判断した中間マスタイメージを構築し、ストレージに格納する。
以下、第2のポリシ選択中に「カタログ要素削除要求」を受けた場合のカタログ要素削除処理について述べる。
第1カタログ構築部22は、図13に示したステップS251〜S254を実行し、ファイルシステム45から中間マスタイメージを削除する。そして、第1カタログ構築部22は、ファイルシステム45の未使用容量が十分であるか否かを判定する(S322)。
ファイルシステム45の未使用容量が十分で無い場合(S322:NO)、第1カタログ構築部22は、当該処理を終了する(END)。
ファイルシステム45の未使用容量が十分である場合(S322:YES)、第1カタログ構築部22は、中間マスタイメージが構築されておらず、且つ、優先度の最も高いカタログ要素の中間マスタイメージを構築する(S323)。そして、第1カタログ管理部22は、その中間マスタイメージをファイルシステム45に格納して、当該処理を終了する(END)。
図15は、「第3のポリシ」に係る第1カタログ構築部22の処理のフローチャート例を示す。
第3のポリシは、図8に示したポリシ管理テーブル600のレコード601cに該当する。即ち、第3のポリシは、「構築頻度の高いカタログ要素の構築時間が許容時間内となるように、中間マスタイメージを構築しておく」というポリシである。
以下、「第3のポリシ」への「ポリシ選択要求」を受けた場合のポリシ選択処理について述べる。第1カタログ構築部22は、マスタイメージ管理テーブル400に基づいて、ファイルシステム45から全ての中間マスタイメージを削除する(S401)。
そして、第1カタログ構築部22は、カタログ要素数を上限として、以降のステップS402〜S405のループ処理を実行する(S402)。
第1カタログ構築部22は、カタログ管理テーブル100の構築頻度114を参照して、未処理のカタログ要素の中で、構築頻度の高いカタログ要素を処理対象のカタログ要素に選択する(S403)。そして、第1カタログ構築部22は、この選択した処理対象のカタログ要素に対して、図12に示したステップS201〜S221の処理を実行する(S404)。
ステップS405において第1カタログ構築部22は、ループ回数がカタログ要素数に達した場合、又は、図12に示したステップS203にて未使用容量が十分で無い場合、ループを抜けて当該処理を終了する(END)。
第3のポリシのポリシ選択処理は、図14に示した第2のポリシのポリシ選択処理に類似する。しかし、第2のポリシ選択時は、優先度の高い順番に処理対象のカタログ要素を選択していたのに対し、本処理は、構築頻度の高い順番に処理対象のカタログ要素を選択する点において相違する。
なお、第3のポリシのポリシ選択処理は、以下の処理であっても良い。
(第1ステップ)第1カタログ構築部22は、ステップS402〜S405の処理において、実際に中間マスタイメージを構築するのではなく、構築すべき中間マスタイメージの一覧を作成する。
(第2ステップ)第1カタログ構築部22は、その構築すべき中間マスタイメージの一覧と、既存の中間マスタイメージとを比較し、差分の中間マスタイメージを構築又は削除する。
以下、第3のポリシ選択中に「カタログ要素追加要求」を受けた場合のカタログ要素追加処理について述べる。第1カタログ構築部22は、「カタログ要素追加要求」を受けた新たなカタログ要素を、カタログ管理テーブル100に追加する(S411)。そして、第1カタログ構築部22は、可能であれば、追加したカタログ要素に既存の中間マスタイメージを利用し(S412)、当該処理を終了する(END)。
なお、追加したカタログ要素の構築頻度は基本的に「0」なので、この追加したカタログ要素の中間マスタイメージが構築される可能性は低い。ただし、第1カタログ構築部22は、ストレージの未使用容量が十分な場合に、図13のステップS242と同様の処理を実行して、追加したカタログ要素の中間マスタイメージの構築を試みても良い。
以下、第3のポリシ選択中に「カタログ要素削除要求」を受けた場合のカタログ要素削除処理について述べる。第1カタログ構築部22は、図13のステップS251〜S254と同様の処理を実行し(S421)、当該処理を終了する(END)。
以下、第3のポリシ選択中に「カタログ要素構築要求」を受けた場合のカタログ要素構築後の処理について述べる。なぜなら、第3のポリシの場合、カタログ要素が構築された後に、各カタログ要素の構築頻度が変化し得るためである。例えば、カタログ要素構築前は更新頻度の低かったカタログ要素が、カタログ要素構築後に更新頻度が高くなったり、又はその逆となったりする。
当該S431〜S435の処理は、上記のS401〜S405の処理とほぼ同じなので、当該処理の説明を省略する。なお、カタログ要素を構築する度に当該処理を実行すると、カタログ管理サーバ11の処理負荷が高くなってしまうので、当該処理は、定期的に実行されるとしても良い。
図16は、「第4のポリシ」に係る第1カタログ構築部22の処理のフローチャート例を示す。
第4のポリシは、図8に示したポリシ管理テーブル600のレコード601dのポリシに該当する。即ち、第4のポリシは、「全てのカタログ要素の構築時間の合計ができるだけ短くなるように、中間マスタイメージを構築しておく」というポリシである。
以下、「第4のポリシ」の「ポリシ選択要求」を受けた場合のポリシ選択処理について述べる。第1カタログ構築部22は、全てのカタログ要素において、マスタイメージとスクリプトの組み合わせである中間マスタイメージ候補を抽出する(S501)。例えば、カタログ管理テーブル100において、第1カタログから順番に、そのカタログで使用するマスタイメージに、1番目までのスクリプト(第1スクリプト)を適用したものを第1中間マスタイメージ候補とし、2番目までのスクリプト(第1スクリプト及び第2スクリプト)を適用したものを第2中間マスタイメージ候補とする。
次に、第1カタログ構築部22は、カタログ要素間で共有可能な中間マスタイメージ候補が存在するか否かを判定する(S502)。
カタログ要素間で共有可能な中間マスタイメージ候補が存在しない場合(S502:NO)、第1カタログ構築部22は、当該処理を終了する(END)。
カタログ要素間で共有可能な中間マスタイメージ候補が存在する場合(S502:YES)、第1カタログ構築部22は、最も多く共有されている中間マスタイメージ候補を特定する(S503)。例えば、第1カタログ構築部22は、中間マスタイメージ候補の各々が、幾つのカタログ要素で利用可能であるかを示す利用可能数を調べる。例えば、第1中間マスタイメージ候補が、「第1カタログ要素」、「第2カタログ要素」及び「第4カタログ要素」で利用可能な場合、第1中間マスタイメージ候補の利用可能数は「3」となる。このように、中間マスタイメージ候補の各々の利用可能数を調べ、利用可能数が最大の中間マスタイメージ候補を特定する。
次に、第1カタログ構築部22は、ファイルシステム45の未使用容量が、最も多く共有されている中間マスタイメージ候補を格納するのに十分であるか否かを判定する(S504)。
未使用容量が十分で無い場合(S504:NO)、第1カタログ構築部22は、当該処理を終了する(END)。
未使用容量が十分である場合(S504:YES)、第1カタログ構築部22は、この最も多く共有されている中間マスタイメージ候補に係る中間マスタイメージを構築し、ファイルシステム45に格納する(S505)。そして、第1カタログ構築部22は、この中間マスタイメージを他のカタログ要素でも利用できるように、カタログ管理テーブル100及びマスタイメージ管理テーブル400等を更新する(S506)。そして、第1カタログ構築部22は、ステップS502に戻り、他にもカタログ要素間で共有可能な中間マスタイメージ候補(例えば、利用可能数が2以上のもの)が存在するか否かを判定するという処理を繰り返す。
以下、第4のポリシ選択中に「カタログ要素追加要求」を受けた場合のカタログ要素追加処理について述べる。第1カタログ構築部22は、ファイルシステム45から全ての中間マスタイメージを削除する(S511)。そして、第1カタログ構築部22は、「カタログ要素追加要求」を受けた新たなカタログ要素をカタログ管理テーブル100に追加する(S512)。そして、第1カタログ構築部22は、追加したカタログ要素を含めてステップS501〜S506の処理を実行し、中間マスタイメージを再生成する(S513)。
なお、上記のステップS513は、以下の処理であっても良い。
(第1ステップ)第1カタログ構築部22は、ステップS501〜S506の処理において、実際に中間マスタイメージを構築するのではなく、構築すべき中間マスタイメージの一覧を作成する。
(第2ステップ)第1カタログ構築部22は、その構築すべき中間マスタイメージの一覧と、既存の中間マスタイメージとを比較し、差分の中間マスタイメージを構築又は削除する。
以下、第4のポリシ選択中に「カタログ要素削除要求」を受けた場合のカタログ要素削除処理について述べる。第1カタログ構築部22は、ファイルシステム45から全ての中間マスタイメージを削除する(S521)。そして、第1カタログ構築部22は、「カタログ要素削除要求」を受けたカタログ要素を除いて、ステップS501〜S506の処理を実行し、中間マスタイメージを再構築する(S522)。
図17は、「第5のポリシ」に係る第1カタログ構築部22の処理のフローチャートの例を示す。
第5のポリシは、図8に示したポリシ管理テーブル600のレコード601eに該当する。即ち、第5のポリシは、「新しいバージョンのソフトウェアを含むカタログ要素の構築時間ができるだけ短くなるように、中間マスタイメージを構築しておく」というポリシである。ここで、「バージョン」は、本実施例で示すようにソフトウェアのバージョンに着目しても良いし、OSのバージョンに着目しても良い。つまり、第5のポリシのポイントは、マスタイメージに係るOS又はスクリプトの内容が新しいものであるか否かに基づいて、適切な中間マスタイメージを構築することにある。
以下、「第5のポリシ」の「ポリシ選択要求」を受けた場合のポリシ選択処理について述べる。
第1カタログ構築部22は、カタログ管理テーブル100を参照して、同じOS及びソフトウェアを含むカタログ要素を、同じソフトウェア構成のグループに分類する。ここで、第1カタログ構築部22は、カタログ管理テーブル100のグループ116を参照して、何れのカタログ要素が同じグループに属しているのかを判定しても良い。
例えば、OSが「Windows(登録商標)」であり、バージョンが「1」の「Apache」を含むカタログ要素と、OSが「Windows(登録商標)」であり、バージョンが「2」の「Apache」を含むカタログ要素とは、同じグループに分類される。しかし、OSが「Linux(登録商標)」であり、バージョンが「1」の「Apache」を含むカタログ要素は、このグループに分類されない。同じく、OSが「Windows(登録商標)」であり、「Apache」及び「Tomcat」の両方を含むカタログ要素も、このグループに分類されない。
例えば、OSの情報、ソフトウェア及びそのバージョンの情報は、それぞれマスタイメージ管理テーブル400のゲストOS名421b、スクリプト管理テーブル200のソフトウェア名221a及びバージョン221bから知ることができる。
図17の説明に戻り、第1カタログ構築部22は、各々のグループにおいて、グループ内に属するカタログ要素の中で、バージョン221bが最新のカタログを選択する(S602)。なお、1つのカタログ要素に2つ以上のソフトウェアが含まれる場合、第1カタログ構築部22は、何れかのソフトウェアのバージョンが最新であるカタログ要素を全て(複数)選択しても良い。
そして、第1カタログ構築部22は、各々のグループにおいて、ステップS602で選択したカタログ要素に関する中間マスタイメージを構築する。第1カタログ構築部22は、図12に示したステップS201〜S221、又は図16に示したS501〜S506と同様の処理によって、中間マスタイメージを構築する。そして、第1カタログ構築部22は、その構築した中間マスタイメージを用いて各テーブルを更新する(S604)。そして、第1カタログ構築部22は、可能であれば、その構築した中間マスタイメージを他のカタログ要素でも利用できるようにし(S605)、当該処理を終了する(END)。
以下、第5のポリシ選択中に「カタログ要素追加要求」を受けた場合のカタログ要素追加処理について述べる。カタログ要素追加処理では、第1カタログ要素構築部22は、追加対象のカタログ要素を適切なグループに分類した後、そのグループの中で、追加対象のカタログ要素に含まれるソフトウェアは最新であるか否かを判定し、必要に応じて中間マスタイメージを再構築する。以下、当該処理を詳細に説明する。
第1カタログ構築部22は、追加対象のカタログ要素をカタログ管理テーブル100に追加する(S611)。そして、第1カタログ構築部22は、その追加したカタログ要素の属するべきグループが既に存在するか否かを判定する(S612)。
追加したカタログ要素が属するべきグループが存在しない場合(S612:NO)、第1カタログ構築部22は、新たにグループを作成し、当該追加したカタログ要素をそのグループに分類して当該処理を終了する(END)。又は、第1カタログ構築部22は、追加したカタログ要素に対して、中間マスタイメージ構築処理(例えば、S242)を実行しても良い。
追加したカタログ要素が属するべきグループが既に存在する場合(S612:YES)、第1カタログ構築部22は、そのグループの中で、追加したカタログ要素に含まれるソフトウェアのバージョンが、他のカタログ要素に含まれるソフトウェアのバージョンよりも新しいか否かを判定する(S613)。
他のカタログ要素に含まれるソフトウェアのバージョンの方が新しい場合(S613:NO)、第1カタログ構築部22は、当該処理を終了する(END)。
追加したカタログ要素に含まれるソフトウェアのバージョンの方が新しい場合(S613:YES)、第1カタログ構築部22は、そのグループにおいて最新でなくなったソフトウェアのバージョンを含むカタログ要素の中間マスタイメージが削除可能であるか否かを判定する(S614)。例えば、第1カタログ構築部22は、追加したカタログ要素が分類される以前において、最新バージョンのソフトウェアを含んでいたカタログ要素に関する中間マスタイメージが、そのグループの中で他のカタログ要素に利用されているか否かを判定する。この中間マスタイメージは、他のカタログ要素に利用されていない場合に削除可能であり、他のカタログ要素に利用されている場合に削除不可能となる。なぜなら、或るグループにおいて、新たなカタログ要素が追加される以前に最新バージョンのソフトウェアを含んでいたカタログ要素の中間マスタイメージは、新たなカタログ要素が追加されることによって最新ではなくなり、不要となるためである。
最新でなくなった中間マスタイメージが削除不可能な場合(S614:NO)、第1カタログ構築部22は、ステップS616へ進む。
最新でなくなった中間マスタイメージが削除可能な場合(S614:YES)、第1カタログ構築部22は、その最新でなくなった中間マスタイメージを削除する。さらに、第1カタログ構築部22は、その最新でなくなった中間マスタイメージを利用していたカタログ要素が、その最新でなくなった中間マスタイメージを利用せずに構築できるように、各テーブルの状態を戻し(S615)、ステップS616へ進む。第1カタログ構築部22は、マスタイメージ管理テーブル400の基礎マスタイメージ情報414及び適用済みスクリプト415を参照することにより、その最新でなくなった中間マスタイメージを利用しない状態に戻すことができる。
ステップS616において、第1カタログ構築部22は、S242と同様の処理によって、追加したカタログ要素の中間マスタイメージを構築する(S616)。そして、第1カタログ構築部22は、その構築した中間マスタイメージを用いて各テーブルを更新する(S617)。そして、第1カタログ構築部22は、可能であれば、その構築した中間マスタイメージを他のカタログ要素でも利用できるようにし(S618)、当該処理を終了する(END)。
以下、第5のポリシ選択中に「カタログ要素削除要求」を受けた場合のカタログ要素削除処理について述べる。第1カタログ構築部22は、S251〜S254と同様の処理によって、削除対象のカタログ要素を削除する(S621)。そして、第1カタログ構築部22は、削除したカタログ要素が自己の属するグループで最新バージョンのソフトウェアを含んでいたか否かを判定する(S622)。
例えば、第1カタログ構築部22は、削除したカタログ要素が中間マスタイメージを含むか否かによって、ステップS622の判定を行っても良い。この場合、第1カタログ構築部22は、ステップS622の判定を、削除したカタログ要素に中間マスタイメージが含まれていた場合に肯定的(YES)とし、削除したカタログ要素に中間マスタイメージが含まれていない場合に否定的(NO)としても良い。
例えば、第1カタログ構築部22は、そのグループにおいて、削除したカタログ要素以外に中間マスタイメージを含むカタログ要素が存在するか否かによって、ステップS622の判定を行っても良い。この場合、第1カタログ構築部22は、ステップS622の判定を、削除したカタログ要素以外に中間マスタイメージを含むカタログ要素が存在する場合に否定的(NO)とし、削除したカタログ要素以外に中間マスタイメージを含むカタログ要素が存在しない場合に肯定的(YES)としても良い。
削除したカタログ要素が、自己の属するグループで最新バージョンのソフトウェアを含んでいない場合(S622:NO)、又はそのグループに削除したカタログ要素以外のカタログが存在しない場合、第1カタログ構築部22は、当該処理を終了する(END)。
削除したカタログ要素が、自己の属するソフトウェア構成グループで最新バージョンのソフトウェアを含んでいる場合(S622:YES)、第1カタログ構築部22は、次の処理を行う。つまり、第1カタログ構築部22は、そのグループにおいて、削除したカタログ要素以外で最新バージョンのソフトウェアを含むカタログ要素を特定し、S242と同様の処理によって、その特定したカタログ要素に関する中間マスタイメージを構築する(S623)。
そして、第1カタログ構築部22は、その構築した中間マスタイメージを用いて各テーブルを更新する(S624)。そして、第1カタログ構築部22は、可能であれば、その構築した中間マスタイメージを他のカタログ要素でも利用できるようにし(S625)、当該処理を終了する(END)。なお、第1カタログ構築部22は、ステップS625の後に、ファイルシステム45の未使用容量が十分にある場合、更に中間マスタイメージを構築する処理を実行しても良い。
図18は、マスタイメージ監視部23の処理のフローチャート例を示す。
マスタイメージ監視部23は、マスタイメージに対して変更があった場合、そのマスタイメージから派生し得る中間マスタイメージを再構築する。これにより、マスタイメージ監視部23は、マスタイメージの一貫性を保つ。以下、当該処理を詳細に説明する。
マスタイメージ監視部23は、API32を利用してマスタイメージに対する更新を監視する(S701)、そして、マスタイメージ監視部23は、マスタイメージに対する更新を検知した場合、更新されたマスタイメージから派生している1又は2以上の中間マスタイメージを、マスタイメージ管理テーブル400から抽出する。
例えば、マスタイメージ監視部23は、第2マスタイメージの更新を検知した場合、マスタ管理テーブル1400の基礎マスタイメージ名1141aを参照し、更新されたマスタイメージを含む中間マスタイメージを抽出する。
そして、マスタイメージ監視部23は、その抽出した中間マスタイメージの各々を順次処理対象として、以下のループ処理(S703〜S707)を実行する。
マスタイメージ監視部23は、当該ループの処理対象の中間マスタイメージを再構成する(S704)。図6のマスタイメージ管理テーブル400において、第2マスタイメージが更新された場合、第2中間マスタイメージは再構築される必要がある。マスタイメージ監視部23は、第2マスタイメージをコピーし、そのコピーした第2マスタイメージに、適用済スクリプトリスト1450の示す第1スクリプトを適用して、第2中間マスタイメージを再構築しても良い。
そして、マスタイメージ監視部23は、この中間マスタイメージの再構築に成功したか否かを判定する(S705)。マスタイメージ監視部23は、何らかのエラーが発生した場合、中間マスタイメージの再構築を失敗と判定しても良い。マスタイメージ監視部23は、属性1430が「Thin」の場合であって、スクリプトを提供した場合に、ファイルシステム45の未使用容量が不十分であったならば、中間マスタイメージの再構築を失敗と判定しても良い。
この中間マスタイメージの再構築に失敗した場合(S705:NO)、マスタイメージ監視部23は、当該処理を終了する(END)。マスタイメージ監視部23は、この終了を異常終了としても良い。このとき、マスタイメージ監視部23は、失敗の理由及び/又は再駆逐の処理の結果等をGUIに表示しても良い。
また、中間マスタイメージの再構築に失敗した場合、マスタイメージ監視部23は、その中間マスタイメージを利用していたカタログ要素を、その中間マスタイメージを再構築する以前の状態に戻し、引き続き、残りの抽出した中間マスタイメージに対して処理を継続しても良い。つまり、マスタイメージ監視部23は、ステップS615と同様の処理によって、再構築に失敗した中間マスタイメージを、元のマスタイメージとスクリプトの組み合わせに戻しても良い。
この中間マスタイメージの再構築に成功した場合(S705:YES)、マスタイメージ監視部23は、この再構築した中間マスタイメージを用いて、各テーブルを更新すると共に、再構築する以前の中間マスタイメージを削除する(S706)。なお、マスタイメージ監視部23は、再構築する以前の中間マスタイメージの削除を、ステップS704より以前で実行しても良い。この場合、カタログ管理テーブル100は、ステップS615と同様の処理によって、一度中間マスタイメージを利用する以前の状態に戻されても良い。ファイルシステム45の容量を有効に活用するためである。
次に、ステップS707において、マスタイメージ監視部23は、ループ処理を完了した場合、当該処理を終了し(END)、ループ処理が残っている場合、ステップS703に戻り、次の処理対象に対して同様の処理を行う。
図19は、GUIの画面の例を示す。
GUI9300は、カタログ管理サーバ11で生成され、通信ネットワーク18を介して、管理端末14に表示されても良い。ユーザ(管理者)は、管理端末14に表示されたGUI9300を介して、ポリシを指定しても良い。このGUI9300は、図18とは異なるレイアウト及び/又は表示態様であっても良い。
GUI9300は、ユーザからポリシ及びそのポリシの関連情報等の入力を受け付ける入力ペイン9310と、ユーザからポリシに基づく処理の実行指示等を受け付けるボタン9391、9392と、ポリシに基づく処理の実行結果等を表示する表示ペイン9350とを有する。
入力ペイン9310は、ポリシ管理テーブル600に基づく選択肢を提示するコンポーネント(ラベル9321及び選択肢を提示するコンボボックス9322)を有する。
入力ペイン9310は、ストレージ(ファイルシステム45)の容量の上限値を設定するためのコンポーネント(チェックボックス9331、ラベル9332、テキストボックス9333、及びテキスト9334)を有する。ユーザがチェックボックス9331をチェックし、テキストボックス9333に所定の数値を入力すると、カタログ管理サーバ11は、中間マスタイメージの構築に使用するストレージ容量の上限値を、その入力された値としても良い。カタログ管理サーバ11は、上限値が指定された場合、「ストレージ容量テーブル500の未使用容量=テキストボックス9333に入力された数値−ストレージの使用済み容量」としても良い。ユーザがチェックボックス9331をチェックしなかった場合、カタログ管理サーバ11は、ストレージ(ファイルシステム45)の未使用容量の全てを中間マスタイメージの構築及び格納に用いるとしても良い。
入力ペイン9310は、選択されたポリシに基づいて、カタログ要素に要件を設定するため入力領域を含む対象カタログ一覧9340を有する。
ポリシ選択9321のコンボボックス9322にて「許容時間指定」が選択された場合、対象カタログ一覧9340には、許容時間9342の入力領域が表示されても良い。更に、対象カタログ一覧9340には、カタログ管理テーブル100の構築頻度114及び/又は優先度115に対応する入力領域(不図示)が表示されても良い。更に、対象カタログ一覧9340には、カタログ管理テーブル100の項目に対応するカタログ要素名9341(カタログ要素名111に対応)、マスタイメージ名9343(マスタイメージ名112に対応)、及び適用スクリプトリスト9344(適用スクリプトリスト117に対応)が表示されても良い。
入力ペイン9310は、選択されたポリシに関連するパラメータの指定を受け付けるオプション領域9311等を有しても良い。
表示ペイン9350は、入力ペイン9310から入力された情報に基づいて生成された(又は生成される)中間マスタイメージの一覧を表示する中間マスタイメージ一覧9360と、中間マスタイメージを利用して再構築されたカタログの一覧を示す再構築後カタログ一覧9370を有する。
中間マスタイメージ一覧9360には、マスタイメージ管理テーブル400に対応する中間マスタイメージ名9361(マスタイメージ名411に対応)、基礎マスタイメージ名9362(基礎マスタイメージ名421aに対応)、及び適応済みスクリプトリスト9363(適用済みスクリプトリスト415に対応)が表示されても良い。
再構築後カタログ一覧9370には、第1カタログ管理部21及び第1カタログ構築部22の処理が実行された後のカタログ管理テーブル100に対応するカタログ要素名9371(カタログ要素名111に対応)、マスタイメージ名9372(マスタイメージ名112に対応)、及び適用スクリプトリスト9373(適用スクリプトリスト117に対応)が表示されても良い。
カタログ管理サーバ11は、再構築確認ボタン9391が押下されると、実際にカタログ要素の再構築を実行する前に、入力ペイン9310に入力された情報に基づくカタログ管理部21及びカタログ構築部22の処理をシミュレーションし、その結果を表示しても良い。
カタログ管理サーバ11は、再構築実行ボタン9392が押下されると、入力ペイン9310に入力された情報に基づいて、実際のカタログ要素の再構築を実行しても良い。
実施例1は、上述のとおり、中間マスタイメージを構築することによって、カタログ要素構築に要する時間を削減することができる。しかし、中間マスタイメージを多く構築すると、その分、ファイルシステム45の容量を消費してしまう。
そこで、実施例2では、中間マスタイメージを構築することによる効果と、ファイルシステム45の容量を消費することのコストと、の間のトレードオフを最適化問題に帰着する方法について述べる。なお、以降の処理は、カタログ管理サーバ11で実行されても良いし、他の装置で実行されても良い。
集合Xは、カタログ管理テーブル100から構築され得る中間マスタイメージの組み合せを網羅する集合である。変数xは、集合Xに属する中間マスタイメージの組み合わせの各々(つまりx∈X)である。すなわち、変数xは、{第1中間マスタイメージ}又は{第1中間マスタイメージ,第2中間マスタイメージ}等のような、或る1つの組み合わせであり、変数xの取り得る全ての中間マスタイメージの組み合わせを含むものが、集合Xである。
カタログ管理サーバ11は、例えば、制約関数の「g(x)≦(使用可能なストレージ容量の上限値)」を満たし、且つ、目的関数の「C1×f(x)−C2×g(x)」の値を最大化する変数xを求める。
ここで、f(x)は、変数xの示す中間マスタイメージの組み合わせによって得られる、カタログ要素構築に要する時間から削減された時間(以下「カタログ要素構築削減時間」という)である。g(x)は、変数xの示す中間マスタイメージの組み合わせによって消費されるストレージ容量(以下「ストレージ消費量」という)である。
f(x)は、変数xの示す中間マスタイメージを各カタログ要素に適用した場合における、各カタログ要素のカタログ要素構築削減時間の総和であっても良い。また、f(x)は、実施例1に示した各ポリシであっても良い。g(x)は、生成した中間マスタイメージのサイズの総和であっても良い。
定数C1及びC2は、ユーザによって指定された所定の定数であっても良い。定数C1は、中間マスタイメージのカタログ要素構築削減時間による効果であっても良い。定数C1の単位は、「料金/時間」あっても良い。
定数C2は、中間マスタイメージのストレージ消費量によるコストであっても良い。定数C2の単位は、「料金/ストレージの単位容量」であっても良い。
つまり、カタログ管理サーバ11は、少なくとも、C1及びC2と、使用可能なストレージ容量の上限とを指定し、有限である集合Xの各要素x∈Xにおいて、目的関数を最大化する変数xを求めることにより、この最適化問題を解くことができる。カタログ管理サーバ11は、この最適化問題を高速に解くために、離散最適化問題等の各種計算手法を用いても良い。
実施例1においてカタログ管理サーバ11は、事前に全てのカタログ要素について中間マスタイメージの構築可否を判断してから、予め中間マスタイメージを構築し、ストレージ(ファイルシステム45)に格納していた。これにより、実施例1におけるカタログ管理サーバ11は、ユーザ(管理者等)からのカタログ要素構築要求に対する応答性能を高めている。
実施例3では、ユーザからのカタログ要素構築要求を受けてから、中間マスタイメージを構築するカタログ管理サーバについて述べる。
実施例1に係るカタログ管理サーバ11は、最後に中間マスタイメージを格納しておくために十分な未使用容量を必要としていた。これに対し、実施例3に係るカタログ管理サーバは、構築した中間マスタイメージを、最後のカタログ要素の構築に利用してしまうため、最後に中間マスタイメージを格納しておくための未使用容量を必要としない。
図20は、実施例3の概要を説明するための概念図である。
第1の方法は、ユーザから第1カタログ要素と第2カタログ要素の構築要求を受けてから、それらのカタログ要素を順番に構築する方法である。第2の方法は、ユーザから第1カタログ要素と第2カタログ要素の構築要求を受けてから、中間マスタイメージを構築及び利用して、それらのカタログ要素を構築する方法である。ここで、第1カタログ要素は、第1マスタイメージに、第1スクリプトと第2スクリプトを適用したものとする。第2カタログ要素は、第1マスタイメージに、第1スクリプトと第2スクリプトを適用したものとする。なお、第1マスタイメージの属性は「Thick」とする。
図20の上段は、第1の方法による第1カタログ要素及び第2カタログ要素の構築に要する時間を示す。第1の方法の場合、第1カタログ要素及び第2カタログ要素の構築に要する時間は、第1カタログ要素構築処理9410の時間と、第2カタログ要素構築処理9420の時間との合計(図20における(t2−t0)の時間)である。
第1カタログ要素構築処理9410の時間は、第1マスタイメージのコピーに要する時間と、そのコピーした第1マスタイメージに第1スクリプト及び第2スクリプトを適用するのに要する時間との合計である。
第2カタログ要素構築処理9420の時間は、第1マスタイメージのコピーに要する時間と、そのコピーした第1マスタイメージに第1スクリプト及び第2スクリプトを適用するのに要する時間との合計である。
図20の下段は、第2の方法による第1カタログ要素及び第2カタログ要素の構築に要する時間を示す。第2の方法の場合、第1カタログ要素及び第2カタログ要素の構築に要する時間は、第2中間マスタイメージ構築処理9430の時間と、第1カタログ要素構築処理9440の時間と、第2カタログ要素構築処理9450の時間との合計(図20における(t1−t0)の時間)である。第2中間マスタイメージ構築処理5430の時間は、第1マスタイメージのコピーに要する時間と、そのコピーした第1マスタイメージに第1スクリプトを適用するのに要する時間との合計である。
第1カタログ要素構築処理9440の時間は、第2中間マスタイメージ構築処理9430で構築した第2中間マスタイメージのコピーに要する時間と、そのコピーした第2中間マスタイメージに第2スクリプトを適用するのに要する時間との合計である。
第2カタログ要素構築処理9450の時間は、第2中間マスタイメージ構築処理9430で構築した第2中間マスタイメージそのものに、第3スクリプトを適用するのに要する時間である。
つまり、第2の方法の第2カタログ要素構築処理9450は、第1の方法の第2カタログ要素構築処理9420と比較して、第1マスタイメージをコピーする処理、及び第1マスタイメージに第1スクリプトを適用する処理を実行する必要がない。したがって、その分、全てのカタログ要素の構築に要する時間を時間Δt(図20における時間9460)の分、削減することができる。なお、厳密には、第2カタログ要素構築処理9450において削減される時間は、第1マスタイメージのコピーに要する時間ではなく、第2中間マスタイメージのコピーに要する時間であるが、通常、時間Δtが削減されることに変わりはない。
図21は、実施例3に係るカタログ管理サーバの構成の例を示す。
ここでは、図1に示したカタログ管理サーバ11と同じ要素については、同一の符号を付して説明を省略する。カタログ管理サーバ11−2は、第2カタログ管理部21−2と、第2カタログ構築部22−2と、マスタイメージ監視部23と、記憶部24とを有する。カタログ管理サーバ11−2は、記憶部24に、カタログ管理テーブル100と、スクリプト管理テーブル200と、実行時間管理テーブル300と、カタログ構築処理テーブル700と、中間マスタイメージ管理テーブル800とを有する。
図22は、カタログ構築処理テーブル700の例を示す。
カタログ構築処理テーブル700は、ユーザ(管理者等)からカタログ要素構築要求のあったカタログ要素の一覧を管理する。カタログ管理サーバ11−2は、このカタログ構築処理テーブル700上から順番にカタログ要素構築処理を実行する。カタログ構築処理テーブル700には、複数の同じカタログ要素が存在しても良い。
カタログ構築処理テーブル700は、データ項目として、カタログ要素の名称等が格納される構築名711と、マスタイメージの名称等が格納される対象マスタイメージ712と、スクリプトの名称等が格納される適用スクリプトリスト713とを有する。
構築名710には、カタログ要素又は中間マスタイメージを識別するための名称が格納される。
対象マスタイメージ712は、マスタイメージの名称等を格納する処理対象721と、マスタイメージに対する処理内容等を格納する処理内容722とを有する。処理対象721には、カタログ要素又は中間マスタイメージを構築するための基礎となるマスタイメージの名称等が格納される。処理内容722には、処理対象721の示すマスタイメージに対して実行される処理の内容が格納される。例えば、処理内容722が「コピー」の場合、処理対象721の示すマスタイメージは、コピーされて利用される。例えば、処理内容722が「使用」の場合、対象721の示すマスタイメージは、コピーされずにそのまま使用される。
対象マスタイメージ712は、更なるデータ項目として、「スナップショット」を有しても良い。スナップショットを用いる場合、カタログ管理サーバ11−2は、マスタイメージに対する差分イメージを別に管理する。そして、カタログ管理サーバ11−2は、差分イメージを有する場合はその差分イメージを、差分イメージを有さない場合はマスタイメージを参照する。マスタイメージ又は中間マスタイメージのスナップショットは、ストレージの未使用容量を消費しない。その結果、コピーに要する時間は、通常発生しない(構成の変更に基づく時間は発生する可能性がある)。そして、スクリプトを適用して差分が発生した場合は、その分だけストレージの未使用容量を消費する。なお、スナップショットは、実施例3に限らず、上述の実施例1及び実施例2、並びに後述の実施例4に適用しても良い。
適用スクリプトリスト713には、処理対象721の示すマスタイメージ又は中間マスタイメージに対して適用するスクリプトの名称及びその順番が格納される。なお、適用スクリプトリスト713には、実施例1の場合と同様、オペレータの手動の処理が格納されても良い。
図22に示すカタログ構築テーブル700のレコード701aは、「第1マスタイメージ」を「コピー」して、「第1スクリプト」と「第2スクリプト」を適用することによって、「第1カタログ要素」が構築されることを示す。
図23は、中間マスタイメージ管理テーブル800の例を示す。
中間マスタイメージ管理テーブル800は、カタログ要素構築処理の途中で構築される中間マスタイメージを管理する。中間マスタイメージ管理テーブル800は、データ項目として、中間マスタイメージの名称等を格納する中間マスタイメージ名811と、中間マスタイメージの基礎となるマスタイメージの情報等を格納する基礎マスタイメージ情報812と、スクリプトの名称等を格納する適用済みスクリプトリスト813とを有する。
中間マスタイメージ名800には、カタログ管理サーバ11−2において構築された中間マスタイメージを識別可能な名称等が格納される。
基礎マスタイメージ情報812は、基礎となったマスタイメージの名称等を格納する基礎マスタイメージ名821と、ゲストOSの名称等を格納するゲストOS名822とを有する。
適用済みスクリプト813には、基礎マスタイメージ名821の示すマスタイメージに適用されたスクリプトの名称及びその順番が格納される。
例えば、図23に示す中間マスタイメージ管理テーブル800のレコード701aは、「第2中間マスタイメージ」が、「第2マスタイメージ」に「第3スクリプト」を適用して構築されたものであり、この第2中間マスタイメージが、ゲストOSとして「Linux(登録商標)」を提供することを示す。
図24は、実施例3に係る第2カタログ管理部の処理のフローチャートの例を示す。
第2カタログ管理部は、ユーザからカタログ要素構築要求を受けると、カタログ構築処理テーブル700を生成する(S801)。この時点において、カタログ構築処理テーブル700には、ユーザから要求されたカタログ要素が含まれ、中間マスタイメージは含まれない。例えば、第2カタログ管理部は、ユーザから第1カタログ要素及び第2カタログ要素を各々1つずつ構築する要求を受けたとする。この場合、第2カタログ管理部21−2は、カタログ構築処理テーブル700に、第1カタログ要素及び第2カタログ要素を各々1つずつ含むテーブルを生成する。
そして、第2カタログ構築部22−2が、カタログ構築処理テーブル700を更新する(S802)。この処理の詳細については後述するが、当該処理の結果、更新後のカタログ構築処理テーブル700には、カタログ要素を構築する順番及び構築すべき中間マスタイメージ等の情報が格納される。ここで、第2カタログ構築部22−2は、後の処理で用いるために、更新される前のカタログ構築処理テーブル700をコピーしておく。
そして、第2カタログ管理部21−2は、第2カタログ構築部22−2によって更新されたカタログ構築処理テーブル700の結果を、GUIを介して、ユーザ(管理者等)に表示しても良い。このGUIの例については後に図26に示すが、ユーザは、この結果を参照して、中間マスタイメージを利用してカタログ要素を構築すべきか否かを判断しても良い(S803)。
ユーザから中間マスタイメージを利用しないとの判断を受けた場合(S803:NO)、第2カタログ管理部21−2は、更新する前のカタログ構築処理テーブル700に基づいて、上述の第1の方法でカタログ要素を構築し(S804)、当該処理を終了する(END)。
ユーザから中間マスタイメージを利用するとの判断を受けた場合(S803:YES)、第2カタログ管理部21−2は、更新後のカタログ構築処理テーブル700に基づいて、上述の第2の方法によって、次のようにカタログ要素を構築する。
つまり、第2カタログ管理部は、カタログ構築処理テーブル700に格納されているレコードの数だけ、以降のループ処理S805〜S812を繰り返す。
まず、第2カタログ管理部21−2は、カタログ構築処理テーブル700における未処理のレコードの内、先頭のレコードを処理対象とする(S806)。
そして、第2カタログ管理部21−2は、処理対象のレコードのカタログ要素構築処理を実行する(S807)。第2カタログ管理部21−2は、処理対象のレコードの内容に基づいて、マスタイメージを準備しても良い。対象マスタイメージ712の処理内容722が「コピー」ならば、処理対象721のマスタイメージ又は中間マスタイメージをコピーしても良い。処理内容722が「使用」ならば、処理対象721のマスタイメージ又は中間マスタイメージをそのまま使用しても良い。
そして、第2カタログ管理部21−2は、上記のステップS807に要した時間(実行時間)を計測し、実行時間管理テーブル300を更新する(S808)。なお、第2カタログ管理部21−2は、GUI画面等に、カタログ要素構築処理の進捗及び終了予定時間等を表示しても良い。
そして、第2カタログ管理部21−2は、処理対象のレコードにおいて、処理対象721が「中間マスタイメージ」であり、且つ処理内容722が「コピー」であるか否かを判定する(S809)。処理対象721が「中間にマスタイメージ」でない、又は処理内容722が「コピー」でない場合(S809:NO)、第2カタログ管理部21−2は、ステップS812に進む。
処理対象721が「中間マスタイメージ」であり、且つ処理内容722が「コピー」である場合(S809:YES)、第2カタログ管理部21−2は、実行時間管理テーブル300を参照し、次の判定を行う。つまり、第2カタログ管理部21−2は、「中間マスタイメージ」をコピーした方がカタログ要素の構築に要する時間が短くなるのか、或いは、「中間マスタイメージ」をコピーせずに「元のマスタイメージ」に「スクリプト」を適用した方がカタログ要素の構築に要する時間が短くなるのか、を判定する(S810)。
このような判定は、属性413が「Thin」の場合に有効である。属性413が「Thick」のマスタイメージは、サイズは変わらないため、コピーに要する時間も変わらない。しかし、属性413が「Thin」のマスタデータは、通常、スクリプトを適用することによってサイズが大きくなるため、コピーに要する時間も長くなる。よって、属性413が「Thin」のマスタイメージは、中間マスタイメージに置き換える前の元のマスタイメージをコピーしてスクリプトを適用した方が、カタログ要素の構築に要する時間が短くなる場合がある。
中間マスタイメージのコピーに要する時間は、「以前に計測した元のマスタイメージ等のコピーに要した時間×(構築後の中間マスタイメージのサイズ/元のマスタイメージ等のサイズ)」によって求められても良い。また、上述のS810の判定において、第2カタログ管理部21−2は、オペレータ等による手動処理に要する時間、及び/又は設定の確認に要する時間等を含めても良い。
図24の説明に戻る。「中間マスタイメージ」をコピーした方がカタログ要素の構築に要する時間が短くなる(又は同一の)場合(S810:NO)、第2カタログ管理部21−2は、ステップS812に進む。
「中間マスタイメージ」をコピーした方がカタログ要素の構築に要する時間が長くなる場合(S810:YES)、第2カタログ管理部21−2は、カタログ構築処理テーブル700の処理対象のレコードにおける「中間マスタイメージ」を「コピー」又は「使用」する処理を、「元のマスタイメージ」に「スクリプト」を適用する処理に戻し(S811)、ステップS821に進む。
ステップS812において第2カタログ管理部21−2は、未処理のレコードが存在する場合、ループ処理の先頭に戻り、未処理のレコードが存在しない場合、当該処理を終了する(END)。
例えば、図22のレコード701dにおいて、「第1中間マスタイメージ」のコピーに要する時間が、第3マスタイメージのコピーに要する時間と、その第3マスタイメージに第3スクリプトを適用するのに要する時間との合計よりも遅いとする。この場合、第2カタログ管理部21−2は、「第1中間マスタイメージ」を利用しているレコード701eにおいて、処理対象721を「第3マスタイメージ」に、処理内容722を「コピー」に置き換える。更に、第2カタログ管理部21−2は、適用スクリプトリスト713の1番目723aに「第3スクリプト」を挿入する。なお、第2カタログ管理部21−2は、処理内容722が「使用」の場合は、中間マスタイメージのコピーに要する時間が発生せず、中間マスタイメージを有効に活用できるため、そのレコードを元の構成に戻さなくても良い。
なお、ステップS803において、第2の方法に基づいて実行するか(ステップS805に進むか)、或いは、第1の方法に基づいて実行するか(ステップS804に進むか)を、ユーザに選択させても良い。
また、上述のようにカタログ要素構築処理の順番を先に全て決めておき、その順番にカタログ要素を構築しても良いし、以下のようにカタログ要素を構築しても良い。
(第1ステップ)第2カタログ構築部21−2は、カタログ構築処理テーブル700を更新する。そして、第2カタログ管理部は、以下の第2ステップから第3ステップのループ処理を実行する。
(第2ステップ)第2カタログ管理部21−2は、カタログ構築処理テーブル700における未処理のレコードの内、先頭のレコードを処理対象とし、レコードのカタログ要素構築処理を実行すると共に、その構築処理に要した時間(実行時間)を計測する。
(第3ステップ)第2カタログ構築部21−2は、この計測された実行時間に基づいて、カタログ構築処理テーブル700における、構築済みのカタログ要素及び中間マスタイメージを除く他のレコードを更新し、第2ステップに戻る。
この処理は、図24に示した処理と比較し、より正確な実行時間に基づいて、カタログ構築処理テーブル700を更新することができる。また、最初の実行時間管理テーブル300には、デフォルト値が設定されても良い。
図25は、ユーザに表示されるGUIの画面の例を示す。
GUI9500は、図24のステップS803において表示されても良い。GUI9500は、第1の方法に基づくカタログ要素構築処理の予定一覧9510と、第2の方法に基づくカタログ要素構築処理の予定一覧9520とを有する。第1の方法とは、上述のとおり、中間マスタイメージを利用せずにカタログ要素を構築する方法である。第2の方法とは、上述のとおり、中間マスタイメージを利用してカタログ要素を構築する方法である。
GUI9500は、第1の方法によるカタログ要素構築処理の実行を受け付ける「第1の方法で構築」ボタン9541と、第2の方法によるカタログ要素構築処理の実行を受け付ける「第2の方法で構築」ボタン9542とを有する。GUI9510は、カタログ要素構築処理の実行中に、その進捗状況を示すグラフ9532を有しても良い。
第1の方法に基づくカタログ要素構築処理の予定一覧(以下「第1方法の予定一覧」という)9510は、データ項目として、カタログ要素名9511と、マスタイメージ名9512と、適用スクリプトリスト9513と、構築完了時刻9514とを有する。カタログ要素名9511、マスタイメージ名9512及び適用スクリプトリスト9513の説明は、上記と同様となるため省略する。
第1方法の予定一覧9510は、第2カタログ構築部22−2が更新する前のカタログ構築処理テーブル700に基づいて生成される。
第1方法の予定一覧9510の構築完了時刻9514には、中間マスタイメージを利用せずにカタログ要素を構築した場合に、その構築が完了すると予想される時刻が格納される。この構築完了時刻9514は、実行時間管理テーブル300におけるマスタイメージのコピーに要する時間、及び/又はスクリプトの適用に要する時間等を用いて算出されても良い。
第2の方法に基づくカタログ構築処理の予定一覧(以下「第2方法の予定一覧」という)9520は、データ項目として、カタログ要素名9520と、マスタイメージ名9522と、適用スクリプトリスト9523と、構築完了時刻9524とを有する。カタログ要素名9521、マスタイメージ名9522及び適用スクリプトリスト9523の説明は、上記と同様となるため省略する。
第2方法の予定一覧9520は、第2カタログ構築部22−2が更新した後のカタログ構築処理テーブル700に基づいて生成される。
第2の方法に係る構築完了時刻9524には、中間マスタイメージを利用してカタログ要素を構築した場合に、その構築が完了すると予想される時刻が格納される。この構築完了時刻9524は、実行時間管理テーブル300におけるマスタイメージのコピーに要する時間、中間マスタイメージのコピーに要する時間、及び/又はスクリプトの適用に要する時間等を用いて算出されても良い。
「第1方法で構築」ボタン9541が押下されると、カタログ管理サーバ11−2は、第1方法の予定一覧9510に表示されている先頭から順番に、カタログ要素構築処理を実行する。
「第2方法で構築」ボタン9542が押下されると、カタログ管理サーバ11−2は、第2方法の予定一覧9520に表示されている先頭から順番に、カタログ要素構築処理を実行する。
グラフ9532は、「第1方法で構築」ボタン9541又は「第2方法で構築」ボタン9542が押下された後に、何れの段階まで構築が完了したか(つまり、進捗状況)を表示する。グラフ9532は、構築の開始時刻9531と終了予定時刻9533とを表示しても良い。
図26は、第2カタログ構築部22−2の処理のフローチャートの例を示す。
当該処理は、図24に示したステップS802の処理に該当する。第2カタログ構築部22−2は、第2カタログ管理部21−2から呼び出されると、カタログ構築処理テーブル700に格納されている構築対象のグループを作成する(S901)。このグループを、仮にグループAとする。
そして、第2カタログ構築部22−2は、グループAにおける共通な要素(2つ以上のカタログに共通するマスタイメージ及びスクリプト)を抽出する(S902)。この共通するマスタイメージ及びスクリプトから構築される中間マスタイメージを、仮に中間マスタイメージAとする。この処理は、図18のステップS704〜706と同様の処理である。
以降、共通な要素が1つの場合の処理について説明する。しかし、グループAの全体に共通な要素は存在しないものの、グループAを更に2つのグループに分ければ各々のグループに共通な要素が存在する場合は、各々のグループに対して以降の処理を適用しても良い。
第2カタログ構築部22−2は、ステップS902で構築した中間マスタイメージAを、中間マスタイメージ管理テーブル800に格納する。そして、第2カタログ構築部22−2は、グループAにおいて、可能な場合、構築対象(カタログ要素又は中間マスタイメージ)を、中間マスタイメージAで置換する(S903)。例えば、コピーされた第1マスタイメージに第1スクリプトを適用して中間マスタイメージAが構築される場合、第2カタログ構築部22−2は、カタログ構築処理テーブル700において、第1カタログの処理対象721を「中間マスタイメージA」とし、処理内容722を「コピー」とし、適用スクリプトリスト713の「第1スクリプト」を削除する。
次に、第2カタログ構築部22−2は、中間マスタイメージAに置換したグループAを、グループBとグループCの2つに分割する(S904)。ここで、グループCは、中間マスタイメージAを処理対象721に含むカタログ要素等のグループであり、グループBは、中間マスタイメージAを処理対象721に含まないカタログ要素等のグループである。
そして、第2カタログ構築部22−2は、カタログ構築処理テーブル700の内、グループAに該当していた範囲を、グループB、中間マスタイメージA、グループCの順番に置換する(S905)。これにより、カタログ構築処理テーブル700のその範囲におけるカタログ要素構築の順番が、グループB、中間マスタイメージA、グループCの順番となり、中間マスタイメージAが新たに追加される。そして、第2カタログ構築部22−2は、グループCにおいて共通な要素の抽出を試みる(S906)。
グループCにおいて共通な要素を抽出できた場合(S906:YES)、第2カタログ構築部22−2は、このグルーブCをグループAと見なして、ステップS902の処理に戻る(S907)。
グループCにおいて共通な要素を抽出できなかった場合(S906:NO)、第2カタログ構築部22−2は、カタログ構築処理テーブル700において、処理対象721に中間マスタイメージを含むレコードの内、最終のレコードの処理内容722を「使用」に変更し(S908)、当該処理を終了する(END)。
実施例4に示すカタログ管理サーバ11−3は、全てのカタログ要素に対して事前に中間マスタイメージ構築処理を実行する場合と、カタログ要素構築要求を受けてから中間マスタイメージ構築処理を実行する場合とを、適切に使い分ける。
図27は、実施例4に係るカタログ管理サーバ11−3の構成の例を示す。
ここでは、図1に示したカタログ管理サーバ11又は図21に示したカタログ管理サーバ11−2と同じ要素については、同一の符号を付して説明を省略する。
カタログ管理サーバ11−3は、第1カタログ管理部21と、第2カタログ管理部21−2と、第3カタログ管理部21−3と、第1カタログ構築部22と、第2カタログ構築部22−2と、記憶部24とを有する。記憶部24に格納される要素については、図21と同様のため、説明を省略する。
第3カタログ管理部21−3は、ユーザからの要求の内容に基づいて、全てのカタログ要素に対して事前に中間マスタイメージ構築処理を実行するか、それとも、カタログ要素構築要求を受けてから中間マスタイメージ構築処理を実行するか、を判断する。次に、第3カタログ管理部21−3の処理の例を述べる。
図28は、第3カタログ管理部21−3の処理のフローチャートの例を示す。
第3カタログ管理部21−3は、図11に示したユーザからの要求を受けると、その要求が「ポリシ選択要求」、「カタログ要素追加要求」及び「カタログ要素削除要求」の何れかであるか、それとも、「カタログ要素構築要求」であるかを判定する(S1001)。
ユーザからの要求が「ポリシ選択要求」、「カタログ追加要求」及び「カタログ削除要求」の何れかである場合(S1001:A)、第3カタログ管理部21−3は、第1カタログ管理部21及び第1カタログ構築部22に処理を実行させる(S1002)。つまり、第3カタログ管理部21−3は、全てのカタログに対して事前に中間マスタイメージ構築処理を実行する方を選択する。
ユーザからの要求が「カタログ構築要求」である場合(S1001:B)、第3カタログ管理部21−3は、第2カタログ管理部21−2及び第2カタログ構築部22−2に処理を実行させる(S1003)。つまり、第3カタログ管理部21−3は、カタログ構築要求を受けてから中間マスタイメージ構築処理を実行する方を選択する。
なお、第1カタログ管理部21及び第1カタログ構築部22で構築された中間マスタイメージに対しても、図24のステップS810及びS811と同様の処理によって、必要に応じて、中間マスタイメージから、元のマスタイメージとスクリプトに戻しても良い。
実施例5では、上述の実施例1乃至4において示した各処理を異なる態様で組み合わせた場合におけるカタログ管理サーバ11−4の処理について述べる。
図29は、実施例5に係るカタログ管理サーバ11−4の構成の例を示す。
ここでは、図1に示したカタログ管理サーバ11又は図21に示したカタログ管理サーバ11−2と同じ要素については、同一の符号を付して説明を省略する。
カタログ管理サーバ11−4は、第4カタログ管理部21−4と、第4カタログ構築部22−4と、マスタイメージ監視部23と、記憶部24とを有する。記憶部24に格納される要素については、図21と同様のため説明を省略する。
第4カタログ管理部21−4は、カタログ管理テーブル100に基づいて、カタログ要素を構築する途中までのスクリプトをマスタイメージに適用した中間マスタイメージを構築するか否か判定する。中間マスタイメージを構築すると判定した場合、第4カタログ管理部21−4は、当該中間マスタイメージを構築してストレージ(ファイルシステム45)に格納し、カタログ管理テーブル100のマスタイメージを、当該中間マスタイメージに置換する。そして、第4カタログ構築部22−4は、カタログ管理テーブル100に基づいて、ストレージに格納されているマスタイメージ又は中間マスタイメージに、残りのスクリプトを適用してカタログ要素(仮想マシンイメージ)を構築する。
第4カタログ管理部21−4は、中間マスタイメージのコピーに要する時間が、マスタイメージをコピーしてカタログ要素を構築する途中までのスクリプトを適用した場合に要する時間よりも短いならば、中間マスタイメージを構築すると判定しても良い。第4カタログ構築部22−4は、ストレージに格納されているマスタイメージ又は中間マスタイメージをコピーし、そのコピーしたマスタイメージ又は中間マスタイメージに残りのスクリプトを適用してカタログ要素を構築しても良い。
第4カタログ管理部21−4は、カタログ要素の属性413が、「Thin」の場合に、中間マスタイメージを構築すると判定し、「Thick」の場合に、中間マスタイメージを構築しないと判定しても良い。
第4カタログ管理部21−4は、異なるカタログ要素に共通して含まれる、マスタイメージ及びスクリプトが存在するならば、その共通するマスタイメージに、その共通するスクリプトを適用した中間マスタイメージを構築すると判定しても良い。第4カタログ構築部22−4は、その異なるカタログ要素に係るカタログ管理テーブル100中の共通するマスタイメージを、その共通するスクリプトを適用した中間マスタイメージに置換しても良い。
第4カタログ管理部21−4は、2以上の異なる中間マスタイメージを構築すると判定した場合、中間マスタイメージを構築する順番を決定して、中間マスタイメージ管理テーブル800に格納しても良い。第4カタログ構築部22−4は、中間マスタイメージ管理テーブル800の示す順番に中間マスタイメージを構築しても良い。
第4カタログ構築部22−4は、ストレージ容量テーブル500を参照して、ストレージの空き容量(未使用容量)が所定未満とならない範囲で、中間マスタイメージ管理テーブル800に示されている上位から順番に中間マスタイメージを構築してストレージに格納しても良い。なお、第4カタログ管理部21−4は、中間マスタイメージ管理テーブル800の上位から順番に中間マスタイメージのデータサイズを合計していき、ストレージの空き容量とその合計との差分が所定未満となったら、その順番以降のレコードを中間マスタイメージ管理テーブル800から削除しても良い。
第4カタログ管理部21−4は、中間マスタイメージを構築する順番を決定するにあたって、カタログ管理テーブル100を参照し、構築頻度114のより高いカタログ要素に利用できる中間マスタイメージが先に構築されるように、中間マスタイメージ管理テーブル800を更新しても良い。
第4カタログ管理部21−4は、中間マスタイメージを構築する順番を決定するにあたって、より多くの異なるカタログ要素に共通して利用できる中間マスタイメージが先に構築されるように、中間マスタイメージ管理テーブル800を更新しても良い。
第4カタログ管理部21−4は、中間マスタイメージを構築する順番を決定するにあたって、スクリプト管理テーブル200を参照し、異なる中間マスタイメージの各々が同じマスタイメージにバージョンの異なる同様のスクリプトを適用したものであるならば、バージョンのより新しい同様のスクリプトを適用した中間マスタイメージが先に構築されるように、中間マスタイメージ管理テーブル800を更新しても良い。
第4カタログ管理部21−4は、通信ネットワーク18を介して、ユーザからカタログ要素の構築要求を受けると、その要求を受けたカタログ要素について、中間マスタイメージを構築するか否かの判定を実行しても良い。
図30は、実施例5に係るカタログ管理サーバ11−4の処理のフローチャートの例を示す。
第4カタログ管理部21−4は、カタログ管理テーブル100及びマスタイメージ管理テーブル400を参照して、属性413が「Thin」のカタログ要素群を抽出する(S1101)。そして、第4カタログ管理部21−4は、前のステップで抽出したカタログ要素群から、異なるカタログ要素に共通するマスタイメージ及びスクリプトの組み合わせを抽出する(S1102)。そして、第4カタログ管理部21−4は、その抽出した組み合わせの数だけ、以降のステップS1103〜S1107のループ処理を実行する(S1103)。
第4カタログ管理部21−4は、ステップS1102で抽出した組み合わせの内、未処理の組み合わせを、当該ループ処理の処理対象とする(S1104)。
第4カタログ管理部21−4は、「処理対象の組み合わせから構築される中間マスタイメージのコピーに要する時間<処理対象のマスタイメージのコピーに要する時間+そのマスタイメージに処理対象のスクリプトを適用する時間」であるか否かを判定する(S1105)。
「処理対象の組み合わせから構築される中間マスタイメージのコピーに要する時間<処理対象のマスタイメージのコピーに要する時間+そのマスタイメージに処理対象のスクリプトを適用する時間」でない場合(S1105:NO)、第4カタログ管理部21−4は、ステップS1107に進む。
「処理対象の組み合わせから構築される中間マスタイメージのコピーに要する時間<処理対象のマスタイメージのコピーに要する時間+そのマスタイメージに処理対象のスクリプトを適用する時間」である場合(S1105:YES)、第4カタログ管理部21−4は、この処理対象の組み合わせを、中間マスタイメージ管理テーブル800に格納し(S1106)、ステップS1107に進む。
ステップS1107において第4カタログ管理部21−4は,ループ処理が残っている場合はステップS1103に戻り、ループ処理が残っていない場合は次のステップS1108に進む(S1107)。
第4カタログ管理部21−4は、中間マスタイメージ管理テーブル800を、条件に基づいて、中間マスタイメージを構築する順番に入れ替える(S1108)。条件は、ポリシ管理テーブル600において選択された条件であっても良い。
次に、第4カタログ構築部22−4は、中間マスタイメージ管理テーブル800のレコードの数だけ、以降のステップS1109〜S1113のループ処理を実行する(S1109)。
第4カタログ構築部22−4は、中間マスタイメージ管理テーブル800の未処理の中間マスタイメージの内、上位の中間マスタイメージを処理対象に決定する(S1110)。そして、第4カタログ構築部22−4は、「中間マスタイメージを格納するストレージの未使用容量−処理対象の中間マスタイメージのデータサイズ>所定値」であるか否かを判定する(S1111)。つまり、第4カタログ構築部22−4は、処理対象の中間マスタイメージをストレージに格納したとしても、ストレージに所定値よりも大きい未使用容量が残るか否かを判定する。
「中間マスタイメージを格納するストレージの未使用容量−処理対象の中間マスタイメージのデータサイズ>所定値」でない場合(S1111:NO)、第4カタログ構築部21−4は、これ以上中間マスタイメージをストレージに格納できないと判断し、ループを抜けて当該処理を終了する(END)。
「中間マスタイメージを格納するストレージの未使用容量−処理対象の中間マスタイメージのデータサイズ>所定値」である場合(S1111:YES)、第4カタログ管理部21−4は、処理対象の中間マスタイメージを構築してストレージに格納し(S1112)、次のステップS1113に進む。
ステップS1113において第4カタログ構築部22−4は、ループ処理が残っている場合はステップS1109に戻り、ループ処理が残っていない場合は当該処理を終了する(END)。
上述した実施例は、本発明の説明のための例示であり、本発明の範囲をそれらの実施例にのみ限定する趣旨ではない。当業者は、本発明の要旨を逸脱することなしに、他の様々な態様で本発明を実施することができる。
11、11−2、11−3、11−4…カタログ管理サーバ 12…仮想環境管理サーバ 13…物理サーバ 15…ストレージ装置、51…ハイパーバイザ 53…仮想計算機


Claims (14)

  1. 仮想マシン及び当該仮想マシン上の実行環境に関するデータである仮想マシンイメージを管理する仮想マシンイメージ管理サーバであって、
    演算処理を実行する演算部と、データを格納する記憶部と、を備え、
    前記記憶部は、
    仮想マシンイメージの基礎となるマスタイメージと、
    一のマスタイメージと、それぞれが前記一のマスタイメージに適用され得る1又は2以上の追加処理と、の組み合わせを含む仮想マシンイメージ管理情報と
    を格納し、
    前記演算部は、
    前記仮想マシンイメージ管理情報に基づいて、仮想マシンイメージを構築する途中までの追加処理をマスタイメージに適用した中間マスタイメージを構築するか否かを判定する判定処理と、
    前記判定処理での判定結果が中間マスタイメージを構築するという真の判定結果の場合、前記中間マスタイメージを構築して前記記憶部に格納し、前記仮想マシンイメージ管理情報中のマスタイメージを、前記中間マスタイメージに置換する中間マスタイメージ構築処理と、
    前記仮想マシンイメージ管理情報に基づいて、前記記憶部に格納されているマスタイメージ又は中間マスタイメージに残りの追加処理を適用して前記仮想マシンイメージを構築する仮想マシンイメージ構築処理と
    を実行する
    仮想マシンイメージ管理サーバ。
  2. 前記演算部は、
    前記判定処理において、前記中間マスタイメージのコピーに要する時間が、前記マスタイメージをコピーして前記仮想マシンイメージを構築する途中までの追加処理を適用した場合に要する時間よりも短いならば、前記中間マスタイメージを構築するという前記真の判定をし、
    前記仮想マシンイメージ構築処理において、前記記憶部に格納されているマスタイメージ又は中間マスタイメージをコピーし、そのコピーしたマスタイメージ又は中間マスタイメージに残りの追加処理を適用して前記仮想マシンイメージを構築する
    請求項1に記載の仮想マシンイメージ管理サーバ。
  3. 前記仮想マシンイメージ管理情報は、仮想マシンイメージのデータサイズが固定的又は可変的の何れであるかを示す情報をさらに含み、
    前記演算部は、
    前記判定処理において、仮想イメージのデータサイズが、可変的な場合に前記真の判定をし、固定的な場合には前記真の判定をしない
    請求項2に記載の仮想マシンイメージ管理サーバ。
  4. 前記演算部は、
    前記判定処理において、異なる仮想マシンイメージに共通して含まれる、マスタイメージ及び追加処理が存在するならば、その共通するマスタイメージに、その共通する追加処理を適用した中間マスタイメージを構築すると判定し、
    前記中間マスタイメージ構築処理において、前記異なる仮想マシンイメージに係る前記仮想マシンイメージ管理情報中の共通するマスタイメージを、その共通する追加処理を適用した中間マスタイメージに置換する
    請求項3に記載の仮想マシンイメージ管理サーバ。
  5. 前記演算部は、
    前記判定処理において、2以上の異なる中間マスタイメージを構築すると判定した場合、中間マスタイメージを構築する順番を決定し、
    前記中間マスタイメージ構築処理において、前記判定処理の決定した順番に中間マスタイメージを構築する
    請求項4に記載の仮想マシンイメージ管理サーバ。
  6. 前記演算部は、
    前記中間マスタイメージ構築処理において、前記記憶部の空き容量が所定未満とならない範囲で、前記判定処理の決定した順番に中間マスタイメージを構築して前記記憶部に格納する
    請求項5に記載の仮想マシンイメージ管理サーバ。
  7. 前記仮想マシンイメージ管理情報は、仮想マシンイメージの構築の頻度に関する情報をさらに含み、
    前記演算部は、
    前記判定処理において、前記利用頻度のより高い仮想マシンイメージに利用できる中間マスタイメージの構築を、先の順番とする
    請求項6に記載の仮想マシンイメージ管理サーバ。
  8. 前記演算部は、
    前記判定処理において、より多くの異なる仮想マシンイメージに共通して利用できる中間マスタイメージの構築を、先の順番とする
    請求項6に記載の仮想マシンイメージ管理サーバ。
  9. 前記仮想マシンイメージ管理情報は、同様の追加処理間における新しさを示すバージョン情報をさらに含み、
    前記演算部は、
    前記判定処理において、異なる中間マスタイメージの各々が、同じマスタイメージに前記バージョンの異なる前記同様の追加処理を適用したものであるならば、バージョンのより新しい同様の追加処理を適用する中間マスタイメージの構築を、先の順番とする
    請求項6に記載の仮想マシンイメージ管理サーバ。
  10. ユーザからの仮想マシンイメージの構築の要求を受け付ける受付部をさらに有し、
    前記演算部は、
    前記判定処理において、前記受付部を介してユーザから構築を要求された仮想マシンイメージについて、前記中間マスタイメージを構築するか否かの判定をする
    請求項2に記載の仮想マシンイメージ管理サーバ。
  11. 前記演算部は、
    前記判定処理において、異なる仮想マシンイメージに共通して含まれる、マスタイメージ及び追加処理が存在するならば、その共通するマスタイメージに、その共通する追加処理を適用した中間マスタイメージを構築すると判定し、
    前記中間マスタイメージ構築処理において、前記異なる仮想マシンイメージに係る前記仮想マシンイメージ管理情報中の共通するマスタイメージを、その共通する追加処理を適用した中間マスタイメージに置換する
    請求項1に記載の仮想マシンイメージ管理サーバ。
  12. 前記演算部は、
    前記判定処において、中間マスタイメージを構築するという前記真の判定をした2以上の異なる中間マスタイメージが存在する場合、さらに、中間マスタイメージを構築する順番を決定し、
    前記中間マスタイメージ構築処理において、前記判定処理の決定した順番に中間マスタイメージを構築する
    請求項11に記載の仮想マシンイメージ管理サーバ。
  13. 前記演算部は、
    前記中間マスタイメージ構築処理において、前記記憶部の空き容量が所定未満とならない範囲で、前記判定処理の決定した順番に中間マスタイメージを構築して前記記憶部に格納する
    請求項12に記載の仮想マシンイメージ管理サーバ。
  14. 仮想マシン及び当該仮想マシン上の実行環境に関するデータである仮想マシンイメージを管理する仮想マシンイメージ管理方法であって、
    データを格納する記憶部に、
    仮想マシンイメージの基礎となるマスタイメージと、
    一のマスタイメージと、それぞれが前記一のマスタイメージに適用され得る1又は2以上の追加処理と、の組み合わせを含む仮想マシンイメージ管理情報と、
    を格納させておき、
    前記仮想マシンイメージ管理情報に基づいて、仮想マシンイメージを構築する途中までの追加処理をマスタイメージに適用した中間マスタイメージを構築するか否か判定し、
    その判定結果が中間マスタイメージを構築するという真の判定結果の場合、前記中間マスタイメージを構築して前記記憶部に格納し、前記仮想マシンイメージ管理情報中のマスタイメージを、前記中間マスタイメージに置換し、
    前記仮想マシンイメージ管理情報に基づいて、前記記憶部に格納されているマスタイメージ又は中間マスタイメージに残りの追加処理を適用して前記仮想マシンイメージを構築する
    仮想マシンイメージ管理方法。



JP2015507884A 2013-03-29 2013-03-29 仮想マシンイメージ管理サーバ、及び仮想マシンイメージ管理方法 Expired - Fee Related JP5996094B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2013/059598 WO2014155693A1 (ja) 2013-03-29 2013-03-29 仮想マシンイメージ管理サーバ、及び仮想マシンイメージ管理方法

Publications (2)

Publication Number Publication Date
JP5996094B2 JP5996094B2 (ja) 2016-09-21
JPWO2014155693A1 true JPWO2014155693A1 (ja) 2017-02-16

Family

ID=51622746

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015507884A Expired - Fee Related JP5996094B2 (ja) 2013-03-29 2013-03-29 仮想マシンイメージ管理サーバ、及び仮想マシンイメージ管理方法

Country Status (2)

Country Link
JP (1) JP5996094B2 (ja)
WO (1) WO2014155693A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7268362B2 (ja) * 2019-01-18 2023-05-08 日本電気株式会社 仮想マシン割当方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007096963A1 (ja) * 2006-02-23 2007-08-30 Fujitsu Limited サーバ管理プログラム、サーバ管理装置およびサーバ管理方法
EP2189902A1 (en) * 2007-09-12 2010-05-26 Mitsubishi Electric Corporation Information processor
JP2010231661A (ja) * 2009-03-27 2010-10-14 Nec Corp 仮想マシンシステム、仮想マシンシステムの動作方法、及び仮想マシンシステムの動作プログラム
JP2011221597A (ja) * 2010-04-05 2011-11-04 Hitachi Solutions Ltd クローンディスク作成方法およびプログラム
JP2012078893A (ja) * 2010-09-30 2012-04-19 Hitachi Solutions Ltd 計算機システム、及び管理計算機

Also Published As

Publication number Publication date
WO2014155693A1 (ja) 2014-10-02
JP5996094B2 (ja) 2016-09-21

Similar Documents

Publication Publication Date Title
US11778057B2 (en) System and method for intent-based service deployment
CN103098043B (zh) 随需虚拟机映像流式传输的方法和系统
JP5032191B2 (ja) サーバ仮想化環境におけるクラスタシステム構成方法及びクラスタシステム
CN104603750B (zh) 使用bpram来布局和执行软件应用
JP4592814B2 (ja) 情報処理装置
US8924969B2 (en) Virtual machine image write leasing
US9317275B2 (en) Computer system and program restoring method thereof
CN104583948B (zh) 使用bpram来布局和执行操作系统
CN102200921A (zh) 智能引导设备选择和恢复
US10990373B2 (en) Service managers and firmware version selections in distributed computing systems
JP5346405B2 (ja) ネットワークシステム
US10572108B2 (en) Hierarchical inventory tree operation
TWI736912B (zh) 用於通用處理器之排序及合併指令之電腦程式產品、電腦系統及電腦實施方法
JP2012059024A (ja) 情報処理装置、起動制御方法、起動制御プログラム及び記録媒体
US10114677B2 (en) Method and system for workload recommendations on information handling systems
US8732427B2 (en) Systems and methods for collapsing a derivative version of a primary storage volume
US20170168845A1 (en) Managing dependencies for human interface infrastructure (hii) devices
US20050240669A1 (en) BIOS framework for accommodating multiple service processors on a single server to facilitate distributed/scalable server management
JP5183448B2 (ja) 情報処理装置及び情報処理方法及びプログラム
US20220164703A1 (en) Model acceptance determination support system and model acceptance determination support method
JP5996094B2 (ja) 仮想マシンイメージ管理サーバ、及び仮想マシンイメージ管理方法
JP2015022380A (ja) 情報処理装置、仮想マシンの移行方法及び仮想マシンの移行プログラム
WO2017056208A1 (ja) リクエスト実行順序制御方式
US20150116208A1 (en) Terminal apparatus, information processing apparatus, and display control method
US9875123B2 (en) Host reservation system

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160629

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160726

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160823

R150 Certificate of patent or registration of utility model

Ref document number: 5996094

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees