以下、本発明の実施の形態を図面を参照して説明する。
図1は、本発明の第1の実施の形態の計算機システムの構成を示すブロック図である。
本実施の形態の計算機システムは、管理サーバ101、複数のサーバ102、複数の外部ディスク装置103、ネットワークスイッチ(NW−SW)104及び管理ネットワークスイッチ(管理NW−SW)105を備える。
各サーバ102は、管理NW−SW105に接続されるネットワークインターフェースカード(NIC)121、及び、NW-SW104に接続されるネットワークアダプタ(Adaptor)120を備える。
NW-SW104は、サーバ102と外部ディスク装置103とを接続するネットワークを構成する。NW-SW104は、イーサネット(登録商標)プロトコルを取り扱うスイッチ、ファイバチャネルのスイッチ、又は、その他の種類のネットワークスイッチであってもよい。
管理NW-SW105は、管理サーバ101、サーバ102、外部ディスク装置103及びNW−SW104を接続するネットワークを構成する。管理NW-SW105は、NW-SW104と同様、イーサネット(登録商標)プロトコルを取り扱うスイッチ、ファイバチャネルのスイッチ、又は、その他の種類のネットワークスイッチであってもよい。
NW-SW104は、外部ディスク装置103のコントローラ130が備えるポート(図示省略)に接続される。図1の例では、各コントローラ130の一つのポートがNW-SW104と接続されているが、各コントローラ130の複数のポートがNW-SW104と接続されていてもよい。あるいは、サーバ102のアダプタ120が、NW-SW104を介さず、直接コントローラ130と接続されていてもよい。
外部ディスク装置103は、一つ以上のディスク131を備える。サーバ102は、NW−SW104及びコントローラ130を経由してディスク131にアクセスすることができる。外部ディスク装置103は、例えば、ディスクアレイ装置であっても、ネットワークファイルシステムを取り扱うサーバであっても、iSCSIを取り扱うサーバであってもよい。
コントローラ130は、CPU等の情報処理装置を備え、コントローラ130に入出力される情報及び外部ディスク装置103内のディスク131に記録される情報を制御する。外部ディスク装置103は、複数のコントローラ130を備えることができ、あるコントローラ130は、別のコントローラ130が障害を発生しても影響を受けることなく稼動することができる。ディスク131は、サーバ102から読み込みや書き込みといったアクセスが可能な情報記憶装置である。
ディスク131は、論理的に一つの情報記憶装置と認識される記憶領域(いわゆる論理ボリューム)である。一つのディスク131は、一つの物理的なディスクドライブによって構成されてもよいし、複数の物理的なディスクドライブによって構成されてもよい。あるいは、ディスク131は、ディスクドライブ以外の情報記憶装置(例えば、半導体記憶装置)によって構成されてもよい。ディスク131は、いわゆるRAID構成であってもよい。
ディスク131には、サーバ102が利用するオペレーティングシステム(OS)、アプリケーション、ミドルウェア、又はドライバ等のプログラム、及び、プログラムが利用するデータ又はログ等の情報が記録されている。以下、上記のようにディスク131に記録されている情報(データ)をディスクイメージと呼ぶ。言い換えると、ディスクイメージとは、ディスク131の内容である。図1において、ディスクイメージは、D0、D1等のディスクイメージ識別子によって図示される。複数のディスク131の内容が同一である場合、それらのディスク131に記録されるディスクイメージは、同一のディスクイメージ識別子を持つ。
例えば、ディスクイメージ識別子が「D0」であるディスクイメージを記録しているディスク131が二つ存在する場合、それらのディスク131全体の内容が同一である。言い換えると、それらの二つのうち一方のディスク131に格納されているデータは、必ず、もう一方のディスク131にも格納されている。
管理NW-SW105は、システムを管理する管理サーバ101、サーバ102のNIC121、NW-SW104のコントローラ140が備える管理ポート(図示省略)、及び、外部ディスク装置103のコントローラ130が備える管理ポート(図示省略)に接続されている。外部ディスク装置103のコントローラ130は、管理ポートを経由して、管理サーバ101からの外部ディスク装置103の制御を受け付けることができる。さらに、コントローラ130は、管理ポートを経由して、外部ディスク装置103の障害発生を管理サーバ101に通知することができる。NW−SW104のコントローラ140の管理ポートは、管理サーバ101からのNW-SW104の制御を受け付けることができる。さらに、コントローラ140の管理ポートは、NW-SW104の障害発生を管理サーバ101に通知することができる。
管理サーバ101は、障害回復プログラム110及びブートパス冗長化プログラム111を備える。障害回復プログラム110は、計算機システムが備える機器で障害が発生した場合に、障害からの回復処理を実行する。ブートパス冗長化プログラム111は、サーバ102と、サーバ102がブート(起動)に利用する外部ディスク装置103とを接続するネットワークパスを冗長化し、さらに、セキュリティ設定を実行する。管理サーバ101は、例えば、CPU、メモリ及びネットワークカード等を備える計算機である(図33参照)。
図2は、本発明の第1の実施の形態のサーバ102の詳細な構成を示すブロック図である。
サーバ102は、メモリ201、CPU202、不揮発メモリ203、アダプタ120、NIC121及びBaseboard Management Controller(BMC)205を備える。
メモリ201は、例えば半導体メモリであり、プログラム及びデータを格納する。本実施の形態のメモリ201には、プログラムとして、サーバ102が起動するときに実行されるブートプログラム210が格納される。
CPU202は、メモリ201に格納されたプログラムを実行するプロセッサである。
アダプタ120が備えるメモリ(図示省略)には、一意の識別子(ID)204が格納されている。アダプタ120がネットワークアダプタである場合、ID204は、例えばMACアドレス又はIPアドレスである。アダプタ120がファイバチャネルのホストバスアダプタである場合、ID204は、例えばWorld Wide Name(WWN)である。
BMC205は、主にサーバ102のハードウェアの監視及び制御を行う。サーバ102のハードウェアに異常が発生した場合、障害検出機能250がその異常を検知して、計算機システムの外部に通知することができる。また、BMC205を通じて、遠隔からサーバ102の電源の投入(ON)及び遮断(OFF)をすることができる。障害検出機能250は、BMC205内のメモリ(図示省略)に格納され、BMC205内のプロセッサ(図示省略)によって実行されるプログラムであってもよい。あるいは、障害検出機能250は、ハードウエアロジックとして実現されてもよい。
不揮発メモリ203は、例えば、EEPROM又はハードディスクドライブのような不揮発性のメモリである。不揮発メモリ203には、サーバ102がブートに利用するデバイス(機器)が予め登録されている。
ブートプログラム210は、例えば、System BIOS又はsEFI等のプログラムである。これらのプログラムは、サーバ102の電源が投入されたときに、不揮発メモリ203に登録されている機器を利用して、サーバ102がブートするように動作する。具体的には、ブートプログラム210は、不揮発メモリ203に登録されているアクセスパスを経由して、不揮発メモリ203に登録されているディスク131からOS等を読み込むことによって、ブートを実行する。さらに、ブートプログラム210は、ネットワークブートを実行することができる。ネットワークブートとは、アダプタ120がネットワークからプログラムを受信することによってブートすることである。ネットワークブートには、例えば、PXEプロトコル等によって実行される。
図33は、本発明の第1の実施の形態の管理サーバ101の構成を詳細に示すブロック図である。
管理サーバ101は、メモリ3301、CPU3302及びNIC3303を備える。
メモリ3301は、例えば半導体メモリであり、プログラム及びデータを格納する。障害回復プログラム110及びブートパス冗長化プログラム111は、メモリ3301上に格納されたプログラムである。これらのプログラムは、CPU3302によって実行される。
CPU3302は、メモリ3301に格納されたプログラムを実行するプロセッサである。具体的には、CPU3302は、障害回復プログラム110及びブートパス冗長化プログラム111を実行する。したがって、以下の説明においてこれらのプログラムが実行する処理は、実際にはCPU3302によって実行される。
NIC3303は、管理NW−SW105に接続されるインターフェースである。
図3は、本発明の第1の実施の形態の障害回復プログラム110及びブートパス冗長化プログラム111の詳細な説明図である。
障害回復プログラム110は、障害監視モジュール301、業務停止サーバ検索モジュール302、業務再開サーバ検索モジュール303、ブート設定変更モジュール304、サーバ電源制御モジュール305、サーバ情報テーブル306及び外部ディスク装置情報テーブル307を含む。
障害監視モジュール301は、計算機システム内のサーバ102、ネットワークスイッチ104、外部ディスク装置103及びコントローラ130等の機器の状態を監視し、これらの機器に発生した障害を検出する。
業務停止サーバ検索モジュール302は、計算機システム内の機器の障害を原因として業務が稼動できなくなるサーバを検索する。
業務再開サーバ検索モジュール303は、サーバ102の業務が稼動できなくなったとき、その業務を再開するサーバ102、及び、そのサーバ102が利用するネットワークのパス情報を検索する。
ブート設定変更モジュール304は、サーバ102のブート設定を変更する。ブート設定変更モジュール304は、例えば、PXEプロトコルを用いてサーバ102をブートするDHCPサーバ機能を備え、サーバ102にブート設定変更プログラム340を送信することができる。
ブート設定変更プログラム340は、それを受信したサーバ102によって実行され、サーバ102のブートプログラム210の設定を変更する。具体的には、ブート設定変更プログラム340は、不揮発メモリ203に登録されている情報を変更することによって、ブートプログラム210がブートを実行する際に利用するディスク131、及び、そのディスクにアクセスするために利用するアクセスパスを変更することができる。アクセスパスとは、具体的には、アクセスに利用されるNW−SW104及びコントローラ130等である。
サーバ電源制御モジュール305は、サーバ102の電源投入(ON)、電源遮断(OFF)及びリセット等の電源制御を実行する。
サーバ情報テーブル306は、サーバ102の状態、サーバ102が利用する外部ディスク装置103の情報、及び、サーバ102が利用しているネットワークパスの情報を管理する。
外部ディスク装置情報テーブル307は、外部ディスク装置103のポートID等の情報を管理する。ポートIDは、外部ディスク装置103のコントローラ130が備えるポートに付与された識別子(例えば、WWN)である。
ブートパス冗長化プログラム111は、論理ディスク制御モジュール320、同期ディスク制御モジュール321、ネットワークセキュリティ制御モジュール322及び冗長パス情報テーブル323を含む。
論理ディスク制御モジュール320は、外部ディスク装置103内のディスク131が構成する論理ディスクを制御する。論理ディスクとは、サーバ102によって一つの情報記憶装置と認識される仮想的な記憶領域である。
同期ディスク制御モジュール321は、同期ディスクを制御する。同期ディスクとは、あるディスク131と同一の内容を記録しており、かつ、そのディスク131と異なる外部ディスク装置103に含まれるディスク131である。あるディスク131に記録されている、サーバ102によって利用されるデータは、そのディスク131の同期ディスクにも記録される。
ネットワークセキュリティ制御モジュール322は、ネットワーク上のセキュリティ設定を制御する。
冗長パス情報テーブル323は、計算機システムのディスク131にアクセス可能なネットワークパスを管理する。
図4は、本発明の第1の実施の形態のサーバ情報テーブル306の説明図である。
サーバ管理テーブル306の各列(カラム)401〜408は、計算機システム内のサーバ102の一覧、各サーバ102の稼動状態、各サーバ102が利用しているネットワーク上のディスク、及び、利用されているネットワークのパスに関する情報を含む。
カラム401には、計算機システム内のサーバ102を識別する情報が登録される。例えば、カラム401は、サーバ102のシリアル番号、UUID又はMACアドレス等であってもよい。図2の例では、カラム401として「S1」、「S2」等が登録される。
カラム402は、カラム401に登録されたサーバ102の状態を示している。例えば、サーバ102が業務を稼動中である場合、そのサーバ102に対応するカラム402は、「稼動中」となる。業務を稼動していないサーバ102に対応するカラム402は、「待機中」となる。
稼動中であったサーバ102の業務を別のサーバ102が引き継いだ場合、前者のサーバ102に対応するカラム402は「停止中」となる。さらに、前者のサーバ102に対応するカラム402には、業務を引き継いだ後者のサーバ102の識別子が登録される。例えば、図2に示すように、サーバ「S2」が稼動していた業務がサーバ「S7」によって引き継がれた場合、「S2」に対応するカラム402に「S7へ交代」が登録される。
一方、業務を引き継いだサーバ102のカラム402には、「稼動中」及びその業務をかつて稼動していたサーバ102の識別子が登録される。図2のサーバ「S7」の場合、カラム402には「S2から交代」が登録される。
カラム403には、カラム401に登録されたサーバ102が利用しているディスク131の内容を示すディスクイメージの識別子が登録される。ディスクイメージ識別子は計算機システムで一意である。例えば、複数のディスク131が同一のディスクイメージを記録している場合、それらのディスク131は同一のディスクイメージ識別子で示される。また、ディスクイメージ識別子は、後で説明するブートパス冗長化プログラム111の冗長パス情報テーブル323のカラム601と対応する。
カラム404は、カラム401に登録されたサーバ102が、カラム405から408によって特定されるネットワークパスのうち、どのネットワークパスを利用しているのかを示す情報である。具体的には、サーバ102によって利用されているパスに対応するカラム404に「YES」が登録される。
なお、一つのサーバ102が一つのディスク131にアクセスするために利用できるネットワークパスが複数存在する場合、それらのネットワークパスごとに、利用中パス404が登録される。図2の例では、サーバ「S0」がディスクイメージ「D0」にアクセスするために二つのネットワークパスを利用することができる。このため、サーバ「S0」及びディスク「D0」に対応するカラム404は二つに分割され、それぞれに「YES」又は「NO」が登録される。
なお、上記のサーバ「S0」とは、サーバ識別子「S0」によって識別されるサーバ102である。ディスクイメージ「D0」とは、ディスクイメージ識別子「D0」によって識別されるディスクイメージである。以下、本実施の形態の計算機システム内の各部に同様の表記方法を適用する。
カラム405からカラム408は、サーバ102がディスク131にアクセスするために利用されるネットワークパスに関する情報を示す。
カラム405は、カラム401に登録されたサーバ102が備えるアダプタ120の識別子(WWN)を示す。
カラム406は、カラム405に登録されたアダプタ120に接続されたNW−SW104の識別子を示す。
カラム407は、カラム406に登録されたNW−SW104に接続された外部ディスク装置103の識別子を示す。
カラム408は、カラム407に登録された外部ディスク装置103が備えるコントローラ103のうち、カラム406が示すNW−SW104に接続されているものの識別子を示す。
例えば、図4の例では、カラム401の値「S0」に対応して、カラム402の値「稼動中」、カラム403の値「D0」、カラム404の値「YES」及び「NO」、カラム405の値「WWN0」、カラム406の値「SW0」、カラム407の値「ARRAY0」及び「ARRAY1」、及び、カラム408の値「CTRL0」及び「CTRL0」が登録されている。これは、次のような状態を示している。
すなわち、識別子が「S0」であるサーバ121は、識別子が「WWN0」であるアダプタ120を備える。識別子が「WWN0」であるアダプタ120は、識別子が「SW0」であるNW−SW104を介して、識別子が「ARRAY0」である外部ディスク装置103の、識別子が「CTRL0」であるコントローラ130と接続される。識別子が「WWN0」であるアダプタ120は、さらに、識別子が「SW0」であるNW−SW104を介して、識別子が「ARRAY1」である外部ディスク装置103の、識別子が「CTRL0」であるコントローラ130とも接続される。外部ディスク装置「ARRAY0」及び「ARRAY1」は、いずれも、ディスクイメージ「D0」が記録されたディスク131を備えている。
この例において、サーバ「S0」は、アダプタ「WWN0」、NW−SW「SW0」及びコントローラ「CTRL0」を経由して外部ディスク装置「ARRAY0」に至るパスを利用してディスク「D0」にアクセスすることによって、業務を稼動している。一方、サーバ「S0」は、アダプタ「WWN0」、NW−SW「SW0」及びコントローラ「CTRL0」を経由して外部ディスク装置「ARRAY1」に至るパスを利用して、ディスク「D0」にアクセスすることも可能である。しかし、図4の例では、このパスは利用されていない。
図5は、本発明の第1の実施の形態の外部ディスク装置情報テーブル307の説明図である。
外部ディスク装置情報テーブル307は、計算機システムが備える外部ディスク装置103の情報を管理する。
カラム501は、計算機システムに存在する外部ディスク装置103の識別子を示す。本実施の形態の計算機システムは、図1に示すように、二つの外部ディスク装置103を備える。このため、カラム501には、これらの二つの外部ディスク装置103の識別子「ARRAY0」及び「ARRAY1」が登録される。カラム501は、図4に示したカラム407と対応する。
カラム502は、カラム501に示す外部ディスク装置103が備えるコントローラ130の識別子である。本実施の形態の外部ディスク装置103は、図1に示すように、それぞれ二つのコントローラ130を備える。このため、カラム502には、外部ディスク装置103ごとに、これらの二つのコントローラ130の識別子「CTRL0」及び「CTRL1」が登録される。カラム502は、図4に示したカラム408と対応する。
カラム503は、カラム502に示すコントローラ130が備えるポート(図示省略)の識別子(ポートID)を示す。例えば、コントローラ130のポートがファイバチャネルネットワークに接続されている場合、カラム503にはポートのWWN等が登録されてもよい。ポートがiSCSI又はネットワークファイルシステム等のイーサネット(登録商標)プロトコル上のTCPを利用したネットワークに接続されている場合、カラム503にはポートのIPアドレス又はMACアドレス等が登録されてもよい。
図5の例では、ポートIDとしてWorld Wide Port Name(WWPN)が使用される。具体的には、外部ディスク装置「ARRAY0」のコントローラ「CTRL0」及び「CTRL1」が備えるポートのポートIDが、それぞれ、「WWPN0」及び「WWPN1」である。外部ディスク装置「ARRAY1」のコントローラ「CTRL0」及び「CTRL1」が備えるポートのポートIDが、それぞれ、「WWPN2」及び「WWPN3」である。
図6は、本発明の第1の実施の形態の冗長パス情報テーブル323の説明図である。
冗長パス情報テーブル323は、計算機システムに存在するディスクイメージの情報を管理する。
カラム601は、ディスクイメージの識別子を示す。本実施の形態の計算機システムには五つのディスクイメージが存在するため、カラム601には、それらの五つのディスクイメージの識別子「D0」、「D1」、「D2」、「D4」及び「D5」が登録される。カラム601は、図4に示すカラム403と対応する。
カラム602は、カラム601に示すディスクイメージが記録されているディスク131を備える外部ディスク装置103を示す。図6の例では、ディスクイメージ「D0」、「D1」及び「D2」が外部ディスク装置「ARRAY0」内のディスク131に記録され、ディスクイメージ「D4」及び「D5」が外部ディスク装置「ARRAY1」内のディスク131に記録されている。
カラム603は、カラム602に示す外部ディスク装置103に含まれ、かつ、カラム601に示すディスクイメージを記録しているディスク131を、外部ディスク装置103内で一意に識別する識別子を示す。図6の例では、ディスクイメージ「D0」、「D1」、「D2」、「D4」及び「D5」が、それぞれ、ディスク「VOL0」、「VOL1」、「VOL2」、「VOL4」及び「VOL5」に記録されている。
カラム604は、カラム603に示すディスク131にアクセス可能であるコントローラ130の識別子を示す。言い換えると、カラム604に示すコントローラ130に搭載されるポートに接続された機器は、カラム603に示すディスク131にアクセス可能である。カラム604は、コントローラ130が複数のポートを備える場合、そのポート毎に、ディスク131に対してアクセス可能であることを示す情報を含んでもよい。
図6の例では、外部ディスク装置「ARRAY0」のコントローラ「CTRL0」及び「CTRL1」に接続された機器が、ディスク「VOL0」、「VOL1」及び「VOL2」にアクセス可能である。さらに、外部ディスク装置「ARRAY1」のコントローラ「CTRL0」及び「CTRL1」に接続された機器が、ディスク「VOL4」及び「VOL5」にアクセス可能である。
カラム605は、カラム604が示すコントローラ130が、カラム603に示すディスク131に付与する論理ディスクの識別子を示す。論理ディスクとは、サーバ102がディスク131にアクセスできるようにするために、コントローラ130が設定する論理的な(言い換えると、仮想的な)ディスクである。サーバ102は、論理ディスクを認識し、論理ディスクに対してアクセス要求を発行する。コントローラ130は、そのアクセス要求を受けると、要求の対象の論理ディスクに対応するディスク131へのアクセスを実行する。コントローラ130による論理ディスクの管理については、後で詳細に説明する(図7参照)。
各コントローラ130は、そのコントローラ130が使用するディスク131に、そのコントローラ130内で一意の論理ディスク識別子を付与することができる。このため、一般には、複数のコントローラ130が、同一のディスク131に対してそれぞれ異なる論理ディスク識別子を付与する場合もある。しかし、本発明では、図6に示すように、各コントローラ130が同一のディスク131に対して同一の論理ディスク識別子を付与する。
図6の例では、ディスク「VOL0」、「VOL1」、「VOL2」、「VOL4」及び「VOL5」に対応して、それぞれ、論理ディスク識別子「LUN0」、「LUN1」、「LUN2」、「LUN4」及び「LUN5」が付与される。このため、これらの論理ディスク識別子がカラム605に登録される。
カラム606は、カラム603に示すディスク131の同期ディスクを含む外部ディスク装置103の識別子を示す。図6の例では、ディスク「VOL0」、「VOL1」及び「VOL2」の同期ディスクが外部ディスク装置「ARRAY1」に含まれる。ディスク「VOL4」及び「VOL5」の同期ディスクが外部ディスク装置「ARRAY0」に含まれる。
カラム607は、カラム606に示す外部ディスク装置103に含まれ、かつ、カラム603が示すディスク131の同期ディスクであるディスク131の識別子を示す。図6の例では、ディスク「VOL0」、「VOL1」、「VOL2」、「VOL4」及び「VOL5」の同期ディスクがディスク「SVOL0」、「SVOL1」、「SVOL2」、「SVOL4」及び「SVOL5」である。
カラム608は、カラム607に示すディスク131にアクセス可能であるコントローラ130の識別子を示す。カラム608は、コントローラ130が複数のポートを備える場合、そのポート毎に、ディスク131に対してアクセス可能であることを示す情報を含んでもよい。
図6の例では、外部ディスク装置「ARRAY1」のコントローラ「CTRL0」及び「CTRL1」に接続された機器が、ディスク「SVOL0」、「SVOL1」及び「SVOL2」にアクセス可能である。外部ディスク装置「ARRAY0」のコントローラ「CTRL0」に接続された機器が、ディスク「SVOL4」にアクセス可能である。さらに、外部ディスク装置「ARRAY0」のコントローラ「CTRL0」及び「CTRL1」に接続された機器が、ディスク「SVOL5」にアクセス可能である。
カラム609は、カラム608が示すコントローラ130が、カラム607に示すディスク131を識別するために使用する論理ディスク識別子を示す。図6の例では、ディスク「SVOL0」、「SVOL1」、「SVOL2」、「SVOL4」及び「SVOL5」に対応して、それぞれ、論理ディスク識別子「LUN10」、「LUN11」、「LUN12」、「LUN14」及び「LUN15」が付与される。
図7は、本発明の第1の実施の形態の外部ディスク装置130が備える論理ディスク管理プログラムの説明図である。
図7の外部ディスク装置103は、例えば、図6の外部ディスク装置「ARRAY0」に対応する。
図7のコントローラ730及び731は、それぞれ、図1のコントローラ130の一つに相当する。例えば、コントローラ730及び731は、それぞれ、図6のコントローラ「CTRL0」及び「CTRL1」に対応する。
論理ディスク管理プログラム740及び741は、それぞれ、コントローラ730及び731のメモリ(図示省略)に格納され、それらのコントローラのプロセッサ(図示省略)によって実行される。
サーバ701及び702は、それぞれ、図1のサーバ102の一つに相当する。
NW−SW703及び704は、それぞれ、図1のNW−SW104の一つに相当する。
ディスク733、734及び735は、それぞれ、図1のディスク131の一つに相当する。例えば、ディスク733、734及び735は、それぞれ、図6のディスク「VOL0」、「VOL1」及び「VOL2」に対応する。
論理ディスク管理プログラム740及び741は、外部ディスク装置103に存在するディスク733、734及び735のうち、例えば、単一のディスク733に対応する論理ディスク750及び論理ディスク751を生成する。論理ディスク750及び751は、それぞれ、単一のディスク733の全体に対応する。図7の外部ディスク装置103が図6の外部ディスク装置「ARRAY0」と対応する場合、論理ディスク750及び751は、いずれも、論理ディスク「LUN0」に対応する。
その結果、コントローラ731のポートにNW−SW703経由で接続されているサーバ701と、コントローラ732に搭載のポートにNW−SW704経由で接続されているサーバ702の両方が、ディスク733にアクセスできるようになる。
論理ディスクテーブル770及び771は、ディスク733、734及び735と、論理ディスク750及び751との対応を示す情報を保持するテーブルである(図8参照)。論理ディスクテーブル770及び771は、コントローラ730及び731のメモリ(図示省略)に格納される。
論理ディスク管理プログラム740及び741は、コントローラ730及び731の管理ポート(図示省略)に接続されている管理サーバ101によって制御され、論理ディスク750及び751等の生成、削除又は変更を実行することができる。コントローラ730及び731が論理ディスク機能740及び741を持たない場合、サーバ701及びサーバ702は、ディスク733、734及び735に直接アクセスできる。
図7には、ディスク「VOL0」に対応する論理ディスク「LUN0」のみを示すが、実際には、「VOL1」及び「VOL2」に対応する論理ディスク「LUN1」及び「LUN2」がコントローラ730及び731の両方に生成されてもよい。
図7に示す外部ディスク装置103が図6に示す外部ディスク装置「ARRAY0」である場合、この外部ディスク装置103は、さらにディスク「SVOL4」及び「SVOL5」を含む。この場合、コントローラ730及び731の両方に、ディスク「SVOL4」及び「SVOL5」に対応する論理ディスク「LUN14」及び「LUN15」が生成される。
図8は、本発明の第1の実施の形態の論理ディスクテーブルの説明図である。
図8は、例として、図7における論理ディスクテーブル770及び771の詳細を示す。
カラム801はディスクの識別子である。例えば、図7に示すディスク733、734及び735の識別子がそれぞれ「VOL0」、「VOL1」及び「VOL2」であった場合、カラム801にはそれらの識別子が登録される。図7の外部ディスク装置103が図6の外部ディスク装置「ARRAY0」である場合、カラム801には、さらに「SVOL4」及び「SVOL5」が登録される。このように、カラム801は、図6のカラム603及びカラム608と対応する。
カラム802は、カラム801に示すディスクに対応する論理ディスクの識別子である。図8の例では、ディスク「VOL0」、「VOL1」、「VOL2」、「SVOL4」及び「SVOL5」に対応する論理ディスクの識別子として、「LUN0」、「LUN1」、「LUN2」、「LUN14」及び「LUN15」が登録される。カラム802は、図6のカラム605及びカラム609に対応する。
図9は、本発明の第1の実施の形態の外部ディスク装置が備えるディスク同期プログラムの説明図である。
図9の例において、外部ディスク装置930及び931は、図6の外部ディスク装置「ARRAY0」及び「ARRAY1」に対応する。コントローラ940は、外部ディスク装置「ARRAY0」のコントローラ「CTRL0」又は「CTRL1」のいずれかに対応する。コントローラ941は、外部ディスク装置「ARRAY1」のコントローラ「CTRL0」又は「CTRL1」のいずれかに対応する。コントローラ940及びコントローラ941は、ネットワーク903を介して接続されている。ディスク970及び971は、それぞれ、ディスク「VOL0」及び「SVOL0」に対応する。
ディスク同期プログラム950及び951は、それぞれ、コントローラ940及び941のメモリ(図示省略)に格納され、それらのコントローラのプロセッサ(図示省略)によって実行される。
ディスク同期プログラム950及び951は、外部ディスク装置930内のディスク970に記録されたディスクイメージ「D0」と同じ内容を記録する同期ディスク971を、外部ディスク装置931に生成する。図9の例では、外部ディスク装置930がディスク「VOL0」を含む。外部ディスク装置931には、ディスク「VOL0」の同期ディスクであるディスク「SVOL0」が生成される。ディスク「VOL0」及びディスク「SVOL0」には、いずれも、同一のディスクイメージ「D0」が記録されている。
説明の便宜上、図9にはディスク「VOL0」及びディスク「SVOL0」のみを示すが、実際には、各外部ディスク装置が他のディスク(例えば、「VOL1」及び「SVOL1」等)を含んでもよい。
サーバ901は、NW−SW902を介して、コントローラ940が備えるポート980と接続され、さらに、コントローラ941が備えるポート981にも接続されている。この場合、コントローラ940及び941のどちらも、同一のディスクイメージ「D0」にアクセスすることができる。
同期ディスクテーブル960及び961は、ディスク970と同期ディスク971との対応を示す情報を保持するテーブルである(図10参照)。同期ディスクテーブル960及び961は、コントローラ940及び941のメモリ(図示省略)に格納される。
ディスク同期プログラム950及び951は、コントローラ930及び931の管理ポート(図示省略)に接続されている管理サーバ101によって制御され、同期ディスク971の生成、削除又は変更を実行することができる。
図10は、本発明の第1の実施の形態の同期ディスクテーブルの説明図である。
図10は、例として、図9における同期ディスクテーブル960の詳細を示す。
カラム1001は、ディスクの識別子を示す。カラム1001は、図6のカラム603と対応する。
カラム1002は、カラム1001に示すディスク131の同期ディスクが存在する外部ディスク装置103の識別子を示す。カラム1002は、図6のカラム606に対応する。
カラム1003は、同期ディスクの識別子を示す。カラム1003は、図6のカラム607に対応する。
例えば、図9の外部ディスク装置930が図6の外部ディスク装置「ARRAY0」に対応する場合、カラム1001には、「VOL0」、「VOL1」及び「VOL2」が登録される。カラム1002には、「VOL0」、「VOL1」及び「VOL2」に対応して、「ARRAY1」が登録される。カラム1003には、「VOL0」、「VOL1」及び「VOL2」に対応して、「SVOL0」、「SVOL1」及び「SVOL2」が登録される。これは、外部ディスク装置「ARRAY0」のディスク「VOL0」、「VOL1」及び「VOL2」の同期ディスクが、それぞれ、外部ディスク装置「ARRAY1」内のディスク「SVOL0」、「SVOL1」及び「SVOL2」であることを意味する。
図11は、本発明の第1の実施の形態の外部ディスク装置103が備えるセキュリティ制御プログラムの説明図である。
セキュリティ制御プログラム1103は、コントローラ130のメモリ(図示省略)に格納され、そのコントローラのプロセッサ(図示省略)によって実行される。
セキュリティ制御プログラム1103は、サーバ102による論理ディスクへのアクセスを許可又は禁止する。例えば、図11に示すように、コントローラ130が備えるポートと、サーバ1101が備えるアダプタ1110と、サーバ1102が備えるアダプタ1120とがNW−SW104を介して接続されている場合について説明する。ここで、アダプタ1110及び1120は、それぞれ、ID1111及びID1121によって識別される。
この場合、セキュリティ制御プログラム1103は、サーバ1101による論理ディスク1130へのアクセスを許可し、サーバ1102による論理ディスク1131へのアクセスを許可し、サーバ1101による論理ディスク1131へのアクセスを禁止し、サーバ1102による論理ディスク1130へのアクセスを禁止することができる。
その結果、サーバ1101は、論理ディスク1130にアクセスすることができるが、論理ディスク1131にアクセスすることができない。サーバ1102は、論理ディスク1131にアクセスすることができるが、論理ディスク1130にアクセスすることができない。このアクセス許可又は禁止の制御は、セキュリティ制御プログラム1103が、ID1111及びID1121と、論理ディスク1130及び論理ディスク1131との間のアクセス許可のマッピングを設定することによって実行される。
上記の説明は、ディスク1130及び1131が論理ディスクである場合の例であるが、ディスク1130及びディスク1131は、図1のディスク131であっても、論理ディスクであっても、同期ディスクであってもよい。
図11のディスクマッピングテーブル1132は、論理ディスク1130及び論理ディスク1131と、ID1111及びID1121との間のマッピング関係を示す情報を保持するテーブルである。セキュリティ制御プログラム1103は、コントローラ130の管理ポート(図示省略)に接続されている管理サーバ101によって制御され、論理ディスク1130及び論理ディスク1131と、ID1111及びID1121との間のマッピングの設定及び解除を実行することができる。
図12は、本発明の第1の実施の形態のディスクマッピングテーブル1132の説明図である。
図12は、例として、図11に示すディスクマッピングテーブル1132の詳細を示す。
カラム1201は、論理ディスクの識別子を示す。カラム1201は図6のカラム605およびカラム609に対応する。ここで、外部ディスク装置103のコントローラ130が図7に示す論理ディスク管理プログラム740及び741を備えない場合、カラム1201には、図1のディスク131が登録されても、図9の同期ディスク971が登録されてもよい。
カラム1202は、カラム1201に示す論理ディスクへのアクセスを許可されているアダプタのIDを示す。例えば、カラム1202には、図11のアダプタ1110のID1111及びアダプタ1120のID1121が登録される。
図12の例では、カラム1201に、論理ディスク「LUN0」、「LUN1」、「LUN2」、「LUN4」、「LUN5」及び「LUN12」が登録されている。そして、これらの論理ディスクに対応して、カラム1202に、「WWN0」、「WWN1」、「WWN2」、「WWN4」、「WWN5」及び「WWN7」が登録されている。これは、サーバ102のアダプタ「WWN0」、「WWN1」、「WWN2」、「WWN4」、「WWN5」及び「WWN7」が、それぞれ、論理ディスク「LUN0」、「LUN1」、「LUN2」、「LUN4」、「LUN5」及び「LUN12」にアクセスできることを示す。一方、例えば、アダプタ「WWN0」は、論理ディスク「LUN1」にアクセスすることができない。
図13は、本発明の第1の実施の形態の各機器が実行する動作シーケンスの説明図である。
図示するシーケンスは、業務停止サーバ1301、業務再開サーバ1302、障害回復プログラム1303及びブートパス冗長化プログラム1304の動作シーケンスである。ここで、業務停止サーバ1301は、図1に示すサーバ102のうち、計算機システム上で発生した障害を原因として、業務遂行のために使用していたディスク131にアクセスできなくなるサーバ102である。業務停止サーバ1301は、ディスク131にアクセスできなくなる結果、業務を続行することができなくなる。業務再開サーバ1302は、図1に示すサーバ102のうち、業務停止サーバ1301から業務を引き継ぐサーバ102である。障害回復プログラム1303及びブートパス冗長化プログラム1304は、それぞれ、図3に示す障害回復プログラム110及びブートパス冗長化プログラム111である。
最初に、ブートパス冗長化プログラム1304が、ブートパスの冗長化を実行する(ステップ1340)。ステップ1340が実行される結果、業務停止サーバ1301が利用するディスクイメージが、一つ以上の外部ディスク装置103の一つ以上のコントローラ130のポートを介して、いずれかのサーバ102によってアクセスできる状態となる。ここで、業務停止サーバ1301が利用するディスクイメージとは、業務停止サーバ1301が、ブート、データの記録又は参照のために利用するディスクイメージである。ただし、この時点では、ネットワークのセキュリティ設定によって、業務停止サーバ1301のみが、業務停止サーバ1301が利用するディスクイメージにアクセス可能な状態となっている。ステップ1340の処理については、後で詳細に説明する(図14参照)。
次に、業務停止サーバ1301が業務を開始する(ステップ1310)。
次に、計算機システム上のいずれかの機器で障害が発生する。このとき、障害回復プログラム1303が、機器に障害が発生したことを検知する(ステップ1330)。
次に、障害回復プログラム1303は、機器の障害が原因で業務が停止するサーバ102を検索する(ステップ1331)。図13の例では、この検索の結果発見されたサーバ102が業務停止サーバ1301である。なお、ステップ1331において、複数の業務停止サーバ1301が発見されてもよい。
次に、障害回復プログラム1303は、業務停止サーバ1301の電源遮断(OFF)を要求する(ステップ1332)。この要求を受けた業務停止サーバ1301は、電源を遮断する(ステップ1311)。業務停止サーバ1301は、電源を遮断する前に、OSのシャットダウン、アプリケーションの停止手続き、メモリダンプ取得又はログ取得等の障害解析のための作業を実行してもよい。業務停止サーバ1301の停止を障害回復プログラム1303が確認すると、次のステップ1333に進む。
ステップ1333において、障害回復プログラム1303は、業務再開サーバ1302を検索する。具体的には、業務停止サーバ1301が利用していたディスクイメージにアクセス可能であり、かつ、障害を発生していないコントローラ130のポートに、障害が発生した機器を経由せずに接続されているサーバ102が業務再開サーバ1302として検索される。なお、業務停止サーバ1301が複数存在する場合、障害回復プログラム1303は、それと同じ数の業務再開サーバ1302を検索する。
業務再開サーバ1302の検索が完了すると、ブートパス冗長化プログラム1304が、ネットワークのセキュリティ設定を変更する(ステップ1341)。具体的には、ブートパス冗長化プログラム1304は、業務停止サーバ1301が利用していたディスクイメージに業務再開サーバ1302がアクセスできるように、ネットワークのセキュリティ設定を変更する。
ネットワークのセキュリティ設定変更が完了すると、障害回復プログラム1303は、業務再開サーバ1302のブート設定を変更するため、業務再開サーバ1302をネットワークブートする(ステップ1334)。このとき、障害回復プログラム1303は、ブート設定変更プログラム340を業務再開サーバ1302に送信する。その結果、業務再開サーバ1302がネットワークブートする(ステップ1320)。そして、業務再開サーバ1302は、障害回復プログラム1303から送信されたブート設定変更プログラム340を実行することによって、業務再開サーバ1302が保持しているブートに必要なパラメータを更新する。
ブート設定の変更が完了すると、障害回復プログラム1303は、業務停止サーバ1301が利用していたディスクイメージを利用してブートするように、業務再開サーバ1302に指示する(ステップ1335)。
ステップ1335の指示を受けた業務再開サーバ1302は、業務停止サーバ1301が利用していたディスクイメージを利用してブートする(ステップ1321)。具体的には、業務再開サーバ1302は、業務停止サーバ1301が利用していたディスクイメージからOS等を読み込むことによってブートする。
次に、業務再開サーバ1302は、業務停止サーバ1301が実行していた業務を再開する(ステップ1332)。
以下、図13に示したシーケンスをより詳細に説明する。
図14は、本発明の第1の実施の形態のブートパス冗長化プログラム111が実行するブートパスの冗長化を説明するフローチャートである。
図14は、図13におけるステップ1340を詳細に説明する図である。図14のシーケンスは、論理ディスク制御モジュール320及び同期ディスク制御モジュール321によって実行される。
なお、図14の処理は、計算機システム内で、一つのディスク131にしか記録されていないディスクイメージが存在する場合に、そのディスク131を対象として実行される。例えば、ディスクイメージ「D0」が、ディスク「VOL0」のみに記録されている場合、ディスク「VOL0」を対象として図14の処理が実行される。その結果、ディスク「SVOL0」が作成される。
最初に、論理ディスク制御モジュール320が、冗長パス情報テーブル323を参照し、外部ディスク装置の論理ディスク管理プログラムに対して、処理の対象のディスク131に対応する論理ディスクの作成を要求する(ステップ1401)。例えば、論理ディスク制御モジュール320は、図6に示す冗長パス情報テーブル323を参照し、カラム602に示す外部ディスク装置103に対して、カラム603に示すディスク131に対応する論理ディスクとして、カラム604に示すコントローラにおいてカラム605に示す論理ディスクを作成することを要求する。
この要求を受けた外部ディスク装置103は、要求に従い、論理ディスクを作成する。論理ディスク作成を完了すると、外部ディスク装置103は、完了通知を論理ディスク制御モジュール320に送信する。
論理ディスク制御モジュール320は、外部ディスク装置103の論理ディスク管理プログラムから論理ディスク作成完了通知を受信する(ステップ1402)。
次に、同期ディスク制御モジュール321は、冗長パス情報テーブル323を参照し、同期外部ディスク装置に同期ディスクを作成するように要求する(ステップ1403)。例えば、同期ディスク制御モジュール321は、図6の冗長パス情報テーブル323を参照し、カラム606に示す同期外部ディスク装置に対して、カラム607に示す同期ディスクの作成を要求する。
この要求を受けた外部ディスク装置103は、要求に従い、同期ディスクを作成する。そして、外部ディスク装置103は、完了通知を同期ディスク制御モジュール321に送信する。
同期ディスク制御モジュール321は、同期外部ディスク装置から同期ディスク作成及び同期開始の完了通知を受信する(ステップ1404)。
次に、論理ディスク制御モジュール320は、冗長パス情報テーブル323を参照し、同期外部ディスク装置の論理ディスク管理プログラムに対して、同期ディスクに対応する論理ディスクの作成を要求する(ステップ1405)。例えば、論理ディスク制御モジュール320は、図6のカラム606に示す外部ディスク装置103に対して、カラム607に示すディスク131に対応する論理ディスクとして、カラム608に示すコントローラにおいてカラム609に示す論理ディスクを作成するように要求する。
この要求を受けた外部ディスク装置103は、要求に従い、論理ディスクを作成する。論理ディスク作成を完了すると、外部ディスク装置103は、完了通知を論理ディスク制御モジュール320に送信する。
論理ディスク制御モジュール320は、同期外部ディスク装置の論理ディスク管理プログラムから論理ディスク作成完了通知を受信する(ステップ1406)。
次に、同期ディスク制御モジュール321は、ディスク同期プログラムに対して、処理の対象のディスク131と、同期外部ディスク装置内の同期ディスクとの間で、記録された内容を同期する処理の開始を要求する(ステップ1407)。ディスク131の内容を同期する処理とは、一方のディスク131に記録された内容を、もう一方のディスク131に複写する処理である。例えば、同期ディスク制御モジュール321は、図6の冗長パス情報テーブル323を参照し、カラム602に示す外部ディスク装置103と、カラム606に示す外部ディスク装置103に対して、カラム603に示すディスク131に記録された内容を、カラム607に示すディスク131に複写する処理を開始するように要求する。要求を受けた外部ディスク装置103は、要求に従い、ディスクの同期を開始する。そして、外部ディスク装置103は、同期開始の完了通知を同期ディスク制御モジュール321に送信する。
同期ディスク制御モジュール321は、外部ディスク装置103のディスク同期プログラムから同期開始完了通知を受信する(ステップ1408)。
図15は、本発明の第1の実施の形態の障害回復プログラム110が実行する障害監視処理を説明するフローチャートである。
図15に示す処理は、図13のステップ1330において、障害監視モジュール301によって実行される。
計算機システムを構成する機器で障害が発生すると、障害監視モジュール301が機器の障害発生通知を検知する(ステップ1501)。計算機システムを構成する機器とは、例えば、サーバ102、アダプタ120、NW−SW104、外部ディスク装置103又はコントローラ130である。
なお、障害監視モジュール301は、計算機システムを構成する機器と、ネットワークを介して通信可能である。各機器は、例えばSimple Network Management Protocol(SNMP)等のプロトコル又はプロプライエタリな通信手段によって、機器に発生した障害を障害監視モジュール301に通知することができる。障害監視モジュール301は、機器から障害発生通知を受信することで、障害の発生を検知できる。あるいは、障害監視モジュール301は、機器に対して機器の状態を定期的に問い合わせ、状態の変化を監視することで、機器の障害発生を検知することもできる。
次に、障害監視モジュール301は、障害が発生した機器を特定する(ステップ1502)。ここで、機器の障害の程度が軽度であり、機器の障害の影響が計算機システムの運用に影響しない場合、障害発生を無視することができる。
次に、障害監視モジュール301は、業務停止サーバ検索モジュール302及び業務再開サーバ検索モジュール303に、障害が発生した機器(以下、障害発生機器と記載する)の識別子を通知する(ステップ1503)。
図16は、本発明の第1の実施の形態の障害回復プログラム110が実行する業務停止サーバ検索及びサーバ電源制御を説明するフローチャートである。
図16に示す処理は、図13のステップ1331及びステップ1332において、業務停止サーバ検索モジュール302及びサーバ電源制御モジュール305によって実行される。
最初に、業務停止サーバ検索モジュール302が障害監視モジュール301から障害発生機器の識別子を受信する(ステップ1601)。この情報は、図15のステップ1503において送信されたものである。
次に、業務停止サーバ検索モジュール302は、サーバ情報テーブル306を参照し、業務停止サーバ1301を検索する(ステップ1602)。業務停止サーバ1301とは、障害発生機器を利用しているサーバ102である。
例えば、外部ディスク装置「ARRAY1」のコントローラ「CTRL1」において障害が発生した場合について説明する。この場合、図4において、サーバ「S4」は、カラム407及びカラム408に示すように、外部ディスク装置「ARRAY1」のコントローラ「CTRL1」に接続されている。さらに、カラム404に示すように、サーバ「S4」から外部ディスク装置「ARRAY1」のコントローラ「CTRL1」に至るパスは、「利用中」である。したがって、外部ディスク装置「ARRAY1」のコントローラ「CTRL1」に障害が発生した場合、でサーバ「S4」は、業務の続行ができなくなる。このため、サーバ「S4」が業務停止サーバ1301となる。
どのサーバ102も障害発生機器を利用していない場合、業務停止サーバ1301は存在しない。
次に、業務停止サーバ検索モジュール302は、業務停止サーバ1301が存在するか否かを判定する(ステップ1603)。
ステップ1603において、業務停止サーバ1301が存在しないと判定された場合、いずれかのサーバ102が業務を引き継ぐ必要がない。この場合、処理が終了する。
一方、ステップ1603において、業務停止サーバ1301が存在すると判定された場合、業務停止サーバ検索モジュール302は、業務停止サーバ1301の電源遮断をサーバ電源制御モジュール305に要求する(ステップ1604)。
この要求を受けたサーバ電源制御モジュール305は、業務停止サーバ1301の電源遮断を実行する(ステップ1605)。例えば、サーバ電源制御モジュール305は、図2に示したBMC205に対して、ネットワークを介して電源遮断の実行を要求してもよい。その要求を受けたBMC205は、サーバの電源を遮断する。さらに、サーバ電源制御モジュール305は、電源遮断を実行する前に、サーバ102で稼動するソフトウェアの停止又はシャットダウンを要求することもできる。
次に、サーバ電源制御モジュール305は、業務停止サーバ1301の電源遮断を確認する(ステップ1606)。そして、サーバ電源制御モジュール305は、業務停止サーバ検索モジュール302に電源遮断完了を通知する。
以上で、サーバ電源制御モジュール305の処理が終了する。
業務停止サーバ検索モジュール302は、電源遮断完了の通知を受信すると、業務再開サーバ検索モジュール303に業務再開サーバ1302の検索を要求する(ステップ1607)。
以上で、業務停止サーバ検索モジュール302の処理が終了する。
図17は、本発明の第1の実施の形態の障害回復プログラム110が実行する業務再開サーバの検索を説明するフローチャートである。
図17に示す処理は、図13のステップ1333及びステップ1334において、業務再開サーバ検索モジュール303によって実行される。
最初に、業務再開サーバ検索モジュール303は、障害監視モジュール301から、障害発生機器の識別子を受信する(ステップ1701)。この情報は、図15のステップ1503において送信されたものである。
次に、業務再開サーバ検索モジュール303は、業務停止サーバ検索モジュール302から、業務再開サーバ1302の検索要求を受信する(ステップ1702)。この要求は、図16のステップ1607において送信されたものである。
次に、業務再開サーバ検索モジュール303は、業務再開サーバ1302を検索する(ステップ1703)。詳細は後述する(図18参照)。
次に、業務再開サーバ検索モジュール303は、ステップ1703の結果を参照して、業務再開サーバ1302が存在するか否かを判定する(ステップ1704)。
ステップ1704において、業務再開サーバ1302が存在しないと判定された場合、どのサーバ102も、業務停止サーバ1301から業務を引き継ぐことができない。このため、処理が終了する。
一方、ステップ1704において、業務再開サーバ1302が存在すると判定された場合、業務再開サーバ検索モジュール303は、ネットワークセキュリティ制御モジュール322に、業務再開サーバ1302の識別子、利用ディスク識別子及び利用機器を通知する(ステップ1705)。ここで、利用機器とは、業務再開サーバ1302が業務を再開するために利用する計算機システムの機器の一覧である。例えば、利用機器は、図4に示すサーバ情報テーブル306のカラム405、カラム406、カラム407及びカラム408に示す機器の組み合わせである。
ステップ1705の通知を受信したネットワークセキュリティ制御モジュール322が実行するネットワークセキュリティ設定については、後述する(図19参照)。
次に、業務再開サーバ検索モジュール303は、ネットワークセキュリティ制御モジュール322からネットワークセキュリティ設定完了通知を受信する(ステップ1706)。この通知は、後述する図19のステップ1905において送信されたものである。
次に、業務再開サーバ検索モジュール303は、外部ディスク装置情報テーブル307を参照し、業務再開サーバ1302の識別子と、業務再開サーバ1302がブートに利用する外部ディスク装置103のコントローラ130のポートIDを、ブート設定変更モジュール304に通知する(ステップ1707)。例えば、図5に示す外部ディスク装置情報テーブル307のカラム501に示す外部ディスク装置103が備える、カラム502に示すコントローラがブートに利用される場合、カラム503に示すポートIDが通知される。
次に、業務再開サーバ検索モジュール303は、ブート設定変更モジュール304に、業務再開サーバ1302のブート設定変更を要求する(ステップ1708)。
以上で、業務再開サーバ検索モジュール303の処理が終了する。
図18は、本発明の第1の実施の形態の障害回復プログラム110が実行する業務再開サーバの検索を詳細に説明するフローチャートである。
具体的には、図18は、図17のステップ1703において業務再開サーバ検索モジュール303が実行する処理を詳細に示す。
最初に、業務再開サーバ検索モジュール303は、サーバ情報テーブル306を参照し、障害発生機器を利用しない待機中のサーバ102を検索する(ステップ1801)。例えば、外部ディスク装置「ARRAY1」が備えるコントローラ「CTRL1」に障害が発生した場合について、図4のサーバ情報テーブル306を参照して説明する。この場合、待機中のサーバ「S3」及び「S6」のいずれも、外部ディスク装置「ARRAY0」のコントローラ「CTRL1」を利用することができる。言い換えると、これらのサーバは、外部ディスク装置「ARRAY1」のコントローラ「CTRL1」を利用しなくてもよい。このため、サーバ「S3」及び「S6」が、障害発生機器を利用しない待機中のサーバ102に該当する。
次に、業務再開サーバ検索モジュール303は、ステップ1801の検索の結果を参照し、障害発生機器を利用しない待機中のサーバ102が存在するか否かを判定する(ステップ1802)。
ステップ1802において、ステップ1801の条件に該当するサーバが存在しないと判定された場合(すなわち、「NO」の場合)、業務停止サーバ1301から業務を引き継ぐことができるサーバ102が存在しない。この場合、図18の処理が終了する。
ステップ1802において、ステップ1801の条件に該当するサーバが存在すると判定された場合、業務再開サーバ検索モジュール303は、冗長パス情報テーブル323及びサーバ情報テーブル306を参照して、業務再開サーバとして利用できる一つ以上のサーバ102と、そのサーバ102が利用する機器とを検索する(ステップ1803)。
業務再開サーバとして利用できるサーバ102とは、具体的には、ステップ1801で検索されたサーバ102のうち、業務停止サーバ1301が業務に利用していたものと同一のディスクイメージを記録する論理ディスク又はその同期ディスクの論理ディスクを持つ外部ディスク装置103とコントローラ130との組み合わせに対して接続可能なサーバ102である。
そして、そのサーバ102が利用する機器とは、そのサーバ102がディスクイメージにアクセスするために利用するアダプタ120、NW−SW104、コントローラ130及び外部ディスク装置103等の機器のうち、障害が発生していないものである。
例えば、外部ディスク装置「ARRAY1」のコントローラ「CTRL1」に障害が発生し、業務停止サーバ1301がディスクイメージ「D4」を利用していた場合について、冗長パス情報テーブル323(図6)及びサーバ情報テーブル306(図4)を参照して説明する。
まず、冗長パス情報テーブル323(図6)が参照される。ディスクイメージ「D4」は、外部ディスク装置「ARRAY1」内のディスク「VOL4」、及び、外部ディスク装置「ARRAY0」内のディスク「SVOL4」に記録されている。外部ディスク装置「ARRAY1」のコントローラ「CTRL0」は、ディスク「VOL4」を、論理ディスク「LUN4」としてサーバ102に提供している。外部ディスク装置「ARRAY0」のコントローラ「CTRL0」は、ディスク「SVOL4」を、論理ディスク「LUN14」としてサーバ102に提供している。
次に、上記の論理ディスク「LUN4」又は「LUN14」を利用できるサーバ102を検索するために、サーバ情報テーブル306(図4)が参照される。ここでは、ステップ1801においてサーバ「S3」及び「S6」が検索された場合について説明する。
サーバ情報テーブル306に示す通り、サーバ「S3」は、外部ディスク装置「ARRAY0」の「CTRL0」に接続可能である。言い換えると、サーバ「S3」は、外部ディスク装置「ARRAY0」の「CTRL0」が提供する論理ディスク「LUN14」を利用することができる。一方、サーバ「S6」は、外部ディスク装置「ARRAY1」のコントローラ「CTRL0」、及び、外部ディスク装置「ARRAY0」のコントローラ「CTRL0」のいずれにも接続することができない。言い換えると、サーバ「S6」は、論理ディスク「LUN4」及び「LUN14」のいずれも利用することができない。
この場合、ステップ1803の検索の結果として、サーバ「S3」が取得される。この場合、利用機器は、アダプタ「WWN3」(カラム405参照)、NW−SW「SW0」(カラム406参照)、外部ディスク装置「ARRAY0」及びコントローラ「CTRL0」となる。
以上で、ステップ1803が終了する。
次に、業務再開サーバ検索モジュール303は、ステップ1803の検索の結果としていずれかのサーバ102が発見されたか否かを判定する(ステップ1804)。
ステップ1804において、ステップ1803の検索の結果としていずれのサーバ102も発見されなかったと判定された場合(すなわち、「NO」の場合)、業務停止サーバ1301から業務を引き継ぐことができるサーバ102が存在しない。この場合、図18の処理が終了する。
一方、ステップ1804において、ステップ1803の検索の結果としていずれかのサーバ102が発見されたと判定された場合、発見されたサーバ102は、業務停止サーバ1301から業務を引き継ぐことができる。この場合、業務再開サーバ検索モジュール303は、ステップ1803の結果のサーバ102及び利用機器から、業務再開サーバ1301及び利用機器を決定する(ステップ1805)。利用機器とは、業務再開サーバ1301が利用するアダプタ120、NW−SW104、外部ディスク装置103、コントローラ130及び論理ディスクの組み合わせである。
例えば、ステップ1803の結果、複数のサーバ102及び利用機器が発見された場合、サーバ102及び利用機器のスペック、これらの位置条件又は物理条件、又は、優先度に基づいて、業務再開サーバ1301及び利用機器が決定されてもよい。あるいは、ユーザが記述したポリシーに基づいて業務再開サーバ1301及び利用機器が決定されてもよい。
ステップ1805が終了すると、図18に示す処理が終了する。
図18に示す処理が終了すると、業務再開サーバ検索モジュール303の処理は、図17のステップ1704に戻る。
ステップ1805が実行された結果、図18の処理が終了した場合、業務再開サーバ検索モジュール303は、ステップ1704において、「存在する」と判定する。
一方、ステップ1802又は1804において「NO」と判定された結果、図18の処理が終了した場合、業務再開サーバ検索モジュール303は、ステップ1704において、「存在しない」と判定する。
図19は、本発明の第1の実施の形態のブートパス冗長化プログラム111が実行するネットワークセキュリティ制御を説明するフローチャートである。
図19に示す処理は、図13のステップ1341において、ネットワークセキュリティ制御モジュール322によって実行される。
最初に、ネットワークセキュリティ制御モジュール322は、業務再開サーバ検索モジュール302から、業務再開サーバ1302の識別子と、利用するディスク識別子と、利用機器の識別子と、を受信する(ステップ1901)。これらの情報は、図17のステップ1705において送信されたものである。ここで、利用機器とは、業務再開サーバ1302が業務を再開するために利用する計算機システム内の機器である。例えば、利用機器は、図4に示すサーバ情報テーブル306のカラム405、カラム406、カラム407及びカラム408に示す機器の組み合わせである。
次に、ネットワークセキュリティ制御モジュール322は、利用機器の情報のうち、業務再開サーバ1302のアダプタID、外部ディスク装置103、コントローラ130及び論理ディスクの情報を取得する(ステップ1902)。
次に、ネットワークセキュリティ制御モジュール322は、ステップ1902で取得した外部ディスク装置103のコントローラ130のセキュリティ制御プログラムに対して、ステップ1902で取得したアダプタIDと論理ディスクとの間のディスクアクセスを許可するように、セキュリティ設定を変更することを要求する(ステップ1903)。セキュリティ設定変更とは、ディスクマッピングテーブル1132(図11及び図12参照)に登録されたマッピング関係を変更することである。
例えば、図11において、サーバ1101が備えるアダプタ1110のID1111が「WWN0」であり、サーバ1102が備えるアダプタ1120のID1121が「WWN1」であると仮定する。図12に示すように、論理ディスク「LUN0」はアダプタ「WWN0」にマッピングされ、論理ディスク「LUN1」はアダプタ「WWN1」にマッピングされている。したがって、この場合、サーバ1101は、論理ディスク「LUN0」1130のみにアクセス可能であり、サーバ1102は、論理ディスク「LUN1」1131のみにアクセス可能である。
この場合、ネットワークセキュリティ制御モジュール322は、セキュリティ制御プログラムに要求することによって、例えば、図12のディスクマッピングテーブル1132において、論理ディスク「LUN1」(カラム1201)に対応するカラム1202の値を、「WWN1」から「WWN0」に変更することができる。その結果、論理ディスク「LUN1」には、新たにアダプタ「WWN0」がマッピングされる。その結果、サーバ1101が論理ディスク「LUN1」1131にアクセス可能となる。このように、論理ディスクとアダプタ120との間のマッピングを変更することによって、セキュリティ設定が変更される。
ステップ1903の要求を受けた外部ディスク装置103のセキュリティ制御プログラムは、その要求に従って、セキュリティ設定変更を実行する。そして、セキュリティ設定変更が完了すると、セキュリティ制御プログラムは、ネットワークセキュリティ制御モジュール322に対して完了を通知する。
ネットワークセキュリティ制御モジュール322は、外部ディスク装置103のセキュリティ制御プログラムから、セキュリティ設定変更完了通知を受信する(ステップ1904)。
次に、ネットワークセキュリティ制御モジュール322は、業務再開サーバ検索モジュール302に対して、セキュリティ設定変更完了を通知する(ステップ1905)。
以上で、ネットワークセキュリティ制御モジュール322は、処理を終了する。
図20は、本発明の第1の実施の形態の障害回復プログラム110が実行するブート設定変更及びサーバ電源制御を説明するフローチャートである。
図20に示す処理は、図13のステップ1334、ステップ1335及びステップ1320において、ブート設定変更モジュール304、サーバ電源制御モジュール305及び業務再開サーバ1302によって実行される。
最初に、ブート設定変更モジュール304は、業務再開サーバ検索モジュール302から、業務再開サーバ1302の識別子、ブートに利用する外部ディスク装置103のコントローラ130のポートID、及び、ブート設定変更要求を受信する(ステップ2001)。これらの情報は、図17のステップ1707及び1708において送信されたものである。
次に、ブート設定変更モジュール304は、業務再開サーバ1302の電源投入をサーバ電源制御モジュール305に要求する(ステップ2002)。
ステップ2002の要求を受信したサーバ電源制御モジュール305は、業務再開サーバ1302に対して電源投入を指示する(ステップ2003)。例えば、サーバ電源制御モジュール305は、図2に示したBMC205に対して、ネットワークを介して電源投入の要求を送信する。この要求を受信したBMC205が、サーバの電源を投入する。
次に、サーバ電源制御モジュール305は、業務再開サーバ1302の電源投入の完了を確認する(ステップ2004)。ここで、業務再開サーバ1302はネットワークブートが可能であることを前提とする。例えば、業務再開サーバ1302が備えるNIC121は、ネットワークブートプロトコルであるBOOTP又はPXE等をサポートしている。さらに、電源投入時にネットワークブートによってブートされるように、業務再開サーバ1302のSystemBIOS又はEFIのブート順序が設定されている。
ステップ2004において電源投入完了が確認されると、ブート設定変更モジュール304は、業務再開サーバ1302のネットワークブート要求を受信し、業務再開サーバ1302をネットワークブートし、さらに、ブート設定変更プログラム340を業務再開サーバ1302に送信する(ステップ2005)。ここで、ブート設定変更モジュール304は、例えば、DHCPサーバ等である。その場合、ブート設定変更モジュール304は、ネットワークを経由して業務再開サーバ1302から送信されるBOOTPプロトコルを受信し、ブートに必要なOS及びブート設定変更プログラム340をtFTP等の方法によって業務再開サーバ1302に送信する。業務再開サーバ1302は、受信したブート設定プログラム340を利用してブートする。
業務再開サーバ1302は、ブート設定変更モジュール304から受信したブート設定変更プログラム340を実行し、業務再開サーバ1302の不揮発メモリ203に書き込まれたブート設定のポートIDを変更する(ステップ2006)。ここで、ブート設定のポートIDとは、例えばアダプタ120がファイバチャネルのHBA(Host Bus Adaptor)である場合、HBAがブートに利用する接続先のWWNである。アダプタ120がiSCSIのNICである場合、ポートIDは、ブートに利用するIPアドレス又はMACアドレスである。ブート設定のポートIDは、アダプタ120が備える不揮発メモリ(図示省略)に保持されてもよい。
ブート設定変更モジュール304は、ブート設定変更プログラム340から業務再開サーバ1302のブート設定変更完了通知を受信し、ブート設定変更完了を確認する(ステップ2007)。
次に、ブート設定変更モジュール304は、業務停止サーバ1302のリセットをサーバ電源制御モジュール305に要求する(ステップ2008)。
以上で、ブート設定変更モジュール304の処理が終了する。
ステップ2008の要求を受信したサーバ電源制御モジュール305は、業務再開サーバ1302の電源遮断及び電源投入を順次実行することによって、業務再開サーバ1302をリセットする(ステップ2009)。あるいは、ブート設定変更プログラム340が、ブート設定変更完了時に自動的にリセットしてもよい。
次に、サーバ電源制御モジュール305は、業務再開サーバ1302のリセット完了を確認する(ステップ2010)。業務再開サーバ1302は、リセットが実行された後は、ネットワークブートせずに、外部ディスク装置103のディスクを利用してブートする。ネットワークブートを実行しない方法としては、例えば、ブート設定変更プログラム340がSystemBIOS又はEFIのブート順序設定を変更する方法、ブート設定変更モジュール304がネットワークブート要求を無視する方法、又は、業務再開サーバ1302のBMC205に対してコマンドを送付してブート順序を変更する方法がある。
以上の本発明の第1の実施の形態によれば、計算機システム内の機器が二重化される。このため、いずれかの機器に障害が発生した結果、いずれかのサーバ102が業務を続行できなくなった場合にも、障害が発生していないサーバ102が、障害が発生していない機器を利用して起動することによって、業務を再開することができる。発生した障害によって業務を続行できなくなるサーバ102を判定し、その業務を引き継ぐサーバ102及びそのサーバ102が利用する機器を判定し、そのサーバ102を起動する処理は、管理サーバ101によって自動的に実行される。このため、システム管理者の作業負担が軽減される。
次に、本発明の第2の実施の形態について説明する。
本発明の第2の実施の形態は、図9で示したディスク同期プログラムが存在しない点において、第1の実施の形態と異なる。以下、第2の実施の形態が第1の実施の形態と異なる点についてのみ説明する。
図21は、本発明の第2の実施の形態において実行されるミラーリングの説明図である。
具体的には、図21は、本実施の形態において、異なる二つの外部ディスク装置2120及び2121の間でディスク2130及び2131の内容を同期し、同一のディスクイメージD0を保持する方法を示す。
本実施の形態のサーバ102は、ミラーリングプログラム2100を備える。
ミラーリングプログラム2100は、CPU2110がディスク2130へ情報の書き込むために書き込み命令2111を実行すると、ディスク2130へ情報を書き込むとともに、同じ情報をディスク2131に対しても書き込む。これによって、サーバ102によるディスク2130への更新は、常にディスク2131へも適用されることとなり、ディスク2130とディスク2131の内容は一致する。
ミラーリングプログラム2100は、サーバ102のメモリ201上に保持されるデーモン又はサービス等の常駐プログラムであっても、ドライバ等のプログラムであってもよい。その場合、ミラーリングプログラム2100は、CPU2110によって実行される。あるいは、ミラーリングプログラム2100の機能が、アダプタ120に付随するハードウェアによって実現されてもよい。上記のいずれの場合においても、CPU2110が一つのディスク2130に対するデータ書き込み命令を発行すると、アダプタ120は、二つのディスク2130及び2131に対する書き込み命令を送信する。
あるいは、ミラーリングプログラム2100(又は同等の機能を備えるハードウェア)は、サーバ102の外部に存在してもよい。その場合、ミラーリングプログラム2100は、サーバ102のアダプタ120から出力される情報の一つ以上のコピー情報を作成し、元の情報と、各コピー情報とを、それぞれ別々の外部ディスク装置103に送信してもよい。
管理サーバ101は、ネットワークを介してミラーリングプログラム2100を制御することによって、ディスク2130等の同期開始及び停止を制御することができる。
本発明の第2の実施の形態の計算機システム内の各機器は、第1の実施の形態と同様、図13に示すシーケンスに従って処理を実行する。ただし、第2の実施の形態のステップ1340の処理は、第1の実施の形態と相違する。以下、この相違点について説明する。
図22は、本発明の第2の実施の形態のブートパス冗長化プログラム111が実行するブートパスの冗長化を説明するフローチャートである。
具体的には、図22は、第2の実施の形態における図13のステップ1340において、論理ディスク制御モジュール320及び同期ディスク制御モジュール321によって実行される処理を示す。
図22に示す処理は、図14のステップ1407及びステップ1408を、それぞれ、ステップ2201及びステップ2202によって置き換えたものである。図22のステップ1401から1406までは、図14のステップ1401から1406までと同じであるため、説明を省略する。
ステップ2201では、同期ディスク制御モジュール321が、図21に示したサーバ102のミラーリングプログラム2100に対して、業務停止サーバ1301が利用しているディスク2130と、別の外部ディスク装置2121に存在する同期ディスク2131との間で、内容の同期を開始することを要求する。この要求を受けたミラーリングプログラム2100は、ディスクの同期を開始して、同期ディスク制御モジュール321に同期開始完了を通知する。その後、CPU2110が一つのディスク2130に対するデータ書き込み命令を発行すると、アダプタ120は、二つのディスク2130及び2131に対する書き込み命令を送信する。
ステップ2202では、同期ディスク制御モジュール321が、図21に示したサーバ102のミラーリングプログラム2100から同期開始完了通知を受信する。
次に、本発明の第3の実施の形態について説明する。
本発明の第3の実施の形態は、図9で示したディスク同期プログラムが存在しない点において第1の実施の形態と異なり、図21で示したミラーリングプログラムが存在しない点で第2の実施の形態とも異なる。
図23は、本発明の第3の実施の形態において実行される同期ディスクの作成の説明図である。
具体的には、図23は、本実施の形態において、異なる二つの外部ディスク装置2310及び2311の間でディスク2320及び2321の内容を同期し、同一のディスクイメージD0を保持する方法を示す。
本実施の形態では、計算機システム上のサーバ102の一つが同期サーバ2301となる。同期サーバ2301は、同期プログラム2300を備える。同期サーバ2301は、業務を実施中のサーバ102であっても、そうでないサーバ102であってもよい。同期サーバ2301は、アダプタ2302及びNW−SW104を介して、ディスク2320及びディスク2321にアクセスすることができる。同期プログラム2300は、定期的にディスク2320の内容を読み込み、読み込んだ内容をディスク2321へ書き込むことによって、二つのディスク2320及び2321の内容を同期する。その結果、計算機システム上のサーバ102がディスク2320の内容を更新すると、同期プログラム2300がディスク2321を更新する。
同期プログラム2300は、同期サーバ2301のメモリ201上に保持されるデーモン又はサービス等の常駐プログラムであっても、ドライバ等のプログラムであってもよい。その場合、同期プログラム2300は、CPU202によって実行される。あるいは、同期プログラム2300の機能が、アダプタ2302に付随するハードウェアによって実現されてもよい。
管理サーバ101は、ネットワークを介して同期プログラム2300を制御することによって、ディスクの同期開始及び停止の制御を制御することができる。
本発明の第3の実施の形態の計算機システム内の各機器は、第1の実施の形態と同様、図13に示すシーケンスに従って処理を実行する。ただし、第3の実施の形態のステップ1340の処理は、第1の実施の形態と相違する。以下、この相違点について説明する。
図24は、本発明の第3の実施の形態のブートパス冗長化プログラム111が実行するブートパスの冗長化を説明するフローチャートである。
具体的には、図24は、第3の実施の形態における図13のステップ1340において、論理ディスク制御モジュール320及び同期ディスク制御モジュール321によって実行される処理を示す。
図24に示す処理は、図14のステップ1407及びステップ1408を、それぞれ、ステップ2401及びステップ2402によって置き換えたものである。図24のステップ1401から1406までは、図14のステップ1401から1406までと同じであるため、説明を省略する。
ステップ2401では、同期ディスク制御モジュール321が、図23に示した同期サーバ2301の同期プログラム2300に対して、業務停止サーバ1301が利用するディスク2320と、別の外部ディスク装置2311の同期ディスク2321との間で、内容の同期を開始することを要求する。この要求を受けた同期プログラム2300は、ディスクの同期を開始して、同期ディスク制御モジュール321に同期開始完了を通知する。その後、同期プログラム2300が実行される。
ステップ2402では、同期ディスク制御モジュール321が、図23に示した同期サーバ2301の同期プログラム2300から同期開始完了通知を受信する。
上記の本発明の第2及び第3の実施の形態によれば、外部ディスク装置103が同期ディスクを作成する機能を備えない場合にも、サーバ102が同期ディスクを作成することによって、本発明を実施することができる。
次に、本発明の第4の実施の形態について説明する。
上記の本発明の第1から第3の実施の形態では、外部ディスク装置103のコントローラ130がセキュリティ制御プログラムを備える。そして、そのセキュリティ制御プログラムが、サーバ102によるディスク131へのアクセスの許可及び禁止を制御する。しかし、このようなアクセスの許可及び禁止は、ネットワークが備える機能によって制御されてもよい。ネットワークが備える機能とは、例えば、Virtual LAN(VLAN)機能、又は、ゾーニング機能である。
本発明の第4の実施の形態では、NW−SW104のコントローラ140がセキュリティ制御プログラムを備える。
図25は、本発明の第4の実施の形態のサーバ情報テーブル306の説明図である。
図25に示すサーバ情報テーブル306は、図4に示すサーバ情報テーブル306を、本実施の形態に適用するために拡張したものである。拡張された部分はカラム410である。カラム401から408は、図4のカラム401から408と同様であるため、説明を省略する。カラム407及び408の内容は省略されているが、これらのカラムには、図4のカラム407及び408と同様の内容が登録される。
カラム410には、カラム405に示すアダプタIDによって識別されるアダプタ120が、カラム406に示す接続先のNW−SW104の物理ポートに接続されているとき、その接続先の物理ポートのポート番号が登録される。
図25によれば、例えば、アダプタ「WWN0」がNW−SW「SW0」のポート「0」に接続され、アダプタ「WWN1」がNW−SW「SW0」のポート「1」に接続されている。
図26は、本発明の第4の実施の形態の外部ディスク装置情報テーブル307の説明図である。
図26に示す外部ディスク装置情報テーブル307は、図5に示す外部ディスク装置情報テーブル307を、本実施の形態に適用するために拡張したものである。拡張された部分は、カラム510及びカラム511である。カラム501から503は、図5のカラム501から503と同様であるため、説明を省略する。
カラム510には、カラム503に示すポートIDによって識別される物理ポートの接続先のNW−SW104の識別子が登録される。
カラム511には、カラム503に示すポートIDによって識別される物理ポートがカラム510に示すNW−SW104の物理ポートに接続されているとき、その接続先のNW−SW104の物理ポートのポート番号が登録される。
図27は、本発明の第4の実施の形態のNW−SW104が実行するセキュリティ制御の説明図である。
具体的には、図27は、本実施の形態のNW−SW104が備えるセキュリティ制御プログラム141が実行する処理の概要を示す。NW−SW104のコントローラ140は、セキュリティ制御プログラム141を備える。セキュリティ制御プログラム141は、例えば、ポートVLAN機能、タグVLAN機能又はゾーニング機能等を実現するプログラムである。セキュリティ制御プログラム141は、コントローラ140内のメモリ(図示省略)に格納され、コントローラ140内のCPU(図示省略)によって実行される。
セキュリティ制御プログラム141は、NW−SW104が備える物理ポート2755等の番号を指定して、通信が可能なポートの組み合わせを制限することができる。
図27の例では、サーバ2701が備えるアダプタ2710のID2711によって識別されるポートは、NW−SW104のポート5(2755)と接続されている。サーバ2702が備えるアダプタ2720のID2721によって識別されるポートは、NW−SW104のポート7(2757)と接続されている。外部ディスク装置2703は、NW−SW104のポート10(2760)と接続されている。外部ディスク装置2704は、NW−SW104のポート11(2761)と接続されている。
セキュリティ制御プログラム141が、ポート5とポート10の間の通信を許可し、さらに、ポート7とポート11の間の通信を許可していると仮定する。この場合、許可されたポートの間の通信が可能である。ポート5とポート11の間の通信は許可されていないため、サーバ2701はディスク2740にはアクセスできない。
コントローラ140は、セキュリティテーブル142を保持する。セキュリティテーブル142には、通信可能なNW−SW104のポート番号の組み合わせが登録される(図28参照)。セキュリティテーブル142は、コントローラ140内のメモリ(図示省略)に格納される。
セキュリティ制御プログラム141は、NW−SW104のポート番号の組み合わせを指定する代わりに、NW−SW104に接続されているアダプタのID2711及び2721、又は、外部ディスク装置2703及び2704のポートID2731及び2732を指定して通信を許可又は禁止することによって、通信可能な組み合わせを制御することもできる。
図28は、本発明の第4の実施の形態のセキュリティテーブル142の説明図である。
カラム2801は、セキュリティのグループIDを示す。グループIDは、例えば、VLANのID又はゾーニングにおけるゾーンの識別名等である。
カラム2802は、カラム2801に示すグループに所属するNW−SW104のポート番号の組み合わせである。ここで、同一のグループに属するポート番号同士では通信が可能である。
図28の例では、カラム2801に、セキュリティグループIDとして、「A」、「B」及び「C」が登録されている。カラム2802には、セキュリティグループID「A」、「B」及び「C」に対応して、それぞれ、「5、10」、「7、11」及び「9、12」が登録されている。これは、ポート5及びポート10が同一のセキュリティグループAに属し、ポート7及びポート11が同一のセキュリティグループBに属し、ポート9及びポート12が同一のセキュリティグループCに属することを示す。
セキュリティ制御プログラム141は、同一のグループに属するポート間の通信を許可する。このため、同一のグループに属するポート間の通信は可能であるが、同一のグループに属するポート間では通信できない。すなわち、図27に示すように、ポート5に接続されたサーバ2701は、ポート10に接続された外部ディスク装置2703の論理ディスク「VOL0」にアクセスすることができるが、ポート11に接続された外部ディスク装置2704の論理ディスク「VOL3」にアクセスすることができない。
カラム2802には、NW−SW104のポート番号の代わりに、NW−SW104に接続されているアダプタ120のID及び外部ディスク装置103のコントローラ130のIDとして、例えば、WWN、IPアドレス又はMACアドレスの組み合わせが登録されてもよい。
本発明の第4の実施の形態の計算機システム内の各機器は、第1の実施の形態と同様、図13に示すシーケンスに従って処理を実行する。ただし、第4の実施の形態のステップ1341の処理は、第1の実施の形態と相違する。以下、この相違点について説明する。
図29は、本発明の第4の実施の形態のブートパス冗長化プログラム111が実行するネットワークセキュリティ制御を説明するフローチャートである。
具体的には、図29は、第4の実施の形態における図13のステップ1341において、ネットワークセキュリティ制御モジュール322によって実行される処理を示す。
図29に示す処理は、図19のステップ1904と1905の間に、ステップ2901から2903を追加したものである。図29のステップ1901から1905までは、図19のステップ1901から1905までと同じであるため、説明を省略する。
本実施の形態のネットワークセキュリティ制御モジュール322は、ステップ1904を実行した後、ステップ2901を実行する。
ステップ2901において、ネットワークセキュリティ制御モジュール322は、サーバ情報テーブル306(図25)及び外部ディスク装置情報テーブル307(図26)を参照する。そして、ネットワークセキュリティ制御モジュール322は、業務再開サーバ1302のアダプタポートの接続先NW−SW104の識別子(カラム406)と、接続先の物理ポートの識別子(カラム410)とを取得する。さらに、ネットワークセキュリティ制御モジュール322は、ステップ1902において取得された外部ディスク装置103のコントローラ130が備えるポートの接続先のNW−SW104の識別子(カラム510)と、接続先の物理ポートの識別子(カラム511)とを取得する。
次に、ステップ2902において、ネットワークセキュリティ制御モジュール322は、ステップ2901で取得した業務再開サーバ1302のアダプタポートの接続先であり、かつ、ステップ1902において取得された外部ディスク装置103のコントローラ130が備えるポートの接続先であるNW−SW104のセキュリティ制御プログラム141に対して、ステップ2901で取得した物理ポートが所属するセキュリティグループを作成することを要求する。例えば、サーバ情報テーブル306(図25)のカラム406に登録されたNW−SW104の識別子と、外部ディスク情報テーブル307(図26)のカラム510に登録されたNW−SWの識別子が同一である場合、カラム410に登録されたポート番号とカラム511に登録されたポート番号とを同一のセキュリティグループに所属させる。
この要求を受けたNW−SW104のセキュリティ制御プログラム141は、要求に従って、セキュリティテーブル142を更新する。そして、セキュリティ制御プログラム141は、ネットワークセキュリティ制御モジュール322に対して、セキュリティグループ作成の完了通知を送付する。
次に、ステップ2903において、ネットワークセキュリティ制御モジュール322は、NW−SW104のセキュリティ制御プログラム141からセキュリティグループ作成完了通知を受信する。
その後、ステップ1905が実行され、処理が終了する。
上記の本発明の第4の実施の形態によれば、ネットワークがVLAN機能又はゾーニング機能を備える場合にも、本発明を実施することができる。
次に、本発明の第5の実施の形態について説明する。
本発明の第1の実施の形態では、外部ディスク装置103のセキュリティ制御プログラム1103が、ディスクマッピングテーブル1132を設定することによって、サーバ102のディスク131に対するアクセスの許可及び禁止を制御した。しかし、サーバ102のアダプタIDを変更すれば、外部ディスク装置103側の設定を変更せずに、サーバ102のアクセスの許可及び禁止を制御することができる。本発明の第5の実施の形態では、上記のように、サーバ102の設定を変更することによって、セキュリティが制御される。
図30は、本発明の第5の実施の形態の障害回復プログラム110及びブートパス冗長化プログラム111の詳細な説明図である。
図30に示すように、本実施の形態の障害回復プログラム110は、第1の実施の形態の障害回復プログラム110(図3参照)と同じである。一方、本実施の形態のブートパス冗長化プログラム111は、本実施の形態のネットワークセキュリティ制御モジュール322がアダプタID変更プログラム3000を含むことを除き、第1の実施の形態のブートパス冗長化プログラム111(図3参照)と同じである。アダプタID変更プログラム3000は、サーバ102が備えるアダプタ120のIDを変更するプログラムである。
本発明の第5の実施の形態の計算機システム内の各機器は、第1の実施の形態と同様、図13に示すシーケンスに従って処理を実行する。ただし、さらに、第5の実施の形態のステップ1333、1334及び1341の処理は、第1の実施の形態と相違する。以下、この相違点について説明する。
図31は、本発明の第5の実施の形態の障害回復プログラム110が実行する業務再開サーバの検索を説明するフローチャートである。
図31に示す処理は、本実施の形態の業務再開サーバ検索モジュール303が、図13のステップ1333及びステップ1334において実行する処理である。
図31に示す処理は、図17のステップ1705を、ステップ3100によって置き換えたものである。図31のステップ1701から1704及びステップ1706から1708は、それぞれ、図17のステップ1701から1704及びステップ1706から1708と同じであるため、説明を省略する。
ステップ3100では、業務再開サーバ検索モジュール303が、ネットワークセキュリティ制御モジュール322に、業務再開サーバ1302の識別子、その業務再開サーバ1302のアダプタ120のID、業務停止サーバ1301の識別子、及び、その業務停止サーバ1301のアダプタのIDを通知する。
図32は、本発明の第5の実施の形態のブートパス冗長化プログラム111が実行するネットワークセキュリティ制御を説明するフローチャートである。
図32に示す処理は、本実施の形態のネットワークセキュリティ制御モジュール322、サーバ電源制御モジュール305及び業務再開サーバ1302が、図13のステップ1341において実行する処理である。
最初に、ネットワークセキュリティ制御モジュール322は、業務再開サーバ検索モジュール303から、業務再開サーバ1302の識別子、その業務再開サーバ1302のアダプタのID、業務停止サーバ1301の識別子、及び、その業務停止サーバ1301のアダプタのIDを受信する(ステップ3201)。
次に、ネットワークセキュリティ制御モジュール322は、業務再開サーバ1302の電源投入をサーバ電源制御モジュール305に要求する(ステップ3202)。
ステップ3202の要求を受けたサーバ電源制御モジュール305は、業務再開サーバ1302の電源を投入する(ステップ3203)。
次に、サーバ電源制御モジュール305は、業務再開サーバ1302の電源投入が完了したことを確認する(ステップ3204)。ここで、業務再開サーバ1302は、例えばPXE等の方法でネットワークブートするように設定されている。
次に、ネットワークセキュリティ制御モジュール322が、業務再開サーバ1302をネットワークブートし、アダプタID変更プログラム3000を業務再開サーバ1302に送信する(ステップ3205)。ここで、ネットワークセキュリティ制御モジュール322は、例えばDHCP等のネットワークブートに対応するプログラムを起動中であり、tftp等の方法で業務再開サーバ1302にアダプタID変更プログラム3000を送信することができる。
業務再開サーバ1302は、受信したアダプタID変更プログラム3000を実行する(ステップ3206)。その結果、ステップ3201で取得した業務再開サーバ1302のアダプタ120のIDが、業務停止サーバ1301のアダプタ120のIDに書き換えられる。例えば、アダプタ120自身がIDの書き換え機能を備え、アダプタID変更プログラム3000がその機能を利用して書き換えてもよい。あるいは、アダプタID変更プログラム3000が、IDが保存されているファイル又はデータを直接書き換えてもよい。
次に、ネットワークセキュリティ制御モジュール322は、業務再開サーバ1302のブート設定変更完了を確認する(ステップ3207)。
次に、ネットワークセキュリティ制御モジュール322は、業務再開サーバ検索モジュール303に対してセキュリティ設定変更完了を通知する(ステップ3208)。
以上で、図32の処理が終了する。
上記の本発明の第5の実施の形態によれば、ネットワーク側及び外部ディスク装置103側のセキュリティ設定を変更しなくても、本発明を実施することができる。
以上の本発明の実施の形態によれば、計算機システムの信頼性が向上する。さらに、サーバが複数の独立したネットワークを介して同一のディスクイメージにアクセスできるため、それぞれのネットワークを利用するサーバが並列にデータ処理を実現することもできる。その結果、計算機システムの処理が高速化されるという効果もある。
特許請求の範囲に記載していない本発明の観点の代表的なものとして、次のものが挙げられる。
(1)複数のサーバと、前記複数のサーバに接続される複数のネットワークと、前記複数のネットワークに接続される複数の外部ディスク装置と、前記複数のサーバ、前記複数のネットワーク及び前記複数の外部ディスク装置に管理ネットワークを介して接続される管理計算機と、を備える計算機システムの制御方法であって、
前記各外部ディスク装置は、データを格納する一つ以上のディスクを備え、
前記管理計算機は、前記管理ネットワークに接続されるインターフェースと、前記インターフェースに接続される第1プロセッサと、前記第1プロセッサに接続される第1メモリと、を備え、
前記方法は、前記第1プロセッサが、
前記サーバ、前記ネットワーク又は前記外部ディスク装置に障害が発生したことを検知し、
前記複数のサーバの中から、前記発生した障害を原因として、利用していた前記ディスクにアクセスできなくなる業務停止サーバを検索し、
前記複数のディスクの中から、前記検索された業務停止サーバが利用していた前記ディスクと同一の内容を格納するディスクを検索し、前記検索されたディスクを含む前記外部ディスク装置を検索し、
前記複数のサーバの中から、前記検索された外部ディスク装置に、障害が発生していない前記ネットワークを経由してアクセスできる業務再開サーバを検索し、
前記検索された業務再開サーバに、前記管理ネットワークを介して、前記検索されたディスクを利用して起動するための指示を送信することを特徴とする方法。
(2)前記第1メモリは、
前記各サーバの識別子と、前記各サーバが利用する前記ディスクの内容の識別子と、前記各サーバが利用する前記ディスクを含む前記外部ディスク装置の識別子と、前記各サーバが前記ディスクを利用するためのアクセス経路を構成する前記ネットワークの識別子と、を含むサーバ情報と、
前記各ディスクの識別子と、前記各ディスクの内容の識別子と、前記各ディスクを含む前記外部ディスク装置の識別子と、を含む冗長パス情報と、を保持し、
前記方法は、前記第1プロセッサが、
前記サーバ情報を参照して、前記複数のサーバの中から、前記発生した障害を原因として、利用していた前記ディスクにアクセスできなくなる業務停止サーバを検索し、
前記冗長パス情報を参照して、前記複数のディスクの中から、前記検索された業務停止サーバが利用していた前記ディスクと同一の内容を格納するディスクを検索し、前記検索されたディスクを含む前記外部ディスク装置を検索し、
前記サーバ情報を参照して、前記複数のサーバの中から、前記検索された外部ディスク装置に、障害が発生していない前記ネットワークを経由してアクセスできる業務再開サーバを検索することを特徴とする(1)に記載の方法。
(3)前記外部ディスク装置は、前記複数のネットワークに接続される複数のコントローラを備え、
二つの前記コントローラは、一つの前記ディスクを、同一の内容を格納する二つの論理的なディスクとして前記サーバに提供し、
前記方法は、前記二つの論理的なディスクの一方が、前記業務停止サーバが利用していた前記ディスクとして検索された場合、前記第1プロセッサが、前記二つの論理的なディスクの他方を、前記検索された業務停止サーバが利用していた前記ディスクと同一の内容を格納するディスクとして検索することを特徴とする(1)に記載の方法。
(4)前記方法は、
前記第1プロセッサが、前記外部ディスク装置に含まれる複写元の前記ディスクに格納されたデータを、他の前記外部ディスク装置に含まれる複写先の前記ディスクに複写する指示を前記外部ディスク装置に送信し、
前記複写元のディスク及び前記複写先のディスクの二つのディスクの一方が、前記業務停止サーバが利用していた前記ディスクとして検索された場合、前記第1プロセッサが、前記二つのディスクの他方を、前記検索された業務停止サーバが利用していた前記ディスクと同一の内容を格納するディスクとして検索することを特徴とする(1)に記載の方法。
(5)前記各サーバは、前記ネットワークに接続されるアダプタと、前記アダプタに接続される第2プロセッサと、前記第2プロセッサに接続される第2メモリと、を備え、
前記方法は、
前記第2プロセッサが、一つの前記外部ディスク装置内の一つの前記ディスクに対する書き込み命令を発行すると、前記アダプタが、前記書き込み命令を、二つの前記外部ディスク装置内の二つの前記ディスクを対象として送信し、
前記二つのディスクの一方が、前記業務停止サーバが利用していた前記ディスクとして検索された場合、前記第1プロセッサが、前記二つのディスクの他方を、前記検索された業務停止サーバが利用していた前記ディスクと同一の内容を格納するディスクとして検索することを特徴とする(1)に記載の方法。
(6)前記各サーバは、前記ネットワークに接続されるアダプタと、前記アダプタに接続される第2プロセッサと、前記第2プロセッサに接続される第2メモリと、を備え、
前記方法は、
前記第2プロセッサが、一つの前記外部ディスク装置内の一つの前記ディスクに格納されたデータを読み出し、読み出されたデータを、他の前記外部ディスク装置内の前記ディスクに書き込み、
前記データが読み出されるディスク及び前記データが書き込まれるディスクの二つのディスクの一方が、前記業務停止サーバが利用していた前記ディスクとして検索された場合、前記第1プロセッサが、前記二つのディスクの他方を、前記検索された業務停止サーバが利用していた前記ディスクと同一の内容を格納するディスクとして検索することを特徴とする(1)に記載の方法。
(7)前記外部ディスク装置は、前記ディスクの識別子と、前記ディスクへのアクセスを許可された前記サーバの識別子と、を含むディスクマッピング情報を保持し、
前記方法は、前記第1プロセッサが、前記検索されたディスクを利用して起動するための指示を送信する前に、前記検索された業務再開サーバによる前記検索されたディスクへのアクセスを許可するために前記ディスクマッピング情報を更新する指示を前記検索された外部ディスク装置に送信することを特徴とする(1)に記載の方法。
(8)前記複数のネットワークは、複数のネットワークスイッチを備え、
前記方法は、前記第1プロセッサが、前記検索されたディスクを利用して起動するための指示を送信する前に、前記検索された業務再開サーバによる前記検索されたディスクへのアクセスを許可するための指示を、少なくとも一つの前記ネットワークスイッチに送信することを特徴とする(1)に記載の方法。
(9)前記各サーバは、前記ネットワークに接続されるアダプタを備え、
前記アダプタは、そのアダプタの識別子を保持し、
前記方法は、前記第1プロセッサが、前記業務再開サーバが備えるアダプタの識別子を、前記業務停止サーバが備えるアダプタの識別子によって書き換える指示を前記業務再開サーバに送信することを特徴とする(1)に記載の方法。
(10)前記各サーバは、前記ネットワークに接続されるアダプタと、前記アダプタに接続される第2プロセッサと、前記第2プロセッサに接続される第2メモリと、を備え、
前記第2メモリは、前記サーバが起動するときに前記第2プロセッサによって実行されるブートプログラムを保持し、
前記方法は、
前記第1プロセッサが、前記検索されたディスクを利用して起動するように前記ブートプログラムの設定を変更する設定変更プログラムを、前記業務再開サーバに送信し、
前記第2プロセッサが、前記設定変更プログラムを実行し、
前記第1プロセッサが、前記業務再開サーバを起動することを特徴とする(1)に記載の方法。
(11)複数のサーバと、前記複数のサーバに接続される複数のネットワークと、前記複数のネットワークに接続される複数の外部ディスク装置と、前記複数のサーバ、前記複数のネットワーク及び前記複数の外部ディスク装置に管理ネットワークを介して接続される管理計算機と、を備える計算機システムにおいて前記管理計算機を制御するプログラムであって、
前記各外部ディスク装置は、データを格納する一つ以上のディスクを備え、
前記管理計算機は、前記管理ネットワークに接続されるインターフェースと、前記インターフェースに接続されるプロセッサと、前記プロセッサに接続され、前記プログラムを格納するメモリと、を備え、
前記プログラムは、
前記サーバ、前記ネットワーク又は前記外部ディスク装置に障害が発生したことを検知する第1手順と、
前記複数のサーバの中から、前記発生した障害を原因として、利用していた前記ディスクにアクセスできなくなる業務停止サーバを検索する第2手順と、
前記複数のディスクの中から、前記検索された業務停止サーバが利用していた前記ディスクと同一の内容を格納するディスクを検索し、前記検索されたディスクを含む前記外部ディスク装置を検索する第3手順と、
前記複数のサーバの中から、前記検索された外部ディスク装置に、障害が発生していない前記ネットワークを経由してアクセスできる業務再開サーバを検索する第4手順と、
前記検索された業務再開サーバに、前記管理ネットワークを介して、前記検索されたディスクを利用して起動するための指示を送信する第5手順と、を前記プロセッサに実行させることを特徴とするプログラム。
(12)前記メモリは、
前記各サーバの識別子と、前記各サーバが利用する前記ディスクの内容の識別子と、前記各サーバが利用する前記ディスクを含む前記外部ディスク装置の識別子と、前記各サーバが前記ディスクを利用するためのアクセス経路を構成する前記ネットワークの識別子と、を含むサーバ情報と、
前記各ディスクの識別子と、前記各ディスクの内容の識別子と、前記各ディスクを含む前記外部ディスク装置の識別子と、を含む冗長パス情報と、を保持し、
前記プログラムは、前記第2手順において前記プロセッサに前記サーバ情報を参照させ、前記第3手順において前記プロセッサに前記冗長パス情報を参照させ、前記第4手順において前記プロセッサに前記サーバ情報を参照させることを特徴とする(11)に記載のプログラム。
(13)複数のサーバと、前記複数のサーバに接続される複数のネットワークと、前記複数のネットワークに接続される複数の外部ディスク装置と、前記複数のサーバ、前記複数のネットワーク及び前記複数の外部ディスク装置に管理ネットワークを介して接続される管理計算機と、を備える計算機システムにおいて、
前記各外部ディスク装置は、データを格納する一つ以上のディスクを備え、
前記管理計算機は、前記管理ネットワークに接続されるインターフェースと、前記インターフェースに接続されるプロセッサと、前記プロセッサに接続されるメモリと、を備え、
前記プロセッサは、
前記サーバ、前記ネットワーク又は前記外部ディスク装置に障害が発生したことを検知し、
前記複数のサーバの中から、前記発生した障害を原因として、利用していた前記ディスクにアクセスできなくなる業務停止サーバを検索し、
前記複数のディスクの中から、前記検索された業務停止サーバが利用していた前記ディスクと同一の内容を格納するディスクを検索し、前記検索されたディスクを含む前記外部ディスク装置を検索し、
前記複数のサーバの中から、前記検索された外部ディスク装置に、障害が発生していない前記ネットワークを経由してアクセスできる業務再開サーバを検索し、
前記検索された業務再開サーバに、前記管理ネットワークを介して、前記検索されたディスクを利用して起動するための指示を送信することを特徴とする計算機システム。
(14)前記メモリは、
前記各サーバの識別子と、前記各サーバが利用する前記ディスクの内容の識別子と、前記各サーバが利用する前記ディスクを含む前記外部ディスク装置の識別子と、前記各サーバが前記ディスクを利用するためのアクセス経路を構成する前記ネットワークの識別子と、を含むサーバ情報と、
前記各ディスクの識別子と、前記各ディスクの内容の識別子と、前記各ディスクを含む前記外部ディスク装置の識別子と、を含む冗長パス情報と、を保持し、
前記プロセッサは、
前記サーバ情報を参照して、前記複数のサーバの中から、前記発生した障害を原因として、利用していた前記ディスクにアクセスできなくなる業務停止サーバを検索し、
前記冗長パス情報を参照して、前記複数のディスクの中から、前記検索された業務停止サーバが利用していた前記ディスクと同一の内容を格納するディスクを検索し、前記検索されたディスクを含む前記外部ディスク装置を検索し、
前記サーバ情報を参照して、前記複数のサーバの中から、前記検索された外部ディスク装置に、障害が発生していない前記ネットワークを経由してアクセスできる業務再開サーバを検索することを特徴とする(13)に記載の計算機システム。