JP2002333935A - 冗長コントローラシステムにコントローラを活線挿入する方法およびシステム - Google Patents
冗長コントローラシステムにコントローラを活線挿入する方法およびシステムInfo
- Publication number
- JP2002333935A JP2002333935A JP2002072618A JP2002072618A JP2002333935A JP 2002333935 A JP2002333935 A JP 2002333935A JP 2002072618 A JP2002072618 A JP 2002072618A JP 2002072618 A JP2002072618 A JP 2002072618A JP 2002333935 A JP2002333935 A JP 2002333935A
- Authority
- JP
- Japan
- Prior art keywords
- controller
- memory
- redundant
- processor
- task
- 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
Links
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/2089—Redundant storage control functionality
- G06F11/2092—Techniques of failing over between control units
-
- 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/2097—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 maintaining the standby controller/processing unit updated
-
- 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/1658—Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Hardware Redundancy (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
る。 【解決手段】 第1のメモリ50とタスクプロセッサ5
2とシステム動作プロセッサ54とを含むように第1の
コントローラ32を構成するステップであって、第1の
メモリ50が第1のメモリイメージを含むステップ82
と、第1のコントローラ32を介して冗長コントローラ
システム30を動作するステップ84と、システム動作
プロセッサ54を介してシステム動作コマンドを処理す
るステップ85と、第2のメモリを含む第2のコントロ
ーラ34を前記冗長コントローラシステムへと挿入する
ステップ86と、第1のコントローラ32を介して前記
システム動作コマンドを処理している間に、前記第1の
メモリイメージを前記第2のメモリにコピーすることを
含むバックグラウンドタスクを、前記タスクプロセッサ
を用いて処理するステップ88とを含む、冗長コントロ
ーラシステム30にコントローラを活線挿入する方法を
提供する。
Description
トローラシステムおよび冗長コントローラを採用したデ
ータ格納システムに関し、特に、活線挿入システム(ho
t insertion system)を有する冗長コントローラデータ
格納システム(redundant controller datastorage syst
em)および方法に関する。
提供には、マルチコントローラシステムが用いられる。
たとえば、ハードディスクドライブ業界では、ディスク
ドライブの耐故障性およびディスクドライブ性能を向上
させるために、マルチコントローラシステムが、2つ以
上のディスクドライブを組み合わせて採用するRAID
(redundant array of independent disks:独立した複
数のディスクからなる冗長アレイの略。以下、「RAI
D」とよぶ。)システムの一部として用いられる。動作
に当たり、RAIDシステムは、複数のコントローラを
冗長性のために採用する。複数のコントローラは、複数
のハードディスクにわたってユーザのデータをストライ
ピング(stripe)する。アレイは、いずれか1つのコン
トローラから動作させることができる。複数のコントロ
ーラが存在する場合には、コントローラは、性能を向上
させるため、および/または、ホストコンピュータシス
テムの接続ポートの数を増大するために用いられる。デ
ータにアクセスするとき、マルチコントローラRAID
システムにより、すべてのハードディスクを同時に動作
させることが可能になり、速度および信頼性の大幅な増
大がもたらされる。
レベルによって定義される。異なるRAIDレベルは、
データストライピング(data striping)(複数のハー
ドディスクにわたって各ファイルのデータブロックを分
散させる)を提供して、ディスクドライブの速度および
性能が向上するが、冗長性はないレベル0から多岐にわ
たる。RAIDレベル1は、ディスクミラーリング(di
sk mirroring)を提供し、ハードディスクのミラーリン
グ対(mirrored pair)(すなわち、2枚のハードディス
クに書き込まれた同一のデータブロック)を通して10
0%のデータ冗長性がもたらされる。他のディスクドラ
イブRAIDレベルは、様々なデータストライピングお
よびディスクミラーリングを提供すると共に、性能、耐
故障性、効率、および/または、コストを増大する向上
したエラー訂正(error correction)も提供する。
分割し、ブロックをディスクドライブにわたってストラ
イピングする。パリティブロックがデータブロックから
計算され、これもディスクに格納される。すべてのデー
タブロックおよびパリティブロックが異なるディスクに
格納される(ストライピングされる)。いずれか1つの
ディスクドライブが故障すると、データブロックまたは
パリティブロックの一方のみが失われることになる。そ
して、アレイは、失われたブロックを数学上再度作成す
ることができる。また、RAID5は、データブロック
およびパリティブロックが格納されるディスクを回転さ
せる(すなわち、すべてのディスクにいくつかのパリテ
ィブロック(parity block)が格納される)。RAIDレ
ベル6は、これに1ステップ追加し、異なる数学式を用
いて2つの「パリティ(parity)」ブロックを計算す
る。これにより、2つのディスクドライブが故障したに
もかかわらず、アレイがすべてのデータを再度作成する
ことができる。
ラーリングされた二重コントローラデータ格納システム
(mirrored dual controller data storage system)を
含んでいる。各コントローラは、メモリの大部分が「鏡
像(mirror image)」すなわち他方と同じ「メモリイメ
ージ(memory image)」である、それぞれの自分自身のメ
モリを含んでいる。二重コントローラにミラーリングさ
れたメモリを用いると、高速での復元が可能になると共
に、1つのコントローラまたはそのメモリが故障または
失われた場合に、データの損失を防ぐ。メモリのミラー
コピー(mirrorcopy)が無ければ、1つのコントローラが
突然故障した場合に、そのコントローラ上の重要なデー
タが失われることになる。たとえば、コントローラAお
よびコントローラBを有するミラーリングされたメモリ
二重コントローラシステム(memory dual controller s
ystem)において、ミラーリングされた読み出しおよび
ミラーリングされた書き込みによって、コントローラA
のメモリがコントローラBのメモリの「鏡像(mirror i
mage)」になる。コントローラBが失われるかまたは故
障すると、すべてのシステム動作が自動的にコントロー
ラAに切り換えられ、コントローラAがシステム全体を
実行すなわち動作する。
数の増大には、かなり制限されたプロセッサダウンタイ
ムを含む非常に高度な信頼性が要求される。たとえば、
1つの既知のシステムでは、コントローラのダウンタイ
ムの総計が1年当たり5分未満である必要がある。1つ
のコントローラが失われるかまたは故障すると、通常、
関連するデータ格納システムに関して冗長性および信頼
性を維持するために、そのコントローラを即座に交換す
る必要がある。上記の要求のために、高度の信頼性およ
び「アップタイム(uptime)」が要求されるシステムで
は、通常、他方のコントローラ(たとえば、コントロー
ラA)が動作可能な状態にある間に、交換コントローラ
をオンラインにするすなわち「活線(hot)」挿入する
必要がある。オペレーティングシステムは、交換コント
ローラの挿入を自動的に認識する。
トに接続される。したがって、ホストシステムは、コン
トローラボードの交換によって、データ格納システムが
有意な量の時間休止し、その結果としてホストシステム
がタイムアウトにならないように要求することが多い。
交換コントローラを動作システムへと挿入すると、交換
コントローラが試験され、動作システムに追加される間
に、システムの可用性(availability)が失われること
が多い。交換コントローラがミラーリングされたメモリ
システムの一部として追加されているとき、交換コント
ローラの動作システムへの追加に関連する問題が増大す
る。
おいて、コントローラAがシステムで動作し、交換コン
トローラBが活線挿入されている二重コントローラシス
テムは、コントローラAおよび交換コントローラBの双
方をリセットすることと、各コントローラがプロセッサ
サブシステムの自己試験を実行することとを含んでい
る。各コントローラは、それ自体の共用メモリシステム
を試験して、ハードウェアが正しく機能していることを
検証する。各コントローラは、その共用メモリの内容を
チェックして、メモリイメージがそのシステムに関して
「有効(valid)」であるかどうかを見る。この例で
は、コントローラAのみがシステムの有効なメモリイメ
ージを有する。
n)と、システムの最後のビューと、システムがアクテ
ィブであった最後のときのシステム状態とについての情
報を交換する。この情報を共有した後に、ファームウェ
アは、どのコントローラが有効なメモリイメージを有し
ているかを判断する。この例では、コントローラAが有
効なメモリイメージを有する。コントローラAの共用メ
モリイメージがコントローラBにコピーされ、検証され
る。これには、コントローラA上のプロセッサがコント
ローラA上のすべての共用メモリを読み出し、それをコ
ントローラB上のすべての共用メモリロケーションに書
き込む必要がある。そして、双方のコントローラ上のメ
モリが、コピー動作が成功したことを検証するために読
み出されて比較される。大きなメモリシステムの場合、
このプロセスには数分かかる。最後の構成ステップが実
行され、コントローラがオンラインにされて完全に動作
することが可能になる。上記プロセス内の多くのステッ
プは、実行に数十秒かかる。コントローラAの共用メモ
リイメージをコントローラBにコピーし、検証するプロ
セスには、数分かかることがある。この活線挿入に必要
な長時間中に、大部分のホストコンピュータのオペレー
ティングシステムがタイムアウトすることになる。
ムを低減し、ホストコンピュータオペレーティングシス
テムがタイムアウトしない、活線挿入および/または冗
長なミラーリングされたメモリマルチコントローラシス
テム(memory multiple controller system)で使用す
るためのシステムおよび方法を有することが望ましい。
さらに、システムのダウンタイムまたはホストのタイム
アウトを最小に抑え、コントローラのリセットを処理す
る効率的な方法を有することが望ましい。
ローラシステムおよび冗長コントローラを採用したデー
タ格納システムに関し、より詳細には、活線挿入(hot
insertion)システムを有する冗長コントローラデータ
格納システムおよび方法に関する。
ントローラシステムにコントローラを活線挿入する方法
を提供する。本方法は、第1のメモリと、タスクプロセ
ッサと、システム動作プロセッサとを含むように第1の
コントローラを構成するステップを含む。第1のメモリ
は、第1のメモリイメージを含む。冗長コントローラシ
ステムは、第1のコントローラを介して動作する。シス
テム動作コマンドは、システム動作プロセッサを介して
処理される。第2のメモリを含む第2のコントローラ
が、冗長コントローラシステムへと挿入される。第1の
コントローラを介してのシステム動作コマンドの処理中
に、第1のメモリイメージを第2のメモリにタスクプロ
セッサを用いてコピーすることを含むバックグラウンド
タスクが処理される。
コントローラシステムにコントローラを挿入する方法を
提供する。本方法は、第1のメモリと、タスクプロセッ
サと、システム動作プロセッサとを含むように第1のコ
ントローラを構成するステップを含む。第1のメモリ
は、第1のメモリイメージを含む。冗長コントローラシ
ステムは、第1のコントローラを介して動作する。シス
テム動作コマンドは、システム動作プロセッサを介して
処理される。第2のメモリを含む第2のコントローラ
が、冗長コントローラシステムへと挿入される。第1の
メモリは、第2のメモリにミラーリングされた書き込み
のために、ローカル読み出し専用(local read only)
に構成される。第1のコントローラを介してのシステム
動作コマンドの処理中に、第1のメモリイメージを第2
のメモリにタスクプロセッサを用いてコピーすることを
含むバックグラウンドタスクが処理される。
コントローラを活線挿入するように構成された冗長コン
トローラシステムを提供する。本システムは、第1のメ
モリと、タスクプロセッサと、システム動作プロセッサ
とを含む第1のコントローラを含んでいる。第1のメモ
リは、第1のメモリイメージを含む。活線挿入の動作中
に、冗長コントローラシステムは、システム動作プロセ
ッサを介してのシステム動作コマンドの処理を含んでお
り、第1のコントローラを介して動作される。冗長コン
トローラシステムへと挿入するように構成され、第2の
メモリを含む第2のコントローラが設けられる。第1の
コントローラを介してのシステム動作コマンドの処理中
に、第1のメモリイメージを第2のメモリにタスクプロ
セッサを用いてコピーすることを含むバックグラウンド
タスクが処理される。
コントローラを活線挿入するように構成される冗長コン
トローラシステムを提供する。本システムは、第1のメ
モリと、タスクプロセッサと、システム動作プロセッサ
とを含む第1のコントローラを含んでいる。第1のメモ
リは、第1のメモリイメージを含む。活線挿入の動作中
に、冗長コントローラシステムは、システム動作プロセ
ッサを介してのシステム動作コマンドの処理を含んでお
り、第1のコントローラを介して動作する。冗長コント
ローラシステムに活線挿入するように構成され、第2の
メモリを含む第2のコントローラが設けられる。第1の
コントローラを介してのシステム動作コマンドの処理中
に、第1のメモリイメージを第2のメモリにタスクプロ
セッサを用いてコピーすることを含むバックグラウンド
タスクが処理される。活線挿入の動作中に、第1のメモ
リは、第2のメモリにミラーリングされた書き込みのた
めに、ローカル読み出し専用に構成される。
説明では、本明細書の一部をなすと共に、例示として、
本発明を実施しうる特定の実施形態が示される添付図面
を参照する。他の実施形態も利用可能であり、また、本
発明の範囲から逸脱せずに、構造的または論理的な変更
を行いうることを理解されたい。したがって、以下の詳
細な説明は、制限する意味でとられるべきではなく、本
発明の範囲は特許請求の範囲によって定義される。
ローラデータ格納システムの例示的な一実施形態を全体
的に30で示す。冗長コントローラデータ格納システム
は、システムのダウンタイムを低減すると共に、コント
ローラの交換中にホストコンピュータのオペレーティン
グシステムがタイムアウトしないオンラインすなわち
「活線(hot)」挿入システムおよび方法を有する、冗
長なミラーリングされたメモリマルチコントローラシス
テムを提供する。一態様では、冗長コントローラデータ
格納システム30は、二重コントローラシステムであ
る。本明細書において説明する例示的な実施形態は二重
コントローラシステムを参照するが、これら実施形態
は、他のマルチコントローラ環境(すなわち、3つ以上
のコントローラを有するシステム)にも等しく適用可能
である。
セッサ、プログラム可能なロジック、またはステートマ
シン(state machine)を介してハードウェアおよびフ
ァームウェアで、または所与の装置内のソフトウェアで
実施することができる。好ましい一実施形態では、本発
明の1つ以上のコンポーネントがソフトウェアに存在
し、ハードウェアを介して使用される。本発明のコンポ
ーネントは、1つ以上のコンピュータ読み取り可能な媒
体上のソフトウェアにあることができる。本明細書で用
いるコンピュータ読み取り可能な媒体という語は、フロ
ッピー(登録商標)ディスク、ハードディスク、CD−
ROM、フラッシュメモリ、読み取り専用メモリ(RO
M)、およびランダムアクセスメモリ(RAM)等の揮
発性であれ不揮発性であれ、任意の種類のメモリを包含
するものと定義される。さらに、本発明によるシステム
は、特化されたハードウェア設備(appliance hardwar
e)および/または専用の単一目的ハードウェアを組み
込んだマイクロプロセッサ内蔵システム/設備を採用す
ることができる。
30は、第1のコントローラ32および第2のコントロ
ーラ34を有する冗長なミラーリングされたコントロー
ラデータ格納システムである。第1のコントローラ32
および第2のコントローラ34は、通信バス38を介し
てデータ格納システム36(たとえば、ディスクアレイ
等)にデータを重複してすなわちミラーリングして読み
書きするように構成される。RAIDレベル1はモード
ミラー書き込みを含み、アレイはいずれのコピーからも
読み出すことができる。RAIDレベル5または6の場
合には、ユーザのアクセスはディスクアレイにわたって
ストライピングされる。さらに、第1のコントローラ3
2および第2のコントローラ34は、通信バス40を介
して互いに通信する。第1のコントローラ32および第
2のコントローラ34は、通信バスプロトコルを用い
て、データ格納システム36と通信すると共に、互いに
通信する。一態様では、通信バスプロトコルは標準プロ
トコルである。本出願の読んだ後に、他の適した通信バ
スプロトコルが当業者には明白となるであろう。データ
格納システム36は、磁気ハードディスクデータ格納シ
ステムを含みうる。他の態様では、データ格納システム
36は、フラッシュメモリと、ランダムアクセスメモリ
(RAM)と、CD書き込み可能な媒体と、光磁気媒体
等の他の読み出し/書き込み可能なデータ格納媒体を含
む。
ホストまたは制御システムインタフェース42を介して
ホストまたは制御システムと通信するように構成され
る。ホストまたは制御システム42は、サーバ、コンピ
ュータネットワーク、中央コンピュータ、または他の制
御システムであることができる。一態様においては、冗
長コントローラデータ格納システム30は、収容された
RAIDシステムとインタフェースし、RAIDシステ
ム(たとえば、RAIDレベル0、RAIDレベル1、
RAIDレベル2、RAIDレベル3、RAIDレベル
4、RAIDレベル5、またはRAIDレベル6のシス
テム)として動作するように構成される。
は、「ミラーリング(mirrored)」メモリ50と、タス
クプロセッサ52と、システム動作プロセッサ54とを
含んでいる。同様に、第2のコントローラ34も、「ミ
ラーリング(mirrored)」メモリ56と、タスクプロセ
ッサ58と、システム動作プロセッサ60とを含んでい
る。第1のコントローラ32および第2のコントローラ
34は、ミラーリングメモリシステムの一部としてメモ
リ50およびメモリ56を動作する「メモリコントロー
ラ(memory controller)」を含む。本明細書で用いる
「ミラーリングメモリ(mirrored memory)」という語
は、1つのメモリのメモリイメージが別のメモリに複製
すなわち「ミラーリング(mirrored)」されるシステム
を包含するものと定義される。本発明では、第1のコン
トローラ32のメモリ50が、第2のコントローラ34
のメモリ56に複製または「ミラーリング(mirrored)」
される。二重コントローラのミラーリングメモリシステ
ムは、耐故障環境を冗長コントローラシステム30に提
供する。一方のコントローラまたは一方のコントローラ
メモリシステムが故障した場合には、他方のコントロー
ラの存在およびそのミラーリングメモリにより、シーム
レスな(seamless)フェイルオーバ(fail-over)が提供
され、システムコマンドの処理を継続する。さらに、一
方のコントローラを抜き差しすると、本発明は、他方の
コントローラを介してオペレーティングシステムを維持
し、システムのダウンタイムを低減してホストのタイム
アウト期間内の期間に調節することができる。ミラーリ
ングメモリ二重コントローラディスク格納システムの例
示的な一実施形態は、1997年12月16日付けで発
行され、米国カリフォルニア州パロアルトに所在のHewl
ett-Packard Companyに譲渡されたPetersonらの米国特
許第5,699,510号公報に開示されており、これ
を引用することにより本明細書の一部をなすものとす
る。別のミラーリングメモリ二重コントローラディスク
格納システムは、1999年7月27日付けで発行さ
れ、米国カリフォルニア州パロアルトに所在のHewlett-
Packard Companyに譲渡されたNelsonらの米国特許出願
第5,928,367号公報に開示されており、これも
また引用することにより本明細書の一部をなすものとす
る。
システム30において、各コントローラ32、34は、
上述したような「鏡像」または他方と同じ「メモリイメー
ジ」を有するそれ自体のメモリ50および56を含む。
ミラーリングメモリにより、一方のコントローラまたは
そのメモリが故障した、または失われた場合に高速な復
元が可能になる。一態様においては、ミラーリングされ
た読み書きによって、第1のコントローラ32のメモリ
50が第2のコントローラ34のメモリ56の「鏡像
(mirror image)」になる。第2のコントローラ34が
失われるか、または故障すると、別のコントローラがシ
ステムに挿入されるまで、第1のコントローラ32が単
一コントローラシステムにおけるシステム全体を実行す
なわち動作するように、すべてのシステム動作が第1の
コントローラ32へと自動的に切り換えられる。
システム30は、1つのコントローラを活線挿入または
オンライン挿入する間に、冗長コントローラシステムの
動作を継続することができる。たとえば、第2のコント
ローラが失われる、または故障すると、冗長コントロー
ラシステムは、第1のコントローラ32を介して動作す
る。第2のコントローラ34は、システム30にオンラ
イン挿入すなわち「活線(hot)」挿入することができ
る。特に、システム動作プロセッサ54は、第2のコン
トローラ34をシステムに挿入する活線挿入プロセス中
に、メモリ50を介して、データ格納システム36に対
するデータの読み書き等システム動作コマンドの処理を
継続する。タスクプロセッサ52は、システム動作コマ
ンドの処理中に、冗長コントローラデータ格納システム
30に遅延を課すことなく、システム動作プロセッサ5
4を介してバックグラウンドタスクを処理する。
セッサ52は、システム動作プロセッサ54がシステム
動作コマンドを処理し続けながら、第1のミラーリング
メモリ50のメモリイメージを第2のメモリ56にコピ
ーするように動作する。ここで、第2のコントローラ3
4を冗長コントローラシステム30へと活線挿入するこ
とにより、システム動作コマンドの処理に対するアンド
ゥ遅延(undo delay)および/またはホストシステムイ
ンタフェース42を介してのホストシステムによるタイ
ムアウトが生じることはない。例示的な一実施形態で
は、タスクプロセッサ52が、システム動作プロセッサ
54または他のシステムプロセッサに直接に関係するこ
となく、専用データ処理ハードウェアを介してバックグ
ラウンドタスクを行う。一態様では、データ処理ハード
ウェアは、特定用途向け集積回路(ASIC)の一部と
して、インテリジェントDMAエンジンに接続される。
システム動作プロセッサ54を介して継続される第1の
コントローラ32の動作中に、タスクプロセッサ52
は、特定のバックグラウンドタスクを処理する能力を有
する。一態様においては、タスクプロセッサ52は、メ
モリ間コピータスク(memory-to-memory copy task)、メ
モリ自己試験(memory self-test)、ならびに他のタス
クを実行するように動作する。
ータ格納システムにコントローラを活線挿入する方法の
例示的な一実施形態を示す図であり、この方法を全体的
に符号80で示す。本方法は、第1のメモリと、タスク
プロセッサと、システム動作プロセッサとを含むように
第1のコントローラを構成するステップを含む。第1の
メモリは、第1のメモリイメージを含む。図示の例示的
な一実施形態では、第1のコントローラ32は、メモリ
50と、タスクプロセッサ52と、システム動作プロセ
ッサ54とを含むように構成される。冗長コントローラ
システム30は、第1のコントローラ32を介して、ス
テップ84で示すように、単一のコントローラシステム
として動作する。ステップ85において、システム動作
コマンドは、システム動作プロセッサ54を介して処理
される。ステップ86において、第2のコントローラ3
4が冗長コントローラシステム30へと挿入される。第
2のコントローラ34は、第2のメモリ56を含む。ス
テップ88において、バックグラウンドタスクは、第1
のコントローラを介してのシステム動作コマンドの処理
中に、タスクプロセッサ52を用いて処理される。バッ
クグラウンドタスクは、メモリ50の第1のイメージを
第2のメモリ56にコピーすることを含む。
ータ格納システムにコントローラを活線挿入する方法の
別の例示的な実施形態を示す図であり、全体的に符号9
0で示される。本方法は、まとめてステップ92で示す
ように、第1のメモリ50と、タスクプロセッサ52
と、システム動作プロセッサ54とを含むように第1の
コントローラ32を構成するステップを含む。第1のメ
モリ50は、第1のメモリイメージを含む。ステップ9
4において、冗長コントローラシステム30が第1のコ
ントローラ32を介して動作する。ステップ96におい
て、システム動作コマンドが、システム動作プロセッサ
54を介して処理される。ステップ98において、第2
のコントローラ34が冗長コントローラシステム30へ
と挿入される。第2のコントローラは第2のメモリ56
を含む。第1のメモリ50は、ミラーリングされた書き
込みを第2のメモリ56にするために、共用またはミラ
ーリングメモリ50に対して局所的な読み出し専用に構
成される。ここで、第1のコントローラ32は、それ自
体のメモリイメージを読み出すように動作することがで
きるが、冗長コントローラデータ格納システム30にお
いて第2のコントローラ34が完全に動作可能になる
(すなわち、自己試験を終え、オンラインに戻る)ま
で、読み出しおよび書き込みのミラーリングとして動作
しない。ステップ102において、第1のコントローラ
32を介して、システム動作コマンドの処理中に、バッ
クグラウンドタスクが処理される。バックグラウンドタ
スクは、タスクプロセッサ52を用いて処理される。バ
ックグラウンドタスクは、メモリ50の第1のイメージ
を第2のメモリ56にコピーすることを含む。
ローラデータ格納システムの別の例示的な実施形態を全
体的に110で示す。冗長コントローラデータ格納シス
テム110は、本明細書において上述した冗長コントロ
ーラデータ格納システム30と同様である。冗長コント
ローラデータ格納システム110は、システム動作コマ
ンドの処理へのあらゆる割り込みを最小化する(そうで
なければ、ホストシステムのタイムアウトが発生するこ
とがある)冗長コントローラデータ格納システムにコン
トローラを活線挿入するシステムおよび方法を含む。
0は、第1の冗長コントローラ112および第2の冗長
コントローラ114を含む。第1のコントローラ112
は、第1のミラーリングアレイ120と、第1のメモリ
コントローラ122と、第1のシステム動作プロセッサ
124とを含む。一態様においては、第1のコントロー
ラ112は、ディスクインタフェース126およびディ
スクインタフェース128を介してデータ格納システム
と通信すると共に、ホストインタフェース130を介し
てホストまたは制御システムと通信する。一態様におい
て、第1のコントローラ112は、通信バス132を介
してディスクインタフェース126と、ディスクインタ
フェース128と、ホストインタフェース130と通信
する。一実施形態では、通信バス132は、当業者には
既知のPCIバスとして構成される。一実施形態では、
130と126と128とで示すホストインタフェース
およびディスクインタフェースは、「FCループ(FC l
oop)」として動作可能なファイバチャネルバス(Fibre
Channel bus)である。本出願を読んだ後に、他の適し
たバス構成が当業者には明白となるであろう。
は、タスクプロセッサ134と、割り込みロジック13
6と、メモリバッファ/通信モジュール138とを含
む。一態様では、タスクプロセッサ134は、システム
動作プロセッサ136を介して、システム動作コマンド
の処理に割り込みすることなく、予め定義されたバック
グラウンドタスクを処理するための専用ファームウェア
および/またはメモリバッファコンポーネントを含む。
メモリコントローラ122のホットプラグ警告/早期検
出システムは、符号142で示される。同様に、メモリ
コントローラ122のリセットロジックは符号140で
示される。
は、第2の共用またはミラーリングメモリ160と、第
2のメモリコントローラ162と、第2のシステム動作
プロセッサ164を含む。第2のコントローラ114
は、ディスクインタフェース166およびディスクイン
タフェース168を介してデータ格納システムと通信す
ると共に、ホストインタフェース170を介してホスト
/制御システムと通信する。第2のコントローラ114
は、通信バス172を介してディスクインタフェース1
66と、ディスクインタフェース168と、ホストイン
タフェース170と通信する。
クプロセッサ174と、割り込みロジック176と、メ
モリ/通信モジュール178とを含む。第2のコントロ
ーラ114のリセットロジックは、符号180で示され
る。ホットプラグ警告/早期検出システムが、第2のメ
モリコントローラ162に設けられ、符号182で示さ
れる。第1のコントローラ112および第2のコントロ
ーラ114は、該コントローラ間の通信バスを介して通
信する。一態様では、ミラーバス200が、第1のメモ
リコントローラ122および第2のコントローラ162
において、第1のコントローラ112および第2のコン
トローラ114をリンクする。さらに、代替通信パス
が、第1のメモリコントローラ122と第2のメモリコ
ントローラ162との間に設けられ、これは符号202
で示される。代替通信パス202は、メモリ/通信モジ
ュール138において第1のメモリコントローラ122
にリンクすると共に、第2のメモリ/通信モジュール1
78において第2のメモリコントローラ162にリンク
する。存在検出ライン204は、コントローラの存在に
ついて(たとえば、活線挿入プロセスの一環として)第
1のコントローラ112と第2のコントローラ114の
間に通信を提供する。
びメモリ160は、ランダムアクセスメモリ(RAM)
である。例示的な一実施形態においては、ランダムアク
セスメモリは、同期ダイナミックランダムアクセスメモ
リ(SDRAM)である。一態様では、メモリ120お
よびメモリ160のサイズは、512バイトから多ギガ
バイトの範囲であることができる。好ましい一実施形態
では、メモリ120およびメモリ160は、バッテリバ
ックRAM(battery-backed RAM)等の不揮発性メモリ
であるため、パワーダウン(たとえば、コントローラリ
セット)しても、メモリはそのメモリ内容(すなわちメ
モリ状態)を保持する。
よびメモリコントローラ162は、特定用途向け集積回
路(ASIC)チップまたはモジュールの一部である。
タスクプロセッサ134およびタスクプロセッサ174
は、システム動作プロセッサを介してのシステムコマン
ドの処理中に、予め定義された専用バックグラウンドタ
スクを処理するように動作する。
によって実行されるすべてのバックグラウンドタスクま
たは機能が、メモリ120またはメモリ160に格納さ
れたデータに対して行われ、このようなタスクの結果
は、適切なメモリ120またはメモリ160に再び配置
される。タスクプロセッサ134および174は、プロ
セッサ124またはプロセッサ164等他のシステムプ
ロセッサに直接に関わりなく、専用データ処理ハードウ
ェアを用いて、バックグラウンドタスク機能を実行す
る。一態様では、タスクプロセッサ134および/また
はタスクプロセッサ174は、ASICチップまたはモ
ジュールの一部であることができるインテリジェントD
MAエンジンに接続されたデータ処理ハードウェアを利
用する。タスクプロセッサ134およびタスクプロセッ
サ174の例示的な実施形態については、本明細書にお
いてより詳細に後述する。
メモリ160との間のミラーリングされた読み出しおよ
びミラーリングされた書き込みは、ミラーバス200を
介して達成される。さらに、代替通信パスすなわちバス
202が、メモリコントローラ122とメモリコントロ
ーラ162との間に存在する。したがって、コントロー
ラが、冗長コントローラデータ格納システムへと挿入さ
れているが、冗長コントローラシステムの一部として
「オンライン(on-line)」になっていない場合には、
第1のメモリコントローラ122が、代替通信パス20
2を介して第2のメモリコントローラ162と通信する
ことができる。このような通信としては、ハードウェア
およびファームウェア改訂情報の交換、システムにおい
ていつコントローラが交換されたかを検出するためのシ
リアルナンバーの交換と、互いの動作状態についての情
報の交換と、活線挿入シーケンスにおける次のステップ
に互いにいつ移るかの通知とを含むことができる。通信
バスは、故障によりミラーバス200と通信不可能な場
合にどのコントローラを動作状態のままにしておくべき
かを取り決めるためにも使用される。ファームウェアの
他のエリアは、他の目的のためにこのバスを使用する。
ホットプラグ警告142およびホットプラグ警告182
は、冗長コントローラシステムへと活線挿入されている
対応するメモリコントローラ122および162に早期
検出信号を提供するように動作する。早期警告ロジック
は、リセットロジックと協働して、活線挿入されたコン
トローラが完全に設置されるまで、そのコントローラを
リセット状態に保持する。活線の抜去中に、早期検出信
号は、コントローラ抜去の早期警告を提供する。ホット
プラグ警告142およびホットプラグ警告182の早期
検出システムは、コネクタピン、プッシュボタン警告、
センサ検出(たとえば、光学センサ)または他の検出シ
ステムを使用して、機械的または電気的な手段を介して
早期検出信号を受信することができる。存在検出ライン
204は、コントローラが抜去されたか、またはシステ
ムへと挿入されたことを他方のコントローラに通知する
ように動作する。
は、システムコマンドの動作のため、メモリコントロー
ラ122およびメモリコントローラ162を介して対応
するメモリ120およびメモリ160と通信するシステ
ム動作プロセッサである。このようなシステムコマンド
としては、ディスクインタフェース126、132、1
66、168を介して対応するデータ格納システムでの
データの読み出しおよび書き込みのために、ホストイン
タフェース130およびホストインタフェース170を
介して受信するシステムコマンドが挙げられる。プロセ
ッサ124、164は、システム割り込み動作、リセッ
ト動作、または他のシステムプロセスの処理および管理
など他のシステム動作を実行するように動作する。
ステムにおいて使用されるタスクプロセッサの例示的な
一実施形態を示す図である。タスクプロセッサ134が
一例として示されるが、タスクプロセッサ174はタス
クプロセッサ134と同様である。好ましくは、タスク
プロセッサ134は、データ処理ハードウェアを介して
予め定義された機能を実行する。こういったタスクは、
「バックグラウンドタスク(background task)」とし
て処理されるため、システム動作プロセッサ124を介
してシステムコマンドの動作中に達成することができ
る。例示的な一実施形態においては、タスクプロセッサ
134は、メモリ120とメモリ160との間でメモリ
イメージをコピーするメモリ間コピータスク206を含
む。タスクプロセッサ134は、関連するメモリ120
の自己試験を実行する1つ以上のメモリ自己試験タスク
208も含む。コントローラが冗長コントローラシステ
ムに挿入されるとき、または冗長コントローラシステム
110の動作中に随時、メモリ自己試験208を実行す
ることができる。典型的なメモリ自己試験は、メモリイ
メージ、メモリチャンク(memory chunk)、またはデータ
ブロックを読み出すことと、それを内部バッファ(たと
えば、メモリコントローラ122内のバッファ)に保存
することとを含む。テストパターンが、メモリブロック
に書き込まれ、それを読み出して正確性を検証する。こ
のステップは、より多くのテストパターンを用いて繰り
返される。一態様では、タスクプロセッサは、単一の起
動試験において1パターンから30パターン実行するこ
とができる。内部バッファに格納されたオリジナルデー
タブロックは、外部メモリブロックに書き戻される。こ
のプロセスは、すべてのメモリブロックが試験されるま
で繰り返される。他のタスクプロセッサ134のタスク
は、二重ブロックパリティ生成210と、単一ブロック
パリティ生成212と、ブロックパターン認識214
と、チェックサム生成216とを含みうる。
スクプロセッサ134およびタスクプロセッサ174に
よって用いられるデータ構造の例示的な一実施形態を示
す図である。本出願の読んだ後に、他の適したデータ構
造が当業者には明白となるであろう。例示的な一実施形
態では、要求プロセッサがタスク記述ブロック(taskde
scribed block:以下、「TDB」とよぶ。)をメモリ1
20に書き込む。タスク記述ブロックは、コマンドコー
ドおよび要求の処理に必要なコマンド固有の情報(ブロ
ックアドレス、ブロックサイズ、データパターン、パリ
ティ係数へのポインタ等)を含む。次に、要求プロセッ
サが、タスクプロセッサ134にとってローカルな要求
待ち行列(たとえば、220で示す待ち行列0)に要求
エントリを挿入する。このエントリは、コマンドコード
要求ヘッダ222と、関連するタスク記述ブロックへの
TDBポインタ224と、待ち行列ポインタ226とし
て示される応答の待ち行列番号とを含む。
通知すると、タスクプロセッサは、待ち行列220から
要求エントリを読み出す。タスクプロセッサは、要求情
報を用いて、タスクデータブロック228を読み出し、
要求と一致することをチェックする。そして、タスクプ
ロセッサは所望の機能を実行する。タスクプロセッサ
は、符号230に示されるように、指示された応答待ち
行列へと完了応答エントリを配置する。要求するプロセ
ッサ124には、応答待ち行列230を通して完了が通
知される。
理に適したメモリブロックへと分割され、第1のメモリ
120内に含まれるメモリイメージの例示的な一実施形
態を示す図である。特に、特定のタスクプロセッサ13
4を含みメモリコントローラ122の内部にバッファリ
ングするには大きすぎる、メモリ120に格納されるデ
ータブロックに対して、タスクプロセッサ134によっ
て処理されるバックグラウンドタスクは動作することが
できる。したがって、タスクプロセッサ134は、タス
クプロセッサが処理可能なサイズに対応するメモリブロ
ックまたはチャンクに構成するようにメモリイメージま
たはブロックを動作する。図示の例示的な実施形態にお
いて、第1のメモリ120に格納されたメモリイメージ
は、メモリブロック1(符号232)と、メモリブロッ
ク2(符号234)と、メモリブロック3(符号23
6)と、メモリブロック4(符号238)〜メモリブロ
ックN(符号240)とに構成される。一態様では、各
チャンクは最大512バイトであり、これはメモリコン
トローラ122内への内部バッファリングを可能とする
のに十分小さいが、タスク処理システムを有効に使用す
るには十分大きい。一態様において、タスクプロセッサ
134は、メモリコントローラ122の制限内で動作し
ながら、メモリイメージ当たり最小の数のメモリブロッ
クを得るように、メモリブロックのサイズを構成するよ
うに動作する。使用可能な最大メモリブロックが512
バイトである一態様では、タスクプロセッサ134は、
第1のメモリブロックおよび最後のメモリブロックのみ
が最大すなわち512バイト未満であることができるブ
ロックへとメモリイメージを構成する。図示の例示的な
実施形態では、メモリブロック1(符号232)および
メモリブロックN(符号240)は、最大メモリブロッ
クサイズ未満であることができる。メモリブロック2
(符号234)やメモリブロック3(符号236)やメ
モリブロック4(符号238)等は、最大メモリブロッ
クサイズ(たとえば、512バイト)になる。
作プロセッサ124は双方とも、メモリ120内に格納
されているデータに対して動作する。第2のコントロー
ラを冗長コントローラシステムへと追加することを含
み、タスクプロセッサ134を介してのタスクの処理中
にシステムコマンドの処理を継続することができるよう
な冗長コントローラシステム110を構成することが望
ましい。したがって、優先度が、タスクプロセッサ13
4と、メモリ120にアクセスするためにプロセッサ1
24を介して達成されるような他のシステム動作との間
に割り当てられる。好ましい一実施形態においては、オ
ペレーティングシステムの性能がタスクプロセッサ13
4を介してのバックグラウンドタスクの動作により過度
に低下しないように、プロセッサ124よりも低い優先
度(たとえば、最も低い優先度)がタスクプロセッサ1
34に割り当てられる。代わりに、タスクプロセッサ1
34のメモリアクセス優先度が、他のシステム動作と同
じか、それよりも高くてもよい。あるいは、ファームウ
ェアを利用して、タスクプロセッサ134を介して達成
される個々のタスクのメモリアクセス優先度を上げるこ
とも可能である。
小に抑え、本発明によるコントローラを冗長コントロー
ラシステムへとオンライン「活線(hot)」挿入する方
法の例示的な一実施形態を示し、本明細書において上述
した図1から図7も参照する。
システムにコントローラを活線挿入する方法の例示的な
一実施形態を示す図が全体的に符号250で示される。
この例示的な実施形態では、冗長コントローラシステム
が、第1のコントローラ112を介して動作しており、
第2のコントローラは冗長コントローラシステムから抜
去されている。ステップ252において、冗長コントロ
ーラシステム110が、単一コントローラシステムとし
て、第1のコントローラ112を介して動作する。ステ
ップ254において、第1のコントローラ112は、第
2のコントローラ114が冗長コントローラシステム1
10に追加されていることを検出する。第2のコントロ
ーラ114が冗長コントローラシステム110に追加さ
れていることが検出された後に、第1のコントローラ1
12は単一コントローラシステムとして引き続き動作す
る。第1のコントローラは、第2のコントローラ114
が冗長コントローラシステム110に追加されたことを
示す検出信号を受信する。一態様では、第2のコントロ
ーラ114が冗長コントローラシステム110へと活線
挿入されると、第2のコントローラ114が完全に定位
置に挿入されラッチされるまでリセットに保持される。
存在検出ラインが、新しいコントローラの挿入を検出す
る。そして、挿入されたコントローラ114の存在が、
存在検出ライン204を介して、第1のコントローラ1
12に通信される。
ーラ114に電源が投入され、定位置にラッチされるの
を待ってから、プロセッササブシステム自己試験を実行
する。プロセッササブシステム自己試験は、フラッシュ
ROMにあるファームウェアイメージの試験と、マイク
ロプロセッサローカルメモリの試験と、周辺チップレジ
スタの実行と、データパス試験とを含んでいる。ステッ
プ258において、第1のコントローラ112および第
2のコントローラ114が、代替通信パス202を介し
て通信する。第1のコントローラ112および第2のコ
ントローラ114は、第2のコントローラ114が冗長
コントローラシステム110の一部としてまだ「オンラ
イン」になっていない場合であっても、代替通信パス2
02と、メモリ/通信モジュール138と、メモリ/通
信モジュール178とを介して互いに通信する。代替通
信パス202を介しての第1のコントローラ112と第
2のコントローラ114との間のサンプル通信として
は、コントローラ間の互換性を確認するためのハードウ
ェアおよびファームウェア改訂情報の交換と、いつ試験
が完了したかとともにその試験の結果の通知と、活線挿
入プロセス中のコントローラ間の同期点の通信とを含ん
でいる。
ーラの共用メモリに対しての自己試験の実行を含む自己
試験を、第2のコントローラが引き続き実行する。本明
細書において上述したように、このような試験は、シス
テムに割り込むことなく、バックグラウンドタスクとし
てタスクプロセッサ174を介して実行することができ
る。ステップ262において、すべての試験にパスした
わけではない場合には、復元モード264に入れられ
る。復元モード264は、エラー状況を冗長コントロー
ラシステムおよび/またはホストに提供することを含み
うる。一実施形態では、コントローラが不良とマークさ
れてオフラインに保持される。プロセスは、別のコント
ローラを用いて初めからやり直される。すべての試験に
パスした場合には、ステップ266において、第2のコ
ントローラ114が、冗長コントローラシステム110
に追加する準備ができたというメッセージを第1のコン
トローラ112に送信する。
システムへとコントローラを活線挿入する方法をさらに
示す図が、全体的に符号220で示されている。ステッ
プ272において、第1のコントローラ112が、第1
のコントローラの共有書き込みおよびローカル読み出し
専用にメモリ120を構成する。したがって、その時点
の前では、メモリ120へのいずれのデータ書き込み
も、第2のコントローラ114のメモリ160にミラー
リングされるか、または書き込まれる。この時点では、
メモリ160のメモリイメージが、メモリ120のメモ
リイメージの「ミラー(mirror)」コピーではないた
め、冗長コントローラシステム110の一部として、メ
モリ120からはデータだけを読み出すことができる。
ステップ274において、第1のコントローラ112に
よる許可が与えられるまで(たとえば、代替通信パス2
02を介して)、第2のコントローラ114による共用
メモリ120およびそれ自体のメモリ160への書き込
みが禁止される。
ーラ112が、バックグラウンドタスクを介して、すべ
て共用メモリ120における同一ロケーションに共用メ
モリ120を逆にコピーする。特に、タスクプロセッサ
134は、タスクプロセッサ134がメモリ120から
メモリブロックを読み出し、それをバッファに格納し、
メモリブロックをメモリ120内の同一ロケーションに
書き込むというバックグラウンドタスクを含む。この動
作の結果、第1のコントローラ112が共有書き込みモ
ードに構成されるため、第1のコントローラ112は、
メモリブロック120からメモリブロックをローカルに
読み出すが、第1のコントローラ112がメモリ120
内の同一ロケーションに再び書き込まれると、これはま
た、第2のコントローラ114のメモリ160内の同一
ロケーションにも書き込まれる。ステップ278におい
て、このバックグラウンドタスク中に、第1のコントロ
ーラ112は、プロセッサ124を介してシステム動作
コマンドを実行するに当たり動作可能であり続ける。一
態様では、メモリイメージが一度に1つのメモリブロッ
クずつコピーされる。バックグラウンドタスクの完了後
に、ここで第1のメモリ120のメモリイメージは、第
2のメモリ160のメモリイメージのミラーであり、ス
テップ280で示すように、第2のコントローラ114
を冗長コントローラシステム110に追加するプロセス
が継続される。
モリイメージが第2のコントローラのメモリ160にミ
ラーリングまたはコピーされた後に、冗長コントローラ
システムにコントローラを追加する本発明による方法の
例示的な一実施形態を示す図であり、符号290で示さ
れる。ステップ292において、第1のコントローラ1
12が、ミラーリングされた書き込みモードおよび読み
出しモードまたはミラーリングされた書き込みコンフィ
ギュレーション(configuration)および読み出しコン
フィギュレーションに再構成される。これで、第1のメ
モリ120および第2のメモリ160の双方にデータロ
ケーションを読み書きすることができるようになる。ス
テップ294において、第1のコントローラ112が、
すべてのメモリロケーションを読み出し、タスクプロセ
ッサ134を介してのバックグラウンドタスクを用い
て、第2のコントローラの共用メモリ160に対する第
1のコントローラの共用メモリ120の整合性(consis
tency)を比較する。したがって、システム動作コマン
ドは、このときに割り込みを受けない。ステップ296
において、メモリが整合しない場合には、復元モード2
98に入る。メモリが整合する場合には、ステップ30
0において、第1のコントローラ112および第2のコ
ントローラ114が、第2のコントローラを冗長コント
ローラシステム110に追加するように再構成される。
ここで、冗長コントローラシステム110が、ミラーリ
ングメモリ冗長コントローラシステムとして完全に動作
できるようになる。さらに、システム動作処理に対する
割り込みが最小でホストのタイムアウトを引き起こすこ
と無く、第2のコントローラが冗長コントローラシステ
ムへと活線挿入されている。
トローラシステムでは、一方のコントローラをリセット
すると、他方のコントローラのマイクロプロセッサに対
する割り込みが生じる。そのとき、受ける側のコントロ
ーラのプロセッサは、割り込みおよびリセットの原因に
対処しなければならなかった。この従来の方法は、多く
の既知の欠点を有する。第1のコントローラと第2のコ
ントローラとの間のリセットのタイミングは可変であ
る。コントローラが「リセットループ(reset loop)」
内でスタックすると、高性能でないミラーリングインタ
フェース(mirroring interface)の状態変化によっ
て、コントローラのシステム性能に影響する紛らわしい
アクティビティ(distracting activity)と組み合わさ
って、リセットが他方のコントローラのプロセッサに割
り込む。第2のコントローラが「スタック(stuck)」
を有する、すなわち異常なプロセッサである場合には、
第2のコントローラのプロセッサを割り込みへのサービ
ス提供に使用することができないため、第1のコントロ
ーラは第2のコントローラをリセットさせることができ
ない。したがって、ここで第1のコントローラは、シス
テムを回復するために、リセット生成の「ウォッチドッ
グ(watchdog)」モードに戻らなければならない。第2
のコントローラが、システムを用いて格納されたデータ
にダメージを与える可能性はかなり大きい。
コントローラシステムを用いてコントローラリセットを
処理するシステムおよび方法の例示的な一実施形態を示
す図である。本発明による冗長コントローラシステムを
用いてコントローラのリセットを処理する方法では、1
つのコントローラに対する局所的なリセットが可能であ
り、したがって、ミラーリングバス(mirroring bus)が
イネーブル(enable)されているときに、第2のコント
ローラにのみリセットを伝搬することができる。これ
は、誤ったコントローラがすべてのコントローラをリセ
ットに保持することを防止する。また、本明細書におい
て上述した図1から図10も参照する。
トローラシステムにおいてコントローラリセットを処理
する方法の例示的な一実施形態が、全体的に符号400
で示される。冗長コントローラシステムは、アクティブ
に接続され、ミラーリング対として動作する第1のコン
トローラ112および第2のコントローラ114を含
み、ステップ402において、リセット状況が第2のコ
ントローラ114で検出される。第2のコントローラ1
14は、リセットされ、シャットダウンプロセスが開始
される。ステップ404において、シャットダウンプロ
セスは、第1のコントローラ112と第2のコントロー
ラ114との間の通信リンクを介して、第1のコントロ
ーラ112にコントローラリセットを知らせることを含
む。好ましい一実施形態では、ミラーバス200を介し
て第2のコントローラにリセットが発生したことを第1
のコントローラに知らせる。ステップ406において、
シャットダウンプロセスが、第1のコントローラ112
および第2のコントローラ114の双方に対して行われ
る。したがって、第1のコントローラ112および第2
のコントローラ114は双方とも、同時にシャットダウ
ンプロセスを受ける。
ラシステムにおいてコントローラをリセットする方法の
例示的な一実施形態をさらに示す図が、全体的に符号4
10で示される。ステップ412において、双方のコン
トローラに対してシャットダウンプロセスが完了した後
に、第1のコントローラ112および第2のコントロー
ラ114に電源が投入される。シャットダウンにより、
すべての内部バッファがフラッシュされ、メモリが確保
される。ステップ414において、プロセスの一部とし
て、第1のコントローラおよび第2のコントローラがリ
セットされる。ステップ416において、第1のコント
ローラ112と第2のコントローラ114との間のミラ
ーバス200インタフェースがディスエーブル(disabl
e)される。一態様では、第1のコントローラ112お
よび第2のコントローラ114をリセットするステップ
により、ミラーバス200がディスエーブルされる。ミ
ラーバスをディスエーブルするステップは、ミラーバス
が再度イネーブルされるまで、ボード間のリセットのさ
らなる伝搬が発生しないようにする。
ーラ112および第2のコントローラ114の各コント
ローラが自己試験を実行する。内部メモリコントローラ
ASIC122および162とすべてのデータパスバス
の試験と同様に、自己試験は、本明細書において上述し
たように、マイクロプロセッササブシステムおよびSD
RAMメモリの試験を一般に含んでいる。
2のコントローラ114との間のミラーバス200のイ
ンタフェースは、ディスエーブルのままである。したが
って、一方のコントローラにより、または自己試験の結
果発生することがある任意のリセットまたは割り込み
は、他方のコントローラに影響を与えない。ステップ4
20において、自己試験が成功しなかった場合には、ス
テップ422において、自己試験が成功したコントロー
ラが復元モードになる。通常、復元モードは、エラーを
ホストコンピュータシステムに対して生成して故障を知
らせることと、「不良(bad)」コントローラをアレイ
での使用から除くこととを含む。そして、残っている
「良好(good)」コントローラが、データのミラーリング
が必要ではない単一コントローラモードで動作を開始す
る。
ントローラ114の双方に関して自己試験が成功した場
合には、ステップ424において、第1のコントローラ
112と第2のコントローラ114との間のミラーバス
200のインタフェースがイネーブルされる。したがっ
て、第1のコントローラ112および第2のコントロー
ラ114は、リセットまたはリセットの原因が除去さ
れ、再びミラーリング対として動作し続けることが可能
であることが検証される。
用いてコントローラリセットを処理する上記方法では、
一方のコントローラに対する局所的なリセットが可能で
あり、したがって、ミラーリングバスと共にイネーブル
されない限り、リセットが第2のコントローラに伝搬し
ないようにすることができる。これは、システムファー
ムウェアが、システム内のすべてのコントローラをリセ
ットすることができないようにコントローラをディスエ
ーブルする方法がなお可能でありながら、マルチコント
ローラボード間でのリセットの同期のハードウェア管理
という利点を提供する。
ローラが冗長コントローラデータ格納システムから抜去
されると、コントローラが「部分的に抜去された(part
ially removed)」場合または正しく抜去されない場合
にダウンタイムを被ることがある。通常、冗長コントロ
ーラが、休止状態になるか、またはオンライン抜去イベ
ントの持続時間に対するリセットに保持されるために、
このことが発生する。
ラをオンラインで抜去する既知のプロセスは、コントロ
ーラが抜去されつつあるという警告を冗長コントローラ
システムに提供する、早期警告スイッチまたはショート
コネクタピンを含む。警告により、コントローラがコン
トローラの現在のメモリアクセスを終了し、そしてコン
トローラの不揮発性メモリを自己リフレッシュモードに
する。コントローラが全体的に切り離された(たとえ
ば、コントローラ検出ロングピンの切り離し)後、他方
の「対になった(paired)」コントローラが、冗長コン
トローラシステムを制御するために動作を再開すること
が可能になる。検出ピンコネクタを利用するシステムの
場合には、部分的に抜去されたコントローラは、検出ピ
ンが完全に接触しなくなるまで、システムを非アクティ
ブ状態に保持することができる。このセットアップは、
コントローラが冗長コントローラシステムから「部分的
に抜去(partially removed)」されるのみであり、ホ
ストのオペレーティングシステムのタイムアウト期間を
過ぎてオンライン抜去によるダウンタイムが延びる等の
手順が不正確になる機会をもたらす。
システムからコントローラをオンラインで抜去する方法
の例示的な一実施形態を示す図である。本方法は、全体
的に符号450で示される。オンラインでの抜去方法4
50では、冗長コントローラシステムのダウンタイムを
最小に抑えながら、コントローラを冗長コントローラシ
ステムからオンラインで安全に抜去することができる。
冗長コントローラシステム110から抜去されつつある
ことが検出される。また、本明細書において上述した図
1から図12も参照する。一態様では、早期警告スイッ
チまたはコネクタ上のショートピンが、コントローラ自
体が抜去されつつあるという警告をシステム110に提
供する。検出は、冗長コントローラシステム110から
コントローラが完全に切り離される前に行われることが
好ましい。警告は、ホットプラグ警告142またはホッ
トプラグ警告182を介して受信される。本明細書で説
明する例示的な一実施形態では、第1のコントローラ1
12が冗長コントローラシステム110から抜去され
る。
ーラ112が冗長コントローラシステム110から抜去
されつつあることが検出されると、シャットダウンシー
ケンスが第1のコントローラ112および第2のコント
ローラ114に対して行われる。ステップ456におい
て、一態様では、各コントローラについてのシャットダ
ウンシーケンスが、コントローラのプロセッサに割り込
みし、プロセッサがアクティブな処理タスクを終えるこ
とができるようにすることを含む。ステップ458にお
いて、各コントローラについてのシャットダウンシーケ
ンスは、メモリ120およびメモリ160への未処理の
メモリアクセスを完了し、内部バッファをフラッシュす
ることをさらに含む。シャットダウンプロセスの一貫と
して、メモリコントローラ122が、状態語をメモリ1
20に書き込み、メモリコントローラ162が状態語を
メモリ160に書き込む。
20および第2のメモリ160が自己リフレッシュモー
ドを有し、より好ましくはバッテリバックアップを含
む。第1のコントローラ112および第2のコントロー
ラ114に対してシャットダウンシーケンスが完了した
後に、第1のメモリ120および第2のメモリ160
が、対応するメモリコントローラである第1のメモリコ
ントローラ122および第2のメモリコントローラ16
2により、自己リフレッシュモードへと設定される。ス
テップ462において、抜去が検出されたコントローラ
は、オフラインのままで抜去の終了を待つ。そのメモリ
は自己リフレッシュモードに留まる。ステップ464に
おいて、抜去が検出されないコントローラが、直ちにオ
ンラインになるプロセスを開始する。本明細書において
述べる例示的な実施形態では、メモリ120に対する自
己リフレッシュプロセスの完了後に、抜去が検出された
第1のコントローラ112がオフラインのまま抜去の終
了を待ち、メモリ120が自己リフレッシュモードに留
まる(一態様において、メモリはバッテリバックDRA
Mである)。抜去を検出しない第2のコントローラ11
4が、直ちにオンラインになるプロセスを開始し、冗長
コントローラシステムのダウンタイムを最小に抑える。
メモリ160(たとえば、バッテリバックDRAM)
は、自己リフレッシュモードから出され、メモリコント
ローラによる使用のため、先に書き込まれた状態語(st
atus word)を保持する。
特定の実施形態を本明細書に図示し説明したが、当業者
は、本発明の範囲から逸脱せずに、同じ目的を達成する
ために適合される多種多様な代替および/または同等の
実施を図示し説明した特定の実施形態と置き換えること
ができることを理解するであろう。化学、機械、電気機
械、電子、およびコンピュータの分野における知識を有
する者は、本発明を多種多様な実施形態で実施しうるこ
とを容易に理解するであろう。この出願は、本明細書に
述べられる好ましい実施形態のあらゆる適合または変更
を網羅するよう意図される。したがって、本発明は特許
請求の範囲およびその同等物によってのみ制限されるも
のと明白に意図されるものである。
ように構成された冗長コントローラデータ格納システム
の例示的な一実施形態を示すブロック図である。
テムにコントローラを活線挿入する方法の例示的な一実
施形態を示すブロック図である。
トローラを活線挿入する方法の別の例示的な実施形態を
示すブロック図である。
ように構成される冗長コントローラデータ格納システム
の別の例示的な実施形態を示すブロック図である。
テムにおいて使用されるタスクプロセッサの例示的な一
実施形態を示す概略図である。
るタスクプロセッサによって利用されるデータ構造の例
示的な一実施形態を示す概略図である。
テムに使用される、メモリブロックに構成されたメモリ
イメージを有するコントローラ共用メモリの例示的な一
実施形態を示す概略図である。
トローラを活線挿入する方法の例示的な一実施形態を示
すブロック図である。
トローラを活線挿入する方法の例示的な一実施形態をさ
らに示すブロック図である。
ントローラを活線挿入する方法の例示的な一実施形態を
さらに示すブロック図である。
いてコントローラのリセットを処理する方法の例示的な
一実施形態を示すブロック図である。
けるコントローラのリセットを処理する方法の例示的な
一実施形態をさらに示すブロック図である。
けるコントローラを抜去する方法の例示的な一実施形態
を示すブロック図である。
ップ 85、96 システム動作コマンドを処理するステップ 86、98 第2のコントローラを挿入するステップ 88、102 バックグラウンドタスクを処理するステ
ップ 100 第1のメモリを構成するステップ 120 第1のミラーリングアレイ、メモリ、メモリブ
ロック 200 ミラーバス 202 代替通信パス 254 第2のコントローラが挿入されたことを第1の
コントローラが検出するステップ 256 第2のコントローラに電源を投入するステップ 260 第2のコントローラが引き続く自己試験を実行
するステップ 262 すべての試験に成功したか否かを判断するステ
ップ 266 第2のコントローラが、冗長コントローラシス
テムに追加する準備ができたというメッセージを第1の
コントローラに送信するステップ 274 第1のコントローラにより許可が与えられるま
で、第2のコントローラの共用メモリへの書き込みを禁
止するステップ 292 第1のコントローラが再構成されるステップ 294 第1のメモリを第2のメモリと比較するステッ
プ 296 メモリが一貫するか否かを判断するステップ 300 第2のコントローラを冗長コントローラシステ
ムに追加するように第1のコントローラおよび第2のコ
ントローラを再構成するステップ
Claims (10)
- 【請求項1】 第1のメモリが第1のメモリイメージを
含む第1のメモリとタスクプロセッサとシステム動作プ
ロセッサとを含むように第1のコントローラを構成する
ステップと、 前記第1のコントローラを介して、冗長コントローラシ
ステムを動作させるステップと、 前記システム動作プロセッサを介して、システム動作コ
マンドを処理するステップと、 第2のメモリを含む第2のコントローラを前記冗長コン
トローラシステムへと挿入するステップと、 前記第1のコントローラを介して前記システム動作コマ
ンドを処理している間に、前記第1のメモリイメージを
前記第2のメモリにコピーすることを含むバックグラウ
ンドタスクを、前記タスクプロセッサを用いて処理する
ステップとを含んでなる、冗長コントローラシステムに
コントローラを活線挿入する方法。 - 【請求項2】 前記第1のメモリイメージをいくつかの
メモリブロックへと分割するステップと、該メモリブロ
ックを前記第2のメモリにコピーするステップとをさら
に含んでいる請求項1に記載の方法。 - 【請求項3】 前記第2のメモリへのミラーリングされ
た書き込みおよび局所的な読み出し専用に前記第1のメ
モリを構成するステップを含んでいる請求項1に記載の
方法。 - 【請求項4】 前記システム動作コマンドを処理するス
テップが、前記システム動作プロセッサを介して前記第
1のメモリにアクセスすることを含むシステム動作コマ
ンドを処理するステップと、前記システム動作プロセッ
サおよび前記タスクプロセッサによる前記第1のメモリ
のアクセスに優先度を割り当てるステップと、前記タス
クプロセッサよりも高い前記第1のメモリへのアクセス
優先度を前記システム動作プロセッサに割り当てるステ
ップとを含んでいる請求項1または3に記載の方法。 - 【請求項5】 前記第1のコントローラと前記第2のコ
ントローラとの間にメモリイメージバスを構成するステ
ップであって、前記第1のメモリイメージが、前記メモ
リイメージバスを介して前記第2のメモリにコピーされ
るステップと、前記メモリイメージバスとは別に、前記
第1のコントローラを前記第2のコントローラに通信バ
スを介してリンクするステップと、前記第1のコントロ
ーラと前記第2のコントローラとの間で前記通信バスを
介して通信するステップとを含んでいる請求項1、3、
または4のいずれかに記載の方法。 - 【請求項6】 前記第1のコントローラは、二重コント
ローラシステムを実行している間に前記第2のコントロ
ーラが挿入されたことを検出するステップをさらに含ん
でおり、前記第2のコントローラを挿入する前記ステッ
プは、前記第1のコントローラが前記冗長コントローラ
システムを実行している間に前記第2のメモリに対して
自己試験を実行することを含む自己試験を含み、すべて
の前記自己試験が成功した場合には、前記第2のコント
ローラが、前記第1のコントローラにメッセージを送信
し、前記二重コントローラシステムに追加可能であるこ
とを示すステップを含んでいる請求項1に記載の方法。 - 【請求項7】 前記第2のコントローラが前記第1のコ
ントローラから許可を受けるまで前記第2のコントロー
ラによる前記第1のメモリへのミラーリングされた書き
込みを禁止するステップと、前記第1のコントローラの
前記第1のメモリと前記第2のコントローラの前記第2
のメモリとのミラーリングされた書き込みおよびミラー
リングされた読み出しのために、前記第1のメモリイメ
ージを前記第2のメモリにコピー完了した後に、前記第
1のコントローラを構成するステップとを含んでいる請
求項1または3に記載の方法。 - 【請求項8】 前記第1のコントローラまたは前記第2
のコントローラによってそれぞれミラーリングされた読
み出しの後に、前記第1のメモリと前記第2のメモリと
を比較するステップを含んでいる請求項7に記載の方
法。 - 【請求項9】 前記第2のメモリのメモリロケーション
を検証して、前記コピーが成功したことを確認するステ
ップをさらに含んでおり、前記コピーが成功したと検証
された場合には、前記第2のコントローラが冗長コント
ローラとして前記冗長コントローラシステムに追加され
る請求項7に記載の方法。 - 【請求項10】 前記第1のコントローラおよび前記第
2のコントローラを含み、請求項1から9のいずれかに
記載の方法を実行するように構成された冗長コントロー
ラシステム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/810102 | 2001-03-15 | ||
US09/810,102 US6802023B2 (en) | 2001-03-15 | 2001-03-15 | Redundant controller data storage system having hot insertion system and method |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002333935A true JP2002333935A (ja) | 2002-11-22 |
JP2002333935A5 JP2002333935A5 (ja) | 2005-09-08 |
Family
ID=25203001
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002072618A Pending JP2002333935A (ja) | 2001-03-15 | 2002-03-15 | 冗長コントローラシステムにコントローラを活線挿入する方法およびシステム |
Country Status (3)
Country | Link |
---|---|
US (1) | US6802023B2 (ja) |
JP (1) | JP2002333935A (ja) |
GB (1) | GB2375633B (ja) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008097623A (ja) * | 2007-11-02 | 2008-04-24 | Hitachi Ltd | 記憶装置システム、および、記憶装置システムの構成方法 |
US7464222B2 (en) | 2004-02-16 | 2008-12-09 | Hitachi, Ltd. | Storage system with heterogenous storage, creating and copying the file systems, with the write access attribute |
JPWO2007088575A1 (ja) * | 2006-01-31 | 2009-06-25 | 富士通株式会社 | システム監視装置の制御方法、プログラム及びコンピュータシステム |
JP2011048441A (ja) * | 2009-08-25 | 2011-03-10 | Nec Corp | 二重化システム、及び、二重化方法 |
US8321898B2 (en) | 2005-05-23 | 2012-11-27 | Sony Corporation | Content display-playback system, content display-playback method, and recording medium and operation control apparatus used therewith |
JP2014130418A (ja) * | 2012-12-28 | 2014-07-10 | Nec Computertechno Ltd | メモリミラーリング装置、メモリミラーリング方法、及びそのプログラム |
JP2014178828A (ja) * | 2013-03-14 | 2014-09-25 | Nec Corp | 二重化システム |
Families Citing this family (62)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
JP3943865B2 (ja) * | 2001-06-05 | 2007-07-11 | 株式会社日立製作所 | コンピュータ装置および診断方法 |
JP4060552B2 (ja) * | 2001-08-06 | 2008-03-12 | 株式会社日立製作所 | 記憶装置システム、および、記憶装置システムの構成方法 |
US6874108B1 (en) * | 2001-08-27 | 2005-03-29 | Agere Systems Inc. | Fault tolerant operation of reconfigurable devices utilizing an adjustable system clock |
US6931487B2 (en) * | 2001-10-22 | 2005-08-16 | Hewlett-Packard Development Company L.P. | High performance multi-controller processing |
US7055056B2 (en) * | 2001-11-21 | 2006-05-30 | Hewlett-Packard Development Company, L.P. | System and method for ensuring the availability of a storage system |
US6779093B1 (en) * | 2002-02-15 | 2004-08-17 | Veritas Operating Corporation | Control facility for processing in-band control messages during data replication |
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 |
GB0214669D0 (en) * | 2002-06-26 | 2002-08-07 | Ibm | Method for maintaining data access during failure of a controller |
US6996743B2 (en) * | 2002-07-26 | 2006-02-07 | Sun Microsystems, Inc. | Method for implementing a redundant data storage system |
US20040054765A1 (en) * | 2002-09-12 | 2004-03-18 | Dwyer Thomas J. | Method and apparatus for accessing multiple system controllers within a computer system |
US7107493B2 (en) * | 2003-01-21 | 2006-09-12 | Hewlett-Packard Development Company, L.P. | System and method for testing for memory errors in a computer system |
WO2004090872A2 (en) * | 2003-04-03 | 2004-10-21 | Commvault Systems, Inc. | Method and system for controlling a robotic arm in a storage device |
US20040257102A1 (en) * | 2003-06-20 | 2004-12-23 | Wong Hong W. | Secure content protection for board connections |
US7603580B2 (en) * | 2003-07-15 | 2009-10-13 | International Business Machines Corporation | Redundant manager for a storage system |
GB0318384D0 (en) * | 2003-08-06 | 2003-09-10 | Ibm | A storage controller and a method for recording diagnostic information |
JP2005122453A (ja) * | 2003-10-16 | 2005-05-12 | Hitachi Ltd | ストレージ装置のディスクコントローラ制御方式およびストレージ装置 |
JP4313650B2 (ja) | 2003-11-07 | 2009-08-12 | 株式会社日立製作所 | ファイルサーバ、冗長度回復方法、プログラム及び記録媒体 |
US8006056B2 (en) * | 2004-01-30 | 2011-08-23 | Hewlett-Packard Development Company, L.P. | Storage system including capability to move a virtual storage device group without moving data |
US7496819B2 (en) * | 2004-02-05 | 2009-02-24 | Broadcom Corporation | Custom logic BIST for memory controller |
TWI306241B (en) * | 2004-07-12 | 2009-02-11 | Infortrend Technology Inc | A controller capable of self-monitoring, a redundant storage system having the same, and its method |
US7155552B1 (en) * | 2004-09-27 | 2006-12-26 | Emc Corporation | Apparatus and method for highly available module insertion |
ITMI20050063A1 (it) | 2005-01-20 | 2006-07-21 | Atmel Corp | Metodo e sistema per la gestione di una richiesta di sospensione in una memoria flash |
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 |
KR100626391B1 (ko) * | 2005-04-01 | 2006-09-20 | 삼성전자주식회사 | 원낸드 플래시 메모리 및 그것을 포함한 데이터 처리시스템 |
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 |
KR100770749B1 (ko) * | 2006-07-11 | 2007-10-26 | 삼성전자주식회사 | 셀프 테스트 기능을 추가한 메모리 컨트롤러 및 이를이용한 방법 |
US8161353B2 (en) * | 2007-12-06 | 2012-04-17 | Fusion-Io, Inc. | Apparatus, system, and method for validating that a correct data segment is read from a data storage device |
US8151082B2 (en) * | 2007-12-06 | 2012-04-03 | Fusion-Io, Inc. | Apparatus, system, and method for converting a storage request into an append data storage command |
US20080140724A1 (en) | 2006-12-06 | 2008-06-12 | David Flynn | Apparatus, system, and method for servicing object requests within a storage controller |
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 |
US7725762B2 (en) * | 2007-06-06 | 2010-05-25 | International Business Machines Corporation | Implementing redundant memory access using multiple controllers on the same bank of memory |
US7882479B2 (en) * | 2007-06-06 | 2011-02-01 | International Business Machines Corporation | Method and apparatus for implementing redundant memory access using multiple controllers on the same bank of memory |
US7685374B2 (en) * | 2007-07-26 | 2010-03-23 | Siliconsystems, Inc. | Multi-interface and multi-bus structured solid-state storage subsystem |
US7836226B2 (en) | 2007-12-06 | 2010-11-16 | Fusion-Io, Inc. | Apparatus, system, and method for coordinating storage requests in a multi-processor/multi-thread environment |
US9519540B2 (en) | 2007-12-06 | 2016-12-13 | Sandisk Technologies Llc | Apparatus, system, and method for destaging cached data |
US9223514B2 (en) | 2009-09-09 | 2015-12-29 | SanDisk Technologies, Inc. | Erase suspend/resume for memory |
US8429436B2 (en) | 2009-09-09 | 2013-04-23 | Fusion-Io, Inc. | Apparatus, system, and method for power reduction in a storage device |
US8984216B2 (en) | 2010-09-09 | 2015-03-17 | Fusion-Io, Llc | Apparatus, system, and method for managing lifetime of a storage device |
US9047178B2 (en) | 2010-12-13 | 2015-06-02 | SanDisk Technologies, Inc. | Auto-commit memory synchronization |
US8527693B2 (en) | 2010-12-13 | 2013-09-03 | Fusion IO, Inc. | Apparatus, system, and method for auto-commit memory |
US10817421B2 (en) | 2010-12-13 | 2020-10-27 | Sandisk Technologies Llc | Persistent data structures |
US10817502B2 (en) | 2010-12-13 | 2020-10-27 | Sandisk Technologies Llc | Persistent memory management |
US9208071B2 (en) | 2010-12-13 | 2015-12-08 | SanDisk Technologies, Inc. | Apparatus, system, and method for accessing memory |
US9218278B2 (en) | 2010-12-13 | 2015-12-22 | SanDisk Technologies, Inc. | Auto-commit memory |
US9141527B2 (en) | 2011-02-25 | 2015-09-22 | Intelligent Intellectual Property Holdings 2 Llc | Managing cache pools |
US9251086B2 (en) | 2012-01-24 | 2016-02-02 | SanDisk Technologies, Inc. | Apparatus, system, and method for managing a cache |
US10031820B2 (en) * | 2013-01-17 | 2018-07-24 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Mirroring high performance and high availablity applications across server computers |
US10009438B2 (en) | 2015-05-20 | 2018-06-26 | Sandisk Technologies Llc | Transaction log acceleration |
CN107729213B (zh) * | 2017-10-11 | 2022-04-26 | 杭州迪普科技股份有限公司 | 一种后台任务监控方法及装置 |
Family Cites Families (39)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5193154A (en) | 1987-07-10 | 1993-03-09 | Hitachi, Ltd. | Buffered peripheral system and method for backing up and retrieving data to and from backup memory device |
US4958273A (en) | 1987-08-26 | 1990-09-18 | International Business Machines Corporation | Multiprocessor system architecture with high availability |
US5204952A (en) | 1988-07-18 | 1993-04-20 | Northern Telecom Limited | Duplex processor arrangement for a switching system |
EP0415545B1 (en) | 1989-08-01 | 1996-06-19 | Digital Equipment Corporation | Method of handling errors in software |
JPH03132143A (ja) | 1989-10-17 | 1991-06-05 | Fujitsu Ltd | 交換機システムにおける非常再開処理方式 |
US5140592A (en) | 1990-03-02 | 1992-08-18 | Sf2 Corporation | Disk array system |
US5195100A (en) | 1990-03-02 | 1993-03-16 | Micro Technology, Inc. | Non-volatile memory storage of write operation identifier in data sotrage device |
US5212785A (en) | 1990-04-06 | 1993-05-18 | Micro Technology, Inc. | Apparatus and method for controlling data flow between a computer and memory devices |
US5214778A (en) | 1990-04-06 | 1993-05-25 | Micro Technology, Inc. | Resource management in a multiple resource system |
US5155845A (en) | 1990-06-15 | 1992-10-13 | Storage Technology Corporation | Data storage system for providing redundant copies of data on different disk drives |
US5212784A (en) | 1990-10-22 | 1993-05-18 | Delphi Data, A Division Of Sparks Industries, Inc. | Automated concurrent data backup system |
US5155835A (en) | 1990-11-19 | 1992-10-13 | Storage Technology Corporation | Multilevel, hierarchical, dynamically mapped data storage subsystem |
US5278838A (en) | 1991-06-18 | 1994-01-11 | Ibm Corp. | Recovery from errors in a redundant array of disk drives |
DE69227956T2 (de) | 1991-07-18 | 1999-06-10 | Tandem Computers Inc., Cupertino, Calif. | Multiprozessorsystem mit gespiegeltem Speicher |
US5237658A (en) | 1991-10-01 | 1993-08-17 | Tandem Computers Incorporated | Linear and orthogonal expansion of array storage in multiprocessor computing systems |
US5297258A (en) | 1991-11-21 | 1994-03-22 | Ast Research, Inc. | Data logging for hard disk data storage systems |
US5287462A (en) | 1991-12-20 | 1994-02-15 | Ncr Corporation | Bufferless SCSI to SCSI data transfer scheme for disk array applications |
US5289418A (en) | 1992-02-14 | 1994-02-22 | Extended Systems, Inc. | Memory apparatus with built-in parity generation |
US5388254A (en) | 1992-03-27 | 1995-02-07 | International Business Machines Corporation | Method and means for limiting duration of input/output (I/O) requests |
US5418921A (en) | 1992-05-05 | 1995-05-23 | International Business Machines Corporation | Method and means for fast writing data to LRU cached based DASD arrays under diverse fault tolerant modes |
US5459857A (en) | 1992-05-15 | 1995-10-17 | Storage Technology Corporation | Fault tolerant disk array data storage subsystem |
US5379415A (en) | 1992-09-29 | 1995-01-03 | Zitel Corporation | Fault tolerant memory system |
US5437022A (en) | 1992-12-17 | 1995-07-25 | International Business Machines Corporation | Storage controller having additional cache memory and a means for recovering from failure and reconfiguring a control unit thereof in response thereto |
US5546539A (en) | 1993-12-29 | 1996-08-13 | Intel Corporation | Method and system for updating files of a plurality of storage devices through propogation of files over a nework |
US5682471A (en) | 1994-10-06 | 1997-10-28 | Billings; Thomas Neal | System for transparently storing inputs to non-volatile storage and automatically re-entering them to reconstruct work if volatile memory is lost |
US5574863A (en) | 1994-10-25 | 1996-11-12 | Hewlett-Packard Company | System for using mirrored memory as a robust communication path between dual disk storage controllers |
DE69523124T2 (de) | 1994-12-15 | 2002-05-29 | Hewlett-Packard Co. (N.D.Ges.D.Staates Delaware), Palo Alto | Fehlererkennungssystem für einen gespiegelten Speicher in einer duplizierten Steuerung eines Plattenspeicherungssystems |
EP0721162A2 (en) | 1995-01-06 | 1996-07-10 | Hewlett-Packard Company | Mirrored memory dual controller disk storage system |
US5553230A (en) | 1995-01-18 | 1996-09-03 | Hewlett-Packard Company | Identifying controller pairs in a dual controller disk array |
US5568641A (en) | 1995-01-18 | 1996-10-22 | Hewlett-Packard Company | Powerfail durable flash EEPROM upgrade |
US5666512A (en) | 1995-02-10 | 1997-09-09 | Hewlett-Packard Company | Disk array having hot spare resources and methods for using hot spare resources to store user data |
US5856989A (en) | 1996-08-13 | 1999-01-05 | Hewlett-Packard Company | Method and apparatus for parity block generation |
US6092168A (en) | 1996-10-25 | 2000-07-18 | Hewlett-Packard Co. | Data storage system and method for deallocating space by writing and detecting a predefined data pattern |
US5991852A (en) * | 1996-10-28 | 1999-11-23 | Mti Technology Corporation | Cache ram using a secondary controller and switching circuit and improved chassis arrangement |
US5986880A (en) * | 1997-06-16 | 1999-11-16 | Compaq Computer Corporation | Electronic apparatus having I/O board with cable-free redundant adapter cards thereon |
US5960451A (en) | 1997-09-16 | 1999-09-28 | Hewlett-Packard Company | System and method for reporting available capacity in a data storage system with variable consumption characteristics |
US5975738A (en) * | 1997-09-30 | 1999-11-02 | Lsi Logic Corporation | Method for detecting failure in redundant controllers using a private LUN |
US6085333A (en) * | 1997-12-19 | 2000-07-04 | Lsi Logic Corporation | Method and apparatus for synchronization of code in redundant controllers in a swappable environment |
US6708283B1 (en) * | 2000-04-13 | 2004-03-16 | Stratus Technologies, Bermuda Ltd. | System and method for operating a system with redundant peripheral bus controllers |
-
2001
- 2001-03-15 US US09/810,102 patent/US6802023B2/en not_active Expired - Lifetime
-
2002
- 2002-03-08 GB GB0205560A patent/GB2375633B/en not_active Expired - Lifetime
- 2002-03-15 JP JP2002072618A patent/JP2002333935A/ja active Pending
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7464222B2 (en) | 2004-02-16 | 2008-12-09 | Hitachi, Ltd. | Storage system with heterogenous storage, creating and copying the file systems, with the write access attribute |
US8321898B2 (en) | 2005-05-23 | 2012-11-27 | Sony Corporation | Content display-playback system, content display-playback method, and recording medium and operation control apparatus used therewith |
JPWO2007088575A1 (ja) * | 2006-01-31 | 2009-06-25 | 富士通株式会社 | システム監視装置の制御方法、プログラム及びコンピュータシステム |
JP4568764B2 (ja) * | 2006-01-31 | 2010-10-27 | 富士通株式会社 | システム監視装置の制御方法、プログラム及びコンピュータシステム |
US8230258B2 (en) | 2006-01-31 | 2012-07-24 | Fujitsu Limited | Control method of system monitoring device, program, and computer system |
JP2008097623A (ja) * | 2007-11-02 | 2008-04-24 | Hitachi Ltd | 記憶装置システム、および、記憶装置システムの構成方法 |
JP2011048441A (ja) * | 2009-08-25 | 2011-03-10 | Nec Corp | 二重化システム、及び、二重化方法 |
JP2014130418A (ja) * | 2012-12-28 | 2014-07-10 | Nec Computertechno Ltd | メモリミラーリング装置、メモリミラーリング方法、及びそのプログラム |
JP2014178828A (ja) * | 2013-03-14 | 2014-09-25 | Nec Corp | 二重化システム |
US9558149B2 (en) | 2013-03-14 | 2017-01-31 | Nec Corporation | Dual system |
Also Published As
Publication number | Publication date |
---|---|
US20020133743A1 (en) | 2002-09-19 |
GB2375633B (en) | 2005-02-02 |
GB2375633A (en) | 2002-11-20 |
GB0205560D0 (en) | 2002-04-24 |
US6802023B2 (en) | 2004-10-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6715101B2 (en) | Redundant controller data storage system having an on-line controller removal system and method | |
US6802023B2 (en) | Redundant controller data storage system having hot insertion system and method | |
US6708285B2 (en) | Redundant controller data storage system having system and method for handling controller resets | |
US7549020B2 (en) | Method and apparatus for raid on memory | |
US7496786B2 (en) | Systems and methods for maintaining lock step operation | |
US6493796B1 (en) | Method and apparatus for maintaining consistency of data stored in a group of mirroring devices | |
US7681089B2 (en) | Redundant storage controller system with enhanced failure analysis capability | |
US8037368B2 (en) | Controller capable of self-monitoring, redundant storage system having the same, and method thereof | |
US20090006745A1 (en) | Accessing snapshot data image of a data mirroring volume | |
CN113342262B (zh) | 用以进行全快闪存储器阵列伺服器的碟管理的方法与设备 | |
KR20180086129A (ko) | 정보 처리장치, 그 제어방법, 및 기억매체 | |
US6938188B1 (en) | Method for verifying functional integrity of computer hardware, particularly data storage devices | |
CN113342263B (zh) | 全快闪存储器阵列伺服器的节点信息交换管理方法与设备 | |
JP2001356968A (ja) | 故障許容データ格納システムおよび故障許容データ格納システムの動作方法 | |
JP2006133926A (ja) | ストレージ装置 | |
US7260680B2 (en) | Storage apparatus having microprocessor redundancy for recovery from soft errors | |
JP2001075741A (ja) | ディスク制御システムおよびデータ保全方法 | |
CN113342593B (zh) | 用以进行全快闪存储器阵列伺服器的高可用性管理的方法与设备 | |
CN113342261B (en) | Server and control method applied to server | |
US20240231996A1 (en) | Deterministic Hardware Indictment in Response to Fatal PCIe NTB Error | |
US11074144B2 (en) | Active firmware replacement in storage system and in storage controller, and computer-readable recording medium having stored therein program for active firmware replacement in controlling storage | |
CN113868000B (zh) | 一种链路故障修复方法、系统及相关组件 | |
JPH09305491A (ja) | ディスクキャッシュシステム及びディスクキャッシュ方法 | |
CN116679875A (zh) | 冗余磁盘阵列控制器切换系统、方法、电子设备及介质 | |
JP2002351755A (ja) | 障害発生装置およびコンピュータシステムの試験方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050315 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050315 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20080204 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080208 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080327 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20090123 |