JP2005508551A - 共有バスを用いたデータのミラー化 - Google Patents

共有バスを用いたデータのミラー化 Download PDF

Info

Publication number
JP2005508551A
JP2005508551A JP2003542490A JP2003542490A JP2005508551A JP 2005508551 A JP2005508551 A JP 2005508551A JP 2003542490 A JP2003542490 A JP 2003542490A JP 2003542490 A JP2003542490 A JP 2003542490A JP 2005508551 A JP2005508551 A JP 2005508551A
Authority
JP
Japan
Prior art keywords
data
management module
processor
controller
memory access
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2003542490A
Other languages
English (en)
Other versions
JP2005508551A5 (ja
Inventor
バサー,リチヤード,ダブリユー.
デイヴイス,イアン,アール.
Original Assignee
チヤパラル ネツトワーク ストレージ,インコーポレーテツド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by チヤパラル ネツトワーク ストレージ,インコーポレーテツド filed Critical チヤパラル ネツトワーク ストレージ,インコーポレーテツド
Publication of JP2005508551A publication Critical patent/JP2005508551A/ja
Publication of JP2005508551A5 publication Critical patent/JP2005508551A5/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2002Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant
    • G06F11/2007Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant using redundant communication media
    • G06F11/201Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant using redundant communication media between storage system components
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2089Redundant storage control functionality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2089Redundant storage control functionality
    • G06F11/2092Techniques of failing over between control units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2097Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements maintaining the standby controller/processing unit updated

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Hardware Redundancy (AREA)
  • Computer And Data Communications (AREA)
  • Bus Control (AREA)

Abstract

ホストコンピュータと、安価なディスクを用いた冗長アレイ(RAID:Redundant Array of Inexpensive Disks)等の記憶装置との間でデータを転送するためのネットワーク記憶制御装置(100)が開示される。ネットワーク記憶制御装置(100)は、ホストコンピュータと記憶装置とに接続されるように適用される少なくとも1つのチャネルインタフェースモジュール(136、140)を有する。チャネルインタフェースモジュール(136、140)は受動バックプレーン(116)に接続され、ホストコンピュータ及び記憶装置と、受動バックプレーン(116)との間でデータを選択的に転送する。ネットワーク記憶制御装置(100)は、受動バックプレーン(116)に取り付けられる少なくとも1つの制御装置管理モジュール(104、108)をも有する。制御装置管理モジュール(104、108)は、受動バックプレーン(116)を介してチャネルインタフェースモジュール(136、140)と通信し、ホストコンピュータ又は記憶装置から受け取ったデータを処理し、一時的に記憶する。冗長性が必要とされるアプリケーションにおいて、少なくとも2つの制御装置管理モジュール(104、108)と少なくとも2つのチャネルインタフェースモジュール(136、140)が使用されても良い。制御装置管理モジュール(104、108)は、受動バックプレーン(116)とチャネルインタフェースモジュール(136、140)上の共有通信経路を用いて相互間でデータをミラー化しても良く、それにより、データをミラー化するためのホストチャネル又はディスクチャネルの使用を実質的に回避する。チャネルインタフェースモジュール(136、140)は、ホストコンピュータ又は記憶装置を1つ以上の制御装置メモリモジュール(104、108)に選択的に接続するように動作可能である。制御装置管理モジュール(104、108)は、ミラー化されたデータの転送を促進するためにDMAエンジンを含んでも良い。

Description

【技術分野】
【0001】
本発明は、複数の制御装置構成においてデータを記憶する、特に、ダイレクトメモリアクセスエンジンを用いてデータをミラー化することに関する。
【背景技術】
【0002】
ネットワーク記憶制御装置は、典型的には、ホストコンピュータシステムをディスクドライブやテープドライブ等の周辺記憶装置と接続するために使用される。ネットワーク記憶制御装置は、ホストコンピュータと周辺記憶装置との間のインタフェースの役割を果たす。多くのアプリケーションにおいて、ネットワーク記憶制御装置は、ホストコンピュータと周辺装置との間で転送されるデータに関わる処理機能を実行する。このようなシステムの一般的なアプリケーションの1つが、安価なディスクを用いた冗長アレイ(RAID:redundant array of inexpensive disks)である。RAIDシステムは、ディスクドライブの故障からデータを保護するため、複数のディスクドライブにデータを記憶する。1つのディスクドライブが故障した場合、通常RAIDシステムはアレイ内の残りのドライブから、故障したドライブに記憶されていたデータを復元できる。RAIDシステムは、多くの場合、ホストコンピュータとディスクドライブアレイとの間のインタフェースである、RAID制御装置を含むネットワーク記憶制御装置を使用する。
【0003】
多くのアプリケーションは、非常に高い可用性を備える記憶システムを必要とする。ユーザはRAIDシステムに記憶されたデータに大きく依存するため、金融機関や航空予約システム等の多くのアプリケーションにおいて、この高い可用性は重要である。これらの種類のアプリケーションでは、RAIDシステムに記憶されるデータの非可用性が、結果として収益及び/又は顧客満足度の大幅な低下を生む可能性がある。このようなアプリケーションでRAIDシステムを採用することは、1つのディスクドライブが故障してもなおデータが記憶されシステムから回復できるため、記憶データの可用性を向上させる。RAIDシステムの使用に加えて、記憶システムの可用性を更に向上させるために、冗長RAID制御装置を使用することが一般的である。こうした状況では、2つ以上の制御装置がRAIDシステムで使用され、各制御装置は、制御装置の1つが故障した場合、他の残りの制御装置が、故障した制御装置の作業を引き受けるというフェイルオーバー機能を有する。このようなプラットフォームはRAIDシステムの可用性を高めるが、下記に述べるようないくつかの不利点を引き起こす可能性がある。
【0004】
図1は、RAIDネットワーク記憶制御装置10を構成するデュアル制御装置のブロック図であり、ファイバチャネル・ツー・ファイバチャネル接続を示す。すなわち、この例では、ホストコンピュータとディスクドライブアレイの両方が、ファイバチャネル接続を用いてネットワーク記憶制御装置と通信する。ファイバチャネルはこのようなシステムにおいて一般的なチャネル媒体であるが、例えば、小型コンピュータシステムインタフェース(SCSI:Small Computer System Interface)やイーサネット(登録商標)等の他のチャネルも用いられても良いことは理解されるべきである。図1に示されるRAIDシステムは、ホストポート−1 14及びホストポート−2 18の2つのホストポートと、ディスクポート−1 22及びディスクポート−2 26の2つのディスクポートとを含む。RAIDシステムにおいて一般的で、当該技術において良く知られているように、各ホストポート14、18は異なるホストコンピュータに区分され、各ディスクポート22、26は異なるディスクアレイに区分されていても良い。ネットワーク記憶制御装置10は、制御装置−A30と制御装置−B34のデュアルRAID制御装置を含む。制御装置の区分(zoning)を採用するシステムにおいて、制御装置−A30がホストポート−1 14及びディスクポート−1 22に区分され、制御装置−B34がホストポート−2 18及びディスクポート−2 26に区分され得る。
【0005】
当該技術において理解されるように、デュアル制御装置を採用するシステムは、キャッシュの一貫性(cache coherency)を維持するため制御装置間のデータのミラー化を必要とする。各制御装置30、34は、制御装置間の冗長性を維持し、それによって1つの制御装置が故障した場合にRAIDシステムの動作を維持するため、他の制御装置のデータ及び状態のコピーを備えていなければならない。制御装置間のデータのミラー化は、後に詳述するように、制御装置間でのデータの転送が制御装置の処理リソースだけでなくチャネル帯域幅をも使用するため、RAIDシステムのパフォーマンスを低下させる可能性がある。
【0006】
制御装置30、34は、入出力モジュール−1 42と入出力モジュール−2 46の2つの入出力モジュールに接続されるファイバチャネルバス38に接続される。各制御装置30、34は、CPUサブシステム50、2倍のデータ転送速度の(DDR:Double Data Rate)メモリ54、制御論理58、2つのホストポート62a、62bのデュアル(dual)ポートファイバチャネル接続、及び2つのディスクポート66a、66bのデュアルポートファイバチャネル接続を含む。CPUサブシステム58は、データの分散化と、読み取り及び書き込みコマンドの開始及び実行とを含む、ディスクアレイへのデータの記憶に必要なタスクを実行する。DDRメモリ54は、データ及びその他の情報のための不揮発性記憶領域である。制御論理58は、CPUサブシステム50と、DDRメモリ54と、ホストポート62a、62b及びディスクポート66a、66bとの仲介等のいくつかの機能を実行する。制御論理58は、排他的論理和(XOR:Exclusive OR)エンジン等のパリティ生成機能を含むその他の機能をも有していても良い。ホストポート62a、62b及びディスクポート66a、66bは、ファイバチャネルバックプレーン38との通信を提供する。入出力モジュール42、46は、ポートバイパス回路(port bypass circuit)としても良く知られている、各ホストポート14、18及び各ディスクポート22、26を各制御装置30、34に接続するために機能するリンク復元回路(LRC:Link Resiliency Circuit)70を含む。これによって、両制御装置30、34は、両ホストポート14、18及び両ディスクポート22、26にアクセス可能となる。
【0007】
完全な冗長性を提供するため、各制御装置は各ホストポート14、18及び各ディスクポート22、26との接続を有していなければならない。このようにすることで、制御装置のうち1つが故障した場合には、他の制御装置が動作を継続できる。しかしながら、RAIDシステムのパフォーマンスを高めるために区分の技法を用いる場合、これらのポートの半分が受動的(passive)である。例えば、制御装置−A30がホストポート−1 14及びディスクポート−1 22に区分される場合、制御装置−A30はホストポート−1 14からの全ての通信を受信し、ディスクポート−1 22上のディスクアレイを制御する。同様に、制御装置−B34は、ホストポート−2 18及びディスクポート−2 26に区分されるであろう。これらの区分の技法は当該技術において良く知られており、RAIDシステムのパフォーマンスを高めるだけでなく、2つの制御装置30、34の制御及び通信を簡易化することもできる。図1の例において、制御装置−A30上で、ホストポート接続62aとディスクポート接続66aは、入出力モジュール−1 42のLRC70を通じてホストポート−1 14及びディスクポート−1 22にそれぞれ接続される。制御装置−A30はホストポート−1 14及びディスクポート−1 22に区分されるため、ホストポート接続62a及びディスクポート接続66aはホストポート−1 14及びディスクポート−1 22と能動的に通信する。残りのホストポート接続62b及びディスクポート接続66bは、入出力モジュール−2 46のLRC70を通じてホストポート−1 18及びディスクポート−2 26にそれぞれ接続される。制御装置−B34が故障しない限り、制御装置−A30はホストポート−2 18及びディスクポート−2 26と能動的に通信しないため、これらの接続は典型的には受動接続である。同様に、制御装置−B34はホストポート−2 18及びディスクポート−2 26に区分されるであろう。よって、制御装置−B34上では、ホストポート接続62b及びディスクポート接続66bは、入出力モジュール−2 46のLRC70を通じてホストポート−2 18及びディスクポート−2 26と通信するであろう。残りのホストポート接続62a及びディスクポート接続66aは、入出力モジュール−1 42のLRC70を通じてホストポート−1 14及びディスクポート−1 22に接続されるであろう。
【0008】
上記のように、典型的な冗長制御装置の動作において、データが制御装置間でミラー化される。制御装置−A30と制御装置−B34との間でデータをミラー化する時、共有ディスクポート接続、すなわち、制御装置A30のディスクポート接続66b及び制御装置Bのディスクポート接続66a上で、ミラー化されたデータを転送するのが一般的である。例えば、制御装置−B34は、ディスクポート−2越しにドライブアレイに書き込まれるデータを、ホストポート−2 18越しに受信しても良い。制御装置−B34は、このデータを受信し、メモリ54に格納する。キャッシュの一貫性を維持するため、制御装置−B34はこのデータを制御装置−A30にも伝達しなければならず、従って、両方の制御装置がそのデータを有し、一方の制御装置が故障しても、他方の制御装置がなおそのデータを書き込むことができる。
【0009】
従来のシステムにおいて、このミラー化は幾つかのステップを経て成される。図12は、両方がアクティブな(active/active)制御装置の組において2つの制御装置間でデータをミラー化するために必要とされるステップを示すフローチャートである。最初に、制御装置−B34は、ブロック80に示されるように、ディスクアレイに書き込まれるデータを受信する。ブロック82によって記載されるように、制御装置−B34は、データをミラー化するために、メッセージが送信されることを制御装置−A30に通知する第1の割り込みを制御装置−A30に引き起こす第1のミラー化コマンドを発する。割り込みは、本例の制御装置−Bにおいてメッセージが受信された時に、制御装置上のハードウェアによって自動的に、本例の制御装置−A上のハードウェアにおけるプロセッサに生成される信号であり、プロセッサに作業を停止させ、割り込みを使用可能にする。制御装置−Aは、第1の割り込みを受信すると、いかなる処理活動をも中止して第1のミラー化コマンドを処理する。制御装置−B34は次に、ブロック84に示されるように、第2の割り込みを引き起こす、メタデータ(metadata)を含む第2のミラー化コマンドを発する。メタデータは、実際のメッセージ本体と、制御装置−A30にユーザデータを記憶するメモリの位置を示す情報とを含む。次に、制御装置−A30は、ブロック86に示されるように、その不揮発性メモリ(NVRAM)の内容を、メタデータ内で指定されるデータブロックに対して無効として記録する。次に、ブロック88によれば、制御装置−B34は、第3の割り込みを引き起こす、ユーザデータを含む第3のミラー化コマンドを発する。制御装置−Aは、ブロック90によって記載されるように、ユーザデータを受信し、そのNVRAMの指定された位置にユーザデータを記憶し、NVRAMの内容を、指定されたデータブロックに対して有効として記録する。一旦制御装置−B34が適切な書き込み動作を完了すると、ブロック92によって記載されるように、制御装置−B34は次に第4の割り込みを引き起こす第4のミラー化コマンドと書き込みが完了したという通知とを発する。次に制御装置−Aは、ブロック94に示されるように、書き込み完了を記録する。
【発明の開示】
【発明が解決しようとする課題】
【0010】
理解されうるように、このミラー化技法は、制御装置間でデータをコピーすることには成功である一方、かなりの処理リソースを使用する可能性がある。各書き込み動作は4つの割り込みを必要とし、受信するプロセッサに処理中のいかなるタスクをも中断させ、割り込みを使用可能にする。従って、データをミラー化するのに少ない処理リソースしか消費しないネットワーク記憶制御装置を備えることが有利であろう。
【0011】
加えて、このミラー化は、典型的にはディスクチャネルを用いて成される。上記のミラー化コマンドのそれぞれにおいて、制御装置−B34は、ディスクポート−1 22に接続するLRC70に接続するディスクポート接続66a上でデータを送信する。データはLRC70を通じて転送され、制御装置−A上のディスクポート接続66aで受信される。次に、制御装置−Aはそのデータを受信し、適切な処理及び記憶ステップを実行する。同様に、制御装置−A30がディスクポート−1 22上のディスクアレイに書き込まれるデータを受信した場合、同じミラー化技法を用いて、制御装置−A30は制御装置−B34にそのデータを送信する。この技法は、専用のディスクポートを必要とせず、1つ以上のディスクポートが使用され得ることを留意されたい。
【0012】
これは各制御装置上の残りのディスクポートを使用するが、各制御装置上の第2のホストポートは未使用のままであり、従って、システムの通常動作時は受動的である。各制御装置上の受動ポートは、制御装置に相当量のハードウェアを追加し、ネットワーク記憶制御装置10の大幅なコスト増を招く可能性がある。したがって、制御装置上に設けられる受動ポートに関連するコストとハードウェアを低減しつつ、高可用性を維持する冗長ネットワーク記憶制御装置を提供することが有利であろう。
【0013】
加えて、こうしたシステムにおいてデータをミラー化すると、結果的に、ミラー化されたデータを受信する、あるいはディスクにデータを転送するために用いられる制御装置にとっては、ミラー化されたデータと記憶データとが、同じポート上で送信されることになる。ディスクアレイへの帯域幅は、ミラー化されたデータによって消費され、ネットワーク記憶制御装置のパフォーマンスを低減させる可能性がある。したがって、制御装置間でデータをミラー化する時にディスクチャネル帯域幅を全くかほとんど消費しないネットワーク記憶制御装置を備えることが有利であろう。
【0014】
更に、継続的に高まりつつあるデータ記憶の需要と共に、RAID制御装置は、追加のディスクドライブやより高速なバスインタフェースを伴うアップグレードを必要とする。しかしながら、RAID制御装置は追加のバスインタフェース能力を追加する、あるいは新しい種類のバスインタフェースをサポートするように構成されていないかもしれない。こうした制御装置は一般的に、アップグレードが実行される時に取り替えられなければならない。この制御装置の交換によって、RAIDシステムをアップグレードするコストが増す可能性がある。動作可能なRAID制御装置の交換は、RAIDシステムをアップグレードする決定を阻むかもしれない価値の減損を表す。したがって、簡易かつ低コストに、能力のアップグレードをサポートするだけでなく新しい種類のインタフェースをもサポートすることが可能なシステムを備えることが有利であろう。
【0015】
したがって、(1)受動的な構成要素のためのコストを軽減しつつ冗長性を提供し、(2)ディスクポート又はホストポート上で送信されるミラー化されたデータの量を低減し、(3)データのミラー化に関連する処理のオーバーヘッドを減らし、(4)容易に交換可能かつアップグレード可能な構成要素を提供する、ネットワーク記憶制御装置内で使用される装置及び方法を開発する必要がある。
【課題を解決するための手段】
【0016】
本発明によれば、記憶アレイを有する記憶システムにおいてデータをミラー化するための方法及び装置が提供される。前記装置は、第1のプロセッサ及び第1のダイレクトメモリアクセスエンジンを含む第1の制御装置管理モジュールを含む。前記第1のプロセッサは、記憶アレイに関わる読み出し動作及び書き込み動作を制御するのに用いられる。前記第1のダイレクトメモリアクセスエンジンは、前記第1の制御装置メモリモジュールによって受信されるデータを記憶するのに用いられる。前記装置はまた、第2のプロセッサ及び第2のダイレクトメモリアクセスエンジンを含む第2の制御装置管理モジュールを有する。前記第2のプロセッサは、記憶アレイに関する読み出し動作及び書き込み動作を制御するのに用いられる。前記第2のダイレクト管理アクセスエンジンは、前記第2の制御装置管理モジュールから前記第1の制御装置メモリモジュールにデータを転送するのに用いられることもできる。前記データは、前記第2のプロセッサの割り込みを回避しつつ、前記第1のダイレクトメモリアクセスエンジンを用いて前記第1の制御装置管理モジュールから前記第2の制御装置管理モジュールへミラー化される。前記第1のダイレクトメモリアクセスエンジンは前記第1のプロセッサから分離しているが通信し、前記第1のプロセッサは前記第1のダイレクトメモリアクセスエンジンを用いて前記データのミラー化を制御する。ある実施の形態において、前記第1の制御装置管理モジュールは、フィールドプログラマブルゲートアレイ(field programmable gate array)を有する。前記第1のダイレクトメモリアクセスエンジンは、フィールドプログラマブルゲートアレイの少なくとも一部と通信し、前記第1のダイレクトメモリアクセスエンジンは、フィールドプログラマブルゲートアレイの1部であることもできる。
【0017】
ある実施の形態において、前記装置は、第1の共有経路を有する第1のチャネルインタフェースモジュールを含む。前記第1のチャネルインタフェースモジュールは前記第1の制御装置メモリモジュールと通信し、前記第1の共有経路は、前記第1の制御装置管理モジュールと前記第2の制御装置管理モジュールとの間でデータを転送するのに用いられる。受動バックプレーンは、前記第1のチャネルインタフェースモジュール及び前記第1の制御装置管理モジュールを相互接続する。前記第2のプロセッサは、前記データが前記第2の制御装置メモリモジュールにミラー化されている間、前記第2の制御装置管理モジュールに関わる動作を制御する。前記データは、前記第2のダイレクトメモリアクセスエンジンから独立して前記第2の制御装置管理モジュールにミラー化される。前記第2の制御装置管理モジュール内には不揮発性メモリがあり、前記データは前記第2のプロセッサから独立して前記不揮発性メモリ内に記憶され得る。前記第1のダイレクトメモリアクセスエンジンは、前記データが記憶される前記不揮発性メモリの部分を無効として記録し、前記不揮発性メモリに前記データを転送する。前記データが記憶された前記不揮発性メモリの前記部分は、次に有効として記録される。
【0018】
前記方法は、前記第1のダイレクトメモリアクセスエンジンを用いて前記第1の制御装置管理モジュールから前記第2の制御装置管理モジュールへデータをミラー化するステップを含む。前記第1の制御装置管理モジュール内の前記第1のプロセッサはデータのミラー化を行うかを判定する。前記第2の制御装置管理モジュール内の前記第2のプロセッサは、記憶アレイに関わる読み出し及び書き込み動作を制御し、前記第2のプロセッサの割り込みを回避しながら前記データのミラー化を行う。従って、前記第2のプロセッサは、前記データがミラー化されている時間の間、それ自身の動作を実行し続けることができる。前記データのミラー化は、前記第2のダイレクトメモリアクセスエンジンを必要とすることなく前記第1のダイレクトメモリアクセスエンジンを用いて行われる。ミラー化の間、前記データは前記第2の制御装置管理モジュール内の不揮発性メモリに記憶される。ミラー化が行われている時、前記第1のダイレクトメモリアクセスエンジンは、前記データが受信される前記不揮発性メモリの内容を無効として記録するために用いられ、前記不揮発性メモリに前記データを転送する。前記第1のダイレクトメモリアクセスエンジンは次に、データが受信された前記不揮発性メモリの内容を有効として記録する。ある実施の形態において、前記第1のダイレクトメモリアクセスエンジンはまた、前記第1の制御装置管理モジュールを用いて前記記憶アレイに記憶する情報に対するパリティを判定するのに用いられる。
【発明を実施するための最良の形態】
【0019】
《実施の形態1》
図2を参照して、本発明のネットワーク記憶装置100のブロック図を示す。ネットワーク記憶装置100は、1つ以上の制御装置管理モジュール(CMM:Controller Management Module)を含む。図2に示される実施の形態において、CMM−A104とCMM−B108の2つのCMMがあるが、冗長性が必要とされないアプリケーションでは単一のCMMが使用されても良く、追加の冗長性又はより高いパフォーマンスを要求するアプリケーションにおいて追加のCMMが使用されても良い。各CMM104、108は、2つのバックプレーンインタフェース112を有する。システムは、各CMMにつき2つのバスを有する受動バスバックプレーン116を備える。示される実施の形態において、受動バスバックプレーン116は、次世代の周辺構成要素相互接続(PCIX:Peripheral Component Interconnect)バスを使用するが、インフィニバンド(Infiniband)やラピッドIO(RapidIO)等の交換アーキテクチャだけでなく、PCIローカルバス等の従来のバスアーキテクチャをも含むいかなるバス技術が用いられても良いことは理解されるであろう。受動バスバックプレーン116は第1のデータバス120、第2のデータバス124、第3のデータバス128、第4のデータバス132を有することができる。第1のデータバス120及び第2のデータバス124は、CMMバス接続134を介してCMM−A104上のバックプレーンインタフェース112に接続し、第3のデータバス128及び第4のデータバス132は、CMMバス接続134を介してCMM−B108上のバックプレーンインタフェース112に接続する。
【0020】
図2に示される実施の形態において、PCIXバスは受動バスバックプレーン116において使用される。PCIXバスを使用することによって、良く理解され比較的単純なバスプロトコルを有する受動バスバックプレーン116に接続される比較的高パフォーマンスのバス相互接続構成要素が可能となる。PCIX技術は、従来のPCIバスを活用する次世代の技術である。
【0021】
ネットワーク記憶装置100は、1つ以上のチャネルインタフェースモジュール(CIM:Channel Interface Module)を有する。図2に示される実施の形態において、CIM−1 136とCIM−2 140の、2つのCIMがあるが、この数はネットワーク記憶装置100が使用される構成及びアプリケーションに応じて変化しても良いことは理解されるであろう。各CIM136、140は、2つのCIMバスインタフェースポート144a、144bを有する。各CIM136、140上では、1つのCIMバスインタフェースポート144aがCIMバス接続146を介してCMM−A104に接続される1つのバスと接続し、1つのCIMバスインタフェースポート144bがCIMバス接続146を介してCMM−B108に接続される1つのバスと接続する。図2に示される実施の形態において、CIM−1 136が第1のデータバス120及び第3のデータバス128に接続し、CIM−2 108が第2のデータバス124及び第4のデータバス132に接続する。各CIM136、140は、ホストコンピュータ(図示せず)に接続されるホストチャネル152に接続する2つのホストポート148を有する。また、各CIM136、140は、1つ以上の記憶装置(図示せず)に接続されるディスクチャネル158に接続する2つのディスクポート156をも有する。記憶装置は、RAIDアレイ等の記憶アレイであっても良い。下記に詳述するように、別の実施の形態において、CIMは、要求されるアプリケーション及びチャネルインタフェースに応じて、複数のホストポート或いは複数のディスクポートを含んでも良い。
【0022】
ホストコンピュータがデータを送信する時、データはホストチャネル152上で送信され、CIM136、140上のホストポート148で受信される。このデータは、受動バックプレーン116を介してCMM104、108に送られる。CMM104、108は、下記により詳細に述べられるように、メモリと、記憶装置に記憶するため適切なフォームにデータを配列する処理ユニットとを含む。例えば、システムがRAID5ディスクアレイシステムで使用される場合、CMM104、108は、ディスクに書き込まれるのに適切なデータのストライプ(stripe)にデータを配列し、データのストライプに対するパリティブロックを計算する。よって、CMM104、108は、データを処理し、記憶のためにそれをフォーマット化する。一旦これが完了すれば、CMM104、108は記憶準備ができた状態で、受動バックプレーン116を介してCIM136、140にデータを転送する。次に、CIM136、140は、ディスクポート156に接続された記憶装置にデータを送信する。下記に詳述するように、データは、CIM136、140及び受動バックプレーン116を用いてCMM104、108間を転送され得る。加えて、後述されるように、CMM104、108及びCIM136、140は、特定のドライブ又はホストと対応付けられても良い。
【0023】
この構成は、ホストチャネル152及びディスクチャネル158が必ずしも同じチャネル媒体であるとは限らないモジュラー及び冗長アーキテクチャを提供する。CMM104、108及びCIM136、140のモジュール性は、比較的低コストのアップグレードと故障ユニットの簡単な交換をも可能にする。下記で詳述するように、CMM104、108間のデータのやり取りに受動バックプレーン116を使用することによって、従来の冗長制御装置環境におけるデータのミラー化で要求される、ディスクチャネル158又はホストチャネル152のチャネル帯域幅の使用をも回避できる。
【0024】
図3を参照して、CMM104のブロック図を示す。CMM104は、CPUサブシステム160、メモリ164、及びインタフェースFPGA168を含むいくつかの構成要素を有する。CPUサブシステム160は、広範に使用されるマイクロプロセッサ等の標準型CPUであっても良いし、あるいはアプリケーション特有のプロセッサであっても良い。ある実施の形態において、CPUサブシステム160は、Intel Pentium(登録商標)クラスのマイクロプロセッサである。CPUサブシステム160は、PCIバス等の標準バスを用いて、インタフェースFPGA168と通信する。メモリ164は、CMM104内でのデータの一時記憶を可能にする。この記憶は、ディスクアレイに書き込まれるのを待っている待ち行列に入れられたデータの記憶等のいくつかの目的で、通常の読み取り及び書き込み動作の間、使用される。ある実施の形態においては、バスインタフェースを用いてインタフェースFPGA168と通信する、DDRメモリDIMMが使用される。
【0025】
インタフェースFPGA168は、多数の構成要素を含む。これらの構成要素は単一のFPGAに結合されても良く、あるいはCMM104内のいくつかの構成要素に存在しても良いことは理解されるべきである。図3に示される実施の形態において、インタフェースFPGA168は、PCIインタフェース172、メモリインタフェース176、XORエンジン180、ブリッジコア184、DMAエンジン188、複数のデータFIFO192、及び2つのバックプレーンインタフェース112を含む。PCIインタフェース172は、CPUサブシステム160とインタフェースFPGA168の他の部分との間のインタフェースとしての役割を果たす。図示される実施の形態において、このインタフェースは、標準PCIバス接続を用いる。PCIインタフェース172はブリッジコア184に接続し、順次、受動バックプレーン116上に配置された第1のデータバス120及び第2のデータバス124とインタフェースを取るバックプレーンインタフェース112に接続する。
【0026】
メモリインタフェース176は、メモリ164とインタフェースFPGA168間のインタフェースとしての役割を果たす。XORエンジン180は、書き込まれるデータに関するパリティ情報を得るために、記憶されるデータに関するXOR動作を実行するように働く。XORエンジン180は、ディスクアレイ内の故障ドライブからデータを復元するためにパリティ情報の使用が必要とされる状況においても使用される。XORエンジン180は、PCIインタフェース172を通じてCPUサブシステム160に接続する。複数のデータFIFO192はメモリインタフェース176及びブリッジコア184に接続し、順次PCIXインタフェース196に接続する。複数のデータFIFOは、読み取り及び書き込み動作を処理するためにCMM104によって使用される待ち行列として働く。下記に詳述されるように、DMAエンジン188は、CMMが冗長性を提供するように動作している時、別のCMMにDMAデータを提供するように働く。ある実施の形態において、DMAエンジン188はまた、XOR動作を実行するために、XORエンジン180と関連して用いられ、メモリ164内の2つの領域からデータを読み出し、XORエンジン180にデータを提供し、メモリ164内の第3の領域にXORエンジンの出力を書き込む。
【0027】
図4を参照して、CIM136のブロック図を示す。CIM136は、PCIXブリッジ200と2つのチャネルインタフェース204とを含む。PCIXブリッジ200は、第1の交換経路208及び第2の交換経路212を接続するように動作可能である。各交換経路208、212は、バスインタフェースポート144に接続し、順次CIMバス接続146を介して受動バックプレーン116上でPCIXバスに接続する。PCIXブリッジ200は、交換PCIX経路208、212上で送信されるデータを監視し、そのデータが交換PCIX経路208、212間で経路付けされるかどうかを判定するように動作可能である。この、交換PCIX経路208、212間のデータの監視及び経路付けは、主にCMM間のミラー化動作を可能にするために用いられ、下記に詳述されるであろう。
【0028】
チャネルインタフェース204は、交換PCIX経路208、212をホストポート148及びディスクポート156に接続する。チャネルインタフェース204は、交換PCIX経路208、212上で送信されるデータを監視し、データがホストポート148或いはディスクポート156のどちらに経路付けされるかを判定するように動作可能である。この監視及び経路付けは、データを適切なディスク又はホスト位置に通過させ、ミラー化データをホスト又はディスクポート148、156にまで通過させない。チャネルインタフェース204は、アプリケーションにとって最適なチャネル媒体上での通信を可能にする。例えば、ホストチャネル152及びディスクチャネル156がファイバチャネルを使用する場合、チャネルインタフェース204は交換PCIX経路208、212とファイバチャネルとの間のインタフェースの役割を果たすであろう。同様に、ホストチャネル152及びディスクチャネル158がSCSIチャネルを使用する場合、チャネルインタフェース204は交換PCIX経路208、212とSCSIチャネルとの間のインタフェースの役割を果たすであろう。ホストチャネル152及びディスクチャネル158の両方が同じチャネル媒体を使用する場合、CIM136は、ホストポート148及びディスクポート156を使用してホストチャネル152及びディスクチャネル158の両方との通信のため用いられることができる。
【0029】
ある実施の形態において、ディスクチャネル158及びホストチャネル152は、同じチャネル媒体を使用しない。この実施の形態において、異なるチャネル媒体毎に異なるCIMが使用される。例えば、ホストコンピュータがファイバチャネルを使用し、ディスクアレイがSCSIチャネルを使用する場合、ホストコンピュータはファイバチャネルインタフェースを用いて一方のCIMに接続し、ディスクアレイはSCSIチャネルインタフェースを用いて他方のCIMに接続するであろう。冗長性が必要とされる場合は、2つ以上のCIMが各チャネル媒体に接続されることがある。
【0030】
図4に示される実施の形態において、バスインタフェースポート144及びCIMバス接続146を通じて、第1の交換PCIX経路208が第1のデータバス120と通信し、第2の交換PCIX経路212が第3のデータバス128と通信する。下記に詳述するように、PCIXブリッジ200は、一方のCMMが他方のCMMと通信するための通信経路として使用されても良い。ネットワーク制御装置上に存在する残りのCIMに対しても、同様の構成が使用されると理解されるであろう。例えば、図2に示される実施の形態において、CIM−2 140は第3のデータバス128及び第4のデータバス132に接続され、従って、CIM−2 140は、第2のデータバス124及び第4のデータバス132とそれぞれ通信する交換PCIX経路208、212を有するであろう。同様に、2つを超えるCIMが存在する場合、アプリケーションによる要求に応じて受動バックプレーン116上の適切なバスと通信するよう構成されるであろう。
【0031】
再び図2〜4を参照すると、ある実施の形態において、CMM−A104及びCMM−B108は各CIM136、140の一部分とそれぞれ対応付けられる。このような場合、CMM104又は108は、PCIX経路208又は212が接続されるバスセグメントからそのPCIX経路208又は212へアクセスできるようにすることによって、1つのPCIX経路208又は212の排他的所有権を有する。例えば、ある実施の形態において、CMM−A104は、ホストチャネル152及びディスクチャネル158と通信するために、各CIM136、140においてPCIX経路208を採用する。この組み合わせは、CIM−1 136内で第1の交換PCIX経路208と対応付けられるバスインタフェースポート144をバックプレーン116上の第1のデータバス120と接続することによって達成される。同様に、CIM−2 140内の第1の交換PCIX経路208に関連するバスインタフェースポート144は、受動バックプレーン116上の第2のデータバス124に接続される。CMM−A104は、従って、各CIM136、140上の第1の交換PCIX経路を通じてホスト及びディスクチャネル152、158と通信する。同様に、各CIM136、140内の第2の交換PCIX経路212に関連するバスインタフェースポート144は、第3及び第4のデータバス128、132にそれぞれ接続される。CMM−B108は、従って、各CIM136、140上の第2の交換PCIX経路212を通じてホスト及びディスクチャネル152、158と通信する。
【0032】
《実施の形態2》
図5を参照して、冗長構成要素を含むネットワーク記憶装置100aのブロック図を示す。本実施の形態において、CMM−A104とCMM−B108の2つのCMMが使用される。また、CIM−1 136とCIM−2 140の2つのCIMが使用される。CMM−A104及びCIM−1 136は共に受動バックプレーン116で第1のデータバス120に接続される。CMM−A104及びCIM−2 140は共に受動バックプレーン116で第2のデータバス124に接続される。CMM−B108及びCIM−1 136は共に受動バックプレーン116で第3のデータバス128に接続される。CMM−B108及びCIM−2 140は共に受動バックプレーン116で第4のデータバス132に接続される。
【0033】
当業者によって理解されるように、冗長制御装置は、記憶サブシステムに取り付けられた2つの制御装置間のデータのミラー化を必要とする。これは、制御装置がホストコンピュータからデータを受信し、データをキャッシュし、データが書き込まれたというメッセージをホストコンピュータに送信する、書き戻しキャッシュ(write back cache)の使用による。従って、データが実際に制御装置に格納され、ディスクアレイ内のドライブに書き込まれるためにそこで待機している時、ホストコンピュータは、データが書き込まれたと判定する。故障の際に、このデータが失われないよう確保するのを助けるため、冗長制御装置はこのデータを他の制御装置にミラー化し、従って、他の制御装置にデータの別のコピーができる。このことは、キャッシュの一貫性として既知である。ある実施の形態において、CMM104、108は、ネットワーク記憶装置100aにキャッシュの一貫性を提供するためにデータをミラー化する。これは、CMM−A104とCMM−B108との間にDMA経路を設けることによって実現できる。これは、図3に関して上述したように、インタフェースFPGA168内のDMAエンジン188を提供することによって達成されることが出来、共有経路216は、図4に関して上述したように、PCIXブリッジ200を利用する。各CMM104、108は、他のCMMにデータを送信するためにこのDMA経路を用いる。DMA経路を利用することによって、2つのCMM104、108は、ホストチャネル152又はディスクチャネル158を使用する必要なくデータをミラー化でき、従って、ディスクチャネル158又はホストチャネル152のチャネル帯域幅はデータをミラー化しているCMM104、108によって消費されない。
【0034】
従来のミラー化の構成において使用されるよりも少ないチャネル帯域幅しか消費しないことに加えて、ネットワーク記憶装置100aは、従来の技法よりも少ない処理リソースしか使用しないように構成されることもできる。図13は、本発明のある実施の形態において用いられるDMAミラー化方法を示すフローチャートを示す。当業者に理解されるであろうように、DMAは、コンピュータの処理リソースを消費することなく、取り付けられた装置からコンピュータのメモリにデータを送信することを可能にするいくつかのコンピュータバスアーキテクチャによって提供される能力(capability)である。ある実施の形態において、CMM−A及びCMM−Bは、別のCMMによってダイレクトメモリアクセスのために用いられる領域として設計されたDDR不揮発性ランダムアクセスメモリ(NVRAM:Non-Volatile Random Access Memory)の指定された部分を有する。CMM−A104がCMM−B108にミラー化される必要のあるデータを有する場合、CMM−A104は、ブロック500によって示されるように、CMM−BのDDRメモリ164の内容の一部分を書き込み動作に関連するデータブロックに対して無効と記録するために、最初に第1のDMAトランザクションを開始する。ブロック500によって示されるように、第1のDMAトランザクションに含まれるものには、指定されたデータブロックに記憶されたミラー化されるユーザデータがある。
【0035】
図14を参照して、DMAトランザクションに関連するハードウェアを詳細に記述する。DMAトランザクションを行う時、CMM−A104のCPUサブシステム160は、CMM−A104上のDMAエンジン188の動作を制御する。CMM−A104上のDMAエンジン188は、CIM−1 136のPCIXブリッジ200を通じてCMM−B108のDDRメモリ164及びCMM−B108にアクセスする。従って、CMM−A104上のDMAエンジン188は、CMM−B108のDDRメモリ164の内容を無効として記録するコマンドを与えられた時、CMM−AのインタフェースFPGA168の複数のデータFIFO192及びバックプレーンインタフェース112を通じてDMA経路にアクセスし、DMA経路を通じてそのコマンドをCMM−B108のインタフェースFPGA168に転送する。コマンドは、バックプレーンインタフェース112及び複数のデータFIFO192を通じて、CMM−B108のインタフェースFPGA168を通じてメモリインターフェース176に経路付けされ、次にDDRメモリ164に経路付けされる。このDMA経路は、図14の破線によって示される。従って、CMM−BのCPUサブシステム160及びCMM−B108のDMAエンジン188は、CMM−A104によって開始されるDMAトランザクションに関与しない。ユーザデータを転送している時、CMM−A104のCPUサブシステム160は、第1のDMAコマンドを続行する。DMAコマンドは、CMM−A104のDDRメモリ164内のソースアドレス、CMM−B108のNVRAM164内の宛先アドレス、及び転送されるデータブロック長を示す。CMM−A104のDMAエンジン188は、DMAコマンドを受信し、複数のデータFIFO192及びメモリインターフェース176を通じてCMM−A104のDDRメモリ164にアクセスする。CMM−A104のDMAエンジン188は、次に、DMA経路上で、CMM−A104のインタフェースFPGA168を通じてCMM−A104のNVRAM164から、CMM−B108のインタフェースFPGA168を通じてCMM−B108のDDRメモリ164の適切な位置に、適切なデータを転送する。ブロック504を参照すると、CMM−A104は、次に、CMM−B108のDDRメモリ164の内容の一部分を指定されたデータブロックに対して有効として記録するために第2のDMAトランザクションを開始する。トランザクションはDMA転送であるので、それらはCMM−B108からの処理リソースを必要としたりCMM−B108を中断したりせず、CMM−Bはミラー化動作から独立して他の処理機能を実行できるので、システムのパフォーマンスを高める。
【0036】
他の実施の形態において、図13に示された2つのDMAトランザクションは、単一の順序付けられたDMAトランザクションに組み合わせられる。この実施の形態において、各CMM108、108内のDDRメモリ164は、ユーザデータに関連するメタデータを記憶するための2つの記憶領域を有する。DMA転送を開始する場合、第1のユニークな文字列が第1の記憶領域に記憶され、その後に転送されるデータが続く。DMA転送の最後に、第1のユニークな文字列は第2の記憶領域に記憶される。CMM104、108が故障から回復されなければならない際には、第1の及び第2の記憶領域内に記憶された文字列が比較される。比較はCMMの故障が起こった際にのみ実行され、従って、通常の動作の間、パフォーマンスを低下させない。文字列が一致した場合、ミラー化されたデータが有効であるということを示す。
【0037】
図5を参照すると、CMM−A104とCMM−B108との間にはまたフェイルオーバーリセットリンク240がある。フェイルオーバーリセットリンク240は、CMM104、108のうち1つの故障を伝達するために使用される。ある実施の形態において、フェイルオーバーリセットリンク240は、CMM−A104とCMM−B108間のシリアル接続である。この実施の形態において、各CMM104、108は、フェイルオーバーリセットリンク240上で伝達され他のCMMによって監視される心拍(heartbeat)信号を維持する。心拍信号に問題が検知された場合、CMM104、108は、他のCMMの動作を終了させるためにフェイルオーバーリセットリンク240上で信号を送信できる。例えば、CMM−B108に故障がある場合、或いはCMM−B108が正しく動作していない場合、CMM−A104は、CMM−B108からの心拍信号がもはや活性(active)でないことを検知するであろう。心拍信号が受信されない所定期間の経過後、CMM−A104はCMM−B108に終了信号を送信する。CMM−B108は終了信号を受信すると、動作を停止する。次に、CMM−Aが、全ての読み取り及び書き込み動作の制御を引き受ける。これは、CMM−Bが異常な動作をしているかもしれないため必要である。同様に、CMM−A104が故障した場合、CMM−B108がフェイルオーバーリセットリンク240上で指示を受信し、全ての読み取り及び書き込み動作の制御を引き受けるであろう。したがって、システムは冗長であり、CMM104又は108が故障した時でも動作を継続する。
【0038】
図6を参照して、1つのCMMが故障した時のシステムの動作を説明する。図6に示されるように、ネットワーク記憶装置100aは、CMM−A104とCMM−B108、受動PCIXバックプレーン116、及びCIM−1 136とCIM−2 140を備える。CMM−B108が故障した時、CMM−A104が上記のとおり、フェイルオーバーリセットリンク240越しに故障を検知し、CMM−B108での動作を終了させる。次に、CMM−A104は、それまでCMM−B108によって実行されていた全ての記憶及び制御動作の制御を担う。これが発生すると、CMM−A104は、CMM−B108との通信を無効にするためにCIM−1 136及びCIM−2 140にコマンドを送信する。この場合、CIM−1 136は、このコマンドを受信し、第4のデータバス132に接続する第1の交換経路208を無効にし、CMM−B108に関連するPCIXブリッジ200及びチャネルインタフェース204をリセットする。CIM−2 140はまた、CMM−A104からのコマンドを受信し、第3のデータバス128に接続する第2の交換経路212を無効にし、CMM−B108に関連するPCIXブリッジ200及びチャネルインタフェース204をリセットするために、同じ動作を実行する。ある実施の形態において、受動バックプレーン116は、CIM136、140上のバスインタフェースポート144に接続し、CMM104、108に接続される制御論理線を含む。CMM104、108は、CIM136、140上のバスインタフェースポート144を有効にし、かつ無効にするためにこれらの制御論理線を使用できる。これに代えて、例えば、受動バックプレーン116上のPCIXバスを介してコマンド情報を受信するCIM内の制御論理等の他の実施の形態が、交換経路208、212を有効にし、かつ無効にするために用いられても良い。
【0039】
図7を参照して、1つのCIMが故障した時のシステムの動作を説明する。CMM104、108はCIM136、140を監視し、エラーや故障の際には、故障を有するCIM136又は140の動作を終了させるために制御論理線上でコマンドを伝達する。図7に示されるように、CIM−1 136は故障を有する。CMM−A104は、CIM−1 136に故障があると判定し、CIM−1 136を無効にする。次に、CMM−A104は、CIM−2 140上のPCIXブリッジ200を介してCMM−B108にこの情報を伝達する。
【0040】
《実施の形態3》
図8を参照して、4つのCIMモジュールが存在するネットワーク記憶装置100bのブロック図を示す。本実施の形態において、CMM−A104及びCMM−B108の2つのCMMは、CIM−1 136、CIM−2 140、CIM−3 300、及びCIM−4 304の4つのCIMと通信する。この実施の形態において、CMM−A104は、受動バックプレーン116内の第1の及び第2のデータバス120、124に接続される。同様に、CMM−Bは、受動バックプレーン116内の第3の及び第4のデータバス128、132に接続される。CIM−1は第2の及び第4のデータバス124、132に接続され、従って各CMM104、108にCIM−1 136へのアクセスを与える。CIM−2 140は第1の及び第3のデータバス120、128に接続され、CIM-3 300は第2の及び第4のデータバス124、132に接続され、CIM−4は第1の及び第3のデータバス120、128に接続される。従って、各CMM104、108は、各CIMと通信可能である。本実施の形態のネットワーク記憶装置は、例えば、複数のホストが存在する時等を含むいくつかの場合に有用である。本実施の形態において、CIM−1 136及びCIM−2 140が第1のホストへの通信を提供しても良く、CIM−3 300及びCIM−4 304が第2のホストへの通信を提供しても良い。2つの別個のRAIDアレイ等の複数のディスクノードに対しても、同じ配列が実行できる。理解されるように、この構成は冗長動作を提供する一方で、1つ以上のホストノードと1つ以上のディスクノードとの間の通信を提供することができる拡張性のあるシステムを提供する。加えて、こうした実施の形態は、異なるチャネル媒体を用いるホスト及び/又はディスクアレイを接続するのに有用であるかもしれない。例えば、現行のシステムは2つのCIMを備え、ホスト及びディスクチャネルの両方にファイバチャネル接続を使用するかもしれない。ユーザがシステムをアップグレードしてSCSI接続を用いる別のディスクアレイを追加したいと考える場合、SCSIチャネルとの通信を可能にする追加CIMを付け加えることができるため、既存のハードウェアを交換する必要なく、現行のシステムのアップグレードが可能になる。
【0041】
図9〜11を参照して、CIMが採っても良い異なる構成、及びCIMが接続しても良い異なるチャネル媒体を提供するためにいくつかのCIMの別の実施の形態を示す。図9は、CIM136aを構成するPCIX・ツー・ギガビットインターコネクト(GBIC:Gigabit Interconnect)のブロック図を示す。CIM136a内では、PCIXブリッジ200aは、デュアルポートGBICインタフェース400に接続する。デュアルポートGBICインタフェース400の各ポートは、シリアライザ/デシリアライザ(SERDES:Serializer/Deserializer)404a、404bに接続する。各SERDES404a、404bは、チャネル接続を用いてチャネル媒体に接続する。図9に示される実施の形態において、一方のSERDES404aがGBICホストチャネル152aに接続し、他方のSERDES404bがGBICディスクチャネル158aに接続する。
【0042】
図10は、PCIX・ツー・SCSI CIM136bのブロック図を示す。CIM136b内では、PCIXブリッジ200bが、デュアルポートUltra320SCSIインタフェース408に接続する。デュアルポートUltra320SCSIインタフェース408の各ポートは、ホストチャネル又はディスクチャネルに接続し、SCSIシステムの必要に応じて、終端412接続をも有する。図10に示される実施の形態において、デュアルポートUltra320SCSIインタフェース408の1つのポートが超高密度相互接続(VHDIC:Very High Density Interconnect)ホストチャネル152bに接続し、デュアルポートUltra320SCSIインタフェース408の1つのポートがVHDICディスクチャネル158bに接続する。
【0043】
図11は、交換経路内で使用する高速スイッチ接続416a、416bを採用するPCIX・ツー・イーサネット(登録商標)CIM136cのブロック図を示す。高速スイッチ接続416a、416bは、高速スイッチ接続416a、416bを有効及び無効にする役割を果たすイネーブル入力を含むバス継電部である。各高速スイッチ接続416a、416bは、加速FPGAとデータFIFOとを含むインタフェース接続420に接続する。インタフェース接続420は、データをイーサネット(登録商標)接続上で伝達するためのデータへの適切な機能を実行するギガビットイーサネット(登録商標)ASIC424に接続する。ギガビットイーサネット(登録商標)ASIC424は、信号を物理信号に変換するMAC/物理コンバータ428に接続し、次に適切な電圧で信号を出力するために変圧器432に経路付けされる。ある実施の形態において、変圧器432は、ディスクチャネルへのGBIC接続部158cに接続する。図11の実施の形態において、冗長システムが必要とされる場合、共有経路が他のCIMに提供されるであろう。図9〜11に示されるような異なるインタフェースモジュールの組合せを用いた単一のシステムにおいて、異なるチャネル媒体が使用されても良いことは評価されるであろう。例えば、ホストコンピュータはファイバチャネル媒体を用いてネットワーク記憶制御装置に接続し、ネットワーク記憶制御装置はSCSIチャネル媒体を用いてディスクアレイに接続しても良い。
【0044】
本発明の上記の説明は、例証と解説を目的として提示された。更に、説明は、本発明を本明細書に開示された形式に限定することを意図していない。それ故に、関連技術の技能と知識の範囲内での変形や変異は上記の教示に相応し、本発明の範囲内である。上記に記載される実施の形態は、更に、発明を実行する現在既知の最良の様態を説明することと、上記実施の形態又は別の実施の形態で、本発明の特別な用途又は用法によって要求される各種変形と共に、他の当業者に本発明を利用可能とさせることを意図する。添付された請求項は、先行技術が許す程度にまで別の実施の形態を含むように解釈されることを意図する。
【図面の簡単な説明】
【0045】
【図1】従来例のデュアル制御装置ネットワーク記憶制御装置を示すブロック図
【図2】本発明のネットワーク記憶装置を示すブロック図
【図3】本発明の制御装置管理モジュルを示すブロック図である
【図4】本発明のチャネルインタフェースモジュールを示すブロック図である
【図5】本発明の冗長ネットワーク記憶装置を示すブロック図である
【図6】故障した制御装置管理モジュールを表す冗長ネットワーク記憶装置を示すブロック図
【図7】故障したチャネルインタフェースモジュールを表す冗長ネットワーク記憶装置を示すブロック図
【図8】4つのチャネルインタフェースモジュールを現す冗長ネットワーク記憶装置を示すブロック図
【図9】ギガビット相互接続チャネルを利用したネットワーク記憶装置を示すブロック図
【図10】Ultra320SCSIチャネルを利用したネットワーク記憶装置を示すブロック図
【図11】イーサネット(登録商標)チャネルを利用したネットワーク記憶装置を示すブロック図
【図12】共有ディスクチャネル上でプロセッサ割り込みを用いて、両方がアクティブな(active/active)制御装置の組においてデータをミラー化する際に利用されるステップを示すフローチャート
【図13】共有バス及びダイレクトメモリアクセスを用いる制御装置管理モジュール間でのデータのミラー化を利用するステップを示すフローチャート
【図14】CMM−AとCMM−Bとの間のDMA経路を強調した、本発明のネットワーク記憶装置を示すブロック図
【符号の説明】
【0046】
100、100a、100b ネットワーク記憶装置
104、108 制御装置管理モジュール(CMM)
112 バックプレーンインタフェース
116 受動バスバックプレーン
120、124、128、132 データバス
134 CMMバス接続
136、140、300、304 チャネルインタフェースモジュール(CIM)
144 CIMバスインタフェースポート
146 CIMバス接続
148 ホストポート
156 ディスクポート
152 ホストチャネル
158 ディスクチャネル
160 CPUサブシステム
164 メモリ
168 インタフェースFPGA
172 PCIインタフェース
176 メモリインタフェース
180 XORエンジン
184 ブリッジコア
188 DMAエンジン
192 データFIFO
200 PCIXブリッジ
204 チャネルインタフェース
208、212 交換経路
240 フェイルオーバーリセットリンク

Claims (23)

  1. 記憶アレイを含む記憶システムにおいてデータをミラー化するための方法であって、
    第1のダイレクトメモリアクセスエンジンを含む第1の制御装置管理モジュールであって、前記記憶アレイに関する読み出し/書き込み動作を制御するための前記第1の制御装置管理モジュールを提供するステップ、
    第2のダイレクトメモリアクセスエンジンを含む第2の制御装置管理モジュールであって、前記記憶アレイに関する読み出し/書き込み動作を制御し、前記第1のダイレクトメモリアクセスエンジンが前記第2の制御装置管理モジュールにデータをミラー化するのに用いられ、及び前記第2のダイレクトメモリアクセスエンジンが前記第1の制御装置管理モジュールにデータをミラー化するのに用いられる前記第2の制御装置管理モジュールを提供するステップ、及び
    前記第1のダイレクトメモリアクセスエンジンを用いて、前記第1の制御装置管理モジュールから前記第2の制御装置管理モジュールへ第1のデータをミラー化するステップ、
    を含む方法。
  2. 前記第1の制御装置管理モジュールが第1のプロセッサを含み、前記ミラー化するステップが、前記第1のプロセッサを用いて前記ミラー化するステップが行われるかどうかを判定するステップを含む請求項1に記載の方法。
  3. 前記第2の制御装置管理モジュールが第2のプロセッサを含み、前記ミラー化するステップが、前記第2のプロセッサから独立して前記第1のデータをミラー化するステップを含む請求項1に記載の方法。
  4. 前記第2の制御装置管理モジュールが第2のプロセッサを含み、前記第2のプロセッサが、前記記憶アレイに関する前記読み出し/書き込み動作の前記制御するステップに用いられ、前記第2のプロセッサの割り込みを回避しながら前記ミラー化するステップが行われる請求項1に記載の方法。
  5. 前記第2の制御装置管理モジュールが第2のプロセッサを含み、前記ミラー化するステップの間、前記第2のプロセッサが、第1の読み出し動作及び第1の書き込み動作のうち少なくとも1つを制御するのに用いられるように動作可能である請求項1に記載の方法。
  6. 前記第2の制御装置管理モジュールが第2のプロセッサを含み、前記第2のダイレクトメモリアクセスエンジン及び前記第2のプロセッサを用いない間、前記ミラー化するステップが、前記第1のダイレクトメモリアクセスエンジンを用いて実行される請求項1に記載の方法。
  7. 前記第2の制御装置管理モジュールが第2のプロセッサを含み、前記ミラー化するステップが、前記第2のプロセッサを用いることなく前記第2の制御装置管理モジュールの不揮発性メモリに前記第1のデータを記憶するステップを含む請求項1に記載の方法。
  8. 前記第2の制御装置管理モジュールが不揮発性メモリを含み、前記ミラー化するステップが、
    第1に、前記第1のデータを受信する前記不揮発性メモリの内容の部分を無効として記録し、第1のDMAトランザクションにおいて前記不揮発性メモリに前記第1のデータを転送するステップ、及び
    第2に、第2のDMAトランザクションにおいて前記不揮発性メモリの内容の前記部分を有効として記録するステップと、を含む請求項1に記載の方法。
  9. 前記第2の制御装置管理モジュールが不揮発性メモリを含み、前記ミラー化するステップが、
    第1の文字列を前記不揮発性メモリの第1の記憶領域に記憶し、前記第1のデータを前記不揮発性メモリに転送し、前記不揮発性メモリの第2の領域に前記第1の文字列を記憶するステップを含む請求項1に記載の方法。
  10. 前記ミラー化するステップが単一のDMAトランザクションを用いて実行される請求項9に記載の方法。
  11. 前記第1の制御装置管理モジュールが、第1のプロセッサを含み、更に、前記第1のプロセッサを用い、かつ、パリティを判定するためにXORエンジンを用いて、前記記憶アレイに情報を記憶するステップを含む、請求項1に記載の方法。
  12. 記憶アレイを含む記憶システムにおいてデータをミラー化するための装置であって、
    第1の制御装置管理モジュールは第1のプロセッサ及び第1のダイレクトメモリアクセスエンジンを含み、前記第1のプロセッサは記憶アレイに関する読み出し動作及び書き込み動作を制御するのに使用され、前記第1のダイレクトメモリアクセスエンジンは前記第1の制御装置管理モジュールによって受信されるデータを記憶するのに使用され、
    第2の制御装置管理モジュールが第2のプロセッサ及び第2のダイレクトメモリアクセスエンジンを含み、前記第2のプロセッサは記憶アレイに関わる読み出し動作及び書き込み動作を制御するのに使用され、前記第2のダイレクトメモリアクセスエンジンは前記第2の制御装置管理モジュールによって受信されるデータを記憶するのに使用され、
    第1のデータは前記第1の制御装置管理モジュールによってホストから受信され、前記第1のデータは前記第2のプロセッサの割り込みを回避しながら、前記第1のダイレクトメモリアクセスエンジンを用いて、前記第1の制御装置管理モジュールから前記第2の制御装置管理モジュールへミラー化される装置。
  13. 前記第1の制御装置管理モジュールが不揮発性メモリを含み、前記第1のデータが前記不揮発性メモリに記憶される請求項12に記載の装置。
  14. 前記第1のダイレクトメモリアクセスエンジンが前記第1のプロセッサから分離しているが通信し、前記第1のプロセッサは前記第1のダイレクトメモリアクセスエンジンを用いて前記第1のデータのミラー化を開始する請求項12に記載の装置。
  15. 前記第1の制御装置管理モジュールがフィールドプログラマブルゲートアレイを有し、前記第1のダイレクトメモリアクセスエンジンが少なくともその部分と通信する請求項12に記載の装置
  16. 前記装置が、更に、
    第1の共有経路を有する第1のチャネルインタフェースモジュールを有し、前記第1のチャネルインタフェースモジュールは前記第1の制御装置管理モジュールと通信し、前記第1の共有経路が前記第1の制御装置管理モジュールと前記第2の制御装置管理モジュールとの間で前記第1のデータを転送するのに用いられる請求項12に記載の装置。
  17. 前記装置が、更に、
    前記第1のチャネルインタフェースモジュール及び前記第1の制御装置管理モジュールを相互接続する受動パックプレーンを有する請求項16に記載の装置。
  18. 前記第2のプロセッサが、前記第1のデータが前記第2の制御装置管理モジュールにミラー化されている間、前記第2の制御装置管理モジュールに関連する動作を制御する請求項12に記載の装置。
  19. 前記第1のデータが、前記第2のダイレクトメモリアクセスエンジンから独立して前記第2の制御装置管理モジュールにミラー化される請求項12に記載の装置。
  20. 前記第2の制御装置管理モジュールが不揮発性メモリを有し、前記第1のデータが前記第2のプロセッサから独立して前記不揮発性メモリに記憶される請求項12に記載の装置。
  21. 前記第2の制御装置管理モジュールが不揮発性メモリを有し、前記第1のダイレクトメモリアクセスエンジンは、前記第1のデータを受信するべき前記不揮発性メモリの少なくとも部分に対して、前記部分が無効であるという指示を提供するのに用いられ、前記第1のデータが不揮発性メモリによって受信された後、前記第1のダイレクトメモリアクセスエンジンが前記部分を有効として記録するのに用いられる請求項12に記載の装置。
  22. 前記第2の制御装置管理モジュールが少なくとも第1の記憶領域及び第2の記憶領域を有する不揮発性メモリを有し、
    前記第1のダイレクトメモリアクセスエンジンは、前記第1のデータが前記不揮発性メモリによって受信される前に、前記第1の記憶領域での記憶のために第1の文字列を提供すること、及び、前記第1のデータが前記不揮発性メモリによって受信された後に、前記第2の記憶領域での記憶のために前記第1の文字列を提供することに用いられる請求項12に記載の装置。
  23. 前記第1のダイレクトメモリアクセスエンジンが、単一のダイレクトメモリアクセストランザクションにおいて、前記第1の文字列を提供し、前記第1のデータを転送し、及び、前記第2の文字列を提供するよう、動作可能である請求項21に記載の装置。
JP2003542490A 2001-11-08 2002-11-04 共有バスを用いたデータのミラー化 Pending JP2005508551A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/036,749 US6732243B2 (en) 2001-11-08 2001-11-08 Data mirroring using shared buses
PCT/US2002/035460 WO2003040932A1 (en) 2001-11-08 2002-11-04 Data mirroring using shared buses

Publications (2)

Publication Number Publication Date
JP2005508551A true JP2005508551A (ja) 2005-03-31
JP2005508551A5 JP2005508551A5 (ja) 2006-01-05

Family

ID=21890418

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003542490A Pending JP2005508551A (ja) 2001-11-08 2002-11-04 共有バスを用いたデータのミラー化

Country Status (5)

Country Link
US (1) US6732243B2 (ja)
JP (1) JP2005508551A (ja)
DE (1) DE10297430T5 (ja)
GB (1) GB2398150B (ja)
WO (1) WO2003040932A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005222383A (ja) * 2004-02-06 2005-08-18 Hitachi Ltd ストレージ制御装置、及びストレージ制御装置の制御方法

Families Citing this family (52)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7315911B2 (en) * 2005-01-20 2008-01-01 Dot Hill Systems Corporation Method for efficient inter-processor communication in an active-active RAID system using PCI-express links
US7536495B2 (en) * 2001-09-28 2009-05-19 Dot Hill Systems Corporation Certified memory-to-memory data transfer between active-active raid controllers
US7146448B2 (en) * 2001-09-28 2006-12-05 Dot Hill Systems Corporation Apparatus and method for adopting an orphan I/O port in a redundant storage controller
US7340555B2 (en) 2001-09-28 2008-03-04 Dot Hill Systems Corporation RAID system for performing efficient mirrored posted-write operations
US7107320B2 (en) * 2001-11-02 2006-09-12 Dot Hill Systems Corp. Data mirroring between controllers in an active-active controller pair
AU2002361603A1 (en) * 2001-11-09 2003-05-26 Chaparral Network Storage, Inc. Transferring data using direct memory access
US7506127B2 (en) * 2001-12-21 2009-03-17 Network Appliance, Inc. Reconfiguration of storage system including multiple mass storage devices
US7127798B1 (en) 2003-04-04 2006-10-31 Network Appliance Inc. Method for converting disk drive storage enclosure into a standalone network storage system
US7173943B1 (en) * 2002-02-26 2007-02-06 Computer Access Technology Corporation Protocol analyzer and time precise method for capturing multi-directional packet traffic
US20040006636A1 (en) * 2002-04-19 2004-01-08 Oesterreicher Richard T. Optimized digital media delivery engine
US20040006635A1 (en) * 2002-04-19 2004-01-08 Oesterreicher Richard T. Hybrid streaming platform
US7899924B2 (en) * 2002-04-19 2011-03-01 Oesterreicher Richard T Flexible streaming hardware
US7293138B1 (en) * 2002-06-27 2007-11-06 Adaptec, Inc. Method and apparatus for raid on memory
DE60204687T2 (de) * 2002-09-06 2006-05-18 Sun Microsystems, Inc., Santa Clara Speicherkopierbefehl mit Angabe von Quelle und Ziel, der in der Speichersteuerung ausgeführt wird
US20040162928A1 (en) * 2003-02-18 2004-08-19 Hewlett-Packard Development Company, L.P. High speed multiple ported bus interface reset control system
US20040177198A1 (en) * 2003-02-18 2004-09-09 Hewlett-Packard Development Company, L.P. High speed multiple ported bus interface expander control system
US6941396B1 (en) * 2003-02-19 2005-09-06 Istor Networks, Inc. Storage controller redundancy using bi-directional reflective memory channel
US20040199719A1 (en) * 2003-04-04 2004-10-07 Network Appliance, Inc. Standalone newtork storage system enclosure including head and multiple disk drives connected to a passive backplane
US6948012B1 (en) * 2003-04-04 2005-09-20 Network Appliance, Inc. Standalone storage system with multiple heads in an enclosure providing cluster failover capability
US7627780B2 (en) * 2003-04-23 2009-12-01 Dot Hill Systems Corporation Apparatus and method for deterministically performing active-active failover of redundant servers in a network storage appliance
WO2004095304A1 (en) * 2003-04-23 2004-11-04 Dot Hill Systems Corporation Network storage appliance with integrated redundant servers and storage controllers
US7260737B1 (en) 2003-04-23 2007-08-21 Network Appliance, Inc. System and method for transport-level failover of FCP devices in a cluster
US7565566B2 (en) * 2003-04-23 2009-07-21 Dot Hill Systems Corporation Network storage appliance with an integrated switch
US7143250B1 (en) * 2003-06-02 2006-11-28 Lsi Logic Corporation Methods and systems for improving mirror performance via optimized multi-channel utilization
US7293197B2 (en) 2003-08-13 2007-11-06 Micro Memory Llc Non-volatile memory with network fail-over
US20050038958A1 (en) * 2003-08-13 2005-02-17 Mike Jadon Disk-array controller with host-controlled NVRAM
US7225277B2 (en) * 2003-09-04 2007-05-29 International Business Machines Corporation Proxy direct memory access
JP2005196467A (ja) * 2004-01-07 2005-07-21 Hitachi Ltd ストレージシステム、ストレージシステムの制御方法、及びストレージ制御装置
US7137042B2 (en) * 2004-03-17 2006-11-14 Hitachi, Ltd. Heartbeat apparatus via remote mirroring link on multi-site and method of using same
US8677086B2 (en) * 2004-06-30 2014-03-18 Emc Corporation System for caching data
US8688934B1 (en) * 2004-06-30 2014-04-01 Emc Corporation Method for caching data
US7543096B2 (en) * 2005-01-20 2009-06-02 Dot Hill Systems Corporation Safe message transfers on PCI-Express link from RAID controller to receiver-programmable window of partner RAID controller CPU memory
JP2006227856A (ja) * 2005-02-17 2006-08-31 Hitachi Ltd アクセス制御装置及びそれに搭載されるインターフェース
US7444540B2 (en) * 2005-06-21 2008-10-28 Hewlett-Packard Development Company, L.P. Memory mirroring apparatus and method
US7404057B2 (en) * 2005-06-24 2008-07-22 Dell Products L.P. System and method for enhancing read performance of a memory storage system including fully buffered dual in-line memory modules
US7743224B2 (en) * 2006-01-06 2010-06-22 Dot Hill Systems Corp. Method and apparatus for virtual load regions in storage system controllers
US20080005385A1 (en) * 2006-06-30 2008-01-03 Seagate Technology Llc Passive mirroring through concurrent transfer of data to multiple target devices
US7536508B2 (en) * 2006-06-30 2009-05-19 Dot Hill Systems Corporation System and method for sharing SATA drives in active-active RAID controller system
JP5179031B2 (ja) * 2006-09-13 2013-04-10 株式会社日立製作所 空きポートを有効に活用したストレージシステム
US7681089B2 (en) * 2007-02-20 2010-03-16 Dot Hill Systems Corporation Redundant storage controller system with enhanced failure analysis capability
SG147403A1 (en) * 2007-04-23 2008-11-28 Ueno Fine Chemical Ind Liquid crystalline polymer composition and molded article made of the same
US20110082994A1 (en) * 2009-10-06 2011-04-07 Utah State University Accelerated relocation circuit
US8201020B2 (en) 2009-11-12 2012-06-12 International Business Machines Corporation Method apparatus and system for a redundant and fault tolerant solid state disk
DE102011088764A1 (de) * 2011-12-15 2013-06-20 Robert Bosch Gmbh Verfahren zum Betreiben eines Steuergeräts
US20140316539A1 (en) * 2012-01-31 2014-10-23 Raju C. Bopardikar Drivers and controllers
US9116856B2 (en) 2012-11-08 2015-08-25 Qualcomm Incorporated Intelligent dual data rate (DDR) memory controller
US9141493B2 (en) * 2013-07-12 2015-09-22 International Business Machines Corporation Isolating a PCI host bridge in response to an error event
US9342422B2 (en) 2013-11-07 2016-05-17 International Business Machines Corporation Selectively coupling a PCI host bridge to multiple PCI communication paths
US10310547B2 (en) * 2016-03-05 2019-06-04 Intel Corporation Techniques to mirror a command/address or interpret command/address logic at a memory device
US11009864B2 (en) 2018-04-06 2021-05-18 Bently Nevada, Llc Gated asynchronous multipoint network interface monitoring system
US11300604B2 (en) 2018-04-06 2022-04-12 Bently Nevada, Llc Monitoring system with serial data lane transmission network
US11327858B2 (en) 2020-08-11 2022-05-10 Seagate Technology Llc Preserving data integrity during controller failure

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0264834A (ja) * 1988-08-31 1990-03-05 Midori Denshi Kk 小型コンピュータシステムにおけるデータ転送装置
JP3602293B2 (ja) * 1997-04-22 2004-12-15 株式会社ソニー・コンピュータエンタテインメント データ転送方法及び装置
US6219725B1 (en) * 1998-08-28 2001-04-17 Hewlett-Packard Company Method and apparatus for performing direct memory access transfers involving non-sequentially-addressable memory locations
US6202106B1 (en) * 1998-09-09 2001-03-13 Xilinx, Inc. Method for providing specific knowledge of a structure of parameter blocks to an intelligent direct memory access controller
US6801958B2 (en) * 1999-12-15 2004-10-05 Texas Instruments Incorporated Method and system for data transfer
US6785783B2 (en) * 2000-11-30 2004-08-31 International Business Machines Corporation NUMA system with redundant main memory architecture
US7062591B2 (en) * 2001-09-28 2006-06-13 Dot Hill Systems Corp. Controller data sharing using a modular DMA architecture
US6839788B2 (en) * 2001-09-28 2005-01-04 Dot Hill Systems Corp. Bus zoning in a channel independent storage controller architecture
US7437493B2 (en) * 2001-09-28 2008-10-14 Dot Hill Systems Corp. Modular architecture for a network storage controller

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005222383A (ja) * 2004-02-06 2005-08-18 Hitachi Ltd ストレージ制御装置、及びストレージ制御装置の制御方法
JP4494031B2 (ja) * 2004-02-06 2010-06-30 株式会社日立製作所 ストレージ制御装置、及びストレージ制御装置の制御方法

Also Published As

Publication number Publication date
GB0411062D0 (en) 2004-06-23
GB2398150B (en) 2005-05-04
GB2398150A (en) 2004-08-11
WO2003040932A1 (en) 2003-05-15
US6732243B2 (en) 2004-05-04
US20030088735A1 (en) 2003-05-08
DE10297430T5 (de) 2005-01-27

Similar Documents

Publication Publication Date Title
US6732243B2 (en) Data mirroring using shared buses
US7437493B2 (en) Modular architecture for a network storage controller
US7062591B2 (en) Controller data sharing using a modular DMA architecture
US6839788B2 (en) Bus zoning in a channel independent storage controller architecture
US8751716B2 (en) Adaptive data throttling for storage controllers
JP3694273B2 (ja) 多重パスi/o要求機構を有するデータ処理システム
US7093043B2 (en) Data array having redundancy messaging between array controllers over the host bus
US7146521B1 (en) Preventing damage of storage devices and data loss in a data storage system
US7133967B2 (en) Storage system, controller, control method and program product therefor
US20070294564A1 (en) High availability storage system
US7817626B2 (en) Storage subsystem
US20110145452A1 (en) Methods and apparatus for distribution of raid storage management over a sas domain
US20040123068A1 (en) Computer systems, disk systems, and method for controlling disk cache
JP3987241B2 (ja) 系間情報通信システム
JP2002259063A (ja) バックアップ処理可能な記憶システム
US9753828B1 (en) Adaptive failure survivability in a storage system utilizing save time and data transfer upon power loss
JP2000181887A5 (ja)
KR100258079B1 (ko) 밀결합 결함 허용 시스템에서 메모리 버스 확장에 의한 동시 쓰기 이중화 장치
WO2021012169A1 (zh) 一种提高存储系统可靠性的方法和相关装置
US7752340B1 (en) Atomic command retry in a data storage system
US7302526B1 (en) Handling memory faults for mirrored memory
US7472221B1 (en) Mirrored memory
JP4087387B2 (ja) 記憶制御装置
JP2005190499A (ja) 記憶サブシステム及び記憶制御装置

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050913

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050913

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20050913

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20051012

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20050913

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20070518

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20071113

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20080415