(57)【要約】【課題】信頼性が高い記憶システムを実現する。【解決手段】外部記憶装置と、それぞれが外部記憶装置のデータを読み書きする複数のアクセス制御部と、アクセス制御部毎に設けられ、各アクセス制御部が外部記憶装置のデータを読み書きする信号を伝送する複数のアクセス用バスと、複数のアクセス用バスの何れかを外部記憶装置に接続することにより、複数のアクセス制御部の何れかを、外部記憶装置のデータを読み書きするオーナー制御部として設定する切替部とを備え、複数のアクセス制御部のそれぞれは、オーナー制御部による外部記憶装置のデータの読み書きに障害を検出した場合に、オーナー制御部に代えて他のアクセス制御部に外部記憶装置のデータを読み書きさせるべく、切替部において当該他のアクセス制御部をオーナー制御部として設定させる障害対処部を有する記憶システムを提供する。【選択図】  図１
2005018161.tif 000002
【特許請求の範囲】
【請求項１】
外部記憶装置と、
それぞれが前記外部記憶装置のデータを読み書きする複数のアクセス制御部と、
前記アクセス制御部毎に設けられ、各アクセス制御部が前記外部記憶装置のデータを読み書きする信号を伝送する複数のアクセス用バスと、
前記複数のアクセス用バスの何れかを前記外部記憶装置に接続することにより、前記複数のアクセス制御部の何れかを、前記外部記憶装置のデータを読み書きするオーナー制御部として設定する切替部と
を備え、少なくとも一の前記アクセス制御部のそれぞれは、
前記オーナー制御部による前記外部記憶装置のデータの読み書きに障害を検出した場合に、前記オーナー制御部に代えて他のアクセス制御部に前記外部記憶装置のデータを読み書きさせるべく、前記切替部において当該他のアクセス制御部をオーナー制御部として設定させる障害対処部
を有する記憶システム。
【請求項２】
前記複数のアクセス制御部のそれぞれから前記切替部に接続される信号線であって、前記障害対処部が前記切替部に前記オーナー制御部を変更させる変更信号を伝送する制御信号線を更に備え、
前記複数のアクセス制御部のそれぞれにおいて、前記障害対処部は、当該アクセス制御部が前記オーナー制御部であるか否かに関わらず、前記制御信号線を用いて前記オーナー制御部を変更する
請求項１記載の記憶システム。
【請求項３】
前記複数のアクセス制御部のそれぞれは、前記変更信号を前記制御信号線に出力する出力制御部を更に備え、
障害の発生した前記オーナー制御部とは異なる他のアクセス制御部において、前記障害対処部は、更に、障害の発生した前記オーナー制御部における前記出力制御部を無効とする手段を有する
請求項２記載の記憶システム。
【請求項４】
前記複数のアクセス制御部のそれぞれは、当該アクセス制御部の状態を示すステータス信号を他のアクセス制御部に周期的に送信するステータス信号送信部を更に有し、
前記障害対処部は、前記ステータス信号が前記オーナー制御部の障害を示す場合又はオーナー制御部からステータス信号を受信してから予め定めた期間内に次のステータス信号を受信しなかった場合に、前記オーナー制御部による前記外部記憶装置のデータの読み書きに障害が発生した旨を検出する
請求項１記載の記憶システム。
【請求項５】
前記オーナー制御部における前記障害対処部は、前記オーナー制御部の起動時に、前記オーナー制御部を構成する装置が正常か否かを検出することにより、前記オーナー制御部による前記外部記憶装置のデータの読み書きに障害を検出する
請求項１記載の記憶システム。
【請求項６】
前記複数のアクセス制御部のそれぞれは、外部の装置からの指示に応じて前記外部記憶装置のデータを読み書きし、
前記複数のアクセス制御部のそれぞれは、
当該アクセス制御部が前記オーナー制御部でない場合に、前記外部の装置からの指示を前記オーナー制御部に転送することにより、前記オーナー制御部により前記外部記憶装置のデータを読み書きさせる転送処理部を更に有する
請求項１記載の記憶システム。
【請求項７】
当該記憶システムは、複数の前記外部記憶装置を備え、
前記複数のアクセス制御部のそれぞれは、前記複数の外部記憶装置のデータを読み書きし、
前記複数の外部記憶装置のそれぞれに対応して、
前記アクセス制御部毎に設けられ、各アクセス制御部が当該外部記憶装置のデータを読み書きする信号を伝送する複数のアクセス用バスと、
前記複数のアクセス用バスの何れかを当該外部記憶装置に接続することにより、前記複数のアクセス制御部の何れかを、当該外部記憶装置のデータを読み書きするオーナー制御部として設定する切替部と
を備え、
前記障害対処部は、更に、一の前記アクセス制御部による一の前記外部記憶装置に対する読み書きに障害を検出した場合に、当該一の外部記憶装置に対応する切替部において、当該一の外部記憶装置のデータを読み書きするオーナー制御部を前記一のアクセス制御部に代えて他のアクセス制御部に設定させる
請求項１記載の記憶システム。
【請求項８】
前記一の外部記憶装置は、少なくとも一の他の外部記憶装置との組合せによりディスクアレイを構成し、
前記障害対処部は、前記一のアクセス制御部による前記一の外部記憶装置に対する読み書きに障害を検出した場合に、更に、前記一の外部記憶装置との組合せでディスクアレイを構成する前記他の外部記憶装置に対応する切替部において、当該他の外部記憶装置のデータを読み書きするオーナー制御部を前記一のアクセス制御部に代えて当該他のアクセス制御部に設定させる
請求項７記載の記憶システム。
【請求項９】
記憶システムを制御する制御方法であって、
前記記憶システムは、
外部記憶装置と、
それぞれが前記外部記憶装置のデータを読み書きする複数のアクセス制御部と、
前記アクセス制御部毎に設けられ、各アクセス制御部が前記外部記憶装置のデータを読み書きする信号を伝送する複数のアクセス用バスと、
前記複数のアクセス用バスの何れかを前記外部記憶装置に接続することにより、前記複数のアクセス制御部の何れかを、前記外部記憶装置のデータを読み書きするオーナー制御部として設定する切替部と
を備え、少なくとも一の前記アクセス制御部において、
前記オーナー制御部による前記外部記憶装置のデータの読み書きに障害を検出する段階と、
前記オーナー制御部に代えて他のアクセス制御部に前記外部記憶装置のデータを読み書きさせるべく、前記切替部において当該他のアクセス制御部をオーナー制御部として設定させる段階と
を有する制御方法。
【請求項１０】
記憶システムを制御するプログラムであって、
前記記憶システムは、
外部記憶装置と、
それぞれが前記外部記憶装置のデータを読み書きする複数のアクセス制御部と、
前記アクセス制御部毎に設けられ、各アクセス制御部が前記外部記憶装置のデータを読み書きする信号を伝送する複数のアクセス用バスと、
前記複数のアクセス用バスの何れかを前記外部記憶装置に接続することにより、前記複数のアクセス制御部の何れかを、前記外部記憶装置のデータを読み書きするオーナー制御部として設定する切替部と
を備え、少なくとも一の前記アクセス制御部を、
前記オーナー制御部による前記外部記憶装置のデータの読み書きに障害を検出する手段と、
前記オーナー制御部に代えて他のアクセス制御部に前記外部記憶装置のデータを読み書きさせるべく、前記切替部において当該他のアクセス制御部をオーナー制御部として設定させる手段と
して機能させるプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、記憶システム、制御方法、及びプログラムに関する。特に本発明は、外部記憶装置にアクセスする制御部を複数有する記憶システム、制御方法、及びプログラムに関する。
【０００２】
【従来の技術】
近年、大容量かつ信頼性の高いハードディスクの規格として、ファイバチャネル規格が注目されている（非特許文献１参照。）。一方、比較的安価でありかつ高速であるハードディスクの規格として、シリアルＡＴＡ規格が注目されている。
【０００３】
【非特許文献１】
ファイバチャネル協議会ホームページＵＲＬ「ｈｔｔｐ：／／ｗｗｗ．ｆｃａｊ．ｏｒｇ／」
【０００４】
【発明が解決しようとする課題】
ファイバチャネル規格によると、ハードディスクドライブは、外部と通信するインターフェイスを複数有しているので、他のハードディスクドライブ及びディスクアクセスコントローラに接続してリング状のネットワークを形成することができる。これにより、接続バス及びディスクアクセスコントローラを多重化して、信頼性を高めることができる。しかしながら、ファイバチャネル規格に準拠したハードディスクドライブ及びディスクアクセスコントローラ等は比較的高価である。
【０００５】
一方、シリアルＡＴＡ規格に準拠したハードディスクは、外部と通信するインターフェイスを１つのみ有しているので、複数のディスクアクセスコントローラと接続することはできない。このため、ディスクアクセスコントローラを多重化することができず、高い信頼性が必要とされる用途には適していなかった。
そこで本発明は、上記の課題を解決することのできる記憶システム、制御方法、及びプログラムを提供することを目的とする。この目的は特許請求の範囲における独立項に記載の特徴の組み合わせにより達成される。また従属項は本発明の更なる有利な具体例を規定する。
【０００６】
【課題を解決するための手段】
即ち、本発明の第１の形態によると、外部記憶装置と、それぞれが外部記憶装置のデータを読み書きする複数のアクセス制御部と、アクセス制御部毎に設けられ、各アクセス制御部が外部記憶装置のデータを読み書きする信号を伝送する複数のアクセス用バスと、複数のアクセス用バスの何れかを外部記憶装置に接続することにより、複数のアクセス制御部の何れかを、外部記憶装置のデータを読み書きするオーナー制御部として設定する切替部とを備え、少なくとも一のアクセス制御部のそれぞれは、オーナー制御部による外部記憶装置のデータの読み書きに障害を検出した場合に、オーナー制御部に代えて他のアクセス制御部に外部記憶装置のデータを読み書きさせるべく、切替部において当該他のアクセス制御部をオーナー制御部として設定させる障害対処部を有する記憶システムを提供する。
【０００７】
また、複数のアクセス制御部のそれぞれから切替部に接続される信号線であって、障害対処部が切替部にオーナー制御部を変更させる変更信号を伝送する制御信号線を更に備え、複数のアクセス制御部のそれぞれにおいて、障害対処部は、当該アクセス制御部がオーナー制御部であるか否かに関わらず、制御信号線を用いてオーナー制御部を変更してもよい。
また、複数のアクセス制御部のそれぞれは、変更信号を制御信号線に出力する出力制御部を更に備え、障害の発生したオーナー制御部とは異なる他のアクセス制御部において、障害対処部は、更に、障害の発生したオーナー制御部における出力制御部を無効とする手段を有してもよい。
また、複数のアクセス制御部のそれぞれは、当該アクセス制御部の状態を示すステータス信号を他のアクセス制御部に周期的に送信するステータス信号送信部を更に有し、障害対処部は、ステータス信号がオーナー制御部の障害を示す場合又はオーナー制御部からステータス信号を受信してから予め定めた期間内に次のステータス信号を受信しなかった場合に、オーナー制御部による外部記憶装置のデータの読み書きに障害が発生した旨を検出してもよい。
【０００８】
また、オーナー制御部における障害対処部は、オーナー制御部の起動時に、オーナー制御部を構成する装置が正常か否かを検出することにより、オーナー制御部による外部記憶装置のデータの読み書きに障害を検出してもよい。
また、複数のアクセス制御部のそれぞれは、外部の装置からの指示に応じて外部記憶装置のデータを読み書きし、複数のアクセス制御部のそれぞれは、当該アクセス制御部がオーナー制御部でない場合に、外部の装置からの指示をオーナー制御部に転送することにより、オーナー制御部により外部記憶装置のデータを読み書きさせる転送処理部を更に有してもよい。
また、当該記憶システムは、複数の外部記憶装置を備え、複数のアクセス制御部のそれぞれは、複数の外部記憶装置のデータを読み書きし、複数の外部記憶装置のそれぞれに対応して、アクセス制御部毎に設けられ、各アクセス制御部が当該外部記憶装置のデータを読み書きする信号を伝送する複数のアクセス用バスと、複数のアクセス用バスの何れかを当該外部記憶装置に接続することにより、複数のアクセス制御部の何れかを、当該外部記憶装置のデータを読み書きするオーナー制御部として設定する切替部とを備え、障害対処部は、更に、一のアクセス制御部による一の外部記憶装置に対する読み書きに障害を検出した場合に、当該一の外部記憶装置に対応する切替部において、当該一の外部記憶装置のデータを読み書きするオーナー制御部を一のアクセス制御部に代えて他のアクセス制御部に設定させてもよい。
【０００９】
また、一の外部記憶装置は、少なくとも一の他の外部記憶装置との組合せによりディスクアレイを構成し、障害対処部は、一のアクセス制御部による一の外部記憶装置に対する読み書きに障害を検出した場合に、更に、一の外部記憶装置との組合せでディスクアレイを構成する他の外部記憶装置に対応する切替部において、当該他の外部記憶装置のデータを読み書きするオーナー制御部を一のアクセス制御部に代えて当該他のアクセス制御部に設定させてもよい。
本発明の第２の形態によると、記憶システムを制御する制御方法であって、記憶システムは、外部記憶装置と、それぞれが外部記憶装置のデータを読み書きする複数のアクセス制御部と、アクセス制御部毎に設けられ、各アクセス制御部が外部記憶装置のデータを読み書きする信号を伝送する複数のアクセス用バスと、複数のアクセス用バスの何れかを外部記憶装置に接続することにより、複数のアクセス制御部の何れかを、外部記憶装置のデータを読み書きするオーナー制御部として設定する切替部とを備え、少なくとも一のアクセス制御部において、オーナー制御部による外部記憶装置のデータの読み書きに障害を検出する段階と、オーナー制御部に代えて他のアクセス制御部に外部記憶装置のデータを読み書きさせるべく、切替部において当該他のアクセス制御部をオーナー制御部として設定させる段階とを有する制御方法を提供する。
【００１０】
本発明の第３の形態によると、記憶システムを制御するプログラムであって、記憶システムは、外部記憶装置と、それぞれが外部記憶装置のデータを読み書きする複数のアクセス制御部と、アクセス制御部毎に設けられ、各アクセス制御部が外部記憶装置のデータを読み書きする信号を伝送する複数のアクセス用バスと、複数のアクセス用バスの何れかを外部記憶装置に接続することにより、複数のアクセス制御部の何れかを、外部記憶装置のデータを読み書きするオーナー制御部として設定する切替部とを備え、少なくとも一のアクセス制御部を、オーナー制御部による外部記憶装置のデータの読み書きに障害を検出する手段と、オーナー制御部に代えて他のアクセス制御部に外部記憶装置のデータを読み書きさせるべく、切替部において当該他のアクセス制御部をオーナー制御部として設定させる手段として機能させるプログラムを提供する。
なお上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではなく、これらの特徴群のサブコンビネーションも又発明となりうる。
【００１１】
【発明の実施の形態】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではなく、又実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【００１２】
図１は、情報処理システム１０のブロック図である。情報処理システム１０は、ホストコンピュータ１５と、ファイバチャネル（Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ）等のインターフェイスを介してホストコンピュータ１５と接続される記憶システム２０とを備える。記憶システム２０は、それぞれが外部記憶装置４０ａ〜ｅのデータを読み書きするアクセス制御部２００ａ及びアクセス制御部２００ｂと、アクセス制御部毎に設けられ各アクセス制御部が外部記憶装置４０ａ〜ｅのそれぞれのデータを読み書きする信号を伝送する複数のアクセス用バスと、外部記憶装置４０ａ〜ｅのそれぞれに対応して設けられ複数のアクセス用バスの何れかを当該外部記憶装置に接続する切替部３０ａ〜ｅと、アクセス制御部２００ａ及びアクセス制御部２００ｂのそれぞれから切替部３０ａ〜ｅに接続される制御信号線と、外部記憶装置４０ａ〜ｅとを有する。
【００１３】
記憶システム２０は、ホストコンピュータ１５から指示に応じて、外部記憶装置４０ａ〜ｅの少なくとも１つ、例えば、外部記憶装置４０ａ及び外部記憶装置４０ｂにおけるデータをアクセス制御部２００ａを用いて読み書きする。また、記憶システム２０は、アクセス制御部２００ｂを用いて外部記憶装置４０ｃ〜ｅにおけるデータを読み書きする。そして、アクセス制御部２００ａによる外部記憶装置４０ａ及び外部記憶装置４０ｂのデータに対する読み書きに障害が検出された場合に、記憶システム２０は、アクセス制御部２００ａに代えてアクセス制御部２００ｂを用いて、外部記憶装置４０ａ及び外部記憶装置４０ｂのデータを読み書きする。これにより、記憶システム２０は、通常動作において、アクセス制御部２００ａ及びアクセス制御部２００ｂの双方を有効に利用して高速にデータを読み書きできると共に、障害発生時においても読み書き不能となることを防止することができる。
【００１４】
切替部３０ａは、外部記憶装置４０ａに対応して設けられており、複数のアクセス制御部の何れか、例えば、アクセス制御部２００ａを、外部記憶装置４０ａのデータを読み書きするオーナー制御部として設定する。そして、切替部３０ａは、アクセス制御部２００ａ又はアクセス制御部２００ｂから制御信号線を介して取得した変更信号に応じて、オーナー制御部を変更する。一例としては、切替部３０ａは、アクセス制御部２００ａ及びアクセス制御部２００ｂのそれぞれから制御信号線を介して取得した変更信号に対して、何らかの論理演算（例えば、論理和演算）を行った結果に応じてオーナー制御部を変更してもよい。
【００１５】
また、切替部３０ａは、オーナー制御部を設定するべく、複数のアクセス用バスの何れかを外部記憶装置４０ａに接続する。ここで、接続とは、例えば電気的な接続であり、即ち、切替部３０ａは、複数のアクセス用バスの何れかを外部記憶装置４０ａに電気的に接続する。これに代えて、切替部３０ａは、複数のアクセス用バスのそれぞれを外部記憶装置４０ａに電気的に接続していてもよい。この場合、切替部３０ａは、オーナー制御部からの信号を外部記憶装置４０ａに伝送すると共に、オーナー制御部以外のアクセス制御部から受信した信号を無効としてもよい。
【００１６】
また、アクセス用バスの規格及び外部記憶装置４０ａの規格が互いに異なる場合に、好ましくは、切替部３０ａは、受信した信号の規格を変換する手段を有する。例えば、アクセス用バスがシリアルＡＴＡ規格に準拠しており、かつ外部記憶装置４０ａがパラレルＡＴＡ規格に準拠している場合、切替部３０ａは、シリアルＡＴＡインターフェイス及びパラレルＡＴＡインターフェイスを相互に変換する手段を有する。
切替部３０ｂ〜ｅのそれぞれは、外部記憶装置４０ｂ〜ｅのそれぞれに対応して設けられ、対応する外部記憶装置のオーナー制御部を設定する他は、切替部３０ａと略同一であるので以降の説明を省略する。
【００１７】
外部記憶装置４０ａは、アクセス制御部２００ａ又はアクセス制御部２００ｂから、アクセス用バス及び切替部３０ａを介して読み書きされる。また、外部記憶装置４０ａは、例えば、ハードディスクドライブ等の磁気記録装置であり、より具体的には、外部記憶装置４０ａは、外部から読み書きされる一のインターフェイスを有するハードディスクドライブである。一例としては、外部記憶装置４０ａは、シリアルＡＴＡ規格のハードディスクドライブであってもよいし、パラレルＡＴＡ規格のハードディスクドライブであってもよい。これに代えて、外部記憶装置４０ａは、ＣＤ−ＲＯＭ又はＤＶＤ−ＲＯＭ等の光磁気記録装置であってもよいし、テープドライブ等の逐次記録装置であってもよい。
【００１８】
外部記憶装置４０ｃは、少なくとも一の他の外部記憶装置、例えば、外部記憶装置４０ｄ及び外部記憶装置４０ｅとの組合せにより、ディスクアレイ４５を構成する。より具体的には、アクセス制御部２００ａ又はアクセス制御部２００ｂは、ホストコンピュータ１５に、外部記憶装置４０ｃ、外部記憶装置４０ｄ、及び外部記憶装置４０ｅの組合せであるディスクアレイ４５を、単体の外部記憶装置として読み書きさせてもよい。一例として、ディスクアレイ４５は、ミラーリング、ストライピング、エラーチェック、又はエラー訂正等のＲＡＩＤ（Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙ  ｏｆ  Ｉｎｅｘｐｅｎｓｉｖｅ  Ｄｉｓｋｓ）技術に準拠していてもよい。
【００１９】
他の構成について、外部記憶装置４０ｂ〜ｅのそれぞれは、アクセス制御部２００ａ又はアクセス制御部２００ｂから、切替部３０ｂ〜ｅのそれぞれを介して読み書きされる他は、外部記憶装置４０ａと略同一であるので説明を省略する。
【００２０】
アクセス制御部２００ａは、オーナーシップデータベース２０５ａと、転送処理部２１０ａと、読み書き部２１５ａと、ステータス信号送信部２２０ａと、障害対処部２３０ａと、出力制御部２４０ａとを有する。オーナーシップデータベース２０５ａは、外部記憶装置４０ａ〜ｅのそれぞれについて、当該外部記憶装置のオーナー制御部が何れのアクセス制御部であるかを示すオーナーシップ情報を格納している。
【００２１】
例えば、オーナーシップデータベース２０５ａは、外部記憶装置４０ａ及び外部記憶装置４０ｂのオーナー制御部がアクセス制御部２００ａであり、外部記憶装置４０ｃ〜ｅのオーナー制御部がアクセス制御部２００ｂである旨を示すオーナーシップ情報を格納している。そして、オーナーシップデータベース２０５ａは、障害対処部２３０ａからの指示に応じてオーナーシップ情報を変更する。
【００２２】
転送処理部２１０ａは、外部記憶装置４０ａ〜ｅの何れかのデータを読み書きする指示を、ホストコンピュータ１５から受け取る。そして、転送処理部２１０ａは、当該指示により読み書きの対象となる外部記憶装置のオーナー制御部を、オーナーシップデータベース２０５ａから取得したオーナーシップ情報に基づいて特定する。
【００２３】
転送処理部２１０ａは、当該アクセス制御部２００ａがオーナー制御部でない場合に、ホストコンピュータ１５からの指示をオーナー制御部、例えば、アクセス制御部２００ｂに転送する。これにより、転送処理部２１０ａは、オーナー制御部により外部記憶装置のデータを読み書きさせ、オーナー制御部から読み書きの結果を取得してホストコンピュータ１５に返送する。
【００２４】
一方、転送処理部２１０ａは、当該アクセス制御部２００がオーナー制御部の場合に、読み書き部２１５ａに指示することにより外部記憶装置のデータを読み書きする。この場合、転送処理部２１０ａは、読み書きの結果を読み書き部２１５ａから取得してホストコンピュータ１５に返送する。
【００２５】
読み書き部２１５ａは、転送処理部２１０ａ又は転送処理部２１０ｂからの指示に応じて外部記憶装置４０ａ〜ｅを読み書きする。具体的には、読み書き部２１５ａは、読み書きの対象となる外部記憶装置に接続されたアクセス用バスに、データを読み書きするための信号を伝送する。また、読み書き部２１５ａは、データの読み書きの結果が正常か否かを、例えばパリティチェック等により検出し、検出結果を障害対処部２３０ａに送る。
【００２６】
ステータス信号送信部２２０ａは、アクセス制御部２００ａの状態を示すステータス信号を、他のアクセス制御部、例えば、アクセス制御部２００ｂに周期的に送信する。例えば、ステータス信号送信部２２０ａは、アクセス制御部２００ａの障害を示す情報を障害対処部２３０ａから取得し、ステータス信号として障害対処部２３０ｂに送る。より具体的には、ステータス信号送信部２２０ａは、ＲＳ−２３２Ｃ等のデータ通信用インターフェイスを用いてステータス信号を送信してもよい。また、ステータス信号送信部２２０ａは、２つの装置のそれぞれが当該装置の通信状態等を互いに定期的に送信する技術であるＨｅａｒｔｂｅａｒｔ技術を用いて、ステータス信号を送信してもよい。
【００２７】
障害対処部２３０ａは、オーナー制御部による外部記憶装置のデータの読み書きに障害が発生したか否かを検出する。例えば、障害対処部２３０ａは、ステータス信号送信部２２０ｂから取得したステータス信号に応じて、外部記憶装置４０ｃのオーナー制御部であるアクセス制御部２００ｂの障害を検出してもよい。オーナー制御部による外部記憶装置の読み書きに障害を検出した場合に、障害対処部２３０ａは、オーナー制御部に代えて他のアクセス制御部に当該外部記憶装置のデータを読み書きさせるべく、当該外部記憶装置に対応する切替部において、他のアクセス制御部であるアクセス制御部２００ａをオーナー制御部として設定させる。
【００２８】
具体的には、障害対処部２３０ａは、オーナー制御部を変更させる変更指示を、出力制御部２４０ａ及び制御信号線を用いて切替部３０ｃに送ることにより、オーナー制御部を変更する。これにより、障害対処部２３０ａは、アクセス制御部２００ａが外部記憶装置４０ｃのオーナー制御部であるか否かに関わらず、即ち、アクセス制御部２００ａからアクセス用バスが外部記憶装置４０ｃに接続されているか否かに関わらず、外部記憶装置４０ｃのオーナー制御部を変更することができる。
【００２９】
更に、障害対処部２３０ａは、障害の発生したオーナー制御部、例えば、アクセス制御部２００ｂにおける出力制御部２４０ｂを無効とする。これにより、出力制御部２４０ｂがアクセス制御部２００ｂの障害により異常動作する場合であっても、切替部３０ｃを適切に制御することができる。
【００３０】
また、オーナー制御部がアクセス制御部２００ａである場合、障害対処部２３０ａは、読み書き部２１５ａから受け取った検出結果に基づいて、オーナー制御部による外部記憶装置のデータの読み書きに障害が発生したか否かを検出してもよい。例えば、障害対処部２３０ａは、読み書き部２１５ａから受け取った検出結果に基づいて、アクセス制御部２００ａによる外部記憶装置４０ａのデータの読み書きに障害が発生したか否かを検出してもよい。この場合、好ましくは、アクセス制御部２００ａは、アクセス制御部２００ａに障害が発生した旨をアクセス制御部２００ｂに通知するべく、その旨をステータス信号送信部２２０ａに通知する。
【００３１】
この場合、障害対処部２３０ａは、外部記憶装置４０ａ及び外部記憶装置４０ｂの一方に対する読み書きに障害が発生した場合であっても、アクセス制御部２００ａ全体に障害が発生したとみなして、外部記憶装置４０ａ及び外部記憶装置４０ｂのそれぞれのオーナー制御部を、アクセス制御部２００ｂに変更してもよい。
【００３２】
これに代えて、障害対処部２３０ａは、外部記憶装置４０ａ及び外部記憶装置４０ｂのうち、読み書きに障害が発生した外部記憶装置４０ａを除いた外部記憶装置４０ｂのオーナー制御部を変更せずに保持しつつ、読み書きに障害が発生した外部記憶装置４０ａについて、当該外部記憶装置４０ａのオーナー制御部を変更してもよい。これにより、障害対処部２３０ａは、外部記憶装置のデータを読み書きするパフォーマンスの低下を軽減することができる。
【００３３】
また、障害対処部２３０ａは、アクセス制御部２００ａによる外部記憶装置４０ｃに対する読み書きに障害を検出した場合に、更に、外部記憶装置４０ｃとの組合せでディスクアレイを構成する外部記憶装置４０ｄ及び外部記憶装置４０ｅのそれぞれに対応する切替部３０ｄ及び切替部３０ｅのそれぞれにおいて、外部記憶装置４０ｄ及び外部記憶装置４０ｅのそれぞれのデータを読み書きするオーナー制御部を、アクセス制御部２００ａに代えてアクセス制御部２００ｂに変更させる。
【００３４】
この結果、同一のアクセス制御部が、ディスクアレイを構成する複数の外部記憶装置のそれぞれを読み書きすることができる。これにより、単一のアクセス制御部により、ディスクアレイ中のデータの一貫性を保持することができる。
【００３５】
出力制御部２４０ａは、変更信号を障害対処部２３０ａから受け取ると、オーナー制御部を変更する対象の外部記憶装置を特定する。そして、出力制御部２４０ａは、特定した外部記憶装置に応じて定まる切替部３０ａ〜ｅの何れかに対して、制御信号線を介して変更信号を送る。また、出力制御部２４０ａは、障害対処部２３０ｂからの指示に応じて、変更信号の送出を停止する。
【００３６】
アクセス制御部２００ｂは、オーナーシップデータベース２０５ｂと、転送処理部２１０ｂと、読み書き部２１５ｂと、ステータス信号送信部２２０ｂと、障害対処部２３０ｂと、出力制御部２４０ｂとを有する。オーナーシップデータベース２０５ｂ、転送処理部２１０ｂ、読み書き部２１５ｂ、ステータス信号送信部２２０ｂ、障害対処部２３０ｂ、及び出力制御部２４０ｂのそれぞれは、オーナーシップデータベース２０５ａ、転送処理部２１０ａ、読み書き部２１５ａ、ステータス信号送信部２２０ａ、障害対処部２３０ａ、及び出力制御部２４０ａのそれぞれと略同一であるので説明を省略する。
【００３７】
なお、本図で示した構成は一例であり、本図の構成に多様な変形を加えてもよい。例えば、アクセス制御部２００ａは、ステータス信号送信部２２０ａを有しなくともよく、アクセス制御部２００ｂは、障害対処部２３０ｂ及び出力制御部２４０ｂを有しなくともよい。この場合、アクセス制御部２００ａが、障害を検出してオーナー制御部を変更する処理を行う一方、アクセス制御部２００ｂは、障害を検出する処理を行わなくともよい。このような形態においては、アクセス制御部２００ａの障害に対処できないものの、記憶システム２０の構成、例えば、切替部ａ〜ｅ等の構成を簡略化することができる。
【００３８】
以上、本図で説明したように、記憶システム２０は、アクセス制御部２００ａを用いて外部記憶装置４０ａ〜ｅのうち少なくとも１つにおけるデータを読み書きし、アクセス制御部２００ｂを用いて外部記憶装置４０ａ〜ｅのうち当該少なくとも１つを除いた装置におけるデータを読み書きする。これにより、記憶システム２０は、アクセス制御部２００ａ及びアクセス制御部２００ｂから外部記憶装置４０ａ〜ｅまでのデータ転送帯域を有効に利用して高速にデータを読み書きすることができる。例えば、一のアクセス制御部が一の外部記憶装置のデータを読み書きする場合と比較して、理想的には２倍のパフォーマンスで読み書きすることができる。
【００３９】
また、アクセス制御部２００ａによる外部記憶装置４０ａ及び外部記憶装置４０ｂのデータに対する読み書きに障害が検出された場合に、記憶システム２０は、アクセス制御部２００ａに代えてアクセス制御部２００ｂを用いて、外部記憶装置４０ａ及び外部記憶装置４０ｂのデータを読み書きする。このように、外部記憶装置４０ａ〜ｅのそれぞれが外部との通信インターフェイスを１つだけ有している場合であっても、アクセス制御部を切り替えることができる。これにより、障害発生時においても外部記憶装置４０ａ及び外部記憶装置４０ｂのデータを読み書きできるので、記憶システム２０の可用性を向上させることができる。
【００４０】
図２は、アクセス制御部２００ａのフローチャートを示す。本図において、アクセス制御部２００ａが外部記憶装置４０ａのオーナー制御部であり、かつアクセス制御部２００ｂが外部記憶装置４０ｃのオーナー制御部である場合の動作を説明する。アクセス制御部２００ａが、外部からの指示等により起動すると（Ｓ２００）、アクセス制御部２００ａにおける障害対処部２３０ａは、アクセス制御部２００ａを構成する装置が正常か否かを検出することにより、オーナー制御部を構成する装置が正常か否かを検出する（Ｓ２１０）。
【００４１】
例えば、障害対処部２３０ａは、アクセス制御部２００ａにおけるメモリが正常に動作するか否かを検出することにより、アクセス制御部２００ａを構成する装置が正常か否かを検出してもよい。また、障害対処部２３０ａは、アクセス制御部２００ａを構成する回路の動作を検証するテスト回路を用いて、アクセス制御部２００ａを構成する装置が正常か否かを検出してもよい。
【００４２】
アクセス制御部２００ａを構成する装置が正常でない場合に（Ｓ２１０：ＮＯ）、障害対処部２３０ａは、外部記憶装置４０ａのオーナー制御部を変更するべく、切替部３０ａにおいてアクセス制御部２００ｂをオーナー制御部として設定させる（Ｓ２２０）。また、ステータス信号送信部２２０ａは、アクセス制御部２００ａに障害が発生した旨を示すエラー信号を障害対処部２３０ｂに通知する（Ｓ２３０）。
【００４３】
アクセス制御部２００ａを構成する装置が正常である場合に（Ｓ２１０：ＹＥＳ）、転送処理部２１０ａ及び読み書き部２１５ａは、ホストコンピュータ１５からの指示に応じて読み書きを行う（Ｓ２４０）。読み書きが正常な場合に、ステータス信号送信部２２０ａは、アクセス制御部２００ａが正常である旨を示すステータス信号を障害対処部２３０ｂに送信する（Ｓ２５０）。一方、読み書きに障害が発生した場合に、ステータス信号送信部２２０ａは、アクセス制御部２００ａに障害が発生した旨を示すステータス信号を障害対処部２３０ｂに送信する。
【００４４】
アクセス制御部２００ａが正常である旨を示すステータス信号とは、具体的には、アクセス制御部２００ａがファイバチャネルネットワーク内で果たす役割を示す情報であってもよい。例えば、ステータス信号送信部２２０ａは、アクセス制御部２００ａがファイバチャネルネットワークの初期化を行った旨を示す信号、例えば、アクセス制御部２００ａがマスターである旨を示す信号を、ステータス信号として送信してもよい。
【００４５】
また、ステータス信号送信部２２０ａは、アクセス制御部２００ａがファイバチャネルネットワークの初期化を行わず他のアクセス制御部が初期化を行った旨を示す信号、例えば、アクセス制御部２００ａがスレーブである旨を示す信号を、ステータス信号として送信してもよい。更に他の例として、ステータス信号送信部２２０ａは、アクセス制御部２００ａが正常である旨を示すステータス信号として、外部記憶装置へのアクセス待ち状態であるアイドル状態を示す信号を送信してもよい。
【００４６】
また、アクセス制御部２００ａに障害が発生した旨を示すステータス信号とは、アクセス制御部２００ａ全体の障害が発生した旨を示す信号であってもよいし、外部記憶装置４０ａ及び外部記憶装置４０ｂの一方のデータに対する読み書きに障害が発生した旨を示す信号であってもよい。
【００４７】
障害対処部２３０ａは、ステータス信号送信部２２０ｂからステータス信号を受信できない場合に（Ｓ２６０：ＮＯ）、アクセス制御部２００ｂから以前にステータス信号を受信してから予め定められた期間が経過したか否かを判断する（Ｓ２７０）。予め定められた期間が経過していない場合に（Ｓ２７０：ＮＯ）、障害対処部２３０ａは、ステータス信号の受信を再度試みるべくＳ２６０に処理を戻す。
【００４８】
一方、予め定められた期間が経過した場合（Ｓ２７０：ＹＥＳ）、即ち、アクセス制御部２００ｂからステータス信号を受信してから予め定められた期間内に次のステータス信号を受信しなかった場合に、障害対処部２３０ａは、アクセス制御部２００ｂによる外部記憶装置４０ｃのデータの読み書きに障害が発生した旨を検出し、Ｓ２９０に処理を移す。
【００４９】
障害対処部２３０ａは、ステータス信号送信部２２０ｂからステータス信号を受信した場合に（Ｓ２６０：ＹＥＳ）、当該ステータス信号がアクセス制御部２００ｂの障害を示すか否かを判断する（Ｓ２８０）。当該ステータス信号がアクセス制御部２００ｂの障害を示さない場合に（Ｓ２８０：ＮＯ）、障害対処部２３０ａは、Ｓ２４０に処理を戻す。これにより、アクセス制御部２００ａは、読み書き処理（Ｓ２４０）、及びステータス信号の送信処理（Ｓ２５０）、及びステータス信号の受信処理（Ｓ２６０）を周期的に繰り返す。
【００５０】
ステータス信号がアクセス制御部２００ｂの障害を示す場合に（Ｓ２８０：ＹＥＳ）、障害対処部２３０ａは、アクセス制御部２００ｂによる外部記憶装置４０ｃのデータの読み書きに障害が発生した旨を検出し、外部記憶装置４０ｃのオーナー制御部をアクセス制御部２００ａに変更する（Ｓ２９０）。
【００５１】
更に、障害対処部２３０ａは、障害の発生したオーナー制御部、即ちアクセス制御部２００ｂにおける出力制御部２４０ｂを無効にする（Ｓ２９５）。例えば、障害対処部２３０ａは、出力制御部２４０ｂから切替部３０ａに出力される信号を、ハイ・インピーダンス状態（例えば、真偽値を示す信号の偽信号）に設定することにより、出力制御部２４０ｂから切替部３０ａに出力される信号を無効としてもよい。このように、障害の発生したオーナー制御部とは異なるアクセス制御部２００ａにおいて、障害対処部２３０ａは、制御信号線を用いて、障害の発生したアクセス制御部２００ｂにおける出力制御部２４０ｂを無効とする。
【００５２】
図３は、図２のＳ２４０におけるフローチャートを示す。転送処理部２１０ａは、外部記憶装置４０ａ〜ｅの何れかのデータを読み書きする指示を、ホストコンピュータ１５から受け取る（Ｓ３００）。そして、アクセス制御部２００ａが、当該指示により読み書きの対象となる外部記憶装置のオーナー制御部である場合に（Ｓ３１０：ＹＥＳ）、転送処理部２１０ａは、読み書き部２１５ａに指示することにより外部記憶装置のデータを読み書きする（Ｓ３２０）。
【００５３】
一方、アクセス制御部２００ａが、当該指示により読み書きの対象となる外部記憶装置のオーナー制御部でない場合に（Ｓ３１０：ＮＯ）、転送処理部２１０ａは、ホストコンピュータ１５からの指示をオーナー制御部、例えば、アクセス制御部２００ｂの読み書き部２１５ｂに転送する（Ｓ３３０）。これにより、転送処理部２１０ａは、オーナー制御部により外部記憶装置のデータを読み書きさせ、オーナー制御部から読み書きの結果を受信する（Ｓ３４０）。
【００５４】
オーナー制御部により外部記憶装置のデータを読み書きさせる処理の一例として、記憶システム２０は、以下の処理を行ってもよい。処理の前提として、アクセス制御部２００ａ及びアクセス制御部２００ｂのそれぞれは、外部記憶装置から読み出したデータを一時的に格納するキャッシュメモリを有している。オーナー制御部であるアクセス制御部２００ｂの読み書き部２１５ｂは、転送処理部２１０ａから読み出し指示を受けると、外部記憶装置４０ｃのデータを読み出し、キャッシュメモリに格納する。
【００５５】
そして、転送処理部２１０ａは、アクセス制御部２００ｂのキャッシュメモリ中のデータを、アクセス制御部２００ａのキャッシュメモリにコピーするキャッシュコピー処理を行う。一例として、転送処理部２１０ａは、ファイバチャネル規格におけるキャッシュコピー処理を行ってもよい。続いて、転送処理部２１０ａは、読み書きの結果を、例えば、アクセス制御部２００ａに設けられたキャッシュメモリから取得してホストコンピュータ１５に返送する（Ｓ３５０）。
【００５６】
このように、記憶システム２０は、ホストコンピュータ１５からアクセス制御部２００ａ及びアクセス制御部２００ｂの何れに対して読み書きの指示を受けた場合であっても、外部記憶装置４０ａ〜ｅのそれぞれにおけるデータを適切に読み書きすることができる。これにより、利用者は、ホストコンピュータ１５を構成する既存のハードウェア及びソフトウェア等を変更することなく、記憶システム２０を用いることができる。
【００５７】
図４は、ホストコンピュータ１５のハードウェア構成の一例を示す。ホストコンピュータ１５は、ホストコントローラ１０８２により相互に接続されるＣＰＵ１０００、ＲＡＭ１０２０、グラフィックコントローラ１０７５、及び表示装置１０８０を有するＣＰＵ周辺部と、入出力コントローラ１０８４によりホストコントローラ１０８２に接続される通信インターフェイス１０３０、ハードディスクドライブ１０４０、及びＣＤ−ＲＯＭドライブ１０６０を有する入出力部と、入出力コントローラ１０８４に接続されるＲＯＭ１０１０、フレキシブルディスクドライブ１０５０、及び入出力チップ１０７０を有するレガシー入出力部とを備える。
【００５８】
ホストコントローラ１０８２は、ＲＡＭ１０２０と、高い転送レートでＲＡＭ１０２０をアクセスするＣＰＵ１０００及びグラフィックコントローラ１０７５とを接続する。ＣＰＵ１０００は、ＲＯＭ１０１０及びＲＡＭ１０２０に格納されたプログラムに基づいて動作し、各部の制御を行う。グラフィックコントローラ１０７５は、ＣＰＵ１０００等がＲＡＭ１０２０内に設けたフレームバッファ上に生成する画像データを取得し、表示装置１０８０上に表示させる。これに代えて、グラフィックコントローラ１０７５は、ＣＰＵ１０００等が生成する画像データを格納するフレームバッファを、内部に含んでもよい。
【００５９】
入出力コントローラ１０８４は、ホストコントローラ１０８２と、比較的高速な入出力装置である通信インターフェイス１０３０、ハードディスクドライブ１０４０、及びＣＤ−ＲＯＭドライブ１０６０を接続する。通信インターフェイス１０３０は、ファイバチャネル等のネットワークを介して記憶システム２０と通信する。ハードディスクドライブ１０４０は、ホストコンピュータ１５が使用するプログラム及びデータを格納する。ＣＤ−ＲＯＭドライブ１０６０は、ＣＤ−ＲＯＭ１０９５からプログラム又はデータを読み取り、ＲＡＭ１０２０を介して入出力チップ１０７０に提供する。
【００６０】
また、入出力コントローラ１０８４には、ＲＯＭ１０１０と、フレキシブルディスクドライブ１０５０や入出力チップ１０７０等の比較的低速な入出力装置とが接続される。ＲＯＭ１０１０は、ホストコンピュータ１５の起動時にＣＰＵ１０００が実行するブートプログラムや、ホストコンピュータ１５のハードウェアに依存するプログラム等を格納する。フレキシブルディスクドライブ１０５０は、フレキシブルディスク１０９０からプログラム又はデータを読み取り、ＲＡＭ１０２０を介して入出力チップ１０７０に提供する。入出力チップ１０７０は、フレキシブルディスク１０９０や、例えばパラレルポート、シリアルポート、キーボードポート、マウスポート等を介して各種の入出力装置を接続する。
【００６１】
ホストコンピュータ１５に提供されるプログラムは、フレキシブルディスク１０９０、ＣＤ−ＲＯＭ１０９５、又はＩＣカード等の記録媒体に格納されて利用者によって提供される。プログラムは、入出力チップ１０７０及び／又は入出力コントローラ１０８４を介して、記録媒体から読み出される。通信インターフェイス１０３０は、読み出されたプログラムを記憶システム２０に提供し、記憶システム２０においてインストールさせる。これに代えて、記憶システム２０は、ＣＤ−ＲＯＭドライブ又はフレキシブルディスクドライブ等を備え、当該ＣＤ−ＲＯＭドライブ又はフレキシブルディスクドライブから読み出したプログラムをインストールして実行してもよい。
【００６２】
記憶システム２０にインストールされて実行されるプログラムは、転送処理モジュールと、読み書きモジュールと、ステータス信号送信モジュールと、障害対処モジュールと、出力制御モジュールとを含む。各モジュールが記憶システム２０に働きかけて行わせる動作は、図１から図３において説明した記憶システム２０における、対応する部材の動作と同一であるから、説明を省略する。
【００６３】
以上に示したプログラム又はモジュールは、外部の記憶媒体に格納されてもよい。記憶媒体としては、フレキシブルディスク１０９０、ＣＤ−ＲＯＭ１０９５の他に、ＤＶＤやＰＤ等の光学記録媒体、ＭＤ等の光磁気記録媒体、テープ媒体、ＩＣカード等の半導体メモリ等を用いることができる。また、専用通信ネットワークやインターネットに接続されたサーバシステムに設けたハードディスク又はＲＡＭ等の記憶装置を記録媒体として使用し、ネットワークを介してプログラムをホストコンピュータ１５に提供してもよい。
【００６４】
以上、本実施形態で説明したように、記憶システム２０は、アクセス制御部２００ａを用いて外部記憶装置４０ａ〜ｅのうち少なくとも１つにおけるデータを読み書きし、アクセス制御部２００ｂを用いて外部記憶装置４０ａ〜ｅのうち当該少なくとも１つを除いた装置におけるデータを読み書きする。これにより、記憶システム２０は、アクセス制御部２００ａ及びアクセス制御部２００ｂから外部記憶装置４０ａ〜ｅまでのデータ転送帯域を有効に利用して高速にデータを読み書きすることができる。
【００６５】
また、アクセス制御部２００ａによる外部記憶装置４０ａ及び外部記憶装置４０ｂのデータに対する読み書きに障害が検出された場合に、記憶システム２０は、アクセス制御部２００ａに代えてアクセス制御部２００ｂを用いて、外部記憶装置４０ａ及び外部記憶装置４０ｂのデータを読み書きする。このように、障害発生時においても外部記憶装置４０ａ及び外部記憶装置４０ｂのデータを読み書きできる。
【００６６】
以上、本発明を実施形態を用いて説明したが、本発明の技術的範囲は上記実施形態に記載の範囲には限定されない。上記実施形態に、多様な変更または改良を加えることができる。そのような変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【００６７】
【発明の効果】
上記説明から明らかなように、本発明によれば記憶システムの信頼性を高めることができる。
【図面の簡単な説明】
【図１】図１は、情報処理システム１０のブロック図である。
【図２】図２は、アクセス制御部２００ａのフローチャートを示す。
【図３】図３は、図２のＳ２４０におけるフローチャートを示す。
【図４】図４は、ホストコンピュータ１５のハードウェア構成の一例を示す。
【符号の説明】
１０  情報処理システム
１５  ホストコンピュータ
２０  記憶システム
３０  切替部
４０  外部記憶装置
４５  ディスクアレイ
２００  アクセス制御部
２０５  オーナーシップデータベース
２１０  転送処理部
２１５  読み書き部
２２０  ステータス信号送信部
２３０  障害対処部
２４０  出力制御部
【図１】
2005018161.tif 000003
【図２】
2005018161.tif 000004
【図３】
2005018161.tif 000005
【図４】
2005018161.tif 000006