説明

サーバシステムの管理方法、及び管理計算機、並びにプログラム

【課題】仮想マシンのサービス停止時間の短縮化を図りつつ、シンプルな処理により既存のVMディスクイメージの重複排除処理を実現する。
【解決手段】仮想マシンをマスタのディスクイメージとの差分データのみを格納したデルタディスクを使って稼動させる、リンクド仮想マシン機能を利用する。マスタのディスクイメージと重複排除対象とするディスクイメージとをユーザに指定させ、デルタディスクを作成する。また、重複排除対象ディスクイメージのスナップショットを作成し、それ以降の変更内容はログディスクイメージに格納する。そして、マスタのディスクイメージと重複排除対象のディスクイメージとの差分セクタ情報をデルタディスクに書き込み、既存の仮想マシンのディスクイメージをデルタディスクに変換するとともに、リンクド仮想マシンとして動作させる。さらに、ログディスクイメージから変更内容をデルタディスクに反映する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、サーバシステムの管理方法、及び管理計算機、並びにプログラムに関し、例えば、仮想マシンディスクイメージの重複排除を実行する技術に関するものである。
【背景技術】
【0002】
仮想マシン(以下、「VM」と記述することがある)が占有するストレージ装置の容量を削減する技術に、VMディスクイメージの重複排除技術がある。
【0003】
例えば、特許文献1には、ディスクイメージの重複排除の例が開示されている。具体的には、VMがデータを保存する際に、新規に保存しようとするデータと類似したデータが既に別のVMにより保存されているかを確認する。そして、類似データが保存されている場合には、データそのものを保存するのではなく、既に保存されているデータを参照するためのブロック識別子を保存する。これにより、ディスクイメージの重複排除を行う。
【0004】
また、非特許文献2には、既存のVMを複製(クローン)して新たにVMを作成する際に、クローン元のVMが保持するディスクイメージ(以下、マスタディスクイメージと記載)全体をコピーするのではなく、マスタディスクイメージへの参照情報とマスタディスクイメージとの差分データを格納するデルタディスクイメージを保持するリンクドVMを作成する技術が開示されている。なお、リンクドVMに対し、ディスクイメージ全体をコピーしたVMはフルクローンVMと呼ばれる。
【0005】
図1は、リンクドVMにおけるI/O処理の動作概念を示す図である。リンクドVMにおいては、データの書き込みは全てデルタディスクに対して行われる。一方、データの読込みは、デルタディスク又はクローン元となったマスタディスクのいずれかから行う。すなわち、要求されたデータがデルタディスクに存在する場合はデルタディスクから読み込み、要求されたデータがデルタディスクに存在しない場合はマスタディスクからデータを読み込む。リンクドVMはマスタディスクイメージと重複したデータを持たないため、フルクローンVMを使う場合と比較してストレージ容量が削減できる。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2010-26790号公報
【非特許文献】
【0007】
【非特許文献1】VMware社Technical Note「Linked Virtual Machines」(http://www.VMware.com/support/developer/vc-sdk/linked_VMs_note.pdf)
【発明の概要】
【発明が解決しようとする課題】
【0008】
しかしながら、特許文献1に開示の技術は、重複排除の仕組みがストレージ装置の物理構成に依存するため、汎用性が低い。つまり、特許文献1では、ストレージ装置のブロックの配置情報に基づくブロック識別子を使用して重複排除している。このブロックの配置情報はストレージ装置毎に異なるため、VM横断で一致データを探し、既に保存されているブロックを参照するためのブロック識別子情報をストレージ装置毎に用意しなければならならず、非常に煩雑である。
【0009】
また、非特許文献1に開示の従来技術は、リンクドVMの新規作成しか考慮されておらず、既存のフルクローンVMをリンクドVMに作り変える方法は提供されていない。このため、既存のVMディスクイメージの重複を排除し、仮想マシンが占有するストレージ装置の容量を削減することは困難である。
【0010】
さらに、重複排除処理中にVMのサービスを停止しなければならないが、この停止時間を極力短くすることがシステム運用上望ましい。
【0011】
本発明はこのような状況に鑑みてなされたものであり、サービス停止時間の短縮化を図りつつ、シンプルな処理により既存のVMディスクイメージの重複排除を実現できる技術を提供するものである。
【課題を解決するための手段】
【0012】
上記課題を解決するために、本発明では、重複排除対象ディスクイメージに対応し、指定されたマスタディスクイメージを参照するデルタディスクイメージを作成する。また、重複排除対象ディスクイメージの状態を記録した重複排除対象スナップショットと、スナップショット取得以降の重複排除対象ディスクイメージに対する変更に関する情報を管理するための変更管理情報と、を作成する。さらに、マスタディスクイメージと重複排除対象スナップショットの差分情報を生成する。そして、生成した差分情報をデルタディスクイメージに書き込み、指定された重複排除対象ディスクイメージに対する書き込みを一時的に遮断した後に、変更管理情報を用いて取得される、スナップショット取得以降の重複排除対象ディスクに対する変更内容を前記デルタディスクイメージに書き込む。さらに、デルタディスクイメージを仮想マシンに関連付け、重複排除対象ディスクイメージを削除する。
【0013】
さらなる本発明の特徴は、以下本発明を実施するための形態および添付図面によって明らかになるものである。
【発明の効果】
【0014】
本発明によれば、サービス停止時間の短縮化を図りつつ、シンプルな処理により既存のVMディスクイメージの重複排除を実現できるようになる。
【図面の簡単な説明】
【0015】
【図1】リンクドVMとデルタディスクのIO処理の動作を説明するための概念図である。
【図2】スナップショットのディスク構成とディスクアクセスの動作を説明するための概念図である。
【図3】デルタディスクイメージのディスク構成とディスクアクセスの動作を説明するための概念図である。
【図4】本発明の実施形態によるサーバシステム(仮想マシンディスクイメージの重複排除システム)の概略構成を示す図である。
【図5】ディスクイメージ変換プログラムの全体動作を説明するためのフローチャートである。
【図6】デルタディスク作成処理の詳細を説明する動作概念図である。
【図7】デルタディスクの作成処理の詳細を説明するためのフローチャートである。
【図8】仮想マシンの作り替えによるデルタディスクの作成処理の動作概念図である。
【図9】ディスクイメージの付け替えによるデルタディスクの作成処理の動作概念図である。
【発明を実施するための形態】
【0016】
本発明は、仮想マシンディスクイメージの重複排除を実行する技術に関するが、特に、既存の仮想マシンをリンクド仮想マシンと呼ばれる特別なイメージに作り替える技術に関するものである。
【0017】
以下、添付図面を参照して本発明の実施形態について説明する。ただし、本実施形態は本発明を実現するための一例に過ぎず、本発明の技術的範囲を限定するものではないことに注意すべきである。また、各図において共通の構成については同一の参照番号が付されている。
【0018】
<スナップショットを用いたVM>
リンクドVMが使用するデルタディスクイメージは、VMのスナップショットを利用して作成される。スナップショットとは、ある瞬間のVMの状態を復元可能な状態で記録したディスクイメージである。以下では、図2及び図3を参照して、スナップショット及びデルタディスクイメージのディスク構成とディスクアクセスの仕組みを説明する。
【0019】
図2は、スナップショットのディスク構成例とディスクアクセスの仕組みを説明するための図である。図2Aは、スナップショットが存在しないVMのディスク構成例を示している。スナップショットが存在しないVMには一つのディスクイメージしかない。VMのディスクアクセス(データの読取りと書き込み)は全てこのディスクイメージに対して行われる。
【0020】
また、図2Bは、スナップショットを作成した場合のVMのディスク構成例を示している。VMのスナップショットは子が親への参照情報をもつディスクイメージのツリーとして構成される。スナップショットの作成が要求されると、仮想化ソフトは現在アクセスしているディスクイメージに読み取り専用権限を設定して保存する。さらに、このディスクイメージを親とした子ディスクイメージを作成する。この子ディスクイメージはログディスクイメージと呼ばれる。ログディスクイメージは、親ディスクイメージへの参照情報を持ち、スナップショット作成以降に変更されたデータを格納する。
【0021】
スナップショット作成以降のVMに対するディスクアクセスは、次のように処理される。まず、データの書き込みは全てログディスクイメージに対して行われる。一方、データの読込みはログディスクイメージ又は親ディスクイメージのいずれかから行われる。すなわち、要求されたデータがログディスクイメージに存在する場合はログディスクイメージから読み込まれ、要求されたデータがログディスクイメージに存在しない場合は、親ディスクイメージから読み込まれる。
【0022】
なお、2つ以上のスナップショットの作成が要求された場合は、仮想化ソフトは現在VMがアクセスしているログディスクイメージを読み取り専用にして保存し、このログディスクイメージを親とした、新しいログディスクイメージを作成する。データの書き込みは常に最新のログディスクイメージに対して行われ、データの読込みは、要求されたデータが見つかるまで子から親方向へディスクイメージのツリーを辿ることで処理される。
【0023】
また、スナップショットからのディスクイメージの復元は、復元したいデータを格納するツリー位置から親方向に存在する全てのログディスクを統合したディスクイメージを作成し、これをVMに読み込ませることで実現される。一方、スナップショットの削除は、削除したいデータを格納するログディスクイメージを親ディスクイメージに「マージ」することで実現される。ここで、「マージ」とは、ログディスクイメージの内容を親ディスクイメージに書き込み、さらにログディスクイメージを削除する処理をいう。
【0024】
ログディスクイメージの親子関係をつくるリンクは、仮想化ソフトウェア(仮想化プログラムとも言う)が提供するAPIを使用することで任意のディスクイメージに付け替えることができる。
【0025】
図3は、デルタディスクイメージのディスク構成とディスクアクセスの仕組みを説明するための図である。リンクドVMは、クローン元VMのディスクイメージツリーを流用したVMである。VMを複製(クローン)して新たにVMを作成する際に、クローン元VMのディスクイメージの子となる、ログディスクイメージだけを持つVMが作成される。本明細書では、リンクドVMにおいて参照するログディスクイメージをデルタディスクイメージと呼ぶこととする。リンクドVMは、クローン元VMとの差分となるディスクイメージしか保持しないため、フルクローンVMと比較して、VMの稼動に必要なストレージ容量を削減することができる。
【0026】
<システム構成>
図4は、本発明の実施形態によるサーバシステム(ディスクイメージ重複排除システム)の概略構成を示す図である。当該サーバシステムは、複数の物理サーバ401と、VM管理サーバ402と、プログラム実行サーバ403と、ストレージ装置404と、を有し、それらが管理用ネットワーク405及びストレージネットワーク406で接続されている。プログラム実行サーバ403は独立して存在する必要は必ずしもなく、その機能はVM管理サーバ402や物理サーバ401に含まれていても良い。また、図4には本発明に関係する構成要素のみが示されているが、物理サーバ、VM管理サーバ、及びプログラム実行サーバは、少なくともコンピュータとして通常有する制御部(CPUやMPU)、キャッシュ、ROM及びRAM等のメモリ、通信用インタフェース(I/F)を有している。VM管理サーバ402は、さらに、管理者が物理サーバ401とストレージ装置404の状況を管理するため、表示装置を有するものである。
【0027】
各物理サーバ401は、VM制御プログラム407と、少なくとも1つの仮想マシン(VM)408を含んでおり、VM制御プログラム407を実行してVM408を動作させる。VM制御プログラム407は、物理サーバ401のハードウェア構成をソフトウェア技術でエミュレートし、任意のハードウェア構成をもつVM408を動作可能にする機能を有している。VM制御プログラム407には、例えばVMware ESX(登録商標)を用いることができる。
【0028】
VM管理サーバ402は、仮想環境管理プログラム409を実行するサーバである。仮想環境管理プログラム409は、VM制御プログラム407とVM408及びストレージ装置404内のファイルやデータを操作する仮想環境管理API(Application Programing Interface)410を提供する機能を有する。仮想環境管理プログラム409には、例えばVMware vCenter Server(登録商標)を用いることができる。
【0029】
なお、仮想環境管理プログラム409は、管理する全てのVM408とディスクイメージ412に、これらを一意に特定するためのパスを設定する。例えば、図4に示す通り、仮想環境管理プログラム409は、VM1には”/Host01/VM01”を設定し、VM1のディスクイメージには”/Host01/VM01.vmdk”を設定する。なお、本実施形態で、ディスクイメージのパスは、ディスクイメージを参照するVM408のパスと拡張子の組み合わせで構成されており、拡張子を取り除くことでディスクイメージのパスからVMのパスが容易に取得できるものとなっている。
【0030】
プログラム実行サーバ403は、本発明の主たる処理を行うディスクイメージ変換プログラム411を実行するサーバである。
【0031】
ストレージ装置404は、ディスクイメージ412や、その他の図示しないVMの構成ファイルを格納する記憶装置である。ディスクイメージ412はVM408毎に存在する。なお、VM構成ファイルには、例えば当該VMが使用するディスクイメージ412を指定する設定ファイルなどがある。
【0032】
<VMディスクイメージの重複排除処理>
以下、本発明のVMディスクイメージの重複排除処理の内容について説明する。VMディスクイメージの重複排除処理に関しては、例えば、プログラム実行サーバ403がディスクイメージ変換プログラム411を実行することで実現している。なお、本実施の形態において、重複排除対象ディスクイメージを保持するVMは、重複排除処理の実行に先立ち稼動しているものとする。また、マスタディスクイメージと重複排除対象ディスクイメージのディスクサイズは同一であるとする。
【0033】
図5は、ディスクイメージ変換プログラム411によるVMディスクイメージ重複排除処理の内容を説明するためのフローチャートである。プログラムはモジュール化したものであっても良い。なお、以降の処理動作の説明では、「プログラム」(「モジュール」と読み替えても良い)を動作主体(主語)として説明を行う場合があるが、プログラムやモジュールは、プロセッサによって実行されることで、定められた処理をメモリ及び通信ポート(通信制御装置)を用いながら行うため、プロセッサを動作主体(主語)とした処理に読み替えても良い。また、プログラムやモジュールを主語として開示された処理は、管理サーバ等の計算機、情報処理装置が行う処理としてもよい。プログラムの一部または全ては専用ハードウェアによって実現されてもよい。また、各種プログラムはプログラム配布サーバや記憶メディアによって各計算機にインストールされてもよい。
【0034】
ディスクイメージ変換プログラム411は、重複排除対象とする複数のディスクイメージのパスのリストと、マスタとして使用するディスクイメージのパスの入力を、VM管理サーバ402の表示装置によって表示されたGUIを介して管理者に要求し、管理者の指定入力によりこれらを取得する(ステップ501)。入力は、例えば、上述のような管理者によるGUI(コンソール)操作によって行われても良いし、予め作成しておいたテキストファイルの読込みなどの方法でも良い。
【0035】
次に、ディスクイメージ変換プログラム411は、ステップ501で取得した重複排除対象ディスクイメージのパスのリストを1行読み込み、重複排除対象ディスクイメージのパスを取得する(ステップ502)。
【0036】
続いて、ディスクイメージ変換プログラム411は、ステップ502で取得した重複排除対象ディスクイメージのパスから拡張子を取り除き、当該重複排除対象ディスクイメージを保持するVM408のパスを取得する(ステップ503)。
【0037】
ディスクイメージ変換プログラム411は、デルタディスクの作成処理を実行し、重複排除対象ディスクイメージのデータ内容を反映したデルタディスクを使用するリンクドVMを作成する(ステップ504)。当該処理の詳細については後述する。
【0038】
また、ディスクイメージ変換プログラム411は、ステップ504で作成したデルタディスクのパスから拡張子を取り除き、リンクドVMのパスを取得する。そして、リンクドVMのパスを引数に仮想環境管理API410を使用して、リンクドVMの電源を入れて起動する(ステップ505)。
【0039】
重複排除対象ディスクイメージのパスのリストに未処理のパスが残っているならば、ディスクイメージ変換プログラム411は、読み込む行を1行進めてステップ502へ処理を移行させる。重複排除対象ディスクイメージのパスのリストの全ての行について処理が完了したら処理を終了する(ステップ506)。
【0040】
<デルタディスク作成処理の詳細>
図6は、デルタディスク作成処理の動作概念図である。デルタディスクの作成処理は、大きく2つの手順に分けられる。図6(1)の処理(以下、処理1という)は、重複排除対象ディスクイメージのスナップショットを作成し、作成したスナップショットとマスタディスクイメージとの差分セクタをデルタディスクに書き込む処理である。図6(2)の処理(以下、処理2という)は、重複排除対象ディスクイメージのスナップショットの取得により作成された、ログディスクイメージのデータをデルタディスクにマージする処理である。これら処理を実行することにより、重複排除対象ディスクイメージと論理的に同じデータを持つデルタディスクイメージが作成される。
【0041】
本発明は、計算量が多く処理に時間がかかる上記処理1を、VMを稼動させたまま実行できる特徴を有している。VMを稼動させたままディスクイメージの重複排除を実現するためには、重複排除処理の前後でのディスクイメージの整合性を担保するために、重複排除処理の実行中にディスクイメージが変更されることを防ぐ必要がある。このため、本発明では、VMのスナップショット機能を利用してディスクイメージの変更を防いでいる。すなわち、読み取り専用のディスクイメージ(重複排除対象スナップショット)を作成し、作成した読み取り専用のディスクイメージに対してのみ重複排除処理を実行している。そして、VMのデータ書き込み先をログディスクイメージに切り替え、重複排除処理中に発生した重複排除対象ディスクイメージに対する変更を、そのログディスクイメージに格納しておき、最終的にそれを反映させる。このようにすることで、VMのサービスは、ログディスクイメージを重複排除後の差分データに反映するときに掛かる時間のみ停止させれば良くなり、サービス停止期間を短縮することが可能となる。
【0042】
なお、本明細書では、重複排除処理を実行する読み取り専用のディスクイメージを、重複排除対象スナップショットと記述する。
【0043】
以下では、デルタディスク作成処理の処理手順を説明する。なお、デルタディスクの作成処理には、VMの作り替えによる作成方法と、ディスクイメージの付け替えによる作成方法の2通りの方法があるが、本実施形態では、まずVMの作り替えによる作成方法について説明し、ディスクイメージの付け替えによる作成方法については後述する。
【0044】
図7は、デルタディスク作成処理の内容を説明するためのフローチャートである。ステップ701〜ステップ707が上記処理1(図6(1)参照)に対応し、ステップ708〜ステップ710が上記処理2(図6(2)参照)に対応する。図8は、ディスクイメージの作り替えによるデルタディスク作成処理の動作概念を示す図である。
【0045】
まず、ディスクイメージ変換プログラム411は、仮想環境管理API410を使用して、重複排除対象のディスクイメージと重複排除対象ディスクイメージを保持するVMの名前を付け替え、パスを変更する(ステップ701)。例えば、図8に示すようにVMのパスを”/Host01/VM01”から”/Host01/VM01_tmp”へ変更し、またディスクイメージのパスを“/Host01/VM01.vmdk”から”/Host01/VM01_tmp.vmdk”に変更する。
【0046】
そして、ディスクイメージ変換プログラム411は、仮想環境管理API410を使用して、ステップ501で取得したマスタディスクイメージを参照するリンクドVMと、リンクドVMが参照するデルタディスクをそれぞれ作成する。なお、デルタディスクとリンクドVMのパスはそれぞれ、ステップ701で名前を付け替える前の重複排除対象ディスクイメージのパスと、重複排除対象ディスクイメージを参照するVMのパスを指定する(ステップ702)。即ち、本例では、”/Host01/VM01”と“/Host01/VM01.vmdk”が指定される。このステップ以降、前述したリンクドVMの仕組みにより、リンクドVMにおけるデータの読込み処理は、デルタディスク又はマスタディスクのいずれかから行われ、リンクドVMにおけるデータの書き込み処理は全てデルタディスクへ行われることになる。
【0047】
続いて、ディスクイメージ変換プログラム411は、VMを稼動させたまま、仮想環境管理API410を使用して、重複排除対象ディスクイメージのスナップショットを取得する。この処理により、重複排除対象ディスクイメージは、読み取り専用権限が設定された重複排除対象スナップショットとログディスクイメージに分離される。(ステップ703)。
【0048】
ディスクイメージ変換プログラム411は、仮想環境管理API410を使用して、マスタディスクイメージと重複排除対象スナップショットから指定セクタ分のデータを読み込み取得する(ステップ704)。
【0049】
さらに、ディスクイメージ変換プログラム411は、ステップ704で取得したマスタディスクイメージと重複排除対象スナップショットのデータ内容を比較する(ステップ705)。そして、データ内容が一致しなかった場合(ステップ705でNo)、処理はステップ706へ進む。データ内容が一致していた場合(ステップ705でYes)、処理はステップ707へ進む。
【0050】
そして、ディスクイメージ変換プログラム411は、ステップ704で取得した重複排除対象スナップショットのデータ内容を、セクタ位置情報と共にステップ702で作成したデルタディスクへ書き込む(ステップ706)。
【0051】
ディスクイメージ変換プログラム411は、マスタディスクイメージ及び重複排除対象スナップショットの全セクタの読込みが完了していないと判断した場合、読込み位置を次の指定セクタ単位に移動させ、処理をステップ704に移行させる。全セクタの読込みが完了した場合は、処理はステップ708へ進む(ステップ707)。
【0052】
ディスクイメージ変換プログラム411は、仮想環境管理API410を使用して、重複排除対象ディスクイメージを保持するVMの電源を落とす(ステップ708)。
【0053】
ディスクイメージ変換プログラム411は、仮想環境管理API410を使用して、ログディスクイメージに格納されたデータを、ステップ702で作成したデルタディスクイメージに書き込む(ステップ709)。この処理により、デルタディスクには、ステップ703でスナップショットが取得されてから、ステップ708で電源が落とされるまでの間に変更されたデータ内容が反映される。なお、本処理は例えば以下のように実施される。まず、ディスクイメージ変換プログラム411が、仮想環境管理API410を使用して、ログディスクイメージのリンクを、ログディスクイメージがデルタディスクイメージの子になるように付け替える。次に、ログディスクイメージをデルタディスクイメージにマージする。ログディスクのマージ処理事態は数秒で終了する処理ではあるが、OSの停止及び再起動を含めると、ステップ709における反映処理は1〜2分掛かる処理となる。ただし、重複排除処理(ステップ701から707)の間中ずっとVMの稼働を停止させた場合(例えば、重複排除処理自体は20分ほどの処理となる)に比べると、VM稼働(サービス)停止時間を極めて短縮することが可能となる。
【0054】
最後に、ディスクイメージ変換プログラム411は、重複排除対象ディスクイメージと、重複排除対象ディスクイメージを保持するVMとを削除して、処理を終了する(ステップ710)。
【0055】
以上、本発明の実施形態の一例を説明した。なお、本実施の形態では、発明の効果を説明するため、重複排除対象ディスクイメージを保持するVMは、重複排除処理の実行に先立ち稼動しているものとしている。しかし、重複排除対象VMが停止されている場合であっても、説明した処理の実行自体は可能である。
【0056】
<変形例>
(1)デルタディスクの作成処理の変形
上述の実施形態において、ステップ504のデルタディスクの作成処理では、リンクドVMを、重複排除対象ディスクイメージを保持するVMとは別に作成している。つまり、VMごと作り変える方法が示されている。
【0057】
しかし、デルタディスクの作成処理は、既存のVMの参照するディスクイメージを付け替える方法でも実施できる。図9に、ディスクイメージの付け替えによるデルタディスクの作成処理の動作概念を示す。この例では、デルタディスクのみを新規作成し、その後、既存のVMの参照先ディスクを作成したデルタディスクに付け替えている。
【0058】
以下にディスクイメージの付け替えによるデルタディスクの作成処理を説明する。なお、各処理ステップは図7とほぼ同じであるため図7との差異のみ説明する。
【0059】
まず、ステップ701で、ディスクイメージ変換プログラム411は、重複排除対象ディスクイメージの名前のみ付け替えてパスを変更する。VMの名前は変更しない。
【0060】
次に、ステップ702で、ディスクイメージ変換プログラム411は、仮想環境管理API410を使用して、ステップ501で取得したマスタディスクイメージを参照するデルタディスクを作成し、これを、重複排除対象ディスクを保持するVM408に追加する。VMへのデルタディスクの追加は、例えば、ストレージ装置に格納されたVMの構成ファイルを更新して行う。デルタディスクのパスは、ステップ701で名前を付け替える前の重複排除対象ディスクのパスを指定する。
【0061】
ステップ710で、ディスクイメージ変換プログラム411は、重複排除対象のディスクイメージを削除して処理を終了する。重複排除対象VMは削除しない。
その他の手順は図7と同じ処理が実行される。
【0062】
(2)差分情報作成の変形例
上述の実施形態において、ステップ704〜ステップ707の差分セクタ情報の作成手順では、指定セクタ数分ずつディスクイメージを読み取ってデータ内容を比較している。
【0063】
しかし、この手順は、仮想化プログラム(仮想ソフトウェア)がマスタディスクイメージと重複排除対象スナップショットとの差分セクタ位置を記録した変更トラックファイルを作成する機能を持ち、変更トラックファイルが予め存在する場合は、以下の手順で実行してもよい。ここで、変更トラックファイルとは、スナップショットを作成した以降にデータが変更された位置を示すインデックス情報のファイルである。この場合、変更位置のみが示されているので、変更内容はインデックスで示される位置を参照することにより得られる。一方、上述のログディスクイメージは、変更されたデータ自体を有するファイルである。両者はスナップショットに対してなされた変更に関する情報であるということで共通しているが、変更内容自体を有しているか否かで異なるものである。
【0064】
まず、ステップ704〜ステップ705では、ディスクイメージ変換プログラム411は、指定セクタ数分ディスクイメージを読み込んでデータを比較する代わりに、重複排除対象ディスクイメージから変更トラックファイルに記録されているセクタ位置のデータを全て読み込む。ここでは、これを変更データと呼ぶ。
【0065】
次に、ステップ706では、ディスクイメージ変換プログラム411は、データ内容が不一致になった重複排除対象のディスクイメージのデータを書き込む代わりに、上記手順で読み込んだ変更データをデルタディスクに書き込む。
なお、ステップ707は省略される。また、その他の手順は図7と同じ手順が実行される。
【0066】
(3)VMの電源シャットダウンに対する変形例
上述の実施形態において、ステップ708では重複排除対象ディスクイメージを使用するVMの電源を落とし、ステップ505ではVMを起動している。
【0067】
しかし、この処理については、重複排除対象ディスクイメージへの書き込みを一時的に遮断及び再開できる処理であれば、別の処理でもよい。例えば、ステップ708でVMの電源を落とす代わりに、VMをサスペンド状態にし、ステップ505でVMを起動する代わりにサスペンド状態からの復旧を行っても良い。同様に、ステップ708でVMの電源を落とす代わりに、VMをハイバネーションし、ステップ505でVMを起動する代わりにハイバネーション状態からの復旧を行っても良い。なお、サスペンド状態では、メモリを通電したままメモリの内容を保持しているので、図8の方法(VMを作り替える方法)に適用される。一方、ハイバネーション状態では、メモリの内容がディスクに書き込まれ、メモリの通電がなくなるので、図8及び図9(VMを付け替える方法)に適用される。
【0068】
<まとめ>
本発明は、仮想マシンイメージを保存するストレージ装置の容量を削減し、空き容量を確保するといった用途に好適である。
【0069】
本発明の実施形態では、まず、管理者が、ストレージ装置内の既存のディスクイメージにおいて、マスタとして使用するマスタディスクイメージと重複排除対象ディスクイメージの指定し、VM管理サーバ(管理計算機)がその入力を受付ける。そして、ディスクイメージ変換プログラムが、重複排除対象ディスクイメージに対応し、指定されたマスタディスクイメージを参照するデルタディスクイメージを新たに作成する。続いて、重複排除対象ディスクイメージを保持するVMを稼動させたまま取得したスナップショットと、マスタディスクイメージとの差分情報を生成し、それをデルタディスクイメージに書き込む。さらに、差分情報の書き込み後にVMを停止させ、重複排除対象ディスクイメージのスナップショット取得以降に変更されたデータ内容を、デルタディスクイメージに書き込む。そして、デルタディスクイメージを仮想マシンに関連付け、重複排除対象ディスクイメージを削除する。
【0070】
このようにすることにより、既存のフルクローンVMをリンクドVMに変換して、VMディスクイメージの重複排除を実現することができ、ストレージ装置の容量を効率よく使用することができるようになる。また、本発明では、仮想化ソフトの提供機能を用いて実現するため、仮想化ソフトがサポートするストレージ装置であれば、ストレージ装置の物理構成に依存せずに本実施形態の機能を導入することができる。また、重複排除対象ディスクイメージのスナップショットを作成し(重複排除対象ディスクイメージを書き込み禁止状態にする)、スナップショット作成後(書込み禁止状態にした後)の当該重複対象ディスクイメージに対する変更に関する情報を、ログディスクイメージや変更トラックファイルに書き込むようにしているので、計算時間のかかる重複排除処理を、VMを稼動させたまま実行するため、重複排除の実行に伴うVMの停止時間を短縮できる。
【0071】
差分情報を生成してデルタディスクイメージに書き込む際、マスタディスクイメージと重複排除対象スナップショットとで異なるデータを格納している差分セクタ情報を取得する。そして、取得した差分セクタ情報をデルタディスクイメージに書き込む。より具体的には、マスタディスクイメージと重複排除対象スナップショットのデータ内容を比較し、データ内容が不一致の場合に、当該不一致のデータが格納されているセクタ位置と、重複排除対象スナップショットのデータ内容と、を差分セクタ情報として取得する。
【0072】
この差分情報取得処理の別の態様として、次のように処理しても良い。つまり、マスタディスクイメージと重複排除対象スナップショットの差分セクタ位置を記録した、予め作成された変更トラックファイルを読み込む。そして、変更トラックファイルに記録されたセクタ位置と、重複排除対象スナップショットの当該セクタ位置におけるデータ内容と、を差分セクタ情報として取得する。
【0073】
また、重複排除処理のスナップショット取得以降に変更されたデータ内容をデルタディスクイメージに書き込むときには、指定された重複排除対象ディスクイメージに対する書き込みを一時的に遮断する。遮断には、仮想マシンの電源をシャットダウンする、或いはサスペンド状態にするといった方法がとれる。これにより、VMと重複排除対象のディスクイメージの内容の整合性を担保することが可能となる。
【0074】
なお、本発明は、実施形態の機能を実現するソフトウェアのプログラムコードによっても実現できる。この場合、プログラムコードを記録した記憶媒体をシステム或は装置に提供し、そのシステム或は装置のコンピュータ(又はCPUやMPU)が記憶媒体に格納されたプログラムコードを読み出す。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコード自体、及びそれを記憶した記憶媒体は本発明を構成することになる。このようなプログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、CD−ROM、DVD−ROM、ハードディスク、光ディスク、光磁気ディスク、CD−R、磁気テープ、不揮発性のメモリカード、ROMなどが用いられる。
【0075】
また、プログラムコードの指示に基づき、コンピュータ上で稼動しているOS(オペレーティングシステム)などが実際の処理の一部又は全部を行い、その処理によって前述した実施の形態の機能が実現されるようにしてもよい。さらに、記憶媒体から読み出されたプログラムコードが、コンピュータ上のメモリに書きこまれた後、そのプログラムコードの指示に基づき、コンピュータのCPUなどが実際の処理の一部又は全部を行い、その処理によって前述した実施の形態の機能が実現されるようにしてもよい。
【0076】
また、実施の形態の機能を実現するソフトウェアのプログラムコードを、ネットワークを介して配信することにより、それをシステム又は装置のハードディスクやメモリ等の記憶手段又はCD−RW、CD−R等の記憶媒体に格納し、使用時にそのシステム又は装置のコンピュータ(又はCPUやMPU)が当該記憶手段や当該記憶媒体に格納されたプログラムコードを読み出して実行するようにしても良い。
【0077】
また、本発明は、実施形態そのままに限定されるものではなく、実施段階では、その要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【0078】
さらに、上述の実施形態において、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。全ての構成が相互に接続されていても良い。
【符号の説明】
【0079】
401 物理サーバ
402 VM管理サーバ
403 プログラム実行サーバ
408 VM
409 仮想環境管理プログラム
410 仮想環境管理API
411 ディスクイメージ変換プログラム
412 ディスクイメージ

【特許請求の範囲】
【請求項1】
複数の仮想マシンを含む物理サーバと、前記複数の仮想マシンに対応するディスクイメージを格納するストレージ装置と、前記仮想マシン及び前記ディスクイメージに対して重複排除処理を実行する処理実行計算機と、を有するサーバシステムの管理方法であって、
前記処理実行計算機が、
前記ストレージ装置内の既存のディスクイメージにおいて、マスタとして使用するマスタディスクイメージと重複排除対象ディスクイメージの指定入力を受付け、
前記重複排除対象ディスクイメージに対応し、前記指定されたマスタディスクイメージを参照するデルタディスクイメージを作成し、
前記指示入力に応答して、前記重複排除対象ディスクイメージを書き込み禁止状態にし、当該書き込み禁止状態にした後の前記重複排除対象ディスクイメージに対する変更に関する情報を管理するための変更管理情報と、を作成し、
前記マスタディスクイメージと前記重複排除対象スナップショットの差分情報を生成し、
前記生成した差分情報を前記デルタディスクイメージに書き込み、
前記指定された重複排除対象ディスクイメージに対する書き込みを一時的に遮断した後に、前記変更管理情報を用いて取得される、前記重複排除対象ディスクに対する変更内容を前記デルタディスクイメージに書き込み、
前記デルタディスクイメージを前記仮想マシンに関連付け、前記重複排除対象ディスクイメージを削除することを特徴とする管理方法。
【請求項2】
請求項1において、
前記処理実行計算機は、前記重複排除対象ディスクイメージに対応する仮想マシンをコピーして、リンクド仮想マシンを生成し、当該リンクド仮想マシンに前記デルタディスクイメージを関連付け、前記重複排除対象ディスクイメージ及びそれに対応する仮想マシンを削除することを特徴とする管理方法。
【請求項3】
請求項1において、
前記処理実行計算機は、前記デルタディスクイメージを前記重複排除対象ディスクイメージに対応する仮想マシンの参照先に設定し、前記重複排除対象ディスクイメージを削除することを特徴とする管理方法。
【請求項4】
請求項1において、
前記処理実行計算機は、前記差分情報を生成して前記デルタディスクイメージに書き込む際に、前記マスタディスクイメージと前記書込み禁止状態の重複排除対象ディスクイメージとで異なるデータを格納している差分セクタ情報を取得し、当該取得した差分セクタ情報を前記デルタディスクイメージに書き込むことを特徴とする管理方法。
【請求項5】
請求項4において、
前記処理実行計算機は、前記マスタディスクイメージと前記書き込み禁止状態の重複排除対象ディスクイメージとのデータ内容を比較し、データ内容が不一致の場合に、当該不一致のデータが格納されているセクタ位置と、前記書込み禁止状態の重複排除対象ディスクイメージのデータ内容と、を前記差分セクタ情報として取得することを特徴とする管理方法。
【請求項6】
請求項4において、
前記変更管理情報は、前記書込み禁止状態後のデータ内容を格納するログディスクイメージであり、
前記処理実行計算機は、前記指定された重複排除対象ディスクイメージに対する書き込みを一時的に遮断した後に、前記ログディスクイメージを前記デルタディスクイメージに書き込むことを特徴とする管理方法。
【請求項7】
請求項4において、
前記変更管理情報は、前記マスタディスクイメージと前記書き込み禁止状態の重複排除対象ディスクイメージの差分セクタ位置を記録した変更トラックファイルであり、
前記処理実行計算機は、前記変更トラックファイルを読み込み、当該変更トラックファイルに記録されたセクタ位置と、前記書込み禁止状態の重複排除対象ディスクイメージの当該セクタ位置におけるデータ内容と、を前記差分セクタ情報として取得することを特徴とする管理方法。
【請求項8】
物理サーバに含まれる複数の仮想マシンと、ストレージ装置が格納する、前記複数の仮想マシンに対応するディスクイメージに対して重複排除処理を実行する管理計算機であって、
所定の演算を実行するプロセッサと、前記物理サーバと通信するためのインタフェースと、を有し、
前記プロセッサは、
前記ストレージ装置内の既存のディスクイメージにおいて、マスタとして使用するマスタディスクイメージと重複排除対象ディスクイメージの指定入力を受付け、
前記重複排除対象ディスクイメージに対応し、前記指定されたマスタディスクイメージを参照するデルタディスクイメージを作成し、
前記重複排除対象ディスクイメージの状態を記録した重複排除対象スナップショットと、スナップショット取得以降の前記重複排除対象ディスクイメージに対する変更に関する情報を管理するための変更管理情報と、を作成し、
前記マスタディスクイメージと前記重複排除対象スナップショットの差分情報を生成し、
前記生成した差分情報を前記デルタディスクイメージに書き込み、
前記指定された重複排除対象ディスクイメージに対する書き込みを一時的に遮断した後に、前記変更管理情報を用いて取得される、前記スナップショット取得以降の前記重複排除対象ディスクに対する変更内容を前記デルタディスクイメージに書き込み、
前記デルタディスクイメージを前記仮想マシンに関連付け、前記重複排除対象ディスクイメージを削除することを特徴とする管理計算機。
【請求項9】
請求項8において、
前記プロセッサは、前記重複排除対象ディスクイメージに対応する仮想マシンをコピーして、リンクド仮想マシンを生成し、当該リンクド仮想マシンに前記デルタディスクイメージを関連付け、前記重複排除対象ディスクイメージ及びそれに対応する仮想マシンを削除することを特徴とする管理計算機。
【請求項10】
請求項8において、
前記プロセッサは、前記デルタディスクイメージを前記重複排除対象ディスクイメージに対応する仮想マシンの参照先に設定し、前記重複排除対象ディスクイメージを削除することを特徴とする管理計算機。
【請求項11】
請求項8において、
前記プロセッサは、前記差分情報を生成して前記デルタディスクイメージに書き込む際に、前記マスタディスクイメージと前記重複排除対象スナップショットとで異なるデータを格納している差分セクタ情報を取得し、当該取得した差分セクタ情報を前記デルタディスクイメージに書き込むことを特徴とする管理計算機。
【請求項12】
請求項11において、
前記プロセッサは、前記マスタディスクイメージと前記重複排除対象スナップショットとのデータ内容を比較し、データ内容が不一致の場合に、当該不一致のデータが格納されているセクタ位置と、前記重複排除対象スナップショットのデータ内容と、を前記差分セクタ情報として取得することを特徴とする管理計算機。
【請求項13】
請求項11において、
前記変更管理情報は、前記スナップショット取得以降のデータ内容を格納するログディスクイメージであり、
前記プロセッサは、前記指定された重複排除対象ディスクイメージに対する書き込みを一時的に遮断した後に、前記ログディスクイメージを前記デルタディスクイメージに書き込むことを特徴とする管理計算機。
【請求項14】
請求項11において、
前記変更管理情報は、前記マスタディスクイメージと前記重複排除対象スナップショットの差分セクタ位置を記録した変更トラックファイルであり、
前記プロセッサは、前記変更トラックファイルを読み込み、当該変更トラックファイルに記録されたセクタ位置と、前記重複排除対象スナップショットの当該セクタ位置におけるデータ内容と、を前記差分セクタ情報として取得することを特徴とする管理計算機。
【請求項15】
計算機に、物理サーバに含まれる複数の仮想マシンに対応するディスクイメージに対して重複排除処理を実行させるためのプログラムであって、
前記ストレージ装置内の既存のディスクイメージにおいて、マスタとして使用するマスタディスクイメージと重複排除対象ディスクイメージの指定入力を受付ける機能と、
前記重複排除対象ディスクイメージに対応し、前記指定されたマスタディスクイメージを参照するデルタディスクイメージを作成する機能と、
前記重複排除対象ディスクイメージの状態を記録した重複排除対象スナップショットと、スナップショット取得以降の前記重複排除対象ディスクイメージに対する変更に関する情報を管理するための変更管理情報と、を作成する機能と、
前記マスタディスクイメージと前記重複排除対象スナップショットの差分情報を生成機能と、
前記生成した差分情報を前記デルタディスクイメージに書き込む機能と、
前記指定された重複排除対象ディスクイメージに対する書き込みを一時的に遮断した後に、前記変更管理情報を用いて取得される、前記スナップショット取得以降の前記重複排除対象ディスクに対する変更内容を前記デルタディスクイメージに書き込む機能と、
前記デルタディスクイメージを前記仮想マシンに関連付け、前記重複排除対象ディスクイメージを削除する機能と、を前記計算機に実行させるためのプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate