(57)【要約】データストレージシステムにおいて、識別番号あるいはエンクロージャＩＤをエンクロージャに自動的に割当てるための方法、デバイス、システムを提供する。各エンクロージャには、データストレージシステムにおいてエンクロージャを参照するために使用されうる一意的なエンクロージャＩＤが、割当てられる。ネットワークトポロジに基づき、エンクロージャＩＤが生成され、エンクロージャＩＤはエンクロージャに割当てられる。特に、各エンクロージャには、一意的にエンクロージャを識別するだけでなく、データストレージシステムにおいてエンクロージャの位置を判定するのに使用されうるエンクロージャＩＤが割当てられる。
2010518513.tif 000002
【特許請求の範囲】
【請求項１】
データストレージシステムの複数のエンクロージャを識別するエンクロージャ識別方法であって、前記エンクロージャ識別方法は、
前記データストレージシステム内のエンクロージャトポロジを識別するトポロジ識別ステップと；
一意的なエンクロージャＩＤを生成するＩＤ生成ステップと；
識別された前記エンクロージャトポロジに基づき、それぞれ前記エンクロージャに前記エンクロージャＩＤを割当てるＩＤ割当ステップと
を有する、エンクロージャ識別方法。
【請求項２】
前記識別方法は更に、前記エンクロージャＩＤを、複数の前記エンクロージャに保存するＩＤ保存ステップを有する、請求項１記載のエンクロージャ識別方法。
【請求項３】
前記識別方法は更に、複数の前記エンクロージャ上に、前記エンクロージャＩＤを表示するＩＤ表示ステップを有する、請求項１記載のエンクロージャ識別方法。
【請求項４】
前記トポロジ識別ステップは、
前記データストレージシステム内の全ての拡張装置を検索する検索ステップと；
トップの拡張装置を識別する第１識別ステップと；
前記トップの拡張装置の下の第２拡張装置を識別する第２識別ステップと；
前記データストレージシステム内で複数の前記エンクロージャの物理的な相互接続を示す、互いに相互接続された複数の前記拡張装置のマップを作製するマップ作製ステップとを有する、請求項１記載のエンクロージャ識別方法。
【請求項５】
前記エンクロージャ識別方法は更に、
何れの前記拡張装置が共通エンクロージャに関連するか判定するために、複数の前記拡張装置のアドレスを比較するアドレス比較ステップと、
前記共通エンクロージャに関連する複数の前記拡張装置を、論理的にグループ化するグループ化ステップと、
を有する、請求項４記載のエンクロージャ識別方法。
【請求項６】
前記エンクロージャ識別方法は更に、
ヘッドエンクロージャを識別する第１識別ステップと；
前記ヘッドエンクロージャに第１エンクロージャＩＤを割当てる第１割当ステップと；
前記ヘッドエンクロージャに接続された前記第１エンクロージャを識別する第２識別ステップと；
前記第１エンクロージャに第２エンクロージャＩＤを割当てる第２割当ステップと；
を有する、請求項１記載のエンクロージャ識別方法。
【請求項７】
前記ヘッドエンクロージャは、ホストから受信した命令を実行するためのコントローラを有し、
前記第１エンクロージャは、前記コントローラから直接検出できる第１拡張装置を有する、請求項６記載のエンクロージャ識別方法。
【請求項８】
前記エンクロージャトポロジは、複数の前記エンクロージャ同士の物理的なケーブル接続順に基づく、請求項１記載のエンクロージャ識別方法。
【請求項９】
前記エンクロージャ識別方法は、
第１コントローラが、前記データストレージシステム内の少なくとも１つのエンクロー
ジャを直接検出できるか否か判定する判定ステップと；
前記第１コントローラが少なくとも１つの前記エンクロージャを直接検出できる場合に、前記第１コントローラが検出可能なように、複数の前記エンクロージャのチェーン接続に基づき、複数の前記エンクロージャの前記ケーブル接続順を定義する第１定義ステップと；
前記第１コントローラが少なくとも１つの前記エンクロージャを直接検出できない場合に、第２コントローラが検出可能なように、複数の前記エンクロージャのチェーン接続の逆に基づき、複数の前記エンクロージャのケーブル接続順を定義する第２定義ステップと；
定義された前記接続ケーブル順に基づき、前記複数のエンクロージャに昇順でエンクロージャＩＤを割当てるＩＤ割当ステップと
を有する、請求項８記載のエンクロージャ識別方法。
【請求項１０】
前記エンクロージャ識別方法は更に、１つの前記エンクロージャ内のそれぞれの前記ストレージデバイスに、前記エンクロージャＩＤとデバイスＩＤのうちの少なくとも１つを有する一意的なデバイスＩＤを割当てるデバイスＩＤ割当ステップを有する、請求項１記載のエンクロージャ識別方法。
【請求項１１】
データストレージシステム内の複数のエンクロージャにＩＤを割当てるエンクロージャＩＤ割当装置であって、前記エンクロージャＩＤ割当装置は、
第１命令と第２命令を備える割当アプリケーションを有するメモリと；
前記第１命令と前記第２命令を実行可能なプロセッサと
を有し、
前記第１命令は、前記複数のエンクロージャ同士の相互接続に基づき、前記データストレージシステム内の前記複数のエンクロージャのマップを生成し、
前記第２命令は、前記データストレージシステム内の前記エンクロージャの位置に基づき、一意的なエンクロージャＩＤをそれぞれ前記エンクロージャに割当てることを特徴とする、エンクロージャＩＤ割当装置。
【請求項１２】
前記メモリと前記プロセッサは、ストレージエンクロージャとホストコンピュータ（１１２）上に位置する少なくとも１つのコントローラに、処理可能に関連する、請求項１１記載のエンクロージャＩＤ割当装置。
【請求項１３】
前記データストレージシステム内の前記複数のエンクロージャのうちの少なくとも２つは、前記エンクロージャの一意的なエクロージャＩＤを表示するための表示デバイスを有する、請求項１１記載のエンクロージャＩＤ割当装置。
【請求項１４】
前記複数のエンクロージャは、その他のエンクロージャに、ファイバチャネルプロトコルとシリアルアタッチドＳＣＳＩのうちの何れか１つを有する既知のストレージシステム通信プロトコルを用いて通信する、請求項１１記載のエンクロージャＩＤ割当装置。
【請求項１５】
前記割当アプリケーションは、
前記データストレージシステム内の各エンクロージャ内の各ストレージデバイスを一意的に識別する識別命令と；
前記各ストレージデバイスにデバイスＩＤを割当てる割当命令と
を有する、請求項１１記載のエンクロージャＩＤ割当装置。
【請求項１６】
前記デバイスＩＤは、前記ストレージデバイスに関連する前記エンクロージャの前記エンクロージャＩＤと、前記エンクロージャ内の前記ストレージデバイスの位置に関連する識別子とを有する一意的なデバイスＩＤである、請求項１５記載のエンクロージャＩＤ割
当装置。
【請求項１７】
複数のエンクロージャを有する電子データシステムであって、それぞれ前記エンクロージャは１つ以上のデータストレージデバイスを有し、前記電子データシステムは、
ヘッドエンクロージャに関する前記エンクロージャのケーブル接続順を決定する接続順決定手段と；
エンクロージャＩＤを生成するＩＤ生成手段と；
前記ケーブル接続順の前記エンクロージャの位置に基づき、前記システム内のそれぞれの前記エンクロージャに、互いに異なるエンクロージャＩＤを割当てるＩＤ割当手段と；を有することを特徴とする、電子データシステム。
【請求項１８】
前記ヘッドエンクロージャは、ＲＡＩＤエンクロージャとＪＢＯＤエンクロージャのうちの１つを有する、請求項１７記載の電子データシステム。
【請求項１９】
前記ヘッドエンクロージャには、生成された最小の前記エンクロージャＩＤが割当てられ、
前記ケーブル接続順の内のそれぞれ続くエンクロージャには、昇順で前記エンクロージャＩＤが割当てられる、請求項１７記載の電子データシステム。
【請求項２０】
それぞれ前記エンクロージャは、それぞれ前記エンクロージャＩＤを表示する表示手段を有する、請求項１７記載の電子データシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データストレージ管理に関する。特に本発明は、エンクロージャとエンクロージャ内のデバイスを、アドレス指定するためおよび識別するための、方法と装置に関する。
【背景技術】
【０００２】
デジタルファイル、デジタル文書、デジタルピクチャ、デジタル画像、およびその他データを保存する必要性は、急激に増加している。データの電子保存に関連して、大量データの迅速かつ安全な保存のために、様々なデータストレージシステムが考案されている。そのようなシステムには、状況に合わせて使用される１つまたは複数の保存デバイスが含まれる。１つのストレージデバイス（あるいは、いくつかの場合では、２つ以上のストレージデバイス）が機能しない場合に、データが修復できないほどには失われないように、データは複数のストレージデバイスにまたがって分散されているシステムも利用可能である。多数の独立したストレージデバイスの処理を調整するシステムもまた、データアクセスと保存回数のうちの少なくとも１つの改善を提供できる。このような利点を提供できるシステムの例は、開発済みの様々なＲＡＩＤ（Ｒｅｄｕｎｄａｎｔ Ａｒｒａｙ ｏｆ Ｉ
ｎｅｘｐｅｎｓｉｖｅ Ｄｉｓｋｓ）レベル内で見ることができる。１つ以上のストレー
ジデバイスの使用が実行されるか否かにかかわらず、データストレージシステムによって提供される保存は、１つ以上のストレージボリュームとして処理できる。
【０００３】
今日のストレージ世界では、多くのデータストレージシステムは、ディスクエンクロージャへの、ファイバチャネル（ＦＣ）あるいはシリアルアタッチドＳＣＳＩ（ＳＡＳ）インターフェイスに基づく。ファイバチャネルエンクロージャは、典型的にはアービトレイテッドループ（ＦＣ−ＡＬ）に基づいていて、任意には、ファイバチャネルループスイッチを含む。何れの場合も、ＦＣ−ＡＬのアドレス指定の仕組みは、通常にはエンクロージャＩＤを決定する。ソフトＦＣアドレス指定は便利だが、ほとんどのシステム管理者にとってあまりにも無規律と考えられる。ハードＦＣアドレス指定は、構成するには不便だが、特により大きな構成において管理するのは、より容易である。多くの場合、ユーザは、サムホイールあるいは他の機械的なインターフェイスの使用を通じて、エンクロージャのハードＦＣアドレス領域を構成しなくてはならない。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
サムホイールは、（その機械的表示を通じて）エンクロージャを識別し、ディスクのＦＣアドレスとＳＣＳＩエンクロージャサービス（ＳＥＳ）を制御する。ユーザが、ＩＤを割当てるために機械的スイッチを使用すると、２つ以上のエンクロージャは同じエンクロージャＩＤを有してしまうかもしれない。そこで、１つ以上のエンクロージャは、自動的に互いに異なるＩＤを割当てられなくてはならないであろう。更に、どのエンクロージャが２重のＩＤを有しているかをユーザに示す簡単な方法はない。
【０００５】
ＳＡＳ基準は、デバイスアドレス指定に関しては、極めて異なっている。特に、全てのＳＡＳデバイスは、それらの６４ビットのワールドワイドネーム（ＷＷＮ）を通じて、アドレス指定される。ＳＡＳについて、ドライブのアドレス指定をするために、ＦＣあるいはパラレルＳＣＳＩによって使用される単純なスカラー（０，１，２，・・・，ｎ）と同等であるものはない。ＷＷＮは、デバイス識別のためには、ユーザフレンドリとは滅多に考えられない。ＷＷＮが使用されるため、サムホイールやそれと同等な機械的インターフェイスを使用する必要はない。更に、ユーザにＷＷＮを提供することは、人工的であり、
ＳＡＳデバイスを見つけようとするユーザに誤解を与えかねない。機械的なサムホイールスイッチは、ＳＡＳにおいて使用可能ではあるが、発生しうる２重ＩＤについては、依然として対処しなくてはならないであろう。ＦＣとＳＡＳの両方にとって、エンクロージャおよびそこに含まれるデバイスを識別する方法の必要性が、未だにあるようである。
【課題を解決するための手段】
【０００６】
本発明は、これらの問題やその他の問題や先行技術の欠点を解決することに関連する。本発明の実施例によれば、論理的かつ実用的な形式でエンクロージャの自動番号付けのメカニズムを提供する。本方法は、概してストレージシステム内のエンクロージャのトポロジを識別するステップを含む。エンクロージャのトポロジが決定されると、一意的なエンクロージャ識別子（ＩＤ）が生成され、ストレージシステム内のエンクロージャのトポロジに基づき、ストレージシステム内のエンクロージャに割当てられる。各エンクロージャに、ストレージシステムのトポロジに基づきＩＤを割当てることによって、もしそのエンクロージャのエンクロージャＩＤが既知だとすると、システム管理者は、簡単にエンクロージャの位置を見つけることができる。更なる実施例では、エンクロージャ内のストレージデバイスには、そのデバイスが属するエンクロージャにある程度基づいて、デバイスＩＤが割当てられる。
【０００７】
１つの実施例では、ストレージシステム内のエンクロージャはまた、ここでエンクロージャＩＤ表示（ＥＩＤ）としても参照される表示デバイスで提供される。ＥＩＤは、エンクロージャに割当てられたエンクロージャＩＤの視覚的表示を提供する。システム管理者が、特別なエンクロージャを物理的に探している場合、システム管理者は、エンクロージャがあたかも管理制御盤上で識別されたかのように、エンクロージャを識別できるという点で、表示デバイスは有用である。このことは、エンクロージャおよびそこに含まれるストレージデバイスの位置を見つけるのに必要な時間を減少させる。そのストレージデバイスは、結局のところは、より迅速なストレージデバイスへの置換や処理回数に対応しうる。更に、ＥＩＤは、ＥＩＤがユーザに依存しないようにするエンクロージャＩＤへのいかなる変化をも反映すべく、自動的に変化する能力がある。
【０００８】
本発明の１つの実施例によると、データストレージシステムが提供される。データストレージシステムは、概して、２つ以上のエンクロージャを含んでいて、各エンクロージャはそれぞれ少なくとも１つのストレージデバイスを有する。１つの実施例では、ストレージシステム内の各エンクロージャには、ケーブル接続順のエンクロージャの位置に基づき、エンクロージャＩＤが割当てられる。各エンクロージャ内のストレージデバイスには、エンクロージャ内のストレージデバイスの位置だけではなく、ストレージデバイスが格納されたエンクロージャに対応するストレージデバイスＩＤが割当てられる。したがって、一意的なストレージデバイスＩＤは、他のエンクロージャに関連する位置だけではなく、エンクロージャ内のストレージデバイスの位置を反映する。
【０００９】
本発明の実施例の更なる特徴および利点は、以下の説明、特に付随する図面とともに理解した場合に、より容易に明確になるであろう。
【図面の簡単な説明】
【００１０】
【図１】本発明の実施例にしたがって、少なくとも１つのデータストレージシステムを含む電子データシステムの構成要素を描写した機能的ブロック図。
【図２】本発明の実施例にしたがって、ヘッドエンクロージャとしてのＲＡＩＤエンクロージャを有するデータストレージシステムを描写した機能的ブロック図。
【図３】本発明の実施例にしたがって、ヘッドエンクロージャとしてのＪＢＯＤエンクロージャを有するデータストレージシステムを描写した機能的ブロック図。
【図４】本発明の実施例にしたがって、複数のエンクロージャドメインを有するデータストレージシステムを描写した機能的ブロック図。
【図５】本発明の実施例にしたがって、ツリートポロジで接続されたエンクロージャを有するデータストレージシステムを描写した機能的ブロック図。
【図６】本発明の実施例にしたがって、ＲＡＩＤエンクロージャの外観図を描写した機能的ブロック図。
【図７】本発明の実施例にしたがって、ＪＢＯＤエンクロージャの外観図を描写した機能的ブロック図。
【図８】本発明の実施例にしたがって、エンクロージャ内のストレージドライブスロットを描写した機能的ブロック図。
【図９】本発明の実施例にしたがって、最初のデータストレージシステムトポロジを識別する方法を描写したフローチャート。
【図１０】本発明の実施例にしたがって、データストレージ内で、エンクロージャにエンクロージャＩＤを割当てる方法を描写したフローチャート。
【図１１】本発明の実施例にしたがって、データストレージシステムトポロジに基づきエンクロージャＩＤを割当てる方法を描写したフローチャート。
【図１２】本発明の実施例にしたがって、一意的なデバイスＩＤを割当てる方法を描写したフローチャート。
【発明を実施するための形態】
【００１１】
図１は、本発明の実施例にしたがって、第１データストレージシステム１０４と第２データストレージシステム１０８を有する電子データシステム１００を描写したブロック図である。電子データシステム１００はまた、１以上のホストプロセッサ、コンピュータ、あるいはコンピュータシステム１１２を含んでも良い。更に、電子データシステム１００は、管理コンピュータ１１６を含むか、管理コンピュータ１１６に相互接続されていても良い。本発明の開示を熟考後に当業者によって理解されるように、本発明の実施例は、ストレージエリアネットワーク（ＳＮ）あるいは直接接続された環境において、１つあるいは複数のホストコンピュータ１１２に関連する応用が可能である。
【００１２】
第１データストレージシステム１０４と第２データストレージシステム１０８は、典型的にはインバンド方式ネットワーク１２０を通じて、他のデータストレージシステムに相互接続されている。インバンドネットワーク１２０はまた、第１データストレージシステム１０４と第２データストレージシステム１０８を、ホストコンピュータ１１２と管理コンピュータ１１６のうちの少なくとも１つに相互接続させても良い。電子データシステム１００はまた、電子データシステム１００のいくつかあるいはすべてを、１０４，１０８，１１２，１１６のノードのうち少なくとも１つに相互接続するアウトオブバンド方式ネットワーク１２４を含んでも良い。例えば、ファイバチャネルあるいはＴＣＰ／ＩＰネットワークを有するインバンド方式ネットワーク１２０は、第１データストレージシステム１０４を、第２データストレージシステム１０８にいくらかの距離に渡ってつなげても良く、これらの第１データストレージシステム１０４と第２データストレージシステム１０８の各々は、インバンド方式ネットワーク１２０とアウトオブバンド方式ネットワーク１２４のうちの少なくとも１つを通じて、１つ以上のホストコンピュータ１１２に接続されても良い。
【００１３】
インバンド方式ネットワーク１２０（あるいはストレージエリアネットワーク）は、概して、第１データストレージシステム１０４と第２データストレージシステム１０８のうちの少なくとも１つと、ホストデバイス１１２との間でデータを移送するように機能し、複数のイニシエータと複数のターゲットを支える能力のあるデータパイプとなりうる。したがって、インバンド方式ネットワーク１２０の例は、ファイバチャネル（ＦＣ）、ｉＳＣＳＩ、パラレルＳＣＳＩ、ＳＡＳ、インフィニバンド、イーサネット（登録商標）、ＥＳＣＯＮあるいはＦＩＣＯＮ接続あるいはネットワークを含む。ファイバチャネル（ＦＣ
）、ｉＳＣＳＩ、パラレルＳＣＳＩ、ＳＡＳ、インフィニバンド、イーサネット（登録商標）、ＥＳＣＯＮあるいはＦＩＣＯＮ接続あるいはネットワークは、典型的には中間から高いバンド幅での比較的大きなデータ量を移送する能力を特徴とする。アウトオブバンドネットワーク１２４は、概して、データストレージリソースシステム１０４，１０８、ホストコンピュータ１１２、および管理コンピュータ１１６のうちの少なくとも１つのような様々なネットワークノード間での、通信と命令のうちの少なくとも１つの移送を支えるよう機能する。アウトオブバンド方式通信ネットワーク１２４の例は、ローカルエリアネットワーク（ＬＡＮ）あるいは他の送信制御プロトコル／インターネットプロトコル（ＴＣＰ／ＩＰ）ネットワークを含む。概して、アウトオブバンドネットワーク１２４は、様々なノードや他のデバイスを、ウェブブラウザのような統一されたユーザインターフェイスを通じて相互接続させる能力を特徴とする。更に、アウトオブバンド方式通信ネットワーク１２４は、ＴＣＰ／ＩＰを通じて、全体的あるいは大きく広がった第１データストレージシステム１０４と第２データストレージシステム１０８の管理のための可能性を提供する。
【００１４】
全ての電子データシステムノードあるいはコンピュータ１０４，１０８，１１２および１１６は、インバンド方式ネットワーク１２０とアウトオブバンド方式ネットワーク１２４の両方を通じて、全ての他のノードあるいはデバイスに相互接続される必要はない。例えば、アウトオブバンド方式通信ネットワーク１２４を通じて、ホストコンピュータ１１２と他のデバイス１０４，１０８，１１６との間の相互接続が禁止されていなかったとしても、ホストコンピュータ１１２は、アウトオブバンド方式通信ネットワーク１２４を通じて、他のいかなるホストコンピュータ１１２、第１データストレージシステム１０４、第２データストレージシステム１０８、あるいは管理コンピュータ１１６に、相互接続される必要はない。他の例として、そのような相互接続は必要なかったとしても、管理コンピュータ１１６は、アウトオブバンド方式通信ネットワーク１２４を通じて、少なくとも１つのストレージシステム（第１データストレージシステム１０４あるいは第２データストレージシステム１０８）に相互接続されても良い。管理コンピュータ１１６はまた、インバンド方式ネットワーク１２０に直接相互接続されても良い。例えば、直接接続の代りに、管理コンピュータ１１６は、インバンド方式ネットワーク１２０を使って、第１データストレージシステム１０４と第２データストレージシステム１０８のコントローラに通信しても良い。
【００１５】
概して、アプリケーションプログラムが第１データストレージシステム１０４と第２データストレージシステム１０８の管理あるいはその他に関係するか否かにかかわらず、ホストコンピュータ１１２は、アプリケーションプログラム実行性能に関連して、１つ以上の第１データストレージシステム１０４および第２データストレージシステム１０８と、データストレージシステムの交換を行う。更に、電子データシステム１００は、複数のホストコンピュータ１１２を含んでも良い。管理コンピュータ１１６は、第１データストレージシステム１０４と第２データストレージシステム１０８の処理の態様を制御するためのユーザインターフェイスを提供しても良い。管理コンピュータ１１６は、第１データストレージシステム１０４と第２データストレージシステム１０８に直接、あるいは／またはバスまたはネットワーク１２０および／またはネットワーク１２４を通じて、相互接続されても良い。本発明のその他の実施例にしたがって、管理コンピュータ１１６は、ホストコンピュータ１１２に統合されても良い。更に、複数の管理コンピュータ１１６は、電子データシステム１００の一部として提供されても良い。更に、ただ２つのデータストレージシステム（第１データストレージシステム１０４と第２データストレージシステム１０８）が図１に示されているが、電子データシステム１００は、３つ以上のデータストレージシステムを含んでも良い。代替的に、電子データシステム１００は、ただ１つのデータストレージシステムを含んでも良い。
【００１６】
第１データストレージシステム１０４と第２データストレージシステム１０８は、各々が１つ以上のストレージデバイスを含む複数のエンクロージャを有しても良い。例えば、図２は、本発明のうちの少なくともいくつかの実施例にしたがって、ヘッドエンクロージャとしてＲＡＩＤエンクロージャ２０４を有する第１データストレージシステム１０４と第２データストレージシステム１０８を描写する。ＲＡＩＤエンクロージャ２０４は、拡張ケーブル２１６を通じて、多数の追加の第１ＪＢＯＤエンクロージャ２０８ａからＮ番目のＪＢＯＤエンクロージャ２０８Ｎまでに接続されている。ＪＢＯＤエンクロージャ２０８がＲＡＩＤエンクロージャ２０４内でコントローラ６１２に対して配置される順はまた、ここではケーブル接続順あるいはデータストレージシステムトポロジとして参照される。１つの実施例では、ＲＡＩＤエンクロージャ２０４に直接接続された第１ＪＢＯＤエンクロージャ２０８ａは、ケーブル接続順では最初である。順番は、第１ＪＢＯＤエンクロージャ２０８ａに直接接続された第２ＪＢＯＤエンクロージャ２０８ｂについては、ケーブル接続順では２番目である。ケーブル接続順の決定は、Ｎ番目のＪＢＯＤエンクロージャ２０８Ｎに到達するまで、同様の形式で継続する。しかしながら、逆のケーブル接続順が第１ＪＢＯＤエンクロージャ２０８ａからＮ番目のＪＢＯＤエンクロージャ２０８Ｎまでの順を定義しても良いことを認めても良い。例えば、Ｎ番目のＪＢＯＤエンクロージャ２０８Ｎを、ケーブル接続順において第１と見なし、第１ＪＢＯＤエンクロージャ２０８ａを、ケーブル接続順の最後として見なしても良い。
【００１７】
エンクロージャ２０４，２０８のケーブル接続順は、ＲＡＩＤエンクロージャ２０４内の特別のコントローラ６１２が、それぞれ第１ＪＢＯＤエンクロージャ２０８ａからＮ番目のＪＢＯＤエンクロージャ２０８Ｎまで内の拡張装置２２８を検出する順によって定義されても良い。代替的には、ケーブル接続順は、コントローラ６１２が第１ＪＢＯＤエンクロージャ２０８ａからＮ番目のＪＢＯＤエンクロージャ２０８Ｎまで内の拡張装置２２８を検出する逆の順によって、定義されても良い。逆のケーブル接続順は、耐障害性ＳＡＳケーブルの仕組みを作製すべく提供される。言い換えると、エンクロージャＩＤの決定は、２つの互いに異なるケーブル接続順で行われる。一方は、他方の逆に並べられているということである。それ故、１つのコントローラが機能しなくなった場合でも、他のコントローラは、依然として、それ自身が有するエンクロージャＩＤの知見を用いてエンクロージャＩＤを識別できるのである。各コントローラ６１２は、割当アプリケーション２１２を、独立してケーブル接続順を決定するために、使用しても良い。１つの実施例によれば、コントローラ６１２は、エンクロージャ２０８を順方向から「検出する（ｖｉｅｗｓ）」方向でケーブル接続順を定義する一方で、もう一つのコントローラ６１２は、エンクロージャ２０８を逆方向から「検出する（ｖｉｅｗｓ）」方向でケーブル接続順を定義する。１つのコントローラ６１２によって検出された第１エンクロージャ２０８は、もう一つのコントローラ６１２によって検出された最後のエンクロージャ２０８に対応するため、各エンクロージャは、各割当アプリケーション２１２によって、同じエンクロージャＩＤで独立して識別される。コントローラ６１２が、エンクロージャＩＤのためにクエリ（質問）されるか否かにかかわらず、この識別は、ユーザに一貫性のある番号付けシステムを提供する。この識別は、更に、２つの互いに本質的に異なるケーブル接続順が使用可能である耐障害性ケーブルを提供する。例として、割当アプリケーション２１２は、ヘッドＲＡＩＤエンクロージャ２０４に、ゼロのエンクロージャＩＤを割当てても良い。
【００１８】
データシステム１００内の各ＲＡＩＤエンクロージャ２０４は、例えば、１つ以上の拡張ポートあるいは拡張装置２２４とともに、少なくとも２つのＩ／Ｏモジュール電子ボードを含んでも良い。特に、ＲＡＩＤエンクロージャ２０４は、それぞれ２つのＲＡＩＤ  Ｉ／Ｏモジュールを含んでも良い。その２つのモジュールは、故障の際に、耐障害性を提供すべく使用される。当業者によって理解されうるように、割当アプリケーション２１２は、各Ｉ／Ｏモジュールがそれぞれ互いに異なるコントローラ６１２に関連する各モジュール内に提供されても良い。ＲＡＩＤエンクロージャ２０４は、各々が互いに異なるコン
トローラ６１２に関連して、１つ以上の拡張ポートあるいは拡張装置２２４を含む拡張チャネル２２０を含んでも良い。より明確には、第１拡張ポート２２４ａが第１コントローラ６１２に関連する一方で、第２拡張ポート２２４ｂは、第２コントローラ６１２に関連していても良い。両方の拡張装置２２４は、しかしながら、共通の拡張チャネル２２０を共有する。
【００１９】
拡張装置２２４は、共に第１データストレージシステム１０４と第２データストレージシステム１０８に、様々なエンクロージャを接続する能力を提供するスイッチングデバイスのように振舞うビルディングブロックチップである。拡張装置２２４は、概して、２つ以上の外部拡張ポート４２４を含む。各拡張装置２２４は、管理のためのうちの少なくとも１つのターゲットポートを含む。例えば、拡張装置２２４は、周辺機器へのアクセスのためのシリアルＳＣＳＩプロトコルターゲットポートを含んでも良い。
【００２０】
第１ＪＢＯＤエンクロージャ２０８ａからＮ番目のＪＢＯＤエンクロージャ２０８Ｎまではまた、拡張用ハードウェアを含んでも良い。１つの実施例に従うと、各ＪＢＯＤエンクロージャ２０８は、第１のＩ／Ｏモジュール２２８ａと第２のＩ／Ｏモジュール２２８ｂを有していても良い。各Ｉ／Ｏモジュール２２８は、また、拡張ポートと称される入力ポート２３２と出力ポート２３６を含んでも良い。
【００２１】
拡張装置２２４あるいは拡張ポートは、ヘッドＲＡＩＤエンクロージャ２０４の各コントローラ６１２をＪＢＯＤエンクロージャ２０８に接続するために、使用される。第１拡張ポート２２４ａは、拡張ケーブル２１６を通じて、第１ＪＢＯＤエンクロージャ２０８ａ内の第１のＩ／Ｏモジュール２２８ａの入力ポート２３２に接続されても良い。第２拡張ポート２２４ｂは、拡張ケーブル２１６を通じて、第１ＪＢＯＤエンクロージャ２０８ａ内の第２のＩ／Ｏモジュール２２８ｂの入力ポート２３２に接続されても良い。追加拡張装置が望まれる場合、そこで、第１ＪＢＯＤエンクロージャ２０８ａ内の第１のＩ／Ｏモジュール２２８ａの出力ポート２３６は、第１のＩ／Ｏモジュール２２８ａの入力ポート２３２に接続されても良い。同様に、第１ＪＢＯＤエンクロージャ２０８ａ内の第２のＩ／Ｏモジュール２２８ｂの出力ポート２３６は、第２ＪＢＯＤエンクロージャ２０８ｂ内の第２のＩ／Ｏモジュール２２８ｂの入力ポート２３２に接続されても良い。この一連の拡張は、Ｎ番目のＪＢＯＤエンクロージャ２０８Ｎまで継続しても良い。
【００２２】
ＲＡＩＤエンクロージャ２０４内のコントローラ６１２によって検出されるように、第１拡張装置あるいは第１のＩ／Ｏモジュール２２８ａを有しても良い第１ＪＢＯＤエンクロージャ２０８ａには、１に等しいエンクロージャＩＤを与えられても良い。割当アプリケーション２１２は、ケーブル接続順にしたがってエンクロージャＩＤを１だけ増加するように割当て続けても良い。ケーブル接続順に基づくエンクロージャＩＤの割当は、各エンクロージャ２０４，２０８に、エンクロージャ２０４，２０８の位置を識別するのに使用され得る論理的エンクロージャＩＤを提供する。
【００２３】
ここで図３を参照すると、ヘッドエンクロージャとして第１ＪＢＯＤエンクロージャ３０８ａを有する第１データストレージシステム１０４と第２データストレージシステム１０８は、本発明のうちの少なくともいくつかの実施例に従って、描写されている。ＪＢＯＤエンクロージャ２０８，３０８は、概して、コントローラ機能は含んでいない。したがって、ＪＢＯＤエンクロージャ２０８，３０８は、エンクロージャトポロジを解析する能力と、エンクロージャのケーブル接続順を決定する能力とを有していない。当然、ＪＢＯＤエンクロージャ２０８，３０８は、典型的にはエンクロージャＩＤを割当てることができないという結果となる。それ故、排他的に第１ＪＢＯＤエンクロージャ３０８ａからＮ番目のＪＢＯＤエンクロージャ３０８Ｎまでを有する第１データストレージシステム１０４と第２データストレージシステム１０８において、ホストシステム３０４は、エンクロ
ージャ３０８にエンクロージャＩＤを割当てるために、割当アプリケーション２１２を使用する。ホストシステム３０４は、ホストコンピュータ１１２、管理コンピュータ１１６、あるいはプロセッサを有する同じようなデバイスを含んでも良い。
【００２４】
ホストシステム３０４は、拡張ケーブル２１６を通じて、第１ＪＢＯＤエンクロージャ３０８ａからＮ番目のＪＢＯＤエンクロージャ３０８Ｎへと接続されている。本発明の１つの実施例によれば、ホストシステム３０４は、１以上の拡張ポート３２４を含む拡張チャネル３２０を通じて、拡張ケーブル２１６へと接続する。第１拡張ポート３２４ａは、第１拡張装置コントローラに関連する一方で、第２拡張ポート３２４ｂは、第２拡張装置コントローラに関連する。
【００２５】
第１ＪＢＯＤエンクロージャ３０８ａからＮ番目のＪＢＯＤエンクロージャ３０８Ｎまではまた、それぞれ拡張用ハードウェアを含んでも良い。１つの実施例によれば、各ＪＢＯＤエンクロージャ３０８は、図２に関連して前述された、第１ＪＢＯＤエンクロージャ２０８ａからＮ番目のＪＢＯＤエンクロージャ２０８Ｎまでの拡張装置用ハードウェアと同様のハードウェアを有していても良い。
【００２６】
ホストシステム３０４の各拡張ポート３２４は、ホストシステム３０４をＪＢＯＤエンクロージャ３０８に接続するのに使用される。第１拡張ポート３２４ａは、拡張ケーブル２１６を通じて、第１ＪＢＯＤエンクロージャ３０８ａ内の第１のＩ／Ｏモジュール２２８ａの入力ポート２３２に接続されても良い。第２拡張ポート２２４ｂは、拡張ケーブル２１６を通じて、第１ＪＢＯＤエンクロージャ３０８ａ内の第２のＩ／Ｏモジュール２２８ｂの入力ポート２３２に接続されても良い。更なる拡張が望まれる場合は、そこで第１ＪＢＯＤエンクロージャ３０８ａ内の第１のＩ／Ｏモジュール２２８ａの出力ポート２３６は、第２ＪＢＯＤエンクロージャ３０８ｂ内の第１のＩ／Ｏモジュール２２８ａの入力ポート２３２に接続されても良い。同様に、第１ＪＢＯＤエンクロージャ３０８ａ内の第２のＩ／Ｏモジュール２２８ｂの出力ポート２３６は、第２ＪＢＯＤエンクロージャ３０８ｂ内の第２のＩ／Ｏモジュール２２８ｂの入力ポート２３２に接続されても良い。この一連の拡張は、Ｎ番目のＪＢＯＤエンクロージャ３０８Ｎまで、継続しても良い。第１ＪＢＯＤエンクロージャ３０８ａからＮ番目のＪＢＯＤエンクロージャ３０８Ｎまでのケーブル接続順は、典型的にはホストシステム３０４に関連して定義される。例えば、ホストシステム３０４に接続された第１ＪＢＯＤエンクロージャ３０８ａは、典型的にはケーブル接続順においては第１と見なされる。第１ＪＢＯＤエンクロージャ３０８ａに接続された第２ＪＢＯＤエンクロージャ３０８ｂは、通常はケーブル接続順の２番目として定義される。もちろん、ケーブル接続順は、ホストシステム３０４に関連して逆となっても良い（すなわち、Ｎ番目のＪＢＯＤエンクロージャ３０８Ｎが、ケーブル接続順においては第１と考えられ、第１ＪＢＯＤエンクロージャ３０８ａは、ケーブル接続順においては最後と考えられても良い）。
【００２７】
１つの実施例では、割当アプリケーション２１２は、ケーブル接続順に基づき、第１データストレージシステム１０４と第２データストレージシステム１０８内のそれぞれ第１ＪＢＯＤエンクロージャ３０８ａからＮ番目のＪＢＯＤエンクロージャ３０８ＮまでにエンクロージャＩＤを割当てるために、使用される。好ましい実施例では、第１ＪＢＯＤエンクロージャ３０８ａからＮ番目のＪＢＯＤエンクロージャ３０８Ｎまでには、ケーブル接続順に伴って１だけ増加するエンクロージャＩＤが割当てられる。言い換えれば、第１ＪＢＯＤエンクロージャ３０８ａには、最小のエンクロージャＩＤ（例えば、ゼロ）が割当てられ、第２ＪＢＯＤエンクロージャ３０８ｂには、次に最小のエンクロージャＩＤ（例えば、１）が割当てられ、全てのＪＢＯＤエンクロージャ３０８にエンクロージャＩＤが割当てられるまで継続される。しかしながら、代替の実施例では、第１ＪＢＯＤエンクロージャ３０８ａからＮ番目のＪＢＯＤエンクロージャ３０８Ｎまでには、ケーブル接続
順とともに１ずつ減少するエンクロージャＩＤが割当てられる。実例的には、第１ＪＢＯＤエンクロージャ３０８ａには、最大のエンクロージャＩＤ（例えば、Ｎ−１）が割当てられ、第２エンクロージャ３０８ｂには、次に最大のエンクロージャＩＤ（例えば、Ｎ−２）が割当てられ、全てのＪＢＯＤエンクロージャ３０８が一意的なエンクロージャＩＤを有するまで継続される。
【００２８】
図４は、本発明のうちの少なくともいくつかの実施例にしたがって、ＪＢＯＤエンクロージャ４１６，４２０の複数のドメイン４１２を有する第１データストレージシステム１０４と第２データストレージシステム１０８を描写する。複数のドメインの実施例では、ヘッド端末４０４（例えば、ＲＡＩＤエンクロージャ２０４）は、第１ＪＢＯＤエンクロージャ４１６ａからＮ番目のＪＢＯＤエンクロージャ４１６Ｎまでや、第１ＪＢＯＤエンクロージャ４２０ａからＭ番目のＪＢＯＤエンクロージャ４２０Ｍまでの互いに異なるドメイン４１２に接続する各コントローラ６１２からの拡張装置４２４を含む１以上の拡張チャネル４０８ａ，４０８ｂを有する。第１拡張チャネル４０８ａは、第１ドメイン４１２ａ内のＪＢＯＤエンクロージャ４１６に接続するための第１および第２コントローラ６１２からの拡張装置４２４を含んでも良い。第２拡張チャネル４０８ｂは、第２ドメイン４１２ｂにおいてＪＢＯＤエンクロージャ４２０に接続するための拡張装置４２４を含んでも良い。ＲＡＩＤエンクロージャおよびＪＢＯＤエンクロージャ内の拡張用ハードウェア（例えば、拡張チャネル４０８、拡張ポート４２４、Ｉ／Ｏモジュール２２８、入力ポート２３２および出力ポート２３６）は、多量のエンクロージャ内に分散されても良い多量のストレージデバイス同士の間の通信を促進するために、実質的に使用される。
【００２９】
割当アプリケーション２１２は、第１データストレージシステム１０４と第２データストレージシステム１０８内の各エンクロージャ２０４，４１６，４２０に、一意的なエンクロージャＩＤを割当てる。１つの実施例では、一意的なエンクロージャＩＤは、第１データストレージシステム１０４と第２データストレージシステム１０８とのトポロジに基づき、割当てられる。例えば、ＲＡＩＤエンクロージャ２０４には、最大（あるいは最小）のエンクロージャＩＤが割当てられても良い。次に最小（あるいは次に最大）のエンクロージャＩＤは、第１ドメイン４１２ａ内の第１ＪＢＯＤエンクロージャ４１６ａに割当てられても良い。その後、その次に最小（あるいはその次に最大）のエンクロージャＩＤは、第１ドメイン４１２ａ内の第２ＪＢＯＤエンクロージャ４１６ｂに割当てられても良い。第１ドメイン４１２ａ内の全てのエンクロージャ４１６には、第２ドメイン４１２ｂ内のエンクロージャ４２０がエンクロージャＩＤを受信する前に、エンクロージャＩＤを割当てられても良い。エンクロージャＩＤを割当てるこの特別なパターンは、深さ優先割当手法（ｄｅｐｔｈ  ｆｉｒｓｔ  ａｓｓｉｇｎｍｅｎｔ  ｍｅｔｈｏｄｏｌｏｇｙ）と称される。本発明の他の実施例によると、幅優先割当手法（ｂｒｅａｄｔｈ  ｆｉｒｓｔ
ａｓｓｉｇｎｍｅｎｔ  ｍｅｔｈｏｄｏｌｏｇｙ）が使用されても良い。幅優先割当手法では、ＲＡＩＤエンクロージャ２０４には、依然として最小（あるいは最大）のエンクロージャＩＤが割当てられても良く、第１ドメイン４１２ａにおける第１ＪＢＯＤエンクロージャ４１６ａは、依然として次に最小（あるいは次に最大）のエンクロージャＩＤを受信しても良い。しかしながら、次に最小（あるいは次に最大）のエンクロージャＩＤは、そこで第２ドメイン４１２ｂ内の第１ＪＢＯＤエンクロージャ４２０ａに割当てられても良い。エンクロージャＩＤの割当は、そこで特別のＪＢＯＤエンクロージャ４１６，４２０がどれくらいヘッド端末４０４に近いかに基づき、連続して実行される。
【００３０】
さらなる他の実施例では、エンクロージャＩＤは、互いに異なるドメインに属するＪＢＯＤエンクロージャ４１６，４２０を一意的に識別するために、生成されても良い。例えば、エンクロージャＩＤは、ヘッド端末４０４へのエンクロージャの近さに基づき、各ＪＢＯＤエンクロージャ４１６，４２０に、１だけ増加するように割当てられても良い。一意的な識別子は、基準となる識別子から始まり、１だけ増加する英数字でも良い。例とし
て、一意的な番号の識別子（例えば、０，１，２，・・・，ｎ）が割当てられても良い。
【００３１】
理解されうるように、ホストシステム３０４は、割当アプリケーション２１２を、描写されたＲＡＩＤエンクロージャ２０４の代りに実行するために、使用されても良い。各ＪＢＯＤエンクロージャ４１６，４２０に割当てられたエンクロージャＩＤは、ＲＡＩＤエンクロージャ２０４あるいはホストシステム３０４が利用されるか否かに依存して、変化するであろう。例えば、ＲＡＩＤエンクロージャ２０４が利用された場合、そこでＲＡＩＤエンクロージャ２０４はまた、その割当てられたエンクロージャＩＤを必要とするであろう。そのエンクロージャ２０４は、どのエンクロージャＩＤがＪＢＯＤエンクロージャ４１６，４２０に割当てられるかに結局のところ影響するであろう。代替的に、ホストシステム３０４が利用された場合、そこで割当アプリケーション２１２は、エンクロージャＩＤを単にＪＢＯＤエンクロージャ４１６，４２０に割当てる必要があるだけであろう。
【００３２】
当業者にとって、第１データストレージシステム１０４と第２データストレージシステム１０８は、０，１あるいは複数のＲＡＩＤエンクロージャ２０４を含んでも良いことが、理解されうる。上述したように、ＪＢＯＤエンクロージャ４１６，４２０は、ヘッドエンクロージャとして使用されても良い。他の実施例では、ＲＡＩＤエンクロージャ２０４は、ヘッドエンクロージャとして利用されても良い。他のＲＡＩＤエンクロージャ２０４は、そのような構成は必要ではないが、ヘッドＲＡＩＤエンクロージャ２０４に、直接あるいは間接的に接続されても良い。
【００３３】
図５は、本発明のうちの少なくともいくつかの実施例にしたがって、複数ドメインの延長あるいは、ツリートポロジの第１データストレージシステム１０４と第２データストレージシステム１０８を描写する。ツリートポロジは、ヘッド端末５０４（例えば、ＲＡＩＤエンクロージャ２０４あるいはホストシステム３０４）に接続された、多数の互いに異なる第１ドメイン５０８ａから第３ドメイン５０８ｃまでを概して含む。第１ドメイン５０８ａあるいは第２ドメイン５０８ｂといったいくつかのドメインは、ヘッド端末５０４に直接接続されても良い。一方で、他のドメインは、分割エンクロージャ５１６（５０６）を通じて、ヘッド端末５０４に接続されても良い。各ドメインは、互いに異なる番号のＪＢＯＤエンクロージャを有しても良い。例えば、第１ドメイン５０８ａは、第１エンクロージャ５０８ａからＮ番目のエンクロージャ５０８Ｎまでを含んでも良く、第２ドメイン５０８ｂは、エンクロージャ５１６（５０６）と、エンクロージャ５２０ａからＭ番目のエンクロージャ５２０Ｍを含んでも良く、第３ドメイン５０８ｃは、エンクロージャ５２４ａからＬ番目のエンクロージャ５２４Ｌを含んでも良い。もちろん、ドメインのより大きいあるいはより小さい番号は、第１データストレージシステム１０４と第２データストレージシステム１０８に含まれても良く、各ドメインは、１以上のエンクロージャを有していても良い。
【００３４】
割当アプリケーション２１２は、エンクロージャＩＤを、前述の幅優先割当手法あるいは深さ優先割当手法において割当てても良い。代替の実施例では、ドメイン識別子およびエンクロージャ識別子は、エンクロージャＩＤを形成するのに組合わされても良い。相違は、分割エンクロージャ５１６にエンクロージャＩＤを割当てると発生しても良い。分割エンクロージャ５１６は、第２ドメイン５０８ｂあるいは第３ドメイン５０８ｃに割当てられても良い。分割エンクロージャ５１６のドメインへの割当は、任意でありうる。しかしながら、分割エンクロージャ５１６が割当てられるドメインは、分割エンクロージャ５１６に接続された次のエンクロージャに割当てられるエンクロージャＩＤに影響するであろう。例えば、分割エンクロージャ５１６が第２ドメイン５０８ｂに割当てられた場合、そこで分割エンクロージャ５１６は、〔２．０〕というエンクロージャＩＤを受信しても良い。ＪＢＯＤエンクロージャ５２０ａには、〔２．１〕というエンクロージャＩＤが割当てられる結果となる。また、ＪＢＯＤエンクロージャ５２４ａには、〔３．０〕という
エンクロージャＩＤが割当てられることとなる。代替的に、分割エンクロージャ５１６（５０６）が第３ドメイン５０８ｃに割当てられた場合、分割エンクロージャ５１６には〔３．０〕というエンクロージャＩＤが割当てられても良い。ＪＢＯＤエンクロージャ５２０ａは、第２ドメイン５０８ｂにおいて、エンクロージャＩＤを割当てられる第１エンクロージャである。よって、第３ドメイン５０８ｃに分割エンクロージャ５１６が割当てられた場合には、ＪＢＯＤエンクロージャ５２０ａは、〔２．０〕というエンクロージャＩＤを受信することとなる。ＪＢＯＤエンクロージャ５２４ａは、その場合には、第３ドメイン５０８ｃにおいてエンクロージャＩＤが割当てられる第２エンクロージャとなり、したがって〔３．１〕というエンクロージャＩＤを受信することとなる。
【００３５】
図６は、本発明の実施例にしたがって、ＲＡＩＤエンクロージャ２０４内に含まれる構成要素を図解する。ＲＡＩＤエンクロージャ２０４は、概して１つ以上のストレージデバイス６０４とデータフローを、ストレージデバイス６０４へと向けるためのうちの少なくとも１つのコントローラ６１２を有する。ＲＡＩＤエンクロージャ２０４のコントローラ６１２はまた、図２、図４、図５に示されるように、割当アプリケーション２１２を含んでも良い。割当アプリケーション２１２は、各エンクロージャ２０４，２０８にエンクロージャＩＤを割当てる能力がある。１つの実施例では、割当アプリケーション２１２は、ケーブル接続順あるいは第１データストレージシステム１０４と第２データストレージシステム１０８とのトポロジに基づき、エンクロージャＩＤを割当てる。
【００３６】
概して、ＲＡＩＤエンクロージャ２０４は、大量のストレージデバイス６０４を含む。ストレージデバイス６０４の例は、ＳＡＴＡ，ＳＣＳＩ，ＳＣＳＩ（ＳＡＳ），ＦＣあるいはＰＡＴＡハードディスクドライブといったハードディスクドライブを含む。ストレージデバイス６０４の他の例は、磁気テープストレージデバイス、オプティカルストレージデバイスあるいはＳＳＤデバイスを含む。更に、大量のストレージデバイス６０４が図解されたが、本発明の実施例は、任意の数のストレージデバイス６０４に限定されるものではなく、より少ない、あるいはより多いストレージデバイス６０４は、ＲＡＩＤエンクロージャ２０４の一部として提供されても良いことを、理解すべきである。１つの実施例では、ＲＡＩＤエンクロージャ２０４内の各ストレージデバイス６０４には、一意的なデバイス識別子が割当てられ、そのデバイス識別子は、エンクロージャＩＤとそのデバイスＩＤの組合せでも良い。当業者によって理解されうるように、１つ以上のアレイと１つ以上のアレイパーティションのうちの少なくとも１つは、これ以降はストレージボリュームを有するＬＵＮ（論理ユニット番号）と称され、データストレージデバイス６０４上に設置されても良い。当業者にとって更に理解されうるように、ＬＵＮは、１つ以上のストレージデバイス６０４上に第１データストレージシステム１０４と第２データストレージシステム１０８を保存するための様々なアレイレベルあるいは他の配置何れか一つにしたがって、実行されても良い。
【００３７】
本発明の実施例にしたがって、ＲＡＩＤエンクロージャ２０４は、第１コントローラスロット６０８ａとともに提供されても良い。更に、他の実施例は、第２コントローラスロット６０８ｂのような追加コントローラスロットを含んでも良い。当業者にとって理解されうるように、コントローラスロット６０８は、ＲＡＩＤエンクロージャ２０４の他の構成要素に処理可能に相互接続されたコントローラ６１２を有効にするための、接続あるいは一連の接続を有していても良い。更に、本発明の実施例にしたがって、ＲＡＩＤエンクロージャ２０４は、少なくとも１つのコントローラ６１２を含む。例えば、ＲＡＩＤエンクロージャ２０４は、非フェイルオーバモードにおいて単一のコントローラによって処理される一方で、ＲＡＩＤエンクロージャ２０４は、ただ１つのコントローラ６１２を含んでも良い。本発明の他の実施例によれば、ＲＡＩＤエンクロージャ２０４は、第２コントローラ６１２ｂを提供することによって、２重冗長アクティブ−アクティブコントローラモードで処理されても良い。第２コントローラ６１２ｂが第１コントローラ６１２ａに加
えて使用された場合、第２コントローラスロット６０８ｂは、第２コントローラ６１２ｂを受入れる。当業者によって理解されうるように、２つのコントローラ６１２ａ，６１２ｂの提供により、２重冗長アクティブ−アクティブコントローラモードの場合は、データがコントローラ６１２ａ，６１２ｂ間でミラーリングが許可される。
【００３８】
１つ以上のバスあるいは１つ以上のチャネル６１６は、関連コントローラスロットあるいは複数の関連コントローラスロット６０８を通じて、ストレージデバイス６０４に、コントローラあるいは複数のコントローラ６１２を相互接続するために、概して提供される。チャネル６１６は、ユーザデータをストレージデバイス６０４へ、またはストレージデバイス６０４から転送するために、概して使用される。更に、データ転送のために使用される１つのラインとして図解されているように、大量の専用バスあるいは専用チャネルが、提供されていても良いことが理解されうる。例えば、ＳＡＳにおいて、ポイント・ツー・ポイントトポロジは、データ転送のために使用される。しかしながら、先行技術で知られた他のタイプのデータバスが、使用されても良い。ＲＡＩＤエンクロージャ２０４に含まれても良い追加の構成要素は、１つ以上の電源供給源６２４と１つ以上の冷却ユニット６２８を含む。加えて、バスあるいはネットワークインターフェイス６２０は、ＲＡＩＤエンクロージャ２０４をホストコンピュータ１１２あるいは管理コンピュータ１１６に相互接続するために、提供されても良い。
【００３９】
上述のように、ＲＡＩＤエンクロージャ２０４は、第１データストレージシステム１０４と第２データストレージシステム１０８内の他のエンクロージャとの通信を容易にするために、１つ以上の拡張装置４０８を含んでも良い。拡張装置４０８は、コントローラ６１２とバスのうち少なくとも１つの一部として、あるいはネットワークインターフェイス６２０の一部として、含まれていても良い。
【００４０】
ストレージコントローラ６１２は、本発明の実施例にしたがって、様々なコントローラ６１２の機能を遂行、実行あるいは制御するための命令を実行可能なプロセッササブシステム６１４を、更に含んでも良い。そのような命令は、第１データストレージシステム１０４と第２データストレージシステム１０８とのトポロジあるいはケーブル接続順を識別するため、および該トポロジとケーブル接続順に基づき、エンクロージャＩＤを割当てるための命令を含んでも良い。更に、そのような命令は、例えばコントローラ６１２の一部として提供されたメモリ６１８内に、ソフトウェアとファームウェアのうちのうちの少なくとも１つとして保存されても良い。当業者にとって理解されうるように、パリティデータの生成に関する操作あるいはその他の操作は、プロセッササブシステムの一部として提供された１つ以上のハードウェアに組み込まれた論理回路と１つ以上のプログラマブル論理回路のうち少なくとも１つを用いて、実行されても良い。したがって、プロセッササブシステムは、１つ以上の論理回路に組合わされた１つ以上のプログラマブルプロセッサのような、大量の分散された構成要素として実行されても良い。プロセッササブシステムはまた、１つ以上の集積デバイスあるいは１つ以上のプロセッサとして、含まれたり、実行されたりしても良い。例えば、プロセッササブシステムは、ＣＰＬＤ（ｃｏｍｐｌｅｘ  ｐｒｏｇｒａｍｍａｂｌｅ  ｌｏｇｉｃ  ｄｅｖｉｃｅ）を有していても良い。
【００４１】
ＲＡＩＤエンクロージャ２０４はまた、メモリ６３２を概して含む。メモリ６３２は、何れの特別な型のメモリに特に限定されるわけではない。例えば、メモリ６３２は、１つあるいは複数のフラッシュメモリデバイスを有していても良い。更に、メモリ６３２は、互いに分離された不揮発性メモリ部と揮発性メモリ部を含んでも良い。揮発性メモリの例には、ＤＲＡＭとＳＤＲＡＭが含まれる。不揮発性メモリの例には、コンパクトフラッシュ（登録商標）やその他の基準化された不揮発性メモリデバイスが含まれるが、コンパクトフラッシュ（登録商標）やその他の基準化された不揮発性メモリデバイスに限定されるわけではない。メモリ６３２は、割当アプリケーション２１２のようなストレージコント
ローラ６１２によって実行されるための命令を保存するために、使用されても良い。加えて、メモリ６３２は、第１データストレージシステム１０４と第２データストレージシステム１０８内のその他のエンクロージャに割当てられた追加のエンクロージャＩＤばかりでなく、ＲＡＩＤエンクロージャ２０４に割当てられたエンクロージャＩＤを保存するために、使用されても良い。
【００４２】
１つの実施例では、エンクロージャＩＤは、パワーサイクルの変化にも持続できるように、要求されても良い。したがって、割当アプリケーション２１２が、エンクロージャＩＤを第１データストレージシステム１０４と第２データストレージシステム１０８内のエンクロージャに割当てた後に、エンクロージャＩＤの割当は、第１コントローラ６１２ａと第２コントローラ６１２ｂの両方にアクセス可能であるメモリ６３２内で維持されても良い。代替的には、エンクロージャＩＤの割当は、コントローラ６１２内のフラッシュメモリ内に維持されても良い。もちろん、その他の実施例では、第１データストレージシステム１０４と第２データストレージシステム１０８内の各エンクロージャは、それ自身のエンクロージャＩＤを記録する。１つの実施例では、エンクロージャＩＤは、揮発性メモリ内に保存されても良い。揮発性メモリ内にエンクロージャＩＤを保存することは、システム管理者がエンクロージャの電源をオフにすることによってシステムのエンクロージャＩＤをリセットすることを可能にする。リブートにあたって、割当アプリケーション２１２は、第１データストレージシステム１０４と第２データストレージシステム１０８とのトポロジあるいは接続順を識別し、元のトポロジあるいは元のチェーン接続順（ケーブル接続順）と同じ、あるいは互いに異なる新たなトポロジあるいはチェーン接続順にしたがって、エンクロージャＩＤを再割当てしても良い。
【００４３】
ＲＡＩＤエンクロージャ２０４はまた、ＲＡＩＤエンクロージャ２０４に割当てられたエンクロージャＩＤを表示するための表示デバイス６３６を含んでも良い。１つの実施例では、表示デバイス６３６は、バスあるいはチャネル６１６に接続された電子ディスプレイを含んでも良い。ＲＡＩＤエンクロージャ２０４に割当てられたエンクロージャＩＤは、バスあるいはチャネル６１６を通じて、コントローラ６１２あるいはメモリ６３２から表示デバイス６３６に送信され、表示デバイス６３６上に自動的に表示される。適切な表示デバイスの例としては、それらに制限されることはないが、ＬＥＤディスプレイや、液晶表示ディスプレイなどが含まれる。１つの実施例では、ＲＡＩＤエンクロージャ２０４がそれ自身と似たようなエンクロージャを有するラック（棚）中に取付けられた際に、ＩＤが見えるように、表示デバイス６３６は、ＲＡＩＤエンクロージャ２０４の「耳部（ｅａｒ）」に配置された２桁の７セグメントＬＥＤを有する。表示デバイス６３６をエンクロージャ上の目立つ位置に配置することは、エンクロージャＩＤの簡単な識別を可能とする。ＲＡＩＤエンクロージャ２０４に現在割当てられたエンクロージャＩＤがない場合、その時には表示デバイス６３６は、何も表示しなくても良い（例えば、ＲＡＩＤエンクロージャ２０４の電源がオフにされた場合）。代替的には、ＲＡＩＤエンクロージャ２０４に、エンクロージャＩＤが割当てられてない場合に、ＲＡＩＤエンクロージャ２０４は、通常使用されない（例えば、‘Ｆ’）のデフォルト値を表示しても良い。表示デバイス６３６はまた、ＲＡＩＤエンクロージャ２０４内に保存されたストレージデバイス６０４のための一意的なデバイス識別子を表示するために、適合されても良い。このことは、不良ストレージデバイスの位置を特定するのに有用である。
【００４４】
当業者によって理解されうるように、拡張装置４２４は、例えば図４に描写されているような拡張ケーブル２１６を通じて、追加のエンクロージャに接続される。描写されたデータバス６１６は、ユーザデータを伝送するために、概して使用される。そのような実施例は描写されてはいないが、ストレージデバイス６０４は、一般的にはデュアルポートであることを記しておくべきである。例えば、ＳＡＳストレージデバイス６０４は、デュアルポートの保有能力を暗に提供する一方、ＳＡＴＡストレージデバイス６０４は、アクテ
ィブ−アクティブＳＡＴＡ ＭＵＸチップを通じて、デュアルポートの保有能力を提供す
る。
【００４５】
図７は、本発明のうちの少なくともいくつかの実施例にしたがって、ＪＢＯＤエンクロージャ３０４の例を、描写する。ＪＢＯＤエンクロージャ３０４は、ＲＡＩＤエンクロージャ２０４との接続において記述されたストレージデバイス６０４と同様のストレージデバイス７０４を、典型的には含む。ＪＢＯＤエンクロージャ３０４は更に、第１データストレージシステム１０４と第２データストレージシステム１０８内のその他のエンクロージャに接続するためのバスあるいはネットワークインターフェイス７０８を含む。バスあるいはネットワークインターフェイス７０８は、第１データストレージシステム１０４と第２データストレージシステム１０８内のその他のエンクロージャとの通信を提供する１つ以上の拡張装置４０８を含む。拡張装置４０８はまた、第１データストレージシステム１０４と第２データストレージシステム１０８とのトポロジあるいはケーブル接続順の識別中に、使用されても良い。１つ以上のバスあるいは１つ以上のチャネル７１０は、バスあるいはネットワークインターフェイス７０８あるいは拡張装置４０８をストレージデバイス７０４に相互接続させるために、概して提供される。
【００４６】
１つの実施例では、ＪＢＯＤエンクロージャ３０４は更に、メモリ７１２を含む。メモリ７１２は、ＲＡＩＤエンクロージャ２０４のメモリ６３２と同様の、揮発性メモリと不揮発性メモリのうち少なくとも１つを有していても良い。メモリ７１２は、ＪＢＯＤエンクロージャ３０４に割当てられたエンクロージャＩＤを保存するために、使用される。割当アプリケーション２１２が、エンクロージャＩＤを様々なＪＢＯＤエンクロージャ３０４に割当てると、割当アプリケーション２１２は、それらのエンクロージャＩＤをエンクロージャに送信しても良い。エンクロージャＩＤは、バスあるいはネットワークインターフェイス７０８内の拡張装置４０８によって受信され、バス７１０を通じて局所的保存のためにメモリ７１２に移送される。
【００４７】
ＪＢＯＤエンクロージャ３０４は更に、エンクロージャＩＤと一意的ストレージデバイス７０４のＩＤのうち少なくとも１つを表示するための表示デバイス７１６を含んでも良い。表示デバイス７１６は、ＲＡＩＤエンクロージャ２０４の表示デバイス６３６と同様である。そこでは、表示デバイス７１６は、エンクロージャＩＤを受信し、如何なるユーザの支援を必要とすることなく自動的にエンクロージャＩＤを表示しても良い。
【００４８】
図８は、本発明のうちの少なくともいくつかの実施例にしたがって、一連のエンクロージャ２０４、３０４におけるストレージデバイス６０４，７０４のドライブスロットを描写する。エンクロージャ２０４，３０４は、第１列８０４ａから第４列８０４ｄ、および第１行８０８ａから第３行８０８ｃ内に保存されたストレージデバイス６０４，７０４を、概して有する。典型的なエンクロージャ２０４，３０４は、１２個のストレージデバイス６０４，７０４を保持し、したがって４つの列８０４および３つの行８０８を有するように、設計されても良い。しかしながら、エンクロージャ２０４，３０４は、描写されたよりもより多い、あるいはより少ない列や行を有していても良い。各ストレージデバイス６０４，７０４には、一意的なデバイスＩＤが割当てられても良い。一意的なデバイスＩＤは、ストレージデバイス６０４，７０４が配置されているスロットの位置と、ストレージデバイス６０４，７０４が属するエンクロージャ２０４、３０４のエンクロージャＩＤとに対応していても良い。例えば、０に等しいエンクロージャＩＤを有するエンクロージャのスロット０に配置されたストレージデバイス６０４，７０４は、〔０．００〕という一意的なデバイスＩＤを受信しても良い。１に等しいエンクロージャＩＤを有するエンクロージャの同じスロット位置（すなわち、スロット０）内のストレージデバイス６０４，７０４は、〔１．００〕という一意的なデバイスＩＤを受信しても良い。〔エンクロージャＩＤ．スロット番号／デバイス識別子〕という方法を用いて、３６個の全てのストレー
ジデバイス６０４，７０４に割当てられた一意的なデバイスＩＤを、以下に示す：
〔０．００〕−ヘッドエンクロージャ（エンクロージャＩＤ＝０）．スロット０
〔０．０１〕−ヘッドエンクロージャ（エンクロージャＩＤ＝０）．スロット１
〔０．０２〕−ヘッドエンクロージャ（エンクロージャＩＤ＝０）．スロット２
〔０．０３〕−ヘッドエンクロージャ（エンクロージャＩＤ＝０）．スロット３
〔０．０４〕−ヘッドエンクロージャ（エンクロージャＩＤ＝０）．スロット４
〔０．０５〕−ヘッドエンクロージャ（エンクロージャＩＤ＝０）．スロット５
〔０．０６〕−ヘッドエンクロージャ（エンクロージャＩＤ＝０）．スロット６
〔０．０７〕−ヘッドエンクロージャ（エンクロージャＩＤ＝０）．スロット７
〔０．０８〕−ヘッドエンクロージャ（エンクロージャＩＤ＝０）．スロット８
〔０．０９〕−ヘッドエンクロージャ（エンクロージャＩＤ＝０）．スロット９
〔０．１０〕−ヘッドエンクロージャ（エンクロージャＩＤ＝０）．スロット１０
〔０．１１〕−ヘッドエンクロージャ（エンクロージャＩＤ＝０）．スロット１１
〔１．００〕−ヘッドエンクロージャ（エンクロージャＩＤ＝１）．スロット０
〔１．０１〕−ヘッドエンクロージャ（エンクロージャＩＤ＝１）．スロット１
〔１．０２〕−ヘッドエンクロージャ（エンクロージャＩＤ＝１）．スロット２
〔１．０３〕−ヘッドエンクロージャ（エンクロージャＩＤ＝１）．スロット３
〔１．０４〕−ヘッドエンクロージャ（エンクロージャＩＤ＝１）．スロット４
〔１．０５〕−ヘッドエンクロージャ（エンクロージャＩＤ＝１）．スロット５
〔１．０６〕−ヘッドエンクロージャ（エンクロージャＩＤ＝１）．スロット６
〔１．０７〕−ヘッドエンクロージャ（エンクロージャＩＤ＝１）．スロット７
〔１．０８〕−ヘッドエンクロージャ（エンクロージャＩＤ＝１）．スロット８
〔１．０９〕−ヘッドエンクロージャ（エンクロージャＩＤ＝１）．スロット９
〔１．１０〕−ヘッドエンクロージャ（エンクロージャＩＤ＝１）．スロット１０
〔Ｎ．１１〕−ヘッドエンクロージャ（エンクロージャＩＤ＝Ｎ）．スロット１１
〔Ｎ．００〕−ヘッドエンクロージャ（エンクロージャＩＤ＝Ｎ）．スロット０
〔Ｎ．０１〕−ヘッドエンクロージャ（エンクロージャＩＤ＝Ｎ）．スロット１
〔Ｎ．０２〕−ヘッドエンクロージャ（エンクロージャＩＤ＝Ｎ）．スロット２
〔Ｎ．０３〕−ヘッドエンクロージャ（エンクロージャＩＤ＝Ｎ）．スロット３
〔Ｎ．０４〕−ヘッドエンクロージャ（エンクロージャＩＤ＝Ｎ）．スロット４
〔Ｎ．０５〕−ヘッドエンクロージャ（エンクロージャＩＤ＝Ｎ）．スロット５
〔Ｎ．０６〕−ヘッドエンクロージャ（エンクロージャＩＤ＝Ｎ）．スロット６
〔Ｎ．０７〕−ヘッドエンクロージャ（エンクロージャＩＤ＝Ｎ）．スロット７
〔Ｎ．０８〕−ヘッドエンクロージャ（エンクロージャＩＤ＝Ｎ）．スロット８
〔Ｎ．０９〕−ヘッドエンクロージャ（エンクロージャＩＤ＝Ｎ）．スロット９
〔Ｎ．１０〕−ヘッドエンクロージャ（エンクロージャＩＤ＝Ｎ）．スロット１０
〔Ｎ．１１〕−ヘッドエンクロージャ（エンクロージャＩＤ＝Ｎ）．スロット１１
代替的には、ストレージデバイス６０４，７０４は、スロット番号よりも、ストレージデバイス６０４，７０４が属する列と行に対応するデバイス識別子を受信しても良い。もちろん、複数のドメインの第１データストレージシステム１０４と第２データストレージシステム１０８とのトポロジが、割当アプリケーション２１２によって識別される場合には、一意的なデバイスＩＤはまた、ドメイン番号を含んでも良い。
【００４９】
第１表示デバイス６３６ａからＮ番目の表示デバイス６３６Ｎまでと，第１表示デバイス７１６ａからＮ番目の表示デバイス７１６Ｎまでは、エンクロージャＩＤを表示する各エンクロージャ２０４，３０４上に示される。上述のように、しかしながら、表示デバイス６３６，７１６はまた、エンクロージャ２０４，３０４内に取付けられた各ストレージデバイス６０４，７０４の一意的なデバイスＩＤを表示しても良い。例えば、表示デバイス６３６，７１６は、エンクロージャ上のスロットの配置を代表するよう配置された大量のＬＥＤを含んでも良く、各スロットは、スロット内に取付けられたストレージデバイス
６０４，７０４の一意的なデバイスＩＤを示すためのディスプレイを有していても良い。
【００５０】
ここで図９を参照して、最初の第１データストレージシステム１０４と第２データストレージシステム１０８とのトポロジあるいはケーブル接続順を識別する方法を、本発明のうちの少なくともいくつかの実施例にしたがって記述する。第１データストレージシステム１０４と第２データストレージシステム１０８とのトポロジを識別するための判定がなされると、本方法が始まる（ステップＳ９０４）。その判定は、割当アプリケーション２１２を有するデバイスの電源オンの結果として、なされても良い。代替的には、第１データストレージシステム１０４と第２データストレージシステム１０８とのトポロジの識別のための判定は、トポロジを識別するための命令を受信することに対して、あるいは第１データストレージシステム１０４と第２データストレージシステム１０８とのトポロジが変化した時に、なされても良い。
【００５１】
第１データストレージシステム１０４と第２データストレージシステム１０８とのトポロジを識別する決定がなされると、割当アプリケーション２１２は、第１データストレージシステム１０４と第２データストレージシステム１０８内の全ての拡張装置４０８を検出する（ステップＳ９０８）。割当アプリケーション２１２は、ＲＡＩＤエンクロージャ２０４内あるいはホストシステム３０４内において、実行されても良い。ケーブル２１６を通じて他のエンクロージャに接続された各エンクロージャは、少なくとも１つの拡張装置を、典型的には有する。エンクロージャが２つの互いに異なるエンクロージャに接続されると、その時は１つの拡張装置４０８の２つのポートが、使用されても良い。あるいは、エンクロージャが２つの互いに異なるエンクロージャに接続されると、２つの互いに異なる拡張装置が、使用されても良い。１つのエンクロージャにそれ以上のエンクロージャが接続された場合、その時は拡張装置４０８あるいは追加の拡張装置上の追加ポートが、使用されても良い。全ての拡張装置４０８が検出されると、割当アプリケーション２１２は、第１データストレージシステム１０４と第２データストレージシステム１０８内の全てのエンクロージャを把握する。
【００５２】
全てのエンクロージャが把握されると、割当アプリケーション２１２は、トップの拡張装置４０８を識別する（ステップＳ９１２）。トップの拡張装置４０８は、第１データストレージシステム１０４と第２データストレージシステム１０８内の他のエンクロージャにデータを送信するために使用される拡張装置４０８であり、拡張装置４０８はイニシエータに接続される。その後、割当アプリケーション２１２は、トップの拡張装置４０８のためのターゲットとしてどの拡張装置４０８が振舞うか判定することによって、ケーブル接続順内の次の拡張装置４０８を、識別する（ステップＳ９１６）。拡張装置４０８が、トップの（イニシエータ）拡張装置４０８のためのターゲットとして振舞う場合、その時は割当アプリケーション２１２は、ターゲットとなる拡張装置４０８がケーブル接続２１６を通じてトップの（イニシエータ）拡張装置４０８に直接接続されているということを識別する。その後、割当アプリケーション２１２は、トポロジ内で把握されていない第１データストレージシステム１０４と第２データストレージシステム１０８内の追加の拡張装置４０８があるか否か判定する（ステップＳ９２０）。追加の拡張装置４０８がある場合、その時は割当アプリケーション２１２は、最後に識別された拡張装置４０８のためのターゲットとして、どの拡張装置４０８が振舞っているかを調べる（ステップＳ９１６）。割当アプリケーション２１２は、拡張装置４０８が無くなるまで、ケーブル２１６を通じてどの拡張装置４０８が接続されているかを識別するこの処理を継続する。
【００５３】
ステップＳ９０８で把握された全ての拡張装置４０８が、ケーブル接続順において識別された後に、割当アプリケーション２１２は、拡張装置４０８の物理的接続にしたがってソフトウェア内にリンクされた、相互接続された拡張装置４０８のマップを作製する（ステップＳ９２４）。相互接続された拡張装置４０８のマップは、ヘッドエンクロージャに
関する各拡張装置４０８の位置、あるいはより明確にはヘッドエンクロージャ内の拡張装置４０８を識別する。
【００５４】
相互接続された拡張装置４０８のマップが生成されると、割当アプリケーション２１２は、各拡張装置４０８のアドレスを比較する（ステップＳ９２８）。１つの実施例では、拡張装置４０８はＳＡＳ拡張装置であり、それ故ＳＡＳアドレスを有する。ＳＡＳアドレスは、該アドレスが属するエンクロージャのミッドプレーン（ｍｉｄｐｌａｎｅ）に基づいて生成されたＷＷＮである。それ故、同一エンクロージャに関連する拡張装置４０８は、既定のＡ／Ｂ指定ビットを除き、ほとんど同一のアドレスを生成する。指定ビットの他は、同一エンクロージャ内の拡張装置４０８のアドレスは、同じである。それ故、割当アプリケーション２１２は、その指定ビットを除いたアドレスのようなものを有する拡張装置４０８を識別することによりエンクロージャによって、拡張装置４０８をグループ化できる（ステップＳ９３２）。拡張装置４０８がエンクロージャによってグループ化されると、割当アプリケーション２１２は、トポロジのマップあるいは第１データストレージシステム１０４と第２データストレージシステム１０８内の各エンクロージャのケーブル接続順の生成に成功し、本方法は終了する（ステップＳ９３６）。
【００５５】
図１０は、本発明のうちの少なくともいくつかの実施例にしたがって、ストレージデバイス６０４，７０４の番号付け方法を、描写する。最初は、ストレージデバイス６０４，７０４を保つための行番号（すなわち、エンクロージャ内のストレージデバイスのスロット）が識別される（ステップＳ１００４）。その後、ストレージデバイス６０４，７０４を保つための列番号が識別される（ステップＳ１００８）。行番号と列番号は、メモリ６３２，７１２に保存された番号であっても良い。他の実施例では、エンクロージャが第１データストレージシステム１０４と第２データストレージシステム１０８にインストールされた際に、システム管理者は、エンクロージャ内にスロットの行と列がいくつ存在するかを、尋ねられても良い。
【００５６】
エンクロージャの一般的なレイアウトが識別された後、割当アプリケーション２１２は、ストレージデバイス６０４，７０４がその内に位置するエンクロージャのエンクロージャＩＤを決定する（ステップＳ１０１２）。
【００５７】
エンクロージャＩＤが既知となると、割当アプリケーション２１２は、エンクロージャ内のストレージデバイス６０４，７０４の位置を決定する（ステップＳ１０１６）。言い換えると、割当アプリケーション２１２は、ストレージデバイス６０４，７０４がその内に配置されている行と列を識別する。ストレージデバイス６０４，７０４の位置に基づき、割当アプリケーション２１２は、デバイス識別子を決定する（ステップＳ１０２０）。デバイス識別子は、エンクロージャ内のストレージデバイス６０４，７０４の位置を、一意的に識別する。しかしながら、典型的には、デバイス識別子は、全体の第１データストレージシステム１０４と第２データストレージシステム１０８を通してストレージデバイス６０４，７０４を、一意的に識別しない。ストレージデバイス６０４，７０４は、通常、そのデバイス識別子によって一意的に識別されない。なぜならば、第１データストレージシステム１０４と第２データストレージシステム１０８内に、同じようなレイアウトを有する他のエンクロージャがしばしば存在するからである。例えば、エンクロージャ内の第１行、第１列に対応するデバイス識別子を有するストレージデバイスを備える複数のエンクロージャが、通常は存在する。それ故、追加の識別子が、一意的にストレージデバイス６０４，７０４を識別するために、デバイス識別子に加えられる必要がある。一意的なデバイスＩＤは、一意的なデバイスＩＤ内でエンクロージャＩＤとデバイス識別子を組合わせることによって、作製される。一意的なデバイスＩＤが作製されると、そのデバイスＩＤは、ストレージデバイス６０４，７０４に割当てられる（ステップＳ１０２４）。一意的なデバイスＩＤは、全体の第１データストレージシステム１０４と第２データストレ
ージシステム１０８の至るところで、ストレージデバイス６０４，７０４を一意的に識別する。更に、一意的なデバイスＩＤは、ストレージデバイス６０４，７０４内のエンクロージャの位置だけでなく、エンクロージャ内のストレージデバイス６０４，７０４の位置に基づくため、一意的な識別ＩＤは、ストレージデバイス６０４，７０４の位置を迅速に特定するために使用されうる。
【００５８】
一意的なデバイスＩＤがストレージデバイス６０４，７０４に割当てられた後、一意的なデバイスＩＤは、エンクロージャ内およびストレージデバイス６０４，７０４内のメモリ内に保存され、表示デバイス６３６，７１６を通じて表示される（ステップＳ１０２８）。エンクロージャのための表示デバイス６３６，７１６は、それに関連する各ストレージデバイス６０４，７０４の一意的なデバイスＩＤを表示しても良い。一意的なデバイスＩＤは、エンクロージャ上の各スロットに隣接して表示されても良いし、あるいはエンクロージャの末端部で表示されても良い。代替の実施例では、各ストレージデバイス６０４，７０４は、割当てられた一意的なデバイスＩＤを表示できる表示デバイスを備えていても良い。
【００５９】
一意的なデバイスＩＤがストレージデバイス６０４，７０４に割当てられると、割当アプリケーション２１２は、エンクロージャ内に追加のストレージデバイス６０４，７０４があるか否か判定する（ステップＳ１０３２）。一意的なデバイスＩＤを受信していないストレージデバイス６０４，７０４が更にある場合、その時は割当アプリケーション２１２は、次のストレージデバイス６０４，７０４の位置を決定する（ステップＳ１０１６）。一方で、エンクロージャ内の各ストレージデバイス６０４，７０４が一意的なデバイスＩＤを受信した場合、その時は割当アプリケーション２１２は、そこでストレージデバイス６０４，７０４に割当てられた一意的なデバイスＩＤを有していないエンクロージャがあるか否か判定する（ステップＳ１０３６）。第１データストレージシステム１０４と第２データストレージシステム１０８内に、一意的なデバイスＩＤを有していないストレージデバイス６０４，７０４を有するエンクロージャがある場合は、その時は本方法はステップＳ１００４に戻る。第１データストレージシステム１０４と第２データストレージシステム１０８内の全てのストレージデバイス６０４，７０４が一意的なデバイスＩＤを受信すると、本方法は終了する（ステップＳ１０４０）。
【００６０】
１つの実施例では、ストレージデバイス６０４，７０４には、エンクロージャに挿入されるまでは、一意的なデバイスＩＤは割当てられない。しかしながら、他の実施例では、エンクロージャ内のストレージスロットには、ストレージスロットがストレージデバイス６０４，７０４を受入れる前に一意的なデバイスＩＤが割当てられても良い。ストレージデバイス６０４，７０４がスロットに挿入された場合、あるいはスロットがストレージデバイス６０４，７０４を受入れた場合に、ストレージデバイス６０４，７０４は、スロットに関連する一意的なデバイスＩＤを、自動的に仮定しても良い。このことは、ストレージデバイス６０４，７０４が外されているか、あるいは新たなスロットに嵌められた場合にも、デバイスＩＤが変化しないことを保証するのに役立つ。本発明のうちの少なくともいくつかの実施例にしたがって、デバイスがそれに割当てられたデバイスＩＤを有する適切なスロット内にあるエンクロージャに追加された場合に、ストレージデバイス６０４，７０４には、ストレージデバイス６０４，７０４にとって新しい一意的なデバイスＩＤが割当てられる。割当てられた一意的なデバイスＩＤは、ほとんどの場合、製造時にストレージデバイス６０４，７０４に割当てられたＷＷＮとは異なっている。
【００６１】
図１１は、本発明のうちの少なくともいくつかの実施例にしたがって、第１データストレージシステム１０４と第２データストレージシステム１０８とのトポロジあるいはケーブル接続順に基づき、エンクロージャＩＤを割当てる代替方法を描写する。最初は、割当アプリケーション２１２が第１データストレージシステム１０４と第２データストレージ
システム１０８内のエンクロージャにエンクロージャＩＤを割当てることを決定するところから、本方法は始まる（ステップＳ１１０４）。その後、ヘッドエンクロージャには、ゼロのエンクロージャＩＤが割当てられる（ステップＳ１１０８）。１つの実施例では、ＲＡＩＤエンクロージャ２０４のコントローラ６１２は、エンクロージャＩＤを割当てるために使用されても良い。コントローラ６１２は、耐障害性を増加させるために、別のエンクロージャにケーブル接続されても良い（接続されるべきである）ため、第１コントローラ６１２ａのケーブルは、エンクロージャＩＤを割当てるための基準として使用されうる。ケーブルの線形チェーン接続が使用されたと仮定すると（すなわち、ツリートポロジがないと仮定すると）、第１コントローラ６１２ａがインストールされていないならば、第２コントローラ６１２ｂのケーブル接続順の逆が使用される。このことは、第１コントローラ６１２ａと第２コントローラ６１２ｂは、互いから逆にケーブル接続されるべきだからである。第１コントローラ６１２ａがインストールされると、第２コントローラ６１２ｂに保存されたエンクロージャＩＤは、ブートハンドシェイクメッセージ内で第１コントローラ６１２ａと共有される。それ故、ヘッドエンクロージャがゼロのエンクロージャＩＤを受信後は、第１コントローラ６１２ａが、追加のエンクロージャを直接的に検出できるか否かが判定される（ステップＳ１１１２）。第１コントローラ６１２ａが第１データストレージシステム１０４と第２データストレージシステム１０８内のエンクロージャを直接検出できない場合（すなわち、第１コントローラ６１２ａがインストールされていない場合）、その時はケーブル接続順は、第２コントローラ６１２ｂのケーブル接続の逆順として定義される（ステップＳ１１１６）。しかしながら、第１コントローラ６１２ａが追加エンクロージャを直接検出できる場合、その時は第２コントローラ６１２ｂが直接的に追加エンクロージャを検出できるか否かが判定される（ステップＳ１１２０）。第２コントローラ６１２ｂが第１データストレージシステム１０４と第２データストレージシステム１０８内の追加エンクロージャを直接検出できない場合（すなわち、第２コントローラ６１２ｂがインストールされていない場合）、その時はケーブル接続順は、第１コントローラ６１２ａによってエンクロージャが検出される順に基づき定義される（ステップＳ１１２４）。言い換えると、第１コントローラ６１２ａに直接接続されたエンクロージャは、まずケーブル接続順に識別され、連続した各エンクロージャは、ケーブル接続順で次に並べられる。
【００６２】
ただ１つのコントローラ６１２が第１データストレージシステム１０４と第２データストレージシステム１０８内のエンクロージャのトポロジを検出できる場合、その時はケーブル接続順は、第１データストレージシステム１０４と第２データストレージシステム１０８内のエンクロージャにあるコントローラ６１２の表示に基づき、設定される。ケーブル接続順が定義されると、変数Ｘは、第１データストレージシステム１０４と第２データストレージシステム１０８内のエンクロージャ数から１を引いた値に設定される（ステップＳ１１２８）。その後、（ケーブル接続順に基づき）エンクロージャＩＤが未だ割当てられていない次のエンクロージャに、Ｘに等しいエンクロージャＩＤが割当てられる（ステップＳ１１３２）。その後、割当アプリケーション２１２は、第１データストレージシステム１０４と第２データストレージシステム１０８のエンクロージャＩＤを受信していない追加エンクロージャがあるか否か判定する（ステップＳ１１３６）。追加エンクロージャがある場合、その時は変数Ｘは１だけ減少され（ステップＳ１１４０）、本方法はステップＳ１１３２へと戻る。全てのエンクロージャにエンクロージャＩＤが割当てられると、本方法は、コントローラ６１２内のメモリと分離メモリ６３２、７１６内に各エンクロージャＩＤを保存し、各エンクロージャの表示デバイス６３６，７１６上にエンクロージャＩＤを表示し、フローを継続する（ステップＳ１１４４）。
【００６３】
ステップＳ１１２０に戻って、第１コントローラ６１２ａと第２コントローラ６１２ｂの両方が追加エンクロージャを検出できると判定された場合、その時は本方法は、Ｘに等しい変数を設定し、フローを継続する（ステップＳ１１４８）。その後、割当アプリケー
ション２１２は、第１コントローラ６１２ａが検出されるように、次のエンクロージャにＸに等しいエンクロージャＩＤを割当てる（ステップＳ１１５２）。第１コントローラ６１２ａが検出されるように第１エンクロージャに、エンクロージャＩＤが割当てられると、第１コントローラ６１２ａによって検出されるように追加のエンクロージャがあるか否かが判定される（ステップＳ１１５６）。第１コントローラ６１２ａによって検出可能な追加エンクロージャがある場合、その時は割当アプリケーション２１２は、変数Ｘを１だけ増加し（ステップＳ１１６０）、ステップＳ１１５２に戻って、フローを継続する。
【００６４】
しかしながら、第１コントローラ６１２ａによって検出可能な追加エンクロージャがない場合は、第２コントローラ６１２ｂが、エンクロージャＩＤが未だ割当てられていないエンクロージャを、検出できるか否か判定する（ステップＳ１１６４）。エンクロージャＩＤを割当てられていないエンクロージャが存在する場合、それは第１コントローラ６１２ａによって検出できなかったため、その時は割当アプリケーション２１２は、変数Ｘを１だけ増加させる（ステップＳ１１６８）。その後、割当アプリケーション２１２は、第２コントローラ６１２ｂによって検出されるように最後の（エンクロージャＩＤを有していない）エンクロージャに、Ｘに等しいエンクロージャＩＤを割当てる。第２コントローラ６１２ｂによって検出されるように、最後のエンクロージャにエンクロージャＩＤが割当てられると、本方法はステップＳ１１６４に戻る。全てのエンクロージャにエンクロージャＩＤが割当てられた後は、本方法はステップＳ１１４４へと続く。
【００６５】
エンクロージャＩＤが保存され、表示された後は、割当アプリケーション２１２は、第１データストレージシステム１０４と第２データストレージシステム１０８への更なるエンクロージャの追加を見込んで、再び変数Ｘを１だけ増加させる（ステップＳ１１７６）。変数Ｘが１だけ増加された後は、割当アプリケーション２１２は、第１データストレージシステム１０４と第２データストレージシステム１０８内に新たなエンクロージャが検出されるまで、待機する（ステップＳ１１８０）。エンクロージャが、トポロジが検出されエンクロージャＩＤが割当てられた後に、チェーン接続（ケーブル接続）に追加されると、新たなエンクロージャには、Ｘに等しいエンクロージャＩＤが割当てられる（ステップＳ１１８４）。新たなエンクロージャにエンクロージャＩＤが割当てられると、本方法はステップＳ１１４４に戻る。
【００６６】
永続性（ｐｅｒｓｉｓｔｅｎｃｅ）が要求される場合、その時はコントローラ６１２がリブートされるまで、エンクロージャＩＤは維持される。代替的には、エンクロージャＩＤがメモリ内に保存された場合、メモリ内容が消去されるまでは、永続性は維持される。代替の実施例では、エンクロージャＩＤの永続性が要求されない場合、その時には新たなエンクロージャが追加されると、全てのエンクロージャＩＤが再度求められる。より明確には、新たなエンクロージャがほぼ同時に複数のコントローラ６１２上のトポロジ変化を引き起こす場合、その時には拡張装置４０８が再検出され、新たなトポロジマップが生成される。
【００６７】
人間は、自然の順番に従う事物を期待する傾向がある。エンクロージャが順にラック内に配置されている場合、その時はエンクロージャＩＤが同じ順で割当てられるであろうことを期待するのが自然である。それ故、この実施例の利点は、図１１に関連して記述されたエンクロージャＩＤ割当方法が、エンクロージャＩＤを割当てるための基準として、物理的なケーブル接続を用いていることである。
【００６８】
図１２は、本発明のうちの少なくともいくつかの実施例にしたがって、エンクロージャＩＤを割当てる１つの方法を描写する。割当アプリケーション２１２がエンクロージャＩＤを割当てることを判定する際に、本方法が開始される（ステップＳ１２０４）。割当アプリケーション２１２は、システム管理者からエンクロージャＩＤを割当てる命令を受信
したことに応答して、そのような判定を行っても良い。代替的には、エンクロージャＩＤが永続的でない場合は、割当アプリケーション２１２は、第１データストレージシステム１０４と第２データストレージシステム１０８へのパワーが入れ直された後に、エンクロージャＩＤを自動的に割当て始めても良い。１つの実施例では、割当アプリケーション２１２は、ヘッドエンクロージャ〔例えばＲＡＩＤエンクロージャ２０４あるいはＪＢＯＤエンクロージャ３０８ａにゼロのエンクロージャＩＤを割当てることによって、始まる（ステップＳ１２０８）〕。ヘッドエンクロージャにエンクロージャＩＤが割当てられた後に、割当アプリケーション２１２は各エンクロージャのＷＷＮを識別する（ステップＳ１２１２）。前述のように、エンクロージャは、エンクロージャを最初に示すアドレスを有する１つ以上の拡張装置４０８を含む。該アドレスは、指定ビットを除いて該エンクロージャ内に属している。それ故、エンクロージャのＷＷＮは、エンクロージャ内の拡張装置４０８のアドレス指定ビットを除いたアドレスに等しくなるように、設定されている。
【００６９】
その後、割当アプリケーション２１２は、エンクロージャをＷＷＮによってソートする（ステップＳ１２１６）。ＷＷＮは、降順あるいは昇順でソートされても良い。１つの実施例では、エンクロージャは、ＷＷＮに基づき最小から最大へとソートされる。エンクロージャをソート後、変数Ｘは１に等しく設定される（ステップＳ１２２０）。変数Ｘが初期化されると、割当アプリケーション２１２は、次に最大のＷＷＮを有する、ＩＤが割当てられていないエンクロージャに、Ｘに等しいエンクロージャＩＤを割当てる（ステップＳ１２２４）。エンクロージャにエンクロージャＩＤが割当てられると、割当アプリケーション２１２は、第１データストレージシステム１０４と第２データストレージシステム１０８内にエンクロージャＩＤが割当てられていない追加エンクロージャがあるか否か判定する（ステップＳ１２２８）。エンクロージャＩＤのないエンクロージャがある場合は、その時は本方法は、Ｘを１だけ増加させ（ステップＳ１２３２）、ステップＳ１２２４に戻って、継続する。
【００７０】
各エンクロージャに、エンクロージャＩＤを割当てた後、エンクロージャＩＤはメモリ６３２に保存される。その際、表示デバイス６３６，７１６を通じてエンクロージャＩＤが表示されても良い（ステップＳ１２３６）。１つの実施例では、各エンクロージャは、表示デバイス６３６，７１６を備えているので、それ故、割当てられたエンクロージャＩＤを表示する。同様に、各エンクロージャは、割当てられたエンクロージャＩＤを保存するためのそれ自身のメモリを、概して有する。代替的には、エンクロージャＩＤは、単一点（一つのエンクロージャ）にて保存され、第１データストレージシステム１０４と第２データストレージシステム１０８内の全てのエンクロージャに通信されても良い。
【００７１】
１つの実施例では、第１コントローラ６１２ａと第２コントローラ６１２ｂを有するＲＡＩＤエンクロージャ２０４は、エンクロージャＩＤを割当てるために使用される。この特別な実施例では、エンクロージャＩＤは、第１コントローラ６１２ａと第２コントローラ６１２ｂの両方がリブートされるまで、永続性がある（すなわち、メモリ６３２，７１２に保存されるか、コントローラ６１２のローカルメモリに保存される）。さもなくば、エンクロージャＩＤは、維持され、エンクロージャＩＤがもともと割当てられていた同じエンクロージャに関連する。
【００７２】
エンクロージャＩＤが各エンクロージャ上に保存されかつ表示された場合、割当アプリケーション２１２はまた、変数Ｘを１だけ増加させる（ステップＳ１２４０）。その後、割当アプリケーション２１２は、第１データストレージシステム１０４と第２データストレージシステム１０８に他のエンクロージャが追加されるまで、待機する（ステップＳ１２４４）。多くの場合、追加エンクロージャは、既に接続されたエンクロージャのＷＷＮ同士の間に位置するＷＷＮを有する。ＷＷＮは、単純にこの時点で再ソートされると、（そのエンクロージャＩＤに依存する）一意的なデバイスＩＤは、変化することとなる。こ
のことは、好ましくない。なぜなら、これらのストレージデバイス６０４，７０４へのデータ通信中の入出力は、特別な処理を行わない限り、互いに異なるドライブとなってしまうかもしれないからである。それ故、一意的なデバイスＩＤの変化を避けるために、既知のエンクロージャのＷＷＮのリストが維持されても良く、割当アプリケーション２１２は、既にエンクロージャＩＤを有するエンクロージャには、エンクロージャＩＤを割当てないようにする。新たなエンクロージャが検出され、そのＷＷＮが決定されるとすぐに、他のエンクロージャが追加された場合にもＷＷＮが維持されるように、ＷＷＮは既知のエンクロージャのＷＷＮのリストに追加される。したがって、新たなエンクロージャＩＤには、未使用のエンクロージャＩＤの内で最小のＸに等しいエンクロージャＩＤが、単に割当てられる（ステップＳ１２４８）。
【００７３】
当業者によって理解されうるように、エンクロージャＩＤの割当は、必ずしも昇順で行う必要はない。むしろ、エンクロージャＩＤは、ランダムに選択された番号から始まる降順で、割当てられても良い。ゼロのエンクロージャＩＤに達した場合、その後のエンクロージャには、例えば、負のエンクロージャＩＤが割当てられても良い。加えて、エンクロージャＩＤが昇順で割当てられたとしても、ヘッドエンクロージャには、必ずしもゼロのエンクロージャＩＤが割当てられる必要はない。エンクロージャＩＤの割当は、任意のランダムに選択された数字あるいは任意のランダムに選択された文字から始まっても良い。
【００７４】
ＲＡＩＤエンクロージャ２０４が、エンクロージャＩＤを割当てるのに使用される実施例では、コントローラ６１２は置き換えられる必要がある場合があっても良い。第１データストレージシステム１０４と第２データストレージシステム１０８内のエンクロージャＩＤあるいはエンクロージャのＷＷＮは、コントローラ６１２のメモリの一部に保持されている場合、新たなコントローラ６１２は、既存のエンクロージャＩＤの割当を検出しないであろう。それ故、エンクロージャＩＤの割当は、すでにブートされたコントローラ６１２からのブートハンドシェイクルーチンの一部としてのエンクロージャ間で、共有されても良い。
【００７５】
１つの実施例では、割当アプリケーション２１２によって選択されたエンクロージャＩＤの割当を無効にする（オーバーライドする）ための能力を、ユーザが有していても良い。そのような特徴は、特にエンクロージャＩＤの割当が物理的なケーブル接続の基準を有さない場合に有効である。ユーザのオーバーライドプログラムは、データ損失あるいはデータ損傷を許可しないような方法で、エンクロージャＩＤを変化させることが可能であるべきである。エンクロージャＩＤの再割当をエンクロージャを通じて入出力がないような回数に制限することは、この目的を達成しうる。両コントローラ６１２上の入出力を停止させる１つの方法は、一次的に第１データストレージシステム１０４と第２データストレージシステム１０８への入出力を停止させる入出力ポーズ機能を実行することである。
【００７６】
本発明の前述の議論は、図示と説明の目的で、示された。更に、説明は、発明をここで開示された形式のみに限定するよう意図されたものではない。したがって、関連した技術の技能と知識内における、上述の教示に適応した変化や修正は、本発明の範囲内である。ここで示した実施例は、本発明の実施の現在知られた最良の形態を説明するように意図されていて、かつ、他の当業者がそのようなあるいは他の実施例において、特別な応用のために要求される様々な修正あるいは本発明の使用において必要な様々な修正を用いて、本発明を利用できるように意図されている。添付のクレームは、先行技術が認めている範囲内で、代替の実施例を含むように理解されることを意図する。
【図１】
2010518513.tif 000003
【図２】
2010518513.tif 000004
【図３】
2010518513.tif 000005
【図４】
2010518513.tif 000006
【図５】
2010518513.tif 000007
【図６】
2010518513.tif 000008
【図７】
2010518513.tif 000009
2010518513.tif 000010
【図８】
2010518513.tif 000011
【図９】
2010518513.tif 000012
【図１０】
2010518513.tif 000013
【図１１】
2010518513.tif 000014
【図１２】
2010518513.tif 000015
【国際調査報告】
2010518513.tif 000016