(57)【要約】【課題】共有ディスク型クラスタシステムにおいて異常発生時に共有ディスクへのアクセスを迅速に停止する。【解決手段】現用系サーバ１０と待機系サーバ２０とが共有ディスク３０を利用して動作するクラスタシステム１であって、各サーバが、所定のバスを介して入出力されたデータを用いて共有ディスク３０へのアクセスを行うディスク入出力部１３、２３と、現用系サーバに障害が発生した場合にその障害を検出する障害検出部１１、２１と、障害検出部１１、２１が障害を検出した場合にバスで訂正不可能障害を発生させるため訂正不可能障害発生要求を発行することでバスを閉塞させるバス閉塞部１２、２２とを備えている。【選択図】図１
2015056042.tif 000002
【特許請求の範囲】
【請求項１】
現用系サーバと待機系サーバとが共有ディスクを利用して動作するクラスタシステムであって、前記各サーバが、
所定のバスを介して入出力されたデータを用いて前記共有ディスクへのアクセスを行うディスク入出力部と、
前記現用系サーバに障害が発生した場合にその障害を検出する障害検出部と、
前記障害検出部が前記障害を検出した場合に前記バスで訂正不可能障害を発生させるため訂正不可能障害発生要求を発行することで前記バスを閉塞させるバス閉塞部と
を備えることを特徴とするクラスタシステム。
【請求項２】
前記各サーバがさらに、
前記バスに対するデータの入出力を制御するものであって、前記バスでの障害発生を通知するための障害割込信号が発行された場合に、前記バスに対するデータ入出力の制御動作を停止する入出力制御部と、
前記バス閉塞部が前記訂正不可能障害発生要求を発行した場合、前記入出力制御部の前記制御動作の停止を待って、前記現用系サーバを停止させるためのマスク不可割込信号を前記現用系サーバに対して発行する割込信号発行部と
を備えることを特徴とする請求項１に記載のクラスタシステム。
【請求項３】
前記割込信号発行部が、前記マスク不可割込信号を発行する前に、前記現用系サーバから前記待機系サーバへのフェイルオーバーの通知を要求するフェイルオーバー通知要求信号を発行する
ことを特徴とする請求項２に記載のクラスタシステム。
【請求項４】
前記各サーバがさらに、通信装置と、オンボード・サーバ管理チップとを備え、
前記各サーバの前記各通信装置を介して、前記バスの閉塞後に前記現用系サーバから前記待機系サーバへとフェイルオーバーが要求され、
前記各サーバの前記各オンボード・サーバ管理チップを介して、前記入出力制御部の停止後に前記現用系サーバから前記待機系サーバへとフェイルオーバーが通知される
ことを特徴とする請求項２または３に記載のクラスタシステム。
【請求項５】
前記バス閉塞部を構成するプログラムが、前記各サーバの基本的な入出力制御を行うモジュール群に含まれている
ことを特徴とする請求項１から４のいずれか１項に記載のクラスタシステム。
【請求項６】
現用系サーバと待機系サーバとが共有ディスクを利用して動作するクラスタシステムで用いられるサーバであって、
所定のバスを介して入出力されたデータを用いて前記共有ディスクへのアクセスを行うディスク入出力部と、
前記現用系サーバに障害が発生した場合にその障害を検出する障害検出部と、
前記障害検出部が前記障害を検出した場合に前記バスで訂正不可能障害を発生させるため訂正不可能障害発生要求を発行することで前記バスを閉塞させるバス閉塞部と
を備えることを特徴とする情報処理装置。
【請求項７】
現用系サーバと待機系サーバとが共有ディスクを利用して動作するクラスタシステムの制御方法であって、前記各サーバが、
所定のバスを介して入出力されたデータを用いて前記共有ディスクへのアクセスを行うディスク入出力部と、
前記現用系サーバに障害が発生した場合にその障害を検出する障害検出部と、
バス閉塞部と
を備えていて、
前記バス閉塞部が、前記障害検出部が前記障害を検出した場合に前記バスで訂正不可能障害を発生させるため訂正不可能障害発生要求を発行することで前記バスを閉塞させる
ことを特徴とするクラスタシステムの制御方法。
【請求項８】
現用系サーバと待機系サーバとが共有ディスクを利用して動作するクラスタシステムの制御プログラムであって、前記各サーバが、
所定のバスを介して入出力されたデータを用いて前記共有ディスクへのアクセスを行うディスク入出力部と、
前記現用系サーバに障害が発生した場合にその障害を検出する障害検出部と、
バス閉塞部と
を備えていて、
前記バス閉塞部が、前記障害検出部が前記障害を検出した場合に前記バスで訂正不可能障害を発生させるため訂正不可能障害発生要求を発行することで前記バスを閉塞させる過程を
コンピュータに実行させることを特徴とするクラスタシステムの制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、フェイルオーバー機能を有する共有ディスク型クラスタシステムとして用いて好適なクラスタシステム、情報処理装置、クラスタシステムの制御方法及びプログラムに関する。
【背景技術】
【０００２】
コンピュータの障害発生によるシステムの停止を防止するために、現用系及び待機系の両サーバと共有ディスクを備えた共有ディスク型クラスタシステムが知られている（例えば特許文献１、特許文献２等）。このような共有ディスク型のクラスタシステムでは、両サーバにて作動する業務アプリケーションのデータは、現用系サーバからも待機系サーバからもアクセス可能な共有ディスクに格納される。
【０００３】
そして、現用系サーバに障害が発生した場合、業務アプリケーションの切り替えを行うために、クラスタソフトウェアは待機系サーバで業務アプリケーションを起動する。待機系サーバで起動した業務アプリケーションは、共有ディスクに格納されたデータを使用し、現用系サーバの業務アプリケーションが停止した時点から業務処理を再開する。
【０００４】
共有ディスク型クラスタシステムでは、データを共有ディスクに格納するため、現用系と待機系の両サーバから同時に共有ディスクに書込を行うと、データが破壊されるおそれがある。そのため、通常は現用系サーバからの書込のみを行うように排他制御を行う。
【０００５】
共有ディスク型クラスタシステムにおいてフェイルオーバーを行う場合には、正しく排他制御を行なって障害サーバから共有ディスクへのアクセスを確実に停止する必要がある。共有ディスク型クラスタシステムにおいて、共有ディスクへのアクセスを停止する手法として、主に次の４つの手法が存在するが、それぞれ課題を有している。
【０００６】
１）ディスクのアンマウント
ディスクのアンマウントの場合は、処理に時間がかかり、書込み中のプロセスが存在する場合にはアンマウント処理が失敗する。
【０００７】
２）Ｆｉｂｅｒ  Ｃｈａｎｎｅｌ（ＦＣ）スイッチのポート閉塞
サーバ外のモジュールに接続するため接続時間がかかり、障害の種類によってはＦＣスイッチに接続できない、という問題がある。
【０００８】
３）ＯＳ（Ｏｐｅｒａｔｉｎｇ Ｓｙｓｔｅｍ）パニック
ＨＢＡ（Ｈｏｓｔ  Ｂｕｓ  Ａｄａｐｔｅｒ）カードのキャッシュに残っているＩ／Ｏ（入力／出力）データが書き込まれる可能性がある。また、アクセスを停止できたとしても、ＯＳパニックを契機にフェイルオーバーを行うため、高速にフェイルオーバーができない。
【０００９】
４）ＢＭＣ（Ｂａｓｅｂｏａｒｄ  Ｍａｎａｇｅｍｅｎｔ  Ｃｏｎｔｒｏｌｌｅｒ；オンボード・サーバ管理チップ）による停止
ＢＭＣがＨＢＡカードに対して、強制的にリセットを掛ける、あるいは電源供給を断つ方式の場合、ＢＭＣがビジーであった場合に、共有ディスクへのアクセスを停止するまでに時間がかかり、高速にフェイルオーバーができない。また、ＯＳ・ドライバに見えないタイミングで強制的にアクセスを停止させるため、ＯＳパニックとなってしまい、フェイルオーバーに時間がかかってしまう。あるいは、ＢＭＣが停止していた場合は、共有ディスクへのアクセスを停止できない、フェイルオーバーもできないといった課題がある。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開２００４−２５２５９１号公報
【特許文献２】特開２０１２−１７３７５２号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
上記特許文献１及び特許文献２に記載されているクラスタシステムでは、共有ディスクへのアクセスを停止する手法として、ディスクをアンマウントする手法が採用されている。このため、共有ディスクへのアクセスを停止するまでに時間がかかってしまうという課題があった。
【００１２】
本発明は、上記事情を考慮してなされたものであり、上記課題を解決することができるクラスタシステム、情報処理装置、クラスタシステムの制御方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１３】
上記課題を解決するため、本発明のクラスタシステムは、現用系サーバと待機系サーバとが共有ディスクを利用して動作するクラスタシステムであって、前記各サーバが、所定のバスを介して入出力されたデータを用いて前記共有ディスクへのアクセスを行うディスク入出力部と、前記現用系サーバに障害が発生した場合にその障害を検出する障害検出部と、前記障害検出部が前記障害を検出した場合に前記バスで訂正不可能障害を発生させるため訂正不可能障害発生要求を発行することで前記バスを閉塞させるバス閉塞部とを備えることを特徴とする。
【００１４】
また、本発明の情報処理装置は、現用系サーバと待機系サーバとが共有ディスクを利用して動作するクラスタシステムで用いられるサーバであって、所定のバスを介して入出力されたデータを用いて前記共有ディスクへのアクセスを行うディスク入出力部と、前記現用系サーバに障害が発生した場合にその障害を検出する障害検出部と、前記障害検出部が前記障害を検出した場合に前記バスで訂正不可能障害を発生させるため訂正不可能障害発生要求を発行することで前記バスを閉塞させるバス閉塞部とを備えることを特徴とする。
【００１５】
また、本発明のクラスタシステムの制御方法は、現用系サーバと待機系サーバとが共有ディスクを利用して動作するクラスタシステムの制御方法であって、前記各サーバが、所定のバスを介して入出力されたデータを用いて前記共有ディスクへのアクセスを行うディスク入出力部と、前記現用系サーバに障害が発生した場合にその障害を検出する障害検出部と、バス閉塞部とを備えていて、前記バス閉塞部が、前記障害検出部が前記障害を検出した場合に前記バスで訂正不可能障害を発生させるため訂正不可能障害発生要求を発行することで前記バスを閉塞させることを特徴とする。
【００１６】
また、クラスタシステムの制御プログラムは、現用系サーバと待機系サーバとが共有ディスクを利用して動作するクラスタシステムの制御プログラムであって、前記各サーバが、所定のバスを介して入出力されたデータを用いて前記共有ディスクへのアクセスを行うディスク入出力部と、前記現用系サーバに障害が発生した場合にその障害を検出する障害検出部と、バス閉塞部とを備えていて、前記バス閉塞部が、前記障害検出部が前記障害を検出した場合に前記バスで訂正不可能障害を発生させるため訂正不可能障害発生要求を発行することで前記バスを閉塞させる過程をコンピュータに実行させることを特徴とする。
【発明の効果】
【００１７】
本発明によれば、ディスク入出力部にデータ入出力を行うバスで訂正不可能障害を発生させることでバス閉塞を行うので、共有ディスクへのアクセス停止を迅速に行うことができる。
【図面の簡単な説明】
【００１８】
【図１】本発明によるクラスタシステムの一実施形態の基本構成例を示したブロック図である。
【図２】図１に示したクラスタシステム１の一例として本発明の実施形態の構成例を示したブロック図である。
【図３】図２に示したクラスタシステム１ａの動作例を説明するための説明図である。
【図４】図２に示したクラスタシステム１ａの動作例を説明するためのフローチャートである。
【図５】図２に示したクラスタシステム１ａの動作例を説明するための他のフローチャートである。
【発明を実施するための形態】
【００１９】
以下、図面を参照して本発明の実施の形態について説明する。図１は、本発明によるクラスタシステムの一実施形態の基本構成例を示したブロック図である。図１に示したクラスタシステム１は、現用系サーバ１０と、待機系サーバ２０と、共有ディスク３０とを備えている。このクラスタシステム１は、コンピュータの障害発生によるシステムの停止を防止するために、現用系及び待機系の両サーバ１０及び２０と共有ディスク３０を備えた共有ディスク型クラスタシステムを構成する。クラスタシステム１では、両サーバにて作動する業務アプリケーションのデータは、現用系サーバ１０からも待機系サーバ２０からもアクセス可能な共有ディスク３０に格納される。
【００２０】
現用系サーバ１０は、障害検出部１１と、バス閉塞部１２と、ディスク入出力部１３とを備えている。また、待機系サーバ２０は、障害検出部２１と、バス閉塞部２２と、ディスク入出力部２３とを備えている。障害検出部２１と、バス閉塞部２２と、ディスク入出力部２３とは、現用系サーバ１０が備える、障害検出部１１と、バス閉塞部１２と、ディスク入出力部１３とそれぞれ同一の構成である。
【００２１】
ディスク入出力部１３は、所定のバスを介して入出力されたデータを用いて共有ディスク３０へのアクセスを行う。また、ディスク入出力部２３は、所定のバスを介して入出力されたデータを用いて共有ディスク３０へのアクセスを行う。
【００２２】
現用系サーバ１０の障害検出部１１は、現用系サーバ１０に障害が発生した場合にその障害を検出する。また、待機系サーバ２０の障害検出部２１は、待機系サーバ２０に障害が発生した場合にその障害を検出する。ただし、待機系サーバ２０の障害検出部２１は、現用系サーバ１０に障害が発生し、フェイルオーバーによって処理を引き継いでいる場合に、待機系サーバ２０の障害検出を行う。障害検出部１１と障害検出部２１とは互いに連係して動作することで各サーバの障害発生を検出するものであってもよいし、単独で各サーバの障害発生を検出するものであってもよい。
【００２３】
バス閉塞部１２は、障害検出部１１が現用系サーバ１０の障害を検出した場合にディスク入出力部１３との間でデータ入出力を行うための所定のバスにおいて、訂正不可能障害を発生させるため、訂正不可能障害発生要求を発行する。例えばディスク入出力部１３が有する当該バスの制御装置は、訂正不可能障害発生要求を受けると、訂正不可能障害を発生させ（あるいは訂正不可能な障害が発生したと認識し）、当該バスを閉塞させる。同様に、バス閉塞部２２は、障害検出部２１が待機系サーバ２０の障害を検出した場合にディスク入出力部２３との間でデータ入出力を行うための所定のバスにおいて訂正不可能障害を発生させるため訂正不可能障害発生要求を発行する。例えばディスク入出力部２３が有する当該バスの制御装置は、訂正不可能障害発生要求を受けると、訂正不可能障害を発生させ（あるいは訂正不可能な障害が発生したと認識し）、当該バスを閉塞させる。
【００２４】
図１に示したクラスタシステム１によれば、意図的に障害を生起し、訂正不可能障害を起こすことでバスを閉塞させている。したがって、共有ディスクへのアクセス停止を迅速に行うことができる。なお、訂正不可能障害発生要求の要求先としては、ディスク入出力部１３等に設けられたバスの制御装置であってもよいし、例えば図示していないＣＰＵと組み合わせて使用されるチップセット等と一般に呼ばれる集積回路群内に含まれたものであってもよい。
【００２５】
次に、図２から図５を参照して、図１を参照して説明したクラスタシステム１の詳細な構成例について説明する。図２は、図１に示したクラスタシステム１の構成例としてのクラスタシステム１ａを示したブロック図である。
【００２６】
［クラスタシステム１ａの構成の説明］
図２に示した本発明の一実施形態であるクラスタシステム１ａは、相互に同一のアプリケーションを実行し当該アプリケーションによる他方の処理を引き継ぐことが可能なフェイルオーバー機能を有する現用系サーバ１００及び待機系サーバ６００を有している。また、クラスタシステム１ａは、当該現用系サーバ１００及び待機系サーバ６００にて共有可能なデータを記憶する共有ディスク７００を備える。また、現用系サーバ１００及び待機系サーバ６００は、ハードウェア（ＨＷ）を制御するＢＭＣ（オンボード・サーバ管理チップ）と、共有ディスク７００へのアクセスを行うディスク入出力装置４００とを備える。さらに、クラスタシステム１ａは、ＢＩＯＳが提供するＡＣＰＩ（Ａｄｖａｎｃｅｄ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  ａｎｄ  Ｐｏｗｅｒ  Ｉｎｔｅｒｆａｃｅ）機能であるＡＣＰＩ  ＢＩＯＳ３００とオペレーションシステム（ＯＳ）２００を備える。ここで、ＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ／Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）は、各サーバの基本的な入出力制御を行うモジュール群（＝プログラム群）である。
【００２７】
ＯＳ２００は、ＰＣＩバス（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔｓ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  ｂｕｓ）ドライバ２１０とクラスタソフトウェア２２０を備えている。ＰＣＩバスドライバ２１０は、障害を検出した際に障害処理を行う障害処理モジュール２１１と障害処理完了通知モジュール２１２を備える。クラスタソフトウェア２２０は、障害検出モジュール２２１と、フェイルオーバー要求モジュール２２２と、バス閉塞要求モジュール２２３を備える。ＡＣＰＩ  ＢＩＯＳ３００は、バス閉塞を行うバス閉塞モジュール３１０と、ＮＭＩ（ＮｏｎＭａｓｋａｂｌｅ  Ｉｎｔｅｒｒｕｐｔ）発行モジュール３２０を備える。バス閉塞モジュール３１０はバス閉塞中リスト３１１を備える。
【００２８】
図２に示した構成において、ＯＳ２００とＡＣＰＩ  ＢＩＯＳ３００とは、現用系サーバ１００が備える図示していないＣＰＵが実行するソフトウェア（プログラム）である。ディスク入出力装置４００とＢＭＣ５００とは、そのＣＰＵ等に所定のバスや信号線を介して接続されたハードウェアである。また、現用系サーバ１００には、図示していないＣＰＵや、メモリ、バスの制御装置、ＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）等のハードウェアを備えている。なお、図示を省略したが、待機系サーバ６００も、現用系サーバ１００と同一の構成を備えている。
【００２９】
［クラスタシステム１ａの動作の説明］
図２及び図３を参照して、本実施形態の動作について詳細に説明をする。図３は、クラスタシステム１ａの動作の流れを示した説明図である。なお、ディスク入出力装置４００は、共有ディスク７００へのアクセスを行うＰＣＩｅ（ＰＣＩ  Ｅｘｐｒｅｓｓ（登録商標））カードを備え、本システムではＰＣＩｅバス構造をとるものとする。図３を基に、本発明で提案するフェイルオーバーの流れを示す。なお、図３は、左から順に、クラスタソフトウェア２２０による処理、ＡＣＰＩ  ＢＩＯＳ３００による処理、ＰＣＩバスドライバ２１０による処理、そして、ＢＭＣ５０のファームウェアによる処理を並べて示している。
【００３０】
（１）クラスタソフトウェア２２０の障害検出モジュール２２１が、現用系サーバ１００の異常を検出すると、バス閉塞要求モジュール２２３が、ＡＣＰＩ  ＢＩＯＳ３００に対して、バス閉塞を要求する（ステップＳａ１）。ＡＣＰＩ  ＢＩＯＳ３００のバス閉塞モジュール３１０は、対象Ｒｏｏｔ  Ｐｏｒｔで訂正不可能障害を起こして、バスを閉塞させる（ステップＳｂ１）。このバス閉塞処理の詳細については後述する。ここで、Ｒｏｏｔ  Ｐｏｒｔ（ルートポート）は、ＰＣＩｅのルートコンプレックス（Ｒｏｏｔ  Ｃｏｍｐｌｅｘ）上に設けられた根幹ポート（根幹となる入出力インターフェース）である。そして、バス閉塞モジュール３１０は、バスが閉塞したことを確認すると、クラスタソフトウェア２２０に対して、バス閉塞完了を通知する（ステップＳｂ２）。
【００３１】
（２）また、バス閉塞が動作すると、ＰＣＩデバイス（例えばディスク入出力装置４００が備えるＰＣＩｅカード）が障害を検出し、メッセージシグナル割り込み（ＭＳＩ）を通知する。そして、ＰＣＩバスドライバ２１０の障害処理モジュール２１１が、そのＭＳＩの受信（ステップＳｃ１）を契機に、ＭＳＩを通知してきたＰＣＩデバイスに対応するＩ／Ｏドライバの停止を行う（ステップＳｃ２）。そして、ＰＣＩバスドライバ２１０の障害処理完了通知モジュール２１２は、Ｉ／Ｏドライバ停止完了をＡＣＰＩ  ＢＩＯＳ３００のＮＭＩ発行モジュール３２０に通知する（ステップＳｃ３）。ここで、ＮＭＩ発行モジュール３２０は、Ｉ／Ｏドライバが停止するまで発行不許可となっていたＮＭＩ発行の設定状態をＮＭＩ発行許可とする（ステップＳｂ３）。
【００３２】
（３）クラスタソフトウェア２２０は、バス閉塞完了後（ステップＳｂ２の後）、フェイルオーバー要求モジュール２２２がＮＩＣ経由で待機系にフェイルオーバーを通知する（ステップＳａ２）。それと共に、クラスタソフトウェア２２０は、ＡＣＰＩ  ＢＩＯＳ３００のＮＭＩ発行モジュール３２０にフェイルオーバーリクエスト（あるいはＮＭＩ発行リクエストとしてもよい）を発行する（ステップＳａ３）。ＡＣＰＩ  ＢＩＯＳ３００は、待機系サーバ６００へフェイルオーバーを通知するようＢＭＣ５００に指示する（ステップＳｂ４〜ステップＳｄ１）。
【００３３】
（４）最後に、ＡＣＰＩ  ＢＩＯＳ３００のＮＭＩ発行モジュール３２０は、ステップＳｂ３の処理が終了していることを確認し、Ｎｏｎ−Ｍａｓｋａｂｌｅ  ｉｎｔｅｒｒｕｐｔ（ＮＭＩ）を発行して、現用系を停止させる（ステップＳｂ５）。
【００３４】
ここでバス閉塞処理の詳細について説明する。バス閉塞モジュール３１０はＬｉｖｅ  Ｅｒｒｏｒ  Ｒｅｃｏｖｅｒｙ（ＬＥＲ）機能を使って、バス閉塞を行う。ＬＥＲ機能は、ＰＣＩｅ  ｐｏｒｔ配下で発生した訂正不可能障害をシステム全体へ波及するのを防ぐための機能である。本発明のバス閉塞モジュール３１０では、本機能を利用し、バス閉塞を行うＰＣＩｅ  ｐｏｒｔに対して、Ｕｎｓｕｐｐｏｒｔｅｄ  Ｒｅｑｕｅｓｔ（ＵＲ）を発行することで訂正不可能障害を起こし、バス閉塞を行う。
【００３５】
バス閉塞モジュール３１０は、バス閉塞リクエストを受けてバス閉塞をするために、図４に示すように、ＰＣＩｅ  Ｒｏｏｔ  Ｐｏｒｔに対して次の初期化処理を行う。すなわち、ＯＳ起動後（ステップＳ１１）、バス閉塞を行うためにＬＥＲ有効化設定を行い（ステップＳ１２）、さらに障害時、ＭＳＩにより割り込みが発生するようＭＳＩ通知設定を行う（ステップＳ１３）。なお、ＬＥＲ機能については例えばｈｔｔｐ：／／ｗｗｗ．ｉｎｔｅｌ．ｃｏｍ／ｃｏｎｔｅｎｔ／ｄａｍ／ｗｗｗ／ｐｕｂｌｉｃ／ｕｓ／ｅｎ／ｄｏｃｕｍｅｎｔｓ／ｄａｔａｓｈｅｅｔｓ／ｘｅｏｎ−ｃ５５００−ｃ３５００−ｄａｔａｓｈｅｅｔ−ｖｏｌ−１．ｐｄｆの項目１１．３．２．２．８に記載されている。
【００３６】
バス閉塞モジュール３１０は、バス閉塞指示を受けると図５に示すような手順で意図的に障害を発生させる。ＰＣＩｅ  Ｒｏｏｔ  Ｐｏｒｔで訂正不可能障害を発生させるため、本発明では、ＰＣＩデバイスでＵｎｓｕｐｐｏｒｔｅｄ  Ｒｅｑｕｅｓｔ（ＵＲ）をＦＡＴＡＬ  Ｓｅｖｅｒｉｔｙ（致命的な重大度）として、ＵＲを投入することにより訂正不可能障害を発生させる。ＰＣＩデバイスは、サポートしないＤｅｖｉｃｅ／Ｆｕｎｃｔｉｏｎ（デバイスや機能）へのＰＣＩ  Ｃｏｎｆｉｇ（ＰＣＩコンフィグレーションレジスタ）アクセス要求があると、ＵＲ障害を検出する。通常は、ＯＳ２００又はＡＣＰＩ  ＢＩＯＳ３００がデバイスサーチを行うと、本エラーを検出してしまうため、エラー検出しないようマスクされている。また、Ａｄｖｉｓｏｒｙ  Ｎｏｎ−Ｆａｔａｌ  Ｅｒｒｏｒ  Ｌｏｇｇｉｎｇ（非強制非致命的エラー記録）をサポートするＰＣＩデバイスだと、Ｎｏｎ−Ｆａｔａｌ  Ｓｅｖｅｒｉｔｙの障害は、Ｃｏｒｒｅｃｔａｂｌｅ（訂正可能）通知となり、バス閉塞を発生させることができない。そのため、ＵＲ障害をＦＡＴＡＬ  Ｓｅｖｅｒｉｔｙとして行う必要がある。そこで、バス閉塞モジュール３１０では、ＵＲ  ＳｅｖｅｒｉｔｙをＦＡＴＡＬへ変更（ステップＳ２１）、ＵＲ  Ｍａｓｋを解除してから（ステップＳ２２）、ＵＲ  ＳＴＡＴＵＳ（ステータス）をクリアして（ステップＳ２３）、ＵＲを発生させ（ステップＳ２４）、バス閉塞を引き起こす。
【００３７】
なお図３を参照して説明した流れでは、さらに、バス閉塞モジュール３１０が、バス閉塞要求を受けた後（ステップＳａ１）、ＮＭＩ発行モジュール３２０に対して、バス閉塞対象の通知を行うことができる（図３では不図示）。ＮＭＩ発行モジュール３２０は、通知をうけたバス閉塞対象をバス閉塞中リスト３１１に記憶する。ＮＭＩ発行モジュール３２０は、ＰＣＩバスドライバ２１０の障害処理完了通知モジュール２１２からＩ／Ｏドライバ停止完了通知を受けた場合（ステップＳｃ３）、通知を受けたバス閉塞対象をリスト３１１から削除する（図３では不図示）。ＮＭＩ発行モジュール３２０は、クラスタソフトウェア２２０のフェイルオーバー要求モジュール２２２からのフェイルオーバー要求をうけた場合（ステップＳａ３）、バス閉塞中リスト３１１が空になるのをまってから、次の処理を行う。すなわち、ＮＭＩ発行モジュール３２０は、ＢＭＣ５００に対して、現用系から待機系へのフェイルオーバー通知を行うと共に（ステップＳｂ４〜ステップＳｄ１）、現用系のシステムにＮＭＩを発行する（ステップＳｂ５）。
【００３８】
［クラスタシステム１ａの効果の説明］
図２に示したクラスタシステム１ａは次の効果を奏する。
第一の効果は、現用系サーバにおいて、ＢＭＣといった他制御装置に依らずにバス閉塞を瞬時に行うことで、共有ディスクへのアクセスを停止させ、共有データの保護を行える事にある。これは、本実施形態が、ＡＣＰＩ  ＢＩＯＳ３００が訂正不可能障害を意図的に起こすことでＲｏｏｔ  Ｐｏｒｔのバス閉塞を行う機構を備えたことによる。
第二の効果は、バス閉塞を行った後、ＯＳ上のＩ／Ｏドライバの停止を行うことで、安全にシステム停止を行える点にある。これは、本実施形態が、ＡＣＰＩ  ＢＩＯＳ３００のＮＭＩ発行モジュール３２０に、Ｉ／Ｏドライバの停止処理の完了を待ち、ＮＭＩ発行タイミングを調停する機構を設けたことによる。
そして、第三の効果は、クラスタソフトウェア２２０とＢＭＣ５００双方からフェイルオーバーを通知することで、フェイルオーバー指示の冗長化を行える点にある。これは、本実施形態が、ＡＣＰＩ  ＢＩＯＳ３００のＮＭＩ発行モジュール３２０から、フェイルオーバー通知を行う機構を備えたことによる。
【００３９】
以上のように、本発明の実施形態によれば、共有ディスク型のクラスタシステムにおいて、ＡＣＰＩ  ＢＩＯＳがＨＷ的にバスを閉塞させると共に、ドライバを停止させることで、瞬時にかつ確実に共有ディスクへのアクセスを停止させることができる。さらに、本発明の実施形態によれば、クラスタソフトウェアとＢＭＣ双方から待機系へフェイルオーバーを指示できるようにすることで、確実なフェイルオーバーが可能となる。
【００４０】
なお、本発明のクラスタシステム１ａは、サーバが搭載するＣＰＵ等の各種ハードウェア資源を用いて、１又は複数のモジュールからなるプログラムを実行することで実現することができる。この場合のプログラムの一部又は全部は、コンピュータ読取可能な記録媒体や通信回線を介して頒布することが可能である。
【００４１】
また、本発明の実施の形態は上記のものに限定されない。例えば、バスの仕様は、意図的に訂正不可能障害を発生させることができるものであればＰＣＩｅバス以外のものであってもよい。
【００４２】
なお、特許請求の範囲の記載と上記実施形態における各構成との対応関係は次のとおりである。特許請求の範囲の「ディスク入出力部」と、「ディスク入出力部１３」、「ディスク入出力部２３」及び「ディスク入出力装置４００」とが対応している。特許請求の範囲の「障害検出部」と、「障害検出部１１」、「障害検出部２１」及び「障害検出モジュール２２１」とが対応している。特許請求の範囲の「バス閉塞部」と、「バス閉塞部１２」、「バス閉塞部２２」及び「バス閉塞モジュール３１０」とが対応している。特許請求の範囲の「入出力制御部」と、図３のステップＳｃ２及びＳｃ３の「Ｉ／Ｏドライバ」とが対応している。特許請求の範囲の「障害割込信号」と、図３のステップＳｃ１の「ＭＳＩ」とが対応している。特許請求の範囲の「訂正不可能障害発生要求」と、図５のステップＳ２４の「ＵＲ」とが対応している。特許請求の範囲の「割込信号発行部」と、「ＮＭＩ発行モジュール３２０」とが対応している。特許請求の範囲の「マスク不可割込信号」と、図３のステップＳｂ５の「ＮＭＩ」とが対応している。特許請求の範囲の「フェイルオーバー通知要求信号」と、図３のステップＳｂ４の「フェイルオーバー通知リクエスト」とが対応している。そして、特許請求の範囲の「基本的な入出力制御を行うモジュール群」と、「ＡＣＰＩ  ＢＩＯＳ３００」とが対応している。
【符号の説明】
【００４３】
１、１ａ  クラスタシステム
１０、１００  現用系サーバ
２０、６００  待機系サーバ
１１、２１  障害検出部
１２、２２  バス閉塞部
１３、２３  ディスク入出力部
３０、７００  共有ディスク
２００  ＯＳ
２１０  ＰＣＩバスドライバ
２２０  クラスタソフトウェア
２２１  障害検出モジュール
２２３  バス閉塞要求モジュール
３００  ＡＣＰＩ  ＢＩＯＳ
３１０  バス閉塞モジュール
４００  ディスク入出力装置
５００  ＢＭＣ
【図１】
2015056042.tif 000003
【図２】
2015056042.tif 000004
【図３】
2015056042.tif 000005
【図４】
2015056042.tif 000006
【図５】
2015056042.tif 000007