(57)【特許請求の範囲】
【請求項１】
複数の計算機を備える計算機システムであって、
前記複数の計算機の各々は、プロセッサと、前記プロセッサに接続されるメモリと、前記プロセッサに接続される記憶媒体と、ネットワークを介して他の装置と接続するためのネットワークインタフェースとを有し、
前記複数の計算機は、サービスを提供する１台の主系計算機と、前記主系計算機に障害が発生した場合に前記サービスを引き継ぐ１台以上の副系計算機とを含み、
前記主系計算機は、
前記複数の計算機の各々の前記記憶媒体が提供する記憶領域を用いて論理記憶領域を生成し、生成された前記論理記憶領域へのアクセスを管理する第１の冗長化処理部と、
前記論理記憶領域を用いて前記サービスを提供する第１のサービス提供部と、を有し、
前記副系計算機は、
前記主系計算機を監視し、前記主系計算機の障害を検知した場合に、前記サービスを引き継ぐための処理を実行する障害制御部と、
前記複数の計算機の各々の前記記憶媒体が提供する記憶領域を用いて前記論理記憶領域を生成し、生成された前記論理記憶領域へのアクセスを管理する第２の冗長化処理部と、
前記論理記憶領域を用いて前記サービスを提供する第２のサービス提供部と、を有し、
前記第１の冗長化処理部は、
前記サービスの提供開始前に、前記主系計算機の記憶媒体及び前記副系計算機の記憶媒体が提供する記憶領域を用いて第１の論理記憶領域を生成し、
前記第１の論理記憶領域と、当該第１の論理記憶領域を構成する前記主系計算機の記憶媒体及び前記副系計算機の記憶媒体との対応関係を含む第１の冗長化情報を生成し、
前記第１の論理記憶領域を構成する前記主系計算機の記憶媒体及び前記副系計算機の記憶媒体に、前記第１の冗長化情報を書き込み、
前記第１の論理記憶領域を前記第１のサービス提供部に提供して、当該第１のサービス提供部に前記サービスの開始を命令し、
前記第１のサービス提供部から前記第１の論理記憶領域に対する第１の書込要求を受信した場合、前記第１の論理記憶領域を構成する前記主系計算機の記憶媒体及び前記副系計算機の記憶媒体に、前記第１の書込要求に含まれるデータを書き込み、
前記障害制御部は、前記主系計算機の障害を検知した場合に、前記第１の論理記憶領域を構成する前記副系計算機が有する前記記憶媒体に対する前記主系計算機からのアクセスを禁止し、その後、前記第２の冗長化処理部を呼び出し、
前記第２の冗長化処理部によって新たに第２の論理記憶領域が生成された後、当該第２の論理記憶領域を前記第２のサービス提供部に提供して、前記サービスの開始命令を出力することによって当該第２のサービス提供部を起動させ、
前記第２の冗長化処理部は、
前記主系計算機の障害を検知した前記障害制御部から呼び出された場合、前記主系計算機の記憶媒体を除く、前記副系計算機の記憶媒体のみを用いて前記第２の論理記憶領域を生成し、
前記第２の論理記憶領域と、当該第２の論理記憶領域を構成する前記副系計算機の記憶媒体との対応関係を含む第２の冗長化情報を生成し、
前記第２の論理記憶領域を構成する前記副系計算機の記憶媒体に前記第２の冗長化情報を書き込み、
前記第２の論理記憶領域に対する第２の書込要求を受信した場合、前記第２の論理記憶領域を構成する前記副系計算機の記憶媒体に、前記第２の書込要求に含まれるデータを書き込み、
前記第２のサービス提供部は、前記第２の論理記憶領域に格納されたデータを用いて前記サービスを継続することを特徴とする計算機システム。
【請求項２】
請求項１に記載の計算機システムであって、
前記第１の冗長化処理部は、前記第１の論理記憶領域に対する読出要求を受信した場合、前記第１の論理記憶領域を構成する前記主系計算機の記憶媒体からデータを読み出し、
前記第２の冗長化処理部は、前記第２の論理記憶領域に対する読出要求を受信した場合、前記第２の論理記憶領域を構成し、かつ、前記第２のサービス提供部が実行される前記副系計算機の記憶媒体からデータを読み出すことを特徴とする計算機システム。
【請求項３】
請求項１に記載の計算機システムであって、
前記主系計算機は、前記主系計算機の障害が回復し、再起動した後に、前記論理記憶領域の構成を回復する回復部を有し、
前記回復部は、
障害が回復した前記主系計算機が再起動した後に、前記第２のサービス提供部を停止させ、
前記第２の論理記憶領域を構成する前記副系計算機の記憶媒体から前記第２の冗長化情報を取得し、
前記第２の論理記憶領域を前記第１のサービス提供部に提供して、当該第１のサービス提供部に前記サービスの開始を命令し、
前記第１の冗長化処理部を呼び出し、
前記第１の冗長化処理部は、
前記回復部から呼び出された場合、前記主系計算機の記憶媒体及び前記副系計算機の記憶媒体が提供する記憶領域を用いて第３の論理記憶領域を生成し、
前記第３の論理記憶領域と、当該第３の論理記憶領域を構成する前記主系計算機の記憶媒体及び前記副系計算機の記憶媒体との対応関係を含む第３の冗長化情報を生成し、
前記第３の論理記憶領域を構成する前記主系計算機の記憶媒体及び前記副系計算機の記憶媒体に、前記第３の冗長化情報を書き込み、
前記回復部は、前記第３の論理記憶領域を構成する前記主系計算機の記憶媒体に、前記第３の論理記憶領域を構成する前記副系計算機の記憶媒体に格納されるデータをコピーすることを特徴とする計算機システム。
【請求項４】
請求項１に記載の計算機システムであって、
前記主系計算機は、前記副系計算機を選択する選択部を有し、
前記選択部は、
前記計算機システムに含まれる前記複数の計算機の中から１台以上の前記副系計算機を選択し、
前記選択された副系計算機との接続を確立することを特徴とする計算機システム。
【請求項５】
複数の計算機を備える計算機システムにおける論理記憶領域管理方法であって、
前記複数の計算機の各々は、プロセッサと、前記プロセッサに接続されるメモリと、前記プロセッサに接続される記憶媒体と、ネットワークを介して他の装置と接続するためのネットワークインタフェースとを有し、
前記複数の計算機は、サービスを提供する１台の主系計算機と、前記主系計算機に障害が発生した場合に前記サービスを引き継ぐ１台以上の副系計算機とを含み、
前記方法は、
前記主系計算機が、前記サービスの運用開始前に、前記主系計算機の記憶媒体及び前記副系計算機の記憶媒体が提供する記憶領域を用いて第１の論理記憶領域を生成する第１のステップと、
前記主系計算機が、前記第１の論理記憶領域と、当該第１の論理記憶領域を構成する前記主系計算機の記憶媒体及び前記副系計算機の記憶媒体との対応関係を含む第１の冗長化情報を生成する第２のステップと、
前記主系計算機が、前記第１の論理記憶領域を構成する前記主系計算機の記憶媒体及び前記副系計算機の記憶媒体に、前記第１の冗長化情報を書き込む第３のステップと、
前記主系計算機が、前記第１の論理記憶領域を用いて前記サービスを開始する第４のステップと、
前記主系計算機が、前記第１の論理記憶領域へのアクセス要求を受信した場合に、前記第１の冗長化情報を参照して、前記第１の論理記憶領域にアクセスする第５のステップと、
前記副系計算機が、前記主系計算機の障害を検知した場合に、前記第１の論理記憶領域を構成する前記副系計算機が有する前記記憶媒体に対する前記主系計算機からのアクセスを禁止する第６のステップと、
前記副系計算機が、新たに第２の論理記憶領域を生成する第７のステップと、
前記副系計算機が、前記第２の論理記憶領域へのアクセス要求を受信した場合に、前記第２の論理記憶領域と、当該第２の論理記憶領域を構成する前記副系計算機の記憶媒体との対応関係を含む第２の冗長化情報を参照して、前記第２の論理記憶領域にアクセスする第８のステップと、
前記副系計算機が、前記第２の論理記憶領域に格納されたデータを用いて前記サービスを継続する第９のステップと、を含み、
前記第５のステップは、前記主系計算機が、前記第１の論理記憶領域に対する第１の書込要求を受信した場合、前記第１の論理記憶領域を構成する前記主系計算機の記憶媒体及び前記副系計算機の記憶媒体に、前記第１の書込要求に含まれるデータを書き込むステップを含み、
前記第７のステップは、
前記副系計算機が、前記主系計算機の記憶媒体を除く、前記副系計算機の記憶媒体のみを用いて前記第２の論理記憶領域を生成する第１０のステップと、
前記副系計算機が、前記第２の冗長化情報を生成する第１１のステップと、
前記副系計算機が、前記第２の論理記憶領域を構成する前記副系計算機の記憶媒体に前記第２の冗長化情報を書き込む第１２のステップと、
前記副系計算機が、前記第２の論理記憶領域を用いて前記サービスを開始する第１３のステップと、を含み、
前記第８のステップは、前記副系計算機が、前記第２の論理記憶領域に対する第２の書込要求を受信した場合、前記第２の論理記憶領域を構成する前記副系計算機の記憶媒体に、前記第２の書込要求に含まれるデータを書き込むステップを含むことを特徴とする論理記憶領域管理方法。
【請求項６】
請求項５に記載の論理記憶領域管理方法であって、
前記第５のステップは、前記第１の論理記憶領域に対する読出要求を受信した場合、前記第１の論理記憶領域を構成する前記主系計算機の記憶媒体からデータを読み出すステップを含み、
前記第８のステップは、前記副系計算機が、前記第２の論理記憶領域に対する読出要求を受信した場合、前記第２の論理記憶領域を構成し、かつ、前記サービスを提供する前記副系計算機の記憶媒体からデータを読み出すステップを含むことを特徴とする論理記憶領域管理方法。
【請求項７】
請求項５に記載の論理記憶領域管理方法であって、
前記方法は、さらに、
前記主系計算機が、当該主系計算機の障害が回復して再起動した後に、前記副系計算機において実行される前記サービスを停止させるステップと、
前記主系計算機が、前記第２の論理記憶領域を構成する前記副系計算機の記憶媒体から前記第２の冗長化情報を取得するステップと、
前記主系計算機が、前記第２の論理記憶領域を用いて前記サービスを開始するステップと、
前記主系計算機が、前記主系計算機の記憶媒体及び前記副系計算機の記憶媒体が提供する記憶領域を用いて第３の論理記憶領域を生成するステップと、
前記主系計算機が、前記第３の論理記憶領域と、当該第３の論理記憶領域を構成する前記主系計算機の記憶媒体及び前記副系計算機の記憶媒体との対応関係を含む第３の冗長化情報を生成するステップと、
前記主系計算機が、前記第３の論理記憶領域を構成する前記主系計算機の記憶媒体及び前記副系計算機の記憶媒体に、前記第３の冗長化情報を書き込むステップと、
前記主系計算機が、前記第３の論理記憶領域を構成する前記主系計算機の記憶媒体に、前記第３の論理記憶領域を構成する前記副系計算機の記憶媒体に格納されるデータをコピーするステップと、を含むことを特徴とする論理記憶領域管理方法。
【請求項８】
請求項５に記載の論理記憶領域管理方法であって、
前記第１のステップは、
前記主系計算機が、前記計算機システムに含まれる前記複数の計算機の中から１台以上の前記副系計算機を選択するステップと、
前記主系計算機が、前記選択された副系計算機との接続を確立するステップと、を含むことを特徴とする論理記憶領域管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の計算機を用いて構築された分散共有ファイルシステムに関する。特に、耐故障機能を有する共有ストレージを構築可能な計算機システム及び共有ストレージの管理方法に関する。
【背景技術】
【０００２】
複数の計算機から構成される計算機システムでは、一台の計算機に故障が発生して場合であってもシステム全体として動作を継続できる耐故障機能が求められる。【０００３】
耐故障機能としては、通常使用する主系計算機と、主系計算機の故障に備えて待機する副系計算機とを準備し、主系計算機に故障が発生した場合に副系計算機が動作を引き継ぐ方式が採られる。この場合、主系計算機と副系計算機とが共有ストレージを有し、主系計算機によって変更されたストレージの内容を副系計算機が引き継ぐことができるように構成される。【０００４】
しかし、前述したような構成では、副系計算機が動作を引き継いだ後に、意図せず主系計算機が共有ストレージへアクセスすることによって、データを破壊する可能性がある。前述したようなデータ破壊の危険性を排除するため、共有ストレージに対するアクセスの排他制御が必要である。【０００５】
例えば、特許文献１には、機能正否監視手段によって機能の停止が検出された場合に、複数のノードが共有ディスクに対して該共有ディスクの占有を指示するコマンドを発行し、占有権を取得したノードのみが共有ディスクの制御を可能にする方式が開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００２−１８５４７８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
一般的に、前述したような共有ストレージは、専用のストレージシステムを用いて構成される。前述したような複数の計算機が共有して使用できる記憶領域を提供する機能（以下、共有機能と記載する）、及び、排他制御の機能は、当該ストレージシステムが備える。そのため、一般的な計算機だけでは共有ストレージを構成できない問題がある。【０００８】
例えば、特許文献１は、計算機とは別に、外部に専用の共有ストレージ装置を用意しているが、計算機が有する記憶装置を用いて共有ストレージを構成するものではない。【０００９】
また、計算機が有する記憶装置を用いて共有ストレージを構成した場合に、１台の計算機に障害が発生した場合に、共有ストレージをどのように制御するかについては記載されていない。【００１０】
例えば、複数の計算機が有する記憶装置を用いて構成された共有ストレージを利用する場合、１台の計算機に障害が発生すると、共有ストレージに障害が発生した状態となる。そのため、主系計算機又は副系計算機は、当該共有ストレージを用いてサービスを継続することできない。特許文献１には、共有ストレージの障害を認識されることなく、サービスを継続する構成については記載されていない。【００１１】
本発明は、上記の問題点に鑑みてなされてものであり、共有機能及び排他制御の機能を備えていない計算機を用いて、安価、かつ、耐故障機能を有する計算機システムを提供することを目的とする。
【課題を解決するための手段】
【００１２】
本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、複数の計算機を備える計算機システムであって、前記複数の計算機の各々は、プロセッサと、前記プロセッサに接続されるメモリと、前記プロセッサに接続される記憶媒体と、ネットワークを介して他の装置と接続するためのネットワークインタフェースとを有し、前記複数の計算機は、サービスを提供する１台の主系計算機と、前記主系計算機に障害が発生した場合に前記サービスを引き継ぐ１台以上の副系計算機とを含み、前記主系計算機は、前記複数の計算機の各々の前記記憶媒体が提供する記憶領域を用いて論理記憶領域を生成し、生成された前記論理記憶領域へのアクセスを管理する第１の冗長化処理部と、前記論理記憶領域を用いて前記サービスを提供する第１のサービス提供部と、を有し、前記副系計算機は、前記主系計算機を監視し、前記主系計算機の障害を検知した場合に、前記サービスを引き継ぐための処理を実行する障害制御部と、前記複数の計算機の各々の前記記憶媒体が提供する記憶領域を用いて前記論理記憶領域を生成し、生成された前記論理記憶領域へのアクセスを管理する第２の冗長化処理部と、前記論理記憶領域を用いて前記サービスを提供する第２のサービス提供部と、を有し、前記第１の冗長化処理部は、前記サービスの提供開始前に、前記主系計算機の記憶媒体及び前記副系計算機の記憶媒体が提供する記憶領域を用いて第１の論理記憶領域を生成し、前記第１の論理記憶領域と、当該第１の論理記憶領域を構成する前記主系計算機の記憶媒体及び前記副系計算機の記憶媒体との対応関係を含む第１の冗長化情報を生成し、前記第１の論理記憶領域を構成する前記主系計算機の記憶媒体及び前記副系計算機の記憶媒体に、前記第１の冗長化情報を書き込み、前記第１の論理記憶領域を前記第１のサービス提供部に提供して、当該第１のサービス提供部に前記サービスの開始を命令し、前記第１のサービス提供部から前記第１の論理記憶領域に対する第１の書込要求を受信した場合、前記第１の論理記憶領域を構成する前記主系計算機の記憶媒体及び前記副系計算機の記憶媒体に、前記第１の書込要求に含まれるデータを書き込み、前記障害制御部は、前記主系計算機の障害を検知した場合に、前記第１の論理記憶領域を構成する前記副系計算機が有する前記記憶媒体に対する前記主系計算機からのアクセスを禁止し、その後、前記第２の冗長化処理部を呼び出し、前記第２の冗長化処理部によって新たに第２の論理記憶領域が生成された後、当該第２の論理記憶領域を前記第２のサービス提供部に提供して、前記サービスの開始命令を出力することによって当該第２のサービス提供部を起動させ、前記第２の冗長化処理部は、前記主系計算機の障害を検知した前記障害制御部から呼び出された場合、前記主系計算機の記憶媒体を除く、前記副系計算機の記憶媒体のみを用いて前記第２の論理記憶領域を生成し、前記第２の論理記憶領域と、当該第２の論理記憶領域を構成する前記副系計算機の記憶媒体との対応関係を含む第２の冗長化情報を生成し、前記第２の論理記憶領域を構成する前記副系計算機の記憶媒体に前記第２の冗長化情報を書き込み、前記第２の論理記憶領域に対する第２の書込要求を受信した場合、前記第２の論理記憶領域を構成する前記副系計算機の記憶媒体に、前記第２の書込要求に含まれるデータを書き込み、前記第２のサービス提供部は、前記第２の論理記憶領域に格納されたデータを用いて前記サービスを継続することを特徴とする。
【発明の効果】
【００１３】
本発明の一形態によれば、一般的な計算機を用いて耐故障機能を備えた論理記憶領域（共有ストレージ）を構築することが可能となる。また、主系計算機の障害発生時には、業務処理部は論理記憶領域の障害を意識させることなくサービスを継続できる。
【図面の簡単な説明】
【００１４】
【図１】本発明の第一の実施形態の計算機システムの構成を示すブロック図である。
【図２】本発明の第一の実施形態における構成設定部（主系）が実行する処理を説明したフローチャートである。
【図３】本発明の第一の実施形態における副系選択部が実行する処理を説明するフローチャートである。
【図４】本発明の第一の実施形態における冗長化処理部（主系）が実行する処理を説明するフローチャートである。
【図５】本発明の第一の実施形態における構成設定部（副系）が実行する処理を説明するフローチャートである。
【図６】本発明の第一の実施形態における障害制御部が実行する処理を説明するフローチャートである。
【図７】本発明の第一の実施形態における構成設定部（副系）が、障害発生時に実行する処理を説明するフローチャートである。
【図８】本発明の第一の実施形態における冗長化処理部（副系）が実行する処理を説明するフローチャートである。
【図９】本発明の第一の実施形態における構成回復部（主系）が実行する処理を説明するフローチャートである。
【図１０】本発明の第一の実施形態における構成回復部（副系）が実行する処理を説明するフローチャートである。
【図１１】本発明の第二の実施形態の計算機システムの構成を示したブロック図である。
【発明を実施するための形態】
【００１５】
以下、本発明の実施の形態について、図面を用いて詳細に説明する。
【００１６】
（第一の実施形態）
【００１７】
図１は、本発明の第一の実施形態の計算機システムの構成を示すブロック図である。
【００１８】
本実施形態の計算機システムは、計算機１０１Ａ及び計算機１０１Ｂから構成される。計算機１０１Ａ及び計算機１０１Ｂは、ネットワーク１８０を介して互いに接続される。ネットワーク１８０は、例えば、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）が考えられる。ただし、本発明は、ネットワーク１８０の接続形式に限定されない。以下、計算機１０１Ａ及び計算機１０１Ｂを区別しない場合、計算機１０１と記載する。
【００１９】
本実施形態では、計算機１０１Ａ及び計算機１０１Ｂが備える記憶媒体を用いて共有ストレージを構成する。また、計算機１０１Ａは、共有ストレージを用いてサービスを提供する主系計算機として稼動し、計算機１０１Ｂは計算機１０１Ａに障害が発生した場合にサービスを継続する副系計算機として稼動するものとする。なお、図１では、計算機１０１が２台であるが、３台以上あってもよい。
【００２０】
まず、計算機１０１のハードウェア構成について説明する。
【００２１】
計算機１０１Ａは、プロセッサ１０２Ａ、メモリ１０３Ａ、ストレージインタフェース１０４Ａ、ディスク装置１０５Ａ及びネットワークインタフェース１０６Ａを備える。
【００２２】
プロセッサ１０２Ａは、メモリ１０３Ａに格納されるプログラムを実行する。プロセッサ１０２Ａがプログラムを実行することによって、計算機１０１Ａの機能を実現できる。以下、プログラムを主語に処理を説明する場合、プロセッサ１０２Ａによってプログラムが実行されていることを示す。
【００２３】
メモリ１０３Ａは、プロセッサ１０２Ａが実行するプログラム及び当該プログラムを実行するために必要なデータを格納する。メモリ１０３Ａは、例えば、ＤＲＡＭのような半導体メモリが考えられ、ディスク装置１０５Ａに比べ高速にアクセスすることができる。メモリ１０３Ａに格納されるプログラム及びデータについては後述する。
【００２４】
ストレージインタフェース１０４Ａは、大容量のデータを格納可能なディスク装置１０５Ａに接続するためのインタフェースである。
【００２５】
ディスク装置１０５Ａは、所定のサービスに必要な情報（例えば、ファイルデータ）を格納する。ディスク装置１０５Ａは、例えば、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）が考えられる。
【００２６】
なお、ディスク装置１０５以外のＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の記憶媒体であってよい。また、ディスク装置１０５Ａは、複数あってもよい。また、ディスク装置１０５Ａは計算機１０１Ａに外付けされた形式でもよい。
【００２７】
ネットワークインタフェース１０６Ａは、ネットワーク１８０を介して他の装置と接続するためのインタフェースである。
【００２８】
なお、計算機１０１Ａは、メモリ１０３Ａ及びディスク装置１０５Ａ以外に、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）等の情報を格納する記憶装置を備えていてもよい。
【００２９】
計算機１０１Ｂのハードウェア構成は計算機１０１Ａと同一であるため説明を省略する。
【００３０】
次に、計算機１０１のソフトウェア構成について説明する。
【００３１】
計算機１０１Ａのメモリ１０３Ａには、サービス提供部１５０、冗長化処理部１５１Ａ、ディスクドライバ部１５２Ａ、ネットワークディスクドライバ部１５３Ａ、副系選択部１５４、構成設定部１５５Ａ及び構成回復部１５６Ａを実現するプログラムが格納される。
【００３２】
サービス提供部１５０は、共有ストレージを用いて所定のサービスを提供する。サービス提供部１５０は、サービスの提供時に共有ストレージに対するアクセス要求を出力する。
【００３３】
冗長化処理部１５１Ａは、共有ストレージに対するアクセス要求を受信し、当該アクセス要求に対応するアクセス処理を実行する。具体的には、冗長化処理部１５１Ａは、ディスクドライバ部１５２Ａ及びネットワークディスクドライバ部１５３Ｂに対してアクセス要求を出力する。冗長化処理部１５１Ａが実行する処理の詳細は、図４を用いて後述する。冗長化処理部１５１Ａは、例えば、ＯＳが備えるソフトウェアＲＡＩＤ機能によって実現することができる。
【００３４】
ディスクドライバ部１５２Ａは、冗長化処理部１５１Ａから出力されたアクセス要求に基づいて、共有ストレージを構成するディスク装置１０５Ａにアクセスする。
【００３５】
ネットワークディスクドライバ部１５３Ａは、ネットワーク１８０を介して、共有ストレージを構成するディスク装置１０５Ｂにアクセスする。具体的には、ネットワークディスクドライバ部１５３Ａは、ネットワークディスクドライバ部１５３Ｂにアクセス要求を送信する。
【００３６】
副系選択部１５４は、計算機システムに含まれる複数の計算機１０１から副系計算機となる計算機１０１を選択する。副系選択部１５４が実行する処理の詳細は、図３を用いて後述する。
【００３７】
構成設定部１５５Ａは、主系計算機として稼動するために必要な情報を設定する。構成設定部１５５Ａが実行する処理の詳細は、図２を用いて後述する。
【００３８】
構成回復部１５６Ａは、計算機１０１Ａに障害が発生した場合に、当該障害を回復するための処理を実行する。構成回復部１５６Ａが実行する処理の詳細は、図９を用いて後述する。
【００３９】
なお、メモリ１０３Ａに格納されるプログラムは、ディスク装置１０５Ａ又は外部の装置（図示省略）に格納されていてもよい。この場合、ディスク装置１０５Ａから各プログラムが読み出され、又は、ネットワーク１８０を介して外部の装置から各プログラムが読み出され、メモリ１０３Ａに格納される。
【００４０】
計算機１０１Ｂのメモリ１０３Ｂには、障害制御部１７０、代替サービス提供部１７１、冗長化処理部１５１Ｂ、ディスクドライバ部１５２Ｂ、ネットワークディスクドライバ部１５３Ｂ、構成設定部１５５Ｂ、及び構成回復部１５６Ｂを実現するプログラムが格納される。
【００４１】
障害制御部１７０は、主系計算機として稼動する計算機１０１Ａの動作を監視し、計算機１０１Ａの障害を検知した場合に、計算機１０１Ｂがサービスを継続するための処理を実行する。障害制御部１７０が実行する処理の詳細は、図６を用いて後述する。
【００４２】
代替サービス提供部１７１は、障害が発生した計算機１０１Ａの代わりにサービスを提供する。
【００４３】
冗長化処理部１５１Ｂは、冗長化処理部１５１Ａと同一のものであり、代替サービス提供部１７１から出力されたアクセス要求を受信し、共有ストレージに対するアクセス処理を実行する。ディスクドライバ部１５２Ｂは、ディスクドライバ部１５２Ｂと同一のものである。冗長化処理部１５１Ｂが実行する処理の詳細は、図８を用いて後述する。
【００４４】
ネットワークディスクドライバ部１５３Ｂは、ネットワークディスクドライバ部１５３Ａから受信したアクセス要求に基づいて、ディスクドライバ部１５２Ｂに対してアクセス要求を出力する。これによって、共有ストレージを構成するディスク装置１０５Ｂへのアクセスを実現できる。また、ネットワークディスクドライバ部１５３Ｂは、ネットワーク１８０を介して、共有ストレージを構成するディスク装置１０５Ａにアクセスする。
【００４５】
構成設定部１５５Ｂは、副系計算機として稼動するために必要な情報を設定する。構成設定部１５５Ｂが実行する処理の詳細は、図５及び図７を用いて後述する。
【００４６】
構成回復部１５６Ｂは、主系計算機の障害が回復した後に、再び副系計算機として稼動するための処理を実行する。構成回復部１５６Ｂが実行する処理の詳細は、図１０を用いて後述する。
【００４７】
なお、メモリ１０３Ｂに格納されるプログラムは、ディスク装置１０５Ｂ又は外部の装置（図示省略）に格納されていてもよい。この場合、ディスク装置１０５Ｂから各プログラムが読み出され、又は、ネットワーク１８０を介して外部の装置から各プログラムが読み出され、メモリ１０３Ｂに格納される。
【００４８】
また、構成設定部１５５Ａ及び構成設定部１５５Ｂは、同一の機能を提供するプログラムであり、主系計算機の設定処理及び副系計算機の設定処理を実行することができる。構成回復部１５６Ａ及び構成回復部１５６Ｂは、同一の機能を提供するプログラムであり、主系計算機の回復処理及び副系計算機の回復処理を実行することができる。
【００４９】
以下、ディスクドライバ部１５２Ａ及びディスクドライバ部１５２Ｂを区別しない場合、ディスクドライバ部１５２と記載し、ネットワークディスクドライバ部１５３Ａ及びネットワークディスクドライバ部１５３Ｂを区別しない場合、ネットワークディスクドライバ部１５３と記載する。また、構成設定部１５５Ａ及び構成設定部１５５Ｂを区別しない場合、構成設定部１５５と記載し、構成回復部１５６Ａ及び構成回復部１５６Ｂを区別しない場合、構成回復部１５６と記載する。
【００５０】
以下、各構成の処理について説明する。まず、図２〜図５を用いて、主系計算機及び副系計算機の設定方法について説明する。
【００５１】
図２は、本発明の第一の実施形態における構成設定部１５５Ａ（主系）が実行する処理を説明したフローチャートである。
【００５２】
構成設定部１５５Ａは、計算機システムの管理者からの指示を受信すると処理を開始する（ステップＳ２０１）。このとき、当該指示には、計算機システム内の計算機１０１の総数と構成設定部１５５Ａが実行される計算機１０１Ａの識別番号が含まれる。
【００５３】
例えば、図１の例では、計算機１０１の総数は「２」、計算機１０１Ａの識別番号は「１」、計算機１０１Ｂの識別番号が「２」となる。
【００５４】
構成設定部１５５Ａは、副系選択部１５４を呼び出す（ステップＳ２０２）。呼び出された副系選択部１５４が後述する処理（図３参照）を実行することによって、副系計算機となる計算機１０１を決定することができる。このとき、構成設定部１５５Ａは、副系選択部１５４から副系計算機となる計算機１０１の識別情報を取得する。
【００５５】
計算機１０１の識別情報は、計算機システム内において計算機１０１を一意に識別できる情報であればよく、例えば、計算機１０１のコンピュータ名、ＭＡＣアドレス及びＩＰアドレス等が考えられる。
【００５６】
構成設定部１５５Ａは、ネットワークディスクドライバ部１５３Ａに対して副系計算機が備えるネットワークディスクドライバ部１５３と接続するよう指示する（ステップＳ２０３）。図１に示す例では、ネットワークディスクドライバ部１５３Ａは、ネットワークディスクドライバ部１５３Ｂと接続するように指示される。これによって、ネットワークディスクドライバ部１５３Ａは、ネットワークディスクドライバ部１５３Ｂにアクセス要求を送信することができる。
【００５７】
構成設定部１５５Ａは、冗長化処理部１５１Ａに論理デバイス（共有ストレージ）の生成を指示する（ステップＳ２０４）。ここで、論理デバイスとは、サービス提供部１５０が一つのディスク装置として認識可能な論理的なディスク装置である。本発明では、複数の計算機１０１が有するディスク装置１０５が有する記憶領域から生成される論理デバイスが、共有ストレージとして用いられる。
【００５８】
これによって、ディスク装置１０５Ａ及びディスク装置１０５Ｂが有する記憶領域から論理デバイスが生成される。また、ディスクドライバ部１５２Ａ及びネットワークディスクドライバ部１５３Ａのそれぞれに同一の書込要求を出力される。そのため、論理デバイスへの書込処理では、ディスク装置１０５Ａ及びディスク装置１０５Ｂのそれぞれにデータが書き込まれる。前述のようにデータが、異なるディスク装置１０５に格納されるため、主系計算機に障害が発生しても副系計算機のディスク装置１０５に格納されるデータを用いてサービスを継続することができる。
【００５９】
なお、論理デバイス上には、分散共有ファイルシステムを構築することができる。共有ファイルシステム上に配置されたファイルには、すべての計算機１０１が同じようにアクセスできる。
【００６０】
構成設定部１５５Ａは、サービス提供部１５０に論理デバイスにアクセスするように指示し、処理を終了する（ステップＳ２０５、ステップＳ２０６）。具体的には、構成設定部１５５Ａは、サービスに用いる記憶領域として論理デバイスの識別情報を通知する。これによってサービス提供部１５０は、論理デバイスに対してアクセス要求を出力する。
【００６１】
図３は、本発明の第一の実施形態における副系選択部１５４が実行する処理を説明するフローチャートである。
【００６２】
副系選択部１５４は、構成設定部１５５Ａから呼び出されると処理を開始する（ステップＳ３０１）。なお、副系選択部１５４は、呼び出されるときに計算機システムを構成する計算機１０１の総数と、構成設定部１５５Ａを実行する計算機１０１の識別番号とを構成設定部１５５Ａから受け取る。
【００６３】
副系選択部１５４は、自身の識別番号が計算機システムを構成する計算機１０１に割り当てられた識別番号のうち、最大の識別番号であるか否かを判定する（ステップＳ３０２）。例えば、副系選択部１５４は、自身の識別番号が計算機１０１の総数と同一であるか否かを判定する。自身の識別番号が計算機１０１の総数と同一である場合には、自身の識別番号が最大の識別番号であると判定される。
【００６４】
自身の識別番号が最大であると判定された場合、副系選択部１５４は、最小の識別番号（例えば、識別番号が「１」）の計算機１０１を副系計算機に選択し、ステップＳ３０５に進む（ステップＳ３０３）。
【００６５】
自身の識別番号が最大でないと判定された場合、副系選択部１５４は、自身の識別番号に「１」を加算した識別番号の計算機１０１を副系計算機に選択し、ステップＳ３０５に進む（ステップＳ３０４）。
【００６６】
副系選択部１５４は、副系計算機として選択された計算機１０１の識別情報を取得し、処理を終了する（ステップＳ３０５、ステップＳ３０６）。
【００６７】
例えば、予め、識別番号と識別情報とを対応づけたデータを準備しておき、副系選択部１５４が、副系計算機の識別番号に基づいて当該データを参照することによって識別情報を取得する方法が考えられる。
【００６８】
なお、副系計算機の選択方法は、図３に示すものに限定されず、計算機１０１のリソース量、使用率等に基づいて選択する方法であってもよい。また、２台以上の副系計算機を選択する場合、副系計算機として選択された計算機１０１の識別番号を新たな入力として図３に示す処理を繰り返し実行すればよい。
【００６９】
図４は、本発明の第一の実施形態における冗長化処理部１５１Ａ（主系）が実行する処理を説明するフローチャートである。
【００７０】
冗長化処理部１５１Ａは、構成設定部１５５Ａから論理デバイスの生成指示を受信すると処理を開始する（ステップＳ４０１）。冗長化処理部１５１Ａは、副系計算機の識別情報を取得する（ステップＳ４０２）。
【００７１】
冗長化処理部１５１Ａは、主系計算機のディスク装置１０５及び副系計算機のディスク装置１０５を統合して論理デバイスを生成する（ステップＳ４０３）。図１に示す例では、ディスク装置１０５Ａ及びディスク装置１０５Ｂが統合された論理デバイスが生成される。
【００７２】
冗長化処理部１５１Ａは、論理デバイスと各ディスク装置１０５とを対応づけた冗長化情報を生成する（ステップＳ４０４）。冗長化情報は、少なくとも、論理デバイスの識別情報及びディスク装置１０５の識別情報を含む。なお、冗長化情報は、計算機１０１の識別情報等その他の情報を含んでいてもよい。
【００７３】
冗長化処理部１５１Ａは、冗長化情報を各ディスク装置１０５へ書き込み、処理を終了する（ステップＳ４０５、ステップＳ４０６）。図１に示す例では、冗長化処理部１５１Ａは、ディスクドライバ部１５２Ａ及びネットワークディスクドライバ部１５３Ａのそれぞれに冗長化情報の書込要求を出力する。これによって、共有ストレージ、すなわち、論理デバイスを構成するディスク装置１０５Ａ及びディスク装置１０５Ｂに冗長化情報が格納される。
【００７４】
図５は、本発明の第一の実施形態における構成設定部１５５Ｂ（副系）が実行する処理を説明するフローチャートである。
【００７５】
構成設定部１５５Ｂは、計算機システムの管理者からの指示を受信すると処理を開始する（ステップＳ５０１）。なお、構成設定部１５５Ｂの処理は、構成設定部１５５Ａの処理よりも前に実行される。
【００７６】
構成設定部１５５Ｂは、ネットワークディスクドライバ部１５３Ｂに対して、他の計算機１０１から自身のディスク装置１０５へのアクセスを許可するよう設定し、処理を終了する（ステップＳ５０２、ステップＳ５０３）。図１に示す例では、計算機１０１Ａからディスク装置１０５Ｂへのアクセスが許可される。構成設定部１５５Ｂが実行する処理によって、計算機１０１Ａがディスク装置１０５Ｂにアクセス可能となり、論理デバイスを構成する記憶領域を提供することが可能となる。
【００７７】
以上が、共有ストレージの構成時に実行される処理である。図２〜図５の処理が終了した後、サービス提供部１５０は、論理デバイスを用いて所定のサービスを提供する。
【００７８】
このとき、冗長化処理部１５１は、サービス提供部１５０から論理デバイスへの書込要求を受信すると、ディスク装置１０５Ａから冗長化情報を読み出し、当該冗長化情報に基づいて、ディスク装置１０５Ａ及びディスク装置１０５Ｂのそれぞれにデータを書き込む。なお、読み出された冗長化情報は、メモリ１０３Ａに一時的に格納される。これによって、論理デバイスへのアクセス時にディスク装置１０５へのＩ／Ｏ発生を低減することができる。
【００７９】
また、冗長化処理部１５１は、サービス提供部１５０から論理デバイスへの読出要求を受信すると、冗長化情報を参照して、ディスク装置１０５Ａからデータを読み出す。
【００８０】
次に、図６〜図８を用いて、主系計算機として稼動する計算機１０１Ａに障害が発生した場合に実行される処理について説明する。
【００８１】
図６は、本発明の第一の実施形態における障害制御部１７０が実行する処理を説明するフローチャートである。
【００８２】
障害制御部１７０は、周期的に、主系計算機を監視しており、主系計算機の障害を検知すると処理を開始する（ステップＳ６０１）。図１に示す例では、障害制御部１７０は、主系計算機として稼動する計算機１０１Ａを監視し、計算機１０１Ａの障害を検知すると処理を開始する。
【００８３】
監視方法としては、ネットワーク１８０を介した通信を監視する方法などが考えられる。ただし、本発明は、主系計算機の障害検出方法に限定されない。
【００８４】
なお、副系計算機が複数ある場合には、予め、副系計算機に優先順位を与えておき、優先順位が高い副系計算機が主導的に処理を実行するように構成すればよい。
【００８５】
障害制御部１７０は、ネットワークディスクドライバ部１５３Ｂに対して、論理デバイスを構成する他の計算機１０１からディスク装置１０５へのアクセスを禁止するように指示する（ステップＳ６０２）。副系計算機が２台以上ある場合には、主系計算機だけではなく他の副系計算機からのアクセスも禁止される。図１に示す例では、計算機１０１Ａからディスク装置１０５Ｂへのアクセスが禁止される。
【００８６】
障害制御部１７０は、構成設定部１５５Ｂを呼び出す（ステップＳ６０３）。障害制御部１７０は、構成設定部１５５Ｂからの処理完了の通知を待つ。構成設定部１５５Ｂが実行する処理の詳細は、図７を用いて後述する。
【００８７】
その後、障害制御部１７０は、代替サービス提供部１７１の処理の開始を指示して、処理を終了する（ステップＳ６０４、ステップＳ６０５）。
【００８８】
以上の処理によって、代替サービス提供部１７１が、サービス提供部１５０に代わってサービスを継続することができる。
【００８９】
ステップＳ６０２では、計算機１０１Ａからディスク装置１０５Ｂへのアクセスを禁止している。これは、計算機１０１Ａが予期せず再び動作を始めた場合に、代替サービス提供部１７１及びサービス提供部１５０からディスク装置１０５Ｂへのアクセスが衝突してデータが失われる危険を回避するためである。
【００９０】
図７は、本発明の第一の実施形態における構成設定部１５５Ｂ（副系）が、障害発生時に実行する処理を説明するフローチャートである。
【００９１】
構成設定部１５５Ｂは、障害制御部１７０から読み出されると処理を開始する（ステップＳ７０１）。構成設定部１５５Ｂは、ネットワークディスクドライバ部１５３Ｂに対して他の副系計算機が備えるネットワークディスクドライバ部１５３Ｂと接続するよう指示する（ステップＳ７０２）。これによって、ネットワークディスクドライバ部１５３Ｂは、他の副系計算機のネットワークディスクドライバ部１５３にアクセス要求を送信することができる。
【００９２】
なお、副系計算機はすでに選択されているため、ステップＳ２０２に対応する処理は省略される。また、構成設定部１５５Ｂは、冗長化情報を参照することによって他の副系計算機を特定することができる。
【００９３】
構成設定部１５５Ｂは、冗長化処理部１５１Ｂに論理デバイス（共有ストレージ）の生成を指示する（ステップＳ７０３）。図１に示す例では、計算機１０１Ｂが備えるディスク装置１０５Ｂから論理デバイスが生成される。
【００９４】
構成設定部１５５Ｂは、代替サービス提供部１７１に新たに生成された論理デバイスにアクセスするように指示して、処理を終了する（ステップＳ７０４、ステップＳ７０５）。
【００９５】
図８は、本発明の第一の実施形態における冗長化処理部１５１Ｂ（副系）が実行する処理を説明するフローチャートである。
【００９６】
冗長化処理部１５１Ｂは、構成設定部１５５Ｂから読み出されると処理を開始する（ステップＳ８０１）。冗長化処理部１５１Ｂは、副系計算機の識別情報を取得する（ステップＳ８０２）。ステップＳ８０２の処理は、ステップＳ４０２と同一の処理である。
【００９７】
冗長化処理部１５１Ｂは、副系計算機のディスク装置１０５を統合して論理デバイスを生成する（ステップＳ８０３）。
【００９８】
ステップＳ８０３の処理はステップＳ４０３と異なり、主系計算機のディスク装置１０５を除いたディスク装置１０５から論理デバイスが生成される。すなわち、副系計算機のディスク装置１０５のみから論理デバイスが生成される。
【００９９】
図１に示す例では、ディスク装置１０５Ｂのみから論理デバイスが生成される。
【０１００】
冗長化処理部１５１Ｂは、論理デバイスと各ディスク装置１０５とを対応づけた冗長化情報を生成する（ステップＳ８０４）。ステップＳ８０４の処理は、ステップＳ４０４と同一の処理である。
【０１０１】
冗長化処理部１５１Ｂは、冗長化情報を各ディスク装置１０５へ書き込み、処理を終了する（ステップＳ８０５、ステップＳ８０６）。図１に示す例では、冗長化処理部１５１Ｂは、ネットワークディスクドライバ部１５３Ｂに冗長化情報の書込要求を出力する。これによって、論理デバイスを構成するディスク装置１０５Ｂに冗長化情報が格納される。
【０１０２】
なお、新たに生成された論理デバイスの識別情報は、最初に生成された論理デバイスの識別情報と同一となるように設定する。これによって、障害発生前と同一の動作環境の下サービスを継続することができる。ただし、異なる論理デバイスの識別情報が設定されてもよい。
【０１０３】
本実施形態では、前述した処理によって耐障害性を高める効果がある。通常、冗長化処理部１５１Ｂは、書込要求を受信した場合、ディスク装置１０５に格納される冗長化情報を読み出して、論理デバイスを構成するディスク装置１０５を特定する。さらに、冗長化処理部１５１Ｂは、特定された全てのディスク装置１０５に同一のデータを書き込む。
【０１０４】
しかし、主系計算機として稼働する計算機１０１に障害が発生すると、論理デバイスを構成する主系計算機のディスク装置１０５を利用できない状態となる。そのため、冗長化処理部１５１Ｂは、論理デバイスにエラーが発生しており、論理デバイスを利用できないと判定する。したがって、冗長化処理部１５１Ｂは、論理デバイスを構成する複数のディスク装置１０５にデータを書き込むことができない。すなわち、データの冗長化が実現できない。
【０１０５】
そこで、本実施形態では、障害制御部１７０から呼び出された冗長化処理部１５１Ｂが、主系計算機のディスク装置１０５を除く他のディスク装置１０５を用いて新たに論理デバイスを構築する。これによって、冗長化処理部１５１Ｂは、代替サービス提供部１７１から書込要求を受信した場合に、複数のディスク装置１０５にデータを書き込むことができる。
【０１０６】
また、図１に示すように、論理デバイスを構成するディスク装置１０５が１台のみであっても、代替サービス提供部１７１からは論理デバイスに障害が発生しているとは認識されずにサービスを継続することができるという効果がある。
【０１０７】
図９は、本発明の第一の実施形態における構成回復部１５６Ａ（主系）が実行する処理を説明するフローチャートである。
【０１０８】
構成回復部１５６Ａは、障害が回復した計算機１０１Ａが再起動した後、計算機システムの管理者から処理開始の指示を受信すると処理を開始する（ステップＳ９０１）。構成回復部１５６Ａは、副系計算機の構成回復部１５６Ｂを呼び出す（ステップＳ９０２）。これによって、代替サービス提供部１７１からサービス提供部１５０へサービスを引き継ぐための処理（図１０参照）が実行される。
【０１０９】
構成回復部１５６Ａは、ネットワークディスクドライバ部１５３Ａに対して副系計算機が備えるネットワークディスクドライバ部１５３Ｂと接続するよう指示する（ステップＳ９０３）。ステップＳ９０３の処理は、ステップＳ２０３と同一の処理である。ステップＳ９０３の処理によって、計算機１０１Ａは論理デバイスへアクセスが可能となる。
【０１１０】
構成回復部１５６Ａは、冗長化処理部１５１Ａに対して、副系計算機から冗長化情報の取得を指示する（ステップＳ９０４）。当該指示を受信した冗長化処理部１５１Ａは、ネットワークディスクドライバ部１５３Ａに、副系計算機から冗長化情報を取得するためのアクセス要求を出力する。
【０１１１】
ステップＳ９０４では、ステップ８０３において生成された新たな論理デバイスの冗長化構成が読み出される。これによって、冗長化構成を維持したままサービスを継続することができる。
【０１１２】
図１に示す例では、論理デバイスを構成するディスク装置１０５Ｂが一個であるためデータの二重化はできないが、論理デバイスに障害が発生しているとは認識されることなくサービスを継続することができるという効果がある。
【０１１３】
構成回復部１５６Ａは、サービス提供部１５０に論理デバイスにアクセスするように指示し、さらに、サービスの開始を指示する（ステップＳ９０５）。ステップＳ９０５の処理は、ステップＳ２０５と同一の処理である。
【０１１４】
構成回復部１５６Ａは、冗長化処理部１５１Ａに対してディスク装置１０５Ａを管理下に置くよう指示する、すなわち、論理デバイスの再構成を指示する（ステップＳ９０６）。
【０１１５】
当該指示を受信した冗長化処理部１５１Ａは、図４に示す処理と同様の処理を実行する。具体的には、ステップＳ４０３では、冗長化処理部１５１Ａは、主系計算機のディスク装置１０５及び副系計算機のディスク装置１０５の全てを用いて論理ディスクを生成する。すなわち、障害が発生する前と同一の構成の論理デバイスが生成される。また、ステップＳ４０５では、冗長化処理部１５１Ａは、主系計算機のディスク装置１０５及び副系計算機のディスク装置１０５のそれぞれに冗長化情報を書き込む。なお、この時点では、論理デバイスを構成する主系計算機のディスク装置１０５にはデータが反映されていない。
【０１１６】
以上の処理によって、障害発生前の論理デバイスの構成を回復することができる。図１に示す例では、ステップＳ７０６の処理によって、データの二重書き込みが可能となる。
【０１１７】
構成回復部１５６Ａは、論理デバイスが生成された後、冗長化処理部１５１Ａに、副系計算機のディスク装置１０５に格納されるデータを主系計算機のディスク装置１０５にコピーするように指示し、処理を終了する（ステップＳ９０７、ステップＳ９０８）。
【０１１８】
当該指示を受信した冗長化処理部１５１Ａは、ネットワークディスクドライバ部１５３Ａに対してアクセス要求（読出要求）を出力する。これによって、副系計算機のディスク装置１０５からデータを取得することができる。また、冗長化処理部１５１Ａは、ディスクドライバ部１５２Ａに対して、取得されたデータのアクセス要求（書込要求）を出力する。これによって、主系計算機のディスク装置１０５にデータが書き込まれる。
【０１１９】
ステップＳ９０７の処理によって、論理デバイスを構成する全てのディスク装置に同一のデータが反映される。すなわち、主系計算機が停止している間に代替サービス提供部１７１によって論理デバイスに書き込まれたデータが主系計算機のディスク装置１０５に書き込まれる。
【０１２０】
図１０は、本発明の第一の実施形態における構成回復部１５６Ｂ（副系）が実行する処理を説明するフローチャートである。
【０１２１】
構成回復部１５６Ｂは、構成回復部１５６Ａから呼び出されると処理を開始する（ステップＳ１００１）。構成回復部１５６Ｂは、代替サービス提供部１７１を停止する（ステップＳ１００２）。
【０１２２】
構成回復部１５６Ｂは、ネットワークディスクドライバ部１５３Ｂに対して、計算機１０１Ａからディスク装置１０５Ｂへのアクセスを許可するよう設定し、処理を終了する（ステップＳ１００３、ステップＳ１００４）。
【０１２３】
以上の処理によって、他の計算機１０１からネットワークディスクドライバ部１５３Ｂへのアクセスを再開させ、計算機１０１Ａからのアクセスが可能となる。
【０１２４】
なお、計算機１０１Ｂに障害が発生した場合、計算機１０１Ｂの再起動後に構成設定部１５５Ｂを起動させる。これによって、ネットワークディスクドライバ部１５３Ａからネットワークディスクドライバ部１５３Ｂへのアクセスを回復できる。その後、冗長化処理部１５１Ａが、自動的にディスク装置１０５Ａから１０５Ｂへデータをコピーする。
【０１２５】
第一の実施形態では、計算機１０１Ａがサービスを提供する主系計算機、計算機１０１Ｂが副系計算機であるものとして説明したが、一例であって、それぞれの計算機１０１が同一の構成を備えてもよい。これによって、お互いが他方の副系計算機となれるような構成が可能となる。
【０１２６】
第一の実施形態によれば、複数の計算機のディスク装置を用いて共有ストレージを構成した場合に、いずれかの計算機に障害が発生しても、副系計算機の代替サービス提供部１７１は、共有ストレージを用いてサービスを継続することができる。すなわち、副系計算機の代替サービス提供部１７１は、共有ストレージの冗長化構成が維持されているものと認識することができる。
【０１２７】
これによって、専用のストレージシステムを用いることなく、一般的な計算機を用いて共有ストレージを構築することができ、また、障害への耐性も確保することができる。
【０１２８】
（第二の実施形態）
【０１２９】
第二の実施形態について説明する。第二の実施形態では、具体的な装置構成を用いて実際のシステム構築例を説明する。
【０１３０】
以下、第一の実施形態との差異を中心に説明する。
【０１３１】
図１１は、本発明の第二の実施形態の計算機システムの構成を示したブロック図である。
【０１３２】
計算機システムの構成は、第一の実施形態と同一であるため説明を省略する。
【０１３３】
第二の実施形態では、計算機１０１のハードウェア構成が一部異なる。具体的には、第二の実施形態では、ネットワークインタフェース１０６Ａ、１０６Ｂがイーサネットコントローラ１１０１Ａ、１１０１Ｂとなる（イーサネットは登録商標、以下同じ。）。その他のハードウェア構成は、第一の実施形態と同一であるため説明を省略する。
【０１３４】
また第二の実施形態では、各計算機１０１が備えるソフトウェア構成が異なる。具体的には、第二の実施形態では、冗長化処理部１５１Ａ、１５１ＢはＯＳが備えるソフトウェアＲＡＩＤ機能部１１１１Ａ、１１１１Ｂとなり、ネットワークディスクドライバ部１５３ＡはｉＳＣＳＩイニシエータ１１１２となり、ネットワークディスクドライバ部１５３ＢはｉＳＣＳＩターゲット１１１３となる。また、計算機１０１Ｂは、ネットワーク１８０を介した計算機１０１からのアクセスを制御する構成としてネットワークフィルタ部１１１４を備える。
【０１３５】
構成設定部１５５Ａの処理は、以下の点が異なる。ステップＳ２０２では、構成設定部１５５Ａは、副系計算機の名称を取得する。また、ステップＳ２０３では、構成設定部１５５Ａは、取得された副系計算機の名称をＩＰｖ４のアドレス又はＩＰｖ６のアドレスに変換し、変換されたアドレスを用いてｉＳＣＳＩターゲット１１１３に接続するように指示する。その他の処理は、第一の実施形態と同一である。
【０１３６】
障害制御部１７０の処理は、以下の点が異なる。
【０１３７】
ステップＳ６０２では、障害制御部１７０は、ｉＳＣＳＩターゲット１１１３を停止させ、又は、ネットワークフィルタ部１１１４に対してｉＳＣＳＩターゲット１１１３に送信されたＴＣＰ／ＩＰプロトコルのパケットを破棄するように指示する。その他の処理は、第一の実施形態と同一である。
【０１３８】
構成回復部１５６Ｂの処理は、以下の点が異なる。
【０１３９】
ステップＳ８０３では、構成回復部１５６Ｂが、ｉＳＣＳＩターゲット１１１３を再開させ、又は、ネットワークフィルタ部１１１４に対してｉＳＣＳＩターゲット１１１３に送信されるＴＣＰ／ＩＰプロトコルのパケットの破棄を中止するように指示する。その他の処理は、第一の実施形態と同一である。
【０１４０】
第二の実施形態によれば、ソフトウェアＲＡＩＤ、ｉＳＣＳＩターゲット、ｉＳＣＳＩイニシエータ及びイーサネットを用いて、安価に共有ストレージを構築することができる。
【０１４１】
なお、本発明は前述した実施形態に限定されるものではなく、様々な変形例が含まれる。例えば、前述した実施形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施形態の構成の一部を他の実施形態の構成に置き換えることが可能であり、また、ある実施形態の構成に他の実施形態の構成を加えることも可能である。また、各実施形態の構成の一部について、他の構成の追加、削除、置換をすることが可能である。
【０１４２】
また、前述の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によってハードウェアを用いて実現してもよい。また、前述の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによってソフトウェアを用いて実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリ、ＨＤＤ及びＳＳＤ等の記録装置、又は、ＩＣカード、ＳＤカード及びＤＶＤ等の記録媒体に格納することができる。また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際にはほとんど全ての構成が相互に接続されていると考えてもよい。
【図１】
0006005668.tif 000002
【図２】
0006005668.tif 000003
【図３】
0006005668.tif 000004
【図４】
0006005668.tif 000005
【図５】
0006005668.tif 000006
【図６】
0006005668.tif 000007
【図７】
0006005668.tif 000008
【図８】
0006005668.tif 000009
【図９】
0006005668.tif 000010
【図１０】
0006005668.tif 000011
【図１１】
0006005668.tif 000012