(57)【要約】【解決課題】より安価に拡張性を提供するストレージシステムにおいて、高可用性の提供。【解決手段】複数のハードディスクと、ハードディスクを接続する複数エクスパンダと、エクスパンダ間を接続して構成した複数のカスケードそれぞれに接続される複数のディスクアダプタを備えたストレージシステムであって、複数のカスケードの一端がカスケード間リンクにより接続され、前記カスケード間リンクは、論理的な接続状態および切断状態を持つ。【選択図】図１
2009211140.tif 000002
【特許請求の範囲】
【請求項１】
複数の記憶媒体と接続される、複数のエクスパンダと、この複数のエクスパンダのうちの所定数をそれぞれ接続した複数のカスケードと、この複数のカスケードをそれぞれ制御する複数の制御部とを含むストレージシステムであって、
前記複数のカスケードの前記制御部と接続される側と異なる端のエクスパンダ間を接続して構成したカスケード間リンクを備え、
前記複数の制御部それぞれは、前記カスケード間リンクを、論理的な接続状態又は論理的な接続断状態として管理することを特徴とするストレージシステム。
【請求項２】
格納するデータは同一の冗長グループが構成された前記複数の記憶媒体に冗長に格納され、
前記複数のカスケードが２つである場合にそのうちの１つのカスケード内の記憶媒体は、その記憶媒体へアクセスする際に前記制御部から経由するエクスパンダ数に対して昇順に冗長グループの識別子が付され、
前記複数のカスケードのうちの他の１つのカスケード内の記憶媒体は、その記憶媒体へアクセスする際に前記制御部から経由するエクスパンダ数に対して降順に冗長グループの識別子がつくことを特徴とする請求項１記載のストレージシステム。
【請求項３】
格納するデータは同一の冗長グループが構成された複数の記憶媒体に冗長に格納され、
前記カスケード内の記憶媒体へアクセスする際に前記制御部から経由するエクスパンダ数を冗長グループ内の全ての記憶媒体について和算したものは各冗長グループで等しいことを特徴とする請求項１記載のストレージシステム。
【請求項４】
前記制御部と前記記憶媒体を接続するプロトコルはコネクション型のプロトコルであることを特徴とする請求項１記載のストレージシステム。
【請求項５】
前記制御部と前記エクスパンダを接続するプロトコルはＳＡＳ（Serial Attached SCSI）であることを特徴とする請求項１記載のストレージシステム。
【請求項６】
前記制御部はアクセスの異常を検知する検知部を備え、
前記検知部でアクセスの異常が検知されると、前記制御部は、前記カスケード間リンクを論理的な接続状態とすることを特徴とする請求項１記載のストレージシステム。
【請求項７】
前記異常を検出した制御部と異なる制御部が、前記カスケード間リンクを論理的な接続状態とする指示を出力することを特徴とする請求項６記載のストレージシステム。
【請求項８】
前記制御部は、前記カスケード間リンクを論理的な接続状態とした後に、前記検知した異常部位に接続する部位を論理的に切断することを特徴とする請求項６記載のストレージシステム。
【請求項９】
前記制御部は、前記検知部で前記異常が解決したことを検知すると、前記カスケード間リンクを論理的な切断状態とすることを特徴とする請求項６記載のストレージシステム。
【請求項１０】
前記制御部は、前記検知部で前記異常が解決したことを検知すると、前記カスケード間リンクを論理的な切断状態とし、その後、前記異常部位に接続する部位を論理的に接続することを特徴とする請求項６記載のトレージシステム。
【請求項１１】
前記エクスパンダはそれぞれ直列に接続することを特徴とする請求項１記載のストレージシステム。
【請求項１２】
複数の記憶媒体と接続される、複数のエクスパンダと、この複数のエクスパンダのうちの所定数をそれぞれ接続した複数のカスケードと、この複数のカスケードをそれぞれ制御する複数の制御部とを含むストレージシステムであって、
前記複数のカスケードの端のエクスパンダ間に配置される複数のセレクタを備え、
前記複数の制御部それぞれは、前記セレクタを用いた接続状態を２つのモードで管理することを特徴とするストレージシステム。
【請求項１３】
前記２つのモードの１つは、前記制御部と前記カスケードの１つのポートを接続状態にし、他のセレクタとカスケードのもう１つのポートを接続状態にするモードであり、
前記２つのモードのうちの他の１つは、前記制御部と前記モードと入れ替わったカスケードの１つのポートを接続状態にし、他のセレクタと前記接続モードと入れ替わったカスケードのもう１つのポートを接続状態にするモードであることを特徴とするストレージシステム。
【請求項１４】
前記各制御部からアクセス可能な記憶媒体の数の差が最も小さくなるように前記２つのモードを設定することを特徴とする請求項１２記載のストレージシステム。
【請求項１５】
前記いずれかのエクスパンダが使用不可となった場合に、前記各制御部からアクセス不可能となる記憶媒体の期待値が最も小さくなるように前記２つのモードを設定することを特徴とする請求項１２記載のストレージシステム。
【請求項１６】
複数の記憶媒体と接続される、複数のエクスパンダと、この複数のエクスパンダのうちの所定数をそれぞれ接続した複数のカスケードと、この複数のカスケードをそれぞれ制御する複数の制御部とを含むストレージシステムの記憶媒体管理方法であって、
前記複数の制御部それぞれは、前記複数のカスケードの前記制御部と接続される側と異なる端のエクスパンダ間を接続して構成したカスケード間リンクを、論理的な接続状態又は論理的な接続断状態として管理することを特徴とするストレージシステムの記憶媒体管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージシステム及びその記憶媒体管理方法に関し、特に、記憶媒体とそれを接続する内部ネットワークを持つストレージシステム及びその記憶媒体管理方法に適用しても好適なものである。
【背景技術】
【０００２】
ストレージシステムにおいて、複数のハードディスクドライブ（ＨＤＤ）などの記憶媒体をストレージコントローラに接続し、１つの大きな記憶装置を構成することが行われている。複数の記憶媒体を接続することで、大容量の提供と共に、データに冗長性を持たせることが可能となり、可用性の向上も提供できる。こうした技術としては、ＲＡＩＤ（Redundant Arrays of Inexpensive Disks）などが知られている。また、多数の記憶媒体の接続方式を提供する技術としては、バス方式で接続するインタフェースであるＳＣＳＩや、ファブリックやループのトポロジにネットワークを形成することも可能なインタフェースであるファイバチャネル（Fibre Channel）などがある。ストレージシステムの高可用性の実現においては、データを格納する記憶媒体の冗長性のみで無く、記憶媒体をストレージコントローラに接続しアクセスを可能にするネットワークの冗長性も重要となる。例えば、ファイバチャネルアービトレイテッドループの構成でハードディスクを接続した場合の冗長性向上の技術として特許文献１がある。
【０００３】
また、多数の記憶媒体を接続するインタフェースとして、ＳＡＳ（Serial Attached SCSI）がある。ＳＡＳでは複数のデバイスをＳＡＳエクスパンダ（SAS Expander）により接続する。エクスパンダを多段に接続することでより多数の記憶媒体を接続することもでき、これにより従来のインタフェースより安価に大多数の記憶媒体を接続することができる。一方、エクスパンダは論理的な機能を持つ半導体であり、故障やノイズなどにより障害に陥る可能性が考えられる。直列に配置したエクスパンダにより多数の記憶媒体を接続する構成で、あるエクスパンダが障害に陥った場合、ストレージコントローラを起点として障害に陥ったエクスパンダより先に接続された記憶媒体には、その記憶媒体が正常であったとしても、アクセス不能となる。これによりデータの冗長性は大幅に減少してしまう。
【特許文献１】特開２００１−２２２３８５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
冗長性があれば、ある１つのコンポーネントに障害が生じた場合でも、残った正常のコンポーネントを用い、運転継続が可能である。その間に障害コンポーネントの交換などで冗長性を回復することができる。しかし、失った冗長性を回復する前にさらに同種のコンポーネントに障害が発生した場合は、ストレージシステムの運転継続ができず、また、障害コンポーネントの種類によってはストレージシステムに格納したデータを失ってしまうことになる。
【０００５】
一方、上記のようにエクスパンダに障害が発生すると、多数のハードディスクにアクセスが不能になり、多数のコンポーネントが冗長性も失うことになる。つまり、データ消失の危険が高まってしまう。そこで、エクスパンダに障害が発生しても、冗長性の低下を抑え、可用性を保つことが課題となる。
【０００６】
従来技術では、ファイバチャネルアービトレイテッドループなどのループ状通信手段でネットワークを構成したものであり、ＳＡＳネットワークに関するものではなかった。ストレージコントローラを基点として故障箇所より遠くのハードディスクへのアクセスはハードディスクのもう一方のポートにより行なう必要があった。
【０００７】
本発明は、以上の点を考慮してなされたもので、より安価に拡張性を提供するストレージシステムにおいて、高可用性を提供できるストレージシステム及びその記憶媒体管理方法を提案しようとするものである。
【課題を解決するための手段】
【０００８】
本発明は、複数の記憶媒体と接続される、複数のエクスパンダと、この複数のエクスパンダのうちの所定数をそれぞれ接続した複数のカスケードと、この複数のカスケードをそれぞれ制御する複数の制御部とを含むストレージシステムであって、前記複数のカスケードの前記制御部と接続される側と異なる端のエクスパンダ間を接続して構成したカスケード間リンクを備え、前記複数の制御部それぞれは、前記カスケード間リンクを、論理的な接続状態又は論理的な接続断状態として管理するストレージシステムである。
【０００９】
また、他の本発明は、複数の記憶媒体と接続される、複数のエクスパンダと、この複数のエクスパンダのうちの所定数をそれぞれ接続した複数のカスケードと、この複数のカスケードをそれぞれ制御する複数の制御部とを含むストレージシステムであって、前記複数のカスケードの前記制御部と接続される側と異なる端のエクスパンダ間に配置される複数のセレクタを備え、前記複数の制御部それぞれは、前記セレクタを用いた接続状態を２つのモードで管理するストレージシステムである。
【００１０】
本発明によれば、より安価に拡張性を提供するストレージシステムにおいて、高可用性を提供できるストレージシステム及びその記憶媒体管理方法を提案できる。また、本発明によれば、より安価で多数の記憶媒体が接続可能なＳＡＳインタフェースを用い、高可用のストレージシステム及びその記憶媒体管理方法を提案できる。
【発明を実施するための最良の形態】
【００１１】
以下、本発明の実施形態について説明する。図１は、本発明に関するストレージシステム１のブロック図である。
【００１２】
このストレージシステム１は、ストレージコントローラ１００とディスクユニット２００から成る。また、複数のホスト計算機１０が、ＳＡＮ(Storage Area Network)１１を介して、ストレージコントローラ１００に接続される。
【００１３】
ストレージコントローラ１００は、チャネルアダプタ（ＣＨＡ）１０１Ａ，１０１Ｂとディスクアダプタ（ＤＫＡ）１０２Ａ，１０２Ｂとキャッシュメモリ（ＣＭ）１０３Ａ，１０３Ｂを含み、それぞれ内部結合１０４で相互に接続されている。なお、以下では、ＣＨＡ１０１Ａ，１０１ＢをＣＨＡ１０１と、ＤＫＡ１０２Ａ，１０２ＢをＤＫＡ１０２と、ＣＭ１０３Ａ，１０３ＢをＣＭ１０３と称する場合もある。
【００１４】
ＣＨＡ１０１はＳＡＮ１１を経てホスト計算機１０に接続され、ホスト要求の解析や応答などホスト計算機１０とのやり取りを行う。
【００１５】
ＤＫＡ１０２はディスク側チャネル６を通じて、エクスパンダ２０１Ａ〜２０６Ａ，２１１Ａ〜２１６Ａを介してハードディスクドライブ（ＨＤＤ）２２０に接続され、ホスト要求解析結果などに基づいたＣＨＡ１０１からの指令で、ＨＤＤ２２０へのデータ格納や、ＨＤＤ２２０からのデータ読み込みを行う。その際データは、ＨＤＤ２２０より高速な記憶素子を有するＣＭ１０３に一時的に格納され、それを経由しＣＨＡ１０１、ＤＫＡ１０２間でデータのやり取りが行われる。
【００１６】
エクスパンダ２０１Ａ〜２０６Ａ，２１１Ａ〜２１６Ａは、複数のＨＤＤ２２０と別のエクスパンダ、またはＤＫＡ１０２に接続される。また、各エクスパンダ２０１Ａ〜２０６Ａ，２１１Ａ〜２１６Ａと、それらと接続される複数のＨＤＤ２２０とでユニット２０１〜２０６，２１１〜２１６を形成している。ＤＫＡ１０２は、アクセスを行うＨＤＤ２２０を番号により指定しコネクションを張り、コマンドやデータのやり取りを行う。
【００１７】
ＤＫＡ１０２Ａ，１０２Ｂからそれぞれカスケードに接続されたエクスパンダ２０１Ａ〜２０６Ａ，２１１Ａ〜２１６Ａで、最も奥のエクスパンダであるエクスパンダ２０６Ａ，２１６Ａ同士はカスケード間リンク２３０により接続されている。エクスパンダ２０６Ａ，２１６Ａはカスケード間リンク２３０により物理的に接続されているが、論理的に接続／接続断の状態となるため、図１においてはカスケード間リンク２３０を点線で示している。
【００１８】
エクスパンダ２０１Ａ〜２０６Ａ，２１１Ａ〜２１６Ａのいずれのエクスパンダにも障害が起こっていない場合は、カスケード間リンク２３０は論理的に切断されている。具体的には後述する各エクスパンダ２０１Ａ〜２０６Ａ，２１１Ａ〜２１６Ａ内のフォワーディングテーブル３１０の有効欄の該当するポートの有効ビットがオフにされる。また、より単純に結線をオン、オフする開閉器を設け別信号線によりこれを制御する構成としてもよい。
【００１９】
こうした構成により、エクスパンダ２０１Ａ〜２０６Ａのカスケードと、エクスパンダ２１１Ａ〜２１６Ａのカスケードとを２つの独立したカスケードと見なすことができ、ディスク側チャネル６の冗長性を確保している。
【００２０】
なお、片側のエクスパンダが受けたカスケード間リンク２３０の有効化の指示を、ＨＤＤ２２０データなどを伝達するリンクとは別のカスケード間リンク設定信号線２４３によって、反対側のカスケード間リンク２３０に接続するエクスパンダ（例えば、エクスパンダ２１６Ａからエクスパンダ２０６Ａ）に伝達し、反対側エクスパンダにも有効化の設定を反映しても良い。設定信号線２４３は、エクスパンダ２０６Ａ内の設定ポート２４１、エクスパンダ２１６Ａ内の設定ポート２４２を用いて接続される。
【００２１】
また、種々の設定を行うサービスプロセッサ（ＳＶＰ）１５０は、ＬＡＮ（Local Area Network）通じてストレージコントローラ１００に接続され、ＬＡＮインタフェースを介して各部と接続される。
【００２２】
図２は、エクスパンダ２０１Ａ〜２０６Ａ，２１１Ａ〜２１６Ａに共通する構成の詳細を説明するためのエクスパンダ３００を示すブロック図である。
【００２３】
ここでエクスパンダ３００はポート（０）からポート（５）の合計６つのポートを持つとする。例として、ポート（０）はＤＫＡ１０２側に、ポート（５）はカスケード接続された次のエクスパンダに接続され、ポート（１）からポート（４）にはそれぞれＨＤＤ（ｍ）からＨＤＤ（ｍ＋３）が接続されているものとする。
【００２４】
エクスパンダ３００はそれぞれのポートに対応したフォワーディングテーブルを有する。図２ではポート（０）のフォワーディングテーブル３１０に関して詳細に示している。フォワーディングテーブル３１０は、そのポートが受けたコネクション確立要求をどのポートに転送すればよいかを示している。例えば、ポート（０）がＨＤＤ（ｍ＋２）へのコネクション確立要求を受領したとする。その場合、フォワーディングテーブル３１０を参照し、どのポートにコネクション確立要求を転送すればよいかを決定する。
【００２５】
フォワーディングテーブル３１０は、宛先欄３１１、転送ポート欄３１２、有効欄３１３を持つ。エクスパンダ３００は、受領したコネクション確立要求の宛先を宛先欄３１１と照らし合わせ一致するものを得る。ここでは、ＨＤＤ（ｍ＋２）であり、それに対応する有効欄３１３は有効を示す“Ｔ”であり、転送ポート欄３１２はポート（３）である。そこで、エクスパンダ３００は、ポート（３）に転送すべきで、加えてこの転送先ポートは有効であり正常に動作していると判断することができる。
【００２６】
そして、エクスパンダ３００はコネクション確立要求のポート（３）への転送を試みる。ポート（３）を用いた他のコネクションがすでに確立済みの場合や、他のポートからも確立要求がありアービトレーションに負けた場合は、それらが解消され転送が行えるまで待機する。転送が行えればＨＤＤ（ｍ＋２）にコネクション確立要求が伝達され、ＨＤＤの状態に応じコネクションの確立などが行われる。
【００２７】
次に、ポート（０）が、カスケード接続された先の別のエクスパンダ３００に接続されたＨＤＤであるＨＤＤ（ｍ＋３２）に対するコネクション確立要求を受領したものとする。この場合、エクスパンダ３００は上記と同様にフォワーディングテーブル３１０（０）を参照し、転送先を決定するが、宛先欄３１１にＨＤＤ（ｍ＋３２）に一致するものはない。そこで“その他”が選択される。その“その他”に対応する有効欄３１３は有効を示す“Ｔ”であり、転送ポート欄３１２はポート（５）であり、このコネクション確立要求はポート（５）に転送される。ポート（５）は次段のエクスパンダに接続されており、各エクスパンダでこのような比較、転送が行われ、最終的にＨＤＤ（ｍ＋３２）が接続されるエクスパンダに到達する。
【００２８】
このようにフォワーディングテーブル３１０の宛先欄３１１に“その他”を設けることにより、カスケードに接続されたＨＤＤ数が１つのエクスパンダに接続されるＨＤＤの数よりも大きい場合においても、１つのエクスパンダ内における比較は少なく、フォワーディングテーブル３１０の容量が小さいものでもコネクション確立要求を宛先まで転送することができる。ただし、これは複数のエクスパンダを直列に接続した場合であり、木構造などに接続する場合はそのエクスパンダに接続されていないＨＤＤに関してもエントリする必要がある。なお、有効欄３１３に“Ｆ”が記載された場合は、その転送先ポートは無効であることを示し、無効である旨をコネクション確立要求元に返すことになる。
【００２９】
また、エクスパンダ３００はステータスレジスタ３２０を持つ。ステータスレジスタ３２０はそのエクスパンダのポート状態や、その正常動作中や初期設定中といったエクスパンダ自体の状態、その他検出されたエラーを格納するレジスタである。このステータスレジスタ３２０は宛先をエクスパンダ自体にしたコネクションを確立することにより読み取ることができる。また、別の信号線（図示せず）によっても読み取ることもできる。
【００３０】
図３は、ＣＨＡ１０１で保持するＬＤＥＶテーブル４００を示した図である。ＬＤＥＶテーブル４００をＣＭ１０３に格納し、ＣＨＡ１０１は必要に応じて参照してもよい。ＬＤＥＶテーブル４００は、ホスト要求の示す論理デバイス（Logical Device：LDEV）、論理ブロックアドレス（Logical Block Address：LBA）に応じたデータがどのＨＤＤ２２０にどのような形式で格納されているかを示すものである。
【００３１】
ＬＤＥＶテーブル４００は、ＬＤＥＶ欄４１０、ＬＢＡ欄４２０、ＨＤＤ番号欄４３０、および冗長方式欄４４０を持つ。ＣＨＡ１０１はホスト計算機１０からアクセス要求を受領すると、アクセス要求が示すＬＤＥＶ、ＬＢＡをＬＤＥＶ欄４１０、ＬＢＡ４２０欄に照らし合わせる。それに対応するＨＤＤ番号欄４３０が示すＨＤＤ２２０に該当データが格納されている（もしくはライトデータを格納することになる）。
【００３２】
１組のＬＤＥＶ、ＬＢＡに対して複数のＨＤＤ欄４３０が存在しているのは、その範囲のデータに対して複数のＨＤＤ２２０により冗長性を提供しているためである。その冗長性の提供の方法が冗長方式欄４４０に記載されている。例えば、冗長方式欄４４０が“ＲＡＩＤ１”であれば２つのＨＤＤ２２０を使用してミラーリングするＲＡＩＤレベル１の冗長性が提供される。また、冗長方式欄４４０が“ＲＡＩＤ１０”であれば領域結合した２つのＨＤＤ２２０の組を２つでそれぞれをミラーリングするＲＡＩＤレベル１＋０の冗長性が提供される。
【００３３】
図４は、ＣＨＡ１０１で保持するＨＤＤ−ＤＫＡテーブル５００を示した図である。このＨＤＤ−ＤＫＡテーブル５００はＣＭ１０３に格納しても良く、その場合は、ＣＨＡ１０１は必要に応じてＣＭ１０３に格納されたＨＤＤ−ＤＫＡテーブル５００を参照する。
【００３４】
ＨＤＤ−ＤＫＡテーブル５００は、あるＨＤＤ２２０はどのＤＫＡ１０２により制御されているかを示している。ＨＤＤ−ＤＫＡテーブル５００は、ＨＤＤ番号欄５１０、担当ＤＫＡ欄５２０、逆チャネルＤＫＡ欄５３０、修復対象欄５４０を持つ。
【００３５】
担当ＤＫＡ欄５２０は、ＨＤＤ番号欄５１０に対応するＨＤＤ２２０を制御するＤＫＡ１０２のＩＤが記載されている。また、逆チャネルＤＫＡ欄５３０は、担当ＤＫＡ欄５２０のＤＫＡ１０２の担当するカスケードの先にカスケード間リンク２３０により接続されたカスケードを制御するＤＫＡ１０２が記載されている。修復対象欄５４０は、後述するように障害等により、冗長度が減ったデータを格納するＨＤＤ２２０を示すものである。“０”は冗長度が減っていないもの、“１”は冗長度が減り、望ましくは冗長度の回復がなされるべきものを示す。
【００３６】
先に説明したＬＤＥＶテーブル４００とこのＨＤＤ−ＤＫＡテーブル５００の２つにより、ホスト計算機１０からのアクセス要求のＬＤＥＶ、ＬＢＡより該当データを格納するＨＤＤ番号が判明し、そのＨＤＤ番号からどのＤＫＡ１０２がＨＤＤ制御処理を行うべきかが判明する。つまり、これによりＣＨＡ１０１はどのＤＫＡ１０２と、ＣＭ１０３を介してデータのやり取りを行えばよいかが判明する。なお、これらのＬＤＥＶテーブル４００及びＨＤＤ−ＤＫＡテーブル５００は、ＳＶＰ１５０により初期設定時に作成され、ＳＶＰ１５０はすべてのＣＨＡ１０１、ＤＫＡ１０２に関するマスタ情報も保持する。
【００３７】
図５は、ＤＫＡ１０２で保持するトポロジテーブル６００を示した図である。このトポロジテーブル６００はＣＭ１０３に格納しても良い。その場合は、ＤＫＡ１０２は必要に応じてトポロジテーブル６００を参照する。
【００３８】
トポロジテーブル６００は、距離欄６１０、エクスパンダ欄６２０ＨＤＤ番号欄６３０、修復対象欄６４０を持つ。エクスパンダ欄６２０は、このトポロジテーブル６００を持つＤＫＡ１０２が制御するチャネルに接続されたエクスパンダのＩＤが示されている。また、それに対応する距離欄６１０には、そのエクスパンダは何回エクスパンダを通過すればそのエクスパンダに到達するかが示されている。また、ＨＤＤ番号欄６３０は、そのエクスパンダに接続されているＨＤＤ２２０の番号を示したものである。１つのエクスパンダには複数のＨＤＤ２２０を接続することができるため、１つのエクスパンダ欄６２０に対して複数のＨＤＤ番号欄が存在しうる。修復対象欄６４０は、上記修復対象欄５４０と同様に、障害等により、冗長度が減ったデータを格納するＨＤＤ２２０を示すものである。
【００３９】
なお、あるＤＫＡ１０２が持つトポロジテーブル６００には、カスケード間リンク２３０により結ばれた逆チャネルＤＫＡが制御するエクスパンダに関しても記載される。その際は、カスケード間リンク２３０を経た距離が距離欄に記載される。
【００４０】
図６は、ホスト計算機１０よりライト要求を受領した場合のＣＨＡ１０１の処理を示すフローチャートである。ＣＨＡ１０１は、ホスト計算機１０よりライト要求を受けるとデータをＣＭ１０３に一時的に格納し、ホスト計算機１０に完了報告を行う。その後の適切なタイミングで、ＣＨＡは、ＤＫＡにＣＭ１０３上のデータをＨＤＤ２２０に格納させる（これをデステージという）指示を行なう。本フローチャートはデステージの処理に関するものである。
【００４１】
ＣＨＡ１０１は、デステージ対象データのライト要求の示すＬＤＥＶ、ＬＢＡを元に、ＬＤＥＶテーブル４００よりライト要求のデータを格納すべきＨＤＤ２２０の番号を得る（Ｓ６００１）。また、ＣＨＡ１０１は、そのＨＤＤ番号を元に、ＨＤＤ−ＤＫＡテーブル５００を参照し、該当ＨＤＤ２２０にデータを格納する制御をおこなうＤＫＡ１０２を確認する（Ｓ６００２）。そして、ＣＨＡ１０１は、そのＤＫＡ１０２にデータが格納されているＣＭアドレスを通知するなどでデータ格納を指示（デステージ指示）する（Ｓ６００３）。なお、ＬＤＥＶテーブル４００で複数のＨＤＤ２２０が示され、ＨＤＤ−ＤＫＡテーブル５００によりそれぞれが異なる担当ＤＫＡとなっている場合は複数ＤＫＡ１０２に指示をすることとなる。
【００４２】
次に、ＣＨＡ１０１は、指示に対応したＤＫＡ１０３からの完了報告が揃うのを待つ（Ｓ６００４）。全て揃えば、ＣＨＡ１０１は、該当データを一時的に格納していたＣＭ１０３の領域を無効化して、他のデータを格納できるようにする（Ｓ６００５）。
【００４３】
図７は、図６の６００３でＣＨＡ１０１により出されたデステージ指示を受領したＤＫＡ１０２の処理を示すフローチャートである。
【００４４】
ＤＫＡ１０２は、ＣＨＡ１０１よりデステージ指示を受けると（Ｓ７００１）、指示内容の妥当性をチェックする（Ｓ７００２）。もし、該当データ格納を指示された領域が不一致など、指示内容が制御可能なＨＤＤ２２０と矛盾する場合は、誤動作の可能性があるため、ＣＨＡ１０１やＳＶＰ１５０にエラー通知を行う。次にＤＫＡ１０２は、ＣＭ１０３から該当データをリードし、該当ＨＤＤ２２０の該当領域にライトする（Ｓ７００３）。そのライトが完了するとその指示を行ったＣＨＡ１０１に完了報告を行う（Ｓ７００４）。
【００４５】
次にリード要求を受領した場合の処理を説明するが、ここでは、冗長方式がＲＡＩＤ１などミラーリングとなっている場合について説明する。その他のＲＡＩＤ５などリード対象領域によりどのＨＤＤ２２０に該当データが格納されているか決まる場合は、以降の説明ではデータ格納ＨＤＤ２２０は１つの場合として処理を行うこととする。
【００４６】
図８は、ホスト計算機１０よりリード要求を受領した場合のＣＨＡ１０１の処理を示すフローチャートである。
【００４７】
ＣＨＡ１０１は、ホスト計算機１０よりリード要求を受けると、該当データがＣＭ１０３にすでに一時的に格納されているかを確認し、もしすでに格納されていれば、そのデータをホスト計算機１０に応答する。一方、格納されていない場合は、ＣＨＡ１０１は、ＨＤＤ２２０からデータを読み出しＣＭ１０３に格納した上で（ステージ）、ＣＭ１０３に格納されたデータをホスト計算機１０に応答する。本フローチャートはステージ処理が必要となる場合に関するものである。ステージ対象データのリード要求の示すＬＤＥＶ、ＬＢＡを元に、ＬＤＥＶテーブル４００よりリード要求のデータが格納されているＨＤＤ２２０の番号を得る（Ｓ８００１）。
【００４８】
また、ＣＨＡ１０１は、そのＨＤＤ番号を元に、ＨＤＤ−ＤＫＡテーブル５００を参照し、該当ＨＤＤ２２０からデータを読み出す制御をおこなうＤＫＡ１０２を確認する（Ｓ８００２）。ＣＨＡ１０１は、該当データが複数のＨＤＤ２２０に格納されているか１つのＨＤＤ２２０に格納されているかを判断し（Ｓ８００３）、１つのＨＤＤ２２０に格納されているならばステップＳ８００６に進む。複数のＨＤＤ２２０に格納されているならば、さらに、ＣＨＡ１０１は、これらのＨＤＤ２２０の担当ＤＫＡが複数あるかを判断する（Ｓ８００４）。そして、ＣＨＡ１０１は、複数あるのならばその複数のＤＫＡ間の負荷を比較し、負荷の低いものを、指示を送るＤＫＡとして選択する（Ｓ８００５）。なお、負荷は指示を送った回数などから推測しても良い。また、ここでは負荷により選択したが対象領域により固定するなど単純化しても良い。これまでの判断で、担当ＤＫＡが複数ない場合は必然的に指示を送るＤＫＡが決まる。ＣＨＡ１０１は、これら指示を送るべき対象ＤＫＡに指示（ステージ指示）を送信し、ＤＫＡの完了報告を待つ（Ｓ８００６）。ＣＨＡ１０１は、ＤＫＡ１０２の完了報告を受領すると、ＣＭ１０３に該当データが格納されたことになる。そこで、ＣＨＡ１０１は、ＣＭ１０３からデータをリードし、そのデータを、リード要求の送信元のホスト計算機１０に応答する（Ｓ８００７）。
【００４９】
図９は、図８のステップＳ８００６でＣＨＡ１０１により出されたステージ指示を受領したＤＫＡ１０２の処理を示すフローチャートである。
【００５０】
ＤＫＡ１０２は、ＣＨＡ１０１よりステージ指示を受けると（Ｓ９００１）、該当データの格納ＨＤＤ２２０は複数か１つかの判断を行う（Ｓ９００２）。１つの場合ＤＫＡ１０２は、それを選択したＨＤＤ２２０としてＳ９００４の処理に進む。複数の場合ＤＫＡ１０２は、トポロジテーブル６００を参照し該当ＨＤＤ２２０のうち距離が最小となるものを選択する（Ｓ９００３）。なお、ＤＫＡ１０２は、この選択においては負荷の低いものを選んでも良い。また、その負荷は各ＨＤＤ２２０の指定回数の比較より大小を決定しても良い。次にＤＫＡ１０２は、選択したＨＤＤ２２０からデータをリードし、そのデータを指示内容に対応したＣＭ１０３領域にライトする（Ｓ９００４）。そして、ＤＫＡ１０２は、ＣＭ１０３にデータを確認した旨の完了報告をＣＨＡ１０１に行う（Ｓ９００５）。
【００５１】
図１０Ａ及びＢは、ＤＫＡ１０２が行う障害処理を示したフローチャートである。なお図１０Ａは上記障害処理の一部を示すフローチャートであり、図１０Ｂは上記障害処理の他の部分を示すフローチャートである。
【００５２】
ＤＫＡ１０２がＨＤＤ２２０にアクセスした結果、ＤＫＡ１０２がエラー検出をしたとする。このときアクセスを行おうとしたＨＤＤ（ｋ）はＤＫＡ側からｐ段目のエクスパンダに接続されたものとする（Ｓ１０００１）。エラー検出の契機としてはＨＤＤ２２０からの異常ステータスの受領や、プロトコルの不正、違反の検出、無応答となってからのタイムアウトの検出などがある。
【００５３】
次に、ＤＫＡ１０２は、変数ｍを１とする（Ｓ１０００２）。以降の処理でエクスパンダの状態を調査するが、この変数ｍは調査中のエクスパンダを示す。
【００５４】
続いて、ＤＫＡ１０２は、ｍ段目のエクスパンダのステータスを参照する（Ｓ１０００３）。この処理は、該当エクスパンダを宛先としてコネクション確立要求し、該当エクスパンダ内のステータスレジスタ３２０をリードすることで実行できる。また別の実施の形態では、ＤＫＡ１０２は、図示していない別信号線によってもエクスパンダのステータスを読み出すことができるようにしても良い。
【００５５】
その読み出した結果がエクスパンダ動作不能を示すものである場合や、読み出し自体に失敗した場合は、処理は、ステップＳ１０００９に進む（Ｓ１０００４）。そうでなければ、ＤＫＡ１０２は、次段エクスパンダへのリンクが切断を示すステータスになっていないかを判断する（Ｓ１０００５）。この判断は、図２のようなエクスパンダ３００の場合は、ステータスレジスタ３２０の示す種種の情報の中でポート（５）に関する状態で判断できる。
【００５６】
ステップＳ１０００５において切断と示されれば処理はＳ１００１１に進む。切断と示されなければ、ＤＫＡ１０２は調査中のエクスパンダを表す変数ｍとエラー検出したＨＤＤ２２０が接続されるエクスパンダを表す変数ｐとが等しいかを判断する（Ｓ１０００６）。ＤＫＡ１０２は、等しいと判断しなければｍに１を加算し（Ｓ１０００７）、Ｓ１０００３の処理に戻る。等しければ、ＤＫＡ１０２は、障害はアクセスを行おうとしたＨＤＤ２２０（ｋ）自体に発生していたとみなし、ＨＤＤ２２０（ｋ）を修復対象リストに入れ終了する（Ｓ１０００８）。「修復対象リストに入れる」という処理は、該当ＨＤＤ２２０に対応する、全てのＣＨＡ１０１のＨＤＤ−ＤＫＡテーブル５００の修復対象欄５４０、および全てのＤＫＡ１０２のトポロジテーブル６００の修復対象欄６４０を“１”にする処理である。このため、エラーを検出したＤＫＡ１０２は、他のＣＨＡ１０１、ＤＫＡ１０２に対象を通知する。
【００５７】
ステータスレジスタ３２０をリードした結果、エクスパンダの異常と判明した場合（Ｓ１０００４で“Ｔ”となった場合）は、ＤＫＡ１０２は、ｍ−１段目と、ｍ＋１段目のエクスパンダのアクセスが不能と見なす（Ｓ１０００９）。なお、ここでは、アクセス不能なところを、切断境界といい（ａ，ｂ）＝（ｍ−１，ｍ＋１）というように記述する。さらに、ｍ段目のエクスパンダに接続する全てのＨＤＤ２２０に関してアクセス不能になったと見なし、これらのＨＤＤ２２０に関して修復対象リストに入れる処理を行う（Ｓ１００１０）。
【００５８】
さらに、ＤＫＡ１０２は、切断境界ａの次段へのリンクを閉塞する（Ｓ１００１２）。具体的には、エクスパンダａを宛先としてアクセスし、エクスパンダの対象ポートのポート有効ビットをオフにする。続いて、障害検出したＤＫＡの逆チャネルＤＫＡに対して、カスケード間リンク２３０の有効化を行う指示を出す（Ｓ１００１３）。そして、ＤＫＡ０１２は、逆チャネル経由で切断境界ｂの次段へのリンクを閉塞する（Ｓ１００１４）。さらに、ＨＤＤ−ＤＫＡテーブル５００を変更し切断境界ｂ以降のＨＤＤ２２０の担当ＤＫＡと逆チャネルＤＫＡを入れ替え、これまでの逆チャネルＤＫＡを担当ＤＫＡとする（Ｓ１００１５）。
【００５９】
また、次段エクスパンダへのリンクが切断していた場合（Ｓ１０００５で“Ｔ”の場合）は、ＤＫＡ１０２は、切断境界を（ａ，ｂ）＝（ｍ，ｍ＋１）として（Ｓ１００１１）、ステップＳ１００１２以降の処理を行う。
【００６０】
この処理を行うことで、カスケードに接続されたエクスパンダ２０１Ａ〜２０６Ａ，２１１Ａ〜２１６Ａや各エクスパンダ間のリンクに障害が生じた場合でも、障害の影響範囲を限定し、データ冗長性を維持し、ストレージシステム１の可用性を確保する。
【００６１】
図１１はエクスパンダ２０１Ａ〜２０６Ａ，２１１Ａ〜２１６Ａまたはエクスパンダ間リンクの障害の要因が取り除かれた場合の復旧の処理のフローチャートである。この処理はＳＶＰ１５０から指示に基づいてストレージコントローラ１００のＣＨＡ１０１で実行される。そして、ＣＨＡ１０１は、この処理に従い該当ＤＫＡ１０２にカスケード間リンク２３０の閉塞、解放の指示を行う。ただし、この処理はＣＨＡのみではなく、各種の判断に必要な情報にアクセスでき、ＤＫＡ１０２に指示を出すことができるコンポーネントならば実行可能である。
【００６２】
また、図１２は、図１１のフローチャートで説明するエクスパンダ間のリンクの構成を示す図である。図１２に示すように、ＤＫＡ１０２Ａから４つのエクスパンダ２６１〜２６４がこの順で接続されており、ＤＫＡ１０２Ｂから４つのエクスパンダ２６５から２６８がこの順で接続されており、端部のエクスパンダ２６４，２６８がカスケード間リンクにより接続されている。
【００６３】
ここでは、復旧した切断境界でＤＫＡ１０２からカスケード間リンクを見て手前のものを図１２に示すように、“ａ”、奥のものを“ｂ”とする。まず、ＣＨＡ１０１は、“b”にアクセス可能なＤＫＡ１０２があるかを判断する（Ｓ２００１）。アクセス可能であれば、“b”を解放し（Ｓ２００２）、そのＤＫＡ１０２がカスケード間リンク２３０を閉塞する（Ｓ２００３）。アクセス不可能であれば、さらにＣＨＡ１０１は、“a”にアクセス可能なＤＫＡ１０２が存在するかを判断し（Ｓ２００８）、なければそのまま終了し、あればそのＤＫＡ１０２で“a”および“b”を解放し（Ｓ２００９、Ｓ２０１０）、処理を終了する。
【００６４】
ステップＳ２００３の次には、ＣＨＡ１０１は、“a”にアクセス可能なＤＫＡ１０２があるか判断する（Ｓ２００４）。無ければ終了する。あれば、ステップＳ２００２で“b”を解放したＤＫＡ１０２にてカスケード間リンク２３０を閉塞する（Ｓ２００５）。これは再びカスケード間リンク２３０を論理的に分離し、ＤＫＡ１０２Ａ，１０２ＢのＨＤＤ２２０側チャネルを独立させ、冗長性を確保するためである。
【００６５】
続いてＣＨＡ１０１は、“a”を解放し（Ｓ２００６）、そのＤＫＡ１０２でカスケード間リンク２３０を閉塞して終了となる（Ｓ２００７）。ただし、カスケード間リンク設定信号線２４３が存在する形態では、ステップＳ２００５にて設定の反映が可能のため、ステップＳ２００７の手続きは不要となる。なお、図１１の処理の後や、ＨＤＤ２２０の障害から回復した場合には、冗長方式に応じたデータの修復を行うことになる。
【００６６】
図１３は、冗長化したデータをどのＨＤＤ２２０に格納するかの一例を示した図である。ここでは、冗長化の方法をミラーリングとする。この図１３では、ＤＫＡ１０２からの距離が等しいＨＤＤ２２０にそれぞれのデータをミラーリングしている。具体的には、冗長グループ２５１Ａ〜２５６Ａと、冗長グループ２５１Ｂ〜２５６Ｂとがそれぞれミラーリングしている。このように２つのカスケード間で線対称になるように冗長グループを配置している。こうすることで、あるデータを冗長化したデータは同じ位置となり、ストレージシステム１において、制御が容易になる。
【００６７】
図１４は、冗長化したデータをどのＨＤＤ２２０に格納するかの別の一例を示した図である。ここでも、冗長化の方法をミラーリングとするが、こちらでは、片方のＤＫＡから一番近いＨＤＤ２２０に格納されたデータは、もう片方のＤＫＡから最も遠いＨＤＤ２２０にその冗長データを格納するといった、いわばカスケード間の中間地点でちょうど点対称になるように配置している。例えば、図１４に示すように、冗長グループ２５２Ａと２５５Ｂ、冗長グループ２５４Ａと２５３Ｂのようにミラーリングしている。このような構成をとることで、エクスパンダ障害による冗長性の低下を抑えることができる。これについて図１５および図１６を用いて説明する。
【００６８】
図１５は、図１３の線対称のミラーリング構成での障害の範囲を示した図である。ここでは、片側６段のエクスパンダ（２０１Ａ〜２０６Ａ，２１１Ａ〜２１６Ａ）のカスケードとし、全てのＨＤＤ２２０にホスト計算機１０が利用する有効なデータが格納されているとする。図において右側のＤＫＡ１０２Ｂから５段目のエクスパンダ２１５Ａに障害が発生したとする。すると前述の制御によりカスケード間リンク２３０が有効になり、アクセス不可となるＨＤＤ２２０の数は抑えられる。
【００６９】
この場合において、さらにエクスパンダ障害が発生する場合を考える。図１５を用いて説明したようにエクスパンダ２１１Ａから２１４Ａ、２１６Ａのいずれかに追加の障害が発生したとしても、エクスパンダ２０１Ａから２０６Ａに接続されるＨＤＤ２２０にはＤＫＡ１０２はアクセス可能であり、全てのデータにアクセスできている。しかし、例えばエクスパンダ２０４Ａに追加障害が発生した場合、エクスパンダ２０４Ａ、２０６Ａ，２１６Ａにもアクセス不能となり、それらに接続するＨＤＤ２２０に格納したデータにはＤＫＡ１０２はアクセス不能になる。つまり、この場合で追加のエクスパンダ障害が許容できるのは５エクスパンダについてとなる。ＤＫＡ１０２からカスケード間リンク２３０までの段数をｎとすると、追加障害でも耐えうるエクスパンダの数はｎ−１となる。
【００７０】
図１６は、図１４の点対称のミラーリング構成での障害の範囲を示した図である。こちらに関しても、図１５で説明した場合と同様に障害が発生した場合を考える。こちらの場合は、エクスパンダ２１１から２１４、２１６に加えて２０３から２０６の９つのエクスパンダに追加の障害が発生したとしても、全データへのアクセスを継続できている。こちらの場合は、ＤＫＡ１０２からカスケード間リンク２３０までの段数をｎ、最初の障害が起こったエクスパンダをｐ段目とすると、追加障害でも耐えうるエクスパンダの数はｎ＋Ｐ−２となる。Ｐは１≦p≦ｎであることを考慮すると、いずれの場合もｎ＋ｐ−２≧ｎ−１であり、点対称の配置は線対称の配置と比較して同等から約２倍の割合でエクスパンダ追加障害に耐える。
【００７１】
図１７は、点対称の配置の割り当てを作成するＳＶＰ１５０で実行される処理のフローチャートである。ＳＶＰ１５０は、ユーザの操作を受けて以下の処理を行う。なお、図１８は、カスケードペアを構成するエクスパンダの配置例を示す図である。
【００７２】
ＳＶＰ１５０は、カスケードペアの一方のＨＤＤ２２０にＤＫＡ１０２からの距離で小さい順で1からｘまでの番号を、もう一方のカスケードに接続するＨＤＤ２２０に距離の大きい順でｘ＋１から２ｘまでの番号をつける（Ｓ３００１）。ただし、距離は同値の場合もあるのでその場合はその中でＩＤ順などとする。図１３〜１６の説明を例にすると、１エクスパンダあたり４つのＨＤＤ２２０が接続されるとｘ＝４ｎとなる。
【００７３】
次に、ＳＶＰ１５０は、あるデータを冗長化して格納するＨＤＤ２２０のグループである冗長グループのメンバーを決定する。その冗長グループのメンバー数を“ｒ”とすると、先につけた番号で、ｋ＋（ｉ／ｒ）×２ｘ番（０≦ｉ≦ｒ−１）のr個のＨＤＤ２２０を、番号ｋの冗長グループのメンバーとする（Ｓ３００２）。
【００７４】
続いて、ＳＶＰ１５０は、その番号ｋの冗長グループのフォーマットを行う指示や構成情報の設定などを行う（Ｓ３００３）。ＳＶＰ１５０は、全ての冗長グループを構成したか判断し（Ｓ３００４）、してなければＳ３００２以降を繰り返す。全て構成していればこの処理を終了する。
【００７５】
図１９は、図１７の処理により作成されたある冗長グループの例を示している。この場合は、ＲＡＩＤ５（３Ｄ＋１Ｐ）の冗長グループの例を示している。図１９に示すように、冗長グループが、２７１〜２７４の４つのＨＤＤ２２０で構成されている。
【００７６】
この第１の実施形態のストレージシステム１によると、より安価に拡張性を提供するとともに高可用性を提供でき、さらに、安価で多数のＨＤＤ２２０が接続可能なＳＡＳインタフェースを用いてその高可用性を提供できる。
【００７７】
（第２の実施形態）
図２０は、第２の実施形態による本発明に関するストレージシステム２のブロック図である。この第２の実施形態では、可用性をさらに高めるため、第１の実施形態のストレージシステムに２つのポートを備えるＨＤＤ２２０を適用した場合について説明する。この２つのポートによりＨＤＤ２２０は、エクスパンダ２８１Ａ〜２８８Ａ，Ｂの２つのエクスパンダに接続される。これらのエクスパンダを制御するためにストレージコントローラ１００内に４つのＤＫＡ１０２Ａ〜１０２Ｄを設けている。
【００７８】
このように４つのＤＫＡ１０２Ａ〜１０２Ｄを設け、ＨＤＤ２２０を２つのエクスパンダに接続し、そのエクスパンダをカスケードに接続し（エクスパンダ２８１Ａ，Ｂ〜２８４Ａ，Ｂ、２８５Ａ，Ｂ〜２８８Ａ，Ｂ）、そのカスケード間を、カスケード間通信リンク２３１，２３２で接続することにより、さらに、エクスパンダの障害耐性の向上に加え、ＤＫＡの障害の耐性も向上するストレージシステムとすることができる。
【００７９】
（第３の実施形態）
図２１は、第３の実施形態による本発明に関するストレージシステム３のブロック図である。図１では、カスケード間は、カスケード間リンク２３０により接続していたが、ストレージシステム３においては、２つのディスク側チャネルセレクタ８１０，８２０により接続される。
【００８０】
ディスク側チャネルセレクタ８１０は、１つのカスケード（エクスパンダ２９１Ａ〜２９４Ａ）の両端の２ポートと、ＤＫＡ１０２Ａのディスク側チャネルの１ポートと、対になるディスク側チャネルセレクタ８２０の１ポートとつながる１ポート、あわせて４ポートのセレクタとなる。ディスク側チャネルセレクタ８２０も実質的に同様な構成となる。
【００８１】
ディスク側チャネルセレクタ８１０，８２０は、２種類の接続モードを持つ。１つの接続モードは、ディスク側チャネルの１ポートとカスケードの一端のポートの接続および、対になるディスク側チャネルセレクタの１ポートとカスケードの別の端のポートの接続を提供するモードである（図中の実線）。もう一方の接続モードは、ディスク側チャネルと対になるディスク側チャネルセレクタへ接続するカスケードの端を逆にした接続モードである（図中の点線）。説明の便宜上、前者をモードＡ、後者をモードＢと称する。２つのディスク側チャネルセレクタ８１０，８２０で独立してモードの設定が可能で、障害状況に応じてＳＶＰ１５０の指示により切り替えられる。ＳＶＰ１５０は、負荷分散の観点から２つのＤＫＡ１０２Ａ，１０２Ｂが担当するＨＤＤ２２０の数をなるべく同数に近づけるよう、モードを選択する。図２２〜図２４を用いて選択の例を示す。
【００８２】
図２２は、ディスク側チャネルセレクタ８１０，８２０のモード選択の例を示した図である。図２２は、エクスパンダ２９７Ａに障害が発生した場合である。この状況における、ディスク側チャネルセレクタ８１０，８２０のモード選択とＤＫＡ１０２Ａ，１０２Ｂの担当ＨＤＤ数を、Ｍ（ｍ０，ｍ１）＝Ｄ（ｎ０，ｎ１）と表すとする。ディスク側チャネルセレクタ８１０にモードＡ、ディスク側チャネルセレクタ８２０にモードＡを選択した場合は、ＤＫＡ１０２Ａが２０個のＨＤＤ２２０、ＤＫＡ１０２Ｂが８個のＨＤＤ２２０を担当することになる（Ｍ（Ａ，Ａ）＝Ｄ（２０，８））。その他は、Ｍ（Ａ，Ｂ）＝Ｄ（２４，４）、Ｍ（Ｂ，Ａ）＝Ｄ（２０，８）、Ｍ（Ｂ，Ｂ）＝（２４，４）となる。従ってＭ（Ａ，Ａ）かＭ（Ｂ，Ａ）を選択する。同数の場合は、図１４のように冗長グループが点対称になるほうを選択するとよい。
【００８３】
図２３は、エクスパンダ２２０に障害が発生した場合である。この状況では、Ｍ（Ａ，Ａ）＝Ｄ（２８，０）、Ｍ（Ａ，Ｂ）＝Ｄ（１６，１２）、Ｍ（Ｂ，Ａ）＝Ｄ（２８，０）、Ｍ（Ｂ，Ｂ）＝Ｄ（１６，１２）となる。従ってＭ（Ａ，Ｂ）かＭ（Ｂ，Ｂ）が選択される。
【００８４】
図２４は、エクスパンダ２２０に障害が発生した場合である。この状況では、Ｍ（Ａ，Ａ）＝Ｄ（０，２８））、Ｍ（Ａ，Ｂ）＝Ｄ（０，２８）、Ｍ（Ｂ，Ａ）＝Ｄ（１２，６）、Ｍ（Ｂ，Ｂ）＝Ｄ（１２，１６）となる。従ってＭ（Ｂ，Ａ）かＭ（Ｂ，Ｂ）が選択される。
【００８５】
この第３の実施形態によっても、第１の実施形態と同様な効果を奏することができる。
【００８６】
（他の実施形態）
上記第１の実施形態では、本発明を、複数のＨＤＤ２２０と接続される、複数のエクスパンダ２０１Ａ〜２０６Ａ，２１１Ａ〜２１６Ａと、この複数のエクスパンダ２０１Ａ〜２０６Ａ，２１１Ａ〜２１６Ａのうちの所定数をそれぞれ接続した複数のカスケード（エクスパンダ２０１Ａ〜２０６Ａと、エクスパンダ２１１Ａ〜２１６Ａ）と、この複数のカスケードをそれぞれ制御するＤＫＡ１０２Ａ，Ｂとを含むストレージシステム１であって、複数のカスケードのＤＫＡ１０２Ａ，Ｂと接続される側と異なる端のエクスパンダ２０６Ａ、２１６Ａ間を接続して構成したカスケード間リンク２３０を備え、ＤＫＡ１０２Ａ，Ｂそれぞれは、カスケード間リンク２３０を、論理的な接続状態又は論理的な接続断状態として管理する場合について適用したが、本発明はこれに限るものではない。
【００８７】
また、上記第３の実施形態では、本発明を、複数のＨＤＤ２２０と接続される、複数のエクスパンダ２９１Ａ〜２９４Ａ，２９５Ａ〜２９８Ａと、この複数のエクスパンダ２９１Ａ〜２９４Ａ，２９５Ａ〜２９８Ａのうちの所定数をそれぞれ接続した複数のカスケード（エクスパンダ２９１Ａ〜２９４Ａ，２９５Ａ〜２９８Ａ）とを含むストレージシステム３であって、複数のカスケードの端のエクスパンダ２９１Ａ，２９４Ａ間に配置されるディスク側チャネルセレクタ８１０と、エクスパンダ２９５Ａ，２９８Ａ間に配置されるディスク側チャネルセレクタ８２０を備え、ＤＫＡ１０２Ａ，Ｂそれぞれは、ディスク側チャネル側セレクタ８１０，８２０を用いた接続状態を２つのモードで管理する場合について適用したが、本発明はこれに限るものではない。
【００８８】
なお、上記各実施の形態では、記憶媒体としてはＨＤＤを使用したストレージシステムについて説明したが、記憶媒体としてフラッシュメモリを使用したストレージシステムにも本発明を適用することができる。
【産業上の利用可能性】
【００８９】
本発明は、ストレージシステム及びその記憶媒体管理方法に広く適用することができる。
【図面の簡単な説明】
【００９０】
【図１】本発明の第１の実施形態に係わるストレージシステムのブロック図である。
【図２】同実施形態に係わるエクスパンダ２の詳細をあらわしたブロック図である。
【図３】同実施形態に係わる各ＣＨＡで保持するＬＤＥＶテーブルを示した図である。
【図４】同実施形態に係わる各ＣＨＡで保持するＨＤＤ−ＤＫＡテーブルを示した図である。
【図５】同実施形態に係わる各ＤＫＡで保持するトポロジテーブルを示した図である。
【図６】同実施形態に係わるホスト計算機よりライト要求を受領した場合のＣＨＡの処理のフローチャートである。
【図７】同実施形態に係わるデステージ指示を受領したＤＫＡの処理を表したフローチャートである。
【図８】同実施形態に係わるホスト計算機よりリード要求を受領した場合のＣＨＡの処理のフローチャートである。
【図９】同実施形態に係わるステージ指示を受領したＤＫＡの処理を表したフローチャートである。
【図１０Ａ】同実施形態に係わるＤＫＡが行う障害処理の一部を示したフローチャートである。
【図１０Ｂ】同実施形態に係わるＤＫＡが行なう障害処理の他の部分を示したフローチャートである。
【図１１】同実施形態に係わるエクスパンダまたはエクスパンダ間リンクの障害の要因が取り除かれた場合の復旧の処理のフローチャートである。
【図１２】図１１で説明するエクスパンダ間のリンクの構成を示す図である。
【図１３】同実施形態に係わる冗長化したデータをどのＨＤＤに格納するかの一例を示した図である。
【図１４】同実施形態に係わる冗長化したデータをどのＨＤＤに格納するかの別の一例を示した図である。
【図１５】同実施形態に係わる線対称のミラーリング構成での障害の範囲を示した図である。
【図１６】同実施形態に係わる点対称のミラーリング構成での障害の範囲を示した図である。
【図１７】同実施形態に係わる点対称の配置の割り当てを作成するＳＶＰで実行される処理のフローチャートである。
【図１８】同実施形態に係わるカスケードペアを構成するエクスパンダの配置例を示す図である。
【図１９】図１７の処理により作成されたある冗長グループの例を示した図である。
【図２０】本発明の第２の実施形態に係わるストレージシステムのブロック図である
【図２１】本発明の第３の実施形態に係わるストレージシステムのブロック図である。
【図２２】同実施形態に係わるディスク側チャネルセレクタのモード選択の例の一部を示した図である。
【図２３】同実施形態に係わるディスク側チャネルセレクタのモード選択の例の一部を示した図である。
【図２４】同実施形態に係わるディスク側チャネルセレクタのモード選択の例の一部を示した図である。
【符号の説明】
【００９１】
１〜３…ストレージシステム、１０…ホスト計算機、１００…ストレージコントローラ、１０１Ａ，Ｂ（１０１）…チャネルアダプタ、１０２Ａ，Ｂ（１０２）…ディスクアダプタ、ＳＶＰ…１５０、２２０…ハードディスクドライブ、２０１Ａ〜２０６Ａ，２１１Ａ〜２１６Ａ…エクスパンダ、２３０，２３１，２３２…カスケード間通信リンク、４００…ＬＤＥＶテーブル、５００…ＨＤＤ−ＤＫＡテーブル、６００…トポロジテーブル、８１０，８２０…ディスク側チャネルセレクタ
【図１】
2009211140.tif 000003
【図２】
2009211140.tif 000004
【図３】
2009211140.tif 000005
【図４】
2009211140.tif 000006
【図５】
2009211140.tif 000007
【図６】
2009211140.tif 000008
【図７】
2009211140.tif 000009
【図８】
2009211140.tif 000010
【図９】
2009211140.tif 000011
【図１０Ａ】
2009211140.tif 000012
【図１０Ｂ】
2009211140.tif 000013
【図１１】
2009211140.tif 000014
【図１２】
2009211140.tif 000015
【図１３】
2009211140.tif 000016
【図１４】
2009211140.tif 000017
【図１５】
2009211140.tif 000018
【図１６】
2009211140.tif 000019
【図１７】
2009211140.tif 000020
【図１８】
2009211140.tif 000021
【図１９】
2009211140.tif 000022
【図２０】
2009211140.tif 000023
【図２１】
2009211140.tif 000024
【図２２】
2009211140.tif 000025
【図２３】
2009211140.tif 000026
【図２４】
2009211140.tif 000027