JP4009470B2 - 冗長データ格納システム - Google Patents
冗長データ格納システム Download PDFInfo
- Publication number
- JP4009470B2 JP4009470B2 JP2002044678A JP2002044678A JP4009470B2 JP 4009470 B2 JP4009470 B2 JP 4009470B2 JP 2002044678 A JP2002044678 A JP 2002044678A JP 2002044678 A JP2002044678 A JP 2002044678A JP 4009470 B2 JP4009470 B2 JP 4009470B2
- Authority
- JP
- Japan
- Prior art keywords
- transaction
- devices
- transactions
- bus
- data
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error 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/2053—Error 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/2056—Error 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 by mirroring
- G06F11/2064—Error 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 by mirroring while ensuring consistency
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error 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/2053—Error 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/2056—Error 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 by mirroring
- G06F11/2087—Error 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 by mirroring with a common controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Description
【発明の属する技術分野】
本発明は、冗長データ格納システムおよび冗長データ格納システムを動作する方法を提供する。
【0002】
【従来の技術】
従来のコンピュータエレクトロニクスにおける1つの複雑な要素は、並列処理使用の増大である。さらに、トランザクション動作(たとえば、大きなDRAMアレイに対する読み出しおよび書き込みメモリ動作)は、最小の遅延をトランザクションマスタ(たとえば、DRAMからのデータの読み出しを待つプロセッサ)に提示するように頻繁に順序替えされる。
【0003】
所与のRAIDサブシステムアプリケーションの場合、サブシステムは通常、集合システムが適宜動作可能になる前に、接続されたホストシステムに対して特定のコミットメントを行う。ホストシステムがデータをRAIDサブシステムに書き込む場合を考えてみる。RAIDサブシステムは、故障に耐えうる状況においてデータを格納する。性能を上げるため、RAIDサブシステムは、ホストデータを待ち時間の少ない高帯域幅の格納装置に格納する。この装置は一般に、DRAM技術を用いて実施される。
【0004】
RAIDサブシステムは、データが安全に格納された後でのみ、「良好状態」をホストに戻すことができる。しかし、RAIDサブシステムが「良好状態」のホストへのリターンを長く待つほど、性能が悪くなる。一方、「良好状態」を戻すのが早急で、一時的な故障によりすべてのデータが失われるという状況を起こしうる場合に、結果としてデータの損失につながる。
【0005】
RAIDサブシステムのプロセッサは通常、「良好状態」メッセージをホストシステムに提供する責任を担う。この機能を達成するために、プロセッサは、ホストによって書き込まれたデータが故障に対して完全に安全であると決定してから、ホストシステムに「良好状態」コミットメントを行うことができるようになる。
【0006】
プロセッサは、システムにおいて、各ホスト動作についていくつかの読み出しトランザクションおよび書き込みトランザクションを発信する。構成によっては、プロセッサがホスト動作の処理に費やす時間を最小に抑えるために、トランザクションが、ある時点でデータパスに沿って順序替えされる場合がある。このような例では、より優先度の高いトランザクションが完了する間、いくつかのトランザクションが放置される。
【0007】
ここで挙げられる一例は、ある制御構造に対するメモリ書き込みトランザクションが、書き込みバッファに格納される場合である。書き込みバッファは、トランザクション処理装置として動作する。続く読み出し要求は一般に、コンポーネント(プロセッサ等)がデータ枯渇の影響を受けやすいため、より高い優先度を有する。設計特徴に応じて、これによりトランザクションの処理が無制限に遅延することがある。したがって、書き込みバッファがフラッシュされるまで、主記憶における制御構造が古くなる。
【0008】
ここでも、ホストがデータをRAIDサブシステムに書き込む場合を考える。RAIDサブシステムにおけるプロセッサの課題の1つは、いつホストデータが重複して格納され、いつ故障に対して安全になるかをプロセッサが知る必要があることである。順序替えされた並列動作を可能にする技術をコミットメントのポイントを有する必要性に引き合わせると、直接衝突が生じる。
【0009】
たとえば、ホストから書き込まれたデータが比較的長時間書き込みバッファ内にあり、書き込みバッファ内のデータが冗長格納コンポーネント(DRAM)にフラッシュされる前にプロセッサが「良好状態」を送信する場合、データがDRAMに転送される前にコミットメントがホストに提示されることがある。ホストは、RAIDサブシステムがデータを損失しないことを知っているため、その動作を継続することになる。しかし、本発明を用いない状態では、故障により、書き込みバッファ内のデータのフラッシュが不可能になる場合に、データの損失が発生することがある。データ損失シナリオは、データが書き込みバッファから排出されるときに、パリティ破損を見つけるのと同じように単純である。
【0010】
書き込みバッファはある期間データを保持することができるが、その間、データが実際に重複して格納される前に「良好状態」を示してしまうことを含め、RAIDサブシステムからの無分別なコミットメントがなされる。順序替えおよび並列パスは性能を上げる上で有利であるが、従来のRAIDサブシステムにおける適宜動作には不利である。
【0011】
【発明が解決しようとする課題】
したがって、冗長格納されたデータの保全性を危険にさらすことなく、並列パスの利点を利用する改良されたデータ格納システムおよび方法を提供する必要がある。
【0012】
【課題を解決するための手段】
本発明は、冗長データ格納システムおよび冗長データ格納システムを動作する方法を提供する。
【0013】
本発明の一態様では、冗長データ格納システムは、デジタルデータを冗長に格納するように構成される複数の格納装置(記憶装置、storage)と、格納装置の動作を制御するために、複数のトランザクションを発信するように構成された複数のトランザクション発信装置と、各トランザクション発信装置にデータを通信するように構成された複数の並列データバスと、並列データバスに接続された複数のトランザクション処理装置であって、少なくともいくつかのトランザクション処理装置に共通のトランザクション順序決めプロトコルに従った順序でトランザクションを処理するように構成された複数のトランザクション処理装置と、を備える。
【0014】
本発明の別の態様では、冗長データ格納システムを動作する方法は、複数の格納装置を用いてデータを冗長に格納するステップと、格納装置の動作を制御するために、複数のトランザクション発信装置を用いて複数のトランザクションを発信するステップと、複数の並列データバスを用いてトランザクション発信装置にデータを通信するステップと、並列データバスに接続された複数のトランザクション処理装置を用いてトランザクションを処理するステップであって、少なくともいくつかのトランザクション処理装置に共通のトランザクション順序決めプロトコルに従った順序でトランザクションを処理することを含むステップと、含む。
【0015】
別の態様は、独立した複数のディスクからなる冗長アレイ(RAID)格納システムの複数の格納装置を用いてデータを冗長に格納するステップと、格納装置の動作を制御するために、複数のトランザクション発信装置を用いて複数のトランザクションを発信するステップであって、前記格納システムの入出力プロセッサを用いて書き込みトランザクションを発信し、前記格納システムのコントローラを用いて読み出しトランザクションを発信することを含むステップと、プロセッサおよびコントローラそれぞれに接続された複数の並列データバスを用いてトランザクション発信装置にデータを通信するステップと、並列データバスに接続された複数のトランザクション処理装置を用いてトランザクションを処理するステップであって、入出力プロセッサからの書き込みトランザクションが、コントローラからの読み出しトランザクションに先行することを定義する、少なくともいくつかのトランザクション処理装置に共通のトランザクション順序決めプロトコルに従った順序でトランザクションを処理することを含むステップと、を含む冗長データ格納システムを動作する方法を提供する。
【0016】
本発明の他の特徴および利点は、以下の詳細な説明、添付の特許請求の範囲および図面を検討すれば、当業者にとって明白となろう。
【0017】
【発明の実施の形態】
図1を参照して、冗長データ格納システム10の例示的なコンポーネントを示す。格納システム10は、説明する実施形態において複数の冗長回路12を備える。個々の冗長回路12は、制御回路14およびローカル格納装置16を備える。本明細書で用いられる「ローカル」とは、今説明中の冗長回路または今説明中の冗長回路内のコンポーネントを指し、「リモート」とはその他の冗長回路またはその他の冗長回路内のコンポーネントを指す。
【0018】
冗長回路12は、格納システム10内に設けられ、1つまたは複数の冗長回路12内の1つまたは複数のコンポーネントが故障した場合に、少なくともいくつかの機能を提供する。通常の動作中、制御回路14は、パーソナルコンピュータ、ワークステーション等のホストシステムとの通信を実施する。構成によっては、複数の冗長回路12の1つのみがホストシステムに接続されるものもある。制御回路14は、冗長回路12の1つまたは複数の格納装置16に対するデータの読み出し動作および書き込み動作をさらに実施する。
【0019】
説明する実施形態においては、格納装置16が個々に、独立した複数のディスクからなる冗長アレイ(RAID)格納システムのメモリおよびハードディスク(図示せず)を備える。説明する格納システム10は、デジタルデータを格納するように動作する。格納システム10は、本発明の他の態様による他の構成で実施される。
【0020】
図2を参照して、単一の例示的な冗長回路12をさらに詳細に示す。図示の例示的な実施形態では、冗長回路12は、複数のトランザクション発信装置20a、20bおよび複数のトランザクション処理装置21を備える。図示の構成の冗長回路12では、このようなトランザクション処理装置21は、ミラー機能回路22、通信回路24、およびローカル格納装置16を備える。
【0021】
トランザクション発信装置20aは、図示の実施形態においてバッファ28に接続されるコントローラ26を備える。トランザクション発信装置20bは、バッファ32に接続された入出力プロセッサ(IOP)30を備える。一構成では、バッファ28、32が個々に、読み出しバッファおよび書き込みバッファを備える。このようなバッファ28、32は、コントローラ26および入出力プロセッサ30それぞれに与えられる、またはそれぞれから受信されているトランザクションおよびデータを一時的に格納する。
【0022】
トランザクションは、格納システム10内の動作を制御するために、装置20a、20bから発信される。たとえば、例示的なトランザクションとしては、冗長格納装置16に対するデジタルデータの読み出し動作および書き込み動作が挙げられる。トランザクション処理装置21は、装置20a、20bから発信されるトランザクションを処理し実行して、読み出し動作および書き込み動作を行う。
【0023】
コントローラ26は、各冗長回路12の動作を制御する。図示の例示的な実施形態では、コントローラ26が、複数のソフトウェアまたはファームウェア命令を実行するように動作可能なマイクロプロセッサとして実施される。このような実行可能な命令は、コントローラ26内に内部的に格納されてもよく、また読み出し専用メモリ(ROM)等の図示していない外付け格納装置に提供してもよい。
【0024】
入出力プロセッサ30は、パーソナルコンピュータ、ワークステーション、ネットワーク等のホストシステムとインタフェースし、ホストシステムに対するデータおよび制御信号の連絡を実施する。
【0025】
ミラー機能回路22は、本発明の一動作態様によって双方の冗長回路12内の格納装置16に関するデジタルデータの読み出し動作および書き込み動作を実施し、これらを調整する。ミラー機能回路のさらなる詳細を以下に説明する。
【0026】
通信回路24は、冗長回路12のローカルおよびリモートの格納装置16に接続される。説明する実施形態では、通信回路24は、通信回路24に関してローカルな格納装置16、ならびにその他の冗長回路12のリモート格納装置16に対するデータおよびトランザクションの通信を実施する。
【0027】
個々の格納装置16は、トランザクションを受信して転送すると共に、後続アクセスのためにデータを格納する回路を備える。たとえば、一構成では、所与の格納装置16は、メモリ、ハードディスク等を含む格納回路に関する読み出し動作および書き込み動作等のトランザクションを処理する1つまたは複数のコントローラを備える。
【0028】
上述したように、トランザクション発信装置20a、20bは、格納装置16の動作を制御するために、トランザクションを個々に発信するように動作可能である。トランザクション発信装置20a、20bおよびトランザクション処理装置21を接続するために、トランザクションバス40が設けられる。このようなトランザクションバス40は、適切な各装置20a、20b、21の間でトランザクションをやり取りするように動作する。トランザクションバス40の例示的な構成について、さらなる詳細を以下の通り述べる。
【0029】
さらに、説明する構成において、トランザクション発信装置20a、20bをミラー機能回路22に接続するために、複数のデータバス34が設けられる。データバス35は、ミラー機能回路22と通信回路24を接続する。別のデータバス37は、通信回路24と格納回路16を接続する。並列データバス34およびバス35、37は、ミラー機能回路22および通信回路24を介して、トランザクション発信装置20a、20bと格納装置16の間でデータをやり取りする。
【0030】
トランザクション発信装置20a、20bと、ミラー機能回路22、通信回路24、および格納装置16を含むトランザクション処理装置21とは、トランザクションバス40を用いて個々に接続され、トランザクションをやり取りする。このようなトランザクション処理装置21は、少なくともいくつかのかかるトランザクション処理装置21に共通のトランザクション順序決めプロトコルに従った順序でトランザクションを処理するように動作可能である。本発明の一態様によるトランザクション順序決めプロトコルのさらなる詳細を以下に述べる。
【0031】
例示的なトランザクション順序決めプロトコルは、トランザクションタイプに対応してトランザクションを処理する順序を定義する。たとえば、トランザクション順序決めプロトコルは、トランザクション発信装置20a、20bの所与の一方からの所与のトランザクションタイプが、トランザクション発信装置20a、20bの他方からの別のトランザクションタイプに先行すると定義する。しかし、一構成では、所与のトランザクションタイプは入出力プロセッサ30からの書き込みコマンドであり、別のトランザクションタイプはコントローラ26からの読み出しコマンドである。したがって、トランザクション処理装置21は、コントローラ26からの格納装置16の読み出し命令を処理し実行する前に、入出力プロセッサ30から格納装置16に対する保留中の書き込み命令を処理し実行する。このようなことは、格納装置16に書き込まれるものと考えられるデータが確実に、コントローラ26によるかかるデータへのアクセスを試みる前に、格納装置16に適宜格納されるようにする。
【0032】
本発明のさらなる態様は、トランザクションバス40を用いて複数のトランザクション処理装置21に対してトランザクション順序決めプロトコルを提供して、複数の装置21間でのトランザクションのかかる所望の処理順序を維持することを含む。このような態様によれば、複数のトランザクション処理装置21は、順序決めプロトコルに従ってトランザクションを処理する。
【0033】
図3を参照して、本発明の例示的な一態様による格納システム10内のトランザクションのやり取りについて説明する。図3は、トランザクションバス40に接続されたトランザクション発信装置20a、20bを示す。図示の構成のトランザクション発信装置20a、20bのバッファ28、32は、個々にメモリ42、トランザクション待ち行列44、および各論理回路46a、46bを含む。メモリ42は、スタティックランダムアクセスメモリ(SRAM)として実施することができる。メモリ42は、格納装置16から検索された、または格納装置16に書き込まれるデータを一時的に格納する。メモリ42は、図2に示す各データバス34に接続されて、各データバス34に対してデータをやり取りする。
【0034】
図示の構成では、個々のトランザクション待ち行列44は、2つのトランザクション格納位置すなわちロケーション48を含む。このようなトランザクション待ち行列44は個々に、他の実施形態による追加のトランザクションを格納するために、さらなるトランザクション格納位置48を含む。
【0035】
説明する実施形態に示されるように、論理回路46a、46bは、トランザクション待ち行列44のトランザクション格納位置48の各ビット位置に接続される。たとえば、論理回路46aはANDゲート50を含み、論理回路46bはORゲート52を含む。ORゲート52は、トランザクション発信装置20b内のトランザクション待ち行列44のトランザクション格納位置48の書き込みビット位置54に接続された入力を有する。ANDゲート50は、トランザクション発信装置20aのトランザクション待ち行列44内のトランザクション格納位置48の双方の読み出しビット位置56に接続される。
【0036】
さらに、ANDゲート50には、ORゲート52の出力も接続される。このような論理回路46a、46bは、トランザクション発信装置20bのトランザクション待ち行列44内の保留中の書き込みトランザクションが、トランザクション発信装置20aのトランザクション待ち行列44内の保留中の読み出しトランザクションに先行する、本発明の一態様によるトランザクション順序決めプロトコルを実施する。論理回路46a、46bを用いて、トランザクション発信装置20aは、トランザクション発信装置20bのトランザクションの状態(たとえば、トランザクション待ち行列44内の書き込みトランザクションがトランザクションバス40に通知されているかどうか)を知る。図示していないが、コントローラ26は、このような論理回路46a、46bにアクセスして、保留中のトランザクションの状態を判断することができる。
【0037】
論理回路46a、46bは、トランザクション順序決めプロトコルの1つの可能な実施(たとえば、装置20bからの書き込みトランザクションが、記載の例示的な構成の装置20aからの読み出しトランザクションに先行する)に従って、トランザクションバス40およびトランザクション処理装置21に対してトランザクションをやり取りする構成のトランザクション発信装置20a、20bを提供する。図示していない他の実施形態では、異なるトランザクションの配列が提供される。
【0038】
論理回路46a、46bからの信号をトランザクションバス40に与えた後、トランザクション待ち行列44内の各トランザクションは、トランザクションバス40に転送される。このようなトランザクションは個々に、各トランザクションに対応する、メモリ42に格納されているデータに関連する長さ情報およびアドレス情報を含む。より具体的には、個々のトランザクションは、発信アドレス(たとえば、装置20aまたは装置20b)および宛先アドレス(たとえば、適切な装置21の)に関連する情報、ならびに関連データの長さの識別情報およびトランザクションタイプの識別情報(たとえば、書き込み要求、ミラーリングされた読み出し比較要求、ローカルのみを読み出す要求等)を含む。
【0039】
図示の構成の格納システム10では、トランザクションをトランザクションバス40に与える順序の制御により、トランザクション処理装置21によるこのようなトランザクションの処理順序が制御される。トランザクション処理装置21は、さらに後述する格納システム10の説明される例示的な動作において、トランザクション発信装置20a、20bからトランザクションを受信した順序に従って、受信したトランザクションを処理する。
【0040】
図4ないし図6を参照して、ミラー機能回路22、通信回路24、および格納装置16それぞれを備えた例示的な構成のトランザクション処理装置21を示す。図4ないし図6は、処理するトランザクションを受信し順序付けるように構成されたトランザクション処理装置21の例示的なコンポーネントを示す。他の構成の各トランザクション処理装置21も可能である。
【0041】
個々のトランザクション処理装置21は、記載の実施形態においてトランザクションバス40上の発信されたすべてのトランザクションが見えるが、各トランザクション処理装置21に適宜アドレス指定されたトランザクションのみを受信する。
【0042】
まず図4を参照して、例示的なミラー機能回路22を示す。図4は、トランザクションバス40に接続された先入れ先出し(FIFO)装置60およびミラー処理回路62を示す。装置20a、20bによりトランザクションバス40に提供されるトランザクションは、アドレス指定を介して各トランザクション処理装置21に連絡される。
【0043】
ミラー機能回路22のFIFO60は、適宜アドレス指定されたトランザクションをトランザクションバス40から受信し、このようなトランザクションをトランザクションバス40からのFIFO60内に受信した順序に従って配列する。ミラー機能回路22のミラー処理回路62は、FIFO60からトランザクションを抽出し、任意の要求される処理をトランザクションに対して実行して、ミラーリング機能を実施し、トランザクションをトランザクションバス40に報告する。トランザクションバス40に報告されるこのようなトランザクションとしては、新しい発信アドレス(たとえば、回路22)および新しい宛先アドレス(たとえば、回路24)等更新された情報を含むことができる。
【0044】
例示的な一構成では、ミラー処理回路62は、トランザクション発信装置20a、20bと通信回路24の間でデータのやり取りを実施する。ミラー処理回路62の例示的な動作は、受信したトランザクションを解釈することに加え、複数の格納装置16から読み出されたデータを比較して、あらゆる差異を認識することを含む。ミラー処理回路62の他の動作も可能である。
【0045】
ミラー処理回路62は、複数のデータバッファ(図示せず)に接続される。このようなデータバッファは、図2のデータバス34、35に接続され、データバス34、35に対してデータをやり取りする。ミラー処理回路62は、各トランザクションに応答してデータバッファからデータを選択的に抽出して、任意所望の処理を実施する。
【0046】
次に図5を参照して、例示的な通信回路24を示す。図示の通信回路24は、トランザクションバス40に接続された先入れ先出し(FIFO)装置60および通信処理回路64を備える。通信回路24のFIFO60は、適宜アドレス指定されたトランザクションをトランザクションバス40から受信し、このようなトランザクションをトランザクションバス40からFIFO60内で受信した順序に従って配列する。通信処理回路64は、FIFO60からトランザクションを抽出し、トランザクションに対して任意の要求された処理を実行して通信機能を実施し、トランザクションをトランザクションバス40に報告する。トランザクションバス40に報告されたこのようなトランザクションとしては、新しい発信アドレスおよび新しい宛先アドレス等の更新された情報を含むことができる。
【0047】
例示的な一構成では、通信回路64は、ローカルおよびリモートの格納装置16に対してデータをやり取りすると共に調整する。通信処理回路64の他の動作も可能である。
【0048】
通信処理回路64は、複数のデータバッファ(図示せず)に接続される。このようなデータバッファは、データバス35、37に接続され、データバス35、37に対してデータをやり取りする。通信処理回路64は、各トランザクションに応答してデータバッファからデータを選択的に抽出して、所望の処理および通信を実施する。
【0049】
次に図6を参照して、例示的な格納装置16を示す。図示の格納装置16は、トランザクションバス40に接続された先入れ先出し(FIFO)装置60および格納装置処理回路66を備える。格納装置回路16のFIFO60は、適宜アドレス指定されたトランザクションをトランザクションバス40から受信し、このようなトランザクションをトランザクションバス40からFIFO60内で受信した順序に従って配列する。格納装置処理回路66は、FIFO60からトランザクションを抽出し、トランザクションに対して任意の要求される処理を実行して、格納機能性(たとえば、読み出しおよび書き込み動作)を実施する。
【0050】
例示的な一構成では、格納装置処理回路66は、ローカル格納装置16に対してデータアクセスの制御を実施する。たとえば、格納装置処理回路66は、それぞれDRAMおよびハードディスクに接続されたDRAM制御回路およびハードディスクドライブを含むことができる。格納装置処理回路66の他の実施も可能である。格納装置処理回路66は、各トランザクションに応答して、DRAMおよびハードディスクに対してデータを選択的に読み書きする。データバス37は、DRAMおよびハードディスクに対してデータをやり取りする。
【0051】
保護は、例として与えられる開示された実施形態にのみ限定されるものではないが、代わりに添付の特許請求の範囲によってのみ制限される。この発明は例として、次の実施形態を含む。
【0052】
(1)冗長データ格納システム(10)であって、
デジタルデータを冗長に格納するように構成される複数の格納装置(16)と、
該格納装置(16)の動作を制御するために、複数のトランザクションを発信するように構成される複数のトランザクション発信装置(20a、20b)と、
該トランザクション発信装置(20a、20b)それぞれに対してデータを通信するように構成される複数の並列データバス(34)と、
該並列データバス(34)に接続された複数のトランザクション処理装置(21)であって、少なくともいくつかのトランザクション処理装置(21)に共通のトランザクション順序決めプロトコルに従った順序でトランザクションを処理するように構成される複数のトランザクション処理装置(21)と、
を備える冗長データ格納システム。
【0053】
(2)前記トランザクション順序決めプロトコルは、トランザクションのタイプに対応する順序を定義する、(1)のシステム。
【0054】
(3)前記トランザクション発信装置(20a、20b)は、前記トランザクション順序決めプロトコルに従って前記トランザクション処理装置(21)にトランザクションを連絡するように構成される、(1)又は(2)に記載のシステム。
【0055】
(4)前記トランザクション順序決めプロトコルは、前記トランザクション発信装置(20a、20b)のうちの所与の1つからの所与のトランザクションタイプが、前記トランザクション発信装置(20a、20b)のうちの別の1つからの別のトランザクションタイプに先行することを定義する、(1)、(2)または(3)に記載のシステム。
【0056】
(5)前記所与のトランザクションタイプは、入出力プロセッサ(30)を備える前記所与のトランザクション発信装置(20a、20b)からの書き込みコマンドを含み、前記別のトランザクションタイプは、コントローラ(26)を備える前記別のトランザクション発信装置(20a、20b)からの読み出しコマンドを含む、(4)記載のシステム。
【0057】
(6)冗長データ格納システム(10)を動作する方法であって、
複数の格納装置(16)を用いてデータを冗長に格納するステップと、
前記格納装置(16)の動作を制御するために、複数のトランザクション発信装置(20a、20b)を用いて複数のトランザクションを発信するステップと、
複数の並列データバス(34)を用いて、前記トランザクション発信装置(20a、20b)にデータを連絡するステップと、
前記並列データバス(34)に接続された複数のトランザクション処理装置(21)を用いてトランザクションを処理するステップであって、少なくともいくつかの前記トランザクション処理装置(21)に共通のトランザクション順序決めプロトコルに従った順序でトランザクションを処理することを含む、ステップと、
を含む方法。
【0058】
(7)前記処理するステップは、トランザクションのタイプに対応する順序を定義する前記トランザクション順序決めプロトコルに従って処理することを含む、(6)記載の方法。
【0059】
(8)前記トランザクション順序決めプロトコルに従って前記トランザクション処理装置(21)にトランザクションを連絡するステップをさらに含む、請求項6または7記載の方法。
【0060】
(9)前記処理するステップは、前記トランザクション発信装置(20a、20b)のうちの所与の1つからの所与のトランザクションタイプが、前記トランザクション発信装置(20a、20b)のうちの別の1つからの別のトランザクションタイプに先行することを定義する前記トランザクション順序決めプロトコルに従って処理することを含む、(6)、(7)、又は(8)記載の方法。
【0061】
(10)前記所与のトランザクションタイプは、入出力プロセッサ(30)を備える前記所与のトランザクション発信装置(20a、20b)からの書き込みコマンドを含み、前記別のトランザクションタイプは、コントローラ(26)を備える前記別のトランザクション発信装置(20a、20b)からの読み出しコマンドを含む、(9)記載の方法。
【図面の簡単な説明】
【図1】例示的な冗長データ格納システムの機能ブロック図である。
【図2】図1の格納システムの例示的な冗長回路の機能ブロック図である。
【図3】図2の冗長回路の例示的なトランザクション発信装置およびトランザクションバスの機能ブロック図である。
【図4】図2の例示的なミラー機能回路の機能ブロック図である。
【図5】図2の例示的な通信回路の機能ブロック図である。
【図6】図2の例示的な格納装置の機能ブロック図である。
【符号の説明】
10 冗長データ格納システム
16 格納装置
20a、20b トランザクション発信装置
21 トランザクション処理装置
26 コントローラ
30 入出力プロセッサ
34 並列データバス
Claims (3)
- 冗長データ記憶システムであって、
デジタルデータを冗長に記憶するように構成された複数の記憶装置と、
複数のトランザクションを発信して、前記記憶装置の動作を制御するように構成された複数のトランザクション発信装置と、
前記複数のトランザクション発信装置のそれぞれとデータを通信するように構成された複数の並列データバスと、
前記複数の並列データバスに接続された複数のトランザクション処理装置と、
前記複数のトランザクション処理装置と前記複数のトランザクション発信装置との間に接続されたトランザクションバスと、を備え、
前記複数のトランザクション発信装置は、前記複数のトランザクション処理装置の少なくともいくつかに共通のトランザクション順序決めプロトコルに従った順序でトランザクションを前記トランザクションバスに送出するよう構成されており、
前記トランザクション順序決めプロトコルは、第1のタイプのトランザクションよりも第2のタイプのトランザクションが先行することであり、
前記複数のトランザクション発信装置は、第1および第2の発信装置を含んでおり、該第1の発信装置は、前記トランザクションバスに該第1のタイプのトランザクションを送出するために第1の信号を出力する第1の論理回路を有しており、該第2の発信装置は、該第1の論理回路に接続された第2の論理回路であって、前記トランザクションバスに該第2のタイプのトランザクションを送出するために第2の信号を出力する第2の論理回路を有しており、該第1の論理回路は、該第2の論理回路から該第2の信号を受け取っている間、該第1の信号を出力しないよう構成され、該構成により前記トランザクション順序決めプロトコルを実現し、
前記複数のトランザクション処理装置は、該トランザクションバス上の順序付けられたトランザクションを受信して、前記記憶装置に対する該トランザクションを処理する、
冗長データ記憶システム。 - 冗長データ記憶システムを動作させるための方法であって、
RAID記憶システムの複数の記憶装置を用いて冗長にデータを記憶するステップと、
複数のトランザクション発信装置を用いて複数のトランザクションを発信し、前記記憶装置の動作を制御するステップであって、該発信は、前記記憶システムの入出力プロセッサを用いて書き込みトランザクションを発信すること、および、前記記憶システムのコントローラを用いて読み込みトランザクションを発信することを含むと共に、前記複数のトランザクション発信装置が、複数のトランザクション処理装置のうちの少なくともいくつかに共通のトランザクション順序決めプロトコルに従った順序で、前記複数のトランザクションを、該複数のトランザクション処理装置と該複数のトランザクション発信装置との間に接続されたトランザクションバスに送出することを含み、該プロトコルは、該入出力プロセッサからの書き込みトランザクションが該コントローラからの読み込みトランザクションに先行することを定義する、ステップと、
前記入出力プロセッサおよび前記コントローラのそれぞれに接続された複数の並列データバスを用いて、前記複数のトランザクション発信装置とデータを通信するステップと、
前記並列データバスに接続された前記複数のトランザクション処理装置を用いて、前記トランザクションバス上の順序付けられたトランザクションを受信し、前記記憶装置に対して該トランザクションを処理するステップと、を含み、
前記コントローラは、前記読み込みトランザクションを前記トランザクションバスに送出するために第1の信号を出力する第1の論理回路を有しており、前記入出力プロセッサは、前記書き込みトランザクションを該トランザクションバスに送出するために第2の信号を出力する第2の論理回路を有しており、該第1の論理回路は、該第2の論理回路に接続されており、該第1の論理回路は、該第2の論理回路から該第2の信号を受取っている間、該第1の信号を出力しないよう構成されており、該構成により前記トランザクション順序決めプロトコルを実現する、
方法。 - 冗長データ記憶システムを動作させるための方法であって、
複数の記憶装置にわたってデジタルデータが分散されるように、該複数の記憶装置に、該デジタルデータを冗長に記憶するステップと、
複数のトランザクション発信装置が、前記記憶装置の動作を制御するよう、複数のトランザクションを発信するステップであって、該複数のトランザクションの少なくとも1つは、前記記憶装置に対する前記デジタルデータの冗長な記憶を実現し、前記複数のトランザクション発信装置が、複数のトランザクション処理装置の少なくともいくつかに共通のトランザクション順序決めプロトコルに従った順序で、前記複数のトランザクションを、該複数のトランザクション処理装置と該複数のトランザクション発信装置との間に接続されたトランザクションバスに送出することを含む、ステップと、
複数の並列データバスを用いて前記複数のトランザクション発信装置とデータを通信するステップと、
前記並列データバスに接続された前記複数のトランザクション処理装置を用いて、該トランザクションバス上の前記順序付けられたトランザクションを受信し、前記記憶装置に対して該トランザクションを処理するステップと、を含み、
前記トランザクション順序決めプロトコルは、第1のタイプのトランザクションよりも第2のタイプのトランザクションが先行することであり、
前記複数のトランザクション発信装置のうちの1つは、前記第1のタイプのトランザクションをトランザクションバスに送出するために第1の信号を出力する第1の論理回路を有しており、前記トランザクション発信装置のうちの他の1つは、前記第2のタイプのトランザクションをトランザクションバスに送出するために第2の信号を出力する第2の論理回路を有しており、該第1の論理回路は、該第2の論理回路に接続されており、該第1の論理回路は、該第2の論理回路から該第2の信号を受取っている間、該第1の信号を出力しないよう構成され、該構成により前記トランザクションジョン所決めプロトコルを実現する、
方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/809,972 US6546459B2 (en) | 2001-03-15 | 2001-03-15 | Redundant data storage systems and methods of operating a redundant data storage system |
US09/809,972 | 2001-03-15 |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2002312131A JP2002312131A (ja) | 2002-10-25 |
JP2002312131A5 JP2002312131A5 (ja) | 2005-06-23 |
JP4009470B2 true JP4009470B2 (ja) | 2007-11-14 |
Family
ID=25202636
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002044678A Expired - Fee Related JP4009470B2 (ja) | 2001-03-15 | 2002-02-21 | 冗長データ格納システム |
Country Status (2)
Country | Link |
---|---|
US (1) | US6546459B2 (ja) |
JP (1) | JP4009470B2 (ja) |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1193962A1 (en) * | 2000-09-21 | 2002-04-03 | Siemens Aktiengesellschaft | Transmission of real-time data from a network element to an application server with recovery method for link failure |
US7028297B2 (en) | 2000-11-17 | 2006-04-11 | Aristos Logic Corporation | System and method of scalable transaction processing |
US6968463B2 (en) | 2001-01-17 | 2005-11-22 | Hewlett-Packard Development Company, L.P. | System for controlling access to resources in a storage area network |
US6915397B2 (en) * | 2001-06-01 | 2005-07-05 | Hewlett-Packard Development Company, L.P. | System and method for generating point in time storage copy |
US6931487B2 (en) * | 2001-10-22 | 2005-08-16 | Hewlett-Packard Development Company L.P. | High performance multi-controller processing |
US7093043B2 (en) * | 2001-12-27 | 2006-08-15 | Hewlett-Packard Development Company, L.P. | Data array having redundancy messaging between array controllers over the host bus |
US6947981B2 (en) * | 2002-03-26 | 2005-09-20 | Hewlett-Packard Development Company, L.P. | Flexible data replication mechanism |
US7032131B2 (en) * | 2002-03-26 | 2006-04-18 | Hewlett-Packard Development Company, L.P. | System and method for ensuring merge completion in a storage area network |
US7007042B2 (en) * | 2002-03-28 | 2006-02-28 | Hewlett-Packard Development Company, L.P. | System and method for automatic site failover in a storage area network |
US8127088B2 (en) * | 2005-01-27 | 2012-02-28 | Hewlett-Packard Development Company, L.P. | Intelligent cache management |
US7301718B2 (en) * | 2005-01-31 | 2007-11-27 | Hewlett-Packard Development Company, L.P. | Recording errors in tape drives |
US20060230243A1 (en) * | 2005-04-06 | 2006-10-12 | Robert Cochran | Cascaded snapshots |
US7779218B2 (en) * | 2005-07-22 | 2010-08-17 | Hewlett-Packard Development Company, L.P. | Data synchronization management |
US7206156B2 (en) * | 2005-07-27 | 2007-04-17 | Hewlett-Packard Development Company, L.P. | Tape drive error management |
US7325078B2 (en) * | 2005-10-06 | 2008-01-29 | Hewlett-Packard Development Company, L.P. | Secure data scrubbing |
US7721053B2 (en) * | 2005-10-24 | 2010-05-18 | Hewlett-Packard Development Company, L.P. | Intelligent logical unit provisioning |
US7467268B2 (en) | 2006-04-14 | 2008-12-16 | Hewlett-Packard Development Company, L.P. | Concurrent data restore and background copy operations in storage networks |
US7934027B2 (en) * | 2007-01-19 | 2011-04-26 | Hewlett-Packard Development Company, L.P. | Critical resource management |
US8024514B2 (en) * | 2007-03-01 | 2011-09-20 | Hewlett-Packard Development Company, L.P. | Access control management |
US7861031B2 (en) * | 2007-03-01 | 2010-12-28 | Hewlett-Packard Development Company, L.P. | Access control management |
US7694079B2 (en) | 2007-04-04 | 2010-04-06 | Hewlett-Packard Development Company, L.P. | Tagged sequential read operations |
JP6079347B2 (ja) * | 2013-03-21 | 2017-02-15 | 富士通株式会社 | 制御装置、ストレージシステム、及び制御プログラム |
US9946496B2 (en) * | 2015-07-27 | 2018-04-17 | Elastifile Ltd. | SSD with non-blocking flush command |
US10417218B2 (en) * | 2015-12-23 | 2019-09-17 | Intel Corporation | Techniques to achieve ordering among storage device transactions |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5905876A (en) * | 1996-12-16 | 1999-05-18 | Intel Corporation | Queue ordering for memory and I/O transactions in a multiple concurrent transaction computer system |
US6073209A (en) * | 1997-03-31 | 2000-06-06 | Ark Research Corporation | Data storage controller providing multiple hosts with access to multiple storage subsystems |
US6230240B1 (en) * | 1998-06-23 | 2001-05-08 | Hewlett-Packard Company | Storage management system and auto-RAID transaction manager for coherent memory map across hot plug interface |
US6301643B1 (en) * | 1998-09-03 | 2001-10-09 | International Business Machines Corporation | Multi-environment data consistency |
-
2001
- 2001-03-15 US US09/809,972 patent/US6546459B2/en not_active Expired - Lifetime
-
2002
- 2002-02-21 JP JP2002044678A patent/JP4009470B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US20020133670A1 (en) | 2002-09-19 |
JP2002312131A (ja) | 2002-10-25 |
US6546459B2 (en) | 2003-04-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4009470B2 (ja) | 冗長データ格納システム | |
JP3694273B2 (ja) | 多重パスi/o要求機構を有するデータ処理システム | |
US7093043B2 (en) | Data array having redundancy messaging between array controllers over the host bus | |
US8589643B2 (en) | Arbitration system and method for memory responses in a hub-based memory system | |
JP4477906B2 (ja) | ストレージシステム | |
US7395392B2 (en) | Storage system and storage control method | |
US7817626B2 (en) | Storage subsystem | |
US7844852B2 (en) | Data mirror cluster system, method and computer program for synchronizing data in data mirror cluster system | |
US6675253B1 (en) | Dynamic routing of data across multiple data paths from a source controller to a destination controller | |
US20020178336A1 (en) | Storage subsystem and its controlling method | |
US20030105931A1 (en) | Architecture for transparent mirroring | |
US7467238B2 (en) | Disk controller and storage system | |
US7340551B2 (en) | Bridge permitting access by multiple hosts to a single ported storage drive | |
US7058744B2 (en) | Cluster system, computer and program | |
US8738821B2 (en) | Selecting a path comprising ports on primary and secondary clusters to use to transmit data at a primary volume to a secondary volume | |
JPH02103649A (ja) | 制御装置および情報処理システム | |
JPH10198607A (ja) | データ多重化システム | |
JP2001043026A (ja) | 系間情報通信システム | |
JPH11338647A (ja) | 二重化データの形成方法 | |
US20040122987A1 (en) | Method and structure for read prefetch in a storage complex architecture | |
JP2002123371A (ja) | ディスクアレイ制御装置及びディスクアレイ制御方法 | |
US7039730B2 (en) | Storage device control apparatus and method | |
JP5076400B2 (ja) | データ処理システムおよび情報処理装置 | |
JP4025032B2 (ja) | ディスク制御装置、および、そのデータアクセス方法 | |
KR20000032947A (ko) | 통신 시스템의 프로세서 이중화 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040928 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040928 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060523 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060817 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20070214 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070514 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20070618 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20070828 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070903 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100907 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |