以下、本発明の実施例を、図面に基づいて詳細に説明する。
図1は、実施例1の情報処理システムの構成を示すブロック図である。本実施例の情報処理システムは、運用管理サーバ100、仮想サーバ制御装置101、業務実行サーバ102及び運用管理端末104を有し、それらは、ネットワーク909を介して相互に接続している。
運用管理サーバ100は、後述するロールバック処理を含む業務実行サーバ102を運用管理する計算機である。運用管理サーバ100は、ポリシ管理部103、ロールバック制御部105、設定変更管理部106、設定配布部107、構成管理部108、送受信部109及び記憶部110を有する。
ポリシ管理部103は、運用管理サーバ100の管理対象が満たすべきポリシを管理する処理部である。管理対象とは、運用管理サーバ100の運用管理する対象である。本実施形態においては、業務実行サーバ102や第1仮想サーバ117A、第2仮想サーバ117Bである。ポリシとは、管理対象が満たすべき条件や、条件と当該条件を満たした場合に実行する処理の組み合わせである。例えば、後述するポリシテーブル400に示すように、最新のセキュリティパッチが常にあたった状態にあること、といったようなポリシである。ポリシ管理部103は、記憶部110に記憶された後述するポリシテーブル400を管理する。ポリシを要求するメッセージを受信すると、ポリシテーブル400を読み込み、当該要求メッセージで特定された情報を応答する。また、ポリシを記憶するメッセージを受信すると歩入りしテーブル400を読み込み、当該メッセージで特定されたポリシをポリシテーブル400に記憶する。
ロールバック制御部105は、仮想サーバ制御装置101を介して、業務実行サーバ102上で稼働する第1仮想サーバ117Aや第2仮想サーバ117Bをロールバックする。
設定変更管理部106は、業務実行サーバ102や第1仮想サーバ117Aや第2仮想サーバ117Bなどの運用管理対象となる計算機の設定情報の変更情報を管理する。設定変更管理部106は、業務実行サーバ102や第1仮想サーバ117Aや第2仮想サーバ117Bなどの運用管理対象となる計算機の設定情報の変更を検知して、設定変更テーブル300に検知した設定変更情報を記憶する。また、設定変更情報を読み出す要求メッセージを受信すると、設定変更テーブル300から設定変更情報を読み出し、応答する。
設定配布部107は、業務実行サーバ102、第1仮想サーバ117A、第2仮想サーバ117Bなどの運用管理対象となる計算機の設定情報を配布する。例えば、設定配布部107がある設定情報を送受信部109と送受信部120Aを介して設定管理部119Aに送信すると、設定管理部119Aは設定記憶部118Aを受信した設定情報に書き換える。
構成管理部108は、業務実行サーバ102、第1仮想サーバ、第2仮想サーバなどの運用管理対象となる計算機の業務構成情報やアプリケーション構成情報を管理する。業務構成情報とは、業務システムと、この業務システムを構成する計算機等の構成要素との対応関係情報である。アプリケーション構成情報とは、計算機等の構成要素とこの構成要素に含まれるアプリケーションとの対応関係情報である。
送受信部109は、運用管理サーバ100の通信処理を実行する。ネットワーク909を介して仮想サーバ制御装置101、業務実行サーバ102、又は運用管理端末104から受信した情報を、送受信部109は、受信した情報によって特定される運用管理サーバの各処理部に振り分ける。また、運用管理サーバ100の各処理部が仮想サーバ制御装置101、業務実行サーバ102、運用管理端末104に送信する情報を、送受信部109はネットワークを介して送信する。
記憶部110は、運用管理サーバ100の運用管理処理を実現するのに必要な情報を記憶する記憶部である。記憶部110は、設定変更テーブル300、ポリシテーブル400、設定変更制約テーブル500、設定制約テーブル600、業務構成テーブル700、及びアプリケーション構成テーブル800を備えている。
設定変更テーブル300は、運用管理サーバ100が管理する第1仮想サーバや第2仮想サーバといった管理対象の設定変更を特定する情報を記憶するテーブルである。ここで、設定変更を特定する情報とは、管理対象の設定情報や構成情報を変更する処理を特定する情報である。例えば、設定情報値の変更や、セキュリティパッチなどのモジュールの適用、アプリケーションの追加・削除、システム構成の変更などを特定する情報である。
図3に設定変更テーブル300を示す。設定変更テーブル300は、各行に設定変更を特定する情報を記憶している。設定変更テーブル300は、設定変更識別子欄301、時刻欄302、変更対象欄303、種類欄304および設定変更欄305を備えている。設定変更識別子欄301は、設定変更を識別する識別情報を記憶する。時刻欄302は、設定変更をした時刻を特定する情報を記憶する。変更対象欄303は、設定変更の変更対象を特定する情報を記憶する。種類欄304は、設定変更の種別を特定する情報を記憶する。設定変更欄305は、設定変更の処理を特定する情報を記憶する。
設定変更テーブル300は、システム管理者が運用管理端末104を介して、設定変更テーブル300に示す情報を入力し、設定変更管理部106は、入力された情報を記憶部110の設定変更テーブル300に記憶する。また、設定変更管理部106が、設定管理部119Aや設定管理部119Bに記憶される設定情報に変更があったことを検知して、検知した設定変更情報を設定変更テーブル300に記憶する。
ポリシテーブル400は、運用管理サーバ100が管理する第1仮想サーバや第2仮想サーバといった管理対象が満たすべきポリシを記憶するテーブルである。ここで、ポリシとは、例えば、セキュリティポリシや、サービスレベルを表すポリシなどである。図4にポリシテーブル400を示す。ポリシテーブル400は、各行にポリシを記憶している。ポリシテーブル400は、ポリシ識別子欄401とポリシ定義欄402とを備えている。ポリシ識別子欄401は、ポリシを特定する識別情報を記憶する。ポリシ定義欄402は、ポリシの内容を特定する情報を記憶する。
設定変更制約テーブル400は、システム管理者が運用管理端末104を介して、ポリシテーブル400に示す情報を入力し、設定変更管理部106は、入力された情報を、記憶部110のポリシテーブル400に記憶する。
設定変更制約テーブル500は、設定変更テーブル300に記憶した各設定変更の制約条件を記憶するテーブルである。図5に設定変更制約テーブル500を示す。各行に設定変更の制約条件を特定する情報を記憶している。設定変更制約テーブル500は、識別子欄501、設定変更欄502及び制約情報欄503を備えている。識別子欄501は、設定変更の制約条件を特定する識別情報を記憶する。設定変更欄502は、設定変更の制約条件の対象となる設定変更を特定する識別子情報を記憶し、この識別子情報によって、設定変更テーブル300の設定変更識別子欄301で特定される設定変更と対応づけられる。制約情報欄503は、設定変更の制約条件の内容を特定する情報を記憶している。
設定変更制約テーブル500は、システム管理者が運用管理端末104を介して、設定制約テーブル600に示す情報を入力し、設定変更管理部106は、入力された情報を、記憶部110の設定変更制約テーブル500に記憶する。また、設定管理部119Aや設定管理部119Bに記憶される設定情報、設定変更テーブル300に記憶された設定変更情報、または設定変更制約テーブル500に記憶された設定変更制約情報から得られる設定変更情報の制約条件を、設定変更制約テーブル500に記憶する。さらに、設定情報間の制約条件に変更があった場合、設定変更管理部106はこの変更を検知して、検知した設定情報間の制約条件に応じて設定制約テーブル500を更新する。
設定制約テーブル600は、設定情報値の制約条件を特定する情報を記憶するテーブルである。図6に設定制約テーブル600を示す。設定制約テーブル600は、各行に設定情報値の制約条件を各行に記憶している。設定制約テーブル600は、識別子欄601と、設定情報欄602と、制約情報欄603と、を備えている。識別子欄601は、設定情報値の制約条件を特定する識別情報を記憶する。設定情報欄602は、設定情報値の制約条件の対象を特定する情報を記憶する。制約情報欄603は、設定情報値の制約条件の制約条件を特定する情報を記憶する。
設定制約テーブル600は、システム管理者が運用管理端末104を介して、設定制約テーブル600に示す情報を入力し、設定変更管理部106は、入力された情報を、記憶部110の設定制約テーブル600に記憶する。また、設定管理部119Aや設定管理部119Bに記憶される設定情報から得られる設定制約情報の制約条件を、設定制約テーブル600に記憶する。さらに、設定情報間の制約条件に変更があった場合は設定制約テーブル600に記憶する情報を更新する。
業務構成テーブル700は、業務システムを構成する仮想サーバなどの構成要素の対応関係を記憶している。図7に業務構成テーブル700を示す。業務構成テーブル700は、各行に業務システムと当該業務システムを構成する仮想サーバとの対応関係を記憶している。業務構成テーブル700は、業務システム欄701と仮想サーバ欄702とを備えている。業務システム欄701は、業務システムを特定する識別情報を記憶する。業務システムとは、販売や生産、会計、物流など会社を運営するために必要な業務処理を実行するシステムであり、代表的なものに財務管理システム、給与管理システム、オンライン購買システム、営業管理システムなどがある。業務システムが、仮想サーバ上で稼働している場合、単一の仮想サーバで業務システムを構成していることもあれば、複数の仮想サーバが協調して一つの業務サーバを構成していることもある。仮想サーバ欄702は、仮想サーバを特定する識別情報を記憶する。
業務構成テーブル700は、システム管理者が運用管理端末104を介して、業務構成テーブル700に示す情報を入力し、構成管理部108は、受信した情報を、記憶部110の業務構成テーブル700に記憶する。また、設定管理部119Aや設定管理部119Bに記憶される設定情報から得られる業務システムと仮想サーバとの対応関係を、業務構成テーブル700に記憶してもよい。さらに、業務構成に変更に応じて業務構成テーブル700を更新する。
アプリケーション構成テーブル800は、仮想サーバ上で稼働するアプリケーションの構成情報を記憶するテーブルである。図8にアプリケーション構成テーブル800を示す。アプリケーション構成テーブル800は、仮想サーバとアプリケーションとの対応関係を各行に記憶している。アプリケーション構成テーブル800は、サーバ欄801とアプリケーション欄802とを備えている。サーバ欄801は、仮想サーバを特定する識別情報を記憶している。アプリケーション欄802は、アプリケーションを特定する識別情報を記憶している。
アプリケーション構成テーブル800では、サーバ欄801で特定される仮想サーバにアプリケーション欄802で特定されるアプリケーションが動作していることを示している。アプリケーション構成テーブル800は、システム管理者が運用管理端末104を介して、アプリケーション構成テーブル800に示す情報を入力し、構成管理部108は、入力された情報を、記憶部110のアプリケーション構成テーブル800に記憶する。また、設定管理部119Aや設定管理部119Bに記憶される設定情報から得られる業務システムと仮想サーバとの対応関係を、アプリケーション構成テーブル800に記憶してもよい。さらに、アプリケーション構成に変更があった場合はアプリケーション構成テーブル800を更新する。
運用管理サーバ100は、図9に示すハードウエア構成の計算機901により実現する。ロールバック制御部105、設定変更管理部106、設定配布部107、および構成管理部108は、外部記憶装置904に記憶されたプログラムであり、外部記憶装置インターフェース905を介して主記憶装置903上に読み込まれ、CPU902で実行される。送受信部109は、通信インターフェース906及びこれを制御する通信制御プログラムにより実現される。記憶部110は、主記憶装置903及び/又は外部記憶装置904により実現される。
仮想サーバ制御装置101、業務実行サーバ102及び運用管理端末104のハードウエア構成も、規模や性能の差異がある場合もあるが、図9に示す計算機901の構成である。
図1では、運用管理サーバ100、仮想サーバ制御装置101、業務実行サーバ102、及び運用管理端末104の各々を異なる計算機として示しているが、これらの各々を複数の計算機で構成しても良いし、これらのいくつかを纏めて1台の計算機で構成しても良い。
図1に説明を戻し、仮想サーバ制御装置101について説明する。仮想サーバ制御装置101は、仮想サーバを制御する装置であり、後述する第1仮想サーバ117Aや第2仮想サーバ117Bといった仮想サーバを制御する。仮想サーバ制御装置101は、スナップショット制御部112、スナップショット管理部113、送受信部114及びスナップショット記憶部115を備えている。
スナップショット制御部112は、仮想サーバのスナップショットをとる処理や記憶してあるスナップショットを仮想サーバにリストアして、スナップショットをとった状態に戻す処理を実行する。例えば、スナップショット制御部112は、第1仮想サーバ117Aや第2仮想サーバ117Bのスナップショットを後述するスナップショット管理部113を介して後述するスナップショット記憶部115に記憶する処理を実行したり、スナップショットを後述するスナップショット管理部113を介して後述するスナップショット記憶部115から読み出して第1仮想サーバ117Aや第2仮想サーバ117Bをリストアする処理を実行したりする。
スナップショット管理部113は、後述する記憶部115に記憶するスナップショットを記憶する処理を実行したり、スナップショットをリストアする処理を実行したりする。
送受信部114は、仮想サーバ制御装置101の通信処理を実行し、ネットワーク909を介して運用管理サーバ100、業務実行サーバ102、又は運用管理端末104と情報を送受信する。
スナップショット記憶部115は、第1仮想サーバ117Aや第2仮想サーバ117Bなどの仮想サーバのスナップショットを記憶する。ある仮想サーバの複数世代のスナップショットを記憶しておいてもよい。
記憶部116は、仮想サーバのスナップショットの付加情報を記憶する記憶部である。付加情報とは、どの仮想サーバのスナップショットかを特定する情報と、スナップショットを記憶した時刻を特定する情報と、スナップショット記憶部115に記憶されるスナップショットを特定する情報である。
記憶部116は、仮想サーバのスナップショットを管理するため付加情報をスナップショット付加情報テーブル200に記憶している。図2にスナップショット付加情報テーブル200を示す。スナップショット付加情報テーブル200は、各行にスナップショット毎の付加情報を記憶する。スナップショット付加情報テーブル200は、時刻欄201、仮想サーバ欄202及びスナップショット欄203を備えている。時刻欄201は、スナップショットを記録した時刻を記憶する。仮想サーバ欄202は、スナップショットをとった対象の仮想サーバを特定する識別情報を記憶する。スナップショット欄203は、スナップショット記憶部115に記憶されたスナップショットを特定する識別情報を記憶する。例えば、図2に示すスナップショット付加情報テーブル200の一行目は、「2007年12月13日10時00分00秒」に、「仮想サーバ#1」で特定される仮想サーバの、「スナップショット#1」で特定されるスナップショットがスナップショット記憶部115に記憶されていることを示している。
仮想サーバ制御装置101は、図9に示す計算機901により実現可能である。仮想サーバ制御部111と、スナップショット制御部112と、スナップショット管理部113は、外部記憶装置904に記憶したプログラムを主記憶装置903上に読み込み、CPU902で実行することにより実現可能である。また、送受信部114は、通信インターフェース906により実現可能である。また、スナップショット記憶部115と、記憶部116は、外部記憶装置904により実現可能である。
業務実行サーバ102は、運用管理サーバ100が管理する対象の業務システムが稼働する計算機である。業務実行サーバ102と業務システムとは一対一に限定されない。すなわち、業務実行サーバ102上で一つの業務システムが稼働してもよいし、業務実行サーバ102上で稼働する仮想サーバ毎に業務システムを動作させてもよい。また、複数の業務実行サーバ102により業務システムを構成してもよい。
業務実行サーバ102は、第1仮想サーバ117Aや第2仮想サーバ117Bを備えている。第1仮想サーバ117Aは、業務実行サーバ102上で稼働する仮想サーバであり、設定記憶部118A、設定管理部119A及び送受信部120Aを備えている。設定記憶部118Aは、第1仮想サーバ117Aの設定情報を記憶する。設定管理部119Aは、設定記憶部118Aに記憶された第1仮想サーバ117Aの設定情報の設定処理や変更処理を実行する。送受信部120Aは、設定記憶部118Aや設定管理部119Aと、運用管理サーバ100、仮想サーバ制御装置101又は運用管理端末104との通信処理を実行する。第2仮想サーバ117Bは、業務実行サーバ102上で稼働する仮想サーバであり、設定記憶部118B、設定管理部119B及び送受信部120Bの処理部を備えている。これらの処理部の動作は、第1仮想サーバ117Aと同様である。
なお、業務実行サーバ102上で稼働する仮想サーバは第1仮想サーバ117Aと第2仮想サーバ117Bとに限定されない。すなわち、第1仮想サーバ117Aや第2仮想サーバ117Bは同一の仮想サーバであってもよいし、第1仮想サーバ117Aや第2仮想サーバ117Bの他に、第3の仮想サーバが稼働していてもよい。業務実行サーバ102は、図9に示す計算機901により実現可能である。
設定管理部119Aと、設定管理部119Bと、送受信部120Aと、送受信部120Bは、外部記憶装置904に記憶したプログラムを主記憶装置903上に読み込み、CPU902で実行することにより実現可能である。
なお、送受信部120Aと送受信部120Bは、通信インターフェース906でも実現可能である。また、記憶部118Aと記憶部118Bは、外部記憶装置904により実現可能である。
運用管理端末104は、運用管理サーバ100への入力処理や運用管理サーバ100からの出力処理を制御する計算機である。システム管理者は、運用管理端末104を介して、運用管理サーバ100に、第1仮想サーバ117Aや第2仮想サーバ117Bをロールバックする要求メッセージを送信する。また、運用管理端末104を介して、スナップショット制御部112に第1仮想サーバ117Aや第2仮想サーバ117Bのスナップショットを記憶する要求メッセージを送信する。さらに、運用管理端末104を介して、運用管理サーバ100に、第1仮想サーバ117Aや第2仮想サーバ117の設定情報を変更する要求メッセージを送信する。また、運用管理端末104を介して、直接第1仮想サーバ117Aや第2仮想サーバ117Bに、設定変更を要求するメッセージを送信する。
運用管理端末104は、入力部121と、出力部122と、送受信部123と、通信処理部124と、を備えている。入力部121はシステム管理者が入力した、前述の各種要求メッセージなどに関わる情報を入力し、出力部122はシステム管理者に情報を出力する。
送受信部123は、通信処理部124などの運用管理端末の各処理部から受信した情報をネットワークに送信したり、ネットワークから受信した情報を各処理部に送信したりする送受信処理を実行する処理部である。通信処理部124は、運用管理サーバ100との通信処理を実行する。運用管理端末104は、図9に示す計算機901により実現可能である。通信処理部124は、外部記憶装置904に記憶したプログラムを主記憶装置903上に読み込み、CPU902で実行することにより実現可能である。また、送受信部123は、通信インターフェース906で実現可能である。入力部121は、入力装置907により実現可能である。入力装置907とは、例えば、マウスなどのポインティングデバイスや、キーボードなどである。また、出力部122は、出力装置908により実現可能である。出力装置908とは、例えば、モニタなどである。
図10は、本実施例における情報処理システムの全体処理を示すフロー図である。
(1)ロールバック制御部105はシステム管理者からロールバック要求メッセージを受信し、受信したメッセージから仮想サーバVとロールバック先時刻T1を取得する(ステップ1001)。
なお、ロールバック制御部105が仮想サーバVの障害を検知して、障害発生前の時刻T1を特定する処理でステップ1001の処理を置き換えてもよい。
(2)ロールバック制御部105は、スナップショット管理部113を介して、記憶部116からスナップショット付加情報テーブル200を読み込む(ステップ1002)。
(3)ロールバック制御部105は、設定変更管理部106から設定変更テーブル300を読み込む(ステップ1003)。
(4)ロールバック制御部105は、ポリシ管理部103からポリシテーブル400を読み込む(ステップ1004)。
(5)ロールバック制御部105は、スナップショット付加情報テーブル200と設定変更テーブル300とを元に、ポリシテーブル400を満たした形で仮想サーバVをロールバック先時刻T1に戻すロールバック処理Fを決定する(ステップ1005)。ここで、ロールバック処理Fは、スナップショットSによる仮想サーバVのロールバックと、仮想サーバVへの設定変更の適用とを特定し、その順序を特定した情報である。ステップ1005のロールバック処理Fを特定する処理の詳細は、図11を用いて後述する。
(6)ロールバック制御部105は、ロールバック処理Fで特定したスナップショットSを、スナップショット管理部113を介して読み込み、スナップショット制御部を介して仮想サーバVをスナップショットSを用いてリストアする(ステップ1006)。
具体的には、次のような処理になる。ここで、仮想サーバVが第1仮想サーバ117Aとする。ロールバック制御部105は、第1仮想サーバ117AとスナップショットSを特定しリストア要求メッセージを送受信部109を通してネットワーク909を介してスナップショット制御部112に送信する。リストア要求メッセージを受信したスナップショット制御部112は、スナップショット記憶部115からスナップショットSを取得し、スナップショットSを用いて第1仮想サーバのリストアを実行する。リストア処理は、送受信部114を介して、ネットワーク909を通して処理する。
(7)ロールバック制御部105は設定配布部107を介して、ロールバック処理Fで特定した設定変更Cを用いて仮想サーバVをロールフォワードする(ステップ1007)。
具体的には、次のような処理になる。ここで、仮想サーバVが第1仮想サーバとする。ロールバック制御部105は、第1仮想サーバと設定変更Cを特定した設定変更要求メッセージを送受信部109を通してネットワーク909を介して第1仮想サーバ117Aに送信する。送受信部120Aを介して当該メッセージを受信した第1仮想サーバ117Aの設定管理部119Aは、設定記憶部118Aに設定変更Cを適用する。
図11は、ステップ1005のリストア処理を詳細に説明した処理のフロー図である。
(1)スナップショット付加情報テーブル200を検索し、仮想サーバ欄202が仮想サーバVと一致し時刻欄201がT1に最も近い時刻を記憶する行の時刻欄201をT2とし、スナップショット欄203の情報をスナップショットSとする(ステップ1101)。
ステップ1101はロールバックに用いるスナップショットを特定する処理である。例えば、仮想サーバVが「仮想サーバ#1」であり、時刻T1が「2008/2/14 11:00:00」であるとする。ロールバック制御部105は、スナップショット付加テーブル200を検索して、仮想サーバ欄202が「仮想サーバ#1」で、時刻T1以前の時刻で直近の「2008/1/13」が時刻欄201に記憶された行のスナップショット欄203を参照する。スナップショット欄203に記憶された「スナップショット#4」をスナップショットSとして記憶する。また、時刻欄201に記憶された「2008/01/13 12:00:00」を時刻T2とする。
(2)設定変更テーブル300を検索し、変更対象欄303が仮想サーバVと一致し、時刻欄302がT1からT2までの時刻が記憶する行の設定変更識別子欄301に記憶された情報のセットを設定変更C1とする(ステップ1102)。
ステップ1102は、ロールバックに用いる設定変更を特定する処理である。例えば、仮想サーバVが「仮想サーバ#1」であり、時刻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は、仮想サーバVに属する変更対象を変更対象欄303に記憶する行を特定し、設定変更Cに追加してもよい。仮想サーバVに属する変更対象とは、例えば、仮想サーバV上で稼働するアプリケーションである。
仮想サーバVに属する変更対象の特定は、具体的には、次のような処理になる。ロールバック制御部105が、構成管理部108を通して記憶部110より、アプリケーション構成管理テーブル800を読み込み、サーバ欄801に仮想サーバVが記憶された行を検索し、当該行のアプリケーション欄802に記憶されたアプリケーションを特定する情報をアプリケーションAとする。そして、ロールバック制御部105は、設定変更テーブル300を検索し、時刻欄302に時刻T1から時刻T2まで時刻が記憶され、変更対象欄303にアプリケーションAが記憶された行を特定する。当該行の設定変更識別子欄301に記憶された情報を特定し、当該情報を設定変更C1に追加する。
例えば、仮想サーバVが「仮想サーバ#1」であり、時刻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」に追加する。
(3)設定変更C1に記憶された設定変更識別子に相当する設定変更のうち、ポリシテーブル400に記憶された各行のポリシ定義に合致する設定変更をC2とする。また、設定変更C1に属し設定変更C2に属さない設定変更をC3とする(ステップ1103)。
ポリシテーブル400に格納されたポリシに合った設定変更C2を設定変更C1から決定する。設定変更C2の決定方法は、例えば、下記の方法がある。ただし、これらに限定しない。まず、第1の方法を説明する。ステップ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を特定する。
上記第1の方法で「変更#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は、設定変更C1に属する各設定変更が前提となる設定変更がされているかを確認する。例えば、ロールバック制御部105は、設定変更制約テーブル503を参照し、「条件#3」より「変更#8」が「変更#6」が前提になっていることを特定する。そして、設定変更C1に「変更#6」が属するかを判定し、属さないと判定された場合は「変更#8」が設定変更不要だとして設定変更C1から「変更#8」を除外した「変更#3」「変更#7」「変更#9」「変更#10」を設定変更C2として特定する。
なお、ステップ1103は、第1の方法、第2の方法に限定せず、いずれの方法であってもよい。いずれの方法をステップ1103で採用するかは、例えば、ポリシテーブル400に記憶し、当該記憶された方法をロールバック制御部105が読み込み、当該方法によりステップ1103を実行してもよい。
以上に説明した本実施例は、上記に示したものに限定されない。例えば、仮想サーバVとロールバック先の時刻T1とを特定するロールバック要求をロールバック制御部105が受信してロールバック処理を開始する他に、ロールバック制御部105が仮想サーバVの障害を検知して、ロールバック先の時刻T1を決定して、ロールバック処理を開始してもよい。
例えば、ロールバック先の時刻T1の決定方法は次のような処理になる。ロールバック制御部105は、設定変更テーブル300に、変更対象欄303に仮想サーバVと記憶されており時刻欄302に障害の発生時刻T4の直前の時刻または同時刻T3を記憶する行を特定する。時刻T3よりも前の時刻をロールバック先の時刻T1として決定する。
なお、ここで、当該特定した行で識別される設定変更が、それ以前におこなった設定変更と一連の設定変更となっており不可分の関係にある場合は、当該一連の設定変更前の時刻を特定し、ロールバック先の時刻T1として決定する。例えば、「変更#13」のみがロールフォワードする設定変更として特定されたとする。このとき、設定変更制約テーブル500の「条件#6」より「変更#12」「変更#13」は不可分でるため、ロールバック制御部は、「変更#12」と「変更#13」それぞれの時刻欄302に記憶された以前の時刻をロールバック先の時刻T1として決定する。このような処理を行うことにより、一連の設定変更の途中にロールバックすることを防止できる。また、ロールバック後に一連の設定変更ができないことにより障害が発生することを防止できる。さらに、ロールバック後の続きの一連の設定変更をシステム管理者が再設定する作業量を減らすことができる。
以上説明したように、本実施例では、仮想サーバのスナップショットを管理するための管理情報を格納するスナップショット付加情報テーブル200、仮想サーバの設定変更情報を記憶する設定変更テーブル300、及び管理対象の前記仮想サーバが満たすべきポリシを格納するポリシテーブル400を用いて、ロールバック要求に応答して、スナップショット付加情報テーブル200からスナップショットの管理情報を取得し、設定変更テーブル300から設定変更情報を取得し、設定変更情報から、ポリシテーブル400に格納されたポリシに合った設定変更情報を選択し、スナップショットの管理情報を参照して、ロールバックに用いるスナップショットを決定し、決定したスナップショットと選択した設定変更情報とにより仮想サーバをロールバックする。 本実施例によれば、仮想サーバのスナップショットによるリストアと、ポリシに合致した設定変更を選択的に適用するロールフォワードにより、ポリシに合致した形で仮想サーバをロールバックすることができる。
本実施例は、仮想サーバのリストアに、あらかじめポリシで定義した設定変更を適用したスナップショットを用いることで、ロールバック完了直後にポリシを満たす状態で業務を可能とする方法である。
ここでは、第1の仮想サーバにポリシに合致する設定変更があるたびに第2の仮想サーバにより第1の仮想サーバのスナップショットを読み込み当該変更処理を適用しスナップショットを記憶する処理を実行し、第1の仮想サーバをロールバックする際に当該スナップショットを読み込むことで、これを実現する。
図12は、本実施例における情報処理システムの全体処理を示すフロー図である。
(1)ロールバック制御部105はポリシ管理部103を通して記憶部110からポリシテーブル400を読み込む(ステップ1201)。
(2)ロールバック制御部105は、仮想サーバXにポリシテーブル400に記憶されたポリシSに合致する設定変更Cがあったことを検知する(ステップ1202)。
例えば、セキュリティパッチSPを適用する設定変更が仮想サーバ#1にあったとき、ロールバック制御部105は、ポリシテーブル400に記憶されたポリシ#1に合致する設定変更が仮想サーバ#1にあったとして、これを検知する。具体的には、設定変更があったとき、まず当該設定変更を設定変更テーブル300に新たな行として追加する。次に、当該行の種類欄304を参照し、ポリシ定義部402に記憶したポリシに合致するか判定する。判定の結果、合致した場合は、ポリシに合致する設定変更があったとして、当該設定変更を設定変更Cとして記憶する。合致しない場合は、当該設定変更を記憶せず処理を終了する。
ステップ1202において、ロールバック制御部105は、仮想サーバXと、設定変更Cをそれぞれ記憶する。
(3)ロールバック制御部105はスナップショット管理部113を通して記憶部116からスナップショット付加情報テーブル200を読み込む(ステップ1203)。
(4)ロールバック制御部105は、スナップショット付加情報テーブル200からスナップショットS1を特定し、スナップショット制御部111を介してスナップショットS1を用いて仮想サーバYをロールバックする(ステップ1204)。
ステップ1204におけるスナップショットS1を特定するとは、スナップショット付加情報テーブル200に記憶された仮想サーバXに関するスナップショットを特定することである。具体的には、次のような処理である。仮想サーバ#1にポリシに合致する設定変更があったとすると、スナップショット付加情報テーブル200を検索し、仮想サーバ欄202に仮想サーバ#1が記憶された行を特定し、当該行のスナップショット欄203に記憶された情報をスナップショットS1として記憶する。
なお、複数のスナップショットが特定された場合は、それぞれのスナップショットについてステップ1204以降の処理をするものとする。また、複数のスナップショットが特定された場合は、そのうち直近のスナップショットのみについてステップ1204の処理をしてもよい。また、ポリシテーブル400に記憶したポリシに応じて当該複数のスナップショットのうちポリシに合致するスナップショットにのみステップ1204の処理をしてもよい。
また、ステップ1204においてスナップショットS1を用いたロールバックをする仮想サーバYは、ステップ1202における仮想サーバXと異なる仮想サーバである。仮想サーバYは、ステップ1204において新たに起動してもよいし、既に起動している仮想サーバの中から特定してもよい。
さらに、仮想サーバYが稼働する業務実行サーバ102は、仮想サーバXが稼働する業務実行サーバ102と同じでもよいし、異なっていてもよい。また、異なる場合において、仮想サーバYの稼働する業務実行サーバ102をスナップショット記憶部115と物理的に近くであれば、ネットワークのオーバーヘッドなどを少なくすることができ、ロールバック処理を早く終わらせることができる可能性がある。また、本実施例において、仮想サーバYをロールバック制御部105が特定するに際して、スナップショット記憶部115と物理的な距離が近い業務実行サーバ102上で稼働する仮想サーバを仮想サーバYとして特定してもよい。また、スナップショット記憶部115や、スナップショット記憶部115を記憶した外部記憶装置904と同一装置上に仮想サーバYを稼働させてもよい。
また、スナップショット記憶部を実現する外部記憶装置904や、外部記憶装置インターフェース905、通信インターフェース906や、ネットワーク909の構成情報や稼働情報を参照したりして、ロールバック制御部105が迅速にロールバック処理を実行できる仮想サーバYを特定することもできる。ここでいう構成情報とは、上記インターフェースの通信速度や、通信方式などに関する情報であり、稼働情報とは、上記インターフェースなどが利用状況である。
ここでの処理を仮想サーバXが仮想サーバ#1として具体的に説明すると、スナップショット負荷情報テーブル200を検索して、仮想サーバ欄202を検索して仮想サーバ#1が記憶されている行を特定し、当該行のスナップショット欄203に記憶されたスナップショット#1とスナップショット#4とをスナップショットS1とする。仮想サーバ#1と同じ構成の仮想サーバである仮想サーバ#4と仮想サーバ#5とを新たに起動する。次に、仮想サーバ#4をスナップショット#1を用いてロールバックし、仮想サーバ#5をスナップショット#4を用いてロールバックする。
ここで、仮想サーバ#1が図1の第1仮想サーバ117Aに相当する仮想サーバとすると、仮想サーバ#4と仮想サーバ#5をそれぞれ第2仮想サーバ117Bに相当する仮想サーバという位置づけの仮想サーバとする。仮想サーバ#4と仮想サーバ#5とは、異なる仮想サーバでもよいし、同じ仮想サーバであってもよい。ただし、同じ仮想サーバの場合は、スナップショット#1とスナップショット#4のどちらか一方をステップ1204からステップ1206までの処理を実行し完了させてからもう一方についてステップ1204からステップ1206までの処理を実行し完了させる必要がある。
(5)ロールバック制御部105は、設定配布部107を介して仮想サーバYに設定変更Cを適用してロールフォワードする(ステップ1205)。
ここでの処理を仮想サーバXが仮想サーバ#1としスナップショットS1をスナップショット#1とスナップショット#4とし、仮想サーバYをスナップショット#1とスナップショット#4と対応させてそれぞれ仮想サーバ#4と仮想サーバ#5とし、設定変更CをセキュリティパッチSPの適用として、具体的に説明する。ロールバック制御部105は、設定配布部107を介して、仮想サーバ#4にセキュリティパッチSPを適用する。また、同様に設定配布部107を介して、仮想サーバ#5にセキュリティパッチSPを適用する。
なお、図示してないが、設定変更テーブル300に新たな列を設け、スナップショットに設定変更を適用したかが判定できるフラグ情報を記憶できるようにしてもよい。例えば、当該列をスナップショット適用フラグ欄とし、当該欄に記憶するフラグ情報としてスナップショットに設定変更を適用してない場合「F」とし、適用した場合「T」とする。そうすると、ステップ1205において、ロールバック制御部は、設定変更管理部106を介して、設定変更テーブル300を検索し、設定変更Cが記憶された行のスナップショット適用フラグ欄を「F」から「T」に変更する。スナップショット適用フラグ欄を設けることによって、後述するステップ1210で仮想サーバXをロールバックした後、ポリシに合致しなかった個別の設定変更を適用する際に、既に適用された設定変更Cを除外して適用できたり、既に適用された設定変更Cと同時に設定できない設定変更を適用から除外できる。
(6)ロールバック制御部105は、スナップショット制御部112を介して、仮想サーバYのスナップショットS2を記憶する(ステップ1206)。
ステップ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と仮想サーバ#5として、具体的に説明する。なお、ここでは上書きする例を説明する。ロールバック制御部115は、スナップショット制御部112を介して、仮想サーバ#4のスナップショット記憶し、スナップショット#6としてスナップショット記憶部115に記憶する。仮想サーバ#5のスナップショット記憶し、スナップショット#7としてスナップショット記憶部115に記憶する。また、ロールバック制御部115は、スナップショット付加情報テーブル200を検索し、スナップショット欄203にスナップショット#1が記憶された行のスナップショット欄203をスナップショット#6という文字列で置き換える。また、スナップショット負荷情報テーブル200を検索し、スナップショット欄203にスナップショット#4が記憶された行のスナップショット欄203をスナップショット#7という文字列で置き換える。さらに、ロールバック制御部105は、スナップショット制御部112を介して、スナップショット#1とスナップショット#4を削除する。
(7)ロールバック制御部115はシステム管理者からロールバック要求メッセージを受信し、当該メッセージから仮想サーバXとロールバック先の時刻である時刻T1を取得する(ステップ1207)。
ロールバック先の時刻T1は、システム管理者が仮想サーバXをロールバックさせようとしている過去の時刻である。ロールバック御部105は、当該時刻T1における仮想サーバXの状態に戻す。ただし、当該時刻T1における状態そのものではなく、時刻T1以降に設定されたポリシに合致する設定変更は適用されている。
なお、ステップ1207は、ロールバック要求メッセージをシステム管理者から受信するだけに限定されず、例えば、ロールバック制御部115が、仮想サーバXに障害が発生したことを検知し、当該障害が発生する直前の時刻としてロールバック先時刻T1を特定するとしてもよい。障害が発生する直前の時刻とは、例えば、障害が発生する直前に設定変更があった場合は、当該設定変更をする直前の時刻である。当該時刻を特定する際、設定変更テーブル300を検索し、障害の発生原因となった設定変更が記憶された行を特定し、当該行の時刻欄302に記憶された時刻を障害の発生時刻とする。
(8)ロールバック制御部105はスナップショット管理部113から記憶部116に記憶されたスナップショット付加情報テーブル200を読み込む(ステップ1208)。
(9)ロールバック制御部105はスナップショット付加情報テーブル200を元に、仮想サーバXを時刻T1に戻すロールバック処理Fを決定する(ステップ1209)。
ステップ1209の処理を仮想サーバXが仮想サーバ#1とし、時刻T1を2008/01/13として、具体的に説明する。ロールバック制御部105は、スナップショット付加情報テーブル200を検索して、仮想サーバ欄202に仮想サーバ#1が記憶され、時刻欄201に2008/1/13以前の直近の時刻が記憶された行を特定し、当該行のスナップショット欄203を参照すると、スナップショット#7として記憶されている。そのため、ロールバック処理Fとして、スナップショット#7を用いてロールバックすると決定する。
(10)ロールバック制御部は、ロールバック処理Fで特定したスナップショットS2をスナップショット管理部を介して読み込み、スナップショット制御部を介して仮想サーバV1をスナップショットS2を用いてリストアする(ステップ1210)。
ステップ1210の処理を仮想サーバXが仮想サーバ#1とし、ロールバック処理Fをスナップショット#7を用いてロールバックするとして、具体的に説明する。ロールバック制御部105は、スナップショット管理部113を介して、スナップショット#7を読み込み、スナップショット制御部111を介して、仮想サーバ#1をスナップショット#7を用いてリストアする。それにより、仮想サーバ#1をロールバックすることができる。
以上説明したように、本実施例では、第1及び第2の仮想サーバのスナップショットを管理するための情報を格納するスナップショット付加情報テーブル200、及び管理対象の第1の仮想サーバが満たすべきポリシを格納するポリシテーブル300を用いて、第2の仮想サーバを生成し、スナップショット付加情報テーブル200の管理情報を参照して、第1の仮想サーバのスナップショットを第2の仮想サーバに読み込み、第1の仮想サーバの設定変更の検知に応答して、検知した設定変更がポリシテーブル300に格納されたポリシに合っているならば、第2の仮想サーバに検知した設定変更を適用し、設定変更を適用した第2の仮想サーバのスナップショットを記憶し、ロールバック要求に応答して、第1の仮想サーバに記憶した第2の仮想サーバのスナップショットを読み込む。
本実施例は、仮想サーバのロールバック直後にポリシを満たした形で業務システムの再開する方法の第3の実現方法である。ここでは、あらかじめ定義したポリシに合致する設定変更処理が完了した直後に仮想サーバのスナップショットを記憶することにより実現する。
図13は、本実施例の全体処理フローを示している。
(1)ロールバック制御部はポリシ管理部からポリシ情報Pを読み込む(ステップ1301)。
(2)ロールバック制御部は、仮想サーバXにポリシSに合致する設定変更Cがあったことを検知する(ステップ1302)。
(3)ロールバック制御部は、仮想サーバXのI/Oを監視し、設定変更Cが反映されたか否かを判定する(ステップ1303)。
ここでいう、仮想サーバXのI/Oとは、例えば、仮想サーバXに到着した要求メッセージであってもよい。また、ネットワークのパケットやディスク読み込み・書き込み要求であってもよい。
(4)ロールバック制御部は、設定変更Cが反映されたと判定した場合は、スナップショット制御部を介して、仮想サーバXのスナップショットを記憶する(ステップ1304)。
(5)以降の処理は、ステップ1208〜ステップ1210と同様である。
以上説明したように、本実施例では、実施例2における仮想サーバの設定変更の検知を、仮想サーバの設定変更の後、仮想サーバへのリクエストが所定のリクエスト件数が達したことの検知とする。
本発明の第4の実施例は、仮想サーバのロールバック直後に障害なく業務システムを再開する方法である。ここでは、同一業務システムを構成する仮想サーバを同一時刻に記憶したスナップショットを用いてロールバックして業務システム単位のロールバックを実現し、障害が発生することを防止する方法を示す。
図14は、本実施例のロールバック処理の全体処理フローを示している。ここでは、同一時刻に記憶したスナップショットは、設定情報間に整合性があると仮定して、同一業務システムを構成する仮想サーバのそれぞれを同一時刻に記憶したスナップショットを用いてロールバックすることにより、業務システムをロールバックする処理を示す。
(1)ロールバック制御部105は、構成管理部108を介して業務構成テーブル700を読み込み、仮想サーバV1と同一業務システムを構成する仮想サーバV2を特定する(ステップ1401)。
具体的な処理は次のような処理となる。ロールバック制御部105は、業務構成テーブル700を検索し、仮想サーバ欄702が仮想サーバV1となる行の業務システム欄701に記憶された業務システムを業務システムG1とする。さらに、ロールバック制御部105は、業務構成テーブル700を検索して、業務システム欄701に業務システムG1が記憶された行の仮想サーバ欄に記憶された仮想サーバを仮想サーバV2とする。ここで、業務システム欄701に業務システムG1が記憶された行が複数行ある場合は、その全ての行について仮想サーバ欄702に記憶された行の仮想サーバを取得し仮想サーバV2とする。
(2)ロールバック制御部105はスナップショット管理部113を介してスナップショット付加情報テーブル200を読み込む(ステップ1402)。
(3)ロールバック制御部はスナップショット付加情報テーブル700から仮想サーバV1と仮想サーバV2とをロールバック先時刻T1に戻すロールバック処理Fを決定する(ステップ1403)。
具体的な処理は次のような処理になる。ロールバック制御部105は、スナップショット付加テーブル700のうち時刻欄201にロールバック先時刻T1以前の時刻が記憶された行を直近の時刻が記憶された行から順番に検索し、第1の行の時刻欄201と第2の行の時刻欄201に同一時刻が記憶され、第1の行の仮想サーバ欄202に仮想サーバV1が記憶され第2の行に仮想サーバV2が記憶されものを検索する。このような第1の行のスナップショット欄203に記憶された情報をスナップショットS1とし、第2の行のスナップショット欄203に記憶された情報をスナップショットS2とする。また、第1の行と第2の行の時刻欄201に記憶された情報をそれぞれ時刻T21、時刻T22とする。
そこで、スナップショットS1を用いて仮想サーバV1をリストアし、スナップショットS2を用いて仮想サーバV2をリストアすることと決定する。
さらに、ロールバック制御部105は、ポリシテーブル400と、設定変更テーブル300を読み込み、ポリシテーブル400に定義したポリシに合致する時刻設定変更を設定変更テーブル300より特定する。
具体的には、設定変更テーブル300を検索し、時刻欄302に時刻T21から時刻T1までの時刻が記憶され、変更対象欄303に仮想サーバV1が記憶された行を特定し、ポリシテーブルに記憶されたポリシ定義を満たすもののみ、設定変更欄305に記憶された内容をC1とする。ここで特定される行が複数行ある場合は、その全てについて同様の操作をし、設定変更欄305に記憶された内容をC1とする。
また、同様に、設定変更テーブル300を検索し、時刻欄302に時刻T22から時刻T1までの時刻が記憶され、変更対象欄303に仮想サーバV2が記憶された行を特定し、ポリシテーブル400に記憶されたポリシ定義を満たすもののみ、設定変更欄305に記憶された内容をC2とする。ここで特定される行が複数行ある場合は、その全てについて同様の操作をし、設定変更欄305に記憶された内容をC2とする。
最後に、仮想サーバV1については、スナップショットS1を用いてリストアし、設定変更C1を適用するロールフォワードをする処理をロールバック処理Fとする。また、仮想サーバV2については、スナップショットS2を用いてリストアし、設定変更C2を適用するロールフォワードをする処理をロールバック処理Fとする。
(4)ロールバック制御部105は、ロールバック処理Fで特定したスナップショットS1とスナップショットS2とをスナップショット管理部113を介して読み込み、スナップショット制御部を介して仮想サーバV1をスナップショットS1を用いてリストアし、スナップショットS2を用いて仮想サーバV2をリストアする(ステップ1404)。
(5)ロールバック制御部105は、ロールバック処理Fで特定した設定変更C1と設定変更C2とを設定変更配布部107を介して、仮想サーバV1と仮想サーバV2とに適用しロールフォワードする(ステップ1405)。
以上説明したように、本実施例では、複数の仮想サーバのスナップショットの履歴情報を管理するスナップショット付加情報テーブル200、管理対象の前記仮想サーバが満たすべきポリシを格納するポリシテーブル300、複数の仮想サーバの業務構成情報を管理する業務構成テーブル700、及び複数の仮想サーバの設定変更情報を記憶する設定変更テーブル300を用いて、ロールバック要求に応答して、業務構成テーブル700から業務構成情報を読込み、業務構成情報からロールバック要求された仮想サーバの属する業務に係る仮想サーバ一覧を取得し、スナップショット付加情報テーブル200から、仮想サーバ一覧に含まれる各仮想サーバのスナップショットの履歴情報を取得し、設定変更テーブル300から、仮想サーバ一覧に含まれる各仮想サーバの設定変更情報を取得し、取得した設定変更情報から、ポリシテーブル400に格納されたポリシに合った設定変更情報を選択し、仮想サーバ一覧に含まれる各仮想サーバのロールバックに用いるスナップショットを決定し、決定したスナップショットと選択した設定変更情報とにより仮想サーバ一覧に含まれる各仮想サーバをロールバックする。
本実施例は、仮想サーバのロールバック直後に障害なく業務システムを再開する方法であり、第4の実施例を一部変更した実施例である。業務単位にロールバックする処理を実現する方法を示す。ここでは、設定情報間の制約条件を満たす仮想サーバのそれぞれのスナップショットを特定し、ロールバックする方法を示す。第6の実施例でも同様の実施例を示しているが、ここでは、複数の仮想サーバの異なる時刻のスナップショットを用いてリストアした後、設定制約関係にある設定変更を適用する処理を実行してロールバックすることにより、設定情報間の不整合をなくし、障害なく業務システムを再開する。
図15は、本実施例のロールバック処理の全体処理フローを示している。
(1)ロールバック制御部105は、システム管理者からロールバック要求メッセージを受信し、当該ロールバック要求メッセージから、仮想サーバV1とロールバック先時刻T1を特定する(ステップ1501)。
なお、システム管理者がロールバック要求メッセージを送信するほかに、ロールバック制御部105が仮想サーバV1の障害を検知して、障害発生前の時刻T1を特定する処理でステップ1501の処理を置き換えてもよい。
(2)ロールバック制御部105は、スナップショット管理部113を介してスナップショット付加情報テーブル200を読み込み、構成管理部108を介して業務構成テーブル700を読み込み、設定変更管理部106を介して設定制約テーブル600と設定変更テーブル300を読み込む(ステップ1502)。
(3)ロールバック制御部105は、業務構成テーブル700から仮想サーバV1と同一業務システムを構成する仮想サーバV2を特定する(ステップ1503)。
具体的に名処理は次のようになる。業務構成テーブル700は、業務構成テーブル700を検索し、仮想サーバ欄702に仮想サーバV1が記憶された行を特定し、当該行の業務システム欄701に記憶指された情報を業務システムG1とする。
業務構成テーブル700を検索し、業務システム欄701に業務システムG1が記憶された行を特定し当該行の仮想サーバ欄702に記憶された情報を仮想サーバV2とする。ここで特定された行が複数ある場合は、その全てについて同様の操作を行う。
(4)ロールバック制御部105は、スナップショット付加情報テーブル200から時刻T1以前の仮想サーバV1、V2の最新のスナップショットS1,S2を特定する(ステップ1504)。
具体的な処理は次のようになる。スナップショット付加情報テーブル200を検索し、仮想サーバ欄202に仮想サーバV1が記憶され、時刻欄201に時刻T1以前の情報が記憶された行を特定する。当該特定された行のうち、最新の時刻が記憶された行のスナップショット欄203をスナップショットS1とする。当該行の時刻欄201に記憶された時刻を時刻T21とする。
スナップショット付加情報テーブル200を検索し、仮想サーバ欄202に仮想サーバV2が記憶され、時刻欄201に時刻T1以前の情報が記憶された行を特定する。当該特定された行のうち、最新の時刻が記憶された行のスナップショット欄203をスナップショットS2とする。当該行の時刻欄201に記憶された時刻を時刻T22とする。
(5)ロールバック制御部は、設定制約テーブルに定義された制約条件を判定する(ステップ1505)。
具体的には次のような処理を行う。ここで、時刻T21が最も直近の時刻であり、続いて時刻T22順に直近の時刻である場合について説明する。
設定変更テーブル300を検索し、時刻欄302に時刻T21から時刻T22までの時刻が記憶され、変更対象欄303に仮想サーバV2が記憶された行を特定し、当該行の設定変更欄305に記憶された情報をC2とする。複数行ある場合は、それぞれについて処理し、C2とする。
設定制約テーブル600を検索し、設定情報欄602に、設定変更C2で特定される設定変更の対象となる設定情報が記憶されており制約情報欄603の制約条件を満たしているかを判定する。
(6)ロールバック制御部105は、ステップ1505の判定で制約条件を満たさない設定変更Cを特定する(ステップ1506)。
上記ステップ1505の設定変更C2で特定される設定変更の対象となる設定情報が記憶されているか判定した結果、満たしていない設定条件がある場合は、設定変更C2をその制約条件を満たしていない設定変更C3とする。
(7)設定変更C3を適用する(ステップ1507)。
ロールバック制御部105は、設定配布部107を介して、設定変更C3を適用し仮想サーバV2をロールフォワードする。
以上説明したように、本実施例では、実施例4において、複数の仮想サーバの設定情報間の制約条件を管理する設定制約テーブルをさらに有し、選択した設定変更情報から、さらに設定制約テーブルの制約条件を満足する設定変更情報を選択する。
なお、以上の実施例では、全ての仮想サーバをロールバックしているが、設定制約関係のない仮想サーバV2、V3については、ロールバックさせないという処理も可能である。
以上のような実施例によれば、業務システム単位にロールバックさせることができる。また、仮想サーバの設定情報間の不整合により2次的な障害発生を防止できる。
設定情報の反映にOSの再起動が必要な場合も多いが、本実施例によれば、スナップショットによるリストア後の設定情報の再設定を減らせるため、設定変更の反映処理に必要となるOSの再起動回数を減らすことができ、OSの再起動に伴って発生する業務の停止時間を短縮できる。
異なる時刻のスナップショットを用いて仮想サーバをロールバックできる。また、同一業務システムを構成するが、他の仮想サーバと設定制約関係のない仮想サーバについては、直近のスナップショットを用いてロールバックさせることにより、時刻T1に戻すために必要となる設定情報の再設定作業を減らすことができる。
本実施例は、仮想サーバのロールバック直後に障害なく業務システムを再開する方法であり、第4の実施例を一部変更した実施例である。業務システム単位にロールバックする処理を実現する方法を示す。ここでは、業務システムを構成するそれぞれの仮想サーバの複数世代のスナップショットから、設定情報間の制約条件を満たす仮想サーバのそれぞれのスナップショットを特定し、ロールバックする方法を示す。第5の実施例でも同様の実施例を示しているが、ここでは、スナップショット間で設定制約関係を満たすような複数の仮想サーバの異なる時刻のスナップショットを用いてリストアすることにより、設定情報間の不整合をなくし、障害なく業務システムを再開する。
図16は、本実施例の全体処理を示す処理フローである。
(1)ロールバック制御部105は、システム管理者からロールバック要求メッセージを受信し、当該ロールバック要求メッセージから、仮想サーバV1とロールバック先時刻T1を特定する(ステップ1601)。
なお、システム管理者がロールバック要求メッセージを送信するほかに、ロールバック制御部105が仮想サーバV1の障害を検知して、障害発生前の時刻T1を特定する処理でステップ1601の処理を置き換えてもよい。
(2)ロールバック制御部105は、スナップショット管理部を介してスナップショット付加情報テーブルを読み込み、構成管理部を介して業務構成テーブル700を読み込み、設定変更管理部106を介して設定制約テーブル600と設定変更テーブル300を読み込む(ステップ1602)。
(3)ロールバック制御部105は、業務構成管理テーブル700から仮想サーバと同一業務システムを構成する仮想サーバV2、V3を特定する(ステップ1603)。
(4)ロールバック制御部105は、スナップショット付加情報テーブル200から仮想サーバV1、V2、V3の最新のスナップショットS1,S2,S3を特定する(ステップ1604)。
具体的な処理は次のようになる。スナップショット付加情報テーブル200を検索し、仮想サーバ欄202に仮想サーバV1が記憶され、時刻欄201に時刻T1以前の情報が記憶された行を特定する。当該特定された行のうち、最新の時刻が記憶された行のスナップショット欄203をスナップショットS1とする。当該行の時刻欄201に記憶された時刻を時刻T21とする。スナップショット付加情報テーブル200を検索し、仮想サーバ欄202に仮想サーバV2が記憶され、時刻欄201に時刻T1以前の情報が記憶された行を特定する。当該特定された行のうち、最新の時刻が記憶された行のスナップショット欄203をスナップショットS2とする。当該行の時刻欄201に記憶された時刻を時刻T22とする。スナップショット付加情報テーブル200を検索し、仮想サーバ欄202に仮想サーバV3が記憶され、時刻欄201に時刻T1以前の情報が記憶された行を特定する。当該特定された行のうち、最新の時刻が記憶された行のスナップショット欄203をスナップショットS3とする。当該行の時刻欄201に記憶された時刻を時刻T23とする。ここで、T21が最も直近の時刻で、T22、T23の順に遅いと仮定する。
(5)ロールバック制御部105は、設定制約テーブルに定義された制約条件を判定する(ステップ1605)。判定の結果、制約条件を満たす場合は処理を終了する。判定の結果、判定条件を満たさない場合は、ステップ1606に進む。
具体的な処理は次のようになる。ロールバック制御部105は、設定変更テーブル300を検索し、時刻欄302に時刻T21から時刻T23までの時刻が記憶され、変更対象欄303に仮想サーバV1が記憶された行を特定し、当該行の設定変更欄305の情報を設定変更C1とする。ロールバック制御部105は、設定制約テーブル600を検索し、設定変更C1で特定される設定情報が設定情報欄602に記憶されている行を特定し、当該行の制約情報欄に記憶された条件を満たしているか判定する。また、ロールバック制御部105は、設定変更テーブル300を検索し、時刻欄302に時刻T22から時刻T23までの時刻が記憶され、変更対象欄303に仮想サーバV2が記憶された行を特定し、当該行の設定変更欄305の情報を設定変更C2とする。ロールバック制御部105は、設定制約テーブル600を検索し、設定変更C2で特定される設定情報が設定情報欄602に記憶されている行を特定し、当該行の制約情報欄に記憶された条件を満たしているか判定する。
(6)ロールバック処理部105は、ステップ1605の判定で制約条件を満たさない仮想サーバVを特定する(ステップ1606)。
具体的な処理は次のようになる。設定変更C1が条件を満たしていないと判定した場合は、仮想サーバV1を、制約条件を満たさない仮想サーバVとして特定する。設定変更C2が条件を満たしていないと判定した場合は、仮想サーバV2を、制約条件を満たさない仮想サーバVとして特定する。
(7)ロールバック処理部105は、スナップショット付加テーブルから次に最新の仮想サーバVのスナップショットを特定し、Sとする(ステップ1607)。ステップ1605に戻る。
ロールバック制御部105は、スナップショット付加テーブル200を検索して、仮想サーバ欄202に仮想サーバV1が記憶され、時刻欄201に時刻T21よりも前の時刻が記憶されている行を特定し、当該行のスナップショット欄203に記憶された情報を新たにスナップショットS1とする。また、当該行の時刻欄201に記憶された時刻を新たに時刻T21とする。
ロールバック制御部105は、スナップショット付加テーブル200を検索して、仮想サーバ欄202に仮想サーバV2が記憶され、時刻欄201に時刻T22よりも前の時刻が記憶されている行を特定し、当該行のスナップショット欄203に記憶された情報を新たにスナップショットS2とする。また、当該行の時刻欄201に記憶された時刻を新たに時刻T22とする。ステップ1607が終了したら、ステップ1605に戻る。
なお、以上の実施例では、全ての仮想サーバをロールバックしているが、設定制約関係のない仮想サーバV2、V3については、ロールバックさせないという処理も可能である。
以上のような実施例によれば、業務システム単位にロールバックさせることができる。また、仮想サーバの設定情報間の不整合により2次的な障害発生を防止できる。
設定情報の反映にOSの再起動が必要な場合も多いが、本実施例によれば、スナップショットによるリストア後の設定情報の再設定を減らせるため、設定変更の反映処理に必要となるOSの再起動回数を減らすことができ、OSの再起動に伴って発生する業務の停止時間を短縮できる。
異なる時刻のスナップショットを用いて仮想サーバをロールバックできる。また、同一業務システムを構成するが、他の仮想サーバと設定制約関係のない仮想サーバについては、直近のスナップショットを用いてロールバックさせることにより、時刻T1に戻すために必要となる設定情報の再設定作業を減らすことができる。