(57)【特許請求の範囲】
【請求項１】
仮想サーバのスナップショットを管理するための管理情報を格納するスナップショット付加情報テーブルと、
前記仮想サーバと業務との関係を記憶する業務構成テーブルと、
所定の業務に関係する複数の仮想サーバの設定情報間の制約条件を管理する設定制約テーブルと、
を記憶する管理サーバであって、
（１）ロールバック要求に応答して、前記業務構成テーブルを参照しつつ、前記スナップショット付加情報テーブルから前記所定の業務に関係する複数の仮想サーバの前記スナップショットの管理情報を取得し、
（２）前記取得した前記スナップショットの管理情報を参照して、前記所定の業務に関係し、前記設定制約テーブルの前記制約条件を満足する複数の仮想サーバのロールバックに用いるスナップショットを決定し、
（３）前記決定したスナップショットにより前記所定の業務に関係する複数の仮想サーバをロールバックする、
ことを特徴とする管理サーバ。
【請求項２】
前記管理サーバは、前記仮想サーバの設定変更情報を記憶する設定変更テーブルと、前記仮想サーバが満たすべきポリシを格納するポリシテーブルと、を記憶し、
前記スナップショットの決定に際して、前記設定変更テーブル及び前記ポリシテーブルを参照し、前記ポリシに適合するスナップショットを決定する、
ことを特徴とする請求項１記載の管理サーバ。
【請求項３】
仮想サーバのスナップショットを管理するための管理情報を格納するスナップショット付加情報テーブルと、
前記仮想サーバと業務との関係を記憶する業務構成テーブルと、
所定の業務に関係する複数の仮想サーバの設定情報間の制約条件を管理する設定制約テーブルと、
を記憶する管理サーバで実行されるプログラムであって、
（１）ロールバック要求に応答して、前記業務構成テーブルを参照しつつ、前記スナップショット付加情報テーブルから前記所定の業務に関係する複数の仮想サーバの前記スナップショットの管理情報を取得するステップと、
（２）前記取得した前記スナップショットの管理情報を参照して、前記所定の業務に関係し、前記設定制約テーブルの前記制約条件を満足する複数の仮想サーバのロールバックに用いるスナップショットを決定するステップと、
（３）前記決定したスナップショットにより前記所定の業務に関係する複数の仮想サーバをロールバックするステップと、
を含むプログラム。
【請求項４】
前記管理サーバは、前記仮想サーバの設定変更情報を記憶する設定変更テーブルと、前記仮想サーバが満たすべきポリシを格納するポリシテーブルと、を記憶し、
前記プログラムは、前記スナップショットの決定に際して、前記設定変更テーブル及び前記ポリシテーブルを参照し、前記ポリシに適合するスナップショットを決定するステップをさらに含む、請求項３記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想サーバシステムの障害回復技術に属する。
【背景技術】
【０００２】
一般に、業務システムには、設定ミスや設定の不整合、ソフトウェアコンポーネントの故障などにより、システムに障害が発生する。これに対し、過去の状態を記憶したスナップショットを用いてシステムをロールバックすることで、過去の状態に瞬時に戻すことができる。特に、仮想サーバのスナップショットを用いることにより、仮想サーバ単位に過去の状態に戻すことができ、仮想サーバに発生した障害を瞬時に回復することができる。
【０００３】
スナップショットを使ったロールバックによりシステム障害を回復する方法は、特許文献１などの先行技術が存在する。特許文献１では、システムに障害を検知した場合、スナップショットを用いて自動的にシステムをロールバックすることで、システム障害を回復する方法が開示されている。
【０００４】
障害が発生した場合、一般に、システム管理者は、障害の原因を分析して、障害の原因を回復するための対策を決定する。これは、障害に対して最も効果的な対処決定ができるようにするためであり、障害の再発を防止するためでもある。しかし、業務システムによっては業務システムのダウンタイムを最小限にすることが強く求められる場合もある。システム管理者が障害の原因を短時間で特定できない場合、原因分析をすることなくスナップショットを用いて障害のなかった過去の状態に戻すことで障害を回復した方が有効な場合も多い。
【０００５】
また、業務システムに発生した障害の原因を分析するためには、業務システムを構成するアプリケーションやデータベースに特化した知識が必要とされるが、仮想サーバのスナップショットを使った障害回復方法は、アプリケーションやデータベースなどの業務システムを構成するコンポーネントに特化した知識がシステム管理者になくても、業務システムに発生した障害をシステム管理者は回復できる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】US7080279（B2）「AUTOMIC ROLLBACK」
【発明の概要】
【発明が解決しようとする課題】
【０００７】
特許文献１の方法によれば、スナップショットのリストアなどにより、業務システムを過去の状態に戻すと、過去の状態が現在のポリシに合致しないなど不整合が生じてしまう可能性がある。
【０００８】
特に、内部統制ポリシを満たすことが要求されている業務システムにおいて、当該内部統制ポリシが変更されると、変更前のスナップショットを用いてロールバックすると内部統制ポリシをシステムが満たしていない状態になるという問題がある。
【０００９】
また、常に最新のセキュリティパッチを適用するというセキュリティポリシが要求される業務システムにおいて、過去の状態にリストアしてしまうとスナップショットを記憶してから現在までにあてたセキュリティパッチが当ててない状態に戻されてしまうため、セキュリティレベル低下の問題である。このような業務システムは、リストア直後に、セキュリティパッチを適用する作業が必要になり、直ぐに業務システムを再開できないという課題がある。
【００１０】
さらに、ある業務システムが複数の仮想サーバからなるシステムを構成していたとき、そのうちひとつの仮想サーバをスナップショットによってロールバックしたことにより、設定情報の不整合が生じて新たな障害を発生させるおそれがあり、2次障害が発生する可能性がある。
【００１１】
そこで本発明の目的は、業務システムを現状のポリシに合致した形でロールバックする方法及びその方法を実行する仮想サーバシステムを提供することにある。
【課題を解決するための手段】
【００１２】
本発明は、次のような態様により課題を解決する。本発明の態様は、仮想サーバのスナップショットを管理するための管理情報を格納するスナップショット付加情報テーブルと、仮想サーバの設定変更情報を記憶する設定変更テーブルと、管理対象の仮想サーバが満たすべきポリシを格納するポリシテーブルとを用いて、管理サーバが、ロールバック要求に応答して、スナップショット付加情報テーブルから仮想サーバのスナップショットの管理情報を取得し、設定変更テーブルから設定変更情報を取得し、設定変更情報から、ポリシテーブルに格納されたポリシに合った設定変更情報を選択し、取得したスナップショットの管理情報を参照して、ロールバックに用いるスナップショットを決定し、決定したスナップショットと選択した設定変更情報とにより仮想サーバをロールバックする。
【００１３】
本発明の他の態様は、仮想サーバのスナップショットを管理するための管理情報を格納するスナップショット付加情報テーブルと、管理対象の仮想サーバが満たすべきポリシを格納するポリシテーブルとを用いて、管理サーバは、他の仮想サーバを生成し、スナップショット付加情報テーブルの管理情報を参照して、仮想サーバのスナップショットを他の仮想サーバに読み込み、仮想サーバの設定変更の検知に応答して、検知した設定変更がポリシテーブルに格納されたポリシに合っているならば、他の仮想サーバに検知した設定変更を適用し、設定変更を適用した他の仮想サーバのスナップショットを記憶し、ロールバック要求に応答して、仮想サーバに記憶した他の仮想サーバのスナップショットを読み込む。
【００１４】
本発明のさらに他の態様は、複数の仮想サーバのスナップショットの管理情報を管理するスナップショット付加情報テーブルと、管理対象の仮想サーバが満たすべきポリシを格納するポリシテーブルと、複数の仮想サーバの業務構成情報を管理する業務構成テーブルと、複数の仮想サーバの設定変更情報を記憶する設定変更テーブルとを有し、管理サーバは、ロールバック要求に応答して、業務構成テーブルから業務構成情報を読込み、業務構成情報からロールバック要求された仮想サーバの属する業務に係る仮想サーバ一覧を取得し、スナップショット付加情報テーブルから、仮想サーバ一覧に含まれる各仮想サーバのスナップショットの履歴情報を取得し、設定変更テーブルから、仮想サーバ一覧に含まれる各仮想サーバの設定変更情報を取得し、取得した設定変更情報から、前記ポリシテーブルに格納されたポリシに合った設定変更情報を選択し、仮想サーバ一覧に含まれる各仮想サーバのロールバックに用いるスナップショットを決定し、決定したスナップショットと選択した設定変更情報とにより仮想サーバ一覧に含まれる各仮想サーバをロールバックする。
【発明の効果】
【００１５】
本発明によれば、仮想サーバのスナップショットによるリストアと、ポリシに合致した設定変更を選択的に適用するロールフォワードによりポリシに合致した形でロールバックできる。
【図面の簡単な説明】
【００１６】
【図１】情報処理システムの構成を示すブロック図である。
【図２】スナップショット付加情報テーブルである。
【図３】設定変更テーブルである。
【図４】ポリシテーブルである。
【図５】設定変更制約テーブルである。
【図６】設定制約テーブルである。
【図７】業務構成テーブルである。
【図８】アプリケーション構成テーブルである。
【図９】計算機のハードウエア構成図である。
【図１０】実施例1における情報処理システムの全体処理を示すフロー図である。
【図１１】リストア処理を示すフロー図である。
【図１２】実施例2における情報処理システムの全体処理を示すフロー図である。
【図１３】実施例3における全体処理を示すフロー図である。
【図１４】実施例4におけるロールバック処理の全体処理を示すフロー図である。
【図１５】実施例5におけるロールバック処理の全体処理を示すフロー図である。
【図１６】実施例6における全体処理を示すフロー図である。
【発明を実施するための形態】
【００１７】
以下、本発明の実施例を、図面に基づいて詳細に説明する。
【実施例１】
【００１８】
図１は、実施例1の情報処理システムの構成を示すブロック図である。本実施例の情報処理システムは、運用管理サーバ１００、仮想サーバ制御装置１０１、業務実行サーバ１０２及び運用管理端末１０４を有し、それらは、ネットワーク９０９を介して相互に接続している。
【００１９】
運用管理サーバ１００は、後述するロールバック処理を含む業務実行サーバ１０２を運用管理する計算機である。運用管理サーバ１００は、ポリシ管理部１０３、ロールバック制御部１０５、設定変更管理部１０６、設定配布部１０７、構成管理部１０８、送受信部１０９及び記憶部１１０を有する。
【００２０】
ポリシ管理部１０３は、運用管理サーバ１００の管理対象が満たすべきポリシを管理する処理部である。管理対象とは、運用管理サーバ１００の運用管理する対象である。本実施形態においては、業務実行サーバ１０２や第１仮想サーバ１１７Ａ、第２仮想サーバ１１７Ｂである。ポリシとは、管理対象が満たすべき条件や、条件と当該条件を満たした場合に実行する処理の組み合わせである。例えば、後述するポリシテーブル400に示すように、最新のセキュリティパッチが常にあたった状態にあること、といったようなポリシである。ポリシ管理部103は、記憶部110に記憶された後述するポリシテーブル400を管理する。ポリシを要求するメッセージを受信すると、ポリシテーブル400を読み込み、当該要求メッセージで特定された情報を応答する。また、ポリシを記憶するメッセージを受信すると歩入りしテーブル400を読み込み、当該メッセージで特定されたポリシをポリシテーブル400に記憶する。
【００２１】
ロールバック制御部１０５は、仮想サーバ制御装置１０１を介して、業務実行サーバ１０２上で稼働する第１仮想サーバ１１７Ａや第２仮想サーバ１１７Ｂをロールバックする。
【００２２】
設定変更管理部１０６は、業務実行サーバ１０２や第１仮想サーバ１１７Ａや第２仮想サーバ１１７Ｂなどの運用管理対象となる計算機の設定情報の変更情報を管理する。設定変更管理部１０６は、業務実行サーバ１０２や第１仮想サーバ１１７Ａや第２仮想サーバ１１７Ｂなどの運用管理対象となる計算機の設定情報の変更を検知して、設定変更テーブル３００に検知した設定変更情報を記憶する。また、設定変更情報を読み出す要求メッセージを受信すると、設定変更テーブル３００から設定変更情報を読み出し、応答する。
【００２３】
設定配布部１０７は、業務実行サーバ１０２、第１仮想サーバ１１７Ａ、第２仮想サーバ１１７Ｂなどの運用管理対象となる計算機の設定情報を配布する。例えば、設定配布部１０７がある設定情報を送受信部１０９と送受信部１２０Ａを介して設定管理部１１９Ａに送信すると、設定管理部１１９Ａは設定記憶部１１８Ａを受信した設定情報に書き換える。
【００２４】
構成管理部１０８は、業務実行サーバ１０２、第１仮想サーバ、第２仮想サーバなどの運用管理対象となる計算機の業務構成情報やアプリケーション構成情報を管理する。業務構成情報とは、業務システムと、この業務システムを構成する計算機等の構成要素との対応関係情報である。アプリケーション構成情報とは、計算機等の構成要素とこの構成要素に含まれるアプリケーションとの対応関係情報である。
【００２５】
送受信部１０９は、運用管理サーバ１００の通信処理を実行する。ネットワーク９０９を介して仮想サーバ制御装置１０１、業務実行サーバ１０２、又は運用管理端末１０４から受信した情報を、送受信部１０９は、受信した情報によって特定される運用管理サーバの各処理部に振り分ける。また、運用管理サーバ１００の各処理部が仮想サーバ制御装置１０１、業務実行サーバ１０２、運用管理端末１０４に送信する情報を、送受信部１０９はネットワークを介して送信する。
【００２６】
記憶部１１０は、運用管理サーバ１００の運用管理処理を実現するのに必要な情報を記憶する記憶部である。記憶部１１０は、設定変更テーブル３００、ポリシテーブル４００、設定変更制約テーブル５００、設定制約テーブル６００、業務構成テーブル７００、及びアプリケーション構成テーブル８００を備えている。
【００２７】
設定変更テーブル３００は、運用管理サーバ１００が管理する第１仮想サーバや第２仮想サーバといった管理対象の設定変更を特定する情報を記憶するテーブルである。ここで、設定変更を特定する情報とは、管理対象の設定情報や構成情報を変更する処理を特定する情報である。例えば、設定情報値の変更や、セキュリティパッチなどのモジュールの適用、アプリケーションの追加・削除、システム構成の変更などを特定する情報である。
【００２８】
図３に設定変更テーブル３００を示す。設定変更テーブル３００は、各行に設定変更を特定する情報を記憶している。設定変更テーブル３００は、設定変更識別子欄３０１、時刻欄３０２、変更対象欄３０３、種類欄３０４および設定変更欄３０５を備えている。設定変更識別子欄３０１は、設定変更を識別する識別情報を記憶する。時刻欄３０２は、設定変更をした時刻を特定する情報を記憶する。変更対象欄３０３は、設定変更の変更対象を特定する情報を記憶する。種類欄３０４は、設定変更の種別を特定する情報を記憶する。設定変更欄３０５は、設定変更の処理を特定する情報を記憶する。
【００２９】
設定変更テーブル３００は、システム管理者が運用管理端末１０４を介して、設定変更テーブル３００に示す情報を入力し、設定変更管理部１０６は、入力された情報を記憶部１１０の設定変更テーブル３００に記憶する。また、設定変更管理部１０６が、設定管理部１１９Ａや設定管理部１１９Ｂに記憶される設定情報に変更があったことを検知して、検知した設定変更情報を設定変更テーブル３００に記憶する。
【００３０】
ポリシテーブル４００は、運用管理サーバ１００が管理する第１仮想サーバや第２仮想サーバといった管理対象が満たすべきポリシを記憶するテーブルである。ここで、ポリシとは、例えば、セキュリティポリシや、サービスレベルを表すポリシなどである。図４にポリシテーブル４００を示す。ポリシテーブル４００は、各行にポリシを記憶している。ポリシテーブル４００は、ポリシ識別子欄４０１とポリシ定義欄４０２とを備えている。ポリシ識別子欄４０１は、ポリシを特定する識別情報を記憶する。ポリシ定義欄４０２は、ポリシの内容を特定する情報を記憶する。
【００３１】
設定変更制約テーブル４００は、システム管理者が運用管理端末１０４を介して、ポリシテーブル４００に示す情報を入力し、設定変更管理部１０６は、入力された情報を、記憶部１１０のポリシテーブル４００に記憶する。
【００３２】
設定変更制約テーブル５００は、設定変更テーブル３００に記憶した各設定変更の制約条件を記憶するテーブルである。図５に設定変更制約テーブル５００を示す。各行に設定変更の制約条件を特定する情報を記憶している。設定変更制約テーブル５００は、識別子欄５０１、設定変更欄５０２及び制約情報欄５０３を備えている。識別子欄５０１は、設定変更の制約条件を特定する識別情報を記憶する。設定変更欄５０２は、設定変更の制約条件の対象となる設定変更を特定する識別子情報を記憶し、この識別子情報によって、設定変更テーブル３００の設定変更識別子欄３０１で特定される設定変更と対応づけられる。制約情報欄５０３は、設定変更の制約条件の内容を特定する情報を記憶している。
【００３３】
設定変更制約テーブル５００は、システム管理者が運用管理端末１０４を介して、設定制約テーブル６００に示す情報を入力し、設定変更管理部１０６は、入力された情報を、記憶部１１０の設定変更制約テーブル５００に記憶する。また、設定管理部１１９Ａや設定管理部１１９Ｂに記憶される設定情報、設定変更テーブル３００に記憶された設定変更情報、または設定変更制約テーブル５００に記憶された設定変更制約情報から得られる設定変更情報の制約条件を、設定変更制約テーブル５００に記憶する。さらに、設定情報間の制約条件に変更があった場合、設定変更管理部１０６はこの変更を検知して、検知した設定情報間の制約条件に応じて設定制約テーブル５００を更新する。
【００３４】
設定制約テーブル６００は、設定情報値の制約条件を特定する情報を記憶するテーブルである。図６に設定制約テーブル６００を示す。設定制約テーブル６００は、各行に設定情報値の制約条件を各行に記憶している。設定制約テーブル６００は、識別子欄６０１と、設定情報欄６０２と、制約情報欄６０３と、を備えている。識別子欄６０１は、設定情報値の制約条件を特定する識別情報を記憶する。設定情報欄６０２は、設定情報値の制約条件の対象を特定する情報を記憶する。制約情報欄６０３は、設定情報値の制約条件の制約条件を特定する情報を記憶する。
【００３５】
設定制約テーブル６００は、システム管理者が運用管理端末１０４を介して、設定制約テーブル６００に示す情報を入力し、設定変更管理部１０６は、入力された情報を、記憶部１１０の設定制約テーブル６００に記憶する。また、設定管理部１１９Ａや設定管理部１１９Ｂに記憶される設定情報から得られる設定制約情報の制約条件を、設定制約テーブル６００に記憶する。さらに、設定情報間の制約条件に変更があった場合は設定制約テーブル６００に記憶する情報を更新する。
【００３６】
業務構成テーブル７００は、業務システムを構成する仮想サーバなどの構成要素の対応関係を記憶している。図７に業務構成テーブル７００を示す。業務構成テーブル７００は、各行に業務システムと当該業務システムを構成する仮想サーバとの対応関係を記憶している。業務構成テーブル７００は、業務システム欄７０１と仮想サーバ欄７０２とを備えている。業務システム欄７０１は、業務システムを特定する識別情報を記憶する。業務システムとは、販売や生産、会計、物流など会社を運営するために必要な業務処理を実行するシステムであり、代表的なものに財務管理システム、給与管理システム、オンライン購買システム、営業管理システムなどがある。業務システムが、仮想サーバ上で稼働している場合、単一の仮想サーバで業務システムを構成していることもあれば、複数の仮想サーバが協調して一つの業務サーバを構成していることもある。仮想サーバ欄７０２は、仮想サーバを特定する識別情報を記憶する。
【００３７】
業務構成テーブル７００は、システム管理者が運用管理端末１０４を介して、業務構成テーブル７００に示す情報を入力し、構成管理部１０８は、受信した情報を、記憶部１１０の業務構成テーブル７００に記憶する。また、設定管理部１１９Ａや設定管理部１１９Ｂに記憶される設定情報から得られる業務システムと仮想サーバとの対応関係を、業務構成テーブル７００に記憶してもよい。さらに、業務構成に変更に応じて業務構成テーブル７００を更新する。
【００３８】
アプリケーション構成テーブル８００は、仮想サーバ上で稼働するアプリケーションの構成情報を記憶するテーブルである。図８にアプリケーション構成テーブル８００を示す。アプリケーション構成テーブル８００は、仮想サーバとアプリケーションとの対応関係を各行に記憶している。アプリケーション構成テーブル８００は、サーバ欄８０１とアプリケーション欄８０２とを備えている。サーバ欄８０１は、仮想サーバを特定する識別情報を記憶している。アプリケーション欄８０２は、アプリケーションを特定する識別情報を記憶している。
【００３９】
アプリケーション構成テーブル８００では、サーバ欄８０１で特定される仮想サーバにアプリケーション欄８０２で特定されるアプリケーションが動作していることを示している。アプリケーション構成テーブル８００は、システム管理者が運用管理端末１０４を介して、アプリケーション構成テーブル８００に示す情報を入力し、構成管理部１０８は、入力された情報を、記憶部１１０のアプリケーション構成テーブル８００に記憶する。また、設定管理部１１９Ａや設定管理部１１９Ｂに記憶される設定情報から得られる業務システムと仮想サーバとの対応関係を、アプリケーション構成テーブル８００に記憶してもよい。さらに、アプリケーション構成に変更があった場合はアプリケーション構成テーブル８００を更新する。
【００４０】
運用管理サーバ１００は、図９に示すハードウエア構成の計算機９０1により実現する。ロールバック制御部１０５、設定変更管理部１０６、設定配布部１０７、および構成管理部１０８は、外部記憶装置９０４に記憶されたプログラムであり、外部記憶装置インターフェース905を介して主記憶装置９０３上に読み込まれ、ＣＰＵ９０２で実行される。送受信部１０９は、通信インターフェース９０６及びこれを制御する通信制御プログラムにより実現される。記憶部１１０は、主記憶装置９０３及び／又は外部記憶装置９０４により実現される。
【００４１】
仮想サーバ制御装置１０１、業務実行サーバ１０２及び運用管理端末１０４のハードウエア構成も、規模や性能の差異がある場合もあるが、図９に示す計算機９０１の構成である。
【００４２】
図１では、運用管理サーバ１００、仮想サーバ制御装置１０１、業務実行サーバ１０２、及び運用管理端末１０４の各々を異なる計算機として示しているが、これらの各々を複数の計算機で構成しても良いし、これらのいくつかを纏めて１台の計算機で構成しても良い。
【００４３】
図１に説明を戻し、仮想サーバ制御装置１０１について説明する。仮想サーバ制御装置１０１は、仮想サーバを制御する装置であり、後述する第１仮想サーバ１１７Ａや第２仮想サーバ１１７Ｂといった仮想サーバを制御する。仮想サーバ制御装置１０１は、スナップショット制御部１１２、スナップショット管理部１１３、送受信部１１４及びスナップショット記憶部１１５を備えている。
【００４４】
スナップショット制御部１１２は、仮想サーバのスナップショットをとる処理や記憶してあるスナップショットを仮想サーバにリストアして、スナップショットをとった状態に戻す処理を実行する。例えば、スナップショット制御部１１２は、第１仮想サーバ１１７Ａや第２仮想サーバ１１７Ｂのスナップショットを後述するスナップショット管理部１１３を介して後述するスナップショット記憶部１１５に記憶する処理を実行したり、スナップショットを後述するスナップショット管理部１１３を介して後述するスナップショット記憶部１１５から読み出して第１仮想サーバ１１７Ａや第２仮想サーバ１１７Ｂをリストアする処理を実行したりする。
【００４５】
スナップショット管理部１１３は、後述する記憶部１１５に記憶するスナップショットを記憶する処理を実行したり、スナップショットをリストアする処理を実行したりする。
【００４６】
送受信部１１４は、仮想サーバ制御装置１０１の通信処理を実行し、ネットワーク９０９を介して運用管理サーバ１００、業務実行サーバ１０２、又は運用管理端末１０４と情報を送受信する。
【００４７】
スナップショット記憶部１１５は、第１仮想サーバ１１７Ａや第２仮想サーバ１１７Ｂなどの仮想サーバのスナップショットを記憶する。ある仮想サーバの複数世代のスナップショットを記憶しておいてもよい。
【００４８】
記憶部１１６は、仮想サーバのスナップショットの付加情報を記憶する記憶部である。付加情報とは、どの仮想サーバのスナップショットかを特定する情報と、スナップショットを記憶した時刻を特定する情報と、スナップショット記憶部１１５に記憶されるスナップショットを特定する情報である。
【００４９】
記憶部１１６は、仮想サーバのスナップショットを管理するため付加情報をスナップショット付加情報テーブル２００に記憶している。図２にスナップショット付加情報テーブル２００を示す。スナップショット付加情報テーブル２００は、各行にスナップショット毎の付加情報を記憶する。スナップショット付加情報テーブル２００は、時刻欄２０１、仮想サーバ欄２０２及びスナップショット欄２０３を備えている。時刻欄２０１は、スナップショットを記録した時刻を記憶する。仮想サーバ欄２０２は、スナップショットをとった対象の仮想サーバを特定する識別情報を記憶する。スナップショット欄２０３は、スナップショット記憶部１１５に記憶されたスナップショットを特定する識別情報を記憶する。例えば、図２に示すスナップショット付加情報テーブル２００の一行目は、「2007年12月13日10時00分00秒」に、「仮想サーバ#1」で特定される仮想サーバの、「スナップショット#1」で特定されるスナップショットがスナップショット記憶部１１５に記憶されていることを示している。
【００５０】
仮想サーバ制御装置１０１は、図９に示す計算機９０１により実現可能である。仮想サーバ制御部１１１と、スナップショット制御部１１２と、スナップショット管理部１１３は、外部記憶装置９０４に記憶したプログラムを主記憶装置９０３上に読み込み、ＣＰＵ９０２で実行することにより実現可能である。また、送受信部１１４は、通信インターフェース９０６により実現可能である。また、スナップショット記憶部１１５と、記憶部１１６は、外部記憶装置９０４により実現可能である。
【００５１】
業務実行サーバ１０２は、運用管理サーバ１００が管理する対象の業務システムが稼働する計算機である。業務実行サーバ１０２と業務システムとは一対一に限定されない。すなわち、業務実行サーバ１０２上で一つの業務システムが稼働してもよいし、業務実行サーバ１０２上で稼働する仮想サーバ毎に業務システムを動作させてもよい。また、複数の業務実行サーバ１０２により業務システムを構成してもよい。
【００５２】
業務実行サーバ１０２は、第１仮想サーバ１１７Ａや第２仮想サーバ１１７Ｂを備えている。第１仮想サーバ１１７Ａは、業務実行サーバ１０２上で稼働する仮想サーバであり、設定記憶部１１８Ａ、設定管理部１１９Ａ及び送受信部１２０Ａを備えている。設定記憶部１１８Ａは、第１仮想サーバ１１７Ａの設定情報を記憶する。設定管理部１１９Ａは、設定記憶部１１８Ａに記憶された第１仮想サーバ１１７Ａの設定情報の設定処理や変更処理を実行する。送受信部１２０Ａは、設定記憶部１１８Ａや設定管理部１１９Ａと、運用管理サーバ１００、仮想サーバ制御装置１０１又は運用管理端末１０４との通信処理を実行する。第２仮想サーバ１１７Ｂは、業務実行サーバ１０２上で稼働する仮想サーバであり、設定記憶部１１８Ｂ、設定管理部１１９Ｂ及び送受信部１２０Ｂの処理部を備えている。これらの処理部の動作は、第１仮想サーバ１１７Ａと同様である。
【００５３】
なお、業務実行サーバ１０２上で稼働する仮想サーバは第１仮想サーバ１１７Ａと第２仮想サーバ１１７Ｂとに限定されない。すなわち、第１仮想サーバ１１７Ａや第２仮想サーバ１１７Ｂは同一の仮想サーバであってもよいし、第１仮想サーバ１１７Ａや第２仮想サーバ１１７Ｂの他に、第３の仮想サーバが稼働していてもよい。業務実行サーバ１０２は、図９に示す計算機９０１により実現可能である。
【００５４】
設定管理部１１９Ａと、設定管理部１１９Ｂと、送受信部１２０Ａと、送受信部１２０Ｂは、外部記憶装置９０４に記憶したプログラムを主記憶装置９０３上に読み込み、ＣＰＵ９０２で実行することにより実現可能である。
【００５５】
なお、送受信部１２０Ａと送受信部１２０Ｂは、通信インターフェース９０６でも実現可能である。また、記憶部１１８Ａと記憶部１１８Ｂは、外部記憶装置９０４により実現可能である。
【００５６】
運用管理端末１０４は、運用管理サーバ１００への入力処理や運用管理サーバ１００からの出力処理を制御する計算機である。システム管理者は、運用管理端末１０４を介して、運用管理サーバ１００に、第１仮想サーバ１１７Ａや第２仮想サーバ１１７Ｂをロールバックする要求メッセージを送信する。また、運用管理端末１０４を介して、スナップショット制御部１１２に第１仮想サーバ１１７Ａや第２仮想サーバ１１７Ｂのスナップショットを記憶する要求メッセージを送信する。さらに、運用管理端末１０４を介して、運用管理サーバ１００に、第1仮想サーバ１１７Ａや第2仮想サーバ１１７の設定情報を変更する要求メッセージを送信する。また、運用管理端末１０４を介して、直接第１仮想サーバ１１７Ａや第２仮想サーバ１１７Ｂに、設定変更を要求するメッセージを送信する。
【００５７】
運用管理端末１０４は、入力部１２１と、出力部１２２と、送受信部１２３と、通信処理部１２４と、を備えている。入力部１２１はシステム管理者が入力した、前述の各種要求メッセージなどに関わる情報を入力し、出力部１２２はシステム管理者に情報を出力する。
【００５８】
送受信部１２３は、通信処理部１２４などの運用管理端末の各処理部から受信した情報をネットワークに送信したり、ネットワークから受信した情報を各処理部に送信したりする送受信処理を実行する処理部である。通信処理部１２４は、運用管理サーバ１００との通信処理を実行する。運用管理端末１０４は、図９に示す計算機９０１により実現可能である。通信処理部１２４は、外部記憶装置９０４に記憶したプログラムを主記憶装置９０３上に読み込み、ＣＰＵ９０２で実行することにより実現可能である。また、送受信部１２３は、通信インターフェース９０６で実現可能である。入力部１２１は、入力装置９０７により実現可能である。入力装置９０７とは、例えば、マウスなどのポインティングデバイスや、キーボードなどである。また、出力部１２２は、出力装置９０８により実現可能である。出力装置９０８とは、例えば、モニタなどである。
【００５９】
図１０は、本実施例における情報処理システムの全体処理を示すフロー図である。
【００６０】
（１）ロールバック制御部１０５はシステム管理者からロールバック要求メッセージを受信し、受信したメッセージから仮想サーバVとロールバック先時刻Ｔ１を取得する(ステップ１００１)。
なお、ロールバック制御部１０５が仮想サーバＶの障害を検知して、障害発生前の時刻Ｔ１を特定する処理でステップ１００１の処理を置き換えてもよい。
【００６１】
（２）ロールバック制御部１０５は、スナップショット管理部１１３を介して、記憶部１１６からスナップショット付加情報テーブル２００を読み込む(ステップ１００２)。
【００６２】
（３）ロールバック制御部１０５は、設定変更管理部１０６から設定変更テーブル３００を読み込む(ステップ１００３)。
【００６３】
（４）ロールバック制御部１０５は、ポリシ管理部１０３からポリシテーブル４００を読み込む(ステップ１００４)。
【００６４】
（５）ロールバック制御部１０５は、スナップショット付加情報テーブル２００と設定変更テーブル３００とを元に、ポリシテーブル４００を満たした形で仮想サーバVをロールバック先時刻Ｔ１に戻すロールバック処理Ｆを決定する(ステップ１００５)。ここで、ロールバック処理Ｆは、スナップショットＳによる仮想サーバＶのロールバックと、仮想サーバＶへの設定変更の適用とを特定し、その順序を特定した情報である。ステップ１００５のロールバック処理Ｆを特定する処理の詳細は、図１１を用いて後述する。
【００６５】
（６）ロールバック制御部１０５は、ロールバック処理Ｆで特定したスナップショットＳを、スナップショット管理部１１３を介して読み込み、スナップショット制御部を介して仮想サーバＶをスナップショットＳを用いてリストアする(ステップ１００６)。
【００６６】
具体的には、次のような処理になる。ここで、仮想サーバＶが第１仮想サーバ１１７Ａとする。ロールバック制御部１０５は、第１仮想サーバ１１７ＡとスナップショットＳを特定しリストア要求メッセージを送受信部１０９を通してネットワーク９０９を介してスナップショット制御部１１２に送信する。リストア要求メッセージを受信したスナップショット制御部１１２は、スナップショット記憶部１１５からスナップショットＳを取得し、スナップショットＳを用いて第1仮想サーバのリストアを実行する。リストア処理は、送受信部１１４を介して、ネットワーク９０９を通して処理する。
【００６７】
（７）ロールバック制御部１０５は設定配布部１０７を介して、ロールバック処理Ｆで特定した設定変更Ｃを用いて仮想サーバＶをロールフォワードする(ステップ１００７)。
【００６８】
具体的には、次のような処理になる。ここで、仮想サーバＶが第１仮想サーバとする。ロールバック制御部１０５は、第１仮想サーバと設定変更Ｃを特定した設定変更要求メッセージを送受信部１０９を通してネットワーク９０９を介して第１仮想サーバ１１７Ａに送信する。送受信部１２０Ａを介して当該メッセージを受信した第１仮想サーバ１１７Ａの設定管理部１１９Ａは、設定記憶部１１８Ａに設定変更Ｃを適用する。
【００６９】
図１１は、ステップ１００５のリストア処理を詳細に説明した処理のフロー図である。
【００７０】
（１）スナップショット付加情報テーブル200を検索し、仮想サーバ欄202が仮想サーバＶと一致し時刻欄201がＴ１に最も近い時刻を記憶する行の時刻欄201をT2とし、スナップショット欄203の情報をスナップショットＳとする(ステップ１１０１)。
【００７１】
ステップ1101はロールバックに用いるスナップショットを特定する処理である。例えば、仮想サーバＶが「仮想サーバ＃１」であり、時刻Ｔ１が「2008/2/14 11:00:00」であるとする。ロールバック制御部105は、スナップショット付加テーブル200を検索して、仮想サーバ欄202が「仮想サーバ＃１」で、時刻Ｔ１以前の時刻で直近の「2008/1/13」が時刻欄201に記憶された行のスナップショット欄203を参照する。スナップショット欄203に記憶された「スナップショット＃４」をスナップショットＳとして記憶する。また、時刻欄201に記憶された「2008/01/13 12:00:00」を時刻T2とする。
【００７２】
（２）設定変更テーブル300を検索し、変更対象欄303が仮想サーバＶと一致し、時刻欄302がT1からT2までの時刻が記憶する行の設定変更識別子欄301に記憶された情報のセットを設定変更Ｃ１とする(ステップ１１０２)。
【００７３】
ステップ1102は、ロールバックに用いる設定変更を特定する処理である。例えば、仮想サーバＶが「仮想サーバ＃１」であり、時刻T1が「2008/2/14 11:00:00」であり、時刻T2が「2008/01/13 12:00:00」とする。ロールバック制御部105は、設定変更テーブル300を検索して、変更対象欄303に「仮想サーバ#1」が記憶され、時刻欄302に時刻T1から時刻T2までの時刻の行を特定する。そして、当該行の設定変更識別子欄301に記憶された「変更#3」「変更#6」「変更#7」「変更#9」「変更#10」を設定変更C1として記憶する。
【００７４】
また、ここで、ロールバック制御部105は、仮想サーバＶに属する変更対象を変更対象欄303に記憶する行を特定し、設定変更Cに追加してもよい。仮想サーバＶに属する変更対象とは、例えば、仮想サーバV上で稼働するアプリケーションである。
【００７５】
仮想サーバＶに属する変更対象の特定は、具体的には、次のような処理になる。ロールバック制御部105が、構成管理部108を通して記憶部110より、アプリケーション構成管理テーブル800を読み込み、サーバ欄801に仮想サーバVが記憶された行を検索し、当該行のアプリケーション欄802に記憶されたアプリケーションを特定する情報をアプリケーションAとする。そして、ロールバック制御部105は、設定変更テーブル300を検索し、時刻欄302に時刻T1から時刻T2まで時刻が記憶され、変更対象欄303にアプリケーションAが記憶された行を特定する。当該行の設定変更識別子欄301に記憶された情報を特定し、当該情報を設定変更C1に追加する。
【００７６】
例えば、仮想サーバＶが「仮想サーバ＃１」であり、時刻T1が「2008/2/14 11:00:00」であり、時刻T2が「2008/01/13 12:00:00」とする。ロールバック制御部105は、アプリケーション構成管理テーブル800を検索し、サーバ欄801に「仮想サーバ#1」が記憶された行を検索し、当該行のアプリケーション欄802に記憶されたアプリケーションを特定する情報「アプリケーション#1」「アプリケーション#2」をアプリケーションAとする。そして、ロールバック制御部105は、設定変更テーブル300を検索し、時刻欄302に「2008/2/14 11:00:00」から「2008/01/13 12:00:00」までの時刻が記憶され、変更対象欄303に「アプリケーション#1」「アプリケーション#2」が記憶された行を特定する。当該行の設定変更識別子欄301に記憶された情報を特定し、当該情報「変更#8」を設定変更C1「変更#3」「変更#6」「変更#7」「変更#9」「変更#10」に追加する。
【００７７】
（３）設定変更Ｃ１に記憶された設定変更識別子に相当する設定変更のうち、ポリシテーブル400に記憶された各行のポリシ定義に合致する設定変更をＣ２とする。また、設定変更Ｃ１に属し設定変更Ｃ２に属さない設定変更をＣ３とする(ステップ１１０３)。
【００７８】
ポリシテーブル400に格納されたポリシに合った設定変更C2を設定変更C1から決定する。設定変更C2の決定方法は、例えば、下記の方法がある。ただし、これらに限定しない。まず、第１の方法を説明する。ステップ1103において、ロールバック制御部105は、ポリシテーブル400に記憶された全てのポリシに合致し、かつ最も少ない設定変更数の設定変更C2を特定する。具体的な処理は次のようになる。例えば、設置変更C1が「変更#3」「変更#6」「変更#7」「変更#8」「変更#9」「変更#10」であったとする。ポリシテーブル400に記憶された「ポリシ#1」には「最新のセキュリティパッチが適用されていること」とあるため、ロールバック制御部105は、設定変更C1で識別される設定変更を設定変更識別子欄301にもつ行を設定変更テーブル300から検索し、当該行の種類欄304が「セキュリティパッチ適用」となっている行を抽出し、その設定変更識別子欄301に記憶された「変更#7」「変更#8」「変更#9」を設定変更C2とする。
【００７９】
なお、ここで、「変更#6」は、ポリシを満たす場合に直接関係しないが、「変更#8」の前提となる変更であるため、設定変更C2に追加して「変更#6」「変更#7」「変更#8」「変更#9」を設定変更C2としてもよい。
【００８０】
そして、ポリシテーブル400に記憶された全てのポリシについて上記処理を実行して設定変更C2を特定する。
【００８１】
上記第１の方法で「変更#6」「変更#7」「変更#8」「変更#9」を設定変更C2とする場合において、ロールバック制御部105は、さらに、設定変更C1に属し、設定変更C2に属さない設定変更C3を特定し、設定変更C2を適用した後に、設定変更C3を適用してもよい。
【００８２】
次に、第2の方法を説明する。先ほどの方法とは逆に、「変更#6」も「変更#8」も設定変更C2に含めず「変更#8」「変更#9」を設定変更C2とする。設定変更制約テーブル500によると、「変更#6」はアプリケーションのインストールという変更対象の増減に関する設定変更であり、「変更#8」は「変更#6」に関する設定変更であるためである。
【００８３】
具体的には次のような処理になる。例えば、設置変更C1が「変更#3」「変更#7」「変更#8」「変更#9」「変更#10」であったとする。ロールバック制御部105は、設定変更C１に属する各設定変更が前提となる設定変更がされているかを確認する。例えば、ロールバック制御部105は、設定変更制約テーブル503を参照し、「条件#3」より「変更#8」が「変更#6」が前提になっていることを特定する。そして、設定変更C1に「変更#6」が属するかを判定し、属さないと判定された場合は「変更#8」が設定変更不要だとして設定変更C１から「変更#8」を除外した「変更#3」「変更#7」「変更#9」「変更#10」を設定変更Ｃ２として特定する。
【００８４】
なお、ステップ1103は、第１の方法、第２の方法に限定せず、いずれの方法であってもよい。いずれの方法をステップ1103で採用するかは、例えば、ポリシテーブル400に記憶し、当該記憶された方法をロールバック制御部105が読み込み、当該方法によりステップ1103を実行してもよい。
【００８５】
以上に説明した本実施例は、上記に示したものに限定されない。例えば、仮想サーバVとロールバック先の時刻T1とを特定するロールバック要求をロールバック制御部105が受信してロールバック処理を開始する他に、ロールバック制御部105が仮想サーバVの障害を検知して、ロールバック先の時刻T1を決定して、ロールバック処理を開始してもよい。
【００８６】
例えば、ロールバック先の時刻T1の決定方法は次のような処理になる。ロールバック制御部105は、設定変更テーブル300に、変更対象欄303に仮想サーバＶと記憶されており時刻欄302に障害の発生時刻T4の直前の時刻または同時刻T3を記憶する行を特定する。時刻T3よりも前の時刻をロールバック先の時刻T1として決定する。
【００８７】
なお、ここで、当該特定した行で識別される設定変更が、それ以前におこなった設定変更と一連の設定変更となっており不可分の関係にある場合は、当該一連の設定変更前の時刻を特定し、ロールバック先の時刻T1として決定する。例えば、「変更#13」のみがロールフォワードする設定変更として特定されたとする。このとき、設定変更制約テーブル500の「条件#6」より「変更#12」「変更#13」は不可分でるため、ロールバック制御部は、「変更#12」と「変更#13」それぞれの時刻欄302に記憶された以前の時刻をロールバック先の時刻T1として決定する。このような処理を行うことにより、一連の設定変更の途中にロールバックすることを防止できる。また、ロールバック後に一連の設定変更ができないことにより障害が発生することを防止できる。さらに、ロールバック後の続きの一連の設定変更をシステム管理者が再設定する作業量を減らすことができる。
【００８８】
以上説明したように、本実施例では、仮想サーバのスナップショットを管理するための管理情報を格納するスナップショット付加情報テーブル200、仮想サーバの設定変更情報を記憶する設定変更テーブル300、及び管理対象の前記仮想サーバが満たすべきポリシを格納するポリシテーブル400を用いて、ロールバック要求に応答して、スナップショット付加情報テーブル200からスナップショットの管理情報を取得し、設定変更テーブル300から設定変更情報を取得し、設定変更情報から、ポリシテーブル400に格納されたポリシに合った設定変更情報を選択し、スナップショットの管理情報を参照して、ロールバックに用いるスナップショットを決定し、決定したスナップショットと選択した設定変更情報とにより仮想サーバをロールバックする。 本実施例によれば、仮想サーバのスナップショットによるリストアと、ポリシに合致した設定変更を選択的に適用するロールフォワードにより、ポリシに合致した形で仮想サーバをロールバックすることができる。
【実施例２】
【００８９】
本実施例は、仮想サーバのリストアに、あらかじめポリシで定義した設定変更を適用したスナップショットを用いることで、ロールバック完了直後にポリシを満たす状態で業務を可能とする方法である。
【００９０】
ここでは、第１の仮想サーバにポリシに合致する設定変更があるたびに第２の仮想サーバにより第１の仮想サーバのスナップショットを読み込み当該変更処理を適用しスナップショットを記憶する処理を実行し、第１の仮想サーバをロールバックする際に当該スナップショットを読み込むことで、これを実現する。
【００９１】
図１２は、本実施例における情報処理システムの全体処理を示すフロー図である。
【００９２】
（１）ロールバック制御部105はポリシ管理部103を通して記憶部110からポリシテーブル400を読み込む(ステップ１２０１)。
【００９３】
（２）ロールバック制御部105は、仮想サーバＸにポリシテーブル400に記憶されたポリシＳに合致する設定変更Ｃがあったことを検知する(ステップ１２０２)。
【００９４】
例えば、セキュリティパッチSPを適用する設定変更が仮想サーバ#1にあったとき、ロールバック制御部105は、ポリシテーブル400に記憶されたポリシ#1に合致する設定変更が仮想サーバ#1にあったとして、これを検知する。具体的には、設定変更があったとき、まず当該設定変更を設定変更テーブル300に新たな行として追加する。次に、当該行の種類欄304を参照し、ポリシ定義部402に記憶したポリシに合致するか判定する。判定の結果、合致した場合は、ポリシに合致する設定変更があったとして、当該設定変更を設定変更Cとして記憶する。合致しない場合は、当該設定変更を記憶せず処理を終了する。
【００９５】
ステップ1202において、ロールバック制御部105は、仮想サーバXと、設定変更Cをそれぞれ記憶する。
【００９６】
（３）ロールバック制御部105はスナップショット管理部113を通して記憶部116からスナップショット付加情報テーブル200を読み込む(ステップ１２０３)。
【００９７】
（４）ロールバック制御部105は、スナップショット付加情報テーブル200からスナップショットS1を特定し、スナップショット制御部111を介してスナップショットS1を用いて仮想サーバYをロールバックする(ステップ１２０４)。
【００９８】
ステップ1204におけるスナップショットS１を特定するとは、スナップショット付加情報テーブル200に記憶された仮想サーバXに関するスナップショットを特定することである。具体的には、次のような処理である。仮想サーバ#1にポリシに合致する設定変更があったとすると、スナップショット付加情報テーブル200を検索し、仮想サーバ欄202に仮想サーバ#1が記憶された行を特定し、当該行のスナップショット欄203に記憶された情報をスナップショットS1として記憶する。
【００９９】
なお、複数のスナップショットが特定された場合は、それぞれのスナップショットについてステップ1204以降の処理をするものとする。また、複数のスナップショットが特定された場合は、そのうち直近のスナップショットのみについてステップ1204の処理をしてもよい。また、ポリシテーブル400に記憶したポリシに応じて当該複数のスナップショットのうちポリシに合致するスナップショットにのみステップ1204の処理をしてもよい。
【０１００】
また、ステップ1204においてスナップショットS1を用いたロールバックをする仮想サーバYは、ステップ1202における仮想サーバXと異なる仮想サーバである。仮想サーバYは、ステップ1204において新たに起動してもよいし、既に起動している仮想サーバの中から特定してもよい。
【０１０１】
さらに、仮想サーバＹが稼働する業務実行サーバ１０２は、仮想サーバXが稼働する業務実行サーバ１０２と同じでもよいし、異なっていてもよい。また、異なる場合において、仮想サーバYの稼働する業務実行サーバ１０２をスナップショット記憶部１１５と物理的に近くであれば、ネットワークのオーバーヘッドなどを少なくすることができ、ロールバック処理を早く終わらせることができる可能性がある。また、本実施例において、仮想サーバＹをロールバック制御部１０５が特定するに際して、スナップショット記憶部１１５と物理的な距離が近い業務実行サーバ１０２上で稼働する仮想サーバを仮想サーバＹとして特定してもよい。また、スナップショット記憶部115や、スナップショット記憶部115を記憶した外部記憶装置904と同一装置上に仮想サーバYを稼働させてもよい。
【０１０２】
また、スナップショット記憶部を実現する外部記憶装置９０４や、外部記憶装置インターフェース９０５、通信インターフェース９０６や、ネットワーク９０９の構成情報や稼働情報を参照したりして、ロールバック制御部１０５が迅速にロールバック処理を実行できる仮想サーバYを特定することもできる。ここでいう構成情報とは、上記インターフェースの通信速度や、通信方式などに関する情報であり、稼働情報とは、上記インターフェースなどが利用状況である。
【０１０３】
ここでの処理を仮想サーバXが仮想サーバ#1として具体的に説明すると、スナップショット負荷情報テーブル200を検索して、仮想サーバ欄202を検索して仮想サーバ#1が記憶されている行を特定し、当該行のスナップショット欄203に記憶されたスナップショット#1とスナップショット#4とをスナップショットS１とする。仮想サーバ#1と同じ構成の仮想サーバである仮想サーバ#4と仮想サーバ#5とを新たに起動する。次に、仮想サーバ#4をスナップショット#1を用いてロールバックし、仮想サーバ#5をスナップショット#4を用いてロールバックする。
【０１０４】
ここで、仮想サーバ#1が図1の第１仮想サーバ117Aに相当する仮想サーバとすると、仮想サーバ#4と仮想サーバ#5をそれぞれ第２仮想サーバ117Bに相当する仮想サーバという位置づけの仮想サーバとする。仮想サーバ#4と仮想サーバ#5とは、異なる仮想サーバでもよいし、同じ仮想サーバであってもよい。ただし、同じ仮想サーバの場合は、スナップショット#1とスナップショット#4のどちらか一方をステップ1204からステップ1206までの処理を実行し完了させてからもう一方についてステップ1204からステップ1206までの処理を実行し完了させる必要がある。
【０１０５】
（５）ロールバック制御部105は、設定配布部107を介して仮想サーバＹに設定変更Ｃを適用してロールフォワードする(ステップ１２０５)。
ここでの処理を仮想サーバXが仮想サーバ#1としスナップショットS1をスナップショット#1とスナップショット#4とし、仮想サーバYをスナップショット#1とスナップショット#4と対応させてそれぞれ仮想サーバ#4と仮想サーバ#５とし、設定変更CをセキュリティパッチSPの適用として、具体的に説明する。ロールバック制御部105は、設定配布部107を介して、仮想サーバ#4にセキュリティパッチSPを適用する。また、同様に設定配布部107を介して、仮想サーバ#5にセキュリティパッチSPを適用する。
【０１０６】
なお、図示してないが、設定変更テーブル300に新たな列を設け、スナップショットに設定変更を適用したかが判定できるフラグ情報を記憶できるようにしてもよい。例えば、当該列をスナップショット適用フラグ欄とし、当該欄に記憶するフラグ情報としてスナップショットに設定変更を適用してない場合「Ｆ」とし、適用した場合「Ｔ」とする。そうすると、ステップ1205において、ロールバック制御部は、設定変更管理部106を介して、設定変更テーブル300を検索し、設定変更Cが記憶された行のスナップショット適用フラグ欄を「Ｆ」から「Ｔ」に変更する。スナップショット適用フラグ欄を設けることによって、後述するステップ1210で仮想サーバXをロールバックした後、ポリシに合致しなかった個別の設定変更を適用する際に、既に適用された設定変更Cを除外して適用できたり、既に適用された設定変更Cと同時に設定できない設定変更を適用から除外できる。
【０１０７】
（６）ロールバック制御部105は、スナップショット制御部112を介して、仮想サーバＹのスナップショットS2を記憶する(ステップ１２０６)。
【０１０８】
ステップ1206において、ロールバック制御部105は、スナップショット管理部113を通して、スナップショット記憶部115にスナップショットS2を記憶し、記憶部106のスナップショット付加情報テーブル200にスナップショットS2の付加情報を記憶する。
【０１０９】
スナップショットS2の付加情報の記憶とは、スナップショット付加情報テーブル200に記憶されたスナップショットS1の付加情報を上書きしてもよいし、新たな行を追加してスナップショットS2の付加情報を記憶してもよい。いずれの方法にせよ、負荷情報として、仮想サーバ欄202には、仮想サーバXを特定する情報を記憶し、スナップショット欄203にはスナップショットS2を特定する方法を記憶する。これにより、スナップショットS2は、仮想サーバXのスナップショットS1に設定変更Cが適用されたスナップショットとして記憶されている。
【０１１０】
ステップ1206の処理を仮想サーバXが仮想サーバ#1としスナップショットS1をスナップショット#1とスナップショット#4とし、仮想サーバYをスナップショット#1とスナップショット#4と対応させてそれぞれ仮想サーバ#4と仮想サーバ#５として、具体的に説明する。なお、ここでは上書きする例を説明する。ロールバック制御部115は、スナップショット制御部112を介して、仮想サーバ#4のスナップショット記憶し、スナップショット#6としてスナップショット記憶部115に記憶する。仮想サーバ#5のスナップショット記憶し、スナップショット#7としてスナップショット記憶部115に記憶する。また、ロールバック制御部115は、スナップショット付加情報テーブル200を検索し、スナップショット欄203にスナップショット#1が記憶された行のスナップショット欄203をスナップショット#6という文字列で置き換える。また、スナップショット負荷情報テーブル200を検索し、スナップショット欄203にスナップショット#4が記憶された行のスナップショット欄203をスナップショット#7という文字列で置き換える。さらに、ロールバック制御部105は、スナップショット制御部112を介して、スナップショット#1とスナップショット#4を削除する。
【０１１１】
（７）ロールバック制御部115はシステム管理者からロールバック要求メッセージを受信し、当該メッセージから仮想サーバＸとロールバック先の時刻である時刻Ｔ１を取得する(ステップ１２０７)。
【０１１２】
ロールバック先の時刻T1は、システム管理者が仮想サーバXをロールバックさせようとしている過去の時刻である。ロールバック御部105は、当該時刻T1における仮想サーバXの状態に戻す。ただし、当該時刻T1における状態そのものではなく、時刻T1以降に設定されたポリシに合致する設定変更は適用されている。
【０１１３】
なお、ステップ1207は、ロールバック要求メッセージをシステム管理者から受信するだけに限定されず、例えば、ロールバック制御部115が、仮想サーバＸに障害が発生したことを検知し、当該障害が発生する直前の時刻としてロールバック先時刻T1を特定するとしてもよい。障害が発生する直前の時刻とは、例えば、障害が発生する直前に設定変更があった場合は、当該設定変更をする直前の時刻である。当該時刻を特定する際、設定変更テーブル300を検索し、障害の発生原因となった設定変更が記憶された行を特定し、当該行の時刻欄302に記憶された時刻を障害の発生時刻とする。
【０１１４】
（８）ロールバック制御部105はスナップショット管理部113から記憶部116に記憶されたスナップショット付加情報テーブル200を読み込む(ステップ１２０８)。
【０１１５】
（９）ロールバック制御部105はスナップショット付加情報テーブル200を元に、仮想サーバＸを時刻Ｔ１に戻すロールバック処理Ｆを決定する(ステップ１２０９)。
【０１１６】
ステップ1209の処理を仮想サーバXが仮想サーバ#1とし、時刻T1を2008/01/13として、具体的に説明する。ロールバック制御部105は、スナップショット付加情報テーブル200を検索して、仮想サーバ欄202に仮想サーバ#1が記憶され、時刻欄201に2008/1/13以前の直近の時刻が記憶された行を特定し、当該行のスナップショット欄203を参照すると、スナップショット#7として記憶されている。そのため、ロールバック処理Fとして、スナップショット#7を用いてロールバックすると決定する。
【０１１７】
（１０）ロールバック制御部は、ロールバック処理Ｆで特定したスナップショットS2をスナップショット管理部を介して読み込み、スナップショット制御部を介して仮想サーバＶ１をスナップショットS2を用いてリストアする(ステップ１２１０)。
【０１１８】
ステップ1210の処理を仮想サーバXが仮想サーバ#1とし、ロールバック処理Fをスナップショット#7を用いてロールバックするとして、具体的に説明する。ロールバック制御部105は、スナップショット管理部113を介して、スナップショット#7を読み込み、スナップショット制御部111を介して、仮想サーバ#1をスナップショット#7を用いてリストアする。それにより、仮想サーバ#1をロールバックすることができる。
【０１１９】
以上説明したように、本実施例では、第１及び第２の仮想サーバのスナップショットを管理するための情報を格納するスナップショット付加情報テーブル200、及び管理対象の第１の仮想サーバが満たすべきポリシを格納するポリシテーブル300を用いて、第２の仮想サーバを生成し、スナップショット付加情報テーブル200の管理情報を参照して、第１の仮想サーバのスナップショットを第２の仮想サーバに読み込み、第１の仮想サーバの設定変更の検知に応答して、検知した設定変更がポリシテーブル300に格納されたポリシに合っているならば、第２の仮想サーバに検知した設定変更を適用し、設定変更を適用した第２の仮想サーバのスナップショットを記憶し、ロールバック要求に応答して、第１の仮想サーバに記憶した第２の仮想サーバのスナップショットを読み込む。
【実施例３】
【０１２０】
本実施例は、仮想サーバのロールバック直後にポリシを満たした形で業務システムの再開する方法の第３の実現方法である。ここでは、あらかじめ定義したポリシに合致する設定変更処理が完了した直後に仮想サーバのスナップショットを記憶することにより実現する。
【０１２１】
図１３は、本実施例の全体処理フローを示している。
【０１２２】
（１）ロールバック制御部はポリシ管理部からポリシ情報Ｐを読み込む(ステップ１３０１)。
【０１２３】
（２）ロールバック制御部は、仮想サーバＸにポリシＳに合致する設定変更Ｃがあったことを検知する(ステップ１３０２)。
【０１２４】
（３）ロールバック制御部は、仮想サーバＸのI/Oを監視し、設定変更Ｃが反映されたか否かを判定する(ステップ１３０３)。
【０１２５】
ここでいう、仮想サーバXのI/Oとは、例えば、仮想サーバXに到着した要求メッセージであってもよい。また、ネットワークのパケットやディスク読み込み・書き込み要求であってもよい。
【０１２６】
（４）ロールバック制御部は、設定変更Ｃが反映されたと判定した場合は、スナップショット制御部を介して、仮想サーバＸのスナップショットを記憶する(ステップ１３０４)。
【０１２７】
（５）以降の処理は、ステップ１２０８〜ステップ１２１０と同様である。
【０１２８】
以上説明したように、本実施例では、実施例２における仮想サーバの設定変更の検知を、仮想サーバの設定変更の後、仮想サーバへのリクエストが所定のリクエスト件数が達したことの検知とする。
【実施例４】
【０１２９】
本発明の第４の実施例は、仮想サーバのロールバック直後に障害なく業務システムを再開する方法である。ここでは、同一業務システムを構成する仮想サーバを同一時刻に記憶したスナップショットを用いてロールバックして業務システム単位のロールバックを実現し、障害が発生することを防止する方法を示す。
【０１３０】
図１４は、本実施例のロールバック処理の全体処理フローを示している。ここでは、同一時刻に記憶したスナップショットは、設定情報間に整合性があると仮定して、同一業務システムを構成する仮想サーバのそれぞれを同一時刻に記憶したスナップショットを用いてロールバックすることにより、業務システムをロールバックする処理を示す。
【０１３１】
（１）ロールバック制御部１０５は、構成管理部１０８を介して業務構成テーブル７００を読み込み、仮想サーバV1と同一業務システムを構成する仮想サーバV2を特定する(ステップ１４０１)。
【０１３２】
具体的な処理は次のような処理となる。ロールバック制御部１０５は、業務構成テーブル７００を検索し、仮想サーバ欄７０２が仮想サーバＶ１となる行の業務システム欄７０１に記憶された業務システムを業務システムＧ１とする。さらに、ロールバック制御部１０５は、業務構成テーブル７００を検索して、業務システム欄７０１に業務システムＧ１が記憶された行の仮想サーバ欄に記憶された仮想サーバを仮想サーバＶ２とする。ここで、業務システム欄７０１に業務システムＧ１が記憶された行が複数行ある場合は、その全ての行について仮想サーバ欄７０２に記憶された行の仮想サーバを取得し仮想サーバＶ２とする。
【０１３３】
（２）ロールバック制御部１０５はスナップショット管理部１１３を介してスナップショット付加情報テーブル２００を読み込む(ステップ１４０２)。
【０１３４】
（３）ロールバック制御部はスナップショット付加情報テーブル７００から仮想サーバV1と仮想サーバV2とをロールバック先時刻Ｔ１に戻すロールバック処理Ｆを決定する(ステップ１４０３)。
【０１３５】
具体的な処理は次のような処理になる。ロールバック制御部１０５は、スナップショット付加テーブル７００のうち時刻欄２０１にロールバック先時刻Ｔ１以前の時刻が記憶された行を直近の時刻が記憶された行から順番に検索し、第１の行の時刻欄２０１と第２の行の時刻欄２０１に同一時刻が記憶され、第１の行の仮想サーバ欄２０２に仮想サーバＶ１が記憶され第２の行に仮想サーバＶ２が記憶されものを検索する。このような第１の行のスナップショット欄２０３に記憶された情報をスナップショットＳ１とし、第２の行のスナップショット欄２０３に記憶された情報をスナップショットＳ２とする。また、第１の行と第２の行の時刻欄２０１に記憶された情報をそれぞれ時刻Ｔ２１、時刻Ｔ２２とする。
【０１３６】
そこで、スナップショットＳ１を用いて仮想サーバＶ１をリストアし、スナップショットＳ２を用いて仮想サーバＶ２をリストアすることと決定する。
【０１３７】
さらに、ロールバック制御部１０５は、ポリシテーブル４００と、設定変更テーブル３００を読み込み、ポリシテーブル４００に定義したポリシに合致する時刻設定変更を設定変更テーブル３００より特定する。
【０１３８】
具体的には、設定変更テーブル３００を検索し、時刻欄３０２に時刻Ｔ２１から時刻Ｔ１までの時刻が記憶され、変更対象欄３０３に仮想サーバＶ１が記憶された行を特定し、ポリシテーブルに記憶されたポリシ定義を満たすもののみ、設定変更欄３０５に記憶された内容をＣ１とする。ここで特定される行が複数行ある場合は、その全てについて同様の操作をし、設定変更欄３０５に記憶された内容をＣ１とする。
【０１３９】
また、同様に、設定変更テーブル３００を検索し、時刻欄３０２に時刻Ｔ２２から時刻Ｔ１までの時刻が記憶され、変更対象欄３０３に仮想サーバＶ２が記憶された行を特定し、ポリシテーブル４００に記憶されたポリシ定義を満たすもののみ、設定変更欄３０５に記憶された内容をＣ２とする。ここで特定される行が複数行ある場合は、その全てについて同様の操作をし、設定変更欄３０５に記憶された内容をＣ２とする。
【０１４０】
最後に、仮想サーバＶ１については、スナップショットＳ１を用いてリストアし、設定変更Ｃ１を適用するロールフォワードをする処理をロールバック処理Ｆとする。また、仮想サーバＶ２については、スナップショットＳ２を用いてリストアし、設定変更Ｃ２を適用するロールフォワードをする処理をロールバック処理Ｆとする。
【０１４１】
（４）ロールバック制御部１０５は、ロールバック処理Ｆで特定したスナップショットＳ１とスナップショットＳ２とをスナップショット管理部１１３を介して読み込み、スナップショット制御部を介して仮想サーバＶ１をスナップショットＳ１を用いてリストアし、スナップショットＳ２を用いて仮想サーバＶ２をリストアする(ステップ１４０４)。
【０１４２】
（５）ロールバック制御部１０５は、ロールバック処理Ｆで特定した設定変更Ｃ１と設定変更Ｃ２とを設定変更配布部１０７を介して、仮想サーバＶ１と仮想サーバＶ２とに適用しロールフォワードする(ステップ１４０５)。
【０１４３】
以上説明したように、本実施例では、複数の仮想サーバのスナップショットの履歴情報を管理するスナップショット付加情報テーブル200、管理対象の前記仮想サーバが満たすべきポリシを格納するポリシテーブル300、複数の仮想サーバの業務構成情報を管理する業務構成テーブル700、及び複数の仮想サーバの設定変更情報を記憶する設定変更テーブル300を用いて、ロールバック要求に応答して、業務構成テーブル700から業務構成情報を読込み、業務構成情報からロールバック要求された仮想サーバの属する業務に係る仮想サーバ一覧を取得し、スナップショット付加情報テーブル200から、仮想サーバ一覧に含まれる各仮想サーバのスナップショットの履歴情報を取得し、設定変更テーブル300から、仮想サーバ一覧に含まれる各仮想サーバの設定変更情報を取得し、取得した設定変更情報から、ポリシテーブル400に格納されたポリシに合った設定変更情報を選択し、仮想サーバ一覧に含まれる各仮想サーバのロールバックに用いるスナップショットを決定し、決定したスナップショットと選択した設定変更情報とにより仮想サーバ一覧に含まれる各仮想サーバをロールバックする。
【実施例５】
【０１４４】
本実施例は、仮想サーバのロールバック直後に障害なく業務システムを再開する方法であり、第４の実施例を一部変更した実施例である。業務単位にロールバックする処理を実現する方法を示す。ここでは、設定情報間の制約条件を満たす仮想サーバのそれぞれのスナップショットを特定し、ロールバックする方法を示す。第６の実施例でも同様の実施例を示しているが、ここでは、複数の仮想サーバの異なる時刻のスナップショットを用いてリストアした後、設定制約関係にある設定変更を適用する処理を実行してロールバックすることにより、設定情報間の不整合をなくし、障害なく業務システムを再開する。
【０１４５】
図１５は、本実施例のロールバック処理の全体処理フローを示している。
【０１４６】
（１）ロールバック制御部１０５は、システム管理者からロールバック要求メッセージを受信し、当該ロールバック要求メッセージから、仮想サーバＶ１とロールバック先時刻Ｔ１を特定する(ステップ１５０１)。
【０１４７】
なお、システム管理者がロールバック要求メッセージを送信するほかに、ロールバック制御部１０５が仮想サーバＶ１の障害を検知して、障害発生前の時刻Ｔ１を特定する処理でステップ１５０１の処理を置き換えてもよい。
【０１４８】
（２）ロールバック制御部１０５は、スナップショット管理部１１３を介してスナップショット付加情報テーブル２００を読み込み、構成管理部１０８を介して業務構成テーブル７００を読み込み、設定変更管理部１０６を介して設定制約テーブル６００と設定変更テーブル３００を読み込む(ステップ１５０２)。
【０１４９】
（３）ロールバック制御部１０５は、業務構成テーブル７００から仮想サーバＶ１と同一業務システムを構成する仮想サーバV２を特定する(ステップ１５０３)。
【０１５０】
具体的に名処理は次のようになる。業務構成テーブル７００は、業務構成テーブル７００を検索し、仮想サーバ欄７０２に仮想サーバＶ１が記憶された行を特定し、当該行の業務システム欄７０１に記憶指された情報を業務システムＧ１とする。
【０１５１】
業務構成テーブル700を検索し、業務システム欄７０１に業務システムＧ１が記憶された行を特定し当該行の仮想サーバ欄７０２に記憶された情報を仮想サーバＶ２とする。ここで特定された行が複数ある場合は、その全てについて同様の操作を行う。
【０１５２】
（４）ロールバック制御部１０５は、スナップショット付加情報テーブル２００から時刻T1以前の仮想サーバＶ１、Ｖ２の最新のスナップショットＳ１，Ｓ２を特定する(ステップ１５０４)。
【０１５３】
具体的な処理は次のようになる。スナップショット付加情報テーブル２００を検索し、仮想サーバ欄２０２に仮想サーバＶ１が記憶され、時刻欄２０１に時刻Ｔ１以前の情報が記憶された行を特定する。当該特定された行のうち、最新の時刻が記憶された行のスナップショット欄２０３をスナップショットＳ１とする。当該行の時刻欄２０１に記憶された時刻を時刻Ｔ２１とする。
【０１５４】
スナップショット付加情報テーブル２００を検索し、仮想サーバ欄２０２に仮想サーバＶ２が記憶され、時刻欄２０１に時刻Ｔ１以前の情報が記憶された行を特定する。当該特定された行のうち、最新の時刻が記憶された行のスナップショット欄２０３をスナップショットＳ２とする。当該行の時刻欄２０１に記憶された時刻を時刻Ｔ２２とする。
【０１５５】
（５）ロールバック制御部は、設定制約テーブルに定義された制約条件を判定する(ステップ１５０５)。
【０１５６】
具体的には次のような処理を行う。ここで、時刻Ｔ２１が最も直近の時刻であり、続いて時刻Ｔ２２順に直近の時刻である場合について説明する。
【０１５７】
設定変更テーブル３００を検索し、時刻欄３０２に時刻Ｔ２１から時刻Ｔ２２までの時刻が記憶され、変更対象欄３０３に仮想サーバＶ２が記憶された行を特定し、当該行の設定変更欄３０５に記憶された情報をＣ２とする。複数行ある場合は、それぞれについて処理し、Ｃ２とする。
【０１５８】
設定制約テーブル６００を検索し、設定情報欄６０２に、設定変更Ｃ２で特定される設定変更の対象となる設定情報が記憶されており制約情報欄６０３の制約条件を満たしているかを判定する。
【０１５９】
（６）ロールバック制御部１０５は、ステップ1５05の判定で制約条件を満たさない設定変更Cを特定する(ステップ１５０６)。
【０１６０】
上記ステップ１５０５の設定変更Ｃ２で特定される設定変更の対象となる設定情報が記憶されているか判定した結果、満たしていない設定条件がある場合は、設定変更Ｃ２をその制約条件を満たしていない設定変更Ｃ３とする。
【０１６１】
（７）設定変更Ｃ３を適用する(ステップ１５０７)。
【０１６２】
ロールバック制御部１０５は、設定配布部１０７を介して、設定変更Ｃ３を適用し仮想サーバＶ２をロールフォワードする。
【０１６３】
以上説明したように、本実施例では、実施例４において、複数の仮想サーバの設定情報間の制約条件を管理する設定制約テーブルをさらに有し、選択した設定変更情報から、さらに設定制約テーブルの制約条件を満足する設定変更情報を選択する。
【０１６４】
なお、以上の実施例では、全ての仮想サーバをロールバックしているが、設定制約関係のない仮想サーバＶ２、Ｖ３については、ロールバックさせないという処理も可能である。
【０１６５】
以上のような実施例によれば、業務システム単位にロールバックさせることができる。また、仮想サーバの設定情報間の不整合により2次的な障害発生を防止できる。
【０１６６】
設定情報の反映にＯＳの再起動が必要な場合も多いが、本実施例によれば、スナップショットによるリストア後の設定情報の再設定を減らせるため、設定変更の反映処理に必要となるＯＳの再起動回数を減らすことができ、ＯＳの再起動に伴って発生する業務の停止時間を短縮できる。
【０１６７】
異なる時刻のスナップショットを用いて仮想サーバをロールバックできる。また、同一業務システムを構成するが、他の仮想サーバと設定制約関係のない仮想サーバについては、直近のスナップショットを用いてロールバックさせることにより、時刻Ｔ１に戻すために必要となる設定情報の再設定作業を減らすことができる。
【実施例６】
【０１６８】
本実施例は、仮想サーバのロールバック直後に障害なく業務システムを再開する方法であり、第４の実施例を一部変更した実施例である。業務システム単位にロールバックする処理を実現する方法を示す。ここでは、業務システムを構成するそれぞれの仮想サーバの複数世代のスナップショットから、設定情報間の制約条件を満たす仮想サーバのそれぞれのスナップショットを特定し、ロールバックする方法を示す。第５の実施例でも同様の実施例を示しているが、ここでは、スナップショット間で設定制約関係を満たすような複数の仮想サーバの異なる時刻のスナップショットを用いてリストアすることにより、設定情報間の不整合をなくし、障害なく業務システムを再開する。
【０１６９】
図１６は、本実施例の全体処理を示す処理フローである。
【０１７０】
（１）ロールバック制御部１０５は、システム管理者からロールバック要求メッセージを受信し、当該ロールバック要求メッセージから、仮想サーバＶ１とロールバック先時刻Ｔ１を特定する(ステップ１６０１)。
【０１７１】
なお、システム管理者がロールバック要求メッセージを送信するほかに、ロールバック制御部１０５が仮想サーバＶ１の障害を検知して、障害発生前の時刻Ｔ１を特定する処理でステップ１６０１の処理を置き換えてもよい。
【０１７２】
（２）ロールバック制御部１０５は、スナップショット管理部を介してスナップショット付加情報テーブルを読み込み、構成管理部を介して業務構成テーブル７００を読み込み、設定変更管理部１０６を介して設定制約テーブル６００と設定変更テーブル３００を読み込む(ステップ１６０２)。
【０１７３】
（３）ロールバック制御部１０５は、業務構成管理テーブル７００から仮想サーバと同一業務システムを構成する仮想サーバV２、Ｖ３を特定する(ステップ１６０３)。
【０１７４】
（４）ロールバック制御部１０５は、スナップショット付加情報テーブル２００から仮想サーバＶ１、Ｖ２、Ｖ３の最新のスナップショットＳ１,Ｓ２,Ｓ３を特定する(ステップ１６０４)。
【０１７５】
具体的な処理は次のようになる。スナップショット付加情報テーブル２００を検索し、仮想サーバ欄２０２に仮想サーバＶ１が記憶され、時刻欄２０１に時刻Ｔ１以前の情報が記憶された行を特定する。当該特定された行のうち、最新の時刻が記憶された行のスナップショット欄２０３をスナップショットＳ１とする。当該行の時刻欄２０１に記憶された時刻を時刻Ｔ２１とする。スナップショット付加情報テーブル２００を検索し、仮想サーバ欄２０２に仮想サーバＶ２が記憶され、時刻欄２０１に時刻Ｔ１以前の情報が記憶された行を特定する。当該特定された行のうち、最新の時刻が記憶された行のスナップショット欄２０３をスナップショットＳ２とする。当該行の時刻欄２０１に記憶された時刻を時刻Ｔ２２とする。スナップショット付加情報テーブル２００を検索し、仮想サーバ欄２０２に仮想サーバＶ３が記憶され、時刻欄２０１に時刻Ｔ１以前の情報が記憶された行を特定する。当該特定された行のうち、最新の時刻が記憶された行のスナップショット欄２０３をスナップショットＳ３とする。当該行の時刻欄２０１に記憶された時刻を時刻Ｔ２３とする。ここで、Ｔ２１が最も直近の時刻で、Ｔ２２、Ｔ２３の順に遅いと仮定する。
【０１７６】
（５）ロールバック制御部１０５は、設定制約テーブルに定義された制約条件を判定する(ステップ１６０５)。判定の結果、制約条件を満たす場合は処理を終了する。判定の結果、判定条件を満たさない場合は、ステップ１６０６に進む。
【０１７７】
具体的な処理は次のようになる。ロールバック制御部１０５は、設定変更テーブル３００を検索し、時刻欄３０２に時刻Ｔ２１から時刻Ｔ２３までの時刻が記憶され、変更対象欄３０３に仮想サーバＶ１が記憶された行を特定し、当該行の設定変更欄３０５の情報を設定変更Ｃ１とする。ロールバック制御部１０５は、設定制約テーブル６００を検索し、設定変更Ｃ１で特定される設定情報が設定情報欄６０２に記憶されている行を特定し、当該行の制約情報欄に記憶された条件を満たしているか判定する。また、ロールバック制御部１０５は、設定変更テーブル３００を検索し、時刻欄３０２に時刻Ｔ２２から時刻Ｔ２３までの時刻が記憶され、変更対象欄３０３に仮想サーバＶ２が記憶された行を特定し、当該行の設定変更欄３０５の情報を設定変更Ｃ２とする。ロールバック制御部１０５は、設定制約テーブル６００を検索し、設定変更Ｃ２で特定される設定情報が設定情報欄６０２に記憶されている行を特定し、当該行の制約情報欄に記憶された条件を満たしているか判定する。
【０１７８】
（６）ロールバック処理部１０５は、ステップ１６０５の判定で制約条件を満たさない仮想サーバVを特定する(ステップ１６０６)。
【０１７９】
具体的な処理は次のようになる。設定変更Ｃ１が条件を満たしていないと判定した場合は、仮想サーバＶ１を、制約条件を満たさない仮想サーバＶとして特定する。設定変更Ｃ２が条件を満たしていないと判定した場合は、仮想サーバＶ２を、制約条件を満たさない仮想サーバＶとして特定する。
【０１８０】
（７）ロールバック処理部１０５は、スナップショット付加テーブルから次に最新の仮想サーバVのスナップショットを特定し、Sとする(ステップ１６０７)。ステップ１６０５に戻る。
【０１８１】
ロールバック制御部１０５は、スナップショット付加テーブル２００を検索して、仮想サーバ欄２０２に仮想サーバＶ１が記憶され、時刻欄２０１に時刻Ｔ２１よりも前の時刻が記憶されている行を特定し、当該行のスナップショット欄２０３に記憶された情報を新たにスナップショットＳ１とする。また、当該行の時刻欄２０１に記憶された時刻を新たに時刻Ｔ２１とする。
【０１８２】
ロールバック制御部１０５は、スナップショット付加テーブル２００を検索して、仮想サーバ欄２０２に仮想サーバＶ２が記憶され、時刻欄２０１に時刻Ｔ２２よりも前の時刻が記憶されている行を特定し、当該行のスナップショット欄２０３に記憶された情報を新たにスナップショットＳ２とする。また、当該行の時刻欄２０１に記憶された時刻を新たに時刻Ｔ２２とする。ステップ１６０７が終了したら、ステップ１６０５に戻る。
【０１８３】
なお、以上の実施例では、全ての仮想サーバをロールバックしているが、設定制約関係のない仮想サーバＶ２、Ｖ３については、ロールバックさせないという処理も可能である。
【０１８４】
以上のような実施例によれば、業務システム単位にロールバックさせることができる。また、仮想サーバの設定情報間の不整合により2次的な障害発生を防止できる。
【０１８５】
設定情報の反映にＯＳの再起動が必要な場合も多いが、本実施例によれば、スナップショットによるリストア後の設定情報の再設定を減らせるため、設定変更の反映処理に必要となるＯＳの再起動回数を減らすことができ、ＯＳの再起動に伴って発生する業務の停止時間を短縮できる。
【０１８６】
異なる時刻のスナップショットを用いて仮想サーバをロールバックできる。また、同一業務システムを構成するが、他の仮想サーバと設定制約関係のない仮想サーバについては、直近のスナップショットを用いてロールバックさせることにより、時刻Ｔ１に戻すために必要となる設定情報の再設定作業を減らすことができる。
【符号の説明】
【０１８７】
100：運用管理サーバ、101:仮想サーバ制御装置、102：業務実行サーバ、103：ポリシ管理部、104：運用管理端末、105：ロールバック制御部、106：設定変更管理部、107：設定配布部、108：構成管理部、109：送受信部、110：記憶部、111:仮想サーバ制御部、112：スナップショット制御部、113：スナップショット管理部、114：送受信部、115：スナップショット記憶部、116：記憶部、117：仮想サーバ、118：設定記憶部、119：設定管理部、200：スナップショット付加情報テーブル、300：設定変更テーブル、400：ポリシテーブル、500：設定変更制約テーブル、600：設定制約テーブル、700：業務構成テーブル、800：アプリケーション構成テーブル、901:計算機、902：CPU、903：主記憶装置、904：外部記憶装置、905：外部記憶装置インターフェース、906：通信インターフェース、907：入力装置、908：出力装置、909：ネットワーク。
【図１】
0005466740.tif 000002
【図２】
0005466740.tif 000003
【図３】
0005466740.tif 000004
【図４】
0005466740.tif 000005
【図５】
0005466740.tif 000006
【図６】
0005466740.tif 000007
【図７】
0005466740.tif 000008
【図８】
0005466740.tif 000009
【図９】
0005466740.tif 000010
【図１０】
0005466740.tif 000011
【図１１】
0005466740.tif 000012
【図１２】
0005466740.tif 000013
【図１３】
0005466740.tif 000014
【図１４】
0005466740.tif 000015
【図１５】
0005466740.tif 000016
【図１６】
0005466740.tif 000017