以下、本発明の実施の形態を図面を参照して説明する。
(第1の実施の形態)
図1は、本発明の第1の実施の形態の計算機システムの構成のブロック図である。
計算機システムは、ホスト計算機10、ストレージシステム20、管理サーバ30及びファイバチャネルスイッチ40を備える。
ホスト計算機10とストレージシステム20とは、SANによって接続される。SANは、一つ以上のファイバチャネルスイッチ40によって構成される。
なお、本実施の形態では、ストレージシステム20によって提供される論理ユニット(LU)25とホスト計算機10とは、複数のパスによって接続される。パスは、ホスト計算機10からLU25へのアクセス経路である。具体的には、パスは、ホスト計算機とストレージシステムとの通信経路における物理パスの組み合わせに応じて、冗長化された論理的なパスである。
また、ホスト計算機10と管理サーバ30とは、IPネットワーク50によって接続される。
なお、ホスト計算機10は、二つが図示されているが、計算機システムにいくつ備えられてもよい。同様に、ストレージシステム20は、二つが図示されているが、計算機システムにいくつ備えられてもよい。
ストレージシステム20は、ディスクコントローラ27及び物理ディスクを備える。
ディスクコントローラ27は、物理ディスクに対してデータを読み書きする。また、ディスクコントローラ27は、物理ディスクの記憶領域を、論理ユニット(LU)25としてホスト計算機10に提供する。
また、ディスクコントローラ27は、一つ以上のチャネルアダプタ(CHA)21を備える。なお、本説明図では、一つのディスクコントローラ27が、CHA21を二つ備えるが、いくつ備えてもよい。
CHA21は、ホスト計算機10とのデータ転送を制御する。また、CHA21は、CPU22、メモリ23及びCHAポート24を備える。CPU22は、メモリ23に記憶されるプログラムを実行することによって各種処理を行う。メモリ23は、CPU22によって実行されるプログラム及びCPU22によって必要とされる情報等を記憶する。
CHAポート24は、SANに接続されるインタフェースである。なお、本説明図では、一つのCHA21が、CHAポート24を二つ備えているが、いくつ備えていてもよい。
ホスト計算機10は、ストレージシステム20に対してデータを読み書きする。また、ホスト計算機10は、CPU11、メモリ12、ネットワークインタフェース13及びホストバスアダプタ(HBA)14を備える。なお、本説明図では、一つのホスト計算機10が、HBA14を二つ備えるが、いくつ備えてもよい。
ネットワークインタフェース13は、IPネットワーク50に接続されるインタフェースである。HBA14は、SANに接続されるインタフェースである。
CPU11は、メモリ12に記憶されるプログラムを実行することによって各種処理を行う。
メモリ12は、CPU11によって実行されるプログラム及びCPU11によって必要とされる情報等を記憶する。具体的には、メモリ12は、パス接続情報テーブル121、パス障害情報テーブル122、障害原因箇所テーブル123、ロードバランスポイント切替テーブル124、パス状態変化確認テーブル125及びデバイスリンクマネージャ126を記憶する。
パス接続情報テーブル121は、パスの経路を管理する。なお、パス接続情報テーブル121については、図2で詳細を説明する。
パス障害情報テーブル122は、パスの現在の状況を管理する。更に、パス障害情報テーブル122は、パスに発生した過去の障害に関する情報を管理する。なお、パス障害情報テーブル122については、図3で詳細を説明する。
障害原因箇所テーブル123は、ホスト計算機10によって推測された障害原因箇所を管理する。障害原因箇所は、パスに発生した障害の原因となっている箇所である。具体的には、ホスト計算機10のHBA14、ストレージシステム20のCHA21、ストレージシステム20のCHA21に備わるCHAポート24、ストレージシステム20によって提供されるLU25又は物理パス等が、障害原因箇所として推測される。なお、障害原因箇所テーブル123については、図4で詳細を説明する。
ロードバランスポイント切替テーブル124は、I/O要求の送信に使用されるパスを管理する。よって、ホスト計算機10は、ロードバランスポイント切替テーブル124を参照して、I/O要求の送信で使用されるパスを選択する。なお、ロードバランスポイント切替テーブル124については、図5で詳細を説明する。
パス状態変化確認テーブル125は、障害検知処理の前後のパスの状態を管理する。なお、パス情報変化確認テーブル125については、図6で詳細を説明する。
デバイスリンクマネージャ126は、パスを管理するプログラムである。また、デバイスリンクマネージャ126は、ホスト計算機10とストレージシステム20とを接続する物理パスを冗長化することによって、パスを提供する。
また、デバイスリンクマネージャ126は、ロードバランス機能を備える。つまり、デバイスリンクマネージャ126は、I/O要求を異なるパスに振り分けることによって、パスの負荷を分散させる。
例えば、デバイスリンクマネージャ126は、所定の個数のI/O要求を一つのパスを用いて送信すると、次のパスを選択する。そして、デバイスリンクマネージャ126は、選択した次のパスを用いてI/O要求を送信する。また、デバイスリンクマネージャ126は、連続するブロックに対するI/O要求を、同一のパスを用いて送信してもよい。
また、デバイスリンクマネージャ126は、パスに発生した障害を検知すると、障害を検知したパスを閉塞(オフライン)する。これによって、デバイスリンクマネージャ126は、障害を検知したパスを用いてI/O要求を送信しない。なお、閉塞されていないパスの状態を、オンラインという。
また、デバイスリンクマネージャ126は、パスの障害検知処理(パスヘルスチェック)を行う。
具体的には、デバイスリンクマネージャ126は、状態を調べたいパスを用いて、ストレージシステム20に障害検知信号(導通確認信号)を送信する。すると、ストレージシステム20は、当該パスの状態をデバイスリンクマネージャ126に送信する。これによって、デバイスリンクマネージャ126は、パスの状態を調べることができる。なお、パスの状態は、正常又は障害のいずれかである。
ファイバチャネルスイッチ40は、SANを構成する。ファイバチャネルスイッチ40は、ホスト計算機10とストレージシステム20との通信を制御する。また、ファイバチャネルスイッチ40は、複数のポート41を備える。ポート41は、ホスト計算機10に備わるHBA14又はストレージシステム20に備わるCHAポート24と接続する。
管理サーバ30は、CPU31、メモリ32及びネットワークインタフェース33を備える。
ネットワークインタフェース33は、IPネットワーク50に接続されるインタフェースである。
CPU31は、メモリ32に記憶されるプログラムを実行することによって各種処理を行う。
メモリ32は、CPU31によって実行されるプログラム及びCPU31によって必要とされる情報等を記憶する。具体的には、メモリ32は、LU接続先ホストテーブル321、CHA接続先ホストテーブル322、CHAポート接続先ホストテーブル323、全ホスト障害原因箇所テーブル324及びホストマネージャ325を記憶する。
LU接続先ホストテーブル321は、ストレージシステム20によって提供されるLU25と当該LU25にアクセス可能なホスト計算機10との対応を示す。なお、LU接続先ホストテーブル321については、図7で詳細を説明する。
CHA接続先ホストテーブル322は、ストレージシステム20に備わるCHA21と当該CHA21に接続されるホスト計算機10との対応を示す。なお、CHA接続先ホストテーブル322については、図8で詳細を説明する。
CHAポート接続先ホストテーブル323は、ストレージシステム20のCHA21に備わるCHAポート24と当該CHAポート24に接続されるホスト計算機10との対応を示す。なお、CHAポート接続先ホストテーブル323については、図9で詳細を説明する。
全ホスト障害原因箇所テーブル324は、すべてのホスト計算機10によって推測された障害原因箇所を管理する。なお、全ホスト障害原因管理テーブル324については、図10で詳細を説明する。
ホストマネージャ325は、ホスト計算機10とストレージシステム20の構成部位との接続に関する情報を管理するプログラムである。
図2は、本発明の第1の実施の形態のホスト計算機10に記憶されるパス接続情報テーブル121の構成図である。
パス接続情報テーブル121は、パス番号1211、HBA番号1212、CHA番号1213、CHAポート番号1214及びLU番号1215を含む。
パス番号1211は、ストレージシステム20によって提供されるLU25とホスト計算機10に備わるHBA14とを接続するパスの一意な識別子である。
HBA番号1212は、当該レコードのパス番号1211によって識別されるパスが経由するHBA14の一意な識別子である。CHA番号1213は、当該レコードのパス番号1211によって識別されるパスが経由するCHA21の一意な識別子である。CHAポート番号1214は、当該レコードのパス番号1211によって識別されるパスが経由するCHAポート24の一意な識別子である。LU番号1215は、当該レコードのパス番号1211によって識別されるパスが経由するLU25の一意な識別子である。
ホスト計算機10は、パス接続情報テーブル121を参照することによって、パスに発生した障害の原因となっている箇所を特定できる。
図3は、本発明の第1の実施の形態のホスト計算機10に記憶されるパス障害情報テーブル122の構成図である。
パス障害情報テーブル122は、パス番号1221、稼動状況1222、障害回数1223、前回障害発生日時1224及び障害第1発見1225を含む。
パス番号1221は、ストレージシステム20によって提供されるLU25とホスト計算機10に備わるHBA14とを接続するパスの一意な識別子である。
稼動状況1222は、当該レコードのパス番号1221によって識別されるパスの状態を示す。具体的には、稼動状況1222は、当該レコードのパス番号1221によって識別されるパスが閉塞されているか否かを示す。当該レコードのパス番号1221によって識別されるパスが閉塞されている場合、稼動状況1222には、「オフライン」が格納される。一方、当該レコードのパス番号1221によって識別されるパスが閉塞されていない場合、稼動状況1222には、「オンライン」が格納される。
障害回数1223は、当該レコードのパス番号1221によって識別されるパスに障害が発生した回数である。前回障害発生日時1224は、当該レコードのパス番号1221によって識別されるパスの前回の障害が発生した日時である。
障害第1発見1225は、当該レコードのパス番号1221によって識別されるパスが障害第1発見パスであるか否かを示す。具体的には、当該レコードのパス番号1221によって識別されるパスが障害第1発見パスの場合、障害第1発見1225にはチェックが格納される。なお、障害第1発見パスは、同一の障害原因箇所に起因するパスの障害が最初に検知されたパスである。つまり、ホスト計算機10は、障害対応処理(図12)において、一番最初にオフラインにしたパスを障害第1発見パスとする。
図4は、本発明の第1の実施の形態のホスト計算機10に記憶される障害原因箇所テーブル123の構成図である。
障害原因箇所テーブル123は、障害原因箇所1231及び障害発生日時1232を含む。
障害原因箇所1231は、パスの障害の原因として推測された箇所である。具体的には、障害原因箇所1231には、ホスト計算機10のHBA14、ストレージシステム20のCHA21、ストレージシステム20のCHA21に備わるCHAポート24、ストレージシステム20によって提供されるLU25、ファイバチャネルスイッチ40又は物理パスの識別子が格納される。
障害発生日時1232は、当該レコードに対応する障害が発生した日時である。
図5は、本発明の第1の実施の形態のホスト計算機10に記憶されるロードバランスポイント切替テーブル124の構成図である。
ロードバランスポイント切替テーブル124は、LU番号1241、ストレージ名1242、ロードバランスポイント1243、現在I/O回数1244及び切替I/O回数閾値1245を含む。
LU番号1241は、ストレージシステム20によって提供されるLU25の一意な識別子である。ストレージ名1242は、当該レコードのLU番号1241によって識別されるLU25を提供するストレージシステム20の一意な識別子である。
ロードバランスポイント1243は、ホスト計算機10が当該レコードのLU番号1241によって識別されるLU25にI/O要求を送信するときに使用するパスの一意な識別子である。
ホスト計算機10は、ラウンドロビン方式で順番にパスを選択する。例えば、ホスト計算機10は、パス番号が小さい順にパスを選択する。そして、ホスト計算機10は、パス番号が最大のパスを選択した後は、パス番号が最少のパスを選択する。具体的には、ホスト計算機10は、パス番号「1」によって識別されるパス、パス番号「2」によって識別されるパスというように、順番にパスを選択する。この場合、ホスト計算機10は、一つのI/O要求を送信するごとにパスを選択してもよいし、所定の個数のI/O要求を送信するごとにパスを選択してもよい。
ホスト計算機10は、選択したパスの識別子を、ロードバランスポイント切替テーブル124のロードバランスポイント1243に格納する。これによって、ホスト計算機10は、ラウンドロビン方式で選択されたパスを用いて、I/O要求を送信できる。
現在I/O回数1244は、ホスト計算機10が当該レコードのロードバランスポイント1243によって識別されるパスを使用してI/O要求を送信した回数である。
切替I/O回数閾値1245は、ホスト計算機10がパスの切り替えを判断するための閾値である。つまり、現在I/O回数1244が切替I/O回数閾値1245に達すると、ホスト計算機10は、I/O要求の送信に用いるパスを、ラウンドロビン方式で切り替える。
図6は、本発明の第1の実施の形態のホスト計算機10に記憶されるパス状態変化確認テーブル125の構成図である。
パス状態変化確認テーブル125は、パス番号1251、障害検知前状態1252及び障害検知後状態1253を含む。
パス番号1251は、ストレージシステム20によって提供されるLU25とホスト計算機10に備わるHBA14とを接続するパスの一意な識別子である。
障害検知前状態1252は、障害検知処理(パスヘルスチェック)の前における、当該レコードのパス番号1251によって識別されるパスの状態を示す。パスの状態は、オンライン又はオフラインのいずれかである。障害検知後状態1253は、障害検知処理(パスヘルスチェック)の後における、当該レコードのパス番号1251によって識別されるパスの状態を示す。
図7は、本発明の第1の実施の形態の管理サーバ30に記憶されるLU接続先ホストテーブル321の構成図である。
LU接続先ホストテーブル321は、LU番号3211及びホスト名3212を含む。
LU番号3211は、ストレージシステム20によって提供されるLU25の一意な識別子である。ホスト名3212は、当該レコードのLU番号3211によって識別されるLU20にアクセス可能なホスト計算機10の一意な識別子である。
図8は、本発明の第1の実施の形態の管理サーバ30に記憶されるCHA接続先ホストテーブル322の構成図である。
CHA接続先ホストテーブル322は、CHA番号3221及びホスト名3222を含む。
CHA番号3221は、ストレージシステム20に備わるCHA21の一意な識別子である。ホスト名3222は、当該レコードのCHA番号3221によって識別されるCHA21に接続されるホスト計算機10の一意な識別子である。
図9は、本発明の第1の実施の形態の管理サーバ30に記憶されるCHAポート接続先ホストテーブル323の構成図である。
CHAポート接続先ホストテーブル323は、CHAポート番号3231及びホスト名3232を含む。
CHAポート番号3231は、ストレージシステム20のCHA21に備わるCHAポート24の一意な識別子である。ホスト名3232は、当該レコードのCHAポート番号3231によって識別されるCHAポート24に接続されるホスト計算機10の一意な識別子である。
図10は、本発明の第1の実施の形態の管理サーバ30に記憶される全ホスト障害原因箇所テーブル324の構成図である。
全ホスト障害原因箇所テーブル324は、障害原因箇所3241、情報元ホスト名3242及び障害発生日時3243を含む。
障害原因箇所3241は、パスに発生した障害の原因として推測された箇所である。具体的には、障害原因箇所3241には、ホスト計算機10のHBA14、ストレージシステム20のCHA21、ストレージシステム20のCHA21に備わるCHAポート24、ストレージシステム20によって提供されるLU25、ファイバチャネルスイッチ40又は物理パスの識別子が格納される。
情報元ホスト名3242は、当該レコードの障害原因箇所3241を管理サーバ30に通知したホスト計算機10の一意な識別子である。障害発生日時3243は、当該レコードに対応する障害が発生した日時である。
以下、本発明の第1の実施の形態の計算機システムの処理を説明する。
図11は、本発明の第1の実施の形態のホスト計算機10によって実行されるロードバランス処理のフローチャートである。
アプリケーションからI/O要求の送信が要求されると、ホスト計算機10は、ロードバランス処理を実行する。
まず、ホスト計算機10は、当該I/O要求の対象となるLU25に接続しているパスを特定する。次に、ホスト計算機10は、特定したパスのうち、オンラインのパスが存在するか否かを判定する(S1001)。
具体的には、ホスト計算機10は、当該I/O要求の対象となるLU25の識別子とパス接続情報テーブル121のLU番号1215とが一致するレコードを、パス接続情報テーブル121からすべて選択する。次に、ホスト計算機10は、選択したレコードから、パス番号1211を抽出する。
次に、ホスト計算機10は、抽出したパス番号1211とパス障害情報テーブル122のパス番号1221とが一致するレコードを、パス障害情報テーブル122から選択する。次に、ホスト計算機10は、選択したレコードから、稼動状況1222を抽出する。
次に、ホスト計算機10は、抽出した稼動状況1222に「オンライン」が格納されているか否かを判定する。そして、抽出された稼動状況1222に「オンライン」が一つでも格納されていると、ホスト計算機10は、オンラインのパスが存在すると判定する。一方、抽出された稼動状況1222のすべてに「オフライン」が格納されていると、ホスト計算機10は、オンラインのパスが存在しないと判定する。
オンラインのパスが存在しない場合、ホスト計算機10は、I/O要求を送信できない。そのため、ホスト計算機10は、I/O要求の発行元であるアプリケーションに障害を通知する(S1006)。
次に、当該I/O要求の対象となるLU25にアクセスするパスが一つでもオンラインになるまで、ホスト計算機10は待機する(S1007)。当該I/O要求の対象となるLU25にアクセスするパスが一つでもオンラインになると、ホスト計算機10は、ステップS1001に戻る。そして、ホスト計算機10は、ロードバランス処理を再度行う。
一方、ステップS1001においてオンラインのパスが存在する場合、ホスト計算機10は、ロードバランスポイントに対応するパスを用いて、I/O要求を送信する(S1002)。これによって、ホスト計算機10は、ラウンドロビン方式で選択したパスを用いて、I/O要求を送信する。
具体的には、ホスト計算機10は、I/O要求の対象となるLU25を提供するストレージシステム20の識別子とロードバランスポイント切替テーブル124のストレージ名1242とが一致するレコードを、ロードバランスポイント切替テーブル124から選択する。次に、ホスト計算機10は、I/O要求の対象となるLU25の識別子とロードバランスポイント切替テーブル124のLU番号1241とが一致するレコードを、選択したレコードの中から選択する。次に、ホスト計算機10は、選択したレコードから、ロードバランスポイント1243を抽出する。
そして、ホスト計算機10は、抽出したロードバランスポイント1243によって識別されるパスを用いて、I/O要求を送信する。
次に、ホスト計算機10は、I/O要求の送信に使用されたパスに障害が発生したか否かを判定する(S1003)。
I/O要求の送信に使用されたパスに障害が発生すると、ホスト計算機10は、障害対応処理を行う(S1008)。なお、障害対応処理については、図12で詳細を説明する。
次に、ホスト計算機10は、障害対応処理において、代替パスを用いてI/O要求を送信できたか否かを判定する(S1009)。
代替パスを用いてI/O要求を送信できなかった場合、ホスト計算機10は、ステップS1001に戻る。そして、ホスト計算機10は、ロードバランス処理を再度行う。
一方、ステップS1009において代替パスを用いてI/O要求を送信できた場合、ホスト計算機10は、ステップS1004に進む。また、ステップS1003においてI/O要求を送信したパスに障害が発生しない場合にも、ホスト計算機10は、ステップS1004に進む。
次に、ホスト計算機10は、ロードバランスポイントを変更する必要があるか否かを判定する(S1004)。
具体的には、ホスト計算機10は、ロードバランスポイント切替テーブル124の現在I/O回数1244を増加させる。次に、ホスト計算機10は、増加された現在I/O回数1244がロードバランスポイント切替テーブル124の切替I/O回数閾値1245以上になったかどうかを判定する。
現在I/O回数1244が切替I/O回数閾値1245より小さい場合、ホスト計算機10は、ロードバランスポイントを変更する必要がないので、そのままステップS1005に進む。
一方、現在I/O回数1244が切替I/O回数閾値1245以上の場合、ホスト計算機10は、ロードバランスポイントを変更する必要がある。そのため、ホスト計算機10は、ロードバランスポイントの変更処理を行う(S1010)。なお、ロードバランスポイントの変更処理については、図15で詳細を説明する。
次に、ホスト計算機10は、アプリケーションから送信を要求されたI/O要求が残っているかどうかを判定する(S1005)。
I/O要求が残っている場合、ホスト計算機10は、残っているI/O要求を処理するために、ステップS1001に戻る。そして、ホスト計算機10は、残っているI/O要求に対して、ロードバランス処理を行う。
一方、I/O要求が残っていない場合、ホスト計算機10は、ロードバランス処理を終了する。
図12は、本発明の第1の実施の形態のホスト計算機10によって実行される障害対応処理のフローチャートである。
障害対応処理は、ロードバランス処理(図11)のステップS1008において実行される。
まず、ホスト計算機10は、障害が発生したパスを閉塞(オフライン)する。次に、ホスト計算機10は、パス障害情報テーブル122を更新する(S1011)。
具体的には、ホスト計算機10は、障害が発生したパスの識別子とパス障害情報テーブル122のパス番号1221とが一致するレコードを、パス障害情報テーブル122から選択する。
次に、ホスト計算機10は、選択したレコードの稼動状況1222に、「オフライン」を格納する。次に、ホスト計算機10は、選択したレコードの障害回数1223を増加させる。次に、ホスト計算機10は、選択したレコードの前回障害発生日時1224に、当該パスの障害を検知した日時を格納する。更に、ホスト計算機10は、選択したレコードの障害第1発見1225に、チェックを格納する。
次に、ホスト計算機10は、障害が発生したパスの識別子とロードバランスポイント切替テーブル124のロードバランスポイント1243とが一致するレコードを、ロードバランスポイント切替テーブル124から選択する。次に、ホスト計算機10は、選択したレコードの現在I/O回数1244に「0」を格納する(S1012)。
次に、ホスト計算機10は、障害が発生したパスと同じLU25にアクセス可能なパスを特定する(S1013)。
具体的には、ホスト計算機10は、障害が発生したパスの識別子とパス接続情報テーブル121のパス番号1211とが一致するレコードを、パス接続情報テーブル121から選択する。
次に、ホスト計算機10は、選択したレコードから、LU番号1215を抽出する。次に、ホスト計算機10は、抽出したLU番号1215とパス接続情報テーブル121のLU番号1215とが一致するレコードを、パス接続情報テーブル121からすべて選択する。次に、ホスト計算機10は、選択したレコードから、パス番号1211を抽出する。そして、ホスト計算機10は、抽出したパス番号1211によって識別されるパスを、障害が発生したパスと同じLU25にアクセス可能なパスとして特定する。
次に、ホスト計算機10は、代替パスの選択処理を行う(S1014)。これによって、ホスト計算機10は、特定したパスの中から、代替パスを選択する。なお、代替パスの選択処理については、図13で詳細を説明する。
次に、ホスト計算機10は、代替パスの選択処理において、代替パスを選択できたか否かを判定する(S1015)。
代替パスを選択できない場合、ホスト計算機10は、代替パスを用いてI/O要求を送信できないので、そのまま障害対応処理を終了する。
一方、代替パスを選択できた場合、ホスト計算機10は、ロードバランスポイント切替テーブル124を更新する(S1016)。
具体的には、ホスト計算機10は、障害が発生したパスの識別子とロードバランスポイント切替テーブル124のロードバランスポイント1243とが一致するレコードを、ロードバランスポイント切替テーブル124から選択する。次に、ホスト計算機10は、選択したレコードのロードバランスポイント1243に、選択された代替パスの識別子を格納する。次に、ホスト計算機10は、選択したレコードの現在I/O回数1244を増加させる。
次に、ホスト計算機10は、ステップS1014で選択した代替パスを用いて、I/O要求を送信する(S1017)。
次に、ホスト計算機10は、障害検知実行パスを特定する(S1018)。
ここでは、ホスト計算機10は、障害が発生したパスと同じLU25にアクセス可能なパスを特定する。次に、ホスト計算機10は、特定したパスの中から、オンラインのパスを特定する。そして、ホスト計算機10は、特定したオンラインのパスを、障害検知実行パスとして特定する。
具体的には、ホスト計算機10は、障害が発生したパスの識別子とパス接続情報テーブル121のパス番号1211とが一致するレコードを、パス接続情報テーブル121から選択する。
次に、ホスト計算機10は、選択したレコードから、LU番号1215を抽出する。次に、ホスト計算機10は、抽出したLU番号1215とパス接続情報テーブル121のLU番号1215とが一致するレコードを、パス接続情報テーブル121からすべて選択する。次に、ホスト計算機10は、選択したレコードから、パス番号1211を抽出する。そして、ホスト計算機10は、抽出したパス番号1211によって識別されるパスを、障害が発生したパスと同じLU25にアクセス可能なパスとして特定する。
次に、ホスト計算機10は、抽出したパス番号1211とパス障害情報テーブル122のパス番号1221とが一致するレコードを、パス障害情報テーブル122から選択する。次に、ホスト計算機10は、選択したレコードから、稼動状況1222を抽出する。そして、ホスト計算機10は、抽出した稼動状況1222に「オンライン」が格納されているか否かを判定する。
抽出された稼動状況1222に「オンライン」が格納されている場合、ホスト計算機10は、当該選択したレコードのパス番号1221によって識別されるパスを、障害検知実行パスとして特定する。
次に、ホスト計算機10は、特定した障害検知実行パスに対して、障害対応時における障害検知処理を実行する(S1019)。なお、障害対応時における障害検知処理については、図14で詳細を説明する。
また、ホスト計算機10は、すべてのパスを障害検知実行パスとして特定してもよい。この場合、ホスト計算機10は、すべてのパスに対して、障害対応時における障害検知処理を実行する。
次に、ホスト計算機10は、ステップS1017でI/O要求を送信した際に、代替パスに障害が発生したか発生したかどうかを判定する(S1020)。
代替パスに障害が発生していない場合、I/O要求が正常に送信される。よって、ホスト計算機10は、そのまま障害対応処理を終了する。
一方、代替パスに障害が発生した場合、ホスト計算機10は、代替パスを閉塞(オフライン)する。次に、ホスト計算機10は、パス障害情報テーブル122を更新する(S1021)。
具体的には、ホスト計算機10は、代替パスの識別子とパス障害情報テーブル122のパス番号1221とが一致するレコードを、パス障害情報テーブル122から選択する。
次に、ホスト計算機10は、選択したレコードの稼動状況1222に、「オフライン」を格納する。次に、ホスト計算機10は、選択したレコードの障害回数1223を増加させる。
次に、ホスト計算機10は、選択したレコードの前回障害発生日時1224に、パス障害情報テーブル122の障害第1発見1225にチェックが格納されているレコードの前回障害発生日時1224と同一の値を格納する。
次に、ホスト計算機10は、ロードバランスポイントの変更処理を行う(S1022)。これによって、ホスト計算機10は、ロードバランスポイントを、代替パスから他のパスへ変更する。なお、ロードバランスポイントの変更処理については、図15で詳細を説明する。
そして、ホスト計算機10は、障害対応処理を終了する。ホスト計算機10は、障害対応処理を終了すると、ロードバランス処理(図11)に戻る。更に、ホスト計算機10は、障害対応処理を終了すると、パス閉塞伝播処理を行う。パス閉塞伝播処理については、図16で詳細を説明する。つまり、ホスト計算機10は、ロードバランス処理及びパス閉塞伝播処理を並列的に実行する。
図13は、本発明の第1の実施の形態のホスト計算機10によって実行される代替パスの選択処理のフローチャートである。
代替パスの選択処理は、障害対応処理(図12)のステップS1014において実行される。
まず、ホスト計算機10は、障害対応処理のステップS1013において特定されたすべてのパスがオフラインであるか否かを判定する(S1031)。
具体的には、ホスト計算機10は、障害対応処理のステップS1013において特定されたパスの識別子とパス障害情報テーブル122のパス番号1221とが一致するレコードを、パス障害情報テーブル122から選択する。次に、ホスト計算機10は、選択したレコードの稼動状況1222に「オフライン」が格納されているか否かを判定する。これによって、ホスト計算機10は、障害対応処理のステップS1013において特定されたパスがオフラインであるか否かを判定する。
特定されたパスのすべてがオフラインの場合、ホスト計算機10は、代替パスを選択できないので、そのまま代替パスの選択処理を終了する。
一方、特定されたパスのうち一つでもオンラインの場合、ホスト計算機10は、障害が発生したパスが経由するHBA14及びCHA23のどちらも経由しないオフラインのパスを特定する(S1032)。
具体的には、ホスト計算機10は、障害が発生したパスの識別子とパス接続情報テーブル121のパス番号1211とが一致するレコードを、パス接続情報テーブル121から選択する。次に、ホスト計算機10は、選択したレコードから、HBA番号1212及びCHA番号1213を抽出する。
次に、ホスト計算機10は、抽出したHBA番号1212とパス接続情報テーブル121のHBA番号1212とが異なるレコードを、パス接続情報テーブル121から選択する。次に、ホスト計算機10は、抽出したCHA番号1213とパス接続情報テーブル121のCHA番号1213とが異なるレコードを、選択したレコードの中から選択する。次に、ホスト計算機10は、選択したレコードから、パス番号1211を抽出する。
次に、ホスト計算機10は、抽出したパス番号1211とパス障害情報テーブル122のパス番号1221とが一致するレコードを、パス障害情報テーブル122から選択する。次に、ホスト計算機10は、選択したレコードから、稼動状況1222を抽出する。そして、ホスト計算機10は、抽出した稼動状況1222に「オンライン」が格納されているか否かを判定する。
抽出された稼動状況1222に「オンライン」が格納されている場合、ホスト計算機10は、当該選択したレコードのパス番号1221によって識別されるパスを、障害が発生したパスが経由するHBA14及びCHA23のどちらも経由しないオフラインのパスとして特定する。
次に、ホスト計算機10は、ステップS1032においてパスを特定できたか否かを判定する(S1033)。
ステップS1032においてパスを特定できた場合、ホスト計算機10は、そのままステップS1034に進む。
一方、ステップS1032においてパスを特定できなかった場合、ホスト計算機10は、オンラインのパスをすべて特定する(S1041)。
具体的には、ホスト計算機10は、パス障害情報テーブル122の稼動状況1222に「オンライン」が格納されているレコードを、パス障害情報テーブル122から選択する。次に、ホスト計算機10は、選択したレコードから、パス番号1221を抽出する。そして、ホスト計算機10は、抽出したパス番号1221によって識別されるパスを、オンラインのパスとして特定する。
次に、ホスト計算機10は、ステップS1032又はステップS1041において特定されたパスが複数存在するか否かを判定する(S1034)。
ステップS1032又はステップS1041において特定されたパスが一つの場合、ホスト計算機10は、当該特定されたパスを代替パスとする(S1040)。そして、ホスト計算機10は、代替パスの選択処理を終了する。
一方、ステップS1032又はステップS1041において特定されたパスが複数存在する場合、ホスト計算機10は、特定されたパスの中から、前回の障害発生日時が最も古いパスを特定する(S1035)。
具体的には、ホスト計算機10は、ステップS1032又はステップS1041において特定されたパスの識別子とパス障害情報テーブル122のパス番号1221とが一致するレコードを、パス障害情報テーブル122から選択する。次に、ホスト計算機10は、選択したレコードから、前回障害発生日時1224を抽出する。次に、ホスト計算機10は、抽出した前回障害発生日時1224を比較することによって、前回の障害発生日時が最も古いパスを特定する。
次に、ホスト計算機10は、ステップS1035において特定されたパスが複数存在するか否かを判定する(S1036)。
ステップS1035において特定されたパスが一つの場合、ホスト計算機10は、当該特定されたパスを代替パスとする(S1040)。そして、ホスト計算機10は、代替パスの選択処理を終了する。
一方、ステップS1035において特定されたパスが複数存在する場合、ホスト計算機10は、特定されたパスの中から、障害の発生回数が最少のパスを特定する(S1037)。
具体的には、ホスト計算機10は、ステップS1035において特定されたパスの識別子とパス障害情報テーブル122のパス番号1221とが一致するレコードを、パス障害情報テーブル122から選択する。次に、ホスト計算機10は、選択したレコードから、障害回数1223を抽出する。次に、ホスト計算機10は、抽出した障害回数1223を比較することによって、障害の発生回数が最少のパスを特定する。
次に、ホスト計算機10は、ステップS1037において特定されたパスが複数存在するか否かを判定する(S1038)。
ステップS1037において特定されたパスが一つの場合、ホスト計算機10は、当該特定されたパスを代替パスとする(S1040)。そして、ホスト計算機10は、代替パスの選択処理を終了する。
一方、ステップS1037において特定されたパスが複数存在する場合、ホスト計算機10は、特定されたパスの中から、パス番号が最小のパスを特定する(S1039)。
具体的には、ホスト計算機10は、ステップS1037において特定されたパスの識別子を比較することによって、パス番号が最少のパスを特定する。
次に、ホスト計算機10は、ステップS1039において特定されたパスを代替パスとする(S1040)。そして、ホスト計算機10は、代替パスの選択処理を終了する。
図14は、本発明の第1の実施の形態のホスト計算機10によって実行される障害対応時における障害検知処理のフローチャートである。
障害対応時における障害検知処理は、障害対応処理(図12)のステップS1019において実行される。
まず、ホスト計算機10は、障害対応処理のステップS1018において、障害検知実行パスを特定できたか否かを判定する(S1051)。
障害検知実行パスを特定できなかった場合、ホスト計算機10は、障害検知処理を実行する必要がないので、そのまま障害対応時における障害検知処理を終了する。
一方、障害検知実行パスを特定できた場合、ホスト計算機10は、特定したすべての障害検知実行パスを用いて、障害検知信号を送信する(S1052)。
次に、ホスト計算機10は、障害検知信号を送信してから一定の時間が経過するまで待機する(S1053)。
一定の時間が経過すると、ホスト計算機10は、障害検知実行パスを、パス番号の低いものから順に選択する。そして、ホスト計算機10は、選択した障害検知実行パスに対して以下の処理を行う(S1054)。
ホスト計算機10は、選択した障害検知実行パスを用いて送信した障害検知信号に対する応答を受信したか否かを判定する(S1055)。
このステップS1055におけるホスト計算機10の具体的な処理を説明する。
ホスト計算機10に備わるHBA14は、選択された障害検知実行パスを用いて送信した障害検知信号に対する応答を受信したか否かを判定する。そして、ホスト計算機10に備わるHBA14は、判定結果を、当該ホスト計算機10のデバイスリンクマネージャ126に通知する。ホスト計算機10のデバイスリンクマネージャ126は、通知された判定結果に基づいて、ホスト計算機10が障害検知信号に対する応答を受信したか否かを判定する。
障害検知信号に対する応答を受信した場合、ホスト計算機10は、選択した障害検知実行パスが正常であると判定する。よって、ホスト計算機10は、当該選択した障害検知実行パスに対する処理を終了する。
一方、障害検知信号に対する応答を受信しなかった場合、ホスト計算機10は、選択した障害検知実行パスに障害が発生していると判定する。そこで、ホスト計算機10は、選択した障害検知実行パスを、閉塞(オフライン)する。次に、ホスト計算機10は、パス障害情報テーブル122を更新する(S1056)。
具体的には、ホスト計算機10は、選択した障害検知実行パスの識別子とパス障害情報テーブル122のパス番号1221とが一致するレコードを、パス障害情報テーブル122から選択する。
次に、ホスト計算機10は、選択したレコードの稼動状況1222に、「オフライン」を格納する。次に、ホスト計算機10は、選択したレコードの障害回数1223を増加させる。次に、ホスト計算機10は、選択したレコードの前回障害発生日時1224に、パス障害情報テーブル122の障害第1発見1225にチェックが格納されているレコードの前回障害発生日時1224と同一の値を格納する。
そして、ホスト計算機10は、当該選択した障害検知実行パスに対する処理を終了する。なお、ホスト計算機10は、ステップS1054においてすべての障害検知実行パスを選択するまで処理を繰り返す。
そして、ホスト計算機10は、すべての障害検知実行パスに対して処理を行うと、障害対応時における障害検知処理を終了する。
図15は、本発明の第1の実施の形態のホスト計算機10によって実行されるロードバランスポイントの変更処理のフローチャートである。
ロードバランスポイントの変更処理は、障害対応処理(図12)のステップS1022において実行される。
まず、ホスト計算機10は、変更対象のロードバランスポイントに対応するパス(切替元パス)を特定する。具体的には、ホスト計算機10は、代替パスを切替元パスとして特定する。
次に、ホスト計算機10は、特定した切替元パスと同じLU25にアクセス可能なパスを特定する(S1061)。
具体的には、ホスト計算機10は、特定した切替元パスの識別子とパス接続情報テーブル121のパス番号1211とが一致するレコードを、パス接続情報テーブル121から選択する。
次に、ホスト計算機10は、選択したレコードから、LU番号1215を抽出する。次に、ホスト計算機10は、抽出したLU番号1215とパス接続情報テーブル121のLU番号1215とが一致するレコードを、パス接続情報テーブル121からすべて選択する。次に、ホスト計算機10は、選択したレコードから、パス番号1211を抽出する。そして、ホスト計算機10は、抽出したパス番号1211によって識別されるパスを、切替元パスと同じLU25にアクセス可能なパスとして特定する。
次に、ホスト計算機10は、ステップS1061においてパスを特定できたか否かを判定する(S1062)。
ステップS1061においてパスを特定できなかった場合、ホスト計算機10は、ロードバランスポイントを変更しない(S1067)。そして、ホスト計算機10は、そのままステップS1066に進む。
一方、ステップS1061においてパスを特定できた場合、ホスト計算機10は、切替元パスの次に大きいパス番号によって識別されるパスを、ステップS1061において特定したパスの中から選択する(S1063)。
次に、ホスト計算機10は、ステップS1063において、パスを選択できたか否かを判定する(S1064)。
ステップS1063においてパスを選択できた場合、ホスト計算機10は、そのままステップS1065に進む。
一方、ステップS1063においてパスを選択できなかった場合、ホスト計算機10は、ステップS1061において特定したパスの中から、パス番号が最小のパスを選択する(S1068)。
次に、ホスト計算機10は、選択したパスを、新たなロードバランスポイントに設定する(S1065)。
具体的には、ホスト計算機10は、切替元パスの識別子とロードバランスポイント切替テーブル124のロードバランスポイント1243とが一致するレコードを選択する。次に、ホスト計算機10は、選択したレコードのロードバランスポイント1243に、ステップS1063又はステップS1068において選択したパスの識別子を格納する。
更に、ホスト計算機10は、選択したレコードの現在I/O回数1244に、「0」を格納する(S1066)。そして、ホスト計算機10は、ロードバランスポイントの変更処理を終了する。
図16は、本発明の第1の実施の形態のホスト計算機10によって実行されるパス閉塞伝播処理のフローチャートである。
まず、ホスト計算機10は、同一の障害によってオフラインとなったパスをすべて特定する(S1071)。
具体的には、ホスト計算機10は、パス障害情報テーブル122の障害第1発見1225にチェックが格納されているレコードを、パス障害情報テーブル122から選択する。次に、ホスト計算機10は、選択したレコードから、前回障害発生日時1224を抽出する。
次に、ホスト計算機10は、パス障害情報テーブル122の稼動状況1222に「オフライン」が格納されているレコードを、パス障害情報テーブル122から選択する。次に、ホスト計算機10は、抽出した前回障害発生日時1224とパス障害情報テーブル122の前回障害発生日時1224とが同一のレコードを、選択したレコードの中から選択する。次に、ホスト計算機10は、選択したレコードから、パス番号1221を抽出する。そして、ホスト計算機10は、抽出したパス番号1221によって識別されるパスを、同一の障害によってオフラインとなったパスとして特定する。
次に、ホスト計算機10は、ステップS1071において特定したパスを、パス番号の低いものから順に選択する。そして、ホスト計算機10は、選択したパスに対して以下の処理を行う(S1072)。
まず、ホスト計算機10は、選択したパスに対して、障害原因箇所の推測処理を行う(S1073)。これによって、ホスト計算機10は、選択したパスの障害原因箇所を推測する。なお、障害原因箇所の推定処理については、図17で詳細を説明する。
次に、ホスト計算機10は、推測した障害原因箇所が障害原因箇所テーブル123に格納されているか否かを判定する(S1074)。
具体的には、ホスト計算機10は、推測した障害原因箇所と障害原因箇所テーブル123の障害原因箇所1231とが一致するレコードが障害原因箇所テーブル123に存在するか否かを判定する。
推測した障害原因箇所が障害原因箇所テーブル123に既に格納されている場合、ホスト計算機10は、ステップS1072において選択したパスに対する処理を終了する。
一方、推測した障害原因箇所が障害原因箇所テーブル123に格納されていない場合、ホスト計算機10は、推測した障害原因箇所を障害原因箇所テーブル123に格納する。
具体的には、ホスト計算機10は、障害原因箇所テーブル123に新たなレコードを作成する。次に、ホスト計算機10は、推測した障害原因箇所を、新たなレコードの障害原因箇所1231に格納する。次に、ホスト計算機10は、ステップS1071において抽出した前回障害発生日時1224を、新たなレコードの障害発生日時1232に格納する。
そして、ホスト計算機10は、ステップS1072において選択したパスに対する処理を終了する。なお、ホスト計算機10は、特定されたすべてのパスをステップS1072において選択するまで処理を繰り返す。
次に、ホスト計算機10は、障害伝播パスを特定する(S1075)。ここでは、ホスト計算機10は、推測された障害原因箇所を経由するパスを特定する。次に、ホスト計算機10は、特定したパスの中から、障害が発生したパスと異なるLU25にアクセス可能なパスを特定する。更に、ホスト計算機10は、特定したパスの中から、オンラインのパスを特定する。そして、ホスト計算機10は、特定したパスを、障害伝播パスとして特定する。
具体的には、ホスト計算機10は、障害が発生したポートの識別子とパス接続情報テーブル121のパス番号1211とが一致するレコードを、パス接続情報テーブル121から選択する。次に、ホスト計算機10は、選択したレコードからLU番号1215を抽出する。
次に、ホスト計算機10は、推測された障害原因箇所の識別子とパス接続情報テーブル121のHBA番号1212、CHA番号1213、CHAポート番号1214又はLU番号1215のいずれかとが一致するレコードを、パス接続情報テーブル121から選択する。
次に、ホスト計算機10は、抽出したLU番号1215とパス接続情報テーブル121のLU番号1215とが異なるレコードを、選択したレコードの中から選択する。次に、ホスト計算機10は、選択したレコードから、パス番号1211を抽出する。
次に、ホスト計算機10は、抽出したパス番号1211とパス障害情報テーブル122のパス番号1221とが一致するレコードを、パス障害情報テーブル122から選択する。次に、ホスト計算機10は、選択したレコードから、稼動状況1222を抽出する。そして、ホスト計算機10は、抽出した稼動状況1222に「オンライン」が格納されているか否かを判定する。
抽出された稼動状況1222に「オンライン」が格納されている場合、ホスト計算機10は、当該選択したレコードのパス番号1221によって識別されるパスを、障害伝播パスとして特定する。
次に、ホスト計算機10は、特定した障害伝播パスを閉塞(オフライン)する。次に、ホスト計算機10は、パス障害情報テーブル122を更新する(S1076)。
具体的には、ホスト計算機10は、閉塞された障害伝播パスの識別子とパス障害情報テーブル122のパス番号1221とが一致するレコードを、パス障害情報テーブル122から選択する。次に、ホスト計算機10は、選択したレコードの稼動状況1222に、「オフライン」を格納する。次に、ホスト計算機10は、選択したレコードの障害回数1223を増加させる。次に、ホスト計算機10は、ステップS1071において抽出した前回障害発生日時1224を、選択したレコードの前回障害発生日時1224に格納する。
次に、ホスト計算機10は、障害原因箇所テーブル123を管理サーバ30に送信する(S1077)。そして、ホスト計算機10は、パス閉塞伝播処理を終了する。
一方、管理サーバ30は、障害原因箇所テーブル123を受信すると、障害原因確認処理を実行する。なお、障害原因確認処理については、図18で詳細を説明する。
図17は、本発明の第1の実施の形態のホスト計算機10によって実行される障害原因箇所の推定処理のフローチャートである。
障害原因箇所の推定処理は、パス閉塞伝播処理(図16)のステップS1073又は全パス障害検知処理(図22)のステップS1130において実行される。
ホスト計算機10は、パス閉塞伝播処理のステップS1072又は全パス障害検知処理のステップS1129において選択されたパスを用いてアクセス可能なLU25を特定する(S1081)。
具体的には、ホスト計算機10は、選択されたパスの識別子とパス接続情報テーブル121のパス番号1211とが一致するレコードを、パス接続情報テーブル121から選択する。次に、ホスト計算機10は、選択したレコードからLU番号1215を抽出する。そして、ホスト計算機10は、抽出したLU番号1215によって識別されるLU25を、選択されたパスを用いてアクセス可能なLU25として特定する。
次に、ホスト計算機10は、ステップS1081において特定したLU25に、オンラインのパスを用いてアクセス可能か否かを判定する(S1082)。
具体的には、ホスト計算機10は、抽出したLU番号1215とパス接続情報テーブル121のLU番号1215とが一致するレコードを、パス接続情報テーブル121からすべて選択する。次に、ホスト計算機10は、選択したレコードから、パス番号1211を抽出する。
次に、ホスト計算機10は、抽出したパス番号1211とパス障害情報テーブル122のパス番号1221とが一致するレコードを、パス障害情報テーブル122から選択する。次に、ホスト計算機10は、選択したレコードから、稼動状況1222を抽出する。
次に、ホスト計算機10は、抽出した稼動状況1222に「オンライン」が格納されているか否かを判定する。そして、抽出された稼動状況1222に「オンライン」が一つでも格納されていると、ホスト計算機10は、特定したLU25をオンラインのパスが経由していると判定する。一方、抽出された稼動状況1222のすべてに「オフライン」が格納されていると、ホスト計算機10は、特定したLU25にオンラインのパスを用いてアクセスできないと判定する。
特定したLU25にオンラインのパスを用いてアクセスできない場合、ホスト計算機10は、当該特定したLU25を、障害原因箇所と推測する(S1088)。
一方、特定したLU25にオンラインのパスを用いてアクセスできる場合、ホスト計算機10は、当該特定したLU25が障害原因箇所でないと推測する。
そこで、ホスト計算機10は、パス閉塞伝播処理のステップS1072又は全パス障害検知処理のステップS1129において選択されたパスが経由するCHA21を特定する(S1083)。
具体的には、ホスト計算機10は、選択されたパスの識別子とパス接続情報テーブル121のパス番号1211とが一致するレコードを、パス接続情報テーブル121から選択する。次に、ホスト計算機10は、選択したレコードからCHA番号1213を抽出する。そして、ホスト計算機10は、抽出したCHA番号1213によって識別されるCHA21を、選択されたパスが経由するCHA21として特定する。
次に、ホスト計算機10は、ステップS1083において特定したCHA21をオンラインのパスが経由しているか否かを判定する(S1084)。
具体的には、ホスト計算機10は、抽出したCHA番号1213とパス接続情報テーブル121のCHA番号1213とが一致するレコードを、パス接続情報テーブル121からすべて選択する。次に、ホスト計算機10は、選択したレコードから、パス番号1211を抽出する。
次に、ホスト計算機10は、抽出したパス番号1211とパス障害情報テーブル122のパス番号1221とが一致するレコードを、パス障害情報テーブル122から選択する。次に、ホスト計算機10は、選択したレコードから、稼動状況1222を抽出する。
次に、ホスト計算機10は、抽出した稼動状況1222に「オンライン」が格納されているか否かを判定する。そして、抽出された稼動状況1222に「オンライン」が一つでも格納されていると、ホスト計算機10は、特定されたCHA21をオンラインのパスが経由していると判定する。一方、抽出された稼動状況1222のすべてに「オフライン」が格納されていると、ホスト計算機10は、特定されたCHA21をオンラインのパスが経由していないと判定する。
特定されたCHA21をオンラインのパスが経由していない場合、ホスト計算機10は、当該特定されたCHA21を、障害原因箇所と推測する(S1089)。
一方、特定されたCHA21をオンラインのパスが経由している場合、ホスト計算機10は、当該特定されたCHA21が障害原因箇所でないと推測する。
そこで、ホスト計算機10は、パス閉塞伝播処理のステップS1072又は全パス障害検知処理のステップS1129において選択されたパスが経由するCHAポート24を特定する(S1085)。
具体的には、ホスト計算機10は、選択されたパスの識別子とパス接続情報テーブル121のパス番号1211とが一致するレコードを、パス接続情報テーブル121から選択する。次に、ホスト計算機10は、選択したレコードからCHAポート番号1214を抽出する。そして、ホスト計算機10は、抽出したCHAポート番号1214によって識別されるCHAポート24を、選択されたパスが経由するCHAポート24として特定する。
次に、ホスト計算機10は、ステップS1085において特定したCHAポート24をオンラインのパスが経由しているか否かを判定する(S1086)。
具体的には、ホスト計算機10は、抽出したCHAポート番号1214とパス接続情報テーブル121のCHAポート番号1214とが一致するレコードを、パス接続情報テーブル121からすべて選択する。次に、ホスト計算機10は、選択したレコードから、パス番号1211を抽出する。
次に、ホスト計算機10は、抽出したパス番号1211とパス障害情報テーブル122のパス番号1221とが一致するレコードを、パス障害情報テーブル122から選択する。次に、ホスト計算機10は、選択したレコードから、稼動状況1222を抽出する。
次に、ホスト計算機10は、抽出した稼動状況1222に「オンライン」が格納されているか否かを判定する。そして、抽出された稼動状況1222に「オンライン」が一つでも格納されていると、ホスト計算機10は、特定されたCHAポート24をオンラインのパスが経由していると判定する。一方、抽出された稼動状況1222のすべてに「オフライン」が格納されていると、ホスト計算機10は、特定されたCHAポート24をオンラインのパスが経由していないと判定する。
特定されたCHAポート24をオンラインのパスが経由していない場合、ホスト計算機10は、当該特定されたCHAポート24又は当該特定されたCHAポート24に接続される物理パスを、障害原因箇所と推測する(S1090)。
一方、特定されたCHAポート24をオンラインのパスが経由している場合、ホスト計算機10は、当該特定されたCHAポート24が障害原因箇所でないと推測する。
そこで、ホスト計算機10は、パス閉塞伝播処理のステップS1072又は全パス障害検知処理のステップS1129において選択されたパスが経由するHBA14を特定する。
具体的には、ホスト計算機10は、選択されたパスの識別子とパス接続情報テーブル121のパス番号1211とが一致するレコードを、パス接続情報テーブル121から選択する。次に、ホスト計算機10は、選択したレコードからHBA番号1212を抽出する。そして、ホスト計算機10は、抽出したHBA番号1212によって識別されるHBA14を、選択されたパスが経由するHBA14として特定する。
次に、ホスト計算機10は、特定したHBA14又は特定したHBA14に接続される物理パスを、障害原因箇所と推測する(S1087)。
そして、ホスト計算機10は、障害原因箇所の推定処理を終了する。
図18は、本発明の第1の実施の形態の管理サーバ30によって実行される障害原因確認処理のフローチャートである。
管理サーバ30は、障害原因箇所テーブル123をホスト計算機10から受信すると、障害原因確認処理を行う。
まず、管理サーバ30は、受信した障害原因箇所テーブル123を参照して、全ホスト障害原因箇所テーブル324を更新する(S3001)。
具体的には、管理サーバ30は、受信した障害原因箇所テーブル123の障害原因箇所1231を、全ホスト障害原因箇所テーブル324の障害原因箇所3241に格納する。次に、管理サーバ30は、受信した障害原因箇所テーブル123の送信元であるホスト計算機10の識別子を、全ホスト障害原因箇所テーブル324の情報元ホスト名3242に格納する。更に、管理サーバ30は、受信した障害原因箇所テーブル123の障害発生日時1232を、全ホスト障害原因箇所テーブル324の障害発生日時3243に格納する。
次に、管理サーバ30は、当該障害原因箇所に接続されるホスト計算機10を特定する。但し、管理サーバ30は、障害原因箇所テーブル123の送信元であるホスト計算機10を除くホスト計算機10を特定する(S3002)。
具体的には、管理サーバ30は、障害原因箇所に対応するテーブルを、LU接続先ホストテーブル321、CHA接続先ホストテーブル322及びCHAポート接続先ホストテーブル323の中から選択する。次に、管理サーバ30は、選択したテーブルを参照して、障害原因箇所に接続されるホスト計算機10を特定する。
例えば、障害原因箇所がCHA21の場合を説明する。
この場合、管理サーバ30は、障害原因箇所であるCHA21の識別子とCHA接続先ホストテーブル322のCHA番号3221とが一致するレコードを、CHA接続先ホストテーブル322から選択する。次に、管理サーバ30は、選択したレコードから、ホスト名3222を抽出する。そして、管理サーバ30は、抽出したホスト名3222によって識別されるホスト計算機10を、障害原因箇所に接続されるホスト計算機10として特定する。
次に、管理サーバ30は、ステップS3002においてホスト計算機10を特定できたか否かを判定する(S3003)。
ホスト計算機10を特定できなかった場合、管理サーバ30は、他のホスト計算機10に障害の影響が及ばないと判定する。よって、管理サーバ30は、そのまま障害原因確認処理を終了する。
一方、ホスト計算機10を特定できた場合、管理サーバ30は、特定したホスト計算機10に障害原因箇所を通知する(S3004)。ホスト計算機10は、管理サーバ30から障害原因箇所を通知されると、管理サーバ通知による障害対応処理を行う。なお、管理サーバ通知による障害対応処理については、図19で詳細を説明する。
次に、管理サーバ30は、障害原因箇所を通知したすべてのホスト計算機10から、障害原因箇所テーブル123を受信したか否かを判定する(S3005)。
障害原因箇所を通知したすべてのホスト計算機10から受信していない場合、管理サーバ30は、障害原因箇所を通知したすべてのホスト計算機10から障害原因箇所テーブル123を受信するまで待機する(S3007)。
一方、障害原因箇所を通知したすべてのホスト計算機10から障害原因箇所テーブル123を受信すると、管理サーバ30は、受信した障害原因箇所テーブル123の障害原因箇所1231と全ホスト障害原因箇所テーブル324の障害原因箇所3241とが一致するか否かを判定する(S3006)。
障害原因箇所が一致する場合、管理サーバ30は、全ホスト障害原因箇所テーブル324の障害原因箇所3241が正しいと判定する。よって、管理サーバ30は、そのまま障害原因確認処理を終了する。
障害原因箇所が一致しない場合、管理サーバ30は、全ホスト障害原因箇所テーブル324の障害原因箇所3241が誤っていると判定する。よって、管理サーバ30は、エラーを管理者に通知する(S3008)。管理者は、エラーを通知されると、障害原因箇所がファイバチャネルスイッチ40又は2箇所以上のいずれかであると判断する。なお、管理サーバ30は、障害原因箇所がファイバチャネルスイッチ40又は2箇所以上のいずれかである旨を管理者に通知してもよい。
そして、管理サーバ30は、障害原因確認処理を終了する。
図19は、本発明の第1の実施の形態のホスト計算機10によって実行される管理サーバ通知による障害対応処理のフローチャートである。
ホスト計算機10は、管理サーバ30から障害原因箇所を通知されると、管理サーバ通知による障害対応処理を行う。なお、管理サーバ30は、障害原因確認処理(図18)のステップS3004において、ホスト計算機10に障害原因箇所を通知する。
まず、ホスト計算機10は、パス接続情報テーブル121及びパス障害情報テーブル122を参照して、障害原因箇所経由パスを特定する(S1091)。ここでは、ホスト計算機10は、通知された障害原因箇所を経由するパスを特定する。次に、ホスト計算機10は、特定したパスの中から、オンラインのパスを特定する。そして、ホスト計算機10は、特定したパスを、障害原因箇所経由パスとして特定する。
具体的には、ホスト計算機10は、通知された障害原因箇所の識別子とパス接続情報テーブル121のHBA番号1212、CHA番号1213、CHAポート番号1214又はLU番号1215のいずれかとが一致するレコードを、パス接続情報テーブル121から選択する。
次に、ホスト計算機10は、選択したレコードから、パス番号1211を抽出する。
次に、ホスト計算機10は、抽出したパス番号1211とパス障害情報テーブル122のパス番号1221とが一致するレコードを、パス障害情報テーブル122から選択する。次に、ホスト計算機10は、選択したレコードから、稼動状況1222を抽出する。そして、ホスト計算機10は、抽出した稼動状況1222に「オンライン」が格納されているか否かを判定する。
抽出された稼動状況1222に「オンライン」が格納されている場合、ホスト計算機10は、当該選択したレコードのパス番号1221によって識別されるパスを、障害原因箇所経由パスとして特定する。
次に、ホスト計算機10は、ステップS1091において、障害原因箇所経由パスを特定できたか否かを判定する(S1092)。
障害原因箇所経由パスを特定できなかった場合、ホスト計算機10は、通知された障害原因箇所によって影響を受けるパスが存在しないと判定する。よって、ホスト計算機10は、そのままステップS1099に進む。
一方、障害原因箇所経由パスを特定できた場合、ホスト計算機10は、特定した障害原因箇所経由パスを閉塞(オフライン)する。次に、ホスト計算機10は、パス障害情報テーブル122を更新する(S1093)。
具体的には、ホスト計算機10は、特定した障害原因箇所経由パスの識別子とパス障害情報テーブル122のパス番号1221とが一致するレコードを、パス障害情報テーブル122から選択する。次に、ホスト計算機10は、選択したレコードの稼動状況1222に、「オフライン」を格納する。
次に、ホスト計算機10は、特定した障害原因箇所経由パスを、パス状態変化確認テーブル125に登録する(S1094)。なお、パス状態変化確認テーブル125に情報が予め格納されている場合、ホスト計算機10は、当該格納されているすべての情報を、パス状態変化確認テーブル125から削除する。その後、ホスト計算機10は、特定した障害原因箇所経由パスを、パス状態変化確認テーブル125に登録する。
具体的には、ホスト計算機10は、特定した障害原因箇所経由パスの識別子を、パス状態変化確認テーブル125のパス番号1251に格納する。次に、ホスト計算機10は、パス状態変化確認テーブル125の障害検知前状態1252に、「オフライン」を格納する。
次に、ホスト計算機10は、オフラインのパスに対する障害検知処理を行う(S1095)。なお、オフラインのパスに対する障害検知処理については、図20で詳細を説明する。
次に、ホスト計算機10は、パス状態変化確認テーブル125を更新する(S1096)。
具体的には、ホスト計算機10は、パス状態変化確認テーブル125のレコードを上から順に選択する。そして、ホスト計算機10は、選択したレコードに対して以下の処理を行う。
ホスト計算機10は、選択したレコードから、パス番号1251を抽出する。次に、ホスト計算機10は、抽出したパス番号1251とパス障害情報テーブル122のパス番号1221とが一致するレコードを、パス障害情報テーブル122から選択する。
次に、ホスト計算機10は、選択したレコードから、稼動状況1222を抽出する。次に、ホスト計算機10は、パス状態変化確認テーブル125から選択したレコードの障害検知後状態1253に、抽出した稼動状況1222を格納する。
ホスト計算機10は、この処理を繰り返すことによって、パス状態変化確認テーブル125を更新する。
次に、ホスト計算機10は、正当性確認処理を行う(S1097)。これによって、ホスト計算機10は、管理サーバ30から通知された障害原因箇所の正当性を判断する。なお、正当性確認処理については、図21で詳細を説明する。
次に、ホスト計算機10は、当該ホスト計算機10に接続されているすべてのパスがオフラインであるか否かを判定する(S1098)。
具体的には、ホスト計算機10は、パス障害情報テーブル122の稼動状況1222に「オンライン」が格納されているか否かを判定する。パス障害情報テーブル122の稼動状況1222に「オンライン」が一つでも格納されていると、ホスト計算機10は、当該ホスト計算機10に接続されているパスの中に、オンラインのパスが存在すると判定する。一方、パス障害情報テーブル122の稼動状況1222に「オンライン」が一つも格納されていない場合、ホスト計算機10は、当該ホスト計算機10に接続されているすべてのパスがオフラインであると判定する。
オンラインのパスが一つでも存在すると、ホスト計算機10は、そのままステップS1099に進む。
一方、すべてのパスがオフラインであると、ホスト計算機10は、アプリケーションに障害を通知する(S1100)。
次に、ホスト計算機10は、更新した障害原因箇所テーブル122を、管理サーバ30に送信する(S1099)。そして、ホスト計算機10は、管理サーバ通知による障害対応処理を終了する。
図20は、本発明の第1の実施の形態のホスト計算機10によって実行されるオフラインのパスに対する障害検知処理のフローチャートである。
オフラインのパスに対する障害検知処理は、管理サーバ通知による障害対応処理(図19)のステップS1095において実行される。この場合、オフラインのパスとは、障害原因箇所経由パスである。
また、オフラインのパスに対する障害検知処理は、パス障害回復処理(図23)のステップS1144において実行される。この場合、オフラインのパスとは、回復処理実行パスである。
また、オフラインのパスに対する障害検知処理は、管理サーバ通知による障害回復処理(図25)のステップS1164において実行される。この場合、オフラインのパスとは、障害回復箇所経由パスである。
まず、ホスト計算機10は、オフラインのパスを用いて、障害検知信号を送信する(S1102)。
オフラインのパスが障害原因箇所経由パスの場合、ホスト計算機10は、管理サーバ通知による障害対応処理のステップS1091において特定したすべての障害原因箇所経由パスを用いて、障害検知信号を送信する。
一方、オフラインのパスが回復処理実行パスの場合、ホスト計算機10は、パス障害回復処理のステップS1142において特定したすべての回復処理実行パスを用いて、障害検知信号を送信する。
一方、オフラインのパスが障害回復箇所経由パスの場合、ホスト計算機10は、管理サーバ通知による障害回復処理のステップS1161において特定したすべての障害回復箇所経由パスを用いて、障害検知信号を送信する。
次に、ホスト計算機10は、障害検知信号を送信してから一定の時間が経過するまで待機する(S1103)。
一定の時間が経過すると、ホスト計算機10は、オフラインのパスを、パス番号の低いものから順に選択する。そして、ホスト計算機10は、選択したオフラインのパスに対して以下の処理を行う(S1104)。
ホスト計算機10は、選択したオフラインのパスを用いて送信した障害検知信号に対する応答を受信したか否かを判定する。
障害検知信号に対する応答を受信した場合、ホスト計算機10は、選択したオフラインのパスは正常であると判定する。よって、ホスト計算機10は、当該選択したオフラインのパスをオンラインにする(S1105)。更に、ホスト計算機10は、パス障害情報テーブル122を更新する。
具体的には、ホスト計算機10は、選択したオフラインのパスの識別子とパス障害情報テーブル122のパス番号1221とが一致するレコードを、パス障害情報テーブル122から選択する。次に、ホスト計算機10は、選択したレコードの稼動状況1222に「オンライン」を格納する。そして、ホスト計算機10は、当該選択したオフラインのパスに対する処理を終了する。
一方、障害検知信号に対する応答を受信しなかった場合、ホスト計算機10は、選択したオフラインのパスに障害が発生中と判定する。よって、ホスト計算機10は、選択したオフラインのパスをオフラインのままにしておく。
そして、ホスト計算機10は、当該選択したオフラインのパスに対する処理を終了する。なお、ホスト計算機10は、オフラインのパスをすべて選択するまで処理を繰り返す。
そして、ホスト計算機10は、オフラインのパスをすべて処理すると、オフラインのパスに対する障害検知処理を終了する。
図21は、本発明の第1の実施の形態のホスト計算機10によって実行される正当性確認処理のフローチャートである。
正当性確認処理は、管理サーバ通知による障害対応処理(図19)のステップS1097において実行される。
ホスト計算機10は、障害原因箇所経由パスを、パス番号の低いものから順に選択する。そして、ホスト計算機10は、選択した障害原因箇所経由パスに対して以下の処理を行う(S1111)。
まず、ホスト計算機10は、パス状態変化確認テーブル125を参照して、選択した障害原因箇所経由パスの状態が障害検知処理(図20)の前後で変化したか否かを判定する(S1112)。
具体的には、ホスト計算機10は、選択した障害原因箇所経由パスの識別子とパス状態変化確認テーブル125のパス番号1251とが一致するレコードを、パス状態変化確認テーブル125から選択する。次に、ホスト計算機10は、選択したレコードの障害検知前状態1252及び障害検知後状態1253に、「オフライン」が格納されているか否かを判定する。
障害検知後状態1253に「オンライン」が格納されていると、ホスト計算機10は、選択した障害原因箇所経由パスの状態が変化したと判定する。この場合、当該障害原因箇所経由パスは、オフラインからオンラインに変化している。
よって、ホスト計算機10は、パス障害情報テーブル122を更新する必要がない。そこで、ホスト計算機10は、当該選択した障害原因箇所経由パスに対する処理を終了する。
一方、障害検知前状態1252及び障害検知後状態1253に「オフライン」が格納されていると、ホスト計算機10は、選択した障害原因箇所経由パスの状態が変化していないと判定する。この場合、当該障害原因箇所経由パスはオフラインのままである。
よって、ホスト計算機10は、パス障害情報テーブル122を更新する必要がある。そこで、ホスト計算機10は、選択した障害原因箇所経由パスが、当該正当性確認処理において状態変化を最初に検知されたパスであるか否かを判定する(S1113)。
選択した障害原因箇所経由パスが状態変化を最初に検知されたパスであると、ホスト計算機10は、選択した障害原因箇所経由パスを、第1発見パスとする。次に、ホスト計算機10は、パス障害情報テーブル122を更新する(S1114)。
具体的には、ホスト計算機10は、選択した障害原因箇所経由パスの識別子とパス障害情報テーブル122のパス番号1221とが一致するレコードを、パス障害情報テーブル122から選択する。次に、ホスト計算機10は、選択したレコードの障害回数1223を増加させる。次に、ホスト計算機10は、選択したレコードの前回障害発生日時に、現在の日時を格納する。
次に、ホスト計算機10は、選択したレコードの障害第1発見1225にチェックを格納する。但し、パス障害情報テーブル122の他のレコードの障害第1発見1225にチェックが予め格納されている場合、ホスト計算機10は、当該チェックを削除する。その後、ホスト計算機10は、選択したレコードの障害第1発見1225にチェックを格納する。
そして、ホスト計算機10は、選択した障害原因箇所経由パスに対する処理を終了する。
一方、選択した障害原因箇所経由パスが状態変化を最初に検知されたパスでないと、ホスト計算機10は、パス障害情報テーブル122を更新する(S1117)。
具体的には、ホスト計算機10は、選択した障害原因箇所経由パスの識別子とパス障害情報テーブル122のパス番号1221とが一致するレコードを、パス障害情報テーブル122から選択する。
次に、ホスト計算機10は、選択したレコードの障害回数1223を増加させる。次に、ホスト計算機10は、選択したレコードの前回障害発生日時1224に、パス障害情報テーブル122の障害第1発見1225にチェックが格納されているレコードの前回障害発生日時1224と同一の値を格納する。
そして、ホスト計算機10は、選択した障害原因箇所経由パスに対する処理を終了する。
次に、ホスト計算機10は、障害検知処理(図20)の前後で状態が変化した障害原因箇所経由パスが存在するか否かを判定する(S1115)。
具体的には、ホスト計算機10は、パス状態変化確認テーブル125のすべてのレコードの障害検知前状態1252及び障害検知後状態1253に、「オフライン」が格納されているか否かを判定する。
すべてのレコードの障害検知前状態1252及び障害検知後状態1253に「オフライン」が格納されていると、ホスト計算機10は、状態が変化した障害原因箇所経由パスが一つも存在しないと判定する。一方、障害検知前状態1252及び障害検知後状態1253の一つにでも「オンライン」が格納されていると、ホスト計算機10は、状態が変化した障害原因箇所経由パスが存在すると判定する。
状態が変化した障害原因箇所経由パスが存在する場合、ホスト計算機10は、障害原因箇所テーブル123を更新する(S1116)。
具体的には、ホスト計算機10は、障害原因箇所テーブル123に新たなレコードを追加する。次に、ホスト計算機10は、管理サーバ通知による障害対応処理(図19)のステップS1901において通知された障害原因箇所を、新たなレコードの障害原因箇所1231に格納する。そして、ホスト計算機10は、正当性確認処理を終了する。
一方、状態が変化した障害原因箇所経由パスが存在しない場合、ホスト計算機10は、全パス障害検知処理を実行する(S1118)。なお、全パス障害検知処理については、図22で詳細を説明する。そして、ホスト計算機10は、正当性確認処理を終了する。
図22は、本発明の第1の実施の形態のホスト計算機10によって実行される全パス障害検知処理のフローチャートである。
全パス障害検知処理は、正当性確認処理(図21)のステップS1118において実行される。
まず、ホスト計算機10は、すべてのパスを用いて、障害検知信号を送信する(S1121)。
次に、ホスト計算機10は、障害検知信号を送信してから一定の時間が経過するまで待機する(S1122)。
一定の時間が経過すると、ホスト計算機10は、現在の日時を記憶する(S1123)。
次に、ホスト計算機10は、すべてのパスを、パス番号の低いものから順に選択する。そして、ホスト計算機10は、選択したパスに対して以下の処理を行う(S1124)。
ホスト計算機10は、選択したパスを用いて送信した障害検知信号に対する応答を受信したか否かを判定する。
障害検知信号に対する応答を受信した場合、ホスト計算機10は、選択したパスは正常であると判定する。よって、ホスト計算機10は、当該選択したパスをオンラインにする(S1125)。更に、ホスト計算機10は、パス障害情報テーブル122を更新する。
具体的には、ホスト計算機10は、選択したパスの識別子とパス障害情報テーブル122のパス番号1221とが一致するレコードを、パス障害情報テーブル122から選択する。次に、ホスト計算機10は、選択したレコードの稼動状況1222に「オンライン」を格納する。そして、ホスト計算機10は、当該選択したパスに対する処理を終了する。
一方、障害検知信号に対する応答を受信しなかった場合、ホスト計算機10は、選択したパスに障害が発生していると判定する。そこで、ホスト計算機10は、選択したパスがオンラインであるか否かを判定する(S1126)。
具体的には、ホスト計算機10は、選択したパスの識別子とパス障害情報テーブル122のパス番号1221とが一致するレコードを、パス障害情報テーブル122から選択する。次に、ホスト計算機10は、選択したレコードの稼動状況1222に「オンライン」が格納されているか否かを判定する。
選択したパスがオフラインであると、ホスト計算機10は、当該選択したパスに対する処理を終了する。
一方、選択したパスがオンラインであると、ホスト計算機10は、当該選択したパスを閉塞(オフライン)する。次に、ホスト計算機10は、パス障害情報テーブル122を更新する(S1132)。
具体的には、ホスト計算機10は、選択したパスの識別子とパス障害情報テーブル122のパス番号1221とが一致するレコードを、パス障害情報テーブル122から選択する。
次に、ホスト計算機10は、選択したレコードの稼動状況1222に、「オフライン」を格納する。次に、ホスト計算機10は、選択したレコードの障害回数1223を増加させる。次に、ホスト計算機10は、選択したレコードの前回障害発生日時1224に、ステップS1123で記憶した日時を格納する。
そして、ホスト計算機10は、当該選択したパスに対する処理を終了する。なお、ホスト計算機10は、ステップS1124においてすべてのパスを選択するまで処理を繰り返す。
次に、ホスト計算機10は、パス障害情報テーブル122を参照して、オフラインのパスをすべて特定する(S1127)。
具体的には、ホスト計算機10は、パス障害情報テーブル122の稼動状況1222に「オフライン」が格納されているレコードをすべて選択する。次に、ホスト計算機10は、選択したレコードから、パス番号1221を抽出する。そして、ホスト計算機10は、抽出したパス番号1221によって識別されるパスを、オフラインのパスとして特定する。
次に、ホスト計算機10は、ステップS1127においてオフラインのパスを特定できたか否かを判定する(S1128)。
オフラインのパスを一つも特定できなかった場合、ホスト計算機10は、障害が発生してしているパスが存在しないと判定する。よって、ホスト計算機10は、障害原因箇所テーブル123に格納されている情報を削除する(S1133)。そして、ホスト計算機10は、全パス障害検知処理を終了する。
一方、オフラインのパスを特定できた場合、ホスト計算機10は、特定したオフラインのパスを、パス番号の低いものから順に選択する。そして、ホスト計算機10は、選択したオフラインのパスに対して以下の処理を行う(S1129)。
まず、ホスト計算機10は、選択したオフラインのパスに対して、障害原因箇所の推定処理(図17)を行う(S1130)。これによって、ホスト計算機10は、選択したオフラインのパスの障害原因箇所を推測する。
次に、ホスト計算機10は、推測した障害原因箇所が障害原因箇所テーブル123に格納されているか否かを判定する(S1131)。
具体的には、ホスト計算機10は、推測した障害原因箇所と障害原因箇所テーブル123の障害原因箇所1231とが一致するレコードが障害原因箇所テーブル123に存在するか否かを判定する。
推測した障害原因箇所が障害原因箇所テーブル123に既に格納されている場合、ホスト計算機10は、ステップS1129において選択したオフラインのパスに対する処理を終了する。
一方、推測した障害原因箇所が障害原因箇所テーブル123に格納されていない場合、ホスト計算機10は、推測した障害原因箇所を障害原因箇所テーブル123に格納する。
具体的には、ホスト計算機10は、障害原因箇所テーブル123に新たなレコードを作成する。次に、ホスト計算機10は、推測した障害原因箇所を、新たなレコードの障害原因箇所1231に格納する。次に、ホスト計算機10は、ステップS1123において記憶した日時を、新たなレコードの障害発生日時1232に格納する。
そして、ホスト計算機10は、ステップS1129において選択したオフラインのパスに対する処理を終了する。なお、ホスト計算機10は、オフラインのパスのすべてをステップS1129において選択するまで処理を繰り返す。
ホスト計算機10は、オフラインのパスのすべてを処理すると、全パス障害検知処理を終了する。
図23は、本発明の第1の実施の形態のホスト計算機10によって実行されるパス障害回復処理のフローチャートである。
ホスト計算機10は、パス障害回復処理を一定時間ごとに繰り返す(S1141)。
まず、ホスト計算機10は、パス障害情報テーブル122を参照して、オフラインのすべてのパスを回復処理実行パスとして特定する。そして、ホスト計算機10は、特定した回復処理実行パスを、パス状態変化確認テーブル125に登録する(S1142)。
具体的には、ホスト計算機10は、パス障害情報テーブル122の稼動状況1222に「オフライン」が格納されているレコードをすべて選択する。次に、ホスト計算機10は、選択したレコードから、パス番号1221を抽出する。そして、ホスト計算機10は、抽出したパス番号1221によって識別されるパスを、回復処理実行パスとして特定する。
次に、ホスト計算機10は、抽出したパス番号1221を、パス状態変化確認テーブル125のパス番号1251に格納する。次に、ホスト計算機10は、パス状態変化確認テーブル125の障害検知前状態1252に、「オフライン」を格納する。
なお、パス状態変化確認テーブル125に情報が予め格納されている場合、ホスト計算機10は、当該格納されているすべての情報を、パス状態変化確認テーブル125から削除する。その後、ホスト計算機10は、特定した回復処理実行パスを、パス状態変化確認テーブル125に登録する。
次に、ホスト計算機10は、ステップS1142において、回復処理実行パスを特定できたか否かを判定する(S1143)。
回復処理実行パスを特定できなかった場合、ホスト計算機10は、すべてのパスがオンラインであると判定する。よって、ホスト計算機10は、そのままパス障害回復処理を終了する。
一方、回復処理実行パスを特定できた場合、ホスト計算機10は、オフラインのパスに対する障害検知処理(図20)を行う(S1144)。
次に、ホスト計算機10は、パス状態変化確認テーブル125を更新する(S1145)。
具体的には、ホスト計算機10は、パス状態変化確認テーブル125のレコードを上から順に選択する。そして、ホスト計算機10は、選択したレコードに対して以下の処理を行う。
ホスト計算機10は、選択したレコードから、パス番号1251を抽出する。次に、ホスト計算機10は、抽出したパス番号1251とパス障害情報テーブル122のパス番号1221とが一致するレコードを、パス障害情報テーブル122から選択する。
次に、ホスト計算機10は、選択したレコードから、稼動状況1222を抽出する。次に、ホスト計算機10は、パス状態変化確認テーブル125から選択したレコードの障害検知後状態1253に、抽出した稼動状況1222を格納する。
ホスト計算機10は、この処理を繰り返すことによって、パス状態変化確認テーブル125を更新する。
次に、ホスト計算機10は、特定した回復処理実行パスを、パス番号の低いものから順に選択する。そして、ホスト計算機10は、選択した回復処理実行パスに対して以下の処理を行う(S1146)。
まず、ホスト計算機10は、パス状態変化確認テーブル125を参照して、選択した回復処理実行パスの状態が障害検知処理(図20)の前後で変化したか否かを判定する(S1147)。
具体的には、ホスト計算機10は、選択した回復処理実行パスの識別子とパス状態変化確認テーブル125のパス番号1251とが一致するレコードを、パス状態変化確認テーブル125から選択する。次に、ホスト計算機10は、選択したレコードの障害検知前状態1252及び障害検知後状態1253に、「オフライン」が格納されているか否かを判定する。
障害検知前状態1252及び障害検知後状態1253に「オフライン」が格納されている場合、ホスト計算機10は、選択した回復処理実行パスの状態が変化していないと判定する。そこで、ホスト計算機10は、当該選択した回復処理実行パスに対する処理を終了する。
一方、障害検知後状態1253に「オンライン」が格納されていると、ホスト計算機10は、選択した回復処理実行パスの状態がオフラインからオンラインに変化したと判定する。つまり、ホスト計算機10は、選択した回復処理実行パスが障害から回復したと判定する。
この場合、ホスト計算機10は、選択した回復処理実行パスが障害原因箇所を経由しているか否かを判定する(S1148)。つまり、ホスト計算機10は、障害から回復した回復処理実行パスが、障害原因箇所を経由しているか否かを判定する。
具体的には、ホスト計算機10は、選択した回復処理実行パスの識別子とパス接続情報テーブル121のパス番号1211とが一致するレコードを、パス接続情報テーブル121から選択する。次に、ホスト計算機10は、選択したレコードから、HBA番号1212、CHA番号1213、CHAポート番号1214及びLU番号1215を抽出する。
次に、ホスト計算機10は、抽出したHBA番号1212、CHA番号1213、CHAポート番号1214及びLU番号1215のうち少なくとも一つと障害原因箇所テーブル123の障害原因箇所1231とが一致するレコードを、障害原因箇所テーブル123から選択する。
一致するレコードを選択できなかった場合、ホスト計算機10は、障害から回復した回復処理実行パスが障害原因箇所を経由していないと判定する。そこで、ホスト計算機10は、当該選択した回復処理実行パスに対する処理を終了する。
一方、一致するレコードを選択できた場合、ホスト計算機10は、選択した回復処理実行パスが障害原因箇所を経由していると判定する。そこで、ホスト計算機10は、当該回復処理実行パスが経由している障害原因箇所の障害が回復したと判定する。具体的には、ホスト計算機10は、選択したレコードの障害原因箇所1231の障害が回復したと判定する。
よって、ホスト計算機10は、選択したレコードの障害原因箇所1231を、障害回復箇所として管理サーバ30に通知する。管理サーバ30は、障害回復箇所を通知されると、障害回復確認処理を行う。なお、障害回復確認処理については、図24で詳細を説明する。
次に、ホスト計算機10は、選択したレコードを、障害原因箇所テーブル123から削除する。これによって、ホスト計算機10は、障害回復箇所に関する情報を、障害原因箇所テーブル123から削除する(S1149)。
そして、ホスト計算機10は、ステップS1146において選択した回復処理実行パスに対する処理を終了する。なお、ホスト計算機10は、回復処理実行パスのすべてをステップS1146において選択するまで処理を繰り返す。
ホスト計算機10は、回復処理実行パスのすべてを処理すると、パス障害回復処理を終了する。
図24は、本発明の第1の実施の形態の管理サーバ30によって実行される障害回復確認処理のフローチャートである。
管理サーバ30は、障害回復箇所をホスト計算機10から通知されると、障害回復確認処理を行う。
まず、管理サーバ30は、通知された障害回復箇所に接続されるホスト計算機10を特定する。但し、管理サーバ30は、障害回復箇所の通知元であるホスト計算機10を除くホスト計算機10を特定する(S3011)。
具体的には、管理サーバ30は、障害回復箇所に対応するテーブルを、LU接続先ホストテーブル321、CHA接続先ホストテーブル322及びCHAポート接続先ホストテーブル323の中から選択する。次に、管理サーバ30は、選択したテーブルを参照して、障害回復箇所に接続されるホスト計算機10を特定する。
例えば、障害回復箇所がCHA21の場合を説明する。
この場合、管理サーバ30は、障害回復箇所であるCHA21の識別子とCHA接続先ホストテーブル322のCHA番号32221とが一致するレコードを、CHA接続先ホストテーブル322から選択する。次に、管理サーバ30は、選択したレコードから、ホスト名3222を抽出する。そして、管理サーバ30は、抽出したホスト名3222によって識別されるホスト計算機10を、障害回復箇所に接続されるホスト計算機10として特定する。
次に、管理サーバ30は、ステップS3011においてホスト計算機10を特定できたか否かを判定する(S3012)。
ホスト計算機10を特定できなかった場合、管理サーバ30は、他のホスト計算機10に障害の回復の影響が及ばないと判定する。よって、管理サーバ30は、そのままステップS3016に進む。
一方、ホスト計算機10を特定できた場合、管理サーバ30は、特定したホスト計算機10に障害回復箇所を通知する(S3013)。ホスト計算機10は、管理サーバ30から障害回復箇所を通知されると、管理サーバ通知による障害回復処理を行う。なお、管理サーバ通知による障害回復処理については、図25で詳細を説明する。
次に、管理サーバ30は、障害回復箇所を通知したすべてのホスト計算機10から、障害原因箇所テーブル123を受信したか否かを判定する(S3014)。
障害回復箇所を通知したすべてのホスト計算機10から受信していない場合、管理サーバ30は、障害回復箇所を通知したすべてのホスト計算機10から障害原因箇所テーブル123を受信するまで待機する(S3017)。
一方、障害回復箇所を通知したすべてのホスト計算機10から受信すると、管理サーバ30は、受信した障害原因箇所テーブル123の障害原因箇所1231と全ホスト障害原因箇所テーブル324の障害原因箇所3241とが一致するか否かを判定する(S3015)。
障害原因箇所が一致する場合、管理サーバ30は、通知された障害回復箇所が正しいと判定する。よって、管理サーバ30は、そのままステップS3016に進む。
一方、障害原因箇所が一致しない場合、管理サーバ30は、通知された障害回復箇所が誤っていると判定する。よって、管理サーバ30は、エラーを管理者に通知する(S3018)。管理者は、エラーを通知されると、障害回復箇所がファイバチャネルスイッチ40又は2箇所以上のいずれかであると判断する。なお、管理サーバ30は、障害回復箇所がファイバチャネルスイッチ40又は2箇所以上のいずれかである旨を管理者に通知してもよい。
次に、管理サーバ30は、全ホスト障害原因箇所テーブル324を更新する(S3016)。
具体的には、管理サーバ30は、通知された障害回復箇所の識別子と全ホスト障害原因箇所テーブル324の障害原因箇所3241とが一致するレコードを、全ホスト障害原因箇所テーブル324から削除する。
そして、管理サーバ30は、障害回復確認処理を終了する。
図25は、本発明の第1の実施の形態のホスト計算機10によって実行される管理サーバ通知による障害回復処理のフローチャートである。
ホスト計算機10は、管理サーバ30から障害回復箇所を通知されると、管理サーバ通知による障害回復処理を行う。なお、管理サーバ30は、障害回復確認処理(図24)のステップS3013において、ホスト計算機10に障害回復箇所を通知する。
まず、ホスト計算機10は、パス接続情報テーブル121及びパス障害情報テーブル122を参照して、障害回復箇所経由パスを特定する(S1161)。ここでは、ホスト計算機10は、通知された障害回復箇所を経由するパスを特定する。次に、ホスト計算機10は、特定したパスの中から、オフラインのパスを特定する。そして、ホスト計算機10は、特定したパスを、障害回復箇所経由パスとして特定する。
具体的には、ホスト計算機10は、通知された障害回復箇所の識別子とパス接続情報テーブル121のHBA番号1212、CHA番号1213、CHAポート番号1214又はLU番号1215のいずれかとが一致するレコードを、パス接続情報テーブル121から選択する。次に、ホスト計算機10は、選択したレコードから、パス番号1211を抽出する。
次に、ホスト計算機10は、抽出したパス番号1211とパス障害情報テーブル122のパス番号1221とが一致するレコードを、パス障害情報テーブル122から選択する。次に、ホスト計算機10は、選択したレコードから、稼動状況1222を抽出する。そして、ホスト計算機10は、抽出した稼動状況1222に「オフライン」が格納されているか否かを判定する。
抽出した稼動状況1222に「オフライン」が格納されている場合、ホスト計算機10は、当該選択したレコードのパス番号1221によって識別されるパスを、障害回復箇所経由パスとして特定する。
次に、ホスト計算機10は、ステップS1161において、障害回復箇所経由パスを特定できたか否かを判定する(S1162)。
障害回復箇所経由パスを特定できなかった場合、ホスト計算機10は、通知された障害回復箇所によって影響を受けるパスが存在しないと判定する。よって、ホスト計算機10は、そのままステップS1169に進む。
一方、障害回復箇所経由パスを特定できた場合、ホスト計算機10は、特定した障害回復箇所経由パスを、パス状態変化確認テーブル125に登録する(S1163)。なお、パス状態変化確認テーブル125に情報が予め格納されている場合、ホスト計算機10は、当該格納されているすべての情報を、パス状態変化確認テーブル125から削除する。その後、ホスト計算機10は、特定した障害回復箇所経由パスを、パス状態変化確認テーブル125に登録する。
具体的には、ホスト計算機10は、特定した障害回復箇所経由パスの識別子を、パス状態変化確認テーブル125のパス番号1251に格納する。次に、ホスト計算機10は、パス状態変化確認テーブル125の障害検知前状態1252に、「オフライン」を格納する。
次に、ホスト計算機10は、オフラインのパスに対する障害検知処理(図20)を行う(S1164)。
次に、ホスト計算機10は、パス状態変化確認テーブル125を更新する(S1165)。
具体的には、ホスト計算機10は、パス状態変化確認テーブル125のレコードを上から順に選択する。そして、ホスト計算機10は、選択したレコードに対して以下の処理を行う。
ホスト計算機10は、選択したレコードから、パス番号1251を抽出する。次に、ホスト計算機10は、抽出したパス番号1251とパス障害情報テーブル122のパス番号1221とが一致するレコードを、パス障害情報テーブル122から選択する。
次に、ホスト計算機10は、選択したレコードから、稼動状況1222を抽出する。次に、ホスト計算機10は、パス状態変化確認テーブル125から選択したレコードの障害検知後状態1253に、抽出した稼動状況1222を格納する。
ホスト計算機10は、この処理を繰り返すことによって、パス状態変化確認テーブル125を更新する。
次に、ホスト計算機10は、障害回復箇所経由パスを、パス番号の低いものから順に選択する。そして、ホスト計算機10は、選択した障害回復箇所経由パスに対して以下の処理を行う(S1166)。
まず、ホスト計算機10は、パス状態変化確認テーブル125を参照して、選択した障害回復箇所経由パスの状態が障害検知処理(図20)の前後で変化したか否かを判定する(S1167)。
具体的には、ホスト計算機10は、選択した障害回復箇所経由パスの識別子とパス状態変化確認テーブル125のパス番号1251とが一致するレコードを、パス状態変化確認テーブル125から選択する。次に、ホスト計算機10は、選択したレコードの障害検知前状態1252及び障害検知後状態1253に、「オフライン」が格納されているか否かを判定する。
障害検知前状態1252及び障害検知後状態1253に「オフライン」が格納されている場合、ホスト計算機10は、選択した障害回復箇所経由パスの状態が変化していないと判定する。そこで、ホスト計算機10は、当該選択した障害回復箇所経由パスに対する処理を終了する。
一方、障害検知後状態1253に「オンライン」が格納されていると、ホスト計算機10は、選択した障害回復箇所経由パスの状態がオフラインからオンラインに変化したと判定する。つまり、ホスト計算機10は、選択した障害回復箇所経由パスが障害から回復したと判定する。更に、ホスト計算機10は、当該障害回復箇所経由パスが経由している障害原因箇所の障害も回復したと判定する。
この場合、ホスト計算機10は、障害原因箇所テーブル123を更新する(S1168)。
具体的には、ホスト計算機10は、選択した障害回復箇所経由パスの識別子とパス接続情報テーブル121のパス番号1211とが一致するレコードを、パス接続情報テーブル121から選択する。次に、ホスト計算機10は、選択したレコードから、HBA番号1212、CHA番号1213、CHAポート番号1214及びLU番号1215を抽出する。
次に、ホスト計算機10は、抽出したHBA番号1212、CHA番号1213、CHAポート番号1214及びLU番号1215のうち少なくとも一つと障害原因箇所テーブル123の障害原因箇所1231とが一致するレコードを、障害原因箇所テーブル123から削除する。これによって、ホスト計算機10は、障害から回復した障害原因箇所に関する情報を、障害原因箇所テーブル123から削除する。
そして、ホスト計算機10は、当該選択した障害回復箇所経由パスに対する処理を終了する。なお、ホスト計算機10は、ステップS1166においてすべての障害回復箇所経由パスを選択するまで処理を繰り返す。
ホスト計算機10は、すべての障害回復箇所経由パスを処理すると、更新した障害原因箇所テーブル123を管理サーバ30に送信する(S1169)。そして、ホスト計算機10は、管理サーバ通知による障害回復処理を終了する。
以上のように、本発明の実施の形態では、ホスト計算機10は、パスに障害が発生すると、当該パスと同じLU25にアクセス可能なパスを用いて障害検知信号を送信することによって、障害検知処理を行う。このとき、ホスト計算機10は、障害検知処理によって障害が検知されたパスを閉塞(オフライン)する。その後、ホスト計算機10は、障害が発生してないパスだけを用いて、I/O要求を送信する。なお、障害検知信号の送信による障害検知処理は、I/O要求の再送による障害検知処理よりも処理時間が短い。
そのため、本発明の実施の形態の計算機システムは、ラウンドロビンでパスを選択するシステムよりも、障害障害発生時における処理の遅延を減少させることができる。
また、本実施の形態では、ホスト計算機10は、パスに障害が発生すると、障害原因箇所を推定する。そして、ホスト計算機10は、推定した障害原因箇所に接続されるパスを閉塞(オフライン)する。つまり、ホスト計算機10は、障害の原因に関連するパスを閉塞できる。
更に、ホスト計算機10は、推定した障害原因箇所を管理サーバ30に通知する。管理サーバ30は、ホスト計算機10から障害原因箇所を通知されると、通知された障害原因箇所を他のホスト計算機10に通知する。当該他のホスト計算機10は、通知された障害原因箇所に接続されるパスを閉塞(オフライン)する。
そのため、本実施の形態の計算機システムでは、障害を検出したホスト計算機10以外のホスト計算機10も、障害に関連するパスを閉塞できる。
更に、ホスト計算機10は、障害原因箇所を通知されると、通知された障害原因箇所に接続されるパスを用いて障害検知信号を送信することによって、障害検知処理を行う。これによって、障害原因箇所を通知されたホスト計算機10も、自ら障害原因箇所を推定する。そして、障害原因箇所を通知されたホスト計算機10は、自ら推定した障害原因箇所を管理サーバ30に通知する。
そのため、管理サーバ30は、複数のホスト計算機10から通知された障害原因箇所を比較することによって、ホスト計算機10から通知された障害原因箇所の正当性を判断できる。
(第2の実施の形態)
本発明の第1の実施の形態では、ホスト計算機10は、障害が発生すると、代替パスを用いてI/O要求を送信した。一方、本発明の第2の実施の形態では、ホスト計算機10は、障害が発生すると、代替パスを用いてI/O要求を送信せずに、障害検知処理を行う。
本発明の第2の実施の形態の計算機システムの構成は、第1の実施の形態の計算機システム(図1)と同一である。よって、本発明の第2の実施の形態の計算機システムの構成については、説明を省略する。
また、本発明の第2の実施の形態の計算機システムの処理は、ロードバランス処理及び障害対応処理を除き、本発明の第1の実施の形態の計算機システムと同一である。よって、同一の処理については、説明を省略する。
図26は、本発明の第2の実施の形態のホスト計算機10によって実行されるロードバランス処理のフローチャートである。
本発明の第2の実施の形態のロードバランス処理は、ステップS1009が省略される点を除き、第1の実施の形態のロードバランス処理(図11)と同一である。同一の処理には同一の番号を付すことによって、説明を省略する。
本発明の第2の実施の形態では、ホスト計算機10は、代替パスを用いてI/O要求を送信しない。よって、ホスト計算機10は、障害対応処理(S1008)を終了すると、そのままステップS1001に戻る。
図27は、本発明の第2の実施の形態のホスト計算機10によって実行される障害対応処理のフローチャートである。
本発明の第2の実施の形態の障害対応処理は、代替パスに関する処理が省略されている点を除き、第1の実施の形態の障害対応処理(図12)と同一である。
なお、障害対応処理は、ロードバランス処理(図26)のステップS1008において実行される。
まず、ホスト計算機10は、障害が発生したパスを閉塞(オフライン)する。次に、ホスト計算機10は、パス障害情報テーブル122を更新する(S1011)。
次に、ホスト計算機10は、障害が発生したパスの識別子とロードバランスポイント切替テーブル124のロードバランスポイント1243とが一致するレコードを、ロードバランスポイント切替テーブル124から選択する。次に、ホスト計算機10は、選択したレコードの現在I/O回数1244に「0」を格納する(S1012)。
次に、ホスト計算機10は、障害が発生したパスと同じLU25にアクセス可能なパスを特定する。次に、ホスト計算機10は、特定したパスの中から、オンラインのパスを特定する。そして、ホスト計算機10は、特定したオンラインのパスを、障害検知実行パスとして特定する(S1018)。
次に、ホスト計算機10は、特定した障害検知実行パスに対して、障害対応時における障害検知処理(図14)を実行する(S1019)。
そして、ホスト計算機10は、障害対応処理を終了する。ホスト計算機10は、障害対応処理を終了すると、ロードバランス処理(図26)に戻る。更に、ホスト計算機10は、障害対応処理を終了すると、パス閉塞伝播処理を行う。つまり、ホスト計算機10は、ロードバランス処理及びパス閉塞伝播処理を並列的に実行する。
以上のように、本発明の第2の実施の形態では、ホスト計算機10は、障害が発生すると、代替パスを用いてI/O要求を送信せずに、障害検知処理を行う。