(57)【要約】【課題】  タイムアウト系の障害が発生したディスクドライブの障害率を低減するディスクアレイシステムの提供。【解決手段】  複数のディスクドライブと、上位ホスト装置からのデータ入出力要求に応答して前記ディスクドライブに対するデータ入出力処理を行う制御装置と、を備えたディスクアレイ装置である。前記制御装置は、前記ディスクドライブの障害を特定するための制御情報と、前記ディスクドライブの障害情報を記憶するメモリと、前記障害情報からタイムアウト系の障害が発生しているディスクドライブを特定し、当該ディスクドライブに対して制御コマンドのリトライ命令を発行する回路と、前記ディスクドライブの障害が回復しない場合に、ディスクドライブをハードリセットする制御信号を前記障害ディスクドライブに出力する回路と、を備える。【選択図】    図１
2006338626.tif 000002
【特許請求の範囲】
【請求項１】
複数のディスクドライブと、上位ホスト装置からのデータ入出力要求に応答して前記ディスクドライブに対するデータ入出力処理を行う制御装置と、を備えたディスクアレイ装置において、
前記制御装置は、前記ディスクドライブの障害を特定するための制御情報と、前記ディスクドライブの障害情報を記憶するメモリと、前記障害情報からタイムアウト系の障害が発生しているディスクドライブを特定し、当該ディスクドライブに対して制御コマンドのリトライ命令を発行する回路と、前記ディスクドライブの障害が回復しない場合に、ディスクドライブをハードリセットする制御信号を前記障害ディスクドライブに出力する回路と、を備えてなるディスクアレイ装置。
【請求項２】
前記制御装置は、前記障害ディスクドライブが前記ハードリセットをサポートしているか否かの情報に基づいて、前記ハードリセットをサポートしている障害ディスクドライブに前記ハードリセット制御信号を出力する、請求項１記載のディスクアレイ装置。
【請求項３】
前記制御装置は、前記リトライ命令によっても前記障害ディスクドライブが回復しない場合に、当該障害ディスクドライブを閉塞し、当該障害ディスクドライブの閉塞処理中に前記障害ディスクドライブをハードリセットする、請求項１記載のディスクアレイ装置。
【請求項４】
前記制御装置は、前記閉塞された被疑ディスクとＲＡＩＤグループを構成する他のディスクドライブとの関連情報と、スペアディスクドライブに関係する情報と、が記憶されたメモリを備え、前記閉塞された被疑ディスクドライブの記憶情報を前記他のディスクドライブから回復し、これを前記スペアディスクドライブに記憶する、請求項３記載のディスクアレイ装置。
【請求項５】
前記制御装置は、前記ハードリセットによって閉塞された被疑ディスクドライブが回復した場合、これをスペアディスクとする制御情報を前記メモリに登録する請求項４記載のディスクアレイ装置。
【請求項６】
前記制御装置は、前記障害ディスクドライブと前記他のディスクドライブのＲＡＩＤグループに関する情報から、当該障害ディスクドライブのＲＡＩＤレベルを判断し、ＲＡＩＤレベルが複数の冗長性の無いレベルである場合には、当該障害ディスクドライブの閉塞をユーザーに告知する告知情報を告知表示手段に出力する請求項３記載のディスクアレイ装置。
【請求項７】
前記ハードリセットは、前記ディスクドライブのハードウエア部品をハード的にリセットするものである請求項１記載のディスクアレイ装置。
【請求項８】
前記制御装置は、前記障害ディスクドライブのハードリセットの期間中、当該障害ディスクドライブに対するリードアクセスがあった記憶データを、前記他のディスクドライブの記憶情報から回復して、これをホスト装置に提供し、ライトアクセスの場合には、ライトデータを差分情報として設定する、請求項５記載のディスクアレイ装置。
【請求項９】
前記制御装置は、前記障害ディスクドライブのハードリセットの期間中、当該障害ディスクドライブに対するリードアクセスがあった記憶データを、前記閉塞された障害ディスクドライブとＲＡＩＤグループを構成する他のディスクドライブとの関連情報に基づいて、前記閉塞された障害ディスクドライブの記憶情報を前記他のディスクドライブから回復し、これをホスト装置に提供する、請求項１記載のディスクアレイ装置。
【請求項１０】
前記制御装置は、前記被疑ディスクドライブに対するライトアクセスがあった記憶データを差分情報として設定する、請求項１記載のディスクアレイ装置。
【請求項１１】
前記制御装置は、コマンドを発行した先のディスクドライブのタイムアウト時間を計測するタイマーを備え、この経過時間が特定時間を超えた場合に、前記ディスクドライブにタイムアウト系の障害が発生したと判断し、この発生を規定する制御情報を制御メモリに記憶する請求項１記載のディスクアレイ装置。
【請求項１２】
上位ホスト装置からのデータ入出力要求に応答してディスクドライブに対するデータ入出力処理を行うデュアルコントローラを備えたディスクアレイ装置であって、
前記デュアルコントローラを構成する各々のコントローラは、
前記データ入出力処理を行うメインコントローラと、
フロントインターフェース接続用ファイバチャネルを介して前記上位ホスト装置にインターフェース接続するとともに、バックインターフェース接続用ファイバチャネルを介して前記ディスクドライブにインターフェース接続するファイバチャネルプロトコルコントローラと、
前記ディスクドライブにループ接続する二つのＦＣ−ＡＬと、
前記二つのＦＣ−ＡＬの中から選択された何れか一つのＦＣ−ＡＬを前記バックインターフェース接続用ファイバチャネルに接続切り替えする接続切り替え回路と、
前記複数のディスクドライブのそれぞれを前記ＦＣ−ＡＬに接続させる複数のスイッチ回路と、
当該スイッチ回路を制御するエンクロージャーコントローラと、を備え、
前記メインコントローラは、前記ディスクドライブの障害を特定するための制御情報と、前記障害ディスクドライブの障害情報を記憶するメモリと、前記障害情報からタイムアウト系障害が発生している障害ディスクドライブを特定し、前記エンクロージャーコントローラから制御命令のリトライを前記障害ディスクドライブに発行する回路と、前記障害ディスクドライブの障害が回復しない場合に、前記エンクロージャーコントローラから当該障害ディスクドライブをハードリセットする制御信号を出力する回路と、を備えてなるディスクアレイ装置。
【請求項１３】
前記スイッチ回路に、通信インターフェースが異なる複数のディスクドライブが接続されている請求項１２記載のディスクアレイ装置。
【請求項１４】
前記制御装置に、通信インターフェースが異なる複数のディスクドライブが接続されている請求項１記載のディスクアレイ装置。
【請求項１５】
前記制御装置は、ファイバチャネルを通信プロトコルとするディスクドライブにハードリセット信号を出力し、Ｓ−ＡＴＡを通信プロトコルとするディスクドライブをハードリセットすることなく閉塞処理する請求項１３記載のディスクアレイ装置。
【請求項１６】
複数のディスクドライブと、上位ホスト装置からのデータ入出力要求に応答して前記ディスクドライブに対するデータ入出力処理を行う制御装置と、を備えたディスクアレイ装置において、
前記制御装置は、前記ディスクドライブの障害を特定するための制御情報と、前記障害ディスクドライブの障害情報を記憶するメモリと、前記障害情報からタイムアウト系障害が発生している障害ディスクドライブを特定し、当該ディスクドライブに対してリトライ命令を発行する回路と、前記障害ディスクドライブの障害が回復しない場合に、当該障害ディスクドライブを閉塞する制御信号を出力する回路と、ハードリセットするためのリセット信号を閉塞した障害ディスクドライブに出力する回路と、を備え、前記障害ディスクドライブのハードリセットの期間中、当該障害ディスクドライブに対するリードアクセスがあった記憶データを他のディスクドライブの記憶情報から回復して、これをホスト装置に提供するディスクアレイ装置。
【請求項１７】
前記制御装置は、前記障害ディスクドライブにライトアクセスがあったライトデータを差分情報として保持するようにした請求項１６記載のディスクアレイ装置。
【請求項１８】
複数のディスクドライブと、上位ホスト装置からのデータ入出力要求に応答して前記ディスクドライブに対するデータ入出力処理を行う制御装置と、を備えた、ディスクアレイ装置の制御方法において、
前記制御装置は、前記ディスクドライブを特定する工程と、前記障害ディスクドライブの障害情報を記憶する工程と、前記障害情報からタイムアウト系障害が発生していることを判定する工程と、タイムアウト系障害が発生したディスクドライブに対して制御コマンドのリトライを命令する工程と、前記障害ディスクドライブの障害が回復しない場合に、当該障害ディスクドライブをハードリセットする工程と、を備えてなるディスクアレイ装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はディスクアレイ装置及びその制御方法に係り、特に、ディスクドライブの障害を復旧する機能の改良に関するものである。
【背景技術】
【０００２】
近年、ＩＴ技術の進展等により、記憶制御装置としてのディスクアレイ装置の高性能化、大容量化、低価格化が図られている。ディスクアレイ装置は、アレイ状に配置された多数のディスクドライブを備えている。アレイ状に複数配置されたディスクドライブの論理的構成は、ＲＡＩＤ（Redundant Array of Independent Inexpensive Disks）に基づいて構築されている。ホスト装置は、ディスクアレイ装置に対してライトアクセスコマンド又はリードアクセスコマンドを発行することにより、ディスクドライブに対する、データの読み書きを行うことができる。
【０００３】
この種のディスクアレイ装置として、例えば、特開平２００４−３４８８７６号公報に記載のものが存在する。このディスクアレイ装置は、同公報の図５に示されるように、コントローラ１００を備え、このコントローラはデータの入出力要求を受け付ける通信制御部１１０と、ディスクドライブ５１α、５１βを制御するディスクコントローラ部１２０と、前記通信制御部と前記ディスクコントローラ部との間で授受するデータを一時的に記憶するキャッシュメモリ６２とを有し、ディスクコントローラ部１２０及びコンバータ１７０を通じて異なるインターフェースを持つディスクドライブ５１βとデータの送受信を行う。
【０００４】
また、特開２００２−２３９６７号公報には、ドライブ障害復旧方法として、ドライブ装置に対して記憶媒体を物理的に動かすステップと、ドライブ装置に対してリブート処理を行うステップと、ドライブ装置に対してハードリセット処理を行うステップと、ドライブ装置の電源を切断／再投入するステップとを具えてなり、前記ステップ順に処理を続け、前記いずれかのステップにおいてドライブ障害が復旧した場合に該処理を終了することが記載されている。
【特許文献１】特開平２００４−３４８８７６号公報
【特許文献２】特開２００２−２３９６７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
特開平２００４−３４８８７６号公報に記載されたディスクアレイ装置は、複数種類のインターフェースのディスクドライブを備えているが、ディスクドライブ装置の信頼性はディスクドライブの種類によって異なる。例えば、通信制御が複雑である、ファイバーチャネルをインターフェースとするＦＣドライブでは、一時的なタイムアウト系の問題の発生が多い。このタイムアウトの問題はディスクドライブの一時的なハード／ソフトに対する障害であるにも拘わらず、リトライ処理によって回復できず、ディスクドライブにタイムアウト系の障害が起こった場合には、障害ディスクドライブを閉塞して、他のディスクドライブと交換されていた。これでは本来回復可能な障害であるにも拘わらず、ディスクドライブ資源の浪費につながるばかりか、ディスクドライブを交換する作業負担も発生する。
【０００６】
さらに、前記特開２００２−２３９６７号公報には、ディスクドライブに障害の復旧方法として、いくつかの手法が記載されているが、ディスクドライブのタイムアウト系の障害と、当該障害からの復旧方法については言及されていない。
【０００７】
そこで、この発明は、タイムアウト系の問題が発生したディスクドライブの新規な復旧技術を提供することにより、ディスクドライブの障害率の低減、及びデータの信頼性確保が可能なディスクアレイ装置及びディスクアレイ装置の制御方法を提供する事を目的とする。本発明の他の目的は、ディスクドライブ資源の浪費、及びディスクドライブの交換作業の抑制を達成することにある。本発明のさらに他の目的は、障害が発生したディスクドライブのハードリセットの際に、障害が発生したデータの回復を効果的に達成可能なディスクアレイシステム及び方法を提供することにある。
【課題を解決するための手段】
【０００８】
前記目的を達成するために、本発明は、ディスクアレイ装置において、タイムアウト系の問題が発生したディスクドライブをハードリセットによって回復することにより、ディスクドライブの障害率の低減が図れるようにしたものである。
【０００９】
すなわち、本発明の一つは、複数のディスクドライブと、上位ホスト装置からのデータ入出力要求に応答して前記ディスクドライブに対するデータ入出力処理を行う制御装置と、を備えたディスクアレイ装置において、前記制御装置は、前記ディスクドライブの障害を特定するための制御情報と、前記ディスクドライブの障害情報を記憶するメモリと、前記障害情報からタイムアウト系の障害が発生しているディスクドライブを特定し、当該ディスクドライブに対して制御コマンドのリトライ命令を発行する回路と、前記ディスクドライブの障害が回復しない場合に、ディスクドライブをハードリセットする制御信号を前記障害ディスクドライブに出力する回路と、を備えてなることを特徴とするものである。
【００１０】
本発明において、障害とはディスクドライブに障害が発生している状態、及び障害が疑われている「被疑」状態の両方を含んでいる。
【００１１】
本発明の他の一つは、上位ホスト装置からのデータ入出力要求に応答してディスクドライブに対するデータ入出力処理を行うデュアルコントローラを備えたディスクアレイ装置であって、前記デュアルコントローラを構成する各々のコントローラは、前記データ入出力処理を行うメインコントローラと、フロントインターフェース接続用ファイバチャネルを介して前記上位ホスト装置にインターフェース接続するとともに、バックインターフェース接続用ファイバチャネルを介して前記ディスクドライブにインターフェース接続するファイバチャネルプロトコルコントローラと、前記ディスクドライブにループ接続する二つのＦＣ−ＡＬと、前記二つのＦＣ−ＡＬの中から選択された何れか一つのＦＣ−ＡＬを前記バックインターフェース接続用ファイバチャネルに接続切り替えする接続切り替え回路と、前記複数のディスクドライブのそれぞれを前記ＦＣ−ＡＬに接続させる複数のスイッチ回路と、当該スイッチ回路を制御するエンクロージャーコントローラと、を備え、前記メインコントローラは、前記ディスクドライブの障害を特定するための制御情報と、前記障害ディスクドライブの障害情報を記憶するメモリと、前記障害情報からタイムアウト系障害が発生している障害ディスクドライブを特定し、前記エンクロジャーコントトローラから制御命令のリトライを前記障害ディスクドライブに発行する回路と、前記障害ディスクドライブの障害が回復しない場合に、前記エンクロージャーコントローラから当該障害ディスクドライブをハードリセットする制御信号を出力する回路と、を備えてなることを特徴とするものである。
【００１２】
本発明の更に他の一つは、複数のディスクドライブと、上位ホスト装置からのデータ入出力要求に応答して前記ディスクドライブに対するデータ入出力処理を行う制御装置と、を備えたディスクアレイ装置において、前記制御装置は、前記ディスクドライブの障害を特定するための制御情報と、前記障害ディスクドライブの障害情報を記憶するメモリと、前記障害情報からタイムアウト系障害が発生している障害ディスクドライブを特定し、当該ディスクドライブに対してリトライ命令を発行する回路と、前記障害ディスクドライブの障害が回復しない場合に、当該障害ディスクドライブを閉塞する制御信号を出力する回路と、ハードリセットするためのリセット信号を閉塞した障害ディスクドライブに出力する回路と、を備え、前記障害ディスクドライブのハードリセットの期間中、当該障害ディスクドライブに対するリードアクセスがあった記憶データを他のディスクドライブの記憶情報から回復して、これをホスト装置に提供することを特徴とするものである。
【００１３】
本発明の更に他の一つは、複数のディスクドライブと、上位ホスト装置からのデータ入出力要求に応答して前記ディスクドライブに対するデータ入出力処理を行う制御装置と、を備えた、ディスクアレイ装置の制御方法において、前記制御装置は、前記ディスクドライブを特定する工程と、前記障害ディスクドライブの障害情報を記憶する工程と、前記障害情報からタイムアウト系障害が発生していることを判定する工程と、タイムアウト系障害が発生したディスクドライブに対して制御コマンドのリトライを命令する工程と、前記障害ディスクドライブの障害が回復しない場合に、当該障害ディスクドライブをハードリセットする工程と、を備えてなることを特徴とするものである。
【発明の効果】
【００１４】
以上説明したように本発明によれば、タイムアウト系の問題或いは障害が発生したディスクドライブの復旧技術を提供することにより、ディスクドライブ障害率の低減し、これによりディスクドライブへ記憶されるデータの信頼性を向上したディスクアレイシステム及びその制御方法を提供することができる。
【発明を実施するための最良の形態】
【００１５】
以下、各図を参照して本発明の実施例について説明する。各実施例は特許請求の範囲を限定するものではなく、また実施例の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【００１６】
図１は本実施例に係るディスクアレイ装置１０の構成を示している。ディスクアレイ装置１０は、通信ネットワーク７１を介してホスト装置（上位ホスト装置）７０に接続している。ホスト装置７０は、ディスクアレイ装置１０の上位ホスト装置として機能するサーバ、パーソナルコンピュータ、ワークステーション、メインフレーム等である。通信ネットワーク７１としては、例えば、ＬＡＮ(Local Area Network)、ＳＡＮ（Storage Area Network）、インターネット、専用回線等を挙げることができる。
【００１７】
オープン系ホストの場合は、例えば、ＴＣＰ／ＩＰ（Transmission Control Protocol/Internet Protocol）、ＦＣＰ（Fibre Channel Protocol ）、ｉＳＣＳＩ（internet Small Computer System Interface）等のプロトコルに基づいてデータ転送が行われる。メインフレーム系ホストの場合は、例えば、ＦＩＣＯＮ（Fibre Connection：登録商標）、ＥＳＣＯＮ（Enterprise System Connection：登録商標）、ＡＣＯＮＡＲＣ（Advanced Connection Architecture：登録商標）、ＦＩＢＡＲＣ（Fibre Connection Architecture：登録商標）等の通信プロトコルに基づいてデータ転送が行われる。尚、ホスト装置７０からＮＦＳ（Network File System）等のプロトコルにより、ファイル名指定によるデータ出力要求を受け付けるように構成されたＮＡＳ（Network Attached Storage）機能を搭載してもよい。
【００１８】
ディスクアレイ装置１０は、二重化されたコントローラ２０，３０（請求項記載の発明の制御装置に対応する。）を備えたデュアルコントローラ構成を採用している。コントローラ２０は、主に、ＣＰＵ２１、ローカルメモリＬＭ(システムメモリ)２２、データコントローラ（Ｄ−ＣＴＬ）２３、キャッシュメモリ（ＣＭ）２４、ファイバチャネルプロトコルコントローラ（Ｆ−ＣＴＬ）２５、ＰＢＣ（Port Bypass Circuit）２７、エンクロージャーコントローラ（Ｅ−ＣＴＬ）２８、及びＦＣ−ＡＬ（Fibre Channel Arbitrated Loop）６１，６２を備える。
【００１９】
ＣＰＵ２１は、ホスト装置７０からのデータ入出力要求に応答して、複数のディスクドライブＤＲＶ０〜ＤＲＶ１４へのデータ入出力処理（ライトアクセス、又はリードアクセス等）を制御するプロセッサであり、ローカルメモリ２２に格納されたマイクロプログラムを実行することによりデータコントローラ２３、ファイバチャネルプロトコルコントローラ２５、及びＰＢＣ２７（スイッチ回路）等を制御する。
【００２０】
データコントローラ２３は、ＣＰＵ２１の制御により、ファイバチャネルプロトコルコントローラ２５とキャッシュメモリ２４との間のデータ転送を制御する。キャッシュメモリ２４は、ファイバチャネルプロトコルコントローラ２５を介してフロントインターフェース又はバックインターフェースとの間で授受されるデータを一時的に記憶する。
【００２１】
ファイバチャネルプロトコルコントローラ２５は、フロントインターフェース接続用ファイバチャネル４１を介してホスト装置７０にインターフェース接続し、ファイバチャネルプロトコルによるブロックアクセス要求を受信する機能を有する。更に、ファイバチャネルプロトコルコントローラ２５は、バックインターフェース接続用ファイバチャネル４２を介してディスクドライブＤＲＶ０〜ＤＲＶ１４にインターフェース接続し、ディスクドライブＤＲＶ０〜ＤＲＶ１４を制御するコマンド等を規定するプロトコルに従って、ディスクドライブＤＲＶ０〜ＤＲＶ１４へのデータ入出力要求を送信する機能を有する。
【００２２】
ＰＢＣ２７は、バックインターフェース接続用ファイバチャネル４２の接続先として、二つのＦＣ−ＡＬ６１，６２のうち何れか一方又は両者を選択し、接続切り替えを行う。      
【００２３】
ＦＣ−ＡＬ６１は、ＦＣ−ＡＬ６２上に実装されたＰＢＣ８２を介して、偶数番号のディスクドライブＤＲＶ０，ＤＲＶ２，…，ＤＲＶ１４にループ接続している。ＦＣ−ＡＬ６２は、ＦＣ−ＡＬ６２上に実装されたＰＢＣ８２を介して、奇数番号のディスクドライブＤＲＶ１，ＤＲＶ３，…，ＤＲＶ１３にループ接続している。
【００２４】
ＰＢＣ８２は、システム運用上の障害を最小限に止めて、ノードの追加や削除が行えるようにＦＣ−ＡＬ６１，６２を自動的にオープン又はクローズするためなどの電子スイッチである。ＰＢＣ８２は、ファイバチャネルプロトコルコントローラ２５やディスクドライブＤＲＶ０〜ＤＲＶ１４をバイパスして、これらをＦＣ−ＡＬ６１，６２から電気的に除外する機能を有する。
【００２５】
例えば、ＰＢＣ８２は、障害が発生したディスクドライブＤＲＶ０〜ＤＲＶ１４をＦＣ−ＡＬ６１，６２から切り離して、他のディスクドライブＤＲＶ０〜ＤＲＶ１４とファイバチャネルプロトコルコントローラ２５との間の通信を可能にする。また、ＰＢＣ８２は、ＦＣ−ＡＬ６１，６２の動作を維持したままで、ディスクドライブＤＲＶ０〜ＤＲＶ１４の抜き差しを可能にする。例えば、ディスクドライブＤＲＶ１５（図示せず）が新たに装着された場合には、そのディスクドライブＤＲＶ１５をＦＣ−ＡＬ６１，６２に取り込み、ファイバチャネルプロトコルコントローラ２５との間の通信を可能にする。
【００２６】
エンクロージャーコントローラ（Ｅ−ＣＴＬ）２８は、ＳＥＳ（SCSI Enclosure Surcuit）ドライブを制御する。ＳＥＳドライブは、ＳＣＳＩ３（Small Computer System Interface ３）規格に規定されるＳＥＳ（SCSI Enclosure Services）やＥＳＩ(Enclosure Service I/F)の機能を備えており、ＳＥＳ（SCSI Enclosure Service）やＥＳＩ(Enclosure Service I/F)の機能を動作させることができる。ＳＥＳドライブは、ＦＣ−ＡＬ６１〜６４の他に、エンクロージャーコントローラ２８とも通信可能なディスクドライブである。ここでは、各ＦＣ−ＡＬにつき２台のディスクドライブＤＲＶ０〜ＤＲＶ３をＳＥＳドライブとしているが、全てのディスクドライブＤＲＶ０，ＤＲＶ２，…，ＤＲＶ１４をＳＥＳドライブとしてもよい。
【００２７】
一方、コントローラ３０は、コントローラ２０と同様な構成であり、ＣＰＵ３１、ローカルメモリ（ＬＭ）３２、データコントローラ（Ｄ−ＣＴＬ）３３、キャッシュメモリ（ＣＭ）３４、ファイバチャネルプロトコルコントローラ（ＦＣ−ＣＴＬ）３５、ＰＢＣ３７、エンクロージャーコントローラ（Ｅ−ＣＴＬ）３８、フロントインターフェース接続用ファイバチャネル５１、バックインターフェース接続用ファイバチャネル５２、及びＦＣ−ＡＬ６３，６４を備えている。ＰＢＣ３７は、バックインターフェース接続用ファイバチャネル５２の接続先として、二つのＦＣ−ＡＬ６３，６４のうち何れか一方又は両者を選択し、接続切り替えを行う。ＦＣ−ＡＬ６３は、ＰＢＣ８２を介して偶数番号のディスクドライブＤＲＶ０，ＤＲＶ２，…，ＤＲＶ１４にループ接続している。ＦＣ−ＡＬ６４は、ＰＢＣ８２を介して奇数番号のディスクドライブＤＲＶ１，ＤＲＶ３，…，ＤＲＶ１３にループ接続している。
【００２８】
データコントローラ２３，３３はバス８１を介して相互に接続されており、一方のデータコントローラ２３（又は３３）がバス８１を介して他方のデータコントローラ３３（又は２３）に対して、コマンド転送やデータ転送等を行うこともできる。例えば、両コントローラ２０，３０が分担して同一の論理ボリュームに対するアクセスを行う場合に、両コントローラ間でライトデータ又はリードデータの転送を行うこともできる。
【００２９】
コントローラ２０，３０は、ディスクドライブＤＲＶ０，ＤＲＶ２，…，ＤＲＶ１４をいわゆるＲＡＩＤ方式に規定されるＲＡＩＤレベル（例えば、０，１，５，６）で制御することができる。すなわち、複数のディスクドライブはＲＡＩＤグループを構成し、一つのディスクドライブに障害が発生した場合でも他のディスクドライブのパリティデータから障害が発生した障害ディスクドライブのデータを再現することができる。
【００３０】
ＲＡＩＤ方式においては、複数のディスクドライブＤＲＶ０，ＤＲＶ２，…，ＤＲＶ１４が一つのグループ（以下、ＲＡＩＤグループと称する。）として管理される。ＲＡＩＤグループ上には、ホスト装置７０からのアクセス単位である論理ボリュームが形成されている。各論理ボリュームには、ＬＵＮ（Logical Unit Number）と呼ばれる識別子が付与されている。
【００３１】
尚、ＰＢＣ２７とＦＣ−ＡＬ６１，６２との間には、それぞれＰＢＣ１０１，１０２が実装されている。ＰＢＣ１０１は、ＦＣ−ＡＬ６１に障害が生じた場合には、バックインターフェース接続用ファイバチャネル４２を、ファイバチャネル１１１（点線）を介してＦＣ−ＡＬ６３に接続する。ＰＢＣ１０２は、ＦＣ−ＡＬ６２に障害が生じた場合には、バックインターフェース接続用ファイバチャネル４２を、ファイバチャネル１１２（点線）を介してＦＣ−ＡＬ６４に接続する。
【００３２】
同様に、ＰＢＣ３７とＦＣ−ＡＬ６３，６４との間には、それぞれＰＢＣ１０３，１０４が実装されている。ＰＢＣ１０３は、ＦＣ−ＡＬ６３に障害が生じた場合には、バックインターフェース接続用ファイバチャネル５２を、ファイバチャネル１１３（点線）を介してＦＣ−ＡＬ６１に接続する。ＰＢＣ１０４は、ＦＣ−ＡＬ６４に障害が生じた場合には、バックインターフェース接続用ファイバチャネル５２を、ファイバチャネル１１４（点線）を介してＦＣ−ＡＬ６２に接続する。
【００３３】
仮に、各コントローラ２０，３０に実装されている全てのＰＢＣ１０１〜１０４がファイバチャネル１１１〜１１４に接続することにより、バックインターフェース接続用ファイバチャネル４２，５２が相手コントローラ側のＦＣ−ＡＬ６１〜６４に接続された状態を想定すると、この状態は、例えば、特開２０００−１８７５６１号の図１に示されているように、両コントローラ間を接続するファイバチャネルループに複数のディスクドライブが接続する状態と同じになる。
【００３４】
図２は複数のディスクドライブＤＲＶ０〜ＤＲＶ１４に形成される論理ボリュームを示している。ここでは、説明の便宜上、二つの論理ボリュームＬＵ１，ＬＵ２が示されている。ホスト装置７０に搭載されているＯＳ（Operating System）は、論理ボリューム名を指定してディスクアレイ装置１０にアクセスする。仮に、各論理ボリュームＬＵ１，ＬＵ２を構成する物理ディスクを一つにすると、その物理ディスクが故障したときに、その論理ボリュームＬＵ１，ＬＵ２は使用不能となる。これを防止するために、ＲＡＩＤ方式では、各論理ボリュームＬＵ１，ＬＵ２が異なる複数のディスクドライブＤＲＶ０〜ＤＲＶ１４上に形成されている。その一方で、コントローラ２０の稼働系ＦＣ−ＡＬ６１は偶数番号のディスクドライブＤＲＶ０，２，４，…，１４に接続し、コントローラ３０の稼働系ＦＣ−ＡＬ６４は奇数番号のディスクドライブＤＲＶ１，３，４，…，１３に接続しているので、各々の論理ボリュームＬＵ１，ＬＵ２へのアクセスは、必ずしも何れか一方のコントローラ２０又は３０のみが行うものではなく、両コントローラ２０，３０が協調制御の下、協力して行うように構成してもよい。
【００３５】
ホスト装置７０からディスクアレイ装置１０の論理ボリュームＬＵ１又はＬＵ２に対して、ライトアクセスが行われると、コントローラ２０内のキャッシュメモリ２４に格納されるライトデータは、バス８１を介して他方のコントローラ３０内のキャッシュメモリ３４にも格納される。このようにデータを二重化することで、一方のコントローラ２０に障害が生じた場合でも、他方のコントローラ３０にフェイルオーバーできる。
【００３６】
キャッシュメモリ２４，３４にライトデータが格納された時点でディスクアレイ装置１０はホスト装置７０に対してライトアクセス完了の通知を行う。次いで、コントローラ２０は、ＦＣ−ＡＬ６１を介してディスクドライブＤＲＶ０，ＤＲＶ２，…，ＤＲＶ１４へのライトアクセスを行う。ライトアクセスが行われる論理ボリュームＬＵ１又はＬＵ２は、偶数番号のディスクドライブＤＲＶ０，ＤＲＶ１，…，ＤＲＶ１４だけでなく、奇数番号のディスクドライブＤＲＶ１，ＤＲＶ３，…，ＤＲＶ１３をも含むので、奇数番号のディスクドライブＤＲＶ１，ＤＲＶ３，…，ＤＲＶ１３へのライトアクセスは、コントローラ３０がＦＣ−ＡＬ６４を介して行う。
【００３７】
一方、ホスト装置７０からディスクアレイ装置１０の論理ボリュームＬＵ１又はＬＵ２に対して、リードアクセスが行われると、コントローラ２０はキャッシュメモリ２４をチェックし、リードアクセスの対象となるデータがある場合には、該当データを読み取ってホスト装置７０に送信する。キャッシュメモリ２４に該当データがない場合には、コントローラ２０は、ＦＣ−ＡＬ６１を介してディスクドライブＤＲＶ０，ＤＲＶ２，…，ＤＲＶ１４へのリードアクセスを行う。リードアクセスが行われる論理ボリュームＬＵ１又はＬＵ２は、偶数番号のディスクドライブＤＲＶ０，ＤＲＶ１，…，ＤＲＶ１４だけでなく、奇数番号のディスクドライブＤＲＶ１，ＤＲＶ３，…，ＤＲＶ１３をも含むので、奇数番号のディスクドライブＤＲＶ１，ＤＲＶ３，…，ＤＲＶ１３へのリードアクセスはコントローラ３０がＦＣ−ＡＬ６４を介して行う。各コントローラ２０，３０によって読み出されたリードデータはキャッシュメモリ２４，３４に二重書きされる。
【００３８】
このように、一つの論理ボリュームに対するアクセスを、両コントローラ２０，３０が協調制御の下、協力して行うことにより、各コントローラ２０，３０の処理負荷を均等化できる。本実施形態では、偶数番号のディスクドライブＤＲＶ０，ＤＲＶ１，…，ＤＲＶ１４と、奇数番号のディスクドライブＤＲＶ１，ＤＲＶ３，…，ＤＲＶ１３とに二分して、各コントローラ２０，３０の処理負荷を均等化する例を示したが、各コントローラ２０，３０が担当するディスクドライブ数が略同程度になるように、例えば、ディスクドライブＤＲＶ０〜ＤＲＶ７と、ディスクドライブＤＲＶ８〜ＤＲＶ１４とに二分して、各コントローラ２０，３０の処理負荷を均等化してもよい。
【００３９】
また、本実施形態では、二つのＰＢＣ２７，３７を制御して、バックインターフェース接続用ファイバチャネル４２，５２を稼働系ＦＣ−ＡＬ６１，６４に接続するだけで、全てのディスクドライブＤＲＶ０〜ＤＲＶ１４は、何れか一方のコントローラ２０又は３０に接続されるため、ＦＣ−ＡＬ６１〜６４上に実装された個々のＰＢＣ８２を個別に制御する必要がなく、制御が容易である。また、各ＣＰＵ２１，３１は、各コントローラ内の稼働系ＦＣ−ＡＬと待機系のＦＣ−ＡＬを区別することなく、両者とも同一のデバイスとして認識しているので、制御が容易である。
【００４０】
次に、ディスクドライブの障害について説明する。ディスクドライブの障害には、例えば、ＳＣＳＩ系の障害と、Ｆｉｂｒｅ系の障害と、タイムアウト系の障害と呼ばれるものがある。前２者の障害はリジッド（固定的）な障害であって、この障害が生じたディスクドライブは閉塞された上で新規ドライブに交換される。これに対して、タイムアウト系の障害は、ディスクドライブの一時的なハード／ソフトに対する障害で、本来回復の可能性がある。しかしながら、この障害が非再現性であることも多いことから、タイムアウト系の障害が起こったディスクドライブは閉塞され、他のディスクドライブと交換されていた。
【００４１】
これらの障害発生の有無は、例えば、ＣＰＵ２１が、ファイバチャネルプロトコルコントローラ２５からデータコントローラ２３経由で被疑ディスクドライブからのエラーメッセージを受領すること、又は、ＣＰＵ２１にコマンド送付先のディスクドライブからアクノリッジが所定時間以内に未到達(タイムアウト)であることによって判断される。ＣＰＵ２１は、被疑ディスクドライブ（障害が生じていると推定されるディスクドライブ）のＦＣループ上におけるＡＬ＿ＰＡ（Arbitrated Loop Physical Address）と障害の種別をシステムメモリ２２あるいはキャッシュメモリ２４などの所定記憶領域に設定或いは記憶する。
【００４２】
図３は、Ｅ−ＣＴＬ２８（３８）及びその周辺の回路ブロック構造を示すものであり、Ｅ−ＣＴＬ２８ＡはＡＳＩＣ（Application Specific Integrated Circuit）３００及びＭＰＵ３０２から構成される。ＡＳＩＣ300から各ディスクドライブへは信号伝達ライン３０４が形成されており、ＳＥＳドライブ（ＤＲＶ♯１，３）には、ディスクドライブの診断用のための、ＳＥＳドライブで認識可能な、ＳＥＳコマンド（ＳＣＳＩコマンド））及びハードリセット命令の信号ライン３０６が形成され、さらに、ＳＥＳドライブ以外のドライブにはハードリセット信号のライン３０８が形成されている。ＰＢＣ６１，６２と各ディスクドライブとの間には、ＳＥＳコマンド以外のコマンド（リード・ライト等）が送受される、ファイバーチャネルのライン３１０が形成されている。
【００４３】
ハードリセットは、ディスクドライブの電子回路を構成するチップ（ＦＣプロトコルチップ，ＣＰＵ等）の回路の一部又は全部をハード的にリセットすることであり、換言すればチップを初期化する処理のことである。このハードリセットは、ハードリセットのためのコマンドによって制御される。ディスクドライブのパワーオンリセットは、本発明のハードリセットに含まれても良い。ディスクドライブが、ハードリセットのためのコマンドをサポートしていない場合には、被疑ディスクドライブのパワーオンリセットするようにしても良い。パワーオンリセットの制御信号は、エンクロージャーコントローラからディスクドライブに送られるハードリセットの信号線を介してディスクドライブに送られる。これに対して、ソフトリセットとは、ディスクドライブ内で起動中のソフト（アプリケーション）をプログラム的に終了させてしまうことである。本発明においては、ハードリセットに先駆けて、ソフトリセットを実行しても良い。本発明に係るディスクアレイシステムは、ソフトリセットによってもディスクドライブが回復しない場合に、被疑ディスクをハードリセットしても良い。
【００４４】
図１及び図３に基づいて、ＣＰＵ２１がディスクドライブにアクセスするのは、次のとおりである。ＣＰＵ２１と各ディスクドライブは、ＦＣ−ＡＬ６１−６４を経由して、直接、ＳＥＳコマンド以外の、リード・ライト等のコマンド及びデータの送受を、図３の信号ライン３１０を介して行う。ＳＥＳコマンドは、ＦＣ−ＡＬ６１−６４、ＳＥＳドライブ（ＤＲＶ０−ＤＲＶ３）、及びエンクロージャーコントローラ２８又は３８に送られる。ＳＥＳドライブとエンクロージャーコントローラ２８又は３８との間のＳＥＳコマンドの交換は、図３の信号線３０６を介して行われる。ＳＥＳコマンドの内容は、ＳＥＳドライブで解析され、そのコマンドをエンクロージャーコントローラのＭＰＵ３０２がリードし、コマンドに対応する制御命令が目的のディスクドライブに、図３の信号線３０６，３０８を介して送られる。ディスクドライブのハードリセットは、ＳＥＳコマンドによって実行される。
【００４５】
ＳＥＳコマンドには、アクセス先のディスクドライブのＦＣループ上におけるＡＬ＿ＰＡが含まれている。ＳＥＳドライブ（ＤＲＶ０,ＤＲＶ１,ＤＲＶ２又はＤＲＶ３）は、ＦＣ−ＡＬ経由でＡＬ＿ＰＡとコマンドをリードし、これをＥ−ＣＴＬ用のコマンドに変換してＥ−ＣＴＬ２８（３８）に送る。Ｅ−ＣＴＬは、アクセス先のドライブがＳＥＳドライブの場合には、Ｅ−ＣＴＬとＳＥＳドライブの間に形成された制御信号線（図３の３０６）を介して、被疑ディスクドライブにハードリセット命令を送る。アクセス先がＳＥＳドライブで無い場合には、制御信号線(図３の３０８)を介して、被疑ドライブにハードリセット命令を送っている。  次いで、ＣＰＵは、ホストのタイムアウト時間よりも短い時間間隔で、ハードリセット処理後、被疑ドライブの駆動部を駆動させるためのスピンアップコマンドを発行する。被疑ディスクドライブの電子回路は、このコマンドを、ＳＥＳドライブを介することなく、ＦＣ−ＡＬ経由で受け取る。スピンアップコマンドを受領したディスクドライブの機械的部分がスピンアップをすると、ＣＰＵ（２１，３１）はＦＣ−ＡＬ経由で、スピンアップ完了に関連するコマンドをこのディスクドライブから受け取り、これでハードリセット後での被疑ディスクドライブの回復と判断する。例えば、ＣＰＵは、スピンアップコマンドを被疑ディスクドライブに、ディスクドライブがレディかビジーかを問い合わせるコマンドの送付を繰り返し行う。ディスクドライの機械部分のスピンアップが完了すると、ディスクドライブはビジィ状態からレディ状態になって、レディの状態にあることをＣＰＵに通知する。ＣＰＵはこの通知を以って、被疑ディスクドライブのハードリセット完了、即ち、被疑ディスクドライブの回復と判断する。被疑ディスクドライブを特定するための情報は、図１のシステムメモリ２２（３２）、キャッシュメモリ２４（３４）、各ディスクドライブの記憶領域の一つ又は複数に保存されている。ＣＰＵは、被疑ディスクドライブの回復を判断した場合には、この制御情報を更新して所定領域に記憶する。ファイバチャネルのディスクドライブの場合は、スピンアップには、オートスピンアップ（電源が入ったら自動でスピンアップを行う場合）と、コマンドスピンアップ（電源が入った状態でスピンアップのオン又はオフが可能な場合）と、がある。この実施形態では、ＣＰＵは、ファイバチャネルのディスクドライブのハードリセットの際に、ディスクドライブのパワーオンは維持され、コマンドスピンアップによって、スピンアップコマンドが被疑ディスクドライブに送信される。
【００４６】
ハードリセットを含めたディスドライブの回復処理にはある程度の時間を要するため、この間を利用して、被疑ディスクドライブの記憶データの回復を行うことができる。例えば、一旦被疑ディスクドライブを閉塞してコレクションコピーを行うことができる。図４は被疑ディスクドライブの閉塞処理後のコレクションコピーを示したものである。被疑ディスクドライブＢと同一のＲＡＩＤグループを構成する他のディスドライブＡ，Ｃ，Ｄ，及びＥの記憶内容から被疑ディスクドライブＢの記憶内容を再現して、これをスペアディスクドライブ３０１Ａに保存する。コレクションコピーを終了後、被疑ディスクドライブがハードリセットによって回復した後、これをスペアディスクドライブとしてＣＰＵ２１（３１）がメモリ（システムメモリ、キャッシュメモリ、ディスクドライの少なくとも一つ）の所定記憶領域に登録することができる。ディスクドライブの回復時間がホスト装置のタイムアウト時間より短い場合には、被疑ディスクドライブを閉塞することなく、被疑ディスクドライブをハードリセットしても良い。
【００４７】
ディスクドライブの回復時間は、ディスクドライブがサポートしている通信インターフェースやディスクドライを供給するベンダーの違いによって異なる。ディスクドライブの回復時間は、ディスクドライブの機械的駆動部分のスピンアップに律速するので、スピンアップまでの時間を短縮するように駆動部分を改良・変更すれば良い。被疑ディスクドライブのハードリセットに伴う、望まれる回復時間はホスト装置のタイムアウト時間（８−９秒）以下である。
【００４８】
被疑ドライブのハードリセット中の、ＣＰＵからの当該被疑ディスクドライブへのリードアクセスは次のように処理される。ＣＰＵは、リードアクセスがあった記憶データがキャッシュメモリ２４に存在する場合は、これをリードしてホスト装置７０に供給する。キャッシュメモリにリードアクセスのデータが存在しない場合には、ＣＰＵは、被疑ディスクと同一のＲＡＩＤグループを構成する他のディスクドライブから再現し（図４参照）、再現データをキャッシュメモリ２４に記憶する。被疑ディスクドライブが閉塞処理の期間中、スペアディスク３０１Ａ（図４）に再現データがある場合には、ＣＰＵはスペアディスクからデータをリードしてキャッシュメモリ２４に記憶するようにしても良い。
【００４９】
一方、ライトアクセスの場合には、次のように処理される。ライトアクセスの更新データは、図１に示すように、キャッシュメモリに差分ビットマップ２４Ａ（３４Ａ）として記憶される。被疑ディスクドライブがハードリセットから回復した後、キャッシュメモリ内の差分データが、回復後のディスクドライブに書き込まれる。一方、被疑ディスクドライブが閉塞された場合には、コレクションコピー終了後スペアディスクドライブに反映される。
【００５０】
被疑ディスクドライブのハードリセットに際して、これをユーザーに告知するか否かは、状況によって異なる。例えば、ハードリセットに伴い被疑ディスクドライブを閉塞した場合で、被疑ディスクドライブのＲＡＩＤグループのＲＡＩＤレベルが複数の冗長性を持たない場合（例えば、ＲＡＩＤ６以外のＲＡＩＤ５等）は、閉塞期間中冗長度が無くなるおそれがあるので、被疑ディスクドライブをハードリセットすることをユーザーに告知することができる。ＣＰＵ２１はホスト装置７０の表示装置に、特定のディスクドライブがハードリセットされたことの、テキスト文を表示するようにする。被疑ディスクドライブの回復時間がホスト装置のタイムアウト時間未満である場合、或いは、被疑ディスクドライブを閉塞した場合でも冗長性が保たれるＲＡＩＤレベル（例えば、ＲＡＩＤ６）である場合には、この限りではない。
【００５１】
図５に基づいて、障害ディスクドライブの障害回復処理について説明する。既述のとおり、ＣＰＵ２１が障害ディスクドライブを検出すると、図５のフローチャートに基づく処理がスタートする。ＳＥＳコマンドを受信したエンクロージャーコントローラ２８又は３８は、ＳＥＳドライブとＦＣ−ＡＬのループを介して被疑ディスクドライブにリトライ命令を送信する（Ｓ５０２）。リトライ命令を被疑ディスクドライブが正常に実行した場合には、ＣＰＵはキャッシュメモリ等への被疑ディスクドライブの登録をキャンセルするとともに、被疑ディスクドライブはリトライされた制御コマンドの実行を継続する（Ｓ５０４）。
【００５２】
ＣＰＵはリトライ命令発行後所定時間内に被疑ディスクドライブがリトライ命令を実行できない場合には、キャッシュメモリ上のエラーコードなどから障害の内容を調べる（Ｓ５０６）。ディスクドライブの障害がタイムアウト系以外の障害の場合は、回復不能な障害であるとして被疑ディスクドライブを閉塞処理する（Ｓ５０８）。
【００５３】
ディスクドライブの障害がタイムアウト系の障害である場合、ＣＰＵは、被疑ディスクドライブがハードリセットをサポートしているかをチェックする（Ｓ５１０）。各ディスクドライブの特性は、例えばシステムメモリあるいはキャッシュメモリなどに登録されていて、ＣＰＵ２１はこの登録内容に基づいて被疑ディスクドライブがハードリセットをサポートしているか否かを決定することができる。被疑ディスクドライブがハードリセットをサポートしていない場合にはハードリセットによってディスクドライブの障害を回復できないので、ディスクドライブを閉塞して処理を終了する（Ｓ５０８）。
【００５４】
一方、被疑ディスクドライブがハードリセットをサポートしている場合には、ディスクアレイ装置がワーニング状態（既にディスクドライブのどれか１台が閉塞状態にある）か否かがＣＰＵによって検討される（Ｓ５０９）。既にワーニング状態である場合には、さらに被疑ディスクドライブを閉塞することはできないので、被疑ディスクドライブをハードリセットし（Ｓ５１２）、次いで被疑ドライブにスピンアップコマンドを発行して（Ｓ５１４）、被疑ディスクドライブを回復させる。
【００５５】
一方、ディスクアレイ装置がワーニング状態で無い場合には、被疑ディスクドライブのＲＡＩＤレベルがＣＰＵによってチェックされ（Ｓ５１６）、ＲＡＩＤ５の場合には、被疑ディスクドライブを閉塞して（Ｓ５１８）、既述のコレクションコピーを開始する（Ｓ５２０）。さらに、ＣＰＵは被疑ディスクドライブを閉塞したことをホストに表示させる（Ｓ５２２）。次いで、ＣＰＵは被疑ディスクドライブに対してハードリセット制御信号を発行し（Ｓ５２４）、次いで、スピンアップコマンドを発行する（Ｓ５２６）。ＣＰＵは、スピンアップコマンド発行後、被疑ドライブが回復したか否かをチェックし（Ｓ５２８）、被疑ドライブが回復した場合には、ＣＰＵは被疑ディスクドライブを正常ディスクドライブとし、これをスペアディスクドライブとして登録する（Ｓ５３０）。一方、被疑ディスクドライブが回復しない場合には、コレクションコピー終了後、被疑ディスクドライブを交換する（Ｓ５３２）。
【００５６】
被疑ディスクドライブのＲＡＩＤレベルがＲＡＩＤ６の場合には、ホスト装置への告知無しに被疑ディスクドライブを閉塞して（Ｓ５３４）、被疑ディスクドライブにハードリセット制御信号を出力する（Ｓ５３６）。以後の処理は被疑ディスクドライブのＲＡＩＤレベルがＲＡＩＤ５の場合と同じである。被疑ディスクドライブが正常に回復、即ち、被疑ディスクドライブがハードリセットされ、駆動部分が回転し始めると正常動作を示すメッセージがＥ−ＣＴＬ経由でＣＰＵに伝達される。
【００５７】
図６は、本発明に係るディスクアレイ装置の他の例を示すものであり、ファイバチャネルプロトコルコントローラ２５，３５を中心とするディスクアレイ装置１０の主要部を示している。説明の便宜上、コントローラ内の一部の回路要素（ローカルメモリ２２，３２、エンクロージャーコントローラ２８，３８等）と、バックインターフェース周辺のハードウエア（ＰＢＣ２７，３７，１０１，１０２，１０３，１０４、ＦＣ−ＡＬ６１，６２，６３，６４等）の図示は省略している。
【００５８】
ファイバチャネルプロトコルコントローラ２５は、フロント側コア２５ａとバック側コア２５ｂを単一のＬＳＩ内に実装した回路構成を備えている。コア２５ａは、ホスト装置７０に対するデータ通信におけるファイバチャネルプロトコルを制御するための回路であり、例えば、ホスト装置７０からのファイバチャネルプロトコルによるブロックアクセス要求を受け付ける機能を有する。コア２５ｂは、ディスクドライブＤＲＶ０〜ＤＲＶ１４に対するデータ入出力におけるファイバチャネルプロトコルを制御するための回路であり、例えば、ディスクドライブＤＲＶ０〜ＤＲＶ１４を制御するコマンド等を規定するプロトコルに従って、ディスクドライブＤＲＶ０〜ＤＲＶ１４へのデータ入出力要求を処理する。コア２５ａとコア２５ｂは、それぞれ独立したモジュールによって制御されている。
【００５９】
ＰＣＩ−Ｘバス２９は、コントローラ２０のフロントインターフェース、バンクインターフェース、ファイバチャネルプロトコルコントローラ２５、及びデータコントローラ２３を相互に接続する。ＰＣＩ−Ｘバス２９は、ファイバチャネルプロトコルコントローラ２５内において二股に分岐し、コア２５ａ，２５ｂに接続している。フラッシュメモリ（ＦＭ）１６１は、ＣＰＵ２１とデータコントローラ２３とを結線するＰＣＩ−Ｘバスに分岐接続しており、ディスクドライブの障害情報を退避できるように構成されている。
【００６０】
メモリ装置として、フラッシュメモリを例示したが、その他の不揮発性メモリを使用することもできる。コントローラ２０のフロントインターフェースには、ＧＢＩＣモジュール１５１が実装されている。通信ネットワーク７１は、例えば、光ファイバネットワークによって構成されたＳＡＮである。ホスト装置７０と通信ネットワーク７１とのインターフェースには、ＨＢＡ（Host Bus Adapter）７２が実装されている。コントローラ３０内部の回路構成は、コントローラ２０の回路構成と同様である。３５ａはフロント側コア、３５ｂはバック側コア、３９はＰＣＩ−Ｘバス、１５２はＧＢＩＣモジュール、１６２はフラッシュメモリである。
【００６１】
また、各コントローラ２０，３０内のＣＰＵ２１，３１は、通信線８３を介して接続されており、コントローラ障害発生時には、相互に情報交換できるように構成されている。
【００６２】
ディスクアレイ装置１０には、システムを保守又は管理するための管理端末２００が通信インターフェース１７０を介して接続されており、両者間では、ファイバチャネルプロトコル又はＴＣＰ／ＩＰ等の所定の通信プロトコルに基づいてデータ通信が行われる。両者の通信プロトコルがファイバチャネルプロトコルであるならば、通信インターフェース１７０には、ＧＢＩＣモジュールと、ファイバチャネルプロトコルコントローラを実装すればよい。
【００６３】
両者の通信プロトコルがＴＣＰ／ＩＰであるならば、通信インターフェース１７０には、ＬＡＮポートコネクタと、ＴＣＰ／ＩＰを制御するＬＳＩを実装すればよい。オペレータは、管理端末２００を操作することにより、例えば、ディスクドライブＤＲＶ０〜ＤＲＶ１４上に定義される論理ボリュームの設定、ディスクドライブＤＲＶ０〜ＤＲＶ１４の増設又は減設、ＲＡＩＤ構成の設定変更（例えば、ＲＡＩＤレベル５からＲＡＩＤレベル１への変更）等を行うことができる。また、後述するように、ディスクドライブに障害が発生した場合に、キャッシュメモリ２４，３４に退避された障害情報を取得し、障害原因を解析する機能も有する。管理端末２００は、ディスクアレイ装置１０に内蔵してもよく、或いは外付けの構成としてもよい。
【００６４】
図７は本発明が適用される更に他のディスクアレイ装置１１の構成を示している。図１に示した符号と同一符号の装置等は同一の装置等を示すものとして、その詳細な説明は省略されている。バックインターフェース接続用ファイバチャネル４２，５２の接続切り替え回路として、上述したＰＢＣ２７，３７に替えて、スイッチ２６，３６を備えている。スイッチ２６には、それぞれ異なるポートＩＤを有するポートを介して、ＦＣ−ＳＡＴＡ変換インターフェース９３と、ＦＣ−ＡＬ６２とが接続されている。
【００６５】
同様にして、スイッチ３６には、それぞれ異なるポートＩＤを有するポートを介して、ＦＣ−ＳＡＴＡ変換インターフェース９４と、ＦＣ−ＡＬ６４とが接続されている。スイッチ２６，３６は、そのポートに接続するデバイスをそれぞれ独立したデバイスとして認識し、インテリジェントに切り替え制御する。
【００６６】
ＦＣ−ＳＡＴＡ変換インターフェース９３，９４は、ファイバチャネルプロトコルとＳＡＴＡプロトコルとを変換する回路であり、偶数番号のディスクドライブＤＲＶ０，ＤＲＶ１，…，ＤＲＶ１４にポイント・ツー・ポイント接続する。偶数番号のディスクドライブＤＲＶ０，ＤＲＶ１，…，ＤＲＶ１４として、例えば、安価なシリアルＡＴＡディスクドライブを採用できる。ＦＣ−ＡＬ６２，６４は、奇数番号のディスクドライブＤＲＶ１，ＤＲＶ３，…，ＤＲＶ１３にループ接続している。奇数番号のディスクドライブＤＲＶ１，ＤＲＶ３，…，ＤＲＶ１３として、例えば、応答速度の速い高性能なファイバチャネル・ディスクドライブを採用できる。
【００６７】
このように、応答速度の異なる複数種類のディスクドライブを混載したディスクアレイ装置１１においては、例えば、あるデータが時間的価値変化を生じた場合に、同一筺体内で、ファイバチャネル・ディスクドライブからシリアルＡＴＡディスクドライブへ、或いはシリアルＡＴＡディスクドライブからファイバチャネル・ディスクドライブへデータを移動させることが可能になる。
【００６８】
例えば、頻繁にアクセスされるデータや、高速応答が要求されるデータをファイバチャネル・ディスクドライブに格納する一方で、アクセス間隔の比較的長いデータや、応答速度がそれ程要求されないデータをシリアルＡＴＡディスクドライブへ格納するようにしてもよい。また、応答速度の異なる複数種類のディスクドライブとして、例えば、ＳＣＳＩディスクドライブ、パラレルＡＴＡディスクドライブ、シリアルＡＴＡディスクドライブ、ファイバチャネル・ディスクドライブ、シリアルアタッチドスカジードライブ（ＳＡＳドライブ）を混載してもよい。
【００６９】
スイッチ２６，３６を利用することにより、バックインターフェース接続用ファイバチャネル４２，５２の接続先をインテリジェントに切り替え制御できるので、各スイッチ２６，３６のそれぞれのポートに性能の異なる複数種類のディスクドライブを接続しておき、データの時間的価値変化等に基づいてデータの格納先を筺体内で変えることができる。
【００７０】
被疑ディスクドライブへのハードリセット及び閉塞処理は、ディスクドライブの種類に応じて行われる。ＣＰＵはハードリセットをサポートしていないディスクドライブ、ハードリセットをしてもドライブが回復することの実効性がないディスクドライブではハードリセットをすることなく、このディスクドライブが閉塞される。
【００７１】
図８は更に他のディスクアレイ装置１４の構成を示している。図１に示した符号と同一符号の装置等は同一の装置等を示すものとして、その詳細な説明は省略する。各コントローラ２０，３０が実装するファイバチャネルプロトコルコントローラ２５，３５には、フロントインターフェース接続用ファイバチャネル４１，５１と、バックインターフェース接続用ファイバチャネル４２，５２とがそれぞれ１パスずつ接続されている。各コントローラ２０，３０には、各ディスクドライブＤＲＶ０〜ＤＲＶ１４にループ接続する単一のＦＣ−ＡＬ６１，６３が実装されている。バックインターフェース接続用ファイバチャネル４２，５２は、それぞれＦＣ−ＡＬ６１，６３に接続している。
【００７２】
各コントローラ２０，３０はそれぞれＦＣ−ＡＬ６１，６３を介して全てのディスクドライブＤＲＶ０〜ＤＲＶ１４へのライトアクセス又はリードアクセスを行うことができる。どのコントローラ２０，３０がどのディスクドライブＤＲＶ０〜ＤＲＶ１４へライトアクセス又はリードアクセスするかは、静的に、或いは動的に設定可能である。
【００７３】
例えば、各コントローラ２０，３０がライトアクセス又はリードアクセスするディスクドライブＤＲＶ０〜ＤＲＶ１４を予め固定的に設定しておき、当該ディスクドライブＤＲＶ０〜ＤＲＶ１４へのライトアクセス又はリードアクセスは、担当コントローラ２０又は３０が実行するように構成してもよく、或いは各コントローラ２０，３０の処理負荷やアクセス頻度等に応じて動的に担当コントローラ２０，３０を決めてもよい。各コントローラ２０，３０とディスクドライブＤＲＶ０〜ＤＲＶ１４との接続は、ＦＣ−ＡＬ６１，６３上に実装されたＰＢＣ８２によって制御される。
【００７４】
図９は本実施例に係るディスクアレイ装置１５の構成を示している。図１に示した符号と同一符号の装置等は同一の装置等を示すものとして、その詳細な説明は省略する。各コントローラ２０，３０が実装するファイバチャネルプロトコルコントローラ２５，３５は、フロントインターフェース接続用ファイバチャネル４１，５１を介してホスト装置７０に接続する一方、バックインターフェース接続用ファイバチャネル４２，５２及びＦＣ−ＳＡＴＡ変換インターフェース９１，９２を介して各ディスクドライブＤＲＶ０〜ＤＲＶ１４に接続している。
【００７５】
各コントローラ２０，３０につきファイバチャネルプロトコルコントローラ２５，３５を一つにしつつ、しかもディスクドライブＤＲＶ０〜ＤＲＶ１４として、安価なシリアルＡＴＡディスクドライブを採用できるので、製品の低コスト化を実現できる。
【００７６】
図１０は、ファイバチャネルのドライブ（１００８，１０１０）とＳＡＴＡドライブ１００６との、他の混載例を示す、ディスクアレイ装置１０の機能ブロック(概略)を示すものである。このディスクアレイ装置は、本体１０００に、複数のファイバチャネルのドライブを備えた増設筐体１００２と、複数のＳＡＴＡドライブを備えた増設筐体１００４とを接続した構造から構成されている。本体の１０００Ａは、便宜上ＲＡＩＤコントローラと称される構造であり、図１のＣＰＵ２１、メモリ２２、Ｄ−ＣＴＬ２３、ＣＭ２４、ＦＣ−ＣＴＬ２５、ＰＢＣ２７から構成されている。
【００７７】
本体には複数のファイバチャネルのドライブ１００８が備わっているが、これが無くても良い。増設筐体２のＳＡＴＡドライブとＦＣ−ＡＬ６１(６３)との接合部にはＦＣ−ＳＡＴＡインターフェース変換回路９１(９３)が設けられている。Ｅ−ＣＴＬ２８（３８）、ＦＣ−ＡＬ６１(６３)は増設筐体に設けられている。図１０のものは、図１と同様に、デュアルコントローラの構成を備えている。増設筐体を順次本体１０００に接続することにより、ディスクアレイシステムの記憶容量を大きくすることができる。
【００７８】
請求項に記載された制御装置は、この実施形態に照らした場合、ＣＰＵ２１、メモリ２２、Ｄ−ＣＴＬ２３、ＣＭ２４、ＦＣ−ＣＴＬ２５、ＰＢＣ２７、Ｅ−ＣＴＬ２８（３８）、そして、ＦＣ−ＡＬ６１(６３)から構成されている。請求項に記載されたメインことンロータは、この実施形態に照らした場合、ＣＰＵ２１、メモリ２２、Ｄ−ＣＴＬ２３、ＣＭ２４、ＦＣ−ＣＴＬ２５、ＰＢＣ２７、そして、Ｅ−ＣＴＬ２８（３８）とから構成されている。
【００７９】
本体１０００は、ドライブの種類によって、ハードリセット処理の内容を変える。  ファイバチャネルドライブは、コマンド(例えば既述のＳＥＳコマンド)によって定義されるハードリセットによって、被疑状態から回復される。ＳＡＴＡドライブでハードリセットをサポートしていない場合には、ＣＰＵはＦＣ−ＡＬ経由で被疑ディスクドライブにパワーオンリセット用のコマンドを送る。ＳＡＴＡドライブは、パワーオンリセットに続いて自動的にスピンアップが行われるので、ＣＰＵからＳＡＴＡドライブへのスピンアップコマンドの送信は必須ではない。
【図面の簡単な説明】
【００８０】
【図１】本発明の実施形態に係るディスクアレイ装置のハードウエア構成ブロック図である。
【図２】論理ボリュームの説明図である。
【図３】ディスクアレイ装置のエンクロージャーコントローラの機能ブロック図である。
【図４】被疑ディスクドライブの実施例１のディスクアレイ装置の構成図である。
【図５】被疑ディスクドライブのハードリセットの処理シーケンスを示したフローチャートである。
【図６】本発明に係る他のディスクアレイ装置のハードウエアブロック図である。
【図７】本発明の更に他のディスクアレイ装置のハードウエアブロック図である。
【図８】本発明の更に他のディスクアレイ装置のハードウエアブロック図である。
【図９】本発明の更に他のディスクアレイ装置のハードウエアブロック図である。
【図１０】異なる種類のディスクドライブを混載した、ディスクアレイ装置のハードウエアブロック図である。
【符号の説明】
【００８１】
１０，１１，１３…ディスクアレイ装置  ２０，３０…コントローラ  ２１，３１…ＣＰＵ  ２２，３２…ローカルメモリ  ２３，３３…データコントローラ  ２４，３４…キャッシュメモリ  ２５，３５…ファイバチャネルプロトコルコントローラ  ２７，３７…ＰＢＣ  ２８，３８…エンクロージャーコントローラ  ６１〜６４…ＦＣ−ＡＬ  ７０…ホスト装置  ７１…通信ネットワーク  ８１…バス  ８２…ＰＢＣ  ９１，９２…ＦＣ−ＳＡＴＡ変換インターフェース  ＤＲＶ０〜ＤＲＶ１４…ディスクドライブ
【図１】
2006338626.tif 000003
【図２】
2006338626.tif 000004
【図３】
2006338626.tif 000005
【図４】
2006338626.tif 000006
【図５】
2006338626.tif 000007
【図６】
2006338626.tif 000008
【図７】
2006338626.tif 000009
【図８】
2006338626.tif 000010
【図９】
2006338626.tif 000011
【図１０】
2006338626.tif 000012