(58)【調査した分野】(Int.Cl.,DB名)
前記第2の切替手段は、いずれかのサーバ装置に障害が発生すると、前記第1の記憶装置および前記第2の記憶装置の状態に応じて、データ記憶に係る処理のモードを決定する、請求項1または2に記載の情報処理システム。
前記第2の切替手段は、前記第1のサーバ装置に障害が発生したときに、前記第1の記憶装置および前記第2の記憶装置がいずれも健全であれば、前記第2の記憶装置を主として前記第1の記憶装置との間でデータの同期化処理を実行させる、請求項3に記載の情報処理システム。
前記第2の切替手段は、前記第1のサーバ装置に障害が発生したときに、前記第1の記憶装置が健全でなければ、前記第2の記憶装置に単独でデータ記憶処理を実行させる、請求項3または4に記載の情報処理システム。
第1のサーバ装置と、前記第1のサーバ装置と第1のネットワークを介して接続され、前記第1のサーバ装置とは異なる場所に配置された第2のサーバ装置とを備える情報処理システムにおける制御方法であって、
前記情報処理システムは、前記第1のサーバ装置がアクセスする第1の記憶装置と、前記第2のサーバ装置がアクセスする第2の記憶装置とをさらに備え、前記第1の記憶装置と前記第2の記憶装置とは、前記第1のサーバ装置および前記第2のサーバ装置とともに第2のネットワークを介して接続されており、前記制御方法は、
前記第1のサーバ装置および前記第2のサーバ装置のうちアクティブに設定されたサーバ装置に障害が発生すると、他方のサーバ装置をアクティブに切り替える切替ステップと、
前記第1のサーバ装置がアクティブに設定されている場合に、前記第1の記憶装置を主として前記第2の記憶装置との間でデータの同期化処理を実行させるとともに、前記第2のサーバ装置がアクティブに切り替えられると、前記第2の記憶装置を主としてデータ記憶に係る処理を実行させる実行ステップとを含み、
前記実行ステップは、前記第1のサーバ装置および前記第2のサーバ装置の一方から、前記第2のネットワークを介して前記第1の記憶装置および前記第2の記憶装置の両方に必要な指令を出力するステップを含む、制御方法。
第1のサーバ装置と、前記第1のサーバ装置と第1のネットワークを介して接続され、前記第1のサーバ装置とは異なる場所に配置された第2のサーバ装置とを備える情報処理システムにおいて、前記第1のサーバ装置および前記第2のサーバ装置で実行される制御プログラムであって、
前記情報処理システムは、前記第1のサーバ装置がアクセスする第1の記憶装置と、前記第2のサーバ装置がアクセスする第2の記憶装置とをさらに備え、前記第1の記憶装置と前記第2の記憶装置とは、前記第1のサーバ装置および前記第2のサーバ装置とともに第2のネットワークを介して接続されており、
前記制御プログラムは、他方のサーバ装置の状態を監視する監視アプリケーションによって、他方のサーバ装置に障害が発生したことが検知されると起動され、
前記制御プログラムは、前記サーバ装置に、
前記第1のサーバ装置がアクティブに設定されている場合に、前記第1の記憶装置を主として前記第2の記憶装置との間でデータの同期化処理を実行させるステップと、
前記第2のサーバ装置がアクティブに切り替えられると、前記第2の記憶装置を主としてデータ記憶に係る処理を実行させるステップとを実行させ、
前記処理を実行させるステップは、前記第2のネットワークを介して前記第1の記憶装置および前記第2の記憶装置の両方に必要な指令を出力するステップを含む、制御プログラム。
【発明を実施するための形態】
【0020】
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。
【0021】
<A.情報処理システムの概要>
まず、本実施の形態に従う情報処理システムの概要について説明する。
図1は、本実施の形態に従う情報処理システムの構成を示す模式図である。
図1を参照して、本実施の形態に従う情報処理システムSYSは、複数の処理センターで構成される。
図1には、2つの処理センター1および2からなる情報処理システムSYSの例を示すが、これに限られることなく、3つ以上の処理センターを配置する構成を採用してもよい。
【0022】
処理センター1および2の各々には、サーバ装置および記憶装置が配置される。より詳細には、処理センター1は、サーバ装置100と、記憶装置150とを含み、処理センター2は、サーバ装置200と、記憶装置250とを含む。なお、処理センター1と処理センター2との間で、各々に含まれる装置構成を同一にする必要はない。
【0023】
情報処理システムSYSにおいて、サーバ装置100とサーバ装置200とはHA構成になっている。より具体的には、サーバ装置100は、処理センター1のローカルネットワーク190を介して、広域ネットワーク4に接続されており、サーバ装置200は、処理センター2のローカルネットワーク290を介して、広域ネットワーク4に接続されている。このようなネットワーク構成によって、サーバ装置100とサーバ装置200との間では、必要なデータを遣り取りすることができる。後述するように、サーバ装置100および200の各々では、互いに状態を監視する監視アプリケーションが実行されており、一方のサーバ装置において何らかの障害が発生すると、その処理を引継ぐ処理が実行される。
【0024】
このように、情報処理システムSYSは、サーバ装置100と、サーバ装置100と広域ネットワーク4を介して接続され、サーバ装置100とは異なる場所に配置されたサーバ装置200とを含む。情報処理システムSYSには、サーバ装置100およびサーバ装置200のうち一方をアクティブに設定するとともに、アクティブに設定されたサーバ装置に障害が発生すると、他方のサーバ装置をアクティブに切り替えるための切替機能が実装されている。このような切替機能によって、サーバ装置100とサーバ装置200との間のHA構成が実現される。
【0025】
記憶装置150には、サーバ装置100が主としてアクセスし、記憶装置250には、サーバ装置200が主としてアクセスする。記憶装置150および250自体が冗長系になっていることが好ましく、本実施の形態においては、複数の物理的な記憶デバイス(典型的には、ハードディスク)を組み合わせることで、サーバ装置からは仮想的に一つの記憶装置(記憶ボリューム)として扱うことができる構成が採用されている。すなわち、記憶装置150および250の各々は、複数のハードディスクからなるディスクアレイとして構成される。このような意味において、記憶装置150および250を、以下「仮想ストレージ」とも記す。このような仮想ストレージを実現するために、サーバ装置100と記憶装置150との間は、SAN(Storage Area Network)を介して接続されており、サーバ装置200と記憶装置250との間も、SANを介して接続されている。
【0026】
情報処理システムSYSにおいて、記憶装置150と記憶装置250とについてもHA構成になっている。より具体的には、記憶装置150が接続されるSANと記憶装置250が接続されるSANとの間は、光ネットワーク6を介して接続されている。一例として、情報処理システムSYSにおいては、記憶装置150が接続されるSANには、WDM(Wavelength Division Multiplexing)変換器194が接続されており、記憶装置250が接続されるSANには、WDM変換器294が接続されている。WDM変換器194と変換器294との間には光ファイバが設けられており、必要なデータが遣り取りされる。正常な状態では、記憶装置150と記憶装置250との間で同期化処理が実行されており、記憶装置150および記憶装置250の間では、同一のデータが保持している状態(同期状態)が維持される。この同期状態において、基本的には、一方の記憶装置が「主」(以下「プライマリ」とも記す。)となり、他方の記憶装置が「副」(以下「セカンダリ」とも記す。)になっている。つまり、プライマリに設定された記憶装置は、保持しているデータに対する追加・削除・変更などを検知すると、その内容をセカンダリに設定された記憶装置に対しても反映する。
【0027】
情報処理システムSYSにおいては、基本的には、アクティブ化されているサーバ装置に対応する記憶装置がプライマリに設定される。例えば、サーバ装置100がアクティブに設定されている場合には、対応する記憶装置150がプライマリに設定され、記憶装置250に対して同期化処理を実行する。逆に、サーバ装置200がアクティブに設定されている場合には、対応する記憶装置250がプライマリに設定され、記憶装置150に対して同期化処理を実行する。但し、これらに限られることなく、記憶装置150および250のうち一方を常にプライマリに設定しておいてもよい。
【0028】
上述したように、サーバ装置100および200の各々では、互いに状態を監視する監視アプリケーションが実行されており、一方のサーバ装置において何らかの障害が発生すると、サーバ装置同士で処理の引継ぎが実行される。この処理の引継ぎに応じて、記憶装置150と記憶装置250との間でも同期化処理に係るプライマリの切り替えなどが実行される。
【0029】
このように、情報処理システムSYSは、サーバ装置100がアクセスする記憶装置150と、サーバ装置200がアクセスする記憶装置250とを有している。記憶装置150と記憶装置250とは、光ネットワーク6を介して接続されている。そして、サーバ装置100がアクティブに設定されている場合に、記憶装置150をプライマリとして記憶装置250との間でデータの同期化処理を実行させるとともに、サーバ装置200がアクティブに切り替えられると、記憶装置250をプライマリとしてデータ記憶に係る処理を実行させるための、切替機能が実装されている。このような切替機能によって、記憶装置150と記憶装置250との間でもHA構成が実現される。
【0030】
このように、本実施の形態に従う情報処理システムSYSにおいては、いわば処理センター同士がHA構成になっている。
【0031】
次に、アクティブで運用中のサーバ装置に何らかの障害が発生した場合の動作について、
図2を参照しつつ説明する。
図2は、本実施の形態に従う情報処理システムにおける切替処理の構成を示す模式図である。
図2(a)には、サーバ装置100がアクティブに設定されており、サーバ装置200がスタンバイに設定されている状態を示す。広域ネットワーク4を介して接続されているローカルネットワーク190および290は、同一セグメント化されている。すなわち、ローカルネットワーク190および290に接続されるノードに割り当てられるネットワークアドレス(典型的には、IP(Internet Protocol)アドレス)は、同一のセグメントに属することになる。
【0032】
図2(a)に示す状態においては、アクティブに設定されているサーバ装置100に対して、仮想IPアドレスが割り当てられている。この仮想IPアドレスは、アクティブなサーバ装置に割り当てられ、広域ネットワーク4に直接的または間接的に接続されている各種クライアント装置(図示しない)がサーバ装置へアクセスする際に用いられる。すなわち、クライアント装置は、予め定められた単一の仮想IPアドレスに基づいてサーバ装置を特定する。この仮想IPアドレスは、サーバ装置のアクティブ/スタンバイの状態に応じて、動的に割り当てられる。あるいは、DNS(Domain Name System)を用いることで、クライアント装置から同一のホスト名を用いて、アクティブなサーバ装置に適宜アクセスできるようになる。各サーバ装置は、本来のIPアドレスを別に有している場合もある。また、記憶装置150と記憶装置250との間では、記憶装置150がプライマリになって両者の間の同期化処理を実行する。
【0033】
図2(b)に示す状態において、サーバ装置100に何らかの障害が発生した場合を考える。このとき、スタンバイであったサーバ装置200がアクティブに設定されるとともに、サーバ装置100に割り当てられていた仮想IPアドレスがサーバ装置200へ割り当てられる。すなわち、クライアント装置から見れば、仮想IPアドレスに基づいて特定されるサーバ装置がサーバ装置200へ切り替えられる。
【0034】
このサーバ装置間の引継ぎ処理(テイクオーバ)と並行して、記憶装置についても引継ぎ処理(テイクオーバ)が実行される。具体的には、記憶装置250がプライマリになり、記憶装置150がセカンダリになる。これによって、記憶装置150と記憶装置250との間で同期化処理が継続される。
【0035】
このようなサーバ装置および記憶装置のそれぞれがテイクオーバを実行することで、処理センター1(サイト)自体が災害などで損傷を受けた場合であっても、サーバ装置の運用およびデータの利用を継続できる。
【0036】
<B.ハードウエア構成>
次に、本実施の形態に従う情報処理システムSYSに含まれるサーバ装置100および200ならびに記憶装置150および250のハードウエア構成について説明する。
【0037】
典型的には、サーバ装置100および200は、汎用アーキテクチャに従うコンピュータで構成される。説明の便宜上、サーバ装置100について説明するが、サーバ装置200についても同様の構成で実現される。
図3は、本実施の形態に従う情報処理システムSYSに含まれるサーバ装置のハードウエア構成を示す模式図である。
【0038】
図3を参照して、サーバ装置100は、プロセッサ102と、メモリ104と、ネットワークインターフェイス106と、ハードディスク(HDD)108と、ファイバチャネルインターフェイス110と、光学ドライブ112とを含む。これらの各コンポーネントは、内部バス116を介して互いにデータ通信可能に構成されている。
【0039】
プロセッサ102は、サーバ装置100における各種処理を実行する演算主体である。なお、サーバ装置100の処理量に応じて、マルチプロセッサ構成やマルチコアプロセッサが採用されることもある。メモリ104は、典型的には、DRAM(Dynamic Random Access Memory)などの不揮発性メモリから構成され、プロセッサ102がプログラムを実行するために必要な命令コードや各種データを保持するワーキングメモリとして機能する。ネットワークインターフェイス106は、ローカルネットワーク190を介して、他のサーバ装置とデータを遣り取りするための処理を実行する。ハードディスク108は、プロセッサ102で実行されるOS(Operating System)、監視アプリケーション、後述するような切替処理を実行するためのスクリプトなどを格納している。なお、サーバ装置100が扱うデータは、基本的には、記憶装置150に格納されることになっており、ハードディスク108には、サーバ装置100を動作させるためのシステムプログラムなどを格納する。
【0040】
ファイバチャネルインターフェイス110は、SANを介して、記憶装置150にアクセスするための処理を実行する。なお、SANが多重化されている場合には、ファイバチャネルインターフェイス110も複数のチャネルを介してデータを遣り取りできるように構成される。光学ドライブ112は、DVD−ROM(Digital Versatile Disc Read Only Memory)やCD−ROM(Compact Disc Read Only Memory)などの光学記録媒体114からプログラムなどを読出して、ハードディスク108へインストールなどを行う。
【0041】
典型的には、記憶装置150および250には、複数の物理的な記憶デバイス(典型的には、ハードディスク)が実装される。説明の便宜上、記憶装置150について説明するが、記憶装置250についても同様の構成で実現される。
図4は、本実施の形態に従う情報処理システムSYSに含まれる記憶装置のハードウエア構成を示す模式図である。
【0042】
図4を参照して、記憶装置150は、プロセッサ152と、チップセット154と、メモリ156と、ファイバチャネルインターフェイス158−1,158−2と、データバス160と、複数のハードディスク(HDD)170−1,170−2,170−3,170−4,…とを含む。
【0043】
プロセッサ152は、記憶装置150における各種処理を実行する演算主体である。チップセット154は、プロセッサ152、メモリ156、ハードディスク170などとの間でデータを遣り取りするエレメントであり、サーバ装置100などからのアクセス要求に応じて、必要なデータを読出し、あるいは、送信されたデータをハードディスク170に書き込む。例えば、チップセット154は、記憶装置150が提供する記憶領域のボリュームなどを管理する。メモリ156は、記憶装置150が動作するために必要な情報(一例として、コンフィギュレーション情報157)を保持する。複数のハードディスク(HDD)170−1,170−2,170−3,170−4,…は、データバス160を介して、チップセット154との間でデータを遣り取りする。
【0044】
<C.ソフトウエア構成>
次に、本実施の形態に従うサーバ装置100および200のソフトウエア構成について説明する。
図5は、本実施の形態に従う情報処理システムSYSに含まれるサーバ装置のソフトウエア構成を示す模式図である。
【0045】
図5を参照して、サーバ装置100および200は、そのソフトウエア構成として、クラスタアプリケーション130および230、切替スクリプト132および232、ならびに、記憶装置制御ソフトウエア134および234をそれぞれ含む。
【0046】
クラスタアプリケーション130および230の各々は、互いに状態を監視するとともに、何らかの障害が発生した場合に、情報の引継ぎ処理を実行する監視アプリケーションである。この情報の引継ぎ処理には、仮想IPアドレスを引継ぐ処理も含まれる。すなわち、クラスタアプリケーション130および230は、サーバ装置100および200の間で、アクティブ/スタンバイを切り替えるための処理を実行する。このように、サーバ装置100および200は、サーバ装置のアクティブ/スタンバイを切り替えるための手段として、サーバ装置100およびサーバ装置200の各々で独立に実行され、他方のサーバ装置の状態を監視する監視アプリケーションを含む。
【0047】
切替スクリプト132および232は、それぞれクラスタアプリケーション130および230が他のサーバ装置において何らかの障害が発生したと判断した場合に、記憶装置150および250の切替処理を実行する。基本的には、いずれかのサーバ装置において何らかの障害が発生すると、他方のサーバ装置で実行されるクラスタアプリケーションがその障害の発生を検知し、対応する切替スクリプトが記憶装置150および250に対して、必要な指令を出力する。このように、サーバ装置100および200は、記憶装置150および250のプライマリ/セカンダリを切り替えるための手段として、それぞれのサーバ装置に実装され、同じサーバ装置で実行されるクラスタアプリケーション(監視アプリケーション)が他方のサーバ装置に障害が発生したと判断したことに応答して、記憶装置150および記憶装置250に必要な指令を出力するロジックを含む。すなわち、切替スクリプト132および232は、他方のサーバ装置の状態を監視する監視アプリケーションであるクラスタアプリケーション130および230によって、他方のサーバ装置に障害が発生したことが検知されると起動される制御プログラムである。
【0048】
記憶装置制御ソフトウエア134および234は、記憶装置150および250へのアクセスを管理するとともに、記憶装置150および250の状態を変更する処理を実行する。より具体的には、記憶装置制御ソフトウエア134および234は、切替スクリプト132および232からの指示に従って、記憶装置150および250に対して必要な指示を与えることで、状況に応じて同期化処理の内容を適宜変更する。
【0049】
<D.処理手順>
次に、本実施の形態に従う情報処理システムSYSにおける処理手順について説明する。
図6は、本実施の形態に従う情報処理システムSYSにおける処理手順を示すシーケンス図である。説明の便宜上、処理センター1のサーバ装置100がアクティブに設定されるとともに、記憶装置150がプライマリに設定されて運用している場合において、サーバ装置100に何らかの障害が発生したときの処理について説明する。サーバ装置200がアクティブに設定されている場合にサーバ装置200に何らかの障害が発生したときも同様の処理が実行されるので、詳細な説明は繰返さない。以下の処理の説明において、便宜上、各動作の実行主体がそれを実現するプログラムであるように記載するが、実際の処理は、サーバ装置100および200のプロセッサがプログラム(クラスタアプリケーションや切替スクリプトなど)を実行することで実現される。
【0050】
図5および
図6を参照して、クラスタアプリケーション130および230は、互いに状態を監視する(
図5の(1);
図6のシーケンスSQ100)。一方、記憶装置150と記憶装置250との間では、記憶装置150をプライマリ、記憶装置250をセカンダリとして、両者の間で同期化処理が実行される。すなわち、記憶装置150と記憶装置250との間は、同期状態に維持される(
図6のシーケンスSQ102)。プライマリに設定される記憶装置150が提供する仮想ストレージを「P−VOL(Primary Volume)」とも称し、セカンダリに設定される記憶装置250が提供する仮想ストレージを「S−VOL(Secondary Volume)」とも称す。
【0051】
その後、サーバ装置100において何らかの障害が発生すると(
図6のシーケンスSQ104)、サーバ装置200のクラスタアプリケーション230は、そのサーバ装置100に障害が発生したことを検知する(
図5の(2);
図6のシーケンスSQ106)。すると、クラスタアプリケーション230は、サーバ装置100のクラスタアプリケーション130との間で処理の引継ぎが実行される(
図5の(3);
図6のシーケンスSQ108)。例えば、サーバ装置100に割り当てられている仮想IPアドレスを解除し、サーバ装置200に同一の仮想IPアドレスを割り当てる処理が実行される。その後、クラスタアプリケーション230は、切替スクリプト232に対する起動指令を発行する(
図5の(4);
図6のシーケンスSQ110)。
【0052】
この起動指令に応答して、切替スクリプト232は、記憶装置150および250の属性値・状態値を取得する(
図5の(5);
図6のシーケンスSQ112)。典型的には、属性値は、記憶装置150および250のボリューム属性を示し、状態値は、同期状態を示すペア値を示す。これらの情報の詳細については、後述する。
【0053】
続いて、切替スクリプト232は、サーバ装置の切り替え後の記憶装置150および250におけるデータ記憶に係る処理モードを決定する(
図6のシーケンスSQ114)。
【0054】
このとき、後述するような状態1〜4に応じて、処理が分岐される。
図6には、属性値・状態値の内容を状態に応じてそれぞれ記載しているが、基本的には、決定した処理モードに応じていずれかが実行される。
【0055】
状態1において、切替スクリプト232は、決定した処理モードに対応する新たな属性値・状態値を記憶装置制御ソフトウエア234へ出力する(
図5の(6);
図6のシーケンスSQ116)。記憶装置制御ソフトウエア234は、切替スクリプト232からの新たな属性値・状態値に応答して、記憶装置150および250に対して、それぞれ切替指令を出力する(
図5の(7);
図6のシーケンスSQ118)。この切替指令によって、典型的には、記憶装置150が提供する仮想ストレージは「P−VOL」から「S−VOL」へ変更されるとともに、記憶装置250が提供する仮想ストレージは「S−VOL」から「P−VOL」へ変更される。
【0056】
その後、切替スクリプト232は、記憶装置150および250の属性値・状態値を取得し、記憶装置の切替処理の完了を確認する(
図5の(9))。記憶装置の切替処理が完了したことを確認すると、切替スクリプト232は、クラスタアプリケーション230へ切替完了通知を出力する(
図5の(10);
図6のシーケンスSQ122)。
【0057】
このとき、記憶装置250がプライマリに設定され、記憶装置150がセカンダリに設定されて、両者の間は同期状態に維持される(
図5の(8);
図6のシーケンスSQ120)。
【0058】
状態3は、サーバ装置100に加えて記憶装置150においても何らかの障害が発生している場合に相当する。この状態において、記憶装置150と記憶装置250との間で同期状態を実現できないので、記憶装置250単独でデータを保持することになる。このような場合には、切替指令は、記憶装置250のみへ出力される。すなわち、切替スクリプト132および232は、いずれかのサーバ装置に障害が発生すると、記憶装置150および記憶装置250の状態に応じて、データ記憶に係る処理のモードを決定する。
【0059】
より具体的には、切替スクリプト232は、決定した処理モードに対応する新たな属性値・状態値を記憶装置制御ソフトウエア234へ出力する(
図5の(6);
図6のシーケンスSQ126)。記憶装置制御ソフトウエア234は、切替スクリプト232からの新たな属性値・状態値に応答して、記憶装置150および250に対して、それぞれ同期解除指令を出力する(
図5の(7);
図6のシーケンスSQ128)。この同期解除指令によって、記憶装置150が提供する仮想ストレージと、記憶装置250が提供する仮想ストレージとの間の同期状態が解除される。
【0060】
その後、切替スクリプト232は、記憶装置150および250の属性値・状態値を取得し、記憶装置の解除処理の完了を確認する(
図5の(9))。記憶装置の切替処理が完了したことを確認すると、切替スクリプト232は、クラスタアプリケーション230へ切替完了通知を出力する(
図5の(10);
図6のシーケンスSQ132)。
【0061】
このとき、記憶装置250と記憶装置150との間は非同期状態に維持される(
図6のシーケンスSQ130)。
【0062】
なお、状態2および状態4においては、記憶装置制御ソフトウエア234は、切替指令を出力しない。
【0063】
そして、記憶装置制御ソフトウエア234は、切替完了通知をクラスタアプリケーション230へ出力する(シーケンスSQ134)。クラスタアプリケーション230は、切替完了通知の内容に応じた処理を実行する。具体的には、切替スクリプト232からの切替完了通知が「成功」であることに応答して、クラスタアプリケーション230は、共有リソースを起動する(シーケンスSQ140)。この共有リソースは、記憶装置150および250を含む。そして、クラスタアプリケーション230は、サーバ装置200で実行されるべき各種アプリケーションを起動する(シーケンスSQ142)。
【0064】
一方、切替スクリプト232からの切替完了通知が「失敗」であれば、クラスタアプリケーション230は、処理を行わない。
【0065】
以上の手順によって、何らかの障害が発生したサーバ装置100からサーバ装置200への切替処理が完了する。
【0066】
<E.記憶装置におけるデータ記憶に係る処理モード>
次に、記憶装置におけるデータ記憶に係る処理モードについて説明する。
【0067】
まず、本実施の形態に従う情報処理システムSYSにおける記憶装置150および250の処理モードの典型例について説明する。
図7は、本実施の形態に従う情報処理システムSYSにおける記憶装置150および250の処理モードを示す表である。
【0068】
図7に示す表について、状態1は、記憶装置150および250が健全である場合に相当する。状態1においては、記憶装置150が提供する仮想ストレージが「P−VOL」に設定されており、記憶装置250が提供する仮想ストレージが「S−VOL」に設定されている。また、記憶装置150が主として記憶装置250との間で同期化処理を実行し、それぞれの記憶装置の内容が同じ状態(以下、「ペア状態」)になっている。この場合、記憶装置250を「P−VOL」とするため、記憶装置150と記憶装置250の間の同期の方向を反転させ、ペア状態は保持される。すなわち、記憶装置250がプライマリに設定され、記憶装置150がセカンダリに設定されるとともに、サーバ装置がサーバ装置200へ切り替えられる。
【0069】
一方、状態2、状態3および状態4は、記憶装置150または記憶装置250において、それぞれの記憶装置の内容が同じでない状態(以下、「ペア不整合状態」)であることを示す。よって、記憶装置150のデータを更新しても、記憶装置250には反映されていない状態である。
【0070】
典型的には、状態2は、記憶装置150または記憶装置250に対する人為的な操作、あるいは、SANでの単独障害発生により、「ペア不整合状態」である場合を想定している。この場合、記憶装置150に継続してデータが更新されている可能性があるため、記憶装置150と記憶装置250の間の同期の方向は反転させない。すなわち、どの記憶装置に対しても操作は行われず、サーバ装置の切替も行われない。
【0071】
典型的には、状態3は記憶装置150を含む処理センター1が、状態4は記憶装置250を含む処理センター2が災害などで損傷を受けたことなどを原因として、記憶装置150または記憶装置250での障害発生により、「ペア不整合状態」である場合を想定している。
【0072】
状態3の場合、処理センター2で処理を引き継ぐ必要があり、記憶装置250を利用可能とするため、記憶装置150と記憶装置250のペアを解除するとともに、サーバ装置がサーバ装置200へ切り替えられる。これは、記憶装置150と記憶装置250の間の同期の方向は反転させても、記憶装置150が使用できないため、反転に失敗するためである。
【0073】
状態4の場合、処理センター1での処理を継続する必要があるため、記憶装置150と記憶装置250の間の同期の方向は反転させない。すなわち、どの記憶装置に対しても操作は行われず、サーバ装置の切替も行われない。
【0074】
要約すると、切替スクリプト232は、サーバ装置100に障害が発生したときに、記憶装置150および記憶装置250がいずれも健全であれば、記憶装置250を主として記憶装置150との間でデータの同期化処理を実行させる。すなわち、
図2(b)に示すような状態で、記憶装置150と記憶装置250との間で同期化処理を実行させる。
【0075】
一方、切替スクリプト232は、サーバ装置100に障害が発生したときに、記憶装置150が健全でなければ、記憶装置250に単独でデータ記憶処理を実行させる。
図8は、本実施の形態に従う情報処理システムSYSにおいて記憶装置が単独でデータ保持を行う場合を示す模式図である。
図8に示すように、サーバ装置100に障害が発生したときに、記憶装置150が健全でなければ、切替スクリプト232は、記憶装置250に単独でデータ記憶処理を実行させる。
【0076】
なお、サーバ装置100の切替スクリプト132についても同様の処理が実行可能である。このように、本実施の形態に従う情報処理システムSYSでは、いずれかのサーバ装置において何らかの障害が発生すると、それを検知したクラスタアプリケーションによって、切替スクリプトが起動され、記憶装置150および250の状態が確認された上で、適切な引継ぎ処理(テイクオーバ)が実行される。このようなロジックを採用することで、処理センター自体をHA構成とすることができ、災害などに対する冗長性を高めることができる。
【0077】
<F.利点>
例えば、上述の先行文献1に開示されるようなシステム、つまり通常時に利用される常用系サーバ装置と常用系サーバ装置が障害時に利用される予備系サーバ装置とからなるシステムに対して災害などに対する冗長性を高めようとすると、災害発生時の拠点にさらに別のサーバ装置(災害時用サーバ装置)を設ける必要があり、合計3台のサーバ装置が必要になる。
【0078】
一般的に、常用系サーバ装置と予備系サーバ装置との間の二重系システムでは、自動的に切り替えるための仕組みが用意されているが、災害時用サーバ装置への切り替えについては、オペレータの特別な操作によって行われるようにせざるを得ない。つまり、常用系サーバ装置と予備系サーバ装置との間で自動的に切り替える仕組みと、災害発生時に、これらの二重系システムと災害時用サーバ装置とを切り替える仕組みとを別々に構築する必要がある。
【0079】
災害発生時に災害時用サーバ装置での運用に切り替えるためには、以下のような操作を行う必要がある。
【0080】
・災害発生時の拠点に配置され、常用系サーバ装置との間で同期しているデータを災害時用サーバ装置に認識される操作
・災害時用サーバ装置での必要なプログラムの起動操作
・災害時用サーバ装置へのアクセスを可能にするための、DNSを用いたホスト名とIPアドレスとの対応関係の更新操作
上述のようなシステムを運用するにあたっては、災害発生時に、これらの操作を行うことのできる高度なスキルをもったオペレータを確保しておく必要があり、運用上の制約になり得るという課題がある。また、常用系サーバ装置に加えて、予備系サーバ装置および災害時用サーバ装置がそれぞれ別々に配置されるために、常用系サーバ装置を加えると、3重のメンテナンスが必要になるという課題がある。
【0081】
このような課題に対して、本発明の実施の形態に従う情報処理システムSYSでは、常用系サーバ装置が配置された処理センター1(サイト:通常運用拠点)と、処理センター1が災害などで損傷を受けた場合にその業務を引き継ぐための予備系サーバ装置が配置された処理センター2(サイト:災害対策拠点)との間で冗長化構成を実現するとともに、災害などが発生した際に、サーバ装置を自動的に切り替える構成を構築している。また、処理センター2(サイト:災害対策拠点)に配置されているサーバ装置は、従来の予備系サーバ装置としても機能する。
【0082】
このような情報処理システムSYSを実現するために、以下のような構成を採用している。
【0083】
・2つの処理センター(サイト)間でネットワークアドレスの同一化(同一セグメント化)
・2つの処理センター(サイト)間で転送されたデータを制御するロジック
・サーバ装置間で仮想IPアドレスの引継ぎおよび記憶装置の認識などを自動的に実行するロジック
このような構成を採用することで、本実施の形態に従う情報処理システムSYSでは、災害などが発生した場合に、常用系サーバ装置から災害対策拠点に設置された災害時用サーバ装置へ自動的に切り替えることができる。そのため、システム運用にあたって高度なスキルをもったオペレータを確保しておく必要がない。
【0084】
また、従来のシステム構成に対してサーバ装置における障害の発生および拠点に対する災害の発生などを考慮して冗長系を構成しようとすれば、常用系サーバ装置、予備系サーバ装置および災害時用サーバ装置の合計3台が必要であったが、本実施の形態に従う情報処理システムSYSでは、常用系サーバ装置と、予備系・災害時用サーバ装置との合計2台で実現されるため、サーバ装置の数を従来の構成に比較して2/3にでき、ハードウエアおよびソフトウエアのコストを低減できる。併せて、通常プログラムのメンテナンスの箇所を低減できる。
【0085】
一般的に、互いに同期状態に維持されている複数の記憶装置(ストレージ)に対して、同期状態の確認や同期化処理の転送方向(つまり、いずれの記憶装置をプライマリにするか)の変更などについては、記憶装置に対して、手動でコマンドを入力して状態を確認した上で、それらの設定を変更するためのコマンドをさらに入力する必要がある。このような場合、同期状態は複数のパターンが存在するため、いずれのパターンで運用されているのかを識別するために時間を要し、また、パターンを誤認する可能性もある。さらに、記憶装置の同期状態を確認しないまま、これらの記憶装置に対して状態変更のコマンドを入力すると、データの整合性が失われ、データが破壊されてしまう恐れもある。
【0086】
このような課題を考慮して、本実施の形態に従う情報処理システムSYSは、切替スクリプト132および232を採用している。この切替スクリプト132および232は、記憶装置の同期状態を判断し、その判断結果に応じて状態を変更するためのコマンドを自動的に実行する。このような切替スクリプト132および232を採用することで、データの同期状態を変更する際の誤認を防止することがでいるとともに、判断に要する時間を短縮できる。さらに、記憶装置が保持するデータの破壊を防止することもできる。
【0087】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。