(57)【特許請求の範囲】
【請求項１】
プログラムを実行する複数のクラスタと、
それぞれが前記複数のクラスタに接続された複数のシステム記憶装置と、を有し、
少なくとも１つのシステム記憶装置は、
接続されているクラスタとの間に生じた接続障害を検出する第１回路と、
接続されているクラスタとの接続状態を示す接続情報であって、前記第１回路で前記接続障害が検出された場合に対応するクラスタとの間に生じた接続障害を示す接続障害情報が含まれた接続情報を、前記システム記憶装置に接続された複数のクラスタに通知する第２回路と、を有し、
前記クラスタは、
接続されている複数のシステム記憶装置のそれぞれから接続情報を受信する第３回路と、
前記第３回路で受信した各システム記憶装置からの接続情報に基づいて、前記システム記憶装置を切り離す処理を実行する第４回路と、を有し、
前記システム記憶装置は、
接続されているクラスタとの論理的な接続状態が接続障害を示す場合、対応するクラスタを当該システム記憶装置から切り離す第５回路を更に備える、
ことを特徴とするマルチクラスタシステム。
【請求項２】
前記第５回路は、
対応するクラスタとの論理的な接続状態を示す接続フラグが設定され、
接続されたクラスタとの間の接続障害を前記第１回路が検出した場合、前記接続フラグを接続障害を示す状態に設定し、
前記接続フラグが接続障害を示す状態に設定された場合、対応するクラスタを当該システム記憶装置から切り離すことを特徴とする、請求項１記載のマルチクラスタシステム。
【請求項３】
前記クラスタは、
接続されているシステム記憶装置の少なくとも一方から、当該システム記憶装置といずれかのクラスタとの間に接続障害が生じたことを示す接続情報を受信した場合、当該接続情報を送信したシステム記憶装置以外のシステム記憶装置と自身との間の接続状態を判別し、
接続状態の判別結果に基づいて、当該接続情報を送信したシステム記憶装置に対して切り離しを指示する、請求項１記載のマルチクラスタシステム。
【請求項４】
プログラムを実行する複数のクラスタと、
それぞれが前記複数のクラスタに接続された複数のシステム記憶装置と、を有し、
少なくとも１つのクラスタは、
接続されているシステム記憶装置との間に生じた接続障害を検出する第１回路と、
前記第１回路で前記接続障害が検出された場合に対応するシステム記憶装置との間に生じた接続障害を示す情報を、前記対応するシステム記憶装置に通知する第２回路と、を有し、
少なくとも１つのシステム記憶装置は、前記接続障害を示す情報を受信した場合に、該情報を送信したクラスタ以外の当該システム記憶装置に接続されている他のクラスタに該情報を送信したクラスタとの間に接続障害が発生したことを示す接続障害情報を含む接続情報を通知し、
前記クラスタは、
接続されている複数のシステム記憶装置のそれぞれから接続情報を受信する第３回路と、
前記第３回路で受信した各システム記憶装置からの接続情報に基づいて、前記システム記憶装置を切り離す処理を実行する第４回路と、
を有することを特徴とするマルチクラスタシステム。
【請求項５】
前記システム記憶装置は、対応するクラスタとの論理的な接続状態を示す接続フラグが設定される第５回路を更に備え、
接続されたクラスタとの間の接続障害を前記第１回路が検出した場合、前記接続フラグを接続障害を示す状態に設定し、
前記第５回路は、前記接続フラグが接続障害を示す状態に設定された場合、対応するクラスタを当該システム記憶装置から切り離すことを特徴とする、請求項４記載のマルチクラスタシステム。
【請求項６】
前記クラスタは、
接続されているシステム記憶装置の少なくとも一方から、当該システム記憶装置といずれかのクラスタとの間に接続障害が生じたことを示す接続情報を受信した場合、当該接続情報を送信したシステム記憶装置以外のシステム記憶装置と自身との間の接続状態を判別し、
接続状態の判別結果に基づいて、当該接続情報を送信したシステム記憶装置に対して切り離しを指示する、請求項４記載のマルチクラスタシステム。
【請求項７】
情報処理を行う複数の情報処理装置と、
それぞれ前記複数の情報処理装置に接続され、接続された複数の情報処理装置によって共有される複数のシステム記憶装置とを有し、
前記システム記憶装置は、
接続された複数の情報処理装置のそれぞれとの間の接続障害の有無を検出するとともに、接続された情報処理装置と当該システム記憶装置との間の接続状態を示す接続情報を接続されている情報処理装置に送信する障害検出部と、
前記障害検出部からの接続障害通知を受信し、接続されている情報処理装置への前記接続障害通知の転送を前記障害検出部に指示する障害通知部と、
前記障害検出部によって接続障害が検出された情報処理装置を当該システム記憶装置から切り離す構成制御部と、を備え、
前記情報処理装置は、
複数のシステム記憶装置が接続され、対応するシステム記憶装置から当該システム記憶装置と情報処理装置との間の接続情報を受信する障害検出部と、
前記障害検出部が受信した各システム記憶装置からの接続情報に基づいて、障害が検出されたシステム記憶装置の切離し要否を判断する切離し処理部とを備える、情報処理システム。
【請求項８】
前記構成制御部は、
対応する情報処理装置との論理的な接続状態を示す接続フラグが設定され、
接続された情報処理装置との間の接続障害を前記障害検出部が検出した場合、前記接続フラグを接続障害を示す状態に設定し、
前記接続フラグが接続障害を示す状態に設定された場合、対応する情報処理装置を当該システム記憶装置から切り離すことを特徴とする、請求項７記載の情報処理システム。
【請求項９】
前記情報処理装置は、
接続されているシステム記憶装置の少なくとも一方から、当該システム記憶装置といずれかの情報処理装置との間に接続障害が生じたことを示す接続情報を受信した場合、当該接続情報を送信したシステム記憶装置以外のシステム記憶装置と自身との間の接続状態を判別し、接続状態の判別結果に基づいて、当該接続情報を送信したシステム記憶装置に対して切り離しを指示する、請求項７記載の情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
開示の技術は、複数のクラスタがネットワークにより複数のシステム記憶装置に接続されたマルチクラスタシステムに関する。
【背景技術】
【０００２】
マルチクラスタシステムは複数の計算機、即ちクラスタにより構成される。マルチクラスタシステムは、複数のクラスタにより共有される例えばシステム記憶装置を用いて、例えばデータベース処理を実行する。複数のクラスタ及び複数のシステム記憶装置間は、例えば電気ケーブル又は光ケーブルを介して接続されている。【０００３】
なお、複数のシステム記憶装置には、多重化のために同一のデータが格納されている。そのため、複数のシステム記憶装置の１つが故障となっても、他のシステム記憶装置を代わりに用いることができる。他のシステム記憶装置を用いることにより、マルチクラスタシステム全体としては連続的に稼働できる。複数のシステム記憶装置を多重化するために、お互いのシステム記憶装置は等価性を保証するために同一のデータを保持する必要がある。【０００４】
一方、各クラスタと各システム記憶装置間との論理的な接続状態は、システム記憶装置に備えられた、各クラスタとの論理的接続状態を示す接続状態フラグにより判断される。また、複数のクラスタ間の生存状態は、例えば所定の間隔で行われるクラスタ間のパケット通信により確認される。複数のクラスタ間におけるパケット通信は、システム記憶装置を介して相互に行われる。複数のクラスタ間の経路において接続障害が発生してクラスタ間のパケット通信が出来なくなった場合、一方のクラスタは、生存途絶が検出された他方のクラスタとシステム記憶装置との間のパスを論理的に切り離す。パスが論理的に切り離されたシステム記憶装置は、他のシステム記憶装置とはクラスタの接続構成が異なるため、他のシステム記憶装置と同一のデータを保持することができない。【０００５】
多重化されている複数のシステム記憶装置を使用しているクラスタは、マスタとなるシステム記憶装置を介して複数のクラスタ間の生存監視のチェックを、オペレーションシステム（Ｏｐｅｒａｔｉｏｎ  Ｓｙｓｔｅｍ、ＯＳ）により所定の間隔で行っている。システム記憶装置との間のパスが切り離されたクラスタは、切り離したシステム記憶装置を介して接続された他方のクラスタの生存確認を実施することができない。生存確認が確認できないクラスタは、マルチクラスタシステムから切り離される。クラスタが切り離される現象をクラスタダウンという。クラスタダウンが発生すると、処理を実施するクラスタ数が減少するため、マルチクラスタシステム全体の処理が遅延する問題が発生する。【０００６】
従来技術として、下記の文献がある。【０００７】
【特許文献１】特開平５−４６５８０号公報
【特許文献２】特開平４−２３１４９号公報
【発明の概要】
【０００８】
（発明が解決しようとする課題）
開示の技術は、接続障害が検出されたシステム記憶装置を切り離す際にクラスタの接続状態を維持するマルチクラスタシステムを提供することを目的とする。
【０００９】
（課題を解決するための手段）
本発明の課題を解決するため、開示の技術の第１の側面によれば、
プログラムを実行する複数のクラスタと、
それぞれが前記複数のクラスタに接続された複数のシステム記憶装置と、を有し、
少なくとも１つのシステム記憶装置は、
接続されているクラスタとの間に生じた接続障害を示す接続障害情報を含む接続情報を検出する第１回路と、
前記第１回路で検出された接続情報を、前記システム記憶装置に接続された複数のクラスタに通知する第２回路と、を有し、
前記クラスタは、
接続されている複数のシステム記憶装置のそれぞれから接続情報を受信する第３回路と、
前記第３回路で受信した各システム記憶装置からの接続情報に基づいて、前記システム記憶装置を切り離す処理を実行する第４回路と、
を有することを特徴とするマルチクラスタシステムを提供する。
【００１０】
本発明の課題を解決するため、開示の技術の第２の側面によれば、
プログラムを実行する複数のクラスタと、
それぞれが前記複数のクラスタに接続された複数のシステム記憶装置と、を有し、
少なくとも１つのクラスタは、
接続されているシステム記憶装置との間に生じた接続障害を示す接続障害情報を含む接続情報を検出する第１回路と、
前記第１回路で検出された第１接続情報を、前記システム記憶装置に接続された複数のクラスタに通知する第２回路と、を有し、
前記クラスタは、
接続されている複数のシステム記憶装置のそれぞれから接続情報を受信する第３回路と、
前記第３回路で受信した各システム記憶装置からの接続情報に基づいて、前記システム記憶装置を切り離す処理を実行する第４回路と、
を有することを特徴とするマルチクラスタシステムを提供する。
【００１１】
（発明の効果）
開示の技術によれば、クラスタは接続されている複数のシステム記憶装置のそれぞれから接続情報を受信し、受信した各システム記憶装置からの接続情報に基づいて、接続障害が検出されたシステム記憶装置を切り離す処理を実行することができる。そのため、各クラスタの接続障害が検出されていないシステム記憶装置に対する接続状態を維持して接続障害が検出されたシステム記憶装置の切り離しを実施することができる。更に、クラスタの切り離しを防止して処理を実施するクラスタ数の減少を抑制できるため、処理を実施するクラスタ数の減少を抑制できるため、マルチクラスタシステム全体の処理の遅延を抑制できる。
【図面の簡単な説明】
【００１２】
【図１】図１は、実施例１に係るマルチクラスタシステムの概略図を示す図である。
【図２】図２は、実施例１に係るマルチクラスタシステムの構成図を示す図である。
【図３】図３は、実施例１に係るインタフェース回路の内部構成の一部を示す図である。
【図４】図４は、実施例１に係るインタフェース回路の内部構成の一部を示す図である。
【図５】図５は、実施例１に係るマルチクラスタシステムの動作例を示すシーケンス図である。
【図６】図６は、実施例１に係るマルチクラスタシステムの動作例を示すシーケンス図である。
【図７】図７は、実施例１に係るマルチクラスタシステムの通信命令処理の一例を示すタイムチャートである。
【図８】図８は、実施例１に係るマルチクラスタシステムの通信命令処理の一例を示すタイムチャートである。
【図９】図９は、実施例１に係るマルチクラスタシステムの通信命令処理の一例を示すタイムチャートである。
【図１０】図１０は、実施例２に係るマルチクラスタシステムの動作例を示すシーケンス図である。
【発明を実施するための形態】
【００１３】
以下、開示の技術の実施例１及び実施例２に係るマルチクラスタシステム１０００及びマルチクラスタシステム１０００の制御方法が説明される。ただし、開示の技術は各実施例に限定されるものではない。
【００１４】
（実施例１）
図１から図９では、実施例１に係るマルチクラスタシステム１０００及びマルチクラスタシステム１０００の制御方法が説明される。
【００１５】
図１は、実施例１に係るマルチクラスタシステム１０００の概略構成図を示す。マルチクラスタシステム１０００は、システム記憶装置１００、システム記憶装置２００、クラスタ３００、クラスタ４００、接続線１１、接続線１２、接続線２１及び接続線２２を備える。システム記憶装置１００及びシステム記憶装置２００は同一の構成を備える。システム記憶装置２００において、システム記憶装置１００で説明した構成と同様の構成には同一符号を付し、説明を省略する。クラスタ３００及びクラスタ４００は同一の構成を備える。クラスタ４００において、クラスタ３００で説明した構成と同様の構成には同一の符号を付し、説明を省略する。
【００１６】
接続線１１、接続線１２、接続線２１及び接続線２２は、例えば電気ケーブル又は光ケーブルを用いることができる。システム記憶装置１００及びクラスタ３００は接続線１１を介して接続されている。システム記憶装置１００及びクラスタ４００は接続線２１を介して接続されている。システム記憶装置２００及びクラスタ３００は接続線１２を介して接続されている。システム記憶装置２００及びクラスタ４００は接続線２２を介して接続されている。クラスタ３００及びクラスタ４００は、システム記憶装置１００及びシステム記憶装置２００に格納されるデータを読出し、又はシステム記憶装置１００及びシステム記憶装置２００にデータを書込み、必要な処理を行う。
【００１７】
システム記憶装置１００は、インタフェース回路１１０、システム構成制御回路１２０、優先制御回路１３０、複数のメモリアクセスコントローラ１４０、サービスプロセッサ１５０、メモリ１６０及びバス１７０を備える。インタフェース回路１１０、システム構成制御回路１２０、優先制御回路１３０、メモリアクセスコントローラ１４０及びメモリ１６０は、バス１７０を介して互いに接続されている。
【００１８】
システム記憶装置１００は、システム記憶装置１００が格納するデータの破損防止を保証するためにシステム記憶装置２００と多重化されている。システム記憶装置１００は、システム記憶装置２００が格納するデータおよびプログラムと同一のデータ及びプログラムを格納する。システム記憶装置１００は、接続線１１及び接続線２１を介してクラスタ３００及びクラスタ４００に共有されるように接続されている。システム記憶装置１００は、システム記憶装置１００に接続されているクラスタ３００及びクラスタ４００の接続を中継する。
【００１９】
インタフェース回路１１０は、システム記憶装置１００をクラスタ３００及びクラスタ４００と接続するために設けられる。インタフェース回路１１０は、クラスタ３００及びクラスタ４００から送信された受信パケットの解析を行い、システム構成制御回路１２０及び優先制御回路１３０に対しコマンド及びデータを送信する。インタフェース回路１１０は、コマンド及びデータがクラスタ３００及びクラスタ４００と比較してどちらが優先してアクセスされるか設定する。インタフェース回路１１０は、クラスタ３００及びクラスタ４００からパケット化されたコマンド及びデータを受信し、またクラスタ３００及びクラスタ４００に対してパケット化したコマンド及びデータを送信する。
【００２０】
システム構成制御回路１２０は、インタフェース回路１１０を介して受信したクラスタ３００及びクラスタ４００からのコマンドを解析して、システム記憶装置１００の構成を解析したコマンドと対応させて設定する。
【００２１】
優先制御回路１３０は、メモリアクセスコントローラ１４０に対するアクセス制御を行う。優先制御回路１３０は、アクセスの優先順位をメモリアクセスコントローラ１４０に通知する。
【００２２】
メモリアクセスコントローラ１４０は、優先制御回路１３０によって通知されたアクセスの優先順位に応じて、メモリ１６０に対するアクセスの制御を行う。
【００２３】
サービスプロセッサ１５０は、例えば、マルチクラスタシステム１０００の運転及び保守診断の制御を含むシステム制御を行う。サービスプロセッサ１５０は、例えばオペレータコンソール機能を備える。
【００２４】
メモリ１６０は、例えば、クラスタ３００及びクラスタ４００で使用されるデータ、クラスタ３００及びクラスタ４００に実行させるＯＳのプログラム及び演算プログラム１６０Ａの少なくとも一部を一時的に格納する。演算プログラム１６０Ａは、実施例１に係る演算処理を実施するためのプログラムである。演算プログラム１６０Ａは、クラスタ３００及びクラスタ４００によって実行される。クラスタ３００又は４００がダウン又は接続障害により使用できなくなった場合、演算プログラム１６０Ａの処理は、システム記憶装置１００及び２００に接続された不図示の待機系クラスタにより実行される。
【００２５】
なお、演算プログラム１６０Ａは、必ずしもメモリ１６０に記憶させておく必要は無い。演算プログラム１６０Ａは、例えば、システム記憶装置１００に挿入されるフレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＭＯディスク、ＤＶＤディスク、光磁気ディスク及びＩＣカードなどの「可搬用の物理的な記憶媒体」に記憶される。また、演算プログラム１６０Ａは、システム記憶装置１００の内外に備えられるディスク装置、あるいは公衆回線やインターネット、ＬＡＮ、ＷＡＮなどを介してシステム記憶装置１００に接続される「他のコンピュータ（またはサーバ）」の記憶媒体に記憶される。システム記憶装置１００は、上記記憶媒体から演算プログラム１６０Ａを読み出して実行することができる。
【００２６】
システム記憶装置２００は、インタフェース回路２１０、システム構成制御回路２２０、優先制御回路２３０、メモリアクセスコントローラ２４０、サービスプロセッサ２５０、メモリ２６０及びバス２７０を備える。インタフェース回路２１０、システム構成制御回路２２０、優先制御回路２３０、メモリアクセスコントローラ２４０及びメモリ２６０は、バス２７０を介して互いに接続されている。
【００２７】
システム記憶装置２００は、システム記憶装置２００が格納するデータの破損防止を保証するためにシステム記憶装置１００と多重化されている。システム記憶装置２００は、システム記憶装置１００と同一のデータ及びプログラムを格納する。システム記憶装置２００は、接続線１２及び接続線２２を介してクラスタ３００及びクラスタ４００に共有されるように接続されている。また、システム記憶装置２００は、システム記憶装置２００に接続されているクラスタ３００及びクラスタ４００間の接続を中継する。
【００２８】
クラスタ３００は、インタフェース回路３１０、システム記憶転送部３２０、チャネル装置３３０、システムコントローラ３４０、主記憶装置３５０、サービスプロセッサ３６０、複数の中央処理装置３７０及びバス３８０を備える。インタフェース回路３１０、システム記憶転送部３２０、チャネル装置３３０、システムコントローラ３４０、主記憶装置３５０及び中央処理装置３７０は、バス３８０を介して互いに接続されている。
【００２９】
インタフェース回路３１０は、クラスタ３００がシステム記憶装置１００及びシステム記憶装置２００と接続するために設けられる。インタフェース回路３１０は、システム記憶装置１００及びシステム記憶装置２００から送信された受信パケットの解析を行い、システム記憶転送部３２０に対する命令の応答やデータの転送を行う。インタフェース回路３１０は、システム記憶転送部３２０に対し、コマンド及びデータのアクセスの優先順位を設定する。インタフェース回路３１０は、システム記憶転送部３２０から受信したコマンド及びデータをパケット化し、システム記憶装置１００及びシステム記憶装置２００に対してパケット化されたコマンド及びデータを送信する。
【００３０】
システム記憶転送部３２０は、インタフェース回路３１０と主記憶装置３５０との間のデータ転送の制御を行う。システム記憶転送部３２０は、インタフェース回路３１０及びシステム記憶装置２００のインタフェース回路２１０を介して接続されるクラスタ４００との通信の制御を行う。
【００３１】
チャネル装置３３０は、システム記憶転送部３２０を介して主記憶装置３５０からデータを読み出して中央処理装置３７０へデータ転送を行う。
【００３２】
システムコントローラ３４０は、システム記憶転送部３２０、チャネル装置３３０、主記憶装置３５０及び中央処理装置３７０間のデータ転送を制御する。
【００３３】
主記憶装置３５０は、システム記憶転送部３２０及び中央処理装置３７０からの要求により、データの記憶及び保持を行う。
【００３４】
サービスプロセッサ３６０は、システム記憶装置１００に係るサービスプロセッサ１５０と同様に、マルチクラスタシステム１０００の運転及び保守診断の制御を含むシステム制御を行う。
【００３５】
中央処理装置３７０は、クラスタ３００に係る演算処理を実行する。中央処理装置３７０は、システム記憶転送部３２０、チャネル装置３３０、システムコントローラ３４０及び主記憶装置３５０を制御する。
【００３６】
クラスタ４００は、インタフェース回路４１０、システム記憶転送部４２０、チャネル装置４３０、システムコントローラ４４０、主記憶装置４５０、サービスプロセッサ４６０、中央処理装置４７０及びバス４８０を備える。インタフェース回路４１０、システム記憶転送部４２０、チャネル装置４３０、システムコントローラ４４０、主記憶装置４５０及び中央処理装置４７０は、バス４８０を介して互いに接続されている。
【００３７】
図２は、図１のマルチクラスタシステム１０００において、一点鎖線で示した箇所Ａの構成図を示す図である。なお、図１に示すマルチクラスタシステム１０００において、図１で説明した構成と同様の構成には同一の符号を付し、説明を省略する。
以下の説明では、システム記憶装置１００がマスタ、システム記憶装置２００がスレーブとして動作しているものとする。マスタであるシステム記憶装置１００が現用装置として動作する。
【００３８】
システム記憶装置１００に係るインタフェース回路１１０は、障害検出通知回路１１０Ａ１及び障害検出通知回路１１０Ａ２を備える。障害検出通知回路１１０Ａ１は、クラスタ３００に備えられた障害検出通知回路３１０Ａ１に、接続線１１を介して接続されている。障害検出通知回路１１０Ａ２は、クラスタ４００に備えられた障害検出通知回路４１０Ａ１に、接続線２１を介して接続されている。
【００３９】
システム記憶装置１００のインタフェース回路１１０に設けられた障害検出通知回路１１０Ａ１及び障害検出通知回路１１０Ａ２は、システム記憶装置１００と対応するクラスタとの間の接続障害を検出する。具体的には、障害検出通知回路１１０Ａ１はクラスタ３００から、障害検出通知回路１１０Ａ２はクラスタ４００からそれぞれ通知される接続障害情報を受信する。障害検出通知回路１１０Ａ１、１１０Ａ２はまた、対応するクラスタ送信されるパケットの解析及びチェックを行い、インタフェース回路１１０において対応するクラスタとの間の接続障害を検出する。なお、クラスタから受信したデータのエラーをチェックした結果、データチェックに問題が無い場合でも、データをシステム記憶装置１００の内部に取り込むまでの経路上で接続障害が発生する場合がある。そのため、障害検出通知回路１１０Ａ１及び障害検出通知回路１１０Ａ２は、システム記憶装置１００の内部にデータを取り込むまでの経路で発生する接続障害を、全てインタフェース回路１１０における接続障害として検出する。
【００４０】
システム記憶装置１００に係るシステム構成制御回路１２０は、接続状態フラグ１２０Ａ１及び接続状態フラグ１２０Ａ２を記憶する領域を備える。接続状態フラグ１２０Ａ１は、クラスタ３００とシステム記憶装置１００との論理的な接続状態を示すフラグである。接続状態フラグ１２０Ａ１は、障害検出通知回路１１０Ａ１によりクラスタ３００とシステム記憶装置１００との間の接続障害が検出されるとオフされる。接続状態フラグ１２０Ａ２は、クラスタ４００とシステム記憶装置１００との論理的な接続状態を示すフラグである。接続状態フラグ１２０Ａ２は、障害検出通知回路１１０Ａ２によりクラスタ４００とシステム記憶装置１００との間の接続障害が検出されるとオフされる。システム構成制御回路１２０では、オフされた接続状態フラグ１２０Ａ１及び接続状態フラグ１２０Ａ２に対応するクラスタとの接続を論理的に切断する。
【００４１】
システム記憶装置１００に係る優先制御回路１３０は、インタフェース障害通知回路１３０Ａを備える。インタフェース障害通知回路１３０Ａは、障害検出通知回路１１０Ａ１及び障害検出通知回路１１０Ａ２に接続される。例えば、クラスタ３００との間の接続障害が障害検出通知回路１１０Ａ１からインタフェース障害通知回路１３０Ａに通知された場合、インタフェース障害通知回路１３０Ａは障害検出通知回路１１０Ａ１から受信した接続障害を、クラスタ４００に接続された障害検出通知回路１１０Ａ２に通知する。
システム記憶装置２００に設けられた各部の機能は、システム記憶装置１００に設けられた各部の機能と基本的に同一であるため、詳細説明は省略する。
【００４２】
クラスタ３００に係るインタフェース回路３１０は、障害検出通知回路３１０Ａ１、障害検出通知回路３１０Ａ２、接続状態受信回路３１０Ｂ及びコマンド生成発行回路３１０Ｃを備える。
【００４３】
障害検出通知回路３１０Ａ１は、システム記憶装置１００に備えられた障害検出通知回路１１０Ａ１に、接続線１１を介して接続されている。障害検出通知回路３１０Ａ２は、システム記憶装置２００に備えられた障害検出通知回路２１０Ａ１に、接続線２１を介して接続されている。
【００４４】
障害検出通知回路３１０Ａ１及び障害検出通知回路３１０Ａ２は、接続されたシステム記憶装置との間の接続障害を検出する。具体的には、障害検出通知回路３１０Ａ１はシステム記憶装置１００から、障害検出通知回路３１０Ａ２はシステム記憶装置２００からそれぞれ接続障害情報を受信する。また、障害検出通知回路３１０Ａ１、３１０Ａ２は、対応するしステム記憶装置から送信されるパケットの解析及びチェックを行い、対応するシステム記憶装置との間の接続障害を検出する。なお、データチェックに問題が無い場合でも、データをクラスタ３００の内部に取り込むまでの経路上に接続障害が発生する場合がある。障害検出通知回路３１０Ａ１及び障害検出通知回路３１０Ａ２は、クラスタ３００の内部に取り込むまでの経路で生じた接続障害を、全てインタフェース回路３１０における接続障害として検出する。
【００４５】
接続状態受信回路３１０Ｂは、障害検出通知回路３１０Ａ１又は障害検出通知回路３１０Ａ２から対応するシステム記憶装置との間の接続状態を示す接続情報を受信する。対応するシステム記憶装置との間の接続障害を検出した、インタフェース回路３１０の障害検出通知回路からの接続情報は、接続障害を示す情報が含まれる。システム記憶装置との間に接続障害が発生した場合、接続状態受信回路３１０Ｂは、接続障害を検出した障害検出通知回路からの接続情報と、接続障害を検出していない障害検出通知回路からの接続情報とを受信する。
【００４６】
障害検出通知回路３１０Ａ１と３１０Ａ２とのいずれかの障害検出通知回路から、対応するシステム記憶装置との間の接続障害が通知された場合、接続状態受信回路３１０Ｂは、接続障害が検出されていない、他方のシステム記憶装置とクラスタ３００との間の接続状態に基づいて、クラスタ３００に接続されているシステム記憶装置間の等価性が保証されている状態にあるか否かを判断する。
接続障害が検出されていない他方のシステム記憶装置がクラスタ３００とは論理的に接続されていない場合、接続状態受信回路３１０Ｂは、接続障害が検出されたシステム記憶装置と他方のシステム記憶装置とに同一のデータ及びプログラムが格納されていると判断する。即ち、接続状態受信回路３１０Ｂは接続障害が検出されたシステム記憶装置と他のシステム記憶装置との等価性が保証されていると判断する。
【００４７】
一方、接続障害が検出されていない他方のシステム記憶装置がクラスタ３００と論理的に接続されている場合、接続状態受信回路３１０Ｂは、接続障害が検出されたシステム記憶装置には、他のシステム記憶装置と同一のデータ及びプログラムが格納されていないと判断する。即ち、接続状態受信回路３１０Ｂは、接続障害が検出されたシステム記憶装置と他方のシステム記憶装置との等価性が保証されていないと判断する。
接続状態受信回路３１０Ｂは、判断した結果を受信情報としてコマンド生成発行回路３１０Ｃに通知する。
【００４８】
コマンド生成発行回路３１０Ｃは、接続状態受信回路３１０Ｂから得られた受信情報に基づいて、クラスタ３００から切り離すシステム記憶装置に対する切り離し要求コマンドを生成し、発行する。具体的には、コマンド生成発行回路３１０Ｃは、障害検出通知回路３１０Ａ１又は障害検出通知回路３１０Ａ２のうち、対応するシステム記憶装置との間に接続障害が発生した障害検出通知回路に対して、対応するシステム記憶装置を切り離すための要求コマンドを発行する。要求コマンドは、例えばパケット化されたコマンド及びデータを使用することができる。
【００４９】
クラスタ４００に係るインタフェース回路４１０は、障害検出通知回路４１０Ａ１、障害検出通知回路４１０Ａ２、接続状態受信回路４１０Ｂ及びコマンド生成発行回路４１０Ｃを備える。各部の基本的な機能はクラスタ３００の各部と同様であるため、詳細説明は省略する。
【００５０】
図３は、図１のクラスタ３００において、破線で示した箇所Ｂのインタフェース回路３１０とシステム記憶転送部３２０との構成を示す図である。なお、図３に示すマルチクラスタシステム１０００において、図１で説明した構成と同様の構成には同一の符号を付し、説明を省略する。
【００５１】
インタフェース回路３１０は、システム記憶装置１００に対応するインタフェース回路３１０−１及びシステム記憶装置２００に対応するインタフェース回路３１０−２を備える。
【００５２】
インタフェース回路３１０−１は、障害検出通知回路３１０−１Ａ、接続状態受信回路３１０−１Ｂ、コマンド生成発行回路３１０−１Ｃ、フリップフロップ３１０−１Ｄ、巡回冗長検査回路３１０−１Ｅ、パケット間隔監視回路３１０−１Ｆ、誤り訂正符号生成回路３１０−１Ｇ、Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ（ＲＡＭ）３１０−１Ｈ、誤り訂正符号検査回路３１０−１Ｉ、コマンド解析回路３１０−１Ｊ、コマンド生成回路３１０−１Ｋ、コマンド優先選択回路３１０−１Ｌ、コマンド保持レジスタ回路３１０−１Ｍ、パケット生成回路３１０−１Ｎ及びフリップフロップ３１０−１Ｏを備える。
なお、図３の障害検出通知回路３１０−１Ａ、図２の障害検出通知回路３１０Ａ１、３１０Ａ２は同じ要素である。図３の接続状態受信回路３１０−１Ｂ、図２の接続状態受信回路３１０Ｂ１、３１０Ｂ２は同じ要素である。図３のコマンド生成発行回路３１０−１Ｃ、図２のコマンド生成発行回路３１０Ｃ１、３１０Ｃ２は同じ要素である。
【００５３】
フリップフロップ３１０−１Ｄは、システム記憶装置１００から転送されたデータのパケットを受信し、巡回冗長検査回路３１０−１Ｅに送信する。データのパケットは、システム記憶装置１００とクラスタ３００との間の接続情報を含む。システム記憶装置１００によって接続障害が検出された場合、システム記憶装置１００から障害検出情報を含むパケットが送信される。
【００５４】
巡回冗長検査回路３１０−１Ｅは、フリップフロップ３１０−１Ｄから転送されたパケットに基づいて、パケットのエラーを検出するエラー検出、例えばＣｙｃｌｉｃ  Ｒｅｄｕｎｄａｎｃｙ  Ｃｈｅｃｋ（ＣＲＣ）を実行後、ＲＡＭ３１０−１Ｈに送信する。また、巡回冗長検査回路３１０−１Ｅは、ＣＲＣを実行後、パケット間隔監視回路３１０−１Ｆ及び誤り訂正符号生成回路３１０−１Ｇに送信する。
【００５５】
パケット間隔監視回路３１０−１Ｆは、転送されたパケットの通信間隔を監視し、一定時間パケットの受信が途絶えた場合に接続障害通知を障害検出通知回路３１０−１Ａに送信する。
【００５６】
誤り訂正符号生成回路３１０−１Ｇは、データに係る符号の誤りが発生した場合に付与する誤り訂正符号を生成し、ＲＡＭ３１０−１Ｈに送信する。
【００５７】
ＲＡＭ３１０−１Ｈは、巡回冗長検査回路３１０−１Ｅによりチェックされたデータ、及び誤り訂正符号生成回路３１０−１Ｇにより生成された誤り訂正符号を書き込み、書き込まれた情報を誤り訂正符号検査回路３１０−１Ｉ及びコマンド解析回路３１０−１Ｊに送信する。
【００５８】
誤り訂正符号検査回路３１０−１Ｉは、データに係る符号の誤りが発生した場合に、接続障害通知を障害検出通知回路３１０−１Ａに送信する。
【００５９】
コマンド解析回路３１０−１Ｊは、ＲＡＭ３１０−１Ｈから受信したコマンドを解析する。コマンド解析回路３１０−１Ｊは、解析の結果得られたシステム記憶装置１００とクラスタ３００との間の接続情報を、システム記憶装置２００に対応するインタフェース回路３１０−２に送信する。また、コマンド解析回路３１０−１Ｊは、システム記憶装置１００とクラスタ３００との間における接続障害、即ちエラー情報を接続状態受信回路３１０−１Ｂに送信する。
【００６０】
接続状態受信回路３１０−１Ｂは、コマンド解析回路３１０−１Ｊから送信されたシステム記憶装置１００とクラスタ３００との間の接続障害と、システム記憶装置２００に対応するインタフェース回路３１０−２から送信されたシステム記憶装置２００とクラスタ３００との間の接続情報とを受信する。接続状態受信回路３１０−１Ｂは、システム記憶装置１００から接続障害が通知され、且つインタフェース回路３１０−２から送信されているシステム記憶装置２００から接続情報が通知されている場合、システム記憶装置１００とシステム記憶装置２００は同一のデータを保持していないと判断する。システム記憶装置１００とシステム記憶装置２００が同一のデータを保持していない場合、システム記憶装置１００とシステム記憶装置２００との等価性は保証されていない。即ち、システム記憶装置１００は、システム記憶装置２００との等価性が保証されていないと判断する。システム記憶装置１００とシステム記憶装置２００との等価性が保証されていない場合、接続状態受信回路３１０−１Ｂは、システム記憶装置１００の接続障害検出信号をコマンド保持レジスタ回路３１０−１Ｍに送信する。
【００６１】
障害検出通知回路３１０−１Ａは、誤り訂正符号検査回路３１０−１Ｉから送信された、ＲＡＭ３１０-１Ｈから読み出したデータの２ビットエラー及びパケット間隔監視回路３１０−１Ｆによって検出されたパケット通信間隔のタイムアウトエラーを受信する。障害検出通知回路３１０−１Ａは、２ビットエラー又はタイムアウトエラーを受信した場合、コマンド生成発行回路３１０−１Ｃにコマンドを送信する。コマンド生成発行回路３１０−１Ｃに送信されるコマンドは、システム記憶装置１００とクラスタ３００との間の接続障害を含む。送信されるコマンドは、障害検出通知回路３１０−１Ａに保持される。
【００６２】
コマンド生成回路３１０−１Ｋは、各システム記憶装置との間のデータ転送及びパケット転送に必要なコマンドを生成する。コマンド生成回路３１０−１Ｋにより生成された各種コマンドは、コマンド保持レジスタ回路３１０−１Ｍに送信され、コマンド保持レジスタ回路３１０−１Ｍに保持される。
【００６３】
コマンド保持レジスタ回路３１０−１Ｍは、接続状態受信回路３１０−１Ｂにより送信された切り離しコマンドを保持する。コマンド保持レジスタ回路３１０−１Ｍは、このときに、切り離しの対象となるシステム記憶装置の情報も保持する。コマンド保持レジスタ回路３１０−１Ｍは、障害検出通知回路３１０−１Ａから受信したシステム記憶装置１００とクラスタ３００との間の接続障害を含むコマンドを保持する。コマンド保持レジスタ回路３１０−１Ｍは、システム記憶転送部３２０から受信したデータを保持する。コマンド保持レジスタ回路３１０−１Ｍは、コマンド生成発行回路３１０−１Ｃからのリセット指示によりコマンド生成された保持レジスタをリセットする。コマンド保持レジスタ回路３１０−１Ｍは、保持している各コマンド及び指示をコマンド優先選択回路３１０−１Ｌに送信する。
【００６４】
コマンド優先選択回路３１０−１Ｌは、コマンド保持レジスタ回路３１０−１Ｍにより保持されているコマンドのうち、どのコマンドを優先するか選択する。コマンド優先選択回路３１０−１Ｌは、例えば、コマンド保持レジスタ回路３１０−１Ｍにより保持された、システム記憶装置を切り離すためのコマンドを選択する。コマンド優先選択回路３１０−１Ｌは、選択されたコマンド生成発行回路３１０−１Ｃに送信する。
【００６５】
コマンド生成発行回路３１０−１Ｃは、コマンド優先選択回路３１０−１Ｌにより選択されたコマンドを実行する際に必要なデータを選択し、パケット生成回路３１０−１Ｎに送信する。システム記憶装置を切り離すためのコマンドをコマンド優先選択回路３１０−１Ｌが選択した場合、コマンド生成発行回路３１０−１Ｃは、コマンド優先選択回路３１０−１Ｌにより選択されたシステム記憶装置を切り離すためのコマンドを実行する際に必要なデータを選択し、パケット生成回路３１０−１Ｎに送信する。また、コマンド生成発行回路３１０−１Ｃは、システム記憶装置を切り離す際に必要なデータが生成された後、コマンド保持レジスタ回路３１０−１Ｍのコマンドの保持をリセットする命令をコマンド保持レジスタ回路３１０−１Ｍに送信する。
【００６６】
パケット生成回路３１０−１Ｎは、コマンド生成発行回路３１０−１Ｃから送信されたシステム記憶装置を切り離すためのデータに基づきパケットを生成する。パケット生成回路３１０−１Ｎは、生成したパケットをフリップフロップ３１０−１Ｏに送信する。
【００６７】
フリップフロップ３１０−１Ｏは、パケット生成回路３１０−１Ｎからパケットを受信する。パケットは、システム記憶装置１００及びクラスタ３００間を切り離すための切り離し情報を含む。フリップフロップ３１０−１Ｏは、システム記憶装置１００に対し、システム記憶装置１００及びクラスタ３００間を切り離すためのパケットを送信する。
【００６８】
インタフェース回路３１０−２は、システム記憶装置２００とパケットの送受信を行う。インタフェース回路３１０−２は、インタフェース回路３１０−１と同一の構成を備える。
【００６９】
図４は、図３に係るインタフェース回路３１０−１のうち、破線で示した箇所Ｃのインタフェース回路３１０−１の構成図を示す図である。図４は、インタフェース回路３１０−１のうち、コマンド保持レジスタ回路３１０−１Ｍ、コマンド優先選択回路３１０−１Ｌ、コマンド生成発行回路３１０−１Ｃ及びパケット生成回路３１０−１Ｎを示す。なお、図４に示すインタフェース回路３１０−１において、図３で説明した構成と同様の構成には同様の符号を付し、説明を省略する。
【００７０】
コマンド保持レジスタ回路３１０−１Ｍは、切離コマンド生成フラグ３１０−１Ｍ１及び切離選択レジスタ郡３１０−１Ｍ２を備える。
【００７１】
切離コマンド生成フラグ３１０−１Ｍ１は、接続状態受信回路３１０−１Ｂから接続障害検出信号を受信すると、システム記憶装置をクラスタ３００及び４００から切離すためのコマンドを生成する。切離コマンド生成フラグ３１０−１Ｍ１は、生成したコマンドをコマンド優先選択回路３１０−１Ｌに送信する。
【００７２】
切離選択レジスタ郡３１０−１Ｍ２は、接続状態受信回路３１０−１Ｂから接続障害検出信号を受信すると、クラスタ３００からの切り離しの対象となるシステム記憶装置を選択するための選択コマンドを生成する。切離選択レジスタ郡３１０−１Ｍ２は、生成した選択コマンドをコマンド生成発行回路３１０−１Ｃに送信する。
【００７３】
コマンド生成発行回路３１０−１Ｃは、タイミングシフトレジスタ３１０−１Ｃ１〜３１０−１Ｃ４を備える。
【００７４】
タイミングシフトレジスタ３１０−１Ｃ１〜３１０−１Ｃ４は、例えばフリップフロップを備える。タイミングシフトレジスタ３１０−１Ｃ１〜３１０−１Ｃ４は、コマンド優先選択回路３１０−１Ｌから、切り離しの対象となるシステム記憶装置を切離すために必要なコマンドを受信する。タイミングシフトレジスタ３１０−１Ｃ１〜３１０−１Ｃ４は、例えば切離の対象となるシステム記憶装置を選択するために必要なデータ及びシステム記憶装置の切離箇所を選択するために必要なデータを生成する。
【００７５】
コマンド生成発行回路３１０−１Ｃは、データ生成後、コマンド保持レジスタ回路３１０−１Ｍに対して保持しているコマンドのリセットを指示するリセット命令を送信する。コマンド生成発行回路３１０−１Ｃは、システム記憶装置を切り離すためのコマンドを実行する際に必要なデータをタイミングシフトレジスタ３１０−１Ｃ１〜３１０−１Ｃ４から選択する。データの選択は、タイミングシフトレジスタ３１０−１Ｃ１〜３１０−１Ｃ４により任意のタイミングで行われる。コマンド生成発行回路３１０−１Ｃは、選択されたデータをパケット生成回路３１０−１Ｎに送信する。
【００７６】
図５及び図６は、実施例１に係るマルチクラスタシステム１０００の動作例を示すシーケンス図である。図５に示す処理は図６のＡに続いている。図５及び図６に示す処理は、システム記憶装置１００の障害検出通知回路１１０Ａ１で、システム記憶装置１００とクラスタ３００との間の接続障害が検出された際の処理を示す図である。なお、図５および図６でも、システム記憶装置１００がマスタとして動作し、システム記憶装置２００がスレーブとして動作するものとする。
【００７７】
図５に示すように、システム記憶装置１００は、障害検出通知回路１１０Ａ１でクラスタ３００との間の接続障害を検出する（ＯＰ１）。
【００７８】
クラスタ３００との間の接続状態検出に応じて、システム記憶装置１００は、システム構成制御回路１２０によりクラスタ３００に対応する接続状態フラグをオフにする（ＯＰ２）。
【００７９】
システム記憶装置１００は、優先制御回路１３０により、クラスタ３００及びクラスタ４００に対して、システム記憶装置１００とクラスタ３００との間に接続障害が発生したことを示す接続障害情報を含む接続情報を通知する（ＯＰ３）。以下は、システム記憶装置１００とクラスタ４００との間の処理を示す。
一方、システム記憶装置２００も、接続されているクラスタ３００、クラスタ４００の双方に対し接続情報を通知する（ＯＰ４）。接続されているクラスタ３００、４００との間の接続障害をシステム記憶装置２００が検出していない場合には、システム記憶装置２００から各クラスタ３００、４００に通知される接続情報には、接続障害を示す情報は含まれていない。
【００８０】
クラスタ４００は、システム記憶装置１００からの接続情報と、システム記憶装置２００から接続情報とを、インタフェース回路４１０を介して受信する。インタフェース回路４１０の接続状態受信回路４１０Ｂは、システム記憶装置１００からの接続情報と、システム記憶装置２００からの接続情報を参照し、いずれかのシステム記憶装置から受信した接続情報に接続障害情報が含まれているか否かを判断する。接続状態受信回路４１０Ｂはまた、いずれかのシステム記憶装置から受信した接続情報に接続障害情報が含まれていた場合、他方のシステム記憶装置から受信した接続情報を参照して、他方のシステム記憶装置とクラスタ４００との論理的な接続状態を判断する（ＯＰ１１）。ＯＰ１１において、システム記憶装置１００からの接続情報に接続障害情報が含まれ、且つシステム記憶装置２００の接続情報からクラスタ４００とシステム記憶装置２００とが論理的に接続されていると判断され、クラスタ４００は次にＯＰ１２の処理を行う。
【００８１】
クラスタ４００は、コマンド生成発行回路４１０Ｃを用いて、システム記憶装置１００に対する切離し命令を生成する（ＯＰ１２）。
【００８２】
クラスタ４００は、コマンド生成発行回路４１０Ｃを用いて、生成した切り離し命令をシステム記憶装置１００に対して発行する（ＯＰ１３）。
【００８３】
システム記憶装置１００の障害検出通知回路１１０Ａ２は、クラスタ４００からシステム記憶装置の切離し命令を受信する。
クラスタ３００も、クラスタ４００と同様に各システム記憶装置からの接続情報に基づいて、システム記憶装置１００に対する切り離し命令を生成するが、クラスタ３００とシステム記憶装置１００との間には接続障害が生じているため、システム記憶装置１００はクラスタ３００からの切り離し命令を受けることは出来ない。
クラスタ４００から切り離し命令を受信したシステム記憶装置１００は、障害検出通知回路１１０Ａ１を介して、接続されている全クラスタに対応する接続状態フラグをオフにする。この例では、障害検出通知回路１１０Ａ１は接続状態フラグ１２０Ａ１及び接続状態フラグ１２０Ａ２をオフにする（ＯＰ１４）。
【００８４】
システム記憶装置１００は、クラスタ３００及びクラスタ４００をシステム記憶装置１００から論理的に切り離す（ＯＰ１５）。
【００８５】
なお、図６に係るＯＰ１１において、システム記憶装置１００及びシステム記憶装置２００の接続情報に基づいて、システム記憶装置２００がクラスタ４００に対して論理的に接続されていないと判断されると、クラスタ４００は、システム記憶装置１００から受信した障害通知を無視する（ＯＰ１６）。
【００８６】
図７から図９は、実施例１に係るマルチクラスタシステム１０００の通信命令処理の一例を示すタイムチャートである。図７から図９に示す横軸は時刻ｔを示す。横軸における１目盛は１クロックを示す。図７から図９に係る処理は、システム記憶装置１００とクラスタ３００との間の接続障害を検出する処理を示す。
【００８７】
図７は、クラスタ３００のインタフェース回路３１０における通信命令処理の一例を示すタイムチャートである。
【００８８】
図７に示すように、障害検出通知回路３１０−１Ａは、システム記憶装置１００とクラスタ３００間の接続障害を検出する（Ｔ１）。
【００８９】
コマンド生成発行回路３１０−１Ｃは、障害通知コマンド生成フラグの生成を開始する（Ｔ２）。
【００９０】
コマンド生成発行回路３１０−１Ｃは、障害通知コマンド生成フラグの生成を開始する（Ｔ３）。コマンド生成発行回路３１０−１Ｃは、コマンド保持レジスタ回路３１０−１Ｍに対してパケット生成回路３１０−１Ｎに対してコマンドを送信した後、コマンド保持のリセット命令を送信する（Ｔ３’）。障害通知コマンド生成フラグが生成される間、コマンド生成発行回路３１０−１Ｃにおいて他のコマンドは選択されない。
【００９１】
タイミングシフトレジスタ３１０−１Ｃ１〜３１０−１Ｃ７は、選択されたシステム記憶装置１００を切離すために必要なデータのみパケット生成回路３１０−１Ｎに送信する（Ｔ４）。
【００９２】
パケット生成回路３１０−１Ｎは、コマンド生成発行回路３１０−１Ｃからデータを受信しパケット化する（Ｔ５）。
【００９３】
パケット生成回路３１０−１Ｎは、パケット化されたデータを出力する（Ｔ６）。パケット生成回路３１０−１Ｎは、入力データに対してパケット転送のために必要なデータを追加してシステム記憶装置１００に送信する。
【００９４】
図８は、システム記憶装置１００の障害検出通知回路１１０Ａ１及び障害検出通知回路１１０Ａ２における通信命令処理の一例を示すタイムチャートである。図８は、クラスタ３００の障害検出通知回路３１０Ａ１から、システム記憶装置１００の障害検出通知回路１１０Ａ２に対して障害検出情報を含むデータの受信を開始する際の処理である。なお、システム記憶装置１００の障害検出通知回路１１０Ａ１はクラスタ３００の障害検出通知回路３１０Ａ１に対応している。システム記憶装置１００の障害検出通知回路１１０Ａ２はクラスタ４００の障害検出通知回路４１０Ａ２に対応している。
【００９５】
障害検出通知回路１１０Ａ１は、クラスタ３００から受信した入力データのコマンド解析を行う（Ｔ１１）。入力データは、クラスタ３００の障害検出通知回路３１０Ａ１とシステム記憶装置１００の障害検出通知回路１１０Ａ１との間の障害検出情報を含む。
【００９６】
障害検出通知回路１１０Ａ１は、コマンド解析を行った後、システム記憶装置１００の他の障害検出通知回路１１０Ａ２にインタフェース障害通知回路１３０Ａを経由して接続障害を送信する（Ｔ１２）。
【００９７】
障害検出通知回路１１０Ａ２は、１１０Ａ１から接続障害を受信した後、システム記憶装置１００とクラスタ３００との間で接続障害が検出されたことをクラスタ４００に送信する（Ｔ１３）。
【００９８】
図９は、クラスタ４００のインタフェース回路４１０における通信命令処理の一例を示すタイムチャートである。図９は、システム記憶装置１００の障害検出通知回路１１０Ａ２から、クラスタ４００の障害検出通知回路４１０Ａ２に対する障害検出情報を含むデータを受信する際の処理である。なお、クラスタ４００の障害検出通知回路４１０Ａ１は、システム記憶装置１００の障害検出通知回路１１０Ａ２に対応している。なお、クラスタ４００のインタフェース回路４１０の構成は、図２〜図４で説明したクラスタ３００のインタフェース回路３１０の構成と同じであるため、説明を省略する。
【００９９】
図９に示すように、コマンド解析回路４１０−１Ｊは、システム記憶装置１００から受信した入力データの解析を行う（Ｔ２１）。入力データは、クラスタ３００の障害検出通知回路３１０Ａ１とシステム記憶装置１００の障害検出通知回路１１０Ａ１との間の障害検出情報を含む。
【０１００】
コマンド解析回路４１０−１Ｊは、システム記憶装置１００からデータを受信する。コマンド解析回路４１０−１Ｊは、システム記憶装置１００とクラスタ３００との間の接続障害を解析し受信する（Ｔ２２）。
【０１０１】
接続状態受信回路４１０−１Ｂは、システム記憶装置２００とクラスタ４００との間の接続情報を障害検出通知回路４１０Ａ２から受信する（Ｔ２３）。
【０１０２】
接続状態受信回路４１０−１Ｂは、コマンド解析回路４１０−１Ｊから送信されたシステム記憶装置１００及びクラスタ３００間の接続障害を含む接続情報と、障害検出通知回路４１０Ａ２から通知されたシステム記憶装置２００とクラスタ４００との間の接続情報を受信する。各々の接続情報に基づいて、システム記憶装置１００及びシステム記憶装置２００との等価性が保証されていないと判断された場合、接続状態受信回路４１０−１Ｂは、コマンド保持レジスタ回路４１０−１Ｍに対してシステム記憶装置１００の接続障害を含む接続情報を送信する（Ｔ２４）。
【０１０３】
コマンド生成発行回路４１０−１Ｃは、接続状態受信回路４１０−１Ｂから受信した接続情報に基づいて、障害通知コマンド生成フラグをセットする（Ｔ２５）。
【０１０４】
コマンド生成発行回路４１０−１Ｃはまた、障害通知コマンド生成フラグをセットする（Ｔ２６）。コマンド生成発行回路４１０−１Ｃは、コマンド保持レジスタ回路４１０−１Ｍに対してパケット生成回路４１０−１Ｎに対してコマンドを送信した後、コマンド保持のリセット命令を送信する（Ｔ２６’）。障害通知コマンド生成フラグがセットされている間、コマンド生成発行回路４１０−１Ｃにおいて他のコマンドは選択されない。
【０１０５】
タイミングシフトレジスタ４１０−１Ｃ１〜４１０−１Ｃ７は、選択されたシステム記憶装置１００を切離すために必要なデータのみパケット生成回路４１０−１Ｎに送信する（Ｔ２７）。
【０１０６】
パケット生成回路４１０−１Ｎは、コマンド生成発行回路４１０−１Ｃからデータを受信しパケット化する（Ｔ２８）。
【０１０７】
パケット生成回路４１０−１Ｎは、パケット化されたデータが出力される（Ｔ２８）。パケット生成回路４１０−１Ｎは、入力データに対してパケット転送のために必要なデータを追加してシステム記憶装置１００に送信する。システム記憶装置１００は、クラスタ３００及び４００から切り離される。
【０１０８】
実施例１におけるマルチクラスタシステム１０００及びマルチクラスタシステム１０００の制御方法によれば、クラスタ４００はシステム記憶装置１００により通知された接続障害を含む接続情報と、システム記憶装置２００により通知された接続情報とに基づいて、システム記憶装置１００を切り離すことができる。そのため、クラスタ３００及びクラスタ４００のシステム記憶装置２００に対する接続状態を維持して接続障害が検出されたシステム記憶装置１００の切り離しを実施することができる。更に、クラスタ３００の切り離しを防止して処理を実施するクラスタ数の減少を抑制できるため、マルチクラスタシステム１０００全体の処理の遅延を抑制できる。
【０１０９】
（実施例２）
図１０では、実施例２に係るマルチクラスタシステム１０００及びマルチクラスタシステム１０００の制御方法が説明される。実施例２に係るマルチクラスタシステム１０００の構成は、実施例１に係るマルチクラスタシステム１０００の構成と同一であるため説明を省略する。
【０１１０】
図１０は、実施例２に係るマルチクラスタシステム１０００の動作例を示すシーケンス図である。図１０に示す処理は、クラスタ３００の障害検出通知回路３１０Ａ１で、システム記憶装置１００とクラスタ３００との間の接続障害が検出された際の処理を示す図である。
【０１１１】
図１０に示すように、クラスタ３００は障害検出通知回路３１０Ａ１で、システム記憶装置１００とクラスタ３００との間の接続障害を検出したものとする（ＯＰ２１）。
【０１１２】
ＯＰ２１による接続障害検出により、クラスタ３００は、障害検出通知回路３１０Ａ１からシステム記憶装置１００の障害検出通知回路１１０Ａ１に対して、システム記憶装置１００とクラスタ３００との間に接続障害が生じたことを示す接続障害情報を含む接続情報を通知する（ＯＰ２２）。
【０１１３】
クラスタ３００からの接続情報を受信したシステム記憶装置１００は、優先制御回路１３０により、システム記憶装置１００とクラスタ３００との間に接続障害が発生したことを示す情報を含む接続情報を、クラスタ４００に対して通知する（ＯＰ２３）。
一方、システム記憶装置２００も、接続されているクラスタ３００、クラスタ４００の双方に対し接続情報を通知する（ＯＰ２４）。接続されているクラスタ３００、４００との間の接続障害をシステム記憶装置２００が検出していない場合には、システム記憶装置２００から各クラスタ３００、４００に通知される接続情報には、接続障害を示す情報は含まれていない。
【０１１４】
クラスタ４００は、ＯＰ２３、ＯＰ２４の処理によってシステム記憶装置１００、２００から接続情報を受信した後、実施例１のＯＰ１１〜ＯＰ１５と同様の処理を実行する（ＯＰ２５）。即ち、クラスタ４００によるシステム記憶装置１００の切り離し処理が行われる。
【０１１５】
実施例２におけるマルチクラスタシステム１０００及びマルチクラスタシステム１０００の制御方法によれば、クラスタ３００により通知されたシステム記憶装置１００−クラスタ３００間の接続障害を含む接続情報と、クラスタ４００のインタフェース回路４１０から通知された接続情報とに基づいて、システム記憶装置１００を切り離すことができる。
【０１１６】
なお、実施例１及び実施例２ではシステム記憶装置１００及び２００、クラスタ３００及び４００を有するマルチクラスタシステムについて説明した。しかし、マルチクラスタシステムに係るシステム記憶装置及びクラスタの数は２台に限定されない。開示の技術は、２台以上である任意の数の複数のシステム記憶装置及びクラスタを有するマルチクラスタシステムに適用することができる。
【産業上の利用可能性】
【０１１７】
開示の技術によれば、クラスタ４００は接続されている複数のシステム記憶装置１００、２００のそれぞれから接続情報を受信し、受信した各システム記憶装置１００、２００からの接続情報に基づいて、接続障害が検出されたシステム記憶装置１００を切り離す処理を実行することができる。そのため、各クラスタ３００、４００の接続障害が検出されていないシステム記憶装置２００に対する接続状態を維持して接続障害が検出されたシステム記憶装置の切り離しを実施することができる。更に、クラスタ３００の切り離しを防止して処理を実施するクラスタ数の減少を抑制できるため、処理を実施するクラスタ数の減少を抑制できるため、マルチクラスタシステム１０００全体の処理の遅延を抑制できる。
【符号の説明】
【０１１８】
１１、１２、２１、２２  接続線
１００、２００  システム記憶装置
１１０、２１０，３１０、４１０  インタフェース回路
１１０Ａ１、１１０Ａ２、２１０Ａ１、２１０Ａ２、３１０Ａ１、３１０Ａ２、４１０Ａ１、４１０Ａ２  障害検出通知回路
１２０，２２０  システム構成制御回路
１２０Ａ１、１２０Ａ２、２２０Ａ１、２２０Ａ２  接続状態フラグ
１３０、２３０  優先制御回路
１３０Ａ、２３０Ａ  インタフェース障害通知回路
３００、４００  クラスタ
３１０Ｂ、４１０Ｂ  接続状態受信回路
３１０Ｃ、４１０Ｃ  コマンド生成発行回路
３２０、４２０  システム記憶転送部
３４０、４４０  システムコントローラ
１０００  マルチクラスタシステム
【図１】
0005488693.tif 000002
【図２】
0005488693.tif 000003
【図３】
0005488693.tif 000004
【図４】
0005488693.tif 000005
【図５】
0005488693.tif 000006
【図６】
0005488693.tif 000007
【図７】
0005488693.tif 000008
【図８】
0005488693.tif 000009
【図９】
0005488693.tif 000010
【図１０】
0005488693.tif 000011