(57)【要約】【課題】  ファイルインターフェースを備える記憶制御システムの消費電力量を抑える。【解決手段】  １以上のマスタＣＨＮ２１ＡＭと、１以上のバックアップＣＨＮ２１ＡＣとが備えられる。１以上のバックアップＣＨＮ２１ＡＣの各々では、Ｉ／Ｏプロセッサ５０４は電源オン状態であるが、ＮＡＳプロセッサは電源オフ状態になっている。Ｉ／Ｏプロセッサ５０４は、共有メモリ２５に定期的にアクセスし、或るマスタＣＨＮ２１ＡＭにおいて障害が発生したことが共有メモリ２５に書かれていた場合には、ＮＡＳプロセッサ５０６の電源をターンオンし、自分を搭載しているバックアップＣＨＮ２１ＡＣをマスタＣＨＮ２１ＡＭに切替えるための処理を行う。【選択図】図１４
2005267111.tif 000002
【特許請求の範囲】
【請求項１】
記憶デバイスへのデータの格納を制御する記憶制御システムであって、
データを格納する複数の記憶デバイスと、
前記複数の記憶デバイスに対するデータの格納を制御する記憶デバイス制御部と、
前記記憶デバイス制御部に接続される接続部と、
前記記憶制御システムの外部のローカルエリアネットワークと前記接続部とに接続される複数のチャネル制御部と、
前記第一のチャネル制御部及び前記記憶デバイス制御部によってやり取りされる制御情報が格納される共有メモリと、
前記第一のチャネル制御部と前記記憶デバイス制御部との間でやり取りされるデータを一時的に保存するキャッシュメモリと
を備え、
前記複数のチャネル制御部には、一以上の第一のチャネル制御部と、一以上の第二のチャネル制御部とが含まれており、
前記第一のチャネル制御部は、前記ローカルエリアネットワークを介して受けたファイルレベルのデータをブロックレベルのデータに変換する第一のプロセッサと、前記ブロックレベルのデータを前記接続部及び前記記憶デバイス制御部を介して前記記憶デバイスへ格納する第二のプロセッサとを有し、通常状態において前記第一のプロセッサ及び前記第二のプロセッサは通常動作するものであり
前記第二のチャネル制御部は、前記ローカルエリアネットワークを介して受けたファイルレベルのデータをブロックレベルのデータに変換する第三のプロセッサと、前記ブロックレベルのデータを前記接続部及び前記記憶デバイス制御部を介して前記記憶デバイスへ格納する第四のプロセッサとを有し、前記第一のチャネル制御部が通常動作をしている場合には、前記第三のプロセッサは省電力状態であり、前記第一のチャネル制御部に障害が発生した場合には、前記第三のプロセッサは通常動作するものであり、
前記第一のチャネル制御部の前記第二のプロセッサ及び前記第二のチャネル制御部の前記第四のプロセッサは、前記共有メモリを利用して、前記第一のチャネル制御部に障害が発生したことを通信するものであることを特徴とする、
記憶制御システム。
【請求項２】
前記第一のチャネル制御部の前記第二のプロセッサは、前記障害が発生した旨を表す障害発生情報を前記共有メモリに書きこみ、
複数の前記第二のチャネル制御部のうちのいずれか１つの第二のチャネル制御部における第四のプロセッサは、前記障害発生情報を検出した場合には、他の第二のチャネル制御部が前記第一のチャネル制御部に切り替わることを禁止する排他処理を行って、前記１つの第二のチャネル制御部を前記第一のチャネル制御部に切替える切り替え処理を実行する、
請求項１記載の記憶制御システム。
【請求項３】
前記第一のチャネル制御部の前記第二のプロセッサは、前記障害が発生した場合、前記第一のプロセッサを省電力状態にし、
前記第二のチャネル制御部の前記第四のプロセッサは、前記第一のチャネル制御部において前記障害が発生したことを検出した場合には、前記第三のプロセッサの省電力状態を解除する、
請求項１記載の記憶制御システム。
【請求項４】
前記共有メモリには、前記複数のチャネル制御部の各々について、そのチャネル制御部が第一と第二のどちらのチャネル制御部であるかを示す区分情報が記録されており、
前記第二のプロセッサ又は前記第四のプロセッサが、前記障害が発生した場合、前記第一のチャネル制御部に対応した区分情報を第二のチャネル制御部であることを意味する情報に変更する、
請求項１記載の記憶制御システム。
【請求項５】
前記複数の記憶デバイスには、データを格納する論理的な記憶デバイスである２以上の論理ユニットが設けられており、
前記共有メモリには、前記複数のチャネル制御部の各々について、前記２以上の論理ユニットのうち、そのチャネル制御部が使用する論理ユニットがどれであるかを示す対応論理ユニット情報が記録されており、
前記第二のプロセッサ又は前記第四のプロセッサが、前記障害が発生した場合、前記第一のチャネル制御部に対応している第一の前記対応論理ユニット情報を消去し、前記第二のチャネル制御部に前記第一の対応論理ユニット情報を対応付ける、
請求項１記載の記憶制御システム。
【請求項６】
前記共有メモリには、前記第一のチャネル制御部と前記第二のチャネル制御部との対応関係を示す対応データが記憶されており、
前記対応データにおいて、前記第一のチャネル制御部と前記第二のチャネル制御部とは、以下の（Ａ）〜（Ｄ）の態様
（Ａ）一つの前記第一のチャネル制御部に対応する前記第二のチャネル制御部の数は１つであり、且つ、一つの前記第二のチャネル制御部に対応する前記第一のチャネル制御部の数も１つ、
（Ｂ）一つの前記第一のチャネル制御部に対応する前記第二のチャネル制御部の数は２以上あるが、一つの前記第二のチャネル制御部に対応する前記第一のチャネル制御部の数は１つ、
（Ｃ）一つの前記第二のチャネル制御部に対応する前記第一のチャネル制御部の数は２以上であるが、一つの前記第一のチャネル制御部に対応する前記第二のチャネル制御部の数は１つ、
（Ｄ）一つの前記第一のチャネル制御部に対応する前記第二のチャネル制御部の数は２以上あり、一つの前記第二のチャネル制御部に対応する前記第一のチャネル制御部の数も２以上である、
の少なくとも１つの態様で対応付けられており、
前記第二のチャネル制御部の前記第四のプロセッサは、前記対応データを参照し、自分を搭載する第二のチャネル制御部に対応した第一のチャネル制御部において障害が発生した場合に、前記自分を搭載する第二のチャネル制御部における第三のプロセッサの省電力状態を解除する、
請求項１記載の記憶制御システム。
【請求項７】
前記第一のチャネル制御部には、１つの第一のプロセッサに対して複数の第二のプロセッサが存在し、複数の第二のプロセッサのうちのいずれかの第二のプロセッサに不具合が発生しても、前記複数の第二のプロセッサのうちの他の第二のプロセッサが、前記障害が発生したことを前記共有メモリに書込む、
請求項１記載の記憶制御システム。
【請求項８】
前記複数のチャネル制御部には、一以上の第三のチャネル制御部が含まれており、
前記第三のチャネル制御部は、前記ローカルエリアネットワークを介して受けたファイルレベルのデータをブロックレベルのデータに変換する第五のプロセッサと、前記ブロックレベルのデータを前記接続部及び前記記憶デバイス制御部を介して前記記憶デバイスへ格納する第六のプロセッサとを有し、
前記第二のチャネル制御部及び前記第三のチャネル制御部は、前記障害が発生した前記第一のチャネル制御部に代わって前記第一のチャネル制御部として動作することができるよう待機状態になっているが、前記三のチャネル制御部の第五のプロセッサは、前記第二のチャネル制御部の第三のプロセッサと違って通常状態であり、
前記第一のチャネル制御部で前記障害が発生した場合、前記第三のチャネル制御部の前記第五のプロセッサが通常動作することで、前記第三のチャネル制御部が前記第一のチャネル制御部となり、且つ、前記第二のチャネル制御部の前記第三のプロセッサの省電力状態が解除されて、前記第二のチャネル制御部が前記第三のチャネル制御部となる、
請求項１記載の記憶制御システム。
【請求項９】
前記第一のチャネル制御部の前記第二のプロセッサは、前記障害が発生した旨を表す障害発生情報を前記共有メモリに書きこみ、
複数の前記第二のチャネル制御部の各々の前記第四のプロセッサ、及び、前記一以上の第三のチャネル制御部の各々の前記第六のプロセッサは、前記共有メモリにアクセスし、前記第六のプロセッサよりも前記第四のプロセッサが先に前記障害発生情報を検出した場合には、前記第四のプロセッサはそれを無視する、
請求項８記載の記憶制御システム。
【請求項１０】
前記障害が発生した第一のチャネル制御部が別のチャネル制御部が前記記憶制御システムに搭載された場合、前記別のチャネル制御部が前記第二のチャネル制御部として立ち上がる、
請求項８記載の記憶制御システム。
【請求項１１】
記憶デバイスへのデータの格納を制御する記憶制御システムの制御方法であって、
前記記憶制御システムが、前記記憶制御システムの外部のローカルエリアネットワークに接続されている複数のチャネル制御部を備え、
前記複数のチャネル制御部に、通常状態である一以上の第一のチャネル制御部と、前記第一のチャネル制御部として動作することができるよう待機状態になっている一以上の第二のチャネル制御部とが含まれており、
前記第一のチャネル制御部は、第一と第二のプロセッサを有し、
前記第二のチャネル制御部は、第三と第四のプロセッサを有し、
前記第一及び前記第三のプロセッサは、通常状態の場合、前記外部のローカルエリアネットワークからファイルレベルのデータを受信してブロックレベルのデータに変換するプロセッサであり、
前記第二及び前記第四のプロセッサは、通常状態の場合、前記変換されたブロックレベルのデータを前記記憶デバイスへ出力するプロセッサであり、
前記第二のプロセッサが、前記第一のチャネル制御部で障害が発生した場合に、前記障害が発生したことを共有メモリに記録するステップと、
前記第二のチャネル制御部の前記第四のプロセッサが、前記共有メモリを参照して、前記第一のチャネル制御部で前記障害が発生したことを検出するステップと、
前記第二のチャネル制御部の前記第三のプロセッサが、前記障害が発生したことが検出された場合、前記省電力状態を解除するステップと
を有する方法。
【請求項１２】
前記第一のチャネル制御部の前記第二のプロセッサが、前記障害が発生した旨を表す障害発生情報を前記共有メモリに書くステップと、
複数の前記第二のチャネル制御部のうちのいずれか１つの第二のチャネル制御部における前記第四のプロセッサが、前記障害発生情報を検出した場合、他の第二のチャネル制御部が前記第一のチャネル制御部に切り替わることを禁止する排他処理を行って、前記１つの第二のチャネル制御部を前記第一のチャネル制御部に切替える切り替え処理を実行するステップと
を有する請求項１１記載の方法。
【請求項１３】
前記第一のチャネル制御部の前記第二のプロセッサが、前記障害が発生した場合、前記第一のプロセッサを省電力状態にするステップと
前記第二のチャネル制御部の前記第四のプロセッサが、前記第一のチャネル制御部において前記障害が発生したことを検出した場合、前記第三のプロセッサの省電力状態を解除するステップと、
を有する請求項１１記載の方法。
【請求項１４】
前記共有メモリには、前記複数のチャネル制御部の各々について、そのチャネル制御部が第一と第二のどちらのチャネル制御部であるかを示す区分情報が記録されており、
前記第二のプロセッサ又は前記第四のプロセッサが、前記障害が発生した場合、前記第一のチャネル制御部に対応した区分情報を第二のチャネル制御部であることを意味する情報に変更するステップを有する請求項１１記載の方法。
【請求項１５】
前記複数の記憶デバイスには、データを格納する論理的な記憶デバイスである２以上の論理ユニットが設けられており、
前記共有メモリには、前記複数のチャネル制御部の各々について、前記２以上の論理ユニットのうち、そのチャネル制御部が使用する論理ユニットがどれであるかを示す対応論理ユニット情報が記録されており、
前記第二のプロセッサ又は前記第四のプロセッサが、前記障害が発生した場合、前記第一のチャネル制御部に対応している第一の前記対応論理ユニット情報を消去し、前記第二のチャネル制御部に前記第一の対応論理ユニット情報を対応付けるステップ、
を有する請求項１１記載の方法。
【請求項１６】
前記共有メモリには、前記第一のチャネル制御部と前記第二のチャネル制御部との対応関係を示す対応データが記憶されており、
前記対応データにおいて、前記第一のチャネル制御部と前記第二のチャネル制御部とは、以下の（Ａ）〜（Ｄ）の態様
（Ａ）一つの前記第一のチャネル制御部に対応する前記第二のチャネル制御部の数は１つであり、且つ、一つの前記第二のチャネル制御部に対応する前記第一のチャネル制御部の数も１つ、
（Ｂ）一つの前記第一のチャネル制御部に対応する前記第二のチャネル制御部の数は２以上あるが、一つの前記第二のチャネル制御部に対応する前記第一のチャネル制御部の数は１つ、
（Ｃ）一つの前記第二のチャネル制御部に対応する前記第一のチャネル制御部の数は２以上であるが、一つの前記第一のチャネル制御部に対応する前記第二のチャネル制御部の数は１つ、
（Ｄ）一つの前記第一のチャネル制御部に対応する前記第二のチャネル制御部の数は２以上あり、一つの前記第二のチャネル制御部に対応する前記第一のチャネル制御部の数も２以上である、
の少なくとも１つの態様で対応付けられており、
前記第二のチャネル制御部の前記第四のプロセッサが、前記対応データを参照し、自分を搭載する第二のチャネル制御部に対応した第一のチャネル制御部において障害が発生した場合に、前記自分を搭載する第二のチャネル制御部における第三のプロセッサの省電力状態を解除するステップ、
を有する請求項１１記載の方法。
【請求項１７】
前記第一のチャネル制御部には、１つの第一のプロセッサに対して複数の第二のプロセッサが存在し、
複数の第二のプロセッサのうちのいずれかの第二のプロセッサに不具合が発生した場合、前記複数の第二のプロセッサのうちの他の第二のプロセッサが、前記障害が発生したことを前記共有メモリに書込むステップ、
を有する請求項１１記載の方法。
【請求項１８】
前記複数のチャネル制御部に、前記第一のチャネル制御部として動作することができるよう待機状態になっている一以上の第三のチャネル制御部が含まれており、
前記第三のチャネル制御部は、通常状態である第五と第六のプロセッサを有し、
前記第五のプロセッサは、通常状態の場合、前記外部のローカルエリアネットワークからファイルレベルのデータを受信してブロックレベルのデータに変換するプロセッサであり、
前記第六のプロセッサは、通常状態の場合、前記変換されたブロックレベルのデータを前記記憶デバイスへ出力するプロセッサであり、
前記第三のチャネル制御部の前記第六のプロセッサが、前記共有メモリを参照して、前記第一のチャネル制御部で前記障害が発生したことを検出するステップと、
前記第三のチャネル制御部の前記第五のプロセッサが、前記第一のチャネル制御部の前記第一のプロセッサが使用していた情報を取得して、前記第三のチャネル制御部を前記第一のチャネル制御部として動作させるステップと、
前記第二のチャネル制御部の前記第三のプロセッサが、前記第三のチャネル制御部が前記第一のチャネル制御部と動作する場合、前記省電力状態を解除するステップと
を有する請求項１１記載の方法。
【請求項１９】
前記第一のチャネル制御部の前記第二のプロセッサが、前記障害が発生した旨を表す障害発生情報を前記共有メモリに書くステップと
複数の前記第二のチャネル制御部の各々の前記第四のプロセッサ、及び、前記一以上の第三のチャネル制御部の各々の前記第六のプロセッサが、前記共有メモリにアクセスするステップと、
前記第六のプロセッサよりも前記第四のプロセッサが先に前記障害発生情報を検出した場合には、前記第四のプロセッサがそれを無視するステップと
を有する請求項１８記載の方法。
【請求項２０】
前記障害が発生した第一のチャネル制御部が別のチャネル制御部が前記記憶制御システムに搭載された場合、前記別のチャネル制御部が前記第二のチャネル制御部として立ち上がるステップと
を更に有する請求項１８記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記憶制御システム及び記憶制御システムの制御方法に関する。
【背景技術】
【０００２】
例えば、データセンタ等のような大規模なデータを取り扱うデータベースシステムでは、ホストコンピュータとは別に構成された記憶制御システムを用いてデータを管理する。この記憶制御システムは、例えば、多数の記憶デバイスをアレイ状に配設して構成されたRAID（Redundant Array of Independent Inexpensive Disks）のようなディスクアレイシステムである。
【０００３】
このような記憶制御システムには、例えば、特開２００３−１６２４３９号公報に開示されているように、ファイル単位のＩ／Ｏ要求を処理するファイルサーバを搭載した複数のファイルインターフェースと、ディスクブロック単位のＩ／Ｏ要求を処理するブロックインターフェースとを備えたものがある。
【０００４】
【特許文献１】特開２００３−１６２４３９号公報。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上記のようなファイルインターフェースは、ブロックインターフェースよりも多くの処理、例えば、ファイル単位のＩ／Ｏ要求をディスクブロック単位のＩ／Ｏ要求に変換するという処理を行う。このため、ファイルインターフェースは、ブロックインターフェースよりも高機能になり、より多くの電力を消費する。
【０００６】
従って、本発明の目的は、ファイルインターフェースを備える記憶制御システムの消費電力量を抑えることにある。
【０００７】
本発明の更なる目的は、後の記載から明らかになるであろう。
【課題を解決するための手段】
【０００８】
本発明の第１の観点に従う記憶制御システムは、記憶デバイスへのデータの格納を制御する記憶制御システムであって、データを格納する複数の記憶デバイスと、前記複数の記憶デバイスに対するデータの格納を制御する記憶デバイス制御部と、前記記憶デバイス制御部に接続される接続部と、前記記憶制御システムの外部のローカルエリアネットワークと前記接続部とに接続される複数のチャネル制御部と、前記第一のチャネル制御部及び前記記憶デバイス制御部によってやり取りされる制御情報が格納される共有メモリと、前記第一のチャネル制御部と前記記憶デバイス制御部との間でやり取りされるデータを一時的に保存するキャッシュメモリとを備える。前記複数のチャネル制御部には、一以上の第一のチャネル制御部と、一以上の第二のチャネル制御部とが含まれている。前記第一のチャネル制御部は、前記ローカルエリアネットワークを介して受けたファイルレベルのデータをブロックレベルのデータに変換する第一のプロセッサと、前記ブロックレベルのデータを前記接続部及び前記記憶デバイス制御部を介して前記記憶デバイスへ格納する第二のプロセッサとを有し、通常状態（例えば電源オン状態）において前記第一のプロセッサ及び前記第二のプロセッサは通常動作することができるものである。前記第二のチャネル制御部は、前記ローカルエリアネットワークを介して受けたファイルレベルのデータをブロックレベルのデータに変換する第三のプロセッサと、前記ブロックレベルのデータを前記接続部及び前記記憶デバイス制御部を介して前記記憶デバイスへ格納する第四のプロセッサとを有し、前記第一のチャネル制御部が通常動作をしている場合には、前記第三のプロセッサは省電力状態であり、前記第一のチャネル制御部に障害が発生した場合には、前記第三のプロセッサは通常動作するものである。前記第一のチャネル制御部の前記第二のプロセッサ及び前記第二のチャネル制御部の前記第四のプロセッサは、前記共有メモリを利用して、前記第一のチャネル制御部に障害が発生したことを通信する。
【０００９】
本発明の第１の観点に従う記憶制御システムの第１の実施態様では、前記第一のチャネル制御部の前記第二のプロセッサは、前記障害が発生した旨を表す障害発生情報を前記共有メモリに書きこむ。複数の前記第二のチャネル制御部のうちのいずれか１つの第二のチャネル制御部における第四のプロセッサは、前記障害発生情報を検出した場合には、他の第二のチャネル制御部が前記第一のチャネル制御部に切り替わることを禁止する排他処理を行って、前記１つの第二のチャネル制御部を前記第一のチャネル制御部に切替える切り替え処理を実行する。具体的には、例えば、前記１つの第二のチャネル制御部における第四のプロセッサは、前記第一のチャネル制御部として動作するのに必要な引継ぎ情報が格納されている共有記憶領域に他の第二チャネル制御部がアクセスすることを禁止してから、前記共有記憶領域にアクセスし、前記共有記憶領域に格納されている前記引継ぎ情報を取得する。
【００１０】
本発明の第１の観点に従う記憶制御システムの第２の実施態様では、前記第一のチャネル制御部の前記第二のプロセッサは、前記障害が発生した場合、前記第一のプロセッサを省電力状態にする。前記第二のチャネル制御部の前記第四のプロセッサは、前記第一のチャネル制御部において前記障害が発生したことを検出した場合には、前記第三のプロセッサの省電力状態を解除する。
【００１１】
本発明の第１の観点に従う記憶制御システムの第３の実施態様では、前記共有メモリには、前記複数のチャネル制御部の各々について、そのチャネル制御部が第一と第二のどちらのチャネル制御部であるかを示す区分情報が記録されている。例えば、前記第二のプロセッサ又は前記第四のプロセッサが、前記障害が発生した場合、前記第一のチャネル制御部に対応した区分情報を第二のチャネル制御部であることを意味する情報に変更する。
【００１２】
本発明の第１の観点に従う記憶制御システムの第４の実施態様では、前記複数の記憶デバイスには、データを格納する論理的な記憶デバイスである２以上の論理ユニットが設けられている。前記共有メモリには、前記複数のチャネル制御部の各々について、前記２以上の論理ユニットのうち、そのチャネル制御部が使用する論理ユニットがどれであるかを示す対応論理ユニット情報が記録されている。例えば、前記第二のプロセッサ又は前記第四のプロセッサが、前記障害が発生した場合、前記第一のチャネル制御部に対応している第一の前記対応論理ユニット情報を消去し、前記第二のチャネル制御部に前記第一の対応論理ユニット情報を対応付ける。
【００１３】
本発明の第１の観点に従う記憶制御システムの第５の実施態様では、前記共有メモリには、前記第一のチャネル制御部と前記第二のチャネル制御部との対応関係を示す対応データが記憶されている。前記対応データにおいて、前記第一のチャネル制御部と前記第二のチャネル制御部とは、以下の（Ａ）〜（Ｄ）の態様
（Ａ）一つの前記第一のチャネル制御部に対応する前記第二のチャネル制御部の数は１つであり、且つ、一つの前記第二のチャネル制御部に対応する前記第一のチャネル制御部の数も１つ、
（Ｂ）一つの前記第一のチャネル制御部に対応する前記第二のチャネル制御部の数は２以上あるが、一つの前記第二のチャネル制御部に対応する前記第一のチャネル制御部の数は１つ、
（Ｃ）一つの前記第二のチャネル制御部に対応する前記第一のチャネル制御部の数は２以上であるが、一つの前記第一のチャネル制御部に対応する前記第二のチャネル制御部の数は１つ、
（Ｄ）一つの前記第一のチャネル制御部に対応する前記第二のチャネル制御部の数は２以上あり、一つの前記第二のチャネル制御部に対応する前記第一のチャネル制御部の数も２以上である、
の少なくとも１つの態様で対応付けられている。この場合、例えば、前記第二のチャネル制御部の前記第四のプロセッサは、前記対応データを参照し、自分を搭載する第二のチャネル制御部に対応した第一のチャネル制御部において障害が発生した場合に、前記自分を搭載する第二のチャネル制御部における第三のプロセッサの省電力状態を解除する。
【００１４】
本発明の第１の観点に従う記憶制御システムの第６の実施態様では、前記第一のチャネル制御部には、１つの第一のプロセッサに対して複数の第二のプロセッサが存在し、複数の第二のプロセッサのうちのいずれかの第二のプロセッサに不具合が発生しても、前記複数の第二のプロセッサのうちの他の第二のプロセッサが、前記障害が発生したことを前記共有メモリに書込む。
【００１５】
本発明の第１の観点に従う記憶制御システムの第７の実施態様では、前記複数のチャネル制御部には、一以上の第三のチャネル制御部が含まれている。前記第三のチャネル制御部は、前記ローカルエリアネットワークを介して受けたファイルレベルのデータをブロックレベルのデータに変換する第五のプロセッサと、前記ブロックレベルのデータを前記接続部及び前記記憶デバイス制御部を介して前記記憶デバイスへ格納する第六のプロセッサとを有する。前記第二のチャネル制御部及び前記第三のチャネル制御部は、前記障害が発生した前記第一のチャネル制御部に代わって前記第一のチャネル制御部として動作することができるよう待機状態になっているが、前記三のチャネル制御部の第五のプロセッサは、前記第二のチャネル制御部の第三のプロセッサと違って通常状態である。前記第一のチャネル制御部で前記障害が発生した場合、前記第三のチャネル制御部の前記第五のプロセッサが通常動作することで、前記第三のチャネル制御部が前記第一のチャネル制御部となり、且つ、前記第二のチャネル制御部の前記第三のプロセッサの省電力状態が解除されて、前記第二のチャネル制御部が前記第三のチャネル制御部となる。
【００１６】
本発明の第１の観点に従う記憶制御システムの第８の実施態様では、前記第７の実施態様において、前記第一のチャネル制御部の前記第二のプロセッサは、前記障害が発生した旨を表す障害発生情報を前記共有メモリに書きこむ。複数の前記第二のチャネル制御部の各々の前記第四のプロセッサ、及び、前記一以上の第三のチャネル制御部の各々の前記第六のプロセッサは、前記共有メモリにアクセスし、前記第六のプロセッサよりも前記第四のプロセッサが先に前記障害発生情報を検出した場合には、前記第四のプロセッサはそれを無視する。
【００１７】
本発明の第１の観点に従う記憶制御システムの第９の実施態様では、前記第７の実施態様において、前記障害が発生した第一のチャネル制御部が別のチャネル制御部が前記記憶制御システムに搭載された場合、前記別のチャネル制御部が前記第二のチャネル制御部として立ち上がる。具体的には、例えば、前記第二、第四又は第六のプロセッサが、前記障害が発生した第一のチャネル制御部に対応する区分情報を第二のチャネル制御部を意味する情報にした後に、前記障害が発生した第一のチャネル制御部が前記別のチャネル制御部に交換される。そして、交換された別のチャネル制御部に搭載されている或るプロセッサが、その別のチャネル制御部に対応する区分情報として、前記障害が発生した第一チャネル制御部に対応する区分情報を検出することにより、前記別のチャネル制御部を第二のチャネル制御部として立ち上げる。
【００１８】
本発明の第２の観点に従う方法は、記憶デバイスへのデータの格納を制御する記憶制御システムの制御方法である。前記記憶制御システムが、前記記憶制御システムの外部のローカルエリアネットワークに接続されている複数のチャネル制御部を備える。前記複数のチャネル制御部に、通常状態である一以上の第一のチャネル制御部と、前記第一のチャネル制御部として動作することができるよう待機状態になっている一以上の第二のチャネル制御部とが含まれている。前記第一のチャネル制御部は、第一と第二のプロセッサを有し、前記第二のチャネル制御部は、第三と第四のプロセッサを有する。前記第一及び前記第三のプロセッサは、通常状態の場合、前記外部のローカルエリアネットワークからファイルレベルのデータを受信してブロックレベルのデータに変換するプロセッサである。前記第二及び前記第四のプロセッサは、通常状態の場合、前記変換されたブロックレベルのデータを前記記憶デバイスへ出力するプロセッサである。この場合、前記方法は、前記第二のプロセッサが、前記第一のチャネル制御部で障害が発生した場合に、前記障害が発生したことを共有メモリに記録するステップと、前記第二のチャネル制御部の前記第四のプロセッサが、前記共有メモリを参照して、前記第一のチャネル制御部で前記障害が発生したことを検出するステップと、前記第二のチャネル制御部の前記第三のプロセッサが、前記障害が発生したことが検出された場合、前記省電力状態を解除するステップとを有する。
【００１９】
本発明の第２の観点に従う方法の第１の実施態様では、前記第一のチャネル制御部の前記第二のプロセッサが、前記障害が発生した旨を表す障害発生情報を前記共有メモリに書くステップを行う。また、複数の前記第二のチャネル制御部のうちのいずれか１つの第二のチャネル制御部における前記第四のプロセッサが、前記障害発生情報を検出した場合、他の第二のチャネル制御部が前記第一のチャネル制御部に切り替わることを禁止する排他処理を行って、前記１つの第二のチャネル制御部を前記第一のチャネル制御部に切替える切り替え処理を実行するステップを行う。
【００２０】
本発明の第２の観点に従う方法の第２の実施態様では、前記第一のチャネル制御部の前記第二のプロセッサが、前記障害が発生した場合、前記第一のプロセッサを省電力状態にするステップを行う。また、前記第二のチャネル制御部の前記第四のプロセッサが、前記第一のチャネル制御部において前記障害が発生したことを検出した場合、前記第三のプロセッサの省電力状態を解除するステップを行う。
【００２１】
本発明の第２の観点に従う方法の第３の実施態様では、前記共有メモリには、前記複数のチャネル制御部の各々について、そのチャネル制御部が第一と第二のどちらのチャネル制御部であるかを示す区分情報が記録されており、前記第二のプロセッサ又は前記第四のプロセッサが、前記障害が発生した場合、前記第一のチャネル制御部に対応した区分情報を第二のチャネル制御部であることを意味する情報に変更するステップを行う。
【００２２】
本発明の第２の観点に従う方法の第４の実施態様では、前記複数の記憶デバイスには、データを格納する論理的な記憶デバイスである２以上の論理ユニットが設けられており、前記共有メモリには、前記複数のチャネル制御部の各々について、前記２以上の論理ユニットのうち、そのチャネル制御部が使用する論理ユニットがどれであるかを示す対応論理ユニット情報が記録されており、前記第二のプロセッサ又は前記第四のプロセッサが、前記障害が発生した場合、前記第一のチャネル制御部に対応している第一の前記対応論理ユニット情報を消去し、前記第二のチャネル制御部に前記第一の対応論理ユニット情報を対応付けるステップを行う。
【００２３】
本発明の第２の観点に従う方法の第５の実施態様では、前記共有メモリには、前記第一のチャネル制御部と前記第二のチャネル制御部との対応関係を示す対応データが記憶されており、前記対応データにおいて、前記第一のチャネル制御部と前記第二のチャネル制御部とは、以下の（Ａ）〜（Ｄ）の態様
（Ａ）一つの前記第一のチャネル制御部に対応する前記第二のチャネル制御部の数は１つであり、且つ、一つの前記第二のチャネル制御部に対応する前記第一のチャネル制御部の数も１つ、
（Ｂ）一つの前記第一のチャネル制御部に対応する前記第二のチャネル制御部の数は２以上あるが、一つの前記第二のチャネル制御部に対応する前記第一のチャネル制御部の数は１つ、
（Ｃ）一つの前記第二のチャネル制御部に対応する前記第一のチャネル制御部の数は２以上であるが、一つの前記第一のチャネル制御部に対応する前記第二のチャネル制御部の数は１つ、
（Ｄ）一つの前記第一のチャネル制御部に対応する前記第二のチャネル制御部の数は２以上あり、一つの前記第二のチャネル制御部に対応する前記第一のチャネル制御部の数も２以上である、
の少なくとも１つの態様で対応付けられており、前記第二のチャネル制御部の前記第四のプロセッサが、前記対応データを参照し、自分を搭載する第二のチャネル制御部に対応した第一のチャネル制御部において障害が発生した場合に、前記自分を搭載する第二のチャネル制御部における第三のプロセッサの省電力状態を解除するステップを行う。
【００２４】
本発明の第２の観点に従う方法の第６の実施態様では、前記第一のチャネル制御部には、１つの第一のプロセッサに対して複数の第二のプロセッサが存在し、複数の第二のプロセッサのうちのいずれかの第二のプロセッサに不具合が発生した場合、前記複数の第二のプロセッサのうちの他の第二のプロセッサが、前記障害が発生したことを前記共有メモリに書込むステップを行う。
【００２５】
本発明の第２の観点に従う方法の第７の実施態様では、前記複数のチャネル制御部に、前記第一のチャネル制御部として動作することができるよう待機状態になっている一以上の第三のチャネル制御部が含まれており、前記第三のチャネル制御部は、通常状態である第五と第六のプロセッサを有し、前記第五のプロセッサは、通常状態の場合、前記外部のローカルエリアネットワークからファイルレベルのデータを受信してブロックレベルのデータに変換するプロセッサであり、前記第六のプロセッサは、通常状態の場合、前記変換されたブロックレベルのデータを前記記憶デバイスへ出力するプロセッサであり、前記第三のチャネル制御部の前記第六のプロセッサが、前記共有メモリを参照して、前記第一のチャネル制御部で前記障害が発生したことを検出するステップを行い、前記第三のチャネル制御部の前記第五のプロセッサが、前記第一のチャネル制御部の前記第一のプロセッサが使用していた情報を取得して、前記第三のチャネル制御部を前記第一のチャネル制御部として動作させるステップを行い、前記第二のチャネル制御部の前記第三のプロセッサが、前記第三のチャネル制御部が前記第一のチャネル制御部と動作する場合、前記省電力状態を解除するステップを行う。
【００２６】
本発明の第２の観点に従う方法の第８の実施態様では、前記第７の実施態様において、前記第一のチャネル制御部の前記第二のプロセッサが、前記障害が発生した旨を表す障害発生情報を前記共有メモリに書くステップを行い、複数の前記第二のチャネル制御部の各々の前記第四のプロセッサ、及び、前記一以上の第三のチャネル制御部の各々の前記第六のプロセッサが、前記共有メモリにアクセスするステップを行い、前記第六のプロセッサよりも前記第四のプロセッサが先に前記障害発生情報を検出した場合には、前記第四のプロセッサがそれを無視するステップを行う。
【００２７】
本発明の第２の観点に従う方法の第９の実施態様では、前記第８の実施態様において、前記障害が発生した第一のチャネル制御部が別のチャネル制御部が前記記憶制御システムに搭載された場合、前記別のチャネル制御部が前記第二のチャネル制御部として立ち上がるステップを行う。
【発明の効果】
【００２８】
本発明によれば、ファイルインターフェースを備える記憶制御システムの消費電力量を抑えることができる。
【発明を実施するための最良の形態】
【００２９】
本発明の一実施形態の概要の一つを説明する。
【００３０】
本実施形態では、記憶制御システムが、複数のディスク型記憶装置と、複数のディスク型記憶装置に対するインターフェースとなるディスクアダプタと、複数のＮＡＳ（Network Area Storage）ブレードとを備える。
【００３１】
複数のＮＡＳブレードの各々には、ＮＡＳプロセッサと、１以上のＩ／Ｏ（Input/Output）プロセッサとが備えられる。ＮＡＳプロセッサは、Ｉ／Ｏプロセッサよりも、高性能のプロセッサ（例えば動作クロック周波数が高いプロセッサ）であり且つ多くの電力を消費するものである。ＮＡＳプロセッサは、記憶制御システムの外部の通信ネットワーク（例えばＬＡＮ）を介してファイルレベルのデータを受信し、それをブロックレベルのデータに変換する。Ｉ／Ｏプロセッサは、変換されたブロックレベルのデータをディスクアダプタに出力する。
【００３２】
複数のＮＡＳブレードには、１以上のマスタＮＡＳブレードと、１以上のバックアップＮＡＳブレードとが含まれている。１以上のマスタＮＡＳブレードの各々では、ＮＡＳプロセッサもＩ／Ｏプロセッサも通常状態（例えばＮＡＳプロセッサの電源がオン状態）になっている。一方、１以上のバックアップＮＡＳブレードの各々では、Ｉ／Ｏプロセッサは通常状態であるが、ＮＡＳプロセッサは省電力状態（例えばＮＡＳプロセッサの電源がオフ状態）になっている。すなわち、各バックアップＮＡＳブレードは、マスタＮＡＳブレードの代わりとして動作できるようにいわゆる待機状態になっているが、ＮＡＳプロセッサを通常状態にしたままの待機状態（ホットスタンバイ状態）ではなく、ＮＡＳプロセッサを省電力状態にしての待機状態（コールドスタンバイ状態）になっている。
【００３３】
この場合、或るマスタＮＡＳブレードにおいて障害が発生した場合、そのマスタＮＡＳブレードのＮＡＳプロセッサ（以下、マスタＮＡＳプロセッサ）は省電力状態になる。例えば、そのマスタＮＡＳブレードのＩ／Ｏプロセッサが、マスタＮＡＳプロセッサを通常状態から省電力状態にする。
【００３４】
そして、上記或るマスタＮＡＳブレードで障害が発生したことを検出したバックアップＮＡＳブレードにおいて、省電力状態になっていたＮＡＳプロセッサ（以下、バックアップＮＡＳプロセッサ）が通常状態になる。例えば、そのバックアップＮＡＳブレードのＩ／Ｏプロセッサが、バックアップＮＡＳプロセッサを省電力状態から通常状態にする。通常状態になったバックアップＮＡＳプロセッサは、上記或るマスタＮＡＳブレードに関する情報（例えば、そのマスタＮＡＳブレードが管理していたファイルメタデータ）を取得して、通常状態のマスタＮＡＳプロセッサとして駆動する。
【００３５】
以下、図面を参照して、本実施形態について詳述する。
【００３６】
図１は、本発明の一実施形態に係る記憶制御システムの外観の概略を示す。
【００３７】
記憶制御システム６００は、例えば、基本筐体１０と複数の増設筐体１２とから構成することができる（基本筐体１１のみで構成されても良い）。
【００３８】
基本筐体１０は、記憶制御システム６００の最小構成単位である。この基本筐体１０には、例えば、複数のディスク型記憶装置（例えばハードディスクドライブ（ＨＤＤ））３００と、複数の制御パッケージ（例えば後述するチャネル制御部又はディスク制御部）１０５と、複数の電源ユニット４００と、複数のバッテリユニット５００とがそれぞれ着脱可能に設けられている。また、基本筐体１０には、複数の冷却ファン１３が設けられている。
【００３９】
各増設筐体１２は、記憶制御システム６００のオプションであり、例えば、１つの基本筐体１０に最大４個の増設筐体１２を接続することができる。各増設筐体１２には、複数の冷却ファン１３が設けられている。また、各増設筐体１２には、複数のディスク型記憶装置３００と、複数の電源ユニット４００と、複数のバッテリユニット５００とがそれぞれ着脱可能に設けられており、それらの各々は、例えば、基本筐体１０に設けられた制御パッケージ１０５が有する制御機能により制御される。
【００４０】
図２は、本実施形態に係る記憶システムの構成を示すブロック図である。
【００４１】
１又は複数のホスト装置１０Ａの各々は、例えば、ＣＰＵ（Central
Processing Unit）やメモリ等の情報処理資源を備えたコンピュータ装置であり、例えば、パーソナルコンピュータ、ワークステーション、メインフレーム等として構成される。ホスト装置１０Ａは、例えば、キーボードスイッチやポインティングデバイス、マイクロフォン等の情報入力装置（図示せず）と、例えば、モニタディスプレイやスピーカー等の情報出力装置（図示せず）とを備えている。さらに、ホスト装置１０Ａは、例えば、記憶制御システム６００が提供する記憶領域を使用するデータベースソフトウェア等のアプリケーションプログラム１１と、通信ネットワークＣＮ１を介して記憶制御システム６００にアクセスするためのアダプタ１２Ａとが設けられている。
【００４２】
ホスト装置１０Ａは、通信ネットワークＣＮ１を介して記憶制御システム６００に接続されている。通信ネットワークＣＮ１は、ファイルレベルのデータがやり取りされる通信ネットワークであり、例えば、ＬＡＮ、インターネット、専用回線、公衆回線等を場合に応じて適宜用いることができる（以下、第１の通信ネットワークを「ＬＡＮ」であるとする）。ＬＡＮを介するデータ通信は、例えば、TCP/IP（Transmission Control Protocol/Internet Protocol）プロトコルに従って行われる。ホスト装置１０Ａは、ファイル名を指定してファイル単位でのデータ入出力を記憶制御システム６００に要求する。ＬＡＮＣＮ１に接続されるアダプタ１２Ａは、例えばＬＡＮ対応のネットワークカード（「ＰＯＲＴ」と図示）である。
【００４３】
記憶制御システム６００は、例えば、アレイ状に配列された多数のディスク記憶装置を備えるＲＡＩＤシステムである。記憶制御システム６００は、記憶制御サブシステム２０と、ディスクユニット３０とに大別することができる。記憶制御サブシステム２０は、例えば、チャネル制御部２１と、ディスク制御部８００と、ＳＶＰ（Service Processor）２３と、キャッシュメモリ２４と、共有メモリ２５と、接続部２６とを備えている。チャネル制御部２１には、例えば、複数のＮＡＳブレード（チャネルアダプタＮＡＳと呼ばれることもある、以下、チャネルアダプタＮＡＳを略して「ＣＨＮ」と称する）２１Ａが含まれる。ディスク制御部８００には、複数のディスクアダプタ（ＤＫＡ）２２が含まれる。
【００４４】
ＣＨＮ２１Ａは、ホスト装置１０Ａとの間のデータ通信を行うものである。ＣＨＮ２１Ａは、ホスト装置１０Ａと通信を行うための通信ポート２０７Ａを備えている。また、ＣＨＮ２１Ａは、例えば、ＣＰＵやメモリ等を備えたマイクロコンピュータシステムとして構成されており、ホスト装置１０Ａから受信した各種コマンドを解釈して実行する。ＣＨＮ２１Ａには、そのＣＨＮ２１Ａを識別するためのネットワークアドレス（例えば、ＩＰアドレスやＷＷＮ）が割り当てられている。ＣＨＮ２１Ａは、ホスト装置１０からＬＡＮＣＮ１を介してファイル単位でのＩ／Ｏコマンド（例えば、ファイル名と、そのファイル名を持つファイルをリード又はライトする命令とを含んだコマンド、以下、「ファイルＩ／Ｏコマンド」と言う）を受けて、そのファイルＩ／Ｏコマンドを処理するＮＡＳ（Network Attached Storage）として振る舞うことができるようになっている。ＣＨＮ２１Ａの構成及び機能については後に詳述する。
【００４５】
各ＤＫＡ２２は、ディスクユニット３０内の論理的な記憶ユニット（以下、ＬＵ）３１との間のデータ授受を行うものである。各ＤＫＡ２２は、ＬＵ３１を備えるディスク型記憶装置４００に接続するための通信ポート２２Ａを備えている。また、各ＤＫＡ２２は、ＣＰＵやメモリ等を備えたマイクロコンピュータシステムとして構成されている。各ＤＫＡ２２は、ＣＨＮ２１Ａ或いはＣＨＡ２１Ｃから受信したデータをＬＵ３１に書込んだり、また、ＬＵ３１から読み出したデータをＣＨＮ２１Ａ或いはＣＨＡ２１Ｃに送信したりする。各ＤＫＡ２２は、ＬＵ３１との間でデータ入出力を行う場合、論理的なアドレスを物理的なアドレスに変換する。
【００４６】
キャッシュメモリ（以下、「ＣＭ」と略記する場合有り）２４は、例えば揮発性又は不揮発性のメモリであり、ホスト装置１０から受信したデータや、後述するＬＵ３１から読出されたデータを一時的に記憶するものである。
【００４７】
共有メモリ（以下、「ＳＭ」と略記する場合有り）２５は、例えば不揮発性のメモリであり、ホスト装置との間でやり取りされるデータに関する制御情報（例えば、ＣＭ２４上に確保されたどのキャッシュ領域にどのデータが格納されるべきかを示す情報）等が格納される。また、共有メモリ２５には、ワーク領域（例えば、各ＣＨＮ２１Ａ及びＤＫＡ２２のＣＰＵ間でやり取りされるメッセージを一時的に記憶する領域）が設定されるほか、後述するＬＵ管理テーブル９０３、ＣＨＮ関係管理データ９０１及びＬＵネクサス定義データ９０５等の各種データも格納される。
【００４８】
接続部２６は、各ＣＨＮ２１Ａ、各ＤＫＡ２２、キャッシュメモリ２４及び共有メモリ２５を相互に接続させる。接続部２６は、例えば、高速スイッチング動作によってデータ伝送を行う超高速クロスバスイッチ等のような高速バスとして構成することができる。
【００４９】
ディスユニット３０には、アレイ状に配列された複数のディスク記憶装置４００が含まれている。ディスク記憶装置４００としては、例えば、ハードディスク、フレキシブルディスク、磁気テープ、半導体メモリ、光ディスク等のようなデバイスを用いることができる。ディスク記憶装置４００の記憶領域上には、論理的な記憶デバイスである複数の論理ユニット（以下、「ＬＵ」と略記）３１が備えられている。各ＬＵ３１には、そのＬＵに格納されているデータに関するファイルメタデータが格納されていても良い。各ＬＵ３１のファイルメタデータには、そのＬＵ３１に格納されている各ファイルに関する属性情報（例えばファイル名及び格納先アドレス等）が登録されている。
【００５０】
ＳＶＰ２３は、記憶制御システム６００の保守又は管理を行うための情報処理端末（例えばノート型のパーソナルコンピュータ）である。ＳＶＰ２３は、例えば、内部ＬＡＮ４１０を介して、各ＣＨＮ２１Ａ及び各ＤＫＡ２２内のプロセッサ（例えば後述するＩ／Ｏプロセッサ）に接続されている。ＳＶＰ２３は、例えば、記憶制御システム６００内の障害発生を監視してディスプレイ画面に表示したり、ディスク記憶装置４００の閉塞処理等を指示したりすることができる。
【００５１】
図３は、ＣＨＮ２１Ａの構成例を示すブロック図である。
【００５２】
ＣＨＮ２１Ａは、通信ポート２０７Ａと、ＬＡＮコントローラ５０３と、データ転送ＬＳＩ５０１と、ブリッジＬＳＩ５０２と、Ｉ／Ｏプロセサ５０４及びＩ／Ｏメモリ５０７を備えた１又は複数の入出力制御部８６９と、メモリコントローラ５０５と、ＮＡＳプロセサ５０６と、ＣＨＮメモリ５０８と、コネクタ５０９とを備えている。
【００５３】
ＬＡＮコントローラ５０３は、メモリコントローラ５０５及びブリッジＬＳＩを介してＮＡＳプロセサ５０６から受けた指示に従って、通信ポート２０７Ａの制御を行う。ＬＡＮントローラ５０３は、例えば、ＴＣＰ／ＩＰプロトコルに従って、ファイルＩ／Ｏコマンドの送受信を制御する。
【００５４】
ブリッジＬＳＩ５０２は、例えば、ＬＡＮコントローラ５０３、メモリコントローラ５０５、及びデータ転送ＬＳＩ５０１の相互の通信を可能とするためのＬＳＩ（Large-Scale Integrated circuit）である。
【００５５】
メモリコントローラ５０５は、ＮＡＳプロセサ５０６とＣＨＮメモリ５０８との間の通信を制御するためのＬＳＩである。メモリコントローラ５０５は、ＮＡＳプロセッサ５０６、ＣＨＮメモリ５０８及びブリッジＬＳＩ５０２に接続される。
【００５６】
ＣＨＮメモリ５０８は、ＮＡＳプロセサ５０６の制御を司るプログラムや、ＣＭ２４とホスト装置１０Ａとの間でやり取りされるデータ等を記憶することができる。ＣＨＮメモリ５０８は、例えば、ファイルシステムプログラム８１７及びネットワーク制御プログラム８１８等を記憶することができる。ファイルシステムプログラム８１７は、例えば、ファイルＩ／Ｏコマンドに含まれているファイル名と、そのファイル名を有するファイルが格納されている場所のアドレス情報（例えばＬＵＮ及び先頭論理ブロックアドレス）との対応づけを管理し、その対応付けに基づいて、ファイルＩ／ＯコマンドをブロックＩ／Ｏコマンドに変換する。ネットワーク制御プログラム８１８は、例えば、ＮＦＳ（Network File System）とＳａｍｂａの２つのファイルシステムプロトコルを含んで構成される。ＮＦＳは、ＮＦＳが動作するＵＮＩＸ（登録商標）オペレーティングシステムを搭載したホスト装置からのファイルＩ／Ｏコマンドを受け付ける。一方、Ｓａｍｂａは、ＣＩＦＳ（Common
Interface File System）が動作するＷｉｎｄｏｗｓ（登録商標）オペレーティングシステムを搭載したホスト端末らのファイルＩ／Ｏコマンドを受け付ける。なお、ブロックとは、ディスク記憶装置４００上の記憶領域におけるデータの管理単位である。
【００５７】
また、ＣＨＮメモリ５０８には、このＣＨＮメモリ５０８を搭載しているＣＨＮ２１ＡがアクセスすることができるＬＵグループのＩＤに対応した１以上のＬＵ管理テーブル９０３が格納される。それら１以上のＬＵ管理テーブル９０３は、例えば、Ｉ／Ｏプロセッサ５０４が、共有メモリ２５に登録されている複数のＬＵ管理テーブル９０３の中から選択して取得したものである。
【００５８】
ＮＡＳプロセッサ５０６は、ＣＰＵ又はマイクロプロセッサである。ＮＡＳプロセッサ５０６は、例えば、Ｉ／Ｏプロセッサ５０４よりも高性能（例えば、演算処理速度が速い、動作クロック周波数が高い）であるが消費電力量の多いプロセッサである。ＮＡＳプロセッサ５０６は、メモリコントローラ５０５に接続されている。ＮＡＳプロセッサ５０６は、ＣＨＮメモリ５０８に格納されているファイルシステムプログラム８１７及びネットワーク制御プログラム８１８等を読出し、読み出したコンピュータプログラムに従う処理を実行することができる。例えば、ＮＡＳプロセッサ５０６は、ネットワーク制御プログラム８１８により、ホスト装置１０ＡからのファイルＩ／Ｏコマンドを受け付ける。また、ＮＡＳプロセッサ５０６は、ファイルシステムプログラム８１７により、ホスト装置１０Ａから受信しＣＨＮメモリ５０８に格納されたファイルＩ／ＯコマンドをブロックＩ／Ｏコマンドに変換してＩ／Ｏプロセッサ５０４に出力することができる。
【００５９】
Ｉ／Ｏプロセサ５０４は、ＣＰＵ又はマイクロプロセッサであり、Ｉ／Ｏメモリ５０７から読み出した制御プログラム８６４により、接続部２６との間のデータの授受や、ＮＡＳプロセサ５０６と接続部２６との間のデータ通信の中継や、その他の後述する種々の処理を実行することができる。また、Ｉ／Ｏプロセッサ５０４は、ＳＶＰ２３と通信することができる。
【００６０】
Ｉ／Ｏメモリ５０７は、Ｉ／Ｏプロセサ５０４の制御を司るコンピュータプログラム等を格納する。
【００６１】
データ転送ＬＳＩ５０１は、接続部２６が有するコネクタ５１０に接続されるコネクタ５０９と、Ｉ／Ｏプロセッサ５０４と、ブリッジＬＳＩ５０２とに接続され、データの転送の制御を行うＬＳＩである。
【００６２】
さて、このＣＨＮ２１Ａにおいて、Ｉ／Ｏプロセッサ５０４は、ＮＡＳプロセッサ５０６の電源のオン状態とオフ状態とを制御する。ＮＡＳプロセッサ５０６の電源制御方法としては幾つかの方法が考えられるが、本実施形態では、例えば、Ｉ／Ｏプロセッサ５０４は、以下の（１）又は（２）の電源制御方法によりそれを制御することができる。
【００６３】
（１）ＮＡＳプロセッサ５０６の電源ライン８６５上の、ＮＡＳプロセッサ５０６よりも上流側に、ＮＡＳプロセッサ５０６の電源をオン又はオフにするための電源スイッチ（例えばトランジスタ）８６７を設ける。電源スイッチ８６７は、ＮＡＳプロセッサ５０６の電源をオン又はオフにするための電源オン／オフ制御信号をＩ／Ｏプロセッサ５０４から受け、その電源オン／オフ制御信号に従って、ＮＡＳプロセッサ５０６の電源をオン又はオフにする。
【００６４】
（２）ＮＡＳプロセッサ５０６に所定周波数のクロックを出力するクロックジェネレータ８６６が、クロックの出力を許可する又は禁止することを表すクロック出力オン／オフ制御信号をＩ／Ｏプロセッサ５０から受け、その電源オン／オフ制御信号に従って、クロックの出力の有無を切替えることで、ＮＡＳプロセッサ５０６の電源をオン又はオフにする。
【００６５】
図４は、ＤＫＡ２２の構成例を示すブロック図である。
【００６６】
ＤＫＡ２２には、通信ポート２２Ａと、ＦＣコントローラ６０２と、データ転送ＬＳＩ６０１と、ＩＯプロセサ６０３及びＩ／Ｏメモリ６０４を備えた１又は複数の入出力制御部８７０と、コネクタ６０５とを備えている。
【００６７】
通信ポート２２Ａは、図示しない通信ネットワーク（例えばファイバチャネル）を介してディスク型記憶装置４００と通信を行うためのポートである。
【００６８】
ＦＣコントローラ６０２は、通信ポート２２Ａとデータ転送ＬＳＩ６０１との間に介在する。ＦＣコントローラ６０２は、例えば、ファイバチャネルプロトコルに従い、ブロックレベルのデータの授受を制御する。
【００６９】
Ｉ／Ｏメモリ６０４には、Ｉ／Ｏプロセサ６０３の制御を司るプログラムを格納するためのものである。
【００７０】
Ｉ／Ｏプロセサ６０３は、ＣＰＵ又はマイクロプロセッサである。Ｉ／Ｏプロセッサ６０３は、データ転送ＬＳＩ６１０、Ｉ／Ｏメモリ６０４及びＳＶＰ２３に接続されており、Ｉ／Ｏメモリ６０４内の種々のコンピュータプログラムを読込んで、データやコマンドの授受を制御する。
【００７１】
データ転送ＬＳＩ６０１は、接続部２６に接続されるコネクタ６０５と、Ｉ／Ｏプロセッサ６０３と、ＦＣコントローラ６０２とに接続され、データ転送の制御を行うＬＳＩである。
【００７２】
以下、本実施形態の主要部分についてより詳細に説明する。
【００７３】
図５は、本実施形態の主要部分を詳細に説明するための、記憶制御システム６００のブロック図である。
【００７４】
記憶制御システム６００に備えられるＫ（Ｋ≧２）個のＣＨＮ２１Ａの各々において、１つのＮＡＳプロセッサ５０６に二重化（二重化以外の多重化であっても良い）されたＩ／Ｏプロセッサ５０４Ａ、５０４Ｂが接続されている。二重化されたＩ／Ｏプロセッサ５０４Ａ、５０４Ｂは互いに接続されている。これにより、一方のＩ／Ｏプロセッサ５０４Ａが故障した場合、他方のＩ／Ｏプロセッサ５０４Ｂがそれを検出してＩ／Ｏプロセッサ５０４Ａとして動作することで、ＣＨＮ２１Ａとしての機能を維持することができる。
【００７５】
また、Ｋ個のＣＨＮ２１Ａには、Ｍ（Ｍ≧１）個のマスタＣＨＮ２１ＡＭと、コールドスタンバイ状態のＮ（Ｎ≧１且つＫ−Ｍ）個のバックアップＣＨＮ２１ＡＣとが含まれている。ＭとＮの値は同じであっても良いし異なっていても良い。すなわち、Ｍ＝Ｎであっても良いし、Ｍ＞Ｎであっても良いし、Ｍ＜Ｎであっても良い。
【００７６】
マスタＣＨＮ２１ＡＭとは、ＣＨＮ２１Ａとしての通常動作（例えば、ファイルＩ／Ｏコマンドを受けてブロックＩ／Ｏコマンドに変換し接続部２６に出力する処理）を行う状態になっているものである。そのため、マスタＣＨＮ２１ＡＭでは、ＮＡＳプロセッサ５０６もＩ／Ｏプロセッサ５０４Ａ、５０４Ｂも通電状態（電源オンの状態）になっている。
【００７７】
一方、コールドスタンバイ状態のバックアップＣＨＮ２１ＡＣとは、ＣＨＮ２１Ａとしての通常動作を行う状態にはなく、いわゆる待機状態になっており、且つ、Ｉ／Ｏプロセッサ５０４Ａ、５０４Ｂは通電状態になっているが、ＮＡＳプロセッサ５０６は通電状態になっていない（つまり、電源オフのため電力消費しない状態）になっているものである。
【００７８】
複数のＬＵ３１には、共有ＬＵ３１Ｓと、ユーザＬＵ３１Ｙと、システムＬＵ３１Ｄとが含まれている。
【００７９】
共有ＬＵ３１Ｓとは、Ｍ個のマスタＣＨＮ２１ＡＭとＮ個のバックアップＣＨＮ２１ＡＣとの両方からディスク制御部８００を介してアクセスされるＬＵである。共有ＬＵ３１Ｓには、各ＣＨＮ２１Ａが動作するために必要な情報が格納される。具体的には、例えば、共有ＬＵ３１Ｓには、ＣＨＡ２１Ａ間での引継ぎ情報が格納される。引継ぎ情報とは、バックアップＣＨＮ２１ＡＣがマスタＣＨＮ２１ＡＭとして動作するために必要なシステム管理情報であり、例えば、マスタＣＨＮ２１ＡＭのＩＰアドレス等を含んだ情報である。
【００８０】
ユーザＬＵ３１Ｙとは、ホスト装置１０Ａがリードしたりライトしたりするデータが格納されるＬＵである。
【００８１】
システムＬＵ３１Ｄには、各ＣＨＮ２１Ａが動作するために必要な情報が格納される。具体的には、例えば、システムＬＵ３１Ｄには、ＮＡＳプロセッサ５０６のＯＳ（オペレーションシステム）イメージが格納される。
【００８２】
共有メモリ２５には、前述したように、ＬＵ管理テーブル９０３、ＣＨＮ関係管理データ９０１及びＬＵネクサス定義データ９０５が格納されている。
【００８３】
図６は、ＬＵ管理テーブル９０３の構成例を示す。
【００８４】
ＬＵ管理テーブル９０３は、各ＬＵ−ＧＩＤ毎に用意されている。ＬＵ−ＧＩＤとは、ＬＵのグループＩＤという意味であり、複数のＬＵが属する１つのＬＵグループの識別情報を意味する。
【００８５】
各ＬＵ管理テーブル９０３には、そのＬＵ管理テーブル９０３が対応するＬＵ−ＧＩＤに属する各ＬＵ毎に、ＬＵＮ（Logical Unit Number）、ＬＵ状態等が登録されている。各ＬＵのＬＵＮは、そのＬＵを特定するための識別情報（以下、「ＩＤ」と言う）である。各ＬＵのＬＵ状態は、例えば、ロック状態（換言すれば排他処理されている状態）か否かを示す。
【００８６】
図７は、ＣＨＮ関係管理データ９０１の構成例を示す。
【００８７】
ＣＨＮ関係管理データ９０１は、複数のＣＨＮ２１Ａの各々に関する属性や、どのバックアップＣＨＮ２１ＡＣがどのマスタＣＨＡ２１ＡＭに代わることができるか等を表す情報を含んでいる。具体的には、ＣＨＮ関係管理データ９０１には、ノード管理データ９０１Ａと、ノード対応データ９０１Ｂとが含まれている（なお、ここで言う「ノード」とは、ＣＨＡ２１Ａのことを意味する）。
【００８８】
ノード管理データ９０１Ａには、複数のＣＨＡ２１Ａにそれぞれ対応した複数の属性情報が含まれている。各ＣＨＡ２１Ａの属性情報には、ブレードＩＤ、ノード名情報、区分情報、状態情報、及びＬＵ−ＧＩＤが含まれている。ブレードＩＤとは、それに対応するＣＨＡ２１ＡのＩＤ（換言すれば、例えば、ＣＨＮ２１Ａのコネクタ５０９が挿されるコネクタ１０のＩＤ）である。ノード名情報とは、それに対応するＣＨＡ２１Ａの名称を表す情報である。区分情報とは、それに対応するＣＨＡ２１がマスタＣＨＡ２１ＡＭかバックアップＣＨＡ２１ＡＣかを表す情報である。状態情報とは、それに対応するＣＨＡ２１Ａの状態を表す情報である。ＬＵ−ＧＩＤとは、それに対応するＣＨＡ２１Ａがアクセスすることができる複数のユーザＬＵ３１Ｙが属するＬＵ−ＧＩＤを表す（なお、「None」とは、対応付けられているＬＵ−ＧＩＤが存在しないことを意味する）。
【００８９】
ノード対応データ９０１Ｂは、どのバックアップＣＨＡ２１ＡＣがどのマスタＣＨＡ２１ＡＭに対応しているかを示す情報である。例えば、ノード対応データ９０１Ｂには、１以上のマスタＣＨＮ２１ＡＭの属性情報（例えば、ブレードＩＤ及びノード名）の各々に、対応付けられた１以上のバックアップＣＨＮ２１ＡＣの属性情報（例えば、ブレードＩＤ及びノード名）が登録される。このノード対応データ９０１Ｂに構成を調整することによって、マスタＣＨＮ２１ＡＭとバックアップＣＨＮ２１ＡＣとの対応付けの関係を調節することができる。
【００９０】
図８は、ノード管理データ９０１Ａとノード対応データ９０１Ｂとの対応付けのバリエーション例を示す。
【００９１】
第一のバリエーションとして、図８（Ａ）に示すように、１つのマスタＣＨＮ２１ＡＭの属性情報に、１つのバックアップＣＨＮ２１ＡＣの属性情報を対応付けることにより、１つのマスタＣＨＮ２１ＡＭに対して１つのバックアップＣＨＮ２１ＡＣが対応付けられる。
【００９２】
第二のバリエーションとして、図８（Ｂ）に示すように、１つのマスタＣＨＮ２１ＡＭの属性情報に、複数のバックアップＣＨＮ２１ＡＣの属性情報を対応付けることにより、１つのマスタＣＨＮ２１ＡＭに対して複数のバックアップＣＨＮ２１ＡＣが対応付けられる。
【００９３】
第三のバリエーションとして、図８（Ｃ）に示すように、１つのバックアップＣＨＮ２１ＡＣの属性情報に、複数のマスタＣＨＮ２１ＡＭの属性情報を対応付けることにより、１つのバックアップＣＨＮ２１ＡＣに対して複数のマスタＣＨＮ２１ＡＭが対応付けられる。
【００９４】
第四のバリエーションとして、図８（Ｄ）に示すように、１つのマスタＣＨＮ２１ＡＭの属性情報に、複数のバックアップＣＨＮ２１ＡＣの属性情報を対応付けることにより、１つのマスタＣＨＮ２１ＡＭに対して複数のバックアップＣＨＮ２１ＡＣが対応付けられ、且つ、１つのバックアップＣＨＮ２１ＡＣの属性情報に、２以上のマスタＣＨＮ２１ＡＭの属性情報を対応付けることにより、１つのバックアップＣＨＮ２１ＡＣに対して２以上のマスタＣＨＮ２１ＡＭが対応付けられる。
【００９５】
この第二〜第四のバリエーションにおいて、複数のマスタＣＨＮ２１ＡＭの各々に同一のバックアップＣＨＮ２１ＡＣを対応付けることもできるし、複数のバックアップＣＨＮ２１ＡＣの各々に同一のマスタＣＨＮ２１ＡＭを対応付けることもできる。
【００９６】
図９は、ＬＵネクサス定義データ９０５の構成例を示す。
【００９７】
ＬＵネクサス定義データ９０５には、マスタＣＨＮ２１ＡＭとバックアップＣＨＮ２１ＡＣとの各々について、対応付け可能な１以上のＬＵ−ＧＩＤと、各ＬＵ−ＧＩＤに属している１以上のＬＵＮと、各ＬＵ−ＧＩＤが属する複数のＬＵの分類（例えばシステムＬＵとユーザＬＵのうちのどちらであるか）とを表す情報が登録されている。このＬＵネクサス定義データ９０５と、上述したＣＨＮ関係管理データ９０１とを参照すれば、マスタＣＨＮ２１ＡＭとバックアップＣＨＮ２１ＡＣとの各々について、対応付け可能な１以上のＬＵ−ＧＩＤのうち未だ対応付けられていないＬＵ−ＧＩＤは何であるかを特定することができる。このＬＵネクサス定義データ９０５に基づくＬＵマッピング処理については後述する。
【００９８】
さて、マスタＣＨＮ２１ＡＭは、通常の場合（換言すれば、マスタＣＨＮ２１Ａにおいて障害が発生していない場合）、ホスト装置１０ＡからのファイルＩ／Ｏコマンドに基づいてユーザＬＵ３１Ｙからファイルをリードする或いはユーザＬＵ３１Ｙにファイルをライトしたり、引継ぎ情報を共有ＬＵ３１Ｓに書込んだりする。一方、バックアップＣＨＮ２１ＡＣは、共有メモリ２５に書かれている状態情報を監視する。以下、それらの処理流れについて説明する。なお、以下の説明では、マスタＣＨＮ２１ＡＭに搭載されているＮＡＳプロセッサを「マスタＮＡＳプロセッサ」、Ｉ／Ｏプロセッサを「マスタＩ／Ｏプロセッサ」と言い、一方、コールドスタンバイ状態のバックアップＣＨＮ２１ＡＣに搭載されているＮＡＳプロセッサを「コールドＮＡＳプロセッサ」、Ｉ／Ｏプロセッサを「コールドＩ／Ｏプロセッサ」と言う。
【００９９】
図１０は、マスタＣＨＮ２１ＡＭによって行われるファイルリード処理の流れの一例を示す。
【０１００】
マスタＮＡＳプロセッサ５０６は、リード要求を意味するファイルＩ／Ｏコマンド（別の言い方をすればファイルアクセス要求）をホスト装置１０Ａから受ける（ステップＳ１）。そして、マスタＮＡＳプロセッサ５０６は、そのファイルＩ／ＯコマンドをブロックＩ／Ｏコマンドに変換し、そのブロックＩ／Ｏコマンドを、二重化されたマスタＩ／Ｏプロセッサ５０４Ａ、５０４Ｂのうちの一方（又は双方）に出力する（Ｓ２）。
【０１０１】
ＮＡＳメモリ５０６からブロックＩ／Ｏコマンドを受けたマスタＩ／Ｏプロセッサ（例えば５０４Ａ）は、そのブロックＩ／Ｏコマンドが有するアドレス情報（例えばＬＵＮ及び論理ブロックアドレス）にアクセス可能なＤＫＡ２２のマスタＩ／Ｏプロセッサ６０３に、共有メモリ２５を介して、そのアドレス情報に存在するデータファイルの読出しを要求するファイル読出しメッセージを出力する（Ｓ３）。
【０１０２】
ファイル読出しメッセージを受けたＤＫＡ２２のマスタＩ／Ｏプロセッサ６０３は、そのデータ読出しメッセージが表すアドレス情報が示す場所（ユーザＬＵ３１Ｙ内の場所）からデータファイルを読出し、そのデータファイルをキャッシュメモリ２４に格納する（Ｓ４）。そして、マスタＩ／Ｏプロセッサ６０３は、データファイルの読出しが完了した旨を表す読出し完了メッセージを、共有メモリ２５を介して、マスタＣＨＮ２１ＡＭのマスタＩ／Ｏプロセッサ５０４Ａに出力する（Ｓ５）。
【０１０３】
読出し完了メッセージを受けたマスタＩ／Ｏプロセッサ５０４Ａは、キャッシュメモリ２４からデータファイルを読み出してＣＨＮメモリ５０８に格納し（Ｓ６）、Ｉ／Ｏ応答をマスタＮＡＳプロセッサ５０６に出力する（Ｓ７）。
【０１０４】
Ｉ／Ｏ応答を受けたマスタＮＡＳプロセッサ５０６は、ＣＨＮメモリ５０８からデータファイルを読出し、そのデータファイルを、ファイルアクセス要求元のホスト装置１０Ａに転送し（Ｓ８）、そのホスト装置１０Ａにファイルアクセス応答を出力する（Ｓ９）。
【０１０５】
図１１は、マスタＣＨＮ２１ＡＭによって行われるファイルライト処理の流れの一例を示す。
【０１０６】
マスタＮＡＳプロセッサ５０６は、ライト要求を意味するファイルＩ／Ｏコマンドをホスト装置１０Ａから受け（Ｓ１１）、ファイルＩ／Ｏコマンドが有するライト対象ファイルをＮＡＳメモリ５０８に書き込む（Ｓ１２）。そして、マスタＮＡＳプロセッサ５０６は、ホスト装置１０Ａに対してファイルアクセス応答を返すと共に（Ｓ１３）、Ｓ１１で受信したファイルＩ／ＯコマンドをブロックＩ／Ｏコマンドに変換し、そのブロックＩ／Ｏコマンドを、二重化されたマスタＩ／Ｏプロセッサ５０４Ａ、５０４Ｂのうちの一方（又は双方）に出力する（Ｓ１４）。
【０１０７】
ＮＡＳメモリ５０６からブロックＩ／Ｏコマンドを受けたマスタＩ／Ｏプロセッサ（例えば５０４Ａ）は、そのブロックＩ／Ｏコマンドが有するアドレス情報にアクセス可能なＤＫＡ２２のマスタＩ／Ｏプロセッサ６０３に、共有メモリ２５を介して、そのアドレス情報にライト対象ファイルを書込むことを要求するファイル書込みメッセージを出力する（Ｓ１５）。また、マスタＩ／Ｏプロセッサ５０４Ａは、ＣＨＮメモリ５０８内のライト対象ファイルをキャッシュメモリ２４に書き込み（Ｓ１６）、Ｉ／Ｏ応答をマスタＮＡＳプロセッサ５０６に返す（Ｓ１７）。そして、マスタＩ／Ｏプロセッサ５０４Ａは、データファイルの書き込みが完了した旨を表す書込み完了メッセージを、共有メモリ２５を介して、ＤＫＡ２２のマスタＩ／Ｏプロセッサ６０３に出力する（Ｓ１８）。
【０１０８】
ファイル書込みメッセージ及び書込み完了メッセージを受けたＤＫＡ２２のマスタＩ／Ｏプロセッサ６０３は、キャッシュメモリ２４からライト対象ファイルを取得し、ファイル書込みメッセージが表すアドレス情報が示す場所（ユーザＬＵ３１Ｙ内の場所）に、そのライト対象ファイルを格納する（Ｓ１９）。
【０１０９】
図１２は、マスタＣＨＮ２１ＡＭによって行われる引継ぎ情報の書込み処理の流れの一例を示す。
【０１１０】
ＣＨＮメモリ５０８に、マスタＣＨＮ２１ＡＭにおいて使用されている引継ぎ情報（換言すればシステム管理情報）が格納されている。
【０１１１】
マスタＮＡＳプロセッサ５０６は、引継ぎ情報を書き込むことの要求を意味するブロックＩ／Ｏコマンドを、二重化されたマスタＩ／Ｏプロセッサ５０４Ａ、５０４Ｂのうちの一方（又は双方）に出力する（Ｓ２１）。
【０１１２】
ＮＡＳメモリ５０６からブロックＩ／Ｏコマンドを受けたマスタＩ／Ｏプロセッサ（例えば５０４Ａ）は、そのブロックＩ／Ｏコマンドが有するアドレス情報にアクセス可能なＤＫＡ２２のマスタＩ／Ｏプロセッサ６０３に、共有メモリ２５を介して、そのアドレス情報に引継ぎ情報を書込むことを要求する書込みメッセージを出力する（Ｓ２２）。また、マスタＩ／Ｏプロセッサ５０４Ａは、ＣＨＮメモリ５０８内の引継ぎ情報をキャッシュメモリ２４に書き込み（Ｓ２３）、Ｉ／Ｏ応答をマスタＮＡＳプロセッサ５０６に返す（Ｓ２４）。そして、マスタＩ／Ｏプロセッサ５０４Ａは、引継ぎ情報の書き込みが完了した旨を表す書込み完了メッセージを、共有メモリ２５を介して、ＤＫＡ２２のマスタＩ／Ｏプロセッサ６０３に出力する（Ｓ２５）。
【０１１３】
書込みメッセージ及び書込み完了メッセージを受けたＤＫＡ２２のマスタＩ／Ｏプロセッサ６０３は、キャッシュメモリ２４から引継ぎ情報を取得し、書込みメッセージが表すアドレス情報が示す場所（共有ＬＵ３１Ｓ内の場所）に、その引継ぎ情報を格納する（Ｓ２６）。
【０１１４】
図１３は、バックアップＣＨＮ２１ＡＣによって行われる通常処理の流れを示す。
【０１１５】
バックアップＣＨＮ２１ＡＣでは、上述したコールドスタンバイ状態になっているため、コールドＮＡＳプロセッサ５０６の電源はオフ状態であるが、コールドＩ／Ｏプロセッサ５０４Ａ、５０４Ｂの電源はオン状態になっている。それらコールドＩ／Ｏプロセッサ５０４Ａ、５０４Ｂの一方又は双方が、共有メモリ２５に書かれている状態情報（具体的には、自分を搭載しているバックアップＣＨＮ２１ＡＣに対応する対応マスタ管理データ９０１Ｂに書かれている１以上のマスタＣＨＮ２１ＡＭにそれぞれ対応した１以上の状態情報）を、所定タイミングで（例えば定期的に或いは随時に）監視する（Ｓ３１）。
【０１１６】
その監視の結果、対応する１以上のマスタＣＨＮ２１ＡＭの少なくとも１つにおいて障害が発生したことが検出された場合、障害が発生したマスタＣＨＮ２１ＡＭに代わって、障害の発生を検出したバックアップＣＨＮ２１ＡＣが、マスタＣＨＮ２１ＡＭとして動作する。
【０１１７】
図１４は、バックアップＣＨＮ２１ＡＣがマスタＣＨＮ２１ＡＭとして動作するまでの流れの概略を示す。
【０１１８】
図１４（Ａ）に示すように、通常、マスタＣＨＮ２１ＡＭでは、ＮＡＳプロセッサの電源はオン状態であり、一方、バックアップＣＨＮ２１ＡＣでは、ＮＡＳプロセッサの電源はオフ状態になっている。バックアップＣＨＮ２１ＡＣにおいて、電源がオン状態になっているコールドＩ／Ｏプロセッサ５０４Ａ、５０４Ｂの一方又は双方が、そのバックアップＣＨＮ２１ＡＣに対応する１以上のマスタＣＨＮ２１ＡＭにそれぞれ対応した１以上の状態情報（ノード管理データ９０１Ａに登録されている状態情報）を監視している。
【０１１９】
この状態において、図１４（Ｂ）に示すように、マスタＣＨＮ２１ＡＭにおいて障害が発生した場合、図１４（Ｃ）に示すように、マスタＩ／Ｏプロセッサ５０４Ａ、５０４Ｂの少なくとも１つが、マスタＮＡＳプロセッサ５０６の電源をオフ状態にすると共に、共有メモリ２５上のノード管理データ９０１Ａにおける、そのマスタＣＨＮ２１ＡＭに対応する状態情報を、障害発生を意味する状態情報に更新する。コールドＩ／Ｏプロセッサ５０４Ａ、５０４Ｂの一方又は双方は、上記対応する１以上のマスタＣＨＮ２１ＡＭの少なくとも１つに対応した状態情報が、障害発生を意味する状態情報になっていることを検出した場合、コールドＮＡＳプロセッサ５０６の電源をオン状態にする。
【０１２０】
この流れにより、図１４（Ｄ）に示すように、マスタＣＨＮ２１ＡＭがコールドスタンバイ状態になると共に、バックアップＣＨＮ２１ＡＣがマスタＣＨＮ２１ＡＭとして動作することができる状態になる。
【０１２１】
以下、バックアップＣＨＮ２１ＡＣとマスタＣＨＮ２１ＡＭが行なう処理流れについて詳述する。
【０１２２】
図１５は、マスタＣＨＮ２１ＡＭが状態情報を更新するか否かの判断を行う場合の処理流れである。
【０１２３】
この図に示す処理流れは、マスタＣＨＮ２１ＡＭにおけるマスタＩ／Ｏプロセッサ５０４Ａ、５０４Ｂが、定期的に開始する。
【０１２４】
例えば、マスタＩ／Ｏプロセッサ５０４Ａは、この処理流れを開始した場合、状態変更要求有りと判断されたならば（Ｓ５１でＮｏ）、自分を搭載しているマスタＣＨＮ２１ＡＭに対応した状態情報（ノード管理データ９０１Ａ上の状態情報）を変更する状態変更設定処理を行う（Ｓ５２）。なお、Ｓ５１でＹｅｓと判断されるケースとしては、例えば、ブート移行（マスタＮＡＳプロセッサ５０６のＯＳイメージが読み出される場合）、ＯＳ稼動中（マスタＮＡＳプロセッサ５０６のＯＳが稼動中の場合）、シャットダウン移行（マスタＮＡＳプロセッサ５０６の電源をオフ状態にする場合）、ＯＳ停止中（マスタＮＡＳプロセッサ５０６のＯＳが停止中の場合）、障害処理（マスタＣＨＮ２１ＡＭにおいて障害が発生したことが検出された場合）、及び引継ぎReady（引継ぎ情報を共有ＬＵ３１Ｓに格納している場合）の少なくとも１つがある。
【０１２５】
以下、障害処理が行われる場合について説明する。
【０１２６】
図１６は、マスタＣＨＮ２１ＡＭにおいてマスタＮＡＳプロセッサ５０６で障害が発生した場合に行われる処理流れを示す。図１７は、その処理流れにおけるノード管理データ９０１Ａの変更の流れを示す。
【０１２７】
図１６に示すように、例えばブレードＩＤ「１」のマスタＣＨＮ２１ＡＭにおけるマスタＮＡＳプロセッサ５０６で障害が発生した場合（Ｓ４１）、マスタＩ／Ｏプロセッサ５０４Ａ（及び／又は５０４Ｂ）が、マスタＮＡＳプロセッサ５０６で障害が発生したことを検出する（Ｓ４２）。その場合、マスタＩ／Ｏプロセッサ５０４Ａは、自分を搭載しているマスタＣＨＮ２１ＡＭ（ブレードＩＤ「１」）に対応した状態情報（ノード管理データ９０１Ａに書かれている状態情報）を、稼動中を示す状態情報「Active」から、ダンプ採取中であることを示す状態情報「Dumping」に変更する（Ｓ４３及び図１７（Ａ）及び（Ｂ））。
【０１２８】
そして、マスタＩ／Ｏプロセッサ５０４Ａは、マスタＮＡＳプロセッサ５０６に関する障害発生時の情報をマスタＮＡＳプロセッサ５０６或いはＮＡＳメモリ５０８から取得する（Ｓ４４）。そして、マスタＩ／Ｏプロセッサは、取得した情報を、ＤＫＡ２２を介して共有ＬＵ３１Ｓに書く（Ｓ４４Ａ）。
【０１２９】
それが完了したら、マスタＩ／Ｏプロセッサ５０４Ａは、マスタＮＡＳプロセッサ５０６を閉塞させて（動作を停止させて）、マスタＮＡＳプロセッサ５０６への通電を遮断する（Ｓ４５）。その後、マスタＮＡＳプロセッサ５０６は、自分を搭載しているマスタＣＨＮ２１ＡＭに対応した状態情報を、ダンプ採取中であることを示す状態情報「Dumping」から、障害が発生して稼動を中止し引継ぎ可能状態になったことを示す状態情報「Shift Ready」に変更する（Ｓ４６及び図１７（Ｃ））。
【０１３０】
図１８は、マスタＣＨＮ２１ＡＭにおいてマスタＩ／Ｏプロセッサ５０４Ａで障害が発生した場合に行われる処理流れの例を示す。
【０１３１】
図１８（Ａ）に示すように、一方のマスタＩ／Ｏプロセッサ５０４Ａで障害が発生した場合（Ｓ６１）、他方のマスタＩ／Ｏプロセッサ５０４Ｂが、それを検出し（Ｓ６２）、自分を搭載しているマスタＣＨＮ２１ＡＭに対応した状態情報を、稼動中を示す状態情報「Active」から、閉塞状態であることを示す状態情報に変更する（Ｓ６３）。その後、マスタＩ／Ｏプロセッサ５０４Ｂは、マスタＮＡＳプロセッサ５０６への通電を遮断する（Ｓ６４）。
【０１３２】
或いは、図１８（Ｂ）に示すように、一方のマスタＩ／Ｏプロセッサ５０４Ａで障害が発生した場合（Ｓ７１）、他方のマスタＩ／Ｏプロセッサ５０４Ｂが、それを検出する（Ｓ７２）。以後、上述したＳ４３〜Ｓ４６と同様の処理が行われる（Ｓ７４〜Ｓ７６）。
【０１３３】
なお、マスタＣＨＮ２１ＡＭでは、一方のマスタＩ／Ｏプロセッサ５０４Ａに障害が発生しても、他方のマスタＩ／Ｏプロセッサ５０４Ｂに障害が発生していない場合には、他方のマスタＩ／Ｏプロセッサ５０４Ｂは、図１８（Ａ）及び（Ｂ）の処理を行わず、通常状態（マスタＣＨＮ２１ＡＭのＩ／Ｏプロセッサ５０４Ｂとして通常処理を行う状態）を維持しても良い。また、その際、他方のマスタＩ／Ｏプロセッサ５０４Ｂは、内部通信ネットワーク（例えばＬＡＮ）を介してＳＶＰ２３に、一方のマスタＩ／Ｏプロセッサ５０４Ａで障害が発生したことを報告しても良い。
【０１３４】
図１９は、コールドＩ／Ｏプロセッサ５０４Ａの処理流れを示す。図２０は、図１９に示した処理流れにおけるノード管理データ９０１Ａの変更前と変更後の例を示す。具体的には、図２０（Ａ）が変更前のノード管理データ９０１Ａを示し、図２０（Ｂ）が、変更後のノード管理データ９０１Ａを示す。
【０１３５】
コールドＩ／Ｏプロセッサ５０４Ａは、所定のタイミングで（例えば随時に又は定期的に）この処理流れを開始する。
【０１３６】
コールドＩ／Ｏプロセッサ５０４Ａは、例えば、ノード管理データ９０１Ａにアクセスし、自分を搭載しているＣＨＮ２１Ａに対応した区分情報を参照する等の方法により、そのＣＨＮ２１ＡがバックアップＣＨＮ２１ＡＣであるか否かを判断する（Ｓ８１）
Ｓ８１において、バックアップＣＨＮ２１ＡＣであることが判断された場合（Ｓ８１でＹ）、コールドＩ／Ｏプロセッサ５０４Ａは、ノード対応データ９０１Ｂにアクセスして、自分を搭載しているＣＨＮ２１Ａに対応付けられているマスタＣＨＮ２１ＡＭの数Ｒを把握し、自分が参照すべき状態情報（すなわち、上記対応付けられているマスタＣＨＮ２１ＡＭの状態情報）の番号Ｔを、上記把握された数Ｒに設定する（Ｓ８２）。
【０１３７】
コールドＩ／Ｏプロセッサ５０４Ａは、ノード管理データ９０１Ａにアクセスし、自分を搭載しているＣＨＮ２１ＡＣに対応付けられている１以上のマスタＣＨＮ２１ＡＭの状態情報の中から選択されたＴ番目の状態情報を参照する（Ｓ８３）。なお、図示のように、ノード管理データ９０１における１以上のマスタＣＨＮ２１ＡＭの状態情報は、他のバックアップＣＨＮ２１ＡＣからも所定タイミングで参照されている。
【０１３８】
Ｓ８３の結果、参照した状態情報が引継ぎ待ちを示す情報「Shift Ready」になっていなければ（Ｓ８４でＮ）、コールドＩ／Ｏプロセッサ５０４Ａは、Ｔの値を１デクリメントする（Ｓ８５）。この結果、コールドＩ／Ｏプロセッサ５０４Ａは、Ｔの値がゼロになったら、処理を終了し、Ｔの値がゼロでない場合には、Ｓ８３の処理を行う。
【０１３９】
Ｓ８４において、参照した状態情報が引継ぎ待ちを示す情報「Shift Ready」になっていた場合（Ｓ８４でＹ）、コールドＩ／Ｏプロセッサ５０４Ａは、その状態情報に対応したマスタＣＨＮ２１ＡＭ（以下、ターゲットマスタＣＨＮ２１ＡＭ）に対する引継ぎ処理（後述のＳ８７〜Ｓ９２）を開始する。
【０１４０】
まず、コールドＩ／Ｏプロセッサ５０４Ａは、ＬＵネクサス定義データ９０５を参照して共有ＬＵ３１ＳのＬＵ−ＧＩＤを把握し、把握されたＬＵ−ＧＩＤを有するＬＵ管理テーブル９０３にアクセスし、そのＬＵ−ＧＩＤに属するＬＵの状態を全てロック状態（すなわち、他のどのＣＨＮ２１Ａもアクセスすることができない状態）に設定することを試みる（Ｓ８７）。
【０１４１】
Ｓ８７の結果、既に他のバックアップＣＨＮ２１ＡＣによって共有ＬＵ３１Ｓがロック状態にされている場合は、コールドＩ／Ｏプロセッサ５０４Ａは、Ｓ８５の処理を行い、上記ターゲットマスタＣＨＮ２１ＡＭに対する引継ぎ処理を終える。
【０１４２】
一方、Ｓ８７の結果、共有ＬＵ３１Ｓがロック状態にされていない場合は、コールドＩ／Ｏプロセッサ５０４Ａは、共有ＬＵ３１Ｓに対応したＬＵ管理テーブル９０３における各ＬＵの状態をロック状態に設定すると共に、ターゲットマスタＣＨＮ２１ＡＭに対応した１以上のＬＵ−ＧＩＤをノード管理データ９０１Ａから取得し、その取得した１以上のＬＵ−ＧＩＤを設定する（Ｓ８９）。具体的には、例えば、コールドＩ／Ｏプロセッサ５０４Ａは、取得した１以上のＬＵ−ＧＩＤにそれぞれ対応する１以上のＬＵ管理テーブル９０３をＳＭ２５から取得してＣＨＮメモリ５０８（換言すれば通信バッファ）に登録する。
【０１４３】
次に、コールドＩ／Ｏプロセッサ５０４Ａは、ノード管理データ９０１Ａにアクセスし、自分を搭載しているバックアップＣＨＮ２１ＡＣに対応した属性情報と、ターゲットマスタＣＨＮ２１ＡＣに対応した属性情報とを変更する（Ｓ９０）。具体的には、例えば、図２０に示すように、コールドＩ／Ｏプロセッサ５０４Ａは、自分を搭載しているバックアップＣＨＮ２１ＡＣに対応した区分情報を「バックアップ」から「マスタ」に変更し、状態情報を「Stand By」から「Active」に変更し、ＬＵ−ＧＩＤを「None」から「２」に変更する。また、コールドＩ／Ｏプロセッサ５０４Ａは、ターゲットマスタＣＨＮ２１ＡＣに対応した区分情報を「マスタ」から「バックアップ」に変更し、状態情報を「Active」から「Stand
By」に変更し、ＬＵ−ＧＩＤを「２」から「None」に変更する。
【０１４４】
次に、コールドＩ／Ｏプロセッサ５０４Ａは、コールドＮＡＳプロセッサ５０６の電源をターンオンし、コールドＮＡＳプロセッサ５０６にブート指示をする（Ｓ９２）。
【０１４５】
図２１は、コールドＮＡＳプロセッサ５０６の処理流れを示す。
【０１４６】
コールドＮＡＳプロセッサ５０６は、電源がターンオンされた後（Ｓ１０１）、ブート指示を受けた場合（Ｓ１０２でＹ）、コールドＩ／Ｏプロセッサ５０４Ａ又は５０４Ｂを介して、システムＬＵ３１ＤからＯＳイメージを読み出す（Ｓ１０３）。このシステムＬＵ３１Ｄは、例えば、ＬＵ−ＧＩＤ「０」に属する１以上のＬＵのうちそのコールドＮＡＳプロセッサ５０６に対して予め定められたＬＵとすることができる。
【０１４７】
コールドＮＡＳプロセッサ５０６は、ＯＳのブート処理の最中に、ＮＡＳメモリ５０８に登録されたＬＵ管理テーブル９０３を参照して、自分を搭載しているＣＨＮ２１ＡＣに設定されたＬＵ−ＧＩＤを把握し、把握されたＬＵ−ＧＩＤをコールドＩ／Ｏプロセッサ５０４Ａ（又は５０４Ｂ）に認識させる（Ｓ１０４）。具体的には、コールドＮＡＳプロセッサ５０６は、把握されたＬＵ−ＧＩＤを含めた所定のコマンド２に含めてコールドＩ／Ｏプロセッサ５０４Ａに送信する。コマンド２を受けたコールドＩ／Ｏプロセッサ５０４Ａは、そのコマンド２に基づいて、自分を搭載しているＣＨＮ２１ＡＣに対応付けられたＬＵ−ＧＩＤを認識する（Ｓ１０４Ａ）。
【０１４８】
コールドＮＡＳプロセッサ５０６は、ＯＳのブート処理の最中に、コールドＩ／Ｏプロセッサ５０４Ａ（又は５０４Ｂ）を介して、共有ＬＵ３１Ｓから引継ぎ情報を取得する（Ｓ１０５）。コールドＮＡＳプロセッサ５０６は、必要に応じて、ＯＳのブート処理の最中に、取得した引継ぎ情報に含まれている複数の情報要素の中から選択した情報要素を設定する。
【０１４９】
コールドＮＡＳプロセッサ５０６は、ＯＳのブート処理の最中に、コールドＩ／Ｏプロセッサ５０４Ａ（又は５０４Ｂ）を介して、上記把握されたＬＵ−ＧＩＤに属する複数のユーザＬＵ３１Ｙにアクセスし、そのユーザＬＵ３１Ｙ内のファイルメタデータをチェックする等の方法により、自分が管理するファイルシステムのチェック等を行う（Ｓ１０６）。
【０１５０】
以上のＳ１０１〜Ｓ１０６の処理により、コールドＮＡＳプロセッサ５０６のＯＳが起動する。
【０１５１】
図２２は、ＣＨＮ２１Ａが記憶制御システム６００に組み込まれて立ち上がる場合の処理流れを示す。
【０１５２】
ＣＨＮ２１Ａのコネクタ５０９が接続部２６に接続された場合、Ｉ／Ｏプロセッサ５０４Ａ（及び５０４Ｂ）が通電し、Ｉ／Ｏプロセッサ５０４Ａの電源がオン状態になり（Ｓ１１１及びＳ１２１）、Ｉ／Ｏメモリ５０７に格納されているプログラム等に基づいて、所定の立ち上がり処理を開始する（Ｓ１１２及びＳ１２２）。
【０１５３】
Ｉ／Ｏプロセッサ５０４Ａは、共有メモリ２５のノード管理データ９０１Ａにアクセスし、自分を搭載しているＣＨＮ２１Ａに対応した区分情報等を参照する（Ｓ１１３及びＳ１２３）。
【０１５４】
Ｓ１１３及びＳ１２３の結果、区分情報が「マスタ」になっていれば、Ｉ／Ｏプロセッサ５０４Ａは、ＮＡＳプロセッサの電源をターンオンし（Ｓ１１４）、ブート指示を出す。それにより、ＮＡＳプロセッサは、システムＬＵ３１ＤからＯＳイメージを読出し（Ｓ１１５）、且つ、共有ＬＵ３１Ｓから種々の情報を取得して（Ｓ１１６）、起動する（Ｓ１１７）。
【０１５５】
一方、Ｓ１１３及びＳ１２３の結果、区分情報が「バックアップ」になっていれば、Ｉ／Ｏプロセッサ５０４Ａは、ＮＡＳプロセッサ５０６の電源をターンオンすることなく待機状態となり、所定タイミングで（例えば随時に又は定期的に）、自分を搭載するＣＨＮ２１Ａに対応する１以上のマスタＣＨＮ２１Ｍの状態情報を監視する。
【０１５６】
この図２２に示した処理流れによれば、例えば、障害が発生したマスタＣＨＮ２１ＡＭが記憶制御システム６００から除去されて代わりに別のＣＨＮ２１Ａが記憶制御システム６００に搭載された場合には、その別のＣＨＮ２１Ａは、図１９及び図２０を参照した説明によれば、自分に対応する状態情報が「バックアップ」になっているので、バックアップＣＨＮ２１ＡＣとして立ち上がることになる。
【０１５７】
以上が、本実施形態についての説明である。なお、上述した実施形態において、ＣＨＮ関係管理データ９０１に含まれるノード管理データ９０１Ａとノード対応データ９０１Ｂとのうち、ノード対応データ９０１Ｂは必ずしも必要ではない。本実施形態では、便宜上、マスタＣＨＮ２１ＡＭとバックアップＣＨＮ２１ＡＣとの対応付けを行っているが、必ずしも対応付けは必要ではない。対応付けがされていない場合、各バックアップＣＨＮ２１ＡＣはどのマスタＣＨＮ２１ＡＭに切り替わることができる。具体的には、例えば、複数のバックアップＣＨＮ２１ＡＣの各々が、全てのマスタＣＨＮ２１ＡＭの状態情報を参照し、或るマスタＣＨＮ２１ＡＭの状態情報が引継ぎ可能を示す情報「Shift Ready」になっていることを最も早く検出したバックアップＣＨＮ２１ＡＣが、他のバックアップＣＨＮ２１ＡＣによって引継ぎ処理が行われないよう排他処理を行って（例えば共有ＬＵをロックして）、その後に、上述した引継ぎ処理を行う。
【０１５８】
上述した実施形態によれば、マスタＣＨＮ２１ＡＭが故障等した場合にそのマスタＣＨＮ２１Ａに代わってマスタＣＨＮ２１Ａとして動作することができるよう待機状態になっている１以上のバックアップＣＨＮ２１ＡＣが存在する。各バックアップＣＨＮ２１ＡＣは、Ｉ／Ｏプロセッサ５０４の電源がオン状態であるが、Ｉ／Ｏプロセッサ５０４よりも消費電力量が多いＮＡＳプロセッサ５０６の電源がオフ状態であるコールドスタンバイの状態になっている。このため、バックアップＣＨＮ２１Ａの待機状態が、Ｉ／Ｏプロセッサ５０４のみならず、ＮＡＳプロセッサ５０６の電源もオン状態のままであるホットスタンバイの状態になっている場合に比べて、記憶制御システム６００全体の消費電力量を抑えることができる。これは、バックアップＣＨＮ２１Ａの数が多くなればなるほど効果的である。
【０１５９】
また、上述した実施形態によれば、バックアップＮＡＳプロセッサ５０６の電源はオフ状態になっているので、マスタＮＡＳプロセッサ５０６と、バックアップＮＡＳプロセッサ５０６との間での制御（換言すれば、ファイルシステムレベルでのクラスタ制御）は不要である。このため、マスタＮＡＳプロセッサ５０６にかかる負荷は軽減する。
【０１６０】
また、上述した実施形態によれば、バックアップＣＨＮ２１ＡＣは、複数のマスタＣＨＮ２１ＡＭの中から選択された１つのマスタＣＨＮ２１ＡＭに代わってそのマスタＣＨＮ２１ＡＭとして動作することができる。通常、記憶制御システム６００に搭載することができるＣＨＮ２１Ａの数には限りがあるが、その限られた数の中で、より多くのマスタＣＨＮ２１ＡＭを搭載することができる。
【０１６１】
また、上述した実施形態において、マスタＣＨＮ２１ＡＭの数をＭ個、バックアップＣＨＮ２１ＡＣの数をＮ個とすると、Ｍ≦Ｎの場合は、マスタＣＨＮ２１ＡＭが壊れた際、そのマスタＣＨＮ２１ＡＭに切り替わることができるバックアップＣＨＮ２１ＡＣが必ず存在するので、システムの動作が止まってしまうといった不具合が生じる可能性を抑えることができる。また、マスタＣＨＮ２１ＡＭの数の方が少ないので、純粋に省電力効果が高まる。一方、Ｍ＞Ｎの場合は、より多くのマスタＣＨＮ２１ＡＭが存在するので、記憶制御システム６００における処理性能が高まる。また、各マスタＣＨＮ２１ＡＭ毎に対応したバックアップＣＨＮ２１ＡＣを用意する必要が無いので、性能及び信頼性の割りに、規模が小さくて済む。また、バックアップＣＨＮ２１ＡＣはコールドスタンバイ状態であるため、規模の割には省電力効果が高い。
【０１６２】
さて、本実施形態には幾つかの変形例が考えられる。幾つかの変形例を説明する前に、本実施形態の一つの特徴に係る概念について確認する。
【０１６３】
図２３は、本実施形態の一つの特徴に係る概念を示す。
【０１６４】
記憶制御システム６００には、２以上（又は１つ）のマスタＣＨＮ２１ＡＭと、２以上（又は１つの）コールドスタンバイ状態のバックアップＣＨＮ２１ＡＣとが備えられる。また、共有メモリ２５には、複数のＣＨＮ２１Ａにそれぞれ対応した複数の属性情報（例えば、ブレードＩＤ、区分情報、状態情報及びＬＵ−ＧＩＤを含む情報）が記録されたノード管理データ９０１Ａが登録されている。
【０１６５】
各マスタＣＨＮ２１ＡＭのマスタＩ／Ｏプロセッサ５０４は、障害が発生した等の切替え原因が発生した場合、マスタＮＡＳプロセッサ５０６の電源をターンオフして、自分を搭載しているＣＨＮ２１ＡＭに対応する状態情報（ノード管理データ９０１Ａ上の状態情報）を、切替えを示す情報（以下、切り替え状態情報）に変更する。
【０１６６】
２以上のバックアップＣＨＮ２１ＡＣの各々のコールドＩ／Ｏプロセッサ５０４は、ノード管理データ９０１Ａにアクセスして、全ての又は自分に対応付けられているマスタＣＨＮ２１ＡＭの状態情報を参照する（Ｓ２０１）。そのコールドＩ／Ｏプロセッサ５０４は、切替え状態情報を検出した場合には（Ｓ２０２）、切り替え状態情報に対応したマスタＣＨＮ２１ＡＭと他のバックアップＣＨＮ２１ＡＣとの間で切り替えが行われないようにするために、他のバックアップＣＨＮ２１ＡＣを排他する処理を行う（Ｓ２０３）。具体的には、例えば、そのコールドＩ／Ｏプロセッサ５０４は、共有ＬＵにロックをかけるか、或いは、ノード管理データ９０１Ａに、切替え状態情報に対応付けたフラグを立てる等をする。そのコールドＩ／Ｏプロセッサ５０４は、排他処理に成功した場合は、上述した切替え処理を実行する（Ｓ２０４）。それにより、そのコールドＩ／Ｏプロセッサ５０４を搭載したバックアップＣＨＮ２１ＡＣが、切替え状態情報に対応したマスタＣＨＮ２１ＡＭに代わって、マスタＣＨＮ２１ＡＭとして動作することができるようになる。
【０１６７】
以下、幾つかの変形例について説明する。
【０１６８】
図２４は、本実施形態の第一変形例の概要を示すブロック図である。
【０１６９】
本実施形態の第一変形例に係る記憶制御システム６００には、２以上（又は１つ）のマスタＣＨＮ２１ＡＭと、２以上（又は１つの）コールドスタンバイ状態のバックアップＣＨＮ（以下、コールドＣＨＮ）２１ＡＣとの他に、１以上のホットスタンバイ状態のバックアップＣＨＮ（以下、ホットＣＨＮ）２１ＡＨが備えられる。ホットスタンバイ状態とは、前述したように、ＮＡＳプロセッサ５０６の電源がオン状態になったままの待機状態のことである。
【０１７０】
この第一変形例において、ノード管理データ９０１Ａには、ＣＨＮ２１Ａに対応した区分情報として、「バックアップ」の代わりに、コールドＣＨＮ２１ＡＣであることを意味する「コールドスタンバイ」と、ホットＣＨＮ２１ＡＨであることを意味する「ホットスタンバイ」とがある。
【０１７１】
図２５は、本実施形態の第一変形例において行われる処理流れの一つの例を示す。
【０１７２】
各マスタＣＨＮ２１ＡＭのマスタＩ／Ｏプロセッサ５０４は、障害が発生した等の切替え原因が発生した場合、マスタＮＡＳプロセッサ５０６の電源をターンオフして、自分を搭載しているＣＨＮ２１ＡＭに対応する状態情報（ノード管理データ９０１Ａ上の状態情報）を、引継ぎ可能な状態を示す情報（例えば「Shift Ready」、以下、引継ぎ状態情報）に変更する。
【０１７３】
２以上のコールドＣＨＮ２１ＡＣの各々のＩ／Ｏプロセッサ５０４も、１以上のホットＣＨＮ２１ＡＨの各々のＩ／Ｏプロセッサ５０４も、ノード管理データ９０１Ａにアクセスして、全ての又は自分に対応付けられているマスタＣＨＮ２１ＡＭの状態情報を参照する（Ｓ２１１）。
【０１７４】
Ｉ／Ｏプロセッサ５０４は、引継ぎ状態情報を検出した場合（Ｓ２１２）、引継ぎ状態情報を持つマスタＣＨＮ２１ＡＭについて既に排他処理がされていれば（Ｓ２１３でＹ）、別のマスタＣＨＮ２１ＡＭの状態情報を参照する（或いは、全ての状態情報について参照することが終了していれば、処理を終えても良い）（Ｓ２１４）。
【０１７５】
一方、Ｉ／Ｏプロセッサ５０４は、引継ぎ状態情報を検出し（Ｓ２１２）、且つ、引継ぎ状態情報を持つマスタＣＨＮ２１ＡＭについて未だ排他処理がされていなければ（Ｓ２１３でＮ）、自分を搭載しているＣＨＮ２１ＡがホットＣＨＮ２１ＡＨかコールドＣＨＮ２１ＡＣかを判断する（Ｓ２１５）。この判断は、例えば、自分を搭載しているＣＨＮ２１Ａに対応した区分情報が「ホットスタンバイ」か「コールドスタンバイ」を参照する等の方法により行うことができる。
【０１７６】
Ｓ２１５の判断の結果、コールドＣＨＮ２１ＡＣであると判断された場合（Ｓ２１５でＮ）、Ｉ／Ｏプロセッサ５０４は、別のマスタＣＨＮ２１ＡＭの状態情報を参照する（或いは、全ての状態情報について参照することが終了していれば、処理を終えても良い）（Ｓ２１６）。換言すれば、ホットＣＨＮ２１ＡＨによって引継ぎ状態情報が検出されるのを待つ。
【０１７７】
一方、Ｓ２１５の判断の結果、ホットＣＨＮ２１ＡＨであると判断された場合（Ｓ２１５でＹ）、Ｉ／Ｏプロセッサ５０４は、Ｓ２１２で検出した引継ぎ状態情報に対応するマスタＣＨＮ２１ＡＭについて排他処理を行って（Ｓ２１７）、切替え処理を実行する（Ｓ２１８）。それにより、そのＩ／Ｏプロセッサ５０４を搭載したホットＣＨＮ２１ＡＨが、引継ぎ状態情報に対応したマスタＣＨＮ２１ＡＭに代わって、マスタＣＨＮ２１ＡＭとして動作することができるようになる。
【０１７８】
図２６は、本実施形態の第一変形例において行われる処理流れの別の一つの例を示す。
【０１７９】
図２５に示した処理流れによって、ホットＣＨＮ２１ＡＨが、マスタＣＨＮ２１ＡＭとして動作した場合（Ｓ２２１）、その旨をコールドＣＨＮ２１ＡＣが検出する（Ｓ２２２）。その検出する方法としては、例えば、ホットＣＨＮ２１ＡＨのＩ／Ｏプロセッサ５０４が、マスタＣＨＮ２１ＡＭとして動作することをキャッシュメモリ２４又は共有メモリ２５を介してコールドＣＨＮ２１ＡＣのＩ／Ｏプロセッサ５０４に通知する等の方法を採用することができる。
【０１８０】
コールドＣＨＮ２１ＡＣのＩ／Ｏプロセッサ５０４は、ホットＣＨＮ２１ＡＨがマスタＣＨＮ２１ＡＭとして動作することを検出した場合、そのＩ／Ｏプロセッサ５０４は、ＮＡＳプロセッサ５０６の電源をターンオンし、コールドＣＨＮ２１ＡＣをホットＣＨＮ２１ＡＨとして待機状態にする（Ｓ２２３）。その際、そのＩ／Ｏプロセッサ５０４は、自分を搭載しているＣＨＮ２１Ａに対応する区分情報を「コールドスタンバイ」から「ホットスタンバイ」に変更する。
【０１８１】
その後、故障したマスタＣＨＮ２１ＡＭが別のＣＨＮ２１Ａに交換された場合、そのＣＨＮ２１Ａは、前述したように、ノード管理データ９０１Ａを参照することにより、コールドＣＨＮ２１ＡＣとして立ち上がる（Ｓ２２４）。
【０１８２】
以上が、第一変形例についての説明である。なお、ホットＣＨＮ２１ＡＨがマスタＣＨＮ２１ＡＭに切り替わる場合に行なわれる処理流れについては特に図示しないが、その処理流れでは、コールドＣＨＮ２１ＡＣがマスタＣＨＮ２１ＡＭに切り替わる場合に行なわれる処理流れと同様に、マスタＣＨ２１ＡＭの引継ぎ情報がホットＣＨＮ２１ＡＨのＮＡＳプロセッサ５０６に取得される処理が行われる。
【０１８３】
この第一の変形例によれば、待機状態のＣＨＮ２１Ａが、マスタＣＨＮ２１ＡＭに切り替わる場合、コールドＣＨＮ２１ＡＣよりもホットＣＨＮ２１ＡＨが優先してマスタＣＨＮ２１ＡＭに切り替わる。その後、コールドＣＨＮ２１ＡＣはホットＣＨＮ２１ＡＨに切り替わり、且つ、故障したマスタＣＨＮ２１ＡＭに代わって別のＣＨＮ２１Ａが装着された場合はそれがコールドＣＨＮ２１ＡＣとして立ち上がる。これにより、記憶制御システム６００における消費電力量を抑えつつ、待機状態からマスタＣＨＮ２１ＡＭとして切り替わるフェールオーバー処理にかかる時間の短縮化が図れる。
【０１８４】
本実施形態の第二変形例では、例えば、区分情報の変更（例えば、「マスタ」から「バックアップ」への変更、及び／又は「バックアップ」から「マスタ」への変更）は、バックアップＣＨＮ２１ＡＣのＩ／Ｏプロセッサ５０４ではなく、マスタＣＨＮ２１ＡＭのＩ／Ｏプロセッサ５０４が行っても良い。
【０１８５】
本実施形態の第三変形例では、例えば、ＣＨＮ２１ＡとＬＵとのマッピングは、ＬＵグループ単位ではなく、個々のＬＵ毎にマッピングが行われても良い。具体的には、例えば、ノード管理データ９０１Ａにおいて、各ＣＨＮ２１Ａ毎に、そのＣＨＮ２１Ａが使用するＬＵＮを記録しても良い。
【０１８６】
以上、本発明の実施形態及び変形例を説明したが、これらは本発明の説明のための例示であって、本発明の範囲をこの実施形態及び変形例にのみ限定する趣旨ではない。本発明は、他の種々の形態でも実施することが可能である。
【図面の簡単な説明】
【０１８７】
【図１】本発明の一実施形態に係る記憶制御システムの外観の概略を示す。
【図２】本実施形態に係る記憶システムの構成を示すブロック図である。
【図３】ＣＨＮ２１Ａの構成例を示すブロック図である。
【図４】ＤＫＡ２２の構成例を示すブロック図である。
【図５】本実施形態の主要部分を詳細に説明するための、記憶制御システム６００のブロック図である。
【図６】ＬＵ管理テーブル９０３の構成例を示す。
【図７】ＣＨＮ関係管理データ９０１の構成例を示す。
【図８】ノード管理データ９０１Ａとノード対応データ９０１Ｂとの対応付けのバリエーション例を示す。
【図９】ＬＵネクサス定義データ９０５の構成例を示す。
【図１０】マスタＣＨＮ２１ＡＭによって行われるファイルリード処理の流れの一例を示す。
【図１１】マスタＣＨＮ２１ＡＭによって行われるファイルライト処理の流れの一例を示す。
【図１２】マスタＣＨＮ２１ＡＭによって行われる引継ぎ情報の書込み処理の流れの一例を示す。
【図１３】バックアップＣＨＮ２１ＡＣによって行われる通常処理の流れを示す。
【図１４】バックアップＣＨＮ２１ＡＣがマスタＣＨＮ２１ＡＭとして動作するまでの流れの概略を示す。
【図１５】マスタＣＨＮ２１ＡＭが状態情報を更新するか否かの判断を行う場合の処理流れである。
【図１６】マスタＣＨＮ２１ＡＭにおいてマスタＮＡＳプロセッサ５０６で障害が発生した場合に行われる処理流れを示す。
【図１７】図１６に示した処理流れにおけるノード管理データ９０１Ａの変更の流れを示す。
【図１８】マスタＣＨＮ２１ＡＭにおいてマスタＩ／Ｏプロセッサ５０４Ａで障害が発生した場合に行われる処理流れの例を示す。
【図１９】コールドＩ／Ｏプロセッサ５０４Ａの処理流れを示す。
【図２０】、図１９に示した処理流れにおけるノード管理データ９０１Ａの変更前と変更後の例を示す。
【図２１】コールドＮＡＳプロセッサ５０６の処理流れを示す。
【図２２】ＣＨＮ２１Ａが記憶制御システム６００に組み込まれて立ち上がる場合の処理流れを示す。
【図２３】本実施形態の一つの特徴に係る概念を示す。
【図２４】本実施形態の第一変形例の概要を示すブロック図である。
【図２５】本実施形態の第一変形例において行われる処理流れの一つの例を示す。
【図２６】本実施形態の第一変形例において行われる処理流れの別の一つの例を示す。
【符号の説明】
【０１８８】
１０Ａ…ホスト装置、１１…アプリケーションプログラム、１２…アダプタ、２０…記憶制御サブシステム、２１…チャネル制御部、２１Ａ…チャネルアダプタＮＡＳ（ＣＨＮ）、２１ＡＭ…マスタＣＨＮ、２１ＡＣ…バックアップＣＨＮ、２２…ディスクアダプタ、２３…ＳＶＰ（Service Processor）、２４…キャッシュメモリ、２５…共有メモリ、２６…接続部、３０…ディスクユニット、３１…ＬＵ、６００…記憶制御システム、８００…ディスク制御部
【図１】
2005267111.tif 000003
【図２】
2005267111.tif 000004
【図３】
2005267111.tif 000005
【図４】
2005267111.tif 000006
【図５】
2005267111.tif 000007
【図６】
2005267111.tif 000008
【図７】
2005267111.tif 000009
【図８】
2005267111.tif 000010
【図９】
2005267111.tif 000011
【図１０】
2005267111.tif 000012
【図１１】
2005267111.tif 000013
【図１２】
2005267111.tif 000014
【図１３】
2005267111.tif 000015
【図１４】
2005267111.tif 000016
【図１５】
2005267111.tif 000017
【図１６】
2005267111.tif 000018
【図１７】
2005267111.tif 000019
【図１８】
2005267111.tif 000020
【図１９】
2005267111.tif 000021
【図２０】
2005267111.tif 000022
【図２１】
2005267111.tif 000023
【図２２】
2005267111.tif 000024
【図２３】
2005267111.tif 000025
【図２４】
2005267111.tif 000026
【図２５】
2005267111.tif 000027
【図２６】
2005267111.tif 000028