(57)【要約】ホストコンピュータと、安価なディスクを用いた冗長アレイ（ＲＡＩＤ：Redundant Array of Inexpensive Disks）等の記憶装置との間でデータを転送するためのネットワーク記憶制御装置が開示される。ネットワーク記憶制御装置は、受動バックプレーンに接続されホストコンピュータ及び記憶装置と受動バックプレーンとの間でデータを選択的に転送する少なくとも１つのチャネルインタフェースモジュールを有する。ネットワーク記憶制御装置は、受動バックプレーン（１１６）を介してチャネルインタフェースモジュール（１３６，１４０）と通信しホストコンピュータまたは記憶装置から受け取ったデータを処理し一時的に記憶する少なくとも１つの制御装置メモリモジュール（１０４，１０８）をも有する。冗長性が必要とされるアプリケーションにおいて、少なくとも２つの制御装置メモリモジュールと少なくとも２つのチャネルインタフェースモジュールが使用される。制御装置メモリモジュールは、受動バックプレーンとチャネルインタフェースモジュール上の共有通信経路を用いて相互間でデータをミラー化しても良く、それにより、データをミラー化するためのホストチャネルまたはディスクチャネルの使用を実質的に回避する。
2005507118.tif 000002
【特許請求の範囲】
【請求項１】
ホストコンピュータを少なくとも１つの記憶装置に接続するためのネットワーク記憶装置であって、
第１及び第２のデータバスを含む複数のデータバスを有する受動バックプレーン(passive backplane)と、
前記受動バックプレーンに接続され、ホストコンピュータ及び少なくとも１つの記憶装置に接続されるように適合され、ホストコンピュータ及び少なくとも１つの記憶装置と記憶データを送受信するように動作可能であり、及び、記憶データを前記複数のデータバスのうち１つ以上に選択的に転送するように動作可能である、少なくとも第１及び第２のチャネルインタフェースモジュールと、
前記受動バックプレーンに接続され、前記受動バックプレーンを介して前記チャネルインタフェースモジュールと通信し、及び、前記チャネルインタフェースモジュールで転送される記憶データを記憶し処理する、少なくとも第１及び第２の制御装置メモリモジュールと、を有するネットワーク記憶装置。
【請求項２】
少なくとも前記第１のチャネルインタフェースモジュールが通信経路部とチャネルインタフェース部と有し、前記チャネルインタフェース部がホストコンピュータ及び／または少なくとも１つの記憶装置と前記通信経路部との間で記憶データを転送するように動作可能であり、前記通信経路部が前記チャネルインタフェース部と前記受動バックプレーンとの間で記憶データを選択的に転送するように動作可能である請求項１の装置。
【請求項３】
少なくとも前記第１の制御装置メモリモジュールが、前記受動バックプレーンに接続するバスインタフェース部と、前記記憶データの一時記憶のためのメモリと、前記記憶データを編成し配列する処理部とを有する請求項１の装置。
【請求項４】
前記バスインタフェース部が、
前記受動バックプレーンに接続する少なくとも１つのバックプレーンインタフェースと、
前記メモリに接続するメモリインタフェースと、
前記処理部に接続する処理インタフェースと、
前記処理インタフェースと、メモリインタフェースと、バックプレーンインタフェースとを接続するように動作可能な制御論理を含むブリッジコアと、
データブロックに排他的論理和（ＸＯＲ：Exclusive OR）機能を実行するＸＯＲエンジン、及び、前記受動バックプレーンへのダイレクトメモリアクセス（ＤＭＡ：Direct Memory Access）を提供するＤＭＡエンジンのうちの少なくとも１つを有する請求項３の装置。
【請求項５】
前記受動バックプレーンが更に第３及び第４のデータバスを有する請求項１のネットワーク記憶装置。
【請求項６】
前記第１及び第２のデータバスの各々がバックプレーンバスのグループの一部であり、前記グループが周辺構成要素相互接続（ＰＣＩＸ：Peripheral Component Interconnect）バスを有する請求項１の装置。
【請求項７】
前記受動バックプレーンが更に第３のデータバスと第４のデータバスを有し、
前記第１のチャネルインタフェースモジュールが第１のバスポートと第２のバスポートを有し、前記第２のチャネルインタフェースモジュールが第３のバスポートと第４のバスポートを有し、前記第１、第２、第３、及び第４のバスポートが前記通信経路部を前記受動バックプレーンに接続するように動作可能であり、
前記第１の制御装置メモリモジュールが第１のバスインタフェースと第２のバスインタフェースを有し、前記第２の制御装置メモリモジュールが第３のバスインタフェースと第４のバスインタフェースを有し、前記第１、第２、第３、及び第４のバスインタフェースが前記制御装置メモリモジュールを前記受動バックプレーンの前記第１、第２、第３、及び第４のデータバスに接続するように動作可能である請求項２の装置。
【請求項８】
前記第１のバスポートが前記第１のデータバスと接続され、前記第２のバスポートが前記第３のデータバスと接続され、
前記第３のバスポートが前記第２のデータバスと接続され、前記第４のバスポートが前記第４のデータバスと接続され、
前記第１のバスインタフェースが前記第１のデータバスと接続され、前記第２のバスインタフェースが前記第２のデータバスと接続され、
前記第３のバスインタフェースが前記第３のデータバスと接続され、前記第４のバスインタフェースが前記第４のデータバスと接続される請求項７の装置。
【請求項９】
前記第１のチャネルインタフェースモジュールの前記通信経路部が、第１の共有経路、第１の交換経路、及び第２の交換経路を有し、
前記第２のチャネルインタフェースモジュールの前記通信経路部が、第２の共有経路、第３の交換経路、及び第４の交換経路を有し、
前記第１の共有経路が前記第１のバスポートと前記第２のバスポートに接続され、
前記第１の交換経路が前記第１のバスポートと前記チャネルインタフェース部に接続され、
前記第２の交換経路が前記第２のバスポートと前記チャネルインタフェース部に接続され、
前記第２の共有経路が前記第３のバスポートと前記第４のバスポートに接続され、
前記第３の交換経路が前記第３のバスポートと前記チャネルインタフェース部に接続され、
前記第４の交換経路が前記第４のバスポートと前記チャネルインタフェース部に接続され、
前記第１、第２、第３、第４の交換経路が、前記チャネルインタフェース部に関する通信を有効及び無効にするように動作可能である請求項８の装置。
【請求項１０】
ホストコンピュータと１つ以上の記憶装置との間でデータを転送する方法であって、
第１のチャネル媒体を用いてホストコンピュータからチャネルインタフェースモジュールへ最初にデータを転送するステップと、
受動バックプレーンを用いて前記チャネルインタフェースモジュールから第１の制御装置メモリモジュールへ２番目に前記データを転送するステップと、
記憶データを定義するために前記制御装置メモリモジュールで前記データを処理するステップと、
前記受動バックプレーンを介して前記チャネルインタフェースモジュールへ前記記憶データを３番目に転送するステップと、
第２のチャネル媒体を介して少なくとも１つの記憶装置へ前記記憶データを４番目に転送するステップと、
前記第１のチャネル媒体及び前記第２のチャネル媒体から実質上独立して、前記第１の制御装置メモリモジュールと前記第２の制御装置メモリモジュールとの間で前記記憶データをミラー化するステップと、を有する方法。
【請求項１１】
前記２番目に転送するステップが、前記制御装置メモリモジュールに前記データを転送するために前記受動バックプレーンの第１のバスを採用するステップを有する請求項１０の方法。
【請求項１２】
前記３番目に転送するステップが、前記チャネルインタフェースモジュールに前記記憶データを転送するために前記受動バックプレーンの第２のバスを採用するステップを有する請求項１０の方法。
【請求項１３】
前記ミラー化するステップが、前記第１のチャネル媒体も、前記第２のチャネル媒体も使用しない請求項１０の方法。
【請求項１４】
前記ミラー化するステップが、前記記憶データの５０％未満を運ぶように前記第１のチャネル媒体と前記第２のチャネル媒体を制限するステップを有する請求項１０の方法。
【請求項１５】
ホストコンピュータを少なくとも１つの記憶装置と接続するためのネットワーク記憶装置であって、
それぞれがホストチャネル及びディスクチャネルに接続されるように適合され、ホストチャネル及びディスクチャネル越しにデータを送受信するように動作可能であり、ホストチャネルがホストコンピュータに接続され、ディスクチャネルが少なくとも１つの記憶装置に接続される、少なくとも第１及び第２のチャネルインタフェースモジュールと、
前記第１及び第２のチャネルインタフェースモジュールと通信し、少なくとも１つの記憶装置に記憶するための記憶データを提供するためにホストコンピュータからのデータを処理し、ホストコンピュータに送信するための取出データを提供するために少なくとも１つの記憶装置からのデータを処理する、少なくとも第１及び第２の制御装置メモリモジュールと、
前記チャネルインタフェースモジュールと前記制御装置メモリモジュールとの間の通信をサポートする、前記チャネルインタフェースモジュールの各々と前記制御装置メモリモジュールの各々に接続され、データがホストチャネル及び／またはディスクチャネルによって運ばれる時、それと同時にデータが前記第１の制御装置メモリモジュールと前記第２の制御装置メモリモジュールとの間でミラー化され、ホストチャネルもディスクチャネルもミラー化される前記データの５０％を超えて運ばない受動バックプレーンと、を有するネットワーク記憶装置。
【請求項１６】
前記第１及び第２のチャネルインタフェースモジュールの各々が、通信経路部とチャネルインタフェース部とを有し、前記チャネルインタフェース部が前記ホストチャネル及び／または前記ディスクチャネルと前記通信経路部との間で前記記憶データを転送するように動作可能であり、前記通信経路部が前記チャネルインタフェース部と前記受動バックプレーンとの間で前記記憶データを転送するように動作可能である請求項１５の装置。
【請求項１７】
前記第１及び第２の制御装置メモリモジュールの各々が、前記受動バックプレーンに接続するバスインタフェース部と、前記記憶データを一時記憶するためのメモリと、前記記憶データを編成し配列する処理部とを含む請求項１５の装置。
【請求項１８】
前記バスインタフェース部が、
前記受動バックプレーンに接続する少なくとも１つのバックプレーンインタフェースと、
前記メモリに接続するメモリインタフェースと、
前記処理部に接続する処理インタフェースと、
前記処理インタフェースと、メモリインタフェースと、バックプレーンインタフェースとを接続するように動作可能な制御論理を含むブリッジコアと、
データブロックに排他的論理和（ＸＯＲ：Exclusive OR）を実行する少なくとも１つのＸＯＲエンジンと、前記受動バックプレーンへのダイレクトメモリアクセス（ＤＭＡ：Direct Memory Access）を提供するＤＭＡエンジンと、を有する請求項１７の装置。
【請求項１９】
前記ミラー化されるデータのいずれも、実質上、ホストチャネル及びディスクチャネルによって運ばれない請求項１５の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はネットワーク記憶制御装置、特に、入出力インタフェースに依存しないデータ処理機能を有する冗長モジュラー構成要素を利用するネットワーク記憶制御装置に関する。
【背景技術】
【０００２】
ネットワーク記憶制御装置は、典型的には、ホストコンピュータシステムをディスクドライブやテープドライブ等の周辺記憶装置と接続するために使用される。ネットワーク記憶制御装置は、ホストコンピュータと周辺記憶装置との間のインタフェースの役割を果たす。多くのアプリケーションにおいて、ネットワーク記憶制御装置は、ホストコンピュータと周辺装置との間で転送されるデータに関わる処理機能を実行する。このようなシステムの一般的なアプリケーションの１つが、独立したディスクを用いた冗長アレイ（ＲＡＩＤ：Redundant Array of Independant Disks）である。ＲＡＩＤシステムは、ディスクドライブの故障からデータを保護するため、複数のディスクドライブにデータを記憶する。１つのディスクが故障した場合、通常ＲＡＩＤシステムはアレイ内の残りのドライブから、故障したドライブに記憶されていたデータを復元することができる。ＲＡＩＤシステムは、多くの場合、ホストコンピュータとディスクドライブアレイとの間のインタフェースである、ＲＡＩＤ制御装置を含むネットワーク記憶制御装置を使用する。
【０００３】
多くのアプリケーションは、非常に高い可用性を備える記憶システムを必要とする。ユーザはＲＡＩＤシステムに記憶されたデータに大きく依存するため、金融機関や航空予約システム等の多くのアプリケーションにおいて、この高い可用性は重要である。これらの種類のアプリケーションでは、ＲＡＩＤシステムに記憶されるデータの非可用性が、結果として収益及び／または顧客満足度の大幅な低下を生む可能性がある。このようなアプリケーションでＲＡＩＤシステムを採用することは、１つのディスクドライブが故障してもなおデータが記憶されシステムから回復できるため、記憶データの可用性を向上させる。ＲＡＩＤシステムの使用に加えて、記憶システムの可用性を更に向上させるために、冗長ＲＡＩＤ制御装置を使用することが一般的である。こうした状況では、２つ以上の制御装置がＲＡＩＤシステムで使用され、各制御装置は、制御装置の１つが故障した場合、他の残りの制御装置が、故障した制御装置の作業を引き受けるというフェイルオーバー機能を有する。このようなプラットフォームはＲＡＩＤシステムの可用性を高めるが、下記に述べるようないくつかの不利点を引き起こす可能性がある。
【０００４】
図１は、ＲＡＩＤネットワーク制御装置１０を構成する一般的な最新のデュアル制御装置のブロック図であり、ファイバチャネル・ツー・ファイバチャネル接続を示す。すなわち、この例では、ホストコンピュータとディスクドライブアレイの両方が、ファイバチャネル接続を用いてネットワーク記憶ブリッジと通信する。ファイバチャネルはこのようなシステムにおいて一般的なチャネル媒体であるが、例えば、小型コンピュータシステムインタフェース（ＳＣＳＩ：Small Computer System Interface）やイーサネット（登録商標）等の他のチャネルも用いられても良いことは理解されるべきである。図１に示されるＲＡＩＤシステムは、ホストポート−１  １４及びホストポート−２  １８の２つのホストポートと、ディスクポート−１  ２２及びディスクポート−２  ２６の２つのディスクポートとを含む。ＲＡＩＤシステムにおいて一般的で、当該技術において良く知られているように、各ホストポート１４、１８は異なるホストコンピュータと対応付けられ、各ディスクポート２２、２６は異なるディスクアレイに対応付けられていても良い。ネットワーク記憶ブリッジ１０は、制御装置−Ａ  ３０と制御装置−Ｂ  ３４のデュアルＲＡＩＤ制御装置を含む。制御装置の区分(zoning)を採用するシステムにおいて、制御装置−Ａ  ３０をホストポート−１  １４及びディスクポート−１  ２２に区分し、制御装置−Ｂ  ３４をホストポート−２  １８及びディスクポート−２  ２６に区分することができる。
【０００５】
当該技術において理解されるように、書き戻しキャッシュ方式の(write back cache)デュアル制御装置を採用するシステムは、キャッシュの一貫性（cache coherency）を維持するため制御装置間のデータのミラー化を必要とする。各制御装置３０、３４は、制御装置間の冗長性を維持し、それによって１つの制御装置が故障した場合にＲＡＩＤシステムの動作を維持するため、他の制御装置のデータ及び状態のコピーを備えていなければならない。制御装置間のデータのミラー化は、後に詳述するように、制御装置間でのデータの転送が制御装置の処理リソースだけでなくチャネル帯域幅をも使用するため、ＲＡＩＤシステムのパフォーマンスを低下させる可能性がある。
【０００６】
制御装置３０、３４は、入出力モジュール−１  ４２と入出力モジュール−２  ４６の２つの入出力モジュールに接続されるファイバチャネルバックプレーン３８に接続される。各制御装置３０、３４は、ＣＰＵサブシステム５０、メモリ５４（例えば、２倍のデータ転送速度）、制御論理５８、２つのホストポート６２ａ、６２ｂのデュアル(dual)ポートファイバチャネル接続、及び２つのディスクポート６６ａ、６６ｂのデュアルポートファイバチャネル接続を含む。ＣＰＵサブシステム５０は、データの分散化と、読み取り及び書き込みコマンドの開始及び実行とを含む、ディスクアレイへのデータの記憶に必要なタスクを実行する。メモリ５４は、データ及びその他の情報のための不揮発性記憶領域である。制御論理５８は、ＣＰＵサブシステム５０と、メモリ５４と、ホストポート６２ａ、６２ｂ及びディスクポート６６ａ、６６ｂとの仲介等のいくつかの機能を実行する。制御論理５８は、排他的論理和（ＸＯＲ：Exclusive OR）エンジン等のパリティ生成機能を含むその他の機能をも有していても良い。ホストポート６２ａ、６２ｂ及びディスクポート６６ａ、６６ｂは、ファイバチャネルバックプレーン３８との通信を提供する。入出力モジュール４２、４６は、ポートバイパス回路(port bypass circuit)としても良く知られている、各ホストポート１４、１８及び各ディスクポート２２、２６を各制御装置３０、３４に接続するために機能するリンク復元回路（ＬＲＣ：Link Resiliency Circuit）７０を含む。これによって、両制御装置３０、３４は、両ホストポート１４、１８及び両ディスクポート２２、２６にアクセス可能となる。
【０００７】
完全な冗長性を提供するため、各制御装置は各ホストポート１４、１８及び各ディスクポート２２、２６との接続を有していなければならない。このようにして、制御装置のうち１つが故障した場合、他の制御装置が動作を継続することができる。上記のように、各ホストポート１４、１８は異なるホストコンピュータと対応付けられ、各ディスクポート２２、２６は異なるディスクアレイと対応付けられるのが一般的である。これらの場合において、各制御装置３０、３４は典型的には１つのディスクポート及び１つのホストポートと対応付けられ、ＲＡＩＤシステムのパフォーマンスを高めるのに役立つ。しかしながら、こうした場合、これらのポートの半分が受動的（passive）である。例えば、制御装置−Ａ  ３０がホストポート−１  １４及びディスクポート−１  ２２と対応付けられる場合、制御装置−Ａ  ３０はホストポート−１  １４からのすべての通信を受信し、ディスクポート−１  ２２上のディスクアレイを制御する。同様に、制御装置−Ｂ  ３４は、ホストポート−２  １８及びディスクポート−２  ２６と対応付けられるであろう。これらの技法は当該技術において良く知られており、ＲＡＩＤシステムのパフォーマンスを高めるだけでなく、２つの制御装置３０、３４の制御及び通信を簡易化することもできる。図１の例において、制御装置−Ａ  ３０上で、ホストポート接続６２ａとディスクポート接続６６ａは、入出力モジュール−１  ４２のＬＲＣ７０を通じてホストポート−１  １４及びディスクポート−１  ２２にそれぞれ接続される。制御装置−Ａ  ３０はホストポート−１  １４及びディスクポート−１  ２２と対応付けられるため、ホストポート接続６２ａ及びディスクポート接続６６ａはホストポート−１  １４及びディスクポート−１  ２２と能動的に通信する。残りのホストポート接続６２ｂ及びディスクポート接続６６ｂは、入出力モジュール−２  ４６のＬＲＣ７０を通じてホストポート−１  １８及びディスクポート−２  ２６にそれぞれ接続される。制御装置−Ｂ  ３４が故障しない限り、制御装置−Ａ  ３０はホストポート−２  １８及びディスクポート−２  ２６と能動的に通信しないため、これらの接続は典型的には受動接続である。同様に、制御装置−Ｂ  ３４はホストポート−２  １８及びディスクポート−２  ２６と対応付けられるであろう。よって、制御装置−Ｂ  ３４の場合、ホストポート接続６２ｂ及びディスクポート接続６６ｂは、入出力モジュール−２  ４６のＬＲＣ７０を通じてホストポート−２  １８及びディスクポート−２  ２６と通信するであろう。残りのホストポート接続６２ａ及びディスクポート接続６６ａは、入出力モジュール−１  ４２のＬＲＣ７０を通じてホストポート−１  １４及びディスクポート−１  ２２に接続されるであろう。
【０００８】
上記のように、書き戻しキャッシュ方式の典型的な冗長制御装置の動作において、データが制御装置間でミラー化される。制御装置−Ａ  ３０と制御装置−Ｂ  ３４間でデータをミラー化する時、ディスクポート接続越しにミラー化されたデータを転送するのが一般的である。例えば、制御装置−Ｂ  ３４は、ディスクポート−２越しにドライブアレイに書き込まれるデータを、ホストポート−２  １８越しに受信することができる。制御装置−Ｂ  ３４は、このデータを受信し、メモリ５４に格納する。キャッシュの一貫性を維持するため、制御装置−Ｂ  ３４はこのデータを制御装置−Ａ  ３０にも伝達しなければならず、従って、両方の制御装置がそのデータを有し、一方の制御装置が故障しても、他方の制御装置がなおデータを書き込むことができる。従来のシステムにおいて、このデータの転送がいくつかのステップを経て達成される。まず、制御装置−Ｂ  ３４がディスクポート−１  ２２に接続されたＬＲＣ７０につながるディスクポート接続６６ａ越しにデータを送信する。データはディスクポート−１  ２２上の対応するハードウェアに転送され、ＬＲＣ７０に送り返され、そこで制御装置−Ａ上のディスクポート接続６６ａで受信される。次に、制御装置−Ａはデータをメモリ５４に格納し、最初に制御装置−Ｂ  ３４に送られたデータのコピーを提供する。次に、制御装置−Ｂ  ３４は、データをディスクアレイに書き込む適切なステップを実行する。いったんデータがディスクアレイに書き込まれれば、制御装置−Ｂ  ３４が上記と同じ通信経路を用いて、これを制御装置−Ａ  ３０に伝達し、制御装置−Ａ  ３０がデータ書き込みの記録を除去する。同様に、制御装置−Ａ  ３０がディスクポート−１  ２２上のディスクアレイに書き込まれるデータを受信する場合、制御装置−Ａ  ３０は同じミラー化技法を用いて制御装置−Ｂ  ３４にデータを送信する。
【発明の開示】
【発明が解決しようとする課題】
【０００９】
この技法は各制御装置上の残りのディスクポートを使用することができるが、各制御装置上の第二のホストポートは、システムの通常動作時には未使用のままであり、従って受動的である。各制御装置上の受動ポートは、制御装置に相当量のハードウェアを追加し、ネットワーク記憶制御装置１０の大幅なコスト増を招く可能性がある。したがって、制御装置に設けられる受動ポートに関連するコストとハードウェアを低減しつつ、高可用性を維持する冗長ネットワーク記憶制御装置を提供することが有利であろう。
【００１０】
加えて、こうしたシステムにおいてデータをミラー化すると、結果的に、ミラー化されたデータを受信する制御装置においてはミラー化されたデータと記憶データが同じポート越しに送信されることになる。ディスクアレイにアクセスする帯域幅は、ミラー化されたデータによって消費され、ネットワーク記憶ブリッジのパフォーマンスを低減させる可能性がある。加えて、データをミラー化する時、データを送信する制御装置はディスクポート越しに転送される形式にデータを置換え、データを受信する制御装置はディスクポート越しに受信されるデータを処理しなければならないため、制御装置３０、３４内の処理リソースが消費される。例えば、図１に示されるファイバチャネルの実施の形態において、ミラー化されたデータがファイバチャネルプロトコルに従ってフォーマット化され、いくつかの割込みと処理リソースを必要とする可能性がある。したがって、制御装置間でデータをミラー化する時にチャネル帯域幅を全くかほとんど消費しないネットワーク記憶制御装置を備えることが有利であろう。また、データをミラー化するための処理リソースの消費がより少ないネットワーク記憶制御装置を備えることが有利であろう。
【００１１】
更に、継続的に高まりつつあるデータ記憶の需要とともに、ＲＡＩＤ制御装置は追加のディスクドライブを伴うアップグレードや、より高速なバスインタフェースを必要とする。しかしながら、ＲＡＩＤ制御装置は追加のバスインタフェース能力を追加する、あるいは新しい種類のバスインタフェースをサポートするように構成されていないかもしれない。こうした制御装置は一般的に、アップグレードが実行される時に取り替えられなければならない。この制御装置の交換によって、ＲＡＩＤシステムをアップグレードするコストが増す可能性がある。動作可能なＲＡＩＤ制御装置の交換は、ＲＡＩＤシステムをアップグレードする決定を阻むかもしれない価値の減損を表す。したがって、簡易かつ低コストに、能力のアップグレードをサポートするだけでなく新しい種類のインタフェースをもサポートすることが可能なシステムを備えることが有利であろう。
【００１２】
したがって、（１）受動的な構成要素のためのコストを軽減しつつ冗長性を提供し、（２）ディスクポートまたはホストポート上で送信されるミラー化されたデータの量を低減し、（３）データのミラー化に関連する処理のオーバーヘッドを減らし、（４）容易に交換可能かつアップグレード可能な構成要素を提供する、ネットワーク記憶制御装置内で使用される装置及び方法を開発する必要がある。
【課題を解決するための手段】
【００１３】
本発明によると、ホストコンピュータの少なくとも１つの記憶装置との接続に関わる装置及び方法が提供される。前記装置は、第１のデータバス及び第２のデータバスを含む複数のデータバスを有する受動バックプレーンを備える。前記装置は、受動バックプレーン、ホストコンピュータ、及び記憶装置に接続される、少なくとも２つのチャネルインタフェースモジュールを有する。チャネルインタフェースモジュールは、ホストコンピュータ及び記憶装置と記憶データの送受信を行い、データバスに記憶データを選択的に転送するように動作可能である。前記装置は、受動バックプレーンに接続され、受動バックプレーンを介してチャネルインタフェースモジュールと通信し、チャネルインタフェースモジュールとの間で転送される記憶データを記憶し処理する、少なくとも２つの制御装置メモリモジュールをも有する。
【００１４】
チャネルインタフェースモジュールは、通信経路部とチャネルインタフェース部とを有する。チャネルインタフェース部は、ホストコンピュータ及び／または記憶装置と通信経路部との間で記憶データを転送するように動作可能である。通信経路部は、チャネルインタフェース部と受動バックプレーンとの間でデータを選択的に転送するように動作可能である。ある実施の形態において、第１のチャネルインタフェースモジュールが第１のバスポートと第２のバスポートを有し、第２のチャネルインタフェースモジュールが第３のバスポートと第４のバスポートを有し、バスポートの各々は通信経路部を受動バックプレーンに接続するように動作可能である。
【００１５】
制御装置メモリモジュールは、受動バックプレーンに接続するバスインタフェース部と、記憶データの一時記憶のためのメモリと、記憶データを編成し配列する処理部とを有する。バスインタフェース部は、受動バックプレーンに接続する少なくとも１つのバックプレーンインタフェースと、メモリに接続するメモリインタフェースと、処理部に接続する処理部と、処理インタフェース、メモリインタフェース、及びバックプレーンインタフェースを接続するように動作可能な制御論理を含むブリッジコアとを有する。バスインタフェース部は、データブロックに排他的論理和（ＸＯＲ：Exclusive OR）機能を実行するＸＯＲエンジンを含んでも良い。ある実施の形態において、バスインターフェース部は、受動バックプレーンへのダイレクトメモリアクセス（ＤＭＡ：Direct Memory Access）接続を提供するＤＭＡエンジンをも有する。別の実施の形態において、第１の制御装置メモリモジュールが第１のバスインタフェースと第２のバスインタフェースを有し、第２の制御装置メモリモジュールが第３のバスインタフェースと第４のバスインタフェースを有し、各バスインタフェースがバスインタフェース部を受動バックプレーンに接続するように動作可能である。
【００１６】
受動バックプレーンは、少なくとも第１及び第２のデータバスを含み、ある実施の形態において、第３及び第４のデータバスをも含む。受動バックプレーン上のデータバスは、次世代の周辺構成要素相互接続（ＰＣＩＸ：Peripheral Component Interconnect）バスであっても良い。ある実施の形態において、第１のバスポートは第１のデータバスに接続され、第２のバスポートは第３のデータバスに接続される。第３のバスポートは第２のデータバスに接続され、第４のバスポートは第４のデータバスに接続される。第１のバスインタフェースは第１のデータバスに接続され、第２のバスインタフェースは第２のデータバスに接続される。第３のバスインタフェースは第３のデータバスに接続され、第４のバスインタフェースは第４のデータバスに接続される。
【００１７】
第１のチャネルインタフェースモジュールの通信経路部は、第１の共有経路、第１の交換経路、及び第２の交換経路を有しても良く、第２のチャネルインタフェースモジュールの通信経路部は、第２の共有経路、第３の交換経路、及び第４の交換経路を有しても良い。この実施の形態において、第１の共有経路は、第１のバスポート及び第２のバスポートに接続される。第１の交換経路は、第１のバスポートとチャネルインタフェース部に接続される。第２の交換経路は、第２のバスポートとチャネルインタフェース部に接続される。第２の共有経路は、第３のバスポートと第４のバスポートに接続される。第３の交換経路は、第３のバスポートとチャネルインタフェース部に接続される。第４の交換経路は、第４のバスポートとチャネルインタフェース部に接続される。各交換経路は、チャネルインタフェース部に関わる通信を有効及び無効にするように動作可能である。
【００１８】
更に別の実施の形態において、ホストコンピュータを少なくとも１つの記憶装置に接続するネットワーク記憶装置は、少なくとも第１及び第２のチャネルインタフェースモジュールを備え、その各々がホストチャネル及びディスクチャネルに接続されるように適合され、ホストチャネル及びディスクチャネル越しにデータを送受信するよう動作可能である。ホストチャネルはホストコンピュータに接続され、ディスクチャネルは記憶装置に接続される。前記装置は、チャネルインタフェースモジュールと通信し、記憶装置に記憶するための記憶データを提供するためにホストコンピュータからのデータを処理し、ホストコンピュータに送信するための取出データを提供するために記憶装置からのデータを処理する、少なくとも第１及び第２の制御装置メモリモジュールを有する。また、前記装置は、制御装置メモリモジュールとチャネルインタフェースモジュールのそれぞれに接続され、チャネルインタフェースモジュールと制御装置メモリモジュールとの間の通信をサポートする受動バックプレーンを有する。受動バックプレーンは、データがホスト及び／またはディスクチャネルによって運ばれるとき、それと同時にデータが第１の制御装置メモリモジュールと第２の制御装置メモリモジュールとの間でミラー化され、ホストチャネルもディスクチャネルもミラー化されるデータの５０％を超えて運ばないように、通信をサポートする。
【００１９】
ホストコンピュータと１つ以上の記憶装置との間でデータを転送する方法は、第１のチャネル媒体を用いてホストコンピュータからチャネルインタフェースモジュールへのデータの第一の転送ステップを含む。次に、データは受動バックプレーンを用いて、チャネルインタフェースモジュールから第１の制御装置メモリモジュールへ転送する第２のステップで転送される。制御装置メモリモジュールは、記憶データを定義するためデータを処理する。記憶データは、受動バックプレーンを介してチャネルインタフェースモジュールへ、第３の転送ステップで転送される。記憶データは、第４の転送ステップで第２のチャネル媒体を介して記憶装置に転送される。記憶データは、第１のチャネル媒体及び第２のチャネル媒体と実質上独立して、第１の制御装置メモリモジュールと第２の制御装置メモリモジュールとの間でミラー化される。
【００２０】
ある実施の形態において、第２の転送ステップは、制御装置メモリモジュールにデータを転送するため受動バックプレーンの第１のバスを採用するステップを含む。第３の転送ステップは、チャネルインタフェースモジュールに記憶データを転送するため受動バックプレーンの第２のバスを採用するステップを含む。ある実施の形態において、ミラー化するステップは、第１のチャネル媒体も第２のチャネル媒体も使用しない。別の実施の形態において、ミラー化するステップが、記憶データの少なくとも５０％未満を運ぶように第１のチャネル媒体及び第２のチャネル媒体を制限するステップを含む。
【発明を実施するための最良の形態】
【００２１】
《実施の形態１》
図２を参照して、本発明のネットワークブリッジ１００のブロック図を示す。ネットワークブリッジ１００は、１つ以上の制御装置メモリモジュール（ＣＭＭ：Controller Memory Module）を含む。図２に示される実施の形態において、ＣＭＭ−Ａ  １０４とＣＭＭ−Ｂ  １０８の２つのＣＭＭがあるが、冗長性が必要とされないアプリケーションでは単一のＣＭＭが使用されても良く、追加のＣＭＭは追加の冗長性またはより高いパフォーマンスを要求するアプリケーションにおいて使用されても良い。各ＣＭＭ１０４、１０８は、２つのバックプレーンインタフェース１１２を有する。システムは、各ＣＭＭにつき２つのバスを有する受動バスバックプレーン１１６を備える。示される実施の形態において、受動バスバックプレーン１１６は、次世代の周辺構成要素相互接続（ＰＣＩＸ：Peripheral Component Interconnect）バスを使用するが、インフィニバンド(Infiniband)やラピッドＩＯ(RapidIO)等の交換アーキテクチャだけでなく、ＰＣＩローカルバス等の従来のバスアーキテクチャをも含むいかなるバス技術が用いられても良いことは理解されるべきである。受動バスバックプレーン１１６は第１のデータバス１２０、第２のデータバス１２４、第３のデータバス１２８、第４のデータバス１３２を有することができる。第１のデータバス１２０及び第２のデータバス１２４は、ＣＭＭバス接続１３４を介してＣＭＭ−Ａ  １０４上のバックプレーンインタフェース１１２に接続し、第３のデータバス１２８及び第４のデータバス１３２は、ＣＭＭバス接続１３４を介してＣＭＭ−Ｂ  １０８上のバックプレーンインタフェース１１２に接続する。
【００２２】
図２に示される実施の形態において、ＰＣＩＸバスは受動バスバックプレーン１１６において使用される。ＰＣＩＸバスの使用は、良く理解され比較的単純なバスプロトコルを有する受動バスバックプレーン１１６に接続される比較的高パフォーマンスのバス相互接続構成要素を可能にする。ＰＣＩＸ技術は、従来のＰＣＩバスを活用する次世代の技術である。ＰＣＩＸ技術によって、システム及び装置は、６４ビットまたは３２ビットのバス幅を用い、６４ビット、１３３ＭＨＺ ＰＣＩＸバスで最大１０６６Ｍｂ／ｓの帯域幅を有し、最大１３３ＭＨＺの周波数で作動することが可能になる。ＰＣＩＸバスは、高周波数の従来のＰＣＩバスに関わるタイミング制約を緩和するレジスタ・ツー・レジスタプロトコルを採用し、ＰＣＩＸバスの高周波数動作を可能にする。バス周波数を高める能力に加えて、ＰＣＩＸバスは、属性相、分割トランザクションサポート、最適化待ち状態、及び標準ブロック長移動(block size movement)を含む、バスの効率性を高めるいくつかの技術を組み込む。
【００２３】
属性相は、従来のＰＣＩ仕様書が与えるよりも詳細にバストランザクション(bus transaction)を記載する３６ビットの属性領域を使用する。属性相はアドレス相の直後に続き、トランザクションのサイズ、トランザクションの順序付け、キャッシュスヌーピング(cache snooping)要件、トランザクションイニシエータ(transaction initiator)の識別についての情報を含むいくつかのビット割当を有する。ＰＣＩＸにおいてサポートされる分割トランザクションでデータを要求する装置がターゲットに信号を送る。ターゲット装置は、要求を受け付けたことを要求元に伝える。ターゲット装置が新たなトランザクションを開始し、要求元にデータを送信するまで、要求元は自由に他の情報を処理できる。よって、分割トランザクションは、バスのより効率的な利用を可能にする。待ち状態は、最初のターゲット待ち時間を除き、従来のＰＣＩバスプロトコルでは使用される待ち状態を使用することを排除するＰＣＩＸにおいて、最適化される。ＰＣＩＸ装置が転送するデータを持たない時、他の装置がバス帯域幅を使用できるように、バスから自身を切り離す。これによって、バスとメモリリソースがより効率的に使用される。標準ブロック長移動では、アダプタ及びブリッジ（ホスト・ツー・ＰＣＩＸ及びＰＣＩＸ・ツー・ＰＣＩＸ）は、生来整列した１２８バイト境界でしかトランザクションを切り離すことが許可されない。これは、より長いバーストを可能とし、プロセッサバスやメインメモリ等のキャッシュラインベースのリソースの効率的な使用を可能とする。また、ＰＣＩＸ装置内のアーキテクチャをよりパイプライン化することを容易にする。
【００２４】
ネットワークブリッジ１００は、１つ以上のチャネルインタフェースモジュール（ＣＩＭ：Channel Interface Module）を有する。図２に示される実施の形態において、ＣＩＭ−１  １３６とＣＩＭ−２  １４０の、２つのＣＩＭがあるが、この数はネットワークブリッジ１００が使用される構成及びアプリケーションに応じて変化しても良いことは理解されるであろう。各ＣＩＭ１３６、１４０は、２つのＣＩＭバスインタフェースポート１４４ａ、１４４ｂを有する。各ＣＩＭ１３６、１４０上では、１つのＣＩＭバスインタフェースポート１４４ａがＣＩＭバス接続１４６を介してＣＭＭ−Ａ  １０４に接続される１つのバスと接続し、１つのＣＩＭバスインタフェースポート１４４ｂがＣＩＭバス接続１４６を介してＣＭＭ−Ｂ  １０８に接続される１つのバスと接続する。図２に示される実施の形態において、ＣＩＭ−１  １３６が第１のデータバス１２０及び第３のデータバス１２８に接続し、ＣＩＭ−２  １４０が第２のデータバス１２４及び第４のデータバス１３２に接続する。各ＣＩＭ１３６、１４０は、ホストコンピュータ（図示せず）に接続されるホストチャネル１５２に接続するホストポート１４８を有する。また、各ＣＩＭ１３６、１４０は、１つ以上の記憶装置（図示せず）に接続されるディスクチャネル１５８に接続するディスクポート１５６をも有する。下記に詳述する別の実施の形態において、要求されるアプリケーション及びチャネルインタフェースに応じて、ホストポートのみ、或いはディスクポートのみを含んでも良い。
【００２５】
ホストコンピュータがデータを送信する時、データはホストチャネル１５２上で送られ、ＣＩＭ１３６、１４０上のホストポート１４８で受信される。このデータは、受動バックプレーン１１６を介してＣＭＭ１０４、１０８に送られる。ＣＭＭ１０４、１０８はメモリと、下記に詳述されるように、記憶装置に記憶するため適切なフォームにデータを配列する処理ユニットとを含む。例えば、システムがＲＡＩＤ５ディスクアレイシステムで使用される場合、ＣＭＭ１０４、１０８は、ディスクに書き込まれるのに適切なデータのストライプ(stripe)にデータを配列し、データのストライプのためのパリティブロックを計算する。よって、ＣＭＭ１０４、１０８は、データを処理し、記憶のためにそれをフォーマット化する。一旦これが完了すれば、ＣＭＭ１０４、１０８は記憶準備ができた状態で、受動バックプレーン１１６を介してＣＩＭ１３６、１４０にデータを転送する。次に、ＣＩＭ１３６、１４０は、ディスクポート１５６に接続された記憶装置にデータを送信する。下記に詳述するように、データは、ＣＩＭ１３６、１４０及び受動バックプレーン１１６を用いてＣＭＭ１０４、１０８間を転送されることができる。加えて、後述されるように、ＣＭＭ１０４、１０８及びＣＩＭ１３６、１４０は、特定のドライブまたはホストに区分されても良い。
【００２６】
この構成は、ホストチャネル１５２及びディスクチャネル１５８が必ずしも同じチャネル媒体であるとは限らないモジュラー及び冗長アーキテクチャを提供する。ＣＭＭ１０４、１０８及びＣＩＭ１３６、１４０のモジュール性は、比較的低コストのアップグレードと故障ユニットの簡単な交換をも可能にする。下記で詳述するように、ＣＭＭ１０４、１０８間のデータのやり取りに受動バックプレーン１１６を使用することによって、従来の冗長制御装置環境におけるデータのミラー化で要求される、ディスクチャネル１５８またはホストチャネル１５２のチャネル帯域幅の使用をも回避することができる。
【００２７】
図３を参照して、ＣＭＭ１０４のブロック図を示す。ＣＭＭ１０４は、ＣＰＵサブシステム１６０、メモリ１６４、及びインタフェースＦＰＧＡ１６８を含むいくつかの構成要素を含む。ＣＰＵサブシステム１６０は、広範に使用されるマイクロプロセッサ等の標準型ＣＰＵであっても良いし、あるいはアプリケーション特有のプロセッサであっても良い。ある実施の形態において、ＣＰＵサブシステム１６０は、Intel Pentium（登録商標）クラスのマイクロプロセッサである。ＣＰＵサブシステム１６０は、ＰＣＩバス等の標準バスを用いて、インタフェースＦＰＧＡ１６８と通信する。メモリ１６４は、ＣＭＭ１０４内でのデータの一時記憶を可能にする。この記憶は、ディスクアレイに書き込まれるのを待っている待ち行列に入れられたデータの記憶等のいくつかの目的で、通常の読み取り及び書き込み動作の間、使用される。ある実施の形態において、ＤＤＲメモリＤＩＭＭが使用され、バスインタフェースを用いてインタフェースＦＰＧＡ１６８と通信する。
【００２８】
インタフェースＦＰＧＡ１６８は、多数の構成要素を含む。これらの構成要素は単一のＦＰＧＡに結合されても良く、あるいはＣＭＭ１０４内に複数の構成要素として存在しても良いことは理解されるべきである。図３に示される実施の形態において、インタフェースＦＰＧＡ１６８は、ＰＣＩインタフェース１７２、メモリインタフェース１７６、ＸＯＲエンジン１８０、ブリッジコア１８４、ＤＭＡエンジン１８８、データＦＩＦＯ１９２、及び２つのバックプレーンインタフェース１１２を含む。ＰＣＩインタフェース１７２は、ＣＰＵサブシステム１６０とインタフェースＦＰＧＡ１６８の他の部分との間のインタフェースとしての役割を果たす。図示される実施の形態において、このインタフェースは、標準ＰＣＩバス接続を用いる。ＰＣＩインタフェース１７２はブリッジコア１８４に接続し、順次、受動バックプレーン１１６上に配置された第１のデータバス１２０及び第２のデータバス１２４とインタフェースを取るバックプレーンインタフェース１１２に接続する。
【００２９】
メモリインタフェース１７６は、メモリ１６４とインタフェースＦＰＧＡ１６８間のインタフェースとしての役割を果たす。ＸＯＲエンジン１８０は、これから書き込まれるデータに関するパリティ情報を得るため、記憶されるデータに関するＸＯＲ動作を実行する役目をする。ＸＯＲエンジン１８０は、ディスクアレイ内の故障ドライブからデータを復元するためにパリティ情報の使用が必要とされる状況においても使用される。ＸＯＲエンジン１８０は、ＰＣＩインタフェース１７２を通じてＣＰＵサブシステム１６０に接続する。データＦＩＦＯ１９２はメモリインタフェース１７６及びブリッジコア１８４に接続し、順次バックプレーンインタフェース１１２に接続する。データＦＩＦＯは、読み取り及び書き込み動作を処理するためにＣＭＭ１０４によって使用される待ち行列として働く。下記に詳述されるように、ＤＭＡエンジン１８８は、ＣＭＭが冗長性を提供するように動作している時、別のＣＭＭからＤＭＡデータを提供及び受信する役目を果たす。
【００３０】
図４を参照して、ＣＩＭ１３６のブロック図を示す。ＣＩＭ１３６は、交換／共有ＰＣＩＸ ＦＰＧＡ２００とチャネルインタフェース２０４とを含む。交換／共有ＰＣＩＸ ＦＰＧＡ２００は、第１の交換ＰＣＩＸ経路２０８、第２の交換ＰＣＩＸ経路２１２、及び共有ＰＣＩＸ経路２１６を含む。各交換ＰＣＩＸ経路２０８、２１２は、バスインタフェースポート１４４に接続し、順次ＣＩＭバス接続１４６を介して受動バックプレーン１１６上でＰＣＩＸバスに接続する。また、各交換ＰＣＩＸ経路２０８、２１２はイネーブル入力２１４も有する。イネーブル入力２１４は、交換ＰＣＩＸ経路２０８、２１２を有効または無効にするために用いられる。共有ＰＣＩＸ経路２１６は、どのデータが共有経路２１６越しに経路付けされるかを決定し、そのデータを共有経路２１６を通じてその他のＣＩＭバス接続１４６にまで通過させるブリッジコア２２０を含む。同様に、各交換ＰＣＩＸ経路２０８、２１２は、どのデータが交換経路２０８、２１２越しに経路付けされるかを決定し、そのデータをチャネルインタフェース２０４にまで通過させるブリッジコア２２４をも含む。
【００３１】
チャネルインタフェース２０４は、交換／共有ＰＣＩＸ ＦＰＧＡ２００をホストチャネル１５２及びディスクチャネル１５８に接続する。チャネルインタフェースは、制御レジスタ２２８、アドレス操舵部２３２、ＰＣＩＸインタフェース２３６、ホストポート１４８、及びディスクポート１５６とを含む。制御レジスタ２２８は、ホストチャネル１５２またはディスクチャネル１５８上の通信を制御するため使用される。アドレス操舵部２３２は、ホストコンピュータまたは記憶装置のいずれかでデータを適切なアドレスに方向付けるために用いられる。ＰＣＩＸインタフェース２３６は、交換／共有ＰＣＩＸ ＦＰＧＡ２００からデータを受け取り、ホストポート１４８及びディスクポート１５６にデータを伝達する機能を果たす。ＰＣＩＸインタフェース２３６は、アプリケーションにとって最適なチャネル媒体上で通信することを可能にする。例えば、ホストチャネル１５２及びディスクチャネル１５８がファイバチャネルを使用する場合、ＰＣＩＸインタフェース２３６は交換／共有ＰＣＩＸ ＦＰＧＡ２００とファイバチャネルとの間のインタフェースの役割を果たすであろう。同様に、ホストチャネル１５２及びディスクチャネル１５８がＳＣＳＩチャネルを使用する場合、ＰＣＩＸインタフェース２３６は交換／共有ＰＣＩＸ ＦＰＧＡ２００とＳＣＳＩチャネルとの間のインタフェースの役割を果たすであろう。ホストチャネル１５２及びディスクチャネル１５８の両方が同じチャネル媒体を使用する場合、ＣＩＭ１３６はホストチャネル１５２及びディスクチャネル１５８の両方との通信のために同一のホストポート１４８及びディスクポート１５６を使用することができる。
【００３２】
ある実施の形態において、ディスクチャネル１５８及びホストチャネル１５２は、同じチャネル媒体を使用しない。この実施の形態において、異なるチャネル媒体毎に異なるＣＩＭが使用される。例えば、ホストコンピュータがファイバチャネルを使用し、ディスクアレイがＳＣＳＩチャネルを使用する場合、ホストコンピュータはファイバチャネルインタフェースを用いて一方のＣＩＭに接続し、ディスクアレイはＳＣＳＩチャネルインタフェースを用いて他方のＣＩＭに接続するであろう。冗長性が必要とされる場合は、２つ以上のＣＩＭが各チャネル媒体に接続されることがある。
【００３３】
図４に示される実施の形態において、バスインタフェースポート１４４及びＣＩＭバス接続１４６を通じて、第１の交換ＰＣＩＸ経路２０８が第１のデータパス１２０と通信し、第２の交換ＰＣＩＸ経路２１２が第３のデータパス１２８と通信する。下記に詳述するように、共有ＰＣＩＸ経路２１６は、一方のＣＭＭが他方のＣＭＭと通信するための通信経路として使用されても良い。ネットワークブリッジ上に存在する残りのＣＩＭに対しても、同様の構成が使用されると理解されるであろう。例えば、図２に示される実施の形態において、ＣＩＭ−２  １４０が第２のデータバス１２４及び第４のデータバス１３２に接続されるため、ＣＩＭ−２  １４０に含まれる交換／共有ＰＣＩＸ ＦＰＧＡ２００は、第２のデータバス１２４及び第４のデータバス１３２とそれぞれ通信する交換ＰＣＩＸ経路２０８、２１２を備えるであろう。同様に、２つを超えるＣＩＭが存在する場合、アプリケーションによる要求に応じて受動バックプレーン１１６上の適切なバスと通信するよう構成されるであろう。
【００３４】
図２〜４を参照すると、イネーブル入力２１４は、ＣＩＭ１３６、１４０を特定のＣＭＭ１０４、１０８に区分するために用いられる。このような場合、ＣＭＭ１０４または１０８が接続されるバスセグメントからＣＭＭ１３６または１４０へのアクセスを可能にすることによって、ＣＭＭ１０４または１０８はＣＩＭ１３６、１４０の排他的所有権を有する。例えば、ある実施の形態において、ＣＭＭ−Ａ  １０４がＣＩＭ−１  １３６に区分され、ＣＭＭ−Ｂ  １０８がＣＩＭ−２  １４０に区分される。したがって、ＣＭＭ−Ａ  １０４はＣＩＭ−１  １３６の排他的所有権を有し、ＣＭＭ−Ｂ  １０８はＣＩＭ−２  １４０の排他的所有権を有する。この区分(zoning)は、ＣＩＭ−１  １３６において第１の交換ＰＣＩＸ経路２０８上のイネーブル入力２１４を活性化し、ＣＩＭ−１  １３６において第２の交換ＰＣＩＸ経路２１２上のイネーブル入力２１４を無効にすることによって達成される。この結果、第１の交換ＰＣＩＸ経路２０８のみが、チャネルインタフェース２０４と通信する。上記のように、ＣＩＭ−１  １３６において、第１の交換ＰＣＩＸ経路２０８が第１のデータバスと通信し、それ故、ＣＭＭ−Ａ  １０４がＣＩＭ−１  １３６に区分される。同様に、ＣＩＭ−２  １４０をＣＭＭ−Ｂ  １０８へ区分するために、第２の交換経路２１２上のイネーブル入力２１４は活性化され、第１の交換ＰＣＩＸ経路２０８上のイネーブル入力は活性化されない。この結果、ＣＩＭ−２  １４０内の第２の交換ＰＣＩＸ経路２１２のみがチャネルインタフェース２０４と通信し、それ故、ＣＭＭ−Ｂ  １０８はＣＩＭ−２  １４０に区分される。ＣＭＭ１０４または１０８の一方のみにＣＩＭ１３６または１４０を制御させることによって、チャネル制御、マッピング、及び管理が簡易化される。区分は、２つ以上のホストチャネルまたはディスクチャネルが存在する場合に特に有用である。例えば、２つのホストチャネルと２つのディスクチャネルが存在する場合、ＣＭＭ−Ａ  １０４を第１のホストチャネル及び第１のディスクチャネルに区分し、ＣＭＭ−Ｂ  １０８を第２のホストチャネル及び第２のディスクチャネルに区分しても良い。したがって、ＣＭＭ−Ａ  １０４は、ＣＩＭ−１  １３６を通じて第１のホストチャネルからデータの送受信を行い、ＣＭＭ−Ｂ  １０８は、ＣＩＭ−２  １４０を通じて第２のホストチャネルからデータの送受信を行う。ＣＭＭは一貫性チェックを行わないため、ＣＭＭ内で区分を行うと活動中のアプリケーションにおける制御が簡易化される。両方のＣＭＭが同じチャネルを使用するため、区分が実行されない場合でも一貫性のチェックが必要である。このような場合、ＣＭＭは、読み取りまたは書き込み機能等のデータに関する何らかの機能を実行する前に、他のＣＭＭがそのデータに関していかなる機能も実行していないことを確認しなければならない。この一貫性のチェックは実行が複雑であり、各ＣＭＭが実行しなければならない追加のオーバーヘッドのため、パフォーマンスを低下させる可能性がある。
【００３５】
図５を参照して、冗長構成要素を含むネットワークブリッジ１００ａのブロック図を示す。この実施例において、ＣＭＭ−Ａ  １０４とＣＭＭ−Ｂ  １０８の２つのＣＭＭが使用される。また、ＣＩＭ−１  １３６とＣＩＭ−２  １４０の２つのＣＩＭが使用される。ＣＭＭ−Ａ  １０４及びＣＩＭ−１  １３６は両方とも受動バックプレーン１１６で第１のデータバス１２０に接続される。ＣＭＭ−Ａ  １０４及びＣＩＭ−２  １４０は両方とも受動バックプレーン１１６で第２のデータバス１２４に接続される。ＣＭＭ−Ｂ  １０８ＣＩＭ−１  １３６は両方とも受動バックプレーン１１６で第３のデータバス１２８に接続される。ＣＭＭ−Ｂ  １０８及びＣＩＭ−２  １４０は両方とも受動バックプレーン１１６で第４のデータバス１３２に接続される。
【００３６】
当業者によって理解されるように、冗長制御装置は、記憶サブシステムに取り付けられる２つの制御装置間のデータのミラー化を必要とする。これは、制御装置がホストコンピュータからデータを受信し、データをキャッシュし、データが書き込まれたというメッセージをホストコンピュータに送信する、書き戻しキャッシュ(write back cache)の使用による。従って、データが実際に制御装置に格納され、ディスクアレイ内のドライブに書き込まれるためにそこで待機している時、ホストコンピュータは、データが書き込まれたと判定する。このデータが故障の場合に失われないよう確保することを助けるため、冗長制御装置はこのデータを他の制御装置にミラー化し、従って、他の制御装置にデータの別のコピーができる。このことは、キャッシュの一貫性として既知である。ある実施の形態において、ＣＭＭ１０４、１０８は、ネットワークブリッジ１００ａにキャッシュの一貫性を提供するためにデータをミラー化する。これは、ＣＭＭ−Ａ  １０４とＣＭＭ−Ｂ  １０８との間にＤＭＡ経路を設けることによって実現できる。このことは、図３に関して上述したように、インタフェースＦＰＧＡ１６８内のＤＭＡエンジン１８８と、図４に関して上述したように、交換／共有経路ＦＰＧＡ２００内に配置される共有経路２１６とを設けることで達成可能である。各ＣＭＭ１０４、１０８は、他のＣＭＭとデータを送受信するためにこのＤＭＡ経路を用いる。ＤＭＡ経路を利用することによって、２つのＣＭＭ１０４、１０８は、ホストチャネル１５２またはディスクチャネル１５８を使用する必要なくデータをミラー化でき、従って、ディスクチャネル１５８またはホストチャネル１５２のチャネル帯域幅はデータをミラー化するＣＭＭ１０４、１０８によって消費されない。加えて、２つのＣＭＭ１０４、１０８間のＤＭＡ経路を採用することによって、ＣＭＭ１０４、１０８がミラー化を完了させるのに必要な処理リソースは、ホストチャネル１５２またはディスクチャネル１５８を用いるミラー化で必要とされる処理リソースよりも少なくなるであろう。
【００３７】
また、ＣＭＭ−Ａ  １０４とＣＭＭ−Ｂ  １０８との間にはフェイルオーバーリセットリンク２４０がある。フェイルオーバーリセットリンク２４０は、ＣＭＭ１０４、１０８のうち１つの故障を伝達するために使用される。ある実施の形態において、フェイルオーバーリセットリンク２０４は、ＣＭＭ−Ａ  １０４とＣＭＭ−Ｂ  １０８間のシリアル接続である。この実施の形態において、各ＣＭＭ１０４、１０８は、フェイルオーバーリセットリンク２０４越しに伝達され別のＣＭＭによって監視される心拍(heartbeat)信号を維持する。心拍信号に問題が検知された場合、ＣＭＭ１０４、１０８は、他のＣＭＭの動作を終了させるためにフェイルオーバーリセットリンク越しに信号を送信することができる。例えば、ＣＭＭ−Ｂ  １０８に故障がある場合、ＣＭＭ−Ａ  １０４は、ＣＭＭ−Ｂ  １０８からの心拍信号がもはや活性(active)でないことを検知する。心拍信号が受信されない所定期間の経過後、ＣＭＭ−Ａ  １０４はＣＭＭ−Ｂ  １０８に終了信号を送信する。ＣＭＭ−Ｂ  １０８は終了信号を受信すると、動作を停止する。次に、ＣＭＭ−Ａが、すべての読み取り及び書き込み動作の制御を引き受ける。同様に、ＣＭＭ−Ａ  １０４が故障した場合、ＣＭＭ−Ｂ  １０８がフェイルオーバーリセットリンク２４０越しに指示を受信し、すべての読み取り及び書き込み動作の制御を引き受けるであろう。したがって、システムは冗長であり、ＣＭＭ １０４または１０８が故障した時でも動作を継続する。
【００３８】
図６を参照して、１つのＣＭＭが故障した時のシステムの動作を説明する。図６に示されるように、ネットワークブリッジ１００ａは、ＣＭＭ−Ａ  １０４とＣＭＭ−Ｂ  １０８、受動ＰＣＩＸバックプレーン１１６、及びＣＩＭ−１  １３６とＣＩＭ−２  １４０を備える。ＣＭＭ−Ａ  １０４が故障した時、ＣＭＭ−Ｂ  １０８が上記のとおり、フェイルオーバーリセットリンク２４０越しに故障を検知し、ＣＭＭ−Ａ  １０４の動作を終了させる。次に、ＣＭＭ−Ｂ  １０８は、それまでＣＭＭ−Ａ  １０４によって実行されていたすべての記憶及び制御動作を担う。これが発生すると、ＣＭＭ−Ｂ  １０８は、ＣＭＭ−Ｂ  １０８のみとの通信を可能にするためにＣＩＭ−１  １３６及びＣＩＭ−２  １４０にコマンドを送信する。この場合、ＣＩＭ−１  １３６がこのコマンドを受信し、第１のデータバス１２０に接続された第１の交換経路２０８を無効にし、第３のデータバス１２８に接続された第２の交換経路２１２を有効にし、それにより、ＣＭＭ−Ｂ  １０８とＣＩＭ−１  １３６上のホストポート１４８及びディスクポート１５６とを接続する。また、ＣＩＭ−２  １４０はＣＭＭ−Ｂ  １０８からのコマンドを受信し、第２のデータバス１２４に接続された第１の交換経路２０８を無効にし、第４のデータバス１３２に接続された第２の交換経路２１２を有効にするために、同じ機能を実行する。ある実施の形態において、受動バックプレーン１１６は、ＣＩＭ１３６、１４０上のイネーブル入力２１４につながる制御論理線を含み、ＣＭＭ１０４、１０８に接続される。ＣＭＭ１０４、１０８は、ＣＩＭ１３６、１４０上の交換経路２０８、２１２を有効にし、及び無効にするために、これらの制御論理線を使用することができる。それに代えて、例えば、受動バックプレーン１１６上のＰＣＩＸバスを介してコマンド情報を受信するＣＩＭ内の制御論理等の他の実施の形態が、交換経路２０８、２１２を有効にし、及び無効にするために用いられても良い。
【００３９】
図７を参照して、１つのＣＩＭが故障した時のシステムの動作を説明する。ＣＭＭ１０４、１０８は、ＣＩＭ１３６,１４０内のすべての構成要素の適切な動作を確認する実行時診断（run time diagnostics）を定期的に実行する。これらの実行時診断の結果は、制御論理線を介してＣＭＭ１０４、１０８に伝達される。ＣＩＭ１３６、１４０に区分されるＣＭＭ１０４、１０８は、これらの実行時診断を監視し、エラーまたは故障が生じた場合に、ＣＩＭ１３６または１４０の動作を終了させるために、制御論理線越しにコマンドを伝達する。図７に示されるように、ＣＩＭ−１  １３６は故障を有する。ＣＭＭ−Ａ  １０４は、ＣＩＭ−１  １３６に故障があると判定し、ＣＩＭ−１  １３６を無効にする。次に、ＣＭＭ−Ａ  １０４は、ＣＩＭ−２  １４０上の共有経路２１６を介してＣＭＭ−Ｂ  １０８にこの情報を伝達する。ＣＭＭ−Ｂ  １０８は、この情報を受信し、ＣＩＭ−２  １４０上のホストポート１４８とディスクポート１５６との間のすべての通信の制御を担う。ＣＩＭ−１  １３６が交換されるか、あるいは故障が矯正されるまで、ＣＭＭ−Ａ  １０４は受動状態のままである。
【００４０】
図８を参照して、４つのＣＩＭモジュールが存在するネットワークブリッジ１００ｂのブロック図を示す。この実施の形態において、ＣＭＭ−Ａ  １０４及びＣＭＭ−Ｂ  １０８の２つのＣＭＭは、ＣＩＭ−１  １３６、ＣＩＭ−２  １４０、ＣＩＭ−３  ３００、及びＣＩＭ−４  ３０４の４つのＣＩＭと通信する。この実施の形態において、ＣＩＭ−１  １３６及びＣＩＭ−２  １４０上のＣＭＭ−Ａ交換経路２０８は有効にされる。同様に、ＣＩＭ−３  ３００及びＣＩＭ−４  ３０４では、ＣＭＭ−Ｂ交換経路２１２は有効にされる。したがって、ＣＩＭ−１  １３６及びＣＩＭ−２  １４０は、ＣＭＭ−Ａ  １０４とホストポート１４８及びディスクポート１５６との間のインタフェースを提供し、ＣＩＭ−３  ３００及びＣＩＭ−４  ３０４は、ＣＭＭ−Ｂ  １０８とホストポート１４８及びディスクポート１５６との間のインタフェースを提供する。本実施の形態のネットワークブリッジは、例えば、複数のホストが存在する時等を含むいくつかの場合に有用である。本実施の形態において、ＣＩＭ−１  １３６及びＣＩＭ−２  １４０が第１のホストへの通信を提供し、ＣＩＭ−３  ３００及びＣＩＭ−４  ３０４が第２のホストへの通信を提供する。２つの別個のＲＡＩＤアレイ等の複数のディスクノードに対しても、同じ配列が実行できる。理解されるように、この構成は冗長動作を提供する一方で、１つ以上のホストノードと１つ以上のディスクノードとの間の通信を提供することができる拡張性のあるシステムを提供する。加えて、こうした実施の形態は、異なるチャネル媒体を用いるホスト及び／またはディスクアレイを接続するのに有用であるかもしれない。例えば、現行のシステムは２つのＣＩＭを備え、ホスト及びディスクチャネルの両方にファイバチャネル接続を使用するかもしれない。ユーザがシステムをアップグレードしてＳＣＳＩ接続を用いる別のディスクアレイを追加したいと考える場合、ＳＣＳＩチャネルとの通信を可能にする追加ＣＩＭを付け加えることができるため、既存のハードウェアを交換する必要なく、現行のシステムのアップグレードが可能になる。
【００４１】
図９〜１１を参照して、ＣＩＭが採っても良い異なる構成、及びＣＩＭが接続しても良い異なるチャネル媒体を提供するためにいくつかのＣＩＭの別の実施の形態を示す。図９は、ＣＩＭ１３６ａを構成するＰＣＩＸ・ツー・ギガビットインターコネクト（ＧＢＩＣ：Gigabit Interconnect）のブロック図を示す。ＣＩＭ１３６ａ内では、交換／共有ＰＣＩＸ ＦＰＧＡ２００が、デュアルポート２Ｇｂファイバチャネルインタフェース４００に接続する。デュアルポート２Ｇｂファイバチャネルインタフェース４００の各ポートは、シリアライザ／デシリアライザ（ＳＥＲＤＥＳ：Serializer/Deserializer）４０４ａ、４０４ｂに接続する。各ＳＥＲＤＥＳ４０４ａ、４０４ｂは、２Ｇｂファイバチャネル接続を用いてチャネル媒体に接続する。図９に示される実施の形態において、一方のＳＥＲＤＥＳ４０４ａがＧＢＩＣホストチャネル１５２ａに接続し、他方のＳＥＲＤＥＳ４０４ｂがＧＢＩＣディスクチャネル１５８ａに接続する。
【００４２】
図１０は、ＰＣＩＸ・ツー・ＳＣＳＩ ＣＩＭ１３６ｂのブロック図を示す。ＣＩＭ１３６ｂ内では、交換／共有ＰＣＩＸ ＦＰＧＡ２００が、デュアルポートＵｌｔｒａ３２０ ＳＣＳＩインタフェース４０８に接続する。デュアルポートＵｌｔｒａ３２０ ＳＣＳＩインタフェース４０８の各ポートは、ホストチャネルまたはディスクチャネルに接続し、ＳＣＳＩシステムの必要に応じて、終端４１２接続をも有する。図１０に示される実施の形態において、デュアルポートＵｌｔｒａ３２０ ＳＣＳＩインタフェース４０８の１つのポートが超高密度相互接続（ＶＨＤＩＣ：Very High Density Interconnect）ホストチャネル１５２ｂに接続し、デュアルポートＵｌｔｒａ３２０ ＳＣＳＩインタフェース４０８の１つのポートがＶＨＤＩＣディスクチャネル１５８ｂに接続する。
【００４３】
図１１は、交換経路内で使用する高速スイッチ接続４１６ａ、４１６ｂを採用するＰＣＩＸ・ツー・イーサネット（登録商標）ＣＩＭ１３６ｃのブロック図を示す。高速スイッチ接続４１６ａ、４１６ｂは、高速スイッチ接続４１６ａ、４１６ｂを有効及び無効にする役割を果たすイネーブル入力を含むバス継電部である。各高速スイッチ接続４１６ａ、４１６ｂは、加速ＦＰＧＡとデータＦＩＦＯとを含むインタフェース接続４２０に接続する。インタフェース接続４２０は、データをイーサネット（登録商標）接続上で伝達するデータへの適切な機能を実行するギガビットイーサネット（登録商標）ＡＳＩＣ４２４に接続する。ギガビットイーサネット（登録商標）ＡＳＩＣ４２４は、信号を物理信号に変換するＭＡＣ／物理コンバータ４２８に接続し、次に適切な電圧で信号を出力するために変圧器４３２に経路付けされる。ある実施の形態において、変圧器４３２は、ディスクチャネルへのＧＢＩＣ接続部１５８ｃに接続する。図１１の実施の形態において、冗長システムが必要とされる場合、共有経路が他のＣＩＭに提供されるであろう。図９〜１１に示されるような異なるインタフェースモジュールの組合せを用いた単一のシステムにおいて、異なるチャネル媒体が使用されても良いことは評価されるであろう。例えば、ホストコンピュータはファイバチャネル媒体を用いてネットワークブリッジに接続し、ネットワークブリッジはＳＣＳＩチャネル媒体を用いてディスクアレイに接続しても良い。
【００４４】
本発明の上記の説明は、例証と解説を目的として提示された。更に、説明は、本発明を本明細書に開示された形式に限定することを意図していない。それ故に、関連技術の技能と知識の範囲内での変形や変異は上記の教示に相応し、本発明の範囲内である。上記に記載される実施の形態は、更に、発明を実行する現在既知の最良の様態を説明することと、上記実施の形態または別の実施の形態で、本発明の特別な用途または用法によって要求される各種変形とともに、他の当業者に本発明を利用可能とさせることを意図する。添付された請求項は、先行技術が許す程度にまで別の実施の形態を含むように解釈されることを意図する。
【図面の簡単な説明】
【００４５】
【図１】図１は、従来のデュアル制御装置ネットワーク記憶ブリッジを示すブロック図である。
【図２】図２は、本発明のネットワーク記憶装置を示すブロック図である。
【図３】図３は、本発明の制御装置メモリモジュールを示すブロック図である。
【図４】図４は、本発明のチャネルインタフェースモジュールを示すブロック図である。
【図５】図５は、本発明の冗長ネットワーク記憶ブリッジを示すブロック図である。
【図６】図６は、故障した制御装置メモリモジュールを示す冗長ネットワーク記憶ブリッジを示すブロック図である。
【図７】図７は、故障したチャネルインタフェースモジュールを示す冗長ネットワーク記憶ブリッジを示すブロック図である。
【図８】図８は、４つのチャネルインタフェースモジュールを示す冗長ネットワーク記憶ブリッジを示すブロック図である。
【図９】図９は、２ギガバイトのファイバチャネル相互接続チャネルを利用するネットワーク記憶ブリッジを示すブロック図である。
【図１０】図１０は、Ｕｌｔｒａ３２０ ＳＣＳＩチャネルを利用するネットワーク記憶ブリッジを示すブロック図である。
【図１１】図１１は、１ギガビットのイーサネット（登録商標）チャネルを利用するネットワーク記憶ブリッジを示すブロック図である。
【符号の説明】
【００４６】
１０  ＲＡＩＤネットワーク制御装置
１４、１８  ホストポート
２２、２６  ディスクポート
３０、３４  制御装置
３８  ファイバチャネルバックプレーン
４２、４６  入出力モジュール
１００  ネットワークブリッジ
１０４、１０８  ＣＭＭ
１１２  バックプレーンインタフェース
１１６  受動バスバックプレーン
１３４  ＣＭＭバス接続
１３６、１４０、３００、３０４  ＣＩＭ
１４６  ＣＩＭバス接続
１４８  ホストポート
１５２  ホストチャネル
１５６  ディスクポート
１５８  ディスクチャネル
２００  交換／共有ＰＣＩＸ ＦＰＧＡ
２０４  チャネルインタフェース
【図１】
2005507118.tif 000003
【図２】
2005507118.tif 000004
【図３】
2005507118.tif 000005
【図４】
2005507118.tif 000006
【図５】
2005507118.tif 000007
【図６】
2005507118.tif 000008
【図７】
2005507118.tif 000009
【図８】
2005507118.tif 000010
【図９】
2005507118.tif 000011
【図１０】
2005507118.tif 000012
【図１１】
2005507118.tif 000013
【国際公開パンフレット】
2005507118.tif 000014
2005507118.tif 000015
2005507118.tif 000016
2005507118.tif 000017
2005507118.tif 000018
2005507118.tif 000019
2005507118.tif 000020
2005507118.tif 000021
2005507118.tif 000022
2005507118.tif 000023
2005507118.tif 000024
2005507118.tif 000025
2005507118.tif 000026
2005507118.tif 000027
2005507118.tif 000028
2005507118.tif 000029
2005507118.tif 000030
2005507118.tif 000031
2005507118.tif 000032
2005507118.tif 000033
2005507118.tif 000034
2005507118.tif 000035
2005507118.tif 000036
2005507118.tif 000037
2005507118.tif 000038
2005507118.tif 000039
2005507118.tif 000040
2005507118.tif 000041
2005507118.tif 000042
2005507118.tif 000043
2005507118.tif 000044
2005507118.tif 000045
2005507118.tif 000046
2005507118.tif 000047
2005507118.tif 000048
2005507118.tif 000049
2005507118.tif 000050
【国際調査報告】
2005507118.tif 000051