JP2002358210A - コントローラリセットを処理する方法、及びコントローラリセットを処理するシステム及び方法を有する冗長コントローラデータ格納システム - Google Patents
コントローラリセットを処理する方法、及びコントローラリセットを処理するシステム及び方法を有する冗長コントローラデータ格納システムInfo
- Publication number
- JP2002358210A JP2002358210A JP2002072619A JP2002072619A JP2002358210A JP 2002358210 A JP2002358210 A JP 2002358210A JP 2002072619 A JP2002072619 A JP 2002072619A JP 2002072619 A JP2002072619 A JP 2002072619A JP 2002358210 A JP2002358210 A JP 2002358210A
- Authority
- JP
- Japan
- Prior art keywords
- controller
- memory
- data storage
- redundant
- reset
- 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.)
- Withdrawn
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/22—Arrangements for detecting or preventing errors in the information received using redundant apparatus to increase reliability
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Hardware Redundancy (AREA)
Abstract
(57)【要約】
【課題】 冗長コントローラデータ格納システムのダウ
ンタイム又はホストのタイムアウトを最小に抑える。 【解決手段】 第2のコントローラ(34,114)に
おいてコントローラリセットを検出するステップ(40
2)と、第1のコントローラ(32,112)と第2の
コントローラ(34,114)との間の通信リンク(4
0,200)を介して、第1のコントローラにコントロ
ーラリセットを通知するステップ(404)と、第1の
コントローラ及び第2のコントローラに対してシャット
ダウンプロセスを実行するステップ(406)と、第1
のコントローラと第2のコントローラとの間の通信リン
クをディセーブルするステップであって、第2のコント
ローラを介しての後続するコントローラリセットの検出
が、通信リンクを介して第1のコントローラに通信され
得ないようにするステップ(416)とを含む。
ンタイム又はホストのタイムアウトを最小に抑える。 【解決手段】 第2のコントローラ(34,114)に
おいてコントローラリセットを検出するステップ(40
2)と、第1のコントローラ(32,112)と第2の
コントローラ(34,114)との間の通信リンク(4
0,200)を介して、第1のコントローラにコントロ
ーラリセットを通知するステップ(404)と、第1の
コントローラ及び第2のコントローラに対してシャット
ダウンプロセスを実行するステップ(406)と、第1
のコントローラと第2のコントローラとの間の通信リン
クをディセーブルするステップであって、第2のコント
ローラを介しての後続するコントローラリセットの検出
が、通信リンクを介して第1のコントローラに通信され
得ないようにするステップ(416)とを含む。
Description
【0001】
【発明の属する技術分野】本発明は、一般に、冗長コン
トローラデータ格納システム及び冗長コントローラを採
用したデータ格納システムに関し、より詳細には、コン
トローラリセットを処理する方法、及びコントローラリ
セットを処理するシステム及び方法を有する冗長コント
ローラデータ格納システムに関する。
トローラデータ格納システム及び冗長コントローラを採
用したデータ格納システムに関し、より詳細には、コン
トローラリセットを処理する方法、及びコントローラリ
セットを処理するシステム及び方法を有する冗長コント
ローラデータ格納システムに関する。
【0002】
【従来の技術】信頼性の高い冗長データ格納システムの
提供には、マルチコントローラシステムが用いられる。
例えば、ハードディスクドライブ業界では、ディスクド
ライブの耐故障性及びディスクドライブ性能を向上させ
るために、マルチコントローラシステムが、2つ以上の
ディスクドライブを組み合わせて採用するRAID(独
立した複数のディスクからなる冗長アレイ;redundant
array of independent disksの略)システムの一部とし
て用いられる。動作に当たり、RAIDシステムは、複
数のコントローラを冗長性のために採用する。複数のコ
ントローラは、複数のハードディスクにわたってユーザ
のデータをストライピング(striping)する。アレイ
は、何れか1つのコントローラにて動作することができ
る。複数のコントローラが存在する場合、コントローラ
は、性能を向上させるために、及び/又は、ホストコン
ピュータシステムの接続ポートの数を増大するために用
いられる。データにアクセスするとき、マルチコントロ
ーラRAIDシステムにより、全てのハードディスクが
同時に動作することが可能になり、速度及び信頼性の大
幅な増大がもたらされる。
提供には、マルチコントローラシステムが用いられる。
例えば、ハードディスクドライブ業界では、ディスクド
ライブの耐故障性及びディスクドライブ性能を向上させ
るために、マルチコントローラシステムが、2つ以上の
ディスクドライブを組み合わせて採用するRAID(独
立した複数のディスクからなる冗長アレイ;redundant
array of independent disksの略)システムの一部とし
て用いられる。動作に当たり、RAIDシステムは、複
数のコントローラを冗長性のために採用する。複数のコ
ントローラは、複数のハードディスクにわたってユーザ
のデータをストライピング(striping)する。アレイ
は、何れか1つのコントローラにて動作することができ
る。複数のコントローラが存在する場合、コントローラ
は、性能を向上させるために、及び/又は、ホストコン
ピュータシステムの接続ポートの数を増大するために用
いられる。データにアクセスするとき、マルチコントロ
ーラRAIDシステムにより、全てのハードディスクが
同時に動作することが可能になり、速度及び信頼性の大
幅な増大がもたらされる。
【0003】RAIDシステム構成は、異なるRAID
レベルによって定義される。異なるRAIDレベルは、
データストライピング(複数のハードディスクにわたっ
て各ファイルのデータブロックを分散させる)を提供し
て、ディスクドライブの速度及び性能が向上するが、冗
長性はない、レベル0から多岐にわたる。RAIDレベ
ル1は、ディスク・ミラーリングを提供し、ハードディ
スクのミラーリング対(すなわち、2枚のハードディス
クに書き込まれた同一のデータブロック)を通して10
0%のデータ冗長性がもたらされる。他のディスクドラ
イブRAIDレベルは、様々なデータストライピング及
びディスク・ミラーリングを提供すると共に、性能,耐
故障性,効率、及び/又は費用効率を増大する向上した
誤り修正も提供する。
レベルによって定義される。異なるRAIDレベルは、
データストライピング(複数のハードディスクにわたっ
て各ファイルのデータブロックを分散させる)を提供し
て、ディスクドライブの速度及び性能が向上するが、冗
長性はない、レベル0から多岐にわたる。RAIDレベ
ル1は、ディスク・ミラーリングを提供し、ハードディ
スクのミラーリング対(すなわち、2枚のハードディス
クに書き込まれた同一のデータブロック)を通して10
0%のデータ冗長性がもたらされる。他のディスクドラ
イブRAIDレベルは、様々なデータストライピング及
びディスク・ミラーリングを提供すると共に、性能,耐
故障性,効率、及び/又は費用効率を増大する向上した
誤り修正も提供する。
【0004】RAIDレベル5は、データをブロックに
分割し、ブロックをディスクドライブにわたってストラ
イピングする。パリティブロックがデータブロックから
計算され、これもディスクに格納される。全てのデータ
ブロック及びパリティブロックが異なるディスクに格納
される(ストライピングされる)。何れか1つのディス
クドライブが故障すると、データブロック又はパリティ
ブロックの一方のみが失われることになる。次いで、ア
レイは、失われたブロックを数学的に再度作成すること
ができる。また、RAIDレベル5は、データブロック
及びパリティブロックが格納されるディスクを回転させ
る(すなわち、全てのディスクにいくつかのパリティブ
ロックが格納される)。RAIDレベル6は、これに1
ステップ追加し、異なる数学式を用いて2つの「パリテ
ィ」ブロックを計算する。これにより、2つのディスク
ドライブが故障してもなお、アレイが全てのデータを再
度作成することが可能になる。
分割し、ブロックをディスクドライブにわたってストラ
イピングする。パリティブロックがデータブロックから
計算され、これもディスクに格納される。全てのデータ
ブロック及びパリティブロックが異なるディスクに格納
される(ストライピングされる)。何れか1つのディス
クドライブが故障すると、データブロック又はパリティ
ブロックの一方のみが失われることになる。次いで、ア
レイは、失われたブロックを数学的に再度作成すること
ができる。また、RAIDレベル5は、データブロック
及びパリティブロックが格納されるディスクを回転させ
る(すなわち、全てのディスクにいくつかのパリティブ
ロックが格納される)。RAIDレベル6は、これに1
ステップ追加し、異なる数学式を用いて2つの「パリテ
ィ」ブロックを計算する。これにより、2つのディスク
ドライブが故障してもなお、アレイが全てのデータを再
度作成することが可能になる。
【0005】既知のマルチコントローラシステムには、
ミラーリング二重コントローラデータ格納システムが含
まれる。各コントローラは、それ自体のメモリを備え、
メモリの大部分は、「ミラー・イメージ」すなわち他方
と同じ「メモリ・イメージ」である。二重コントローラ
にミラーリングされたメモリを用いると、高速での復元
が可能になると共に、1つのコントローラ又はそのメモ
リが故障又は失われた場合に、データの損失を防ぐ。メ
モリのミラーコピーなしでは、1つのコントローラが突
然故障した場合、そのコントローラ上の重要なデータが
失われることになる。例えば、コントローラA及びコン
トローラBを有するミラーリングメモリ二重コントロー
ラシステムでは、読み出し及び書き込みをミラーリング
すると、コントローラAのメモリがコントローラBのメ
モリの「ミラー・イメージ」になる。コントローラBが
損失又は故障すると、全てのシステム動作が自動的にコ
ントローラAに切り換えられ、コントローラAがシステ
ム全体を実行すなわち動作する。
ミラーリング二重コントローラデータ格納システムが含
まれる。各コントローラは、それ自体のメモリを備え、
メモリの大部分は、「ミラー・イメージ」すなわち他方
と同じ「メモリ・イメージ」である。二重コントローラ
にミラーリングされたメモリを用いると、高速での復元
が可能になると共に、1つのコントローラ又はそのメモ
リが故障又は失われた場合に、データの損失を防ぐ。メ
モリのミラーコピーなしでは、1つのコントローラが突
然故障した場合、そのコントローラ上の重要なデータが
失われることになる。例えば、コントローラA及びコン
トローラBを有するミラーリングメモリ二重コントロー
ラシステムでは、読み出し及び書き込みをミラーリング
すると、コントローラAのメモリがコントローラBのメ
モリの「ミラー・イメージ」になる。コントローラBが
損失又は故障すると、全てのシステム動作が自動的にコ
ントローラAに切り換えられ、コントローラAがシステ
ム全体を実行すなわち動作する。
【0006】コンピュータシステムアプリケーションの
数の増大には、可成り制限されたプロセッサダウンタイ
ムを含む非常に高度な信頼性が要求される。例えば、1
つの既知のシステムでは、コントローラのダウンタイム
の総計が1年当たり5分未満である必要がある。1つの
コントローラが損失又は故障すると、通常、関連するデ
ータ格納システムに関して冗長性及び信頼性を維持する
ために、即座にそのコントローラを交換する必要があ
る。上記要件により、高度の信頼性及び「アップタイ
ム」が要求されるシステムでは、通常、他方のコントロ
ーラ(例えば、コントローラA)が動作可能な状態にあ
る間に、交換コントローラをオンラインにする、すなわ
ち、「活線」挿入(「hot」insertion)する必要があ
る。オペレーティングシステムは、交換コントローラの
挿入を自動的に認識する。
数の増大には、可成り制限されたプロセッサダウンタイ
ムを含む非常に高度な信頼性が要求される。例えば、1
つの既知のシステムでは、コントローラのダウンタイム
の総計が1年当たり5分未満である必要がある。1つの
コントローラが損失又は故障すると、通常、関連するデ
ータ格納システムに関して冗長性及び信頼性を維持する
ために、即座にそのコントローラを交換する必要があ
る。上記要件により、高度の信頼性及び「アップタイ
ム」が要求されるシステムでは、通常、他方のコントロ
ーラ(例えば、コントローラA)が動作可能な状態にあ
る間に、交換コントローラをオンラインにする、すなわ
ち、「活線」挿入(「hot」insertion)する必要があ
る。オペレーティングシステムは、交換コントローラの
挿入を自動的に認識する。
【0007】通常、マルチコントローラシステムはホス
トに接続される。従って、ホストシステムは、コントロ
ーラボードの交換により、相当量の時間、データ格納シ
ステムが休止し、その結果ホストシステムがタイムアウ
トにならないように要求することが多い。交換コントロ
ーラを動作システムに挿入すると、交換コントローラが
試験され、動作システムに追加される間に、システムの
可用性が失われることが多い。交換コントローラがミラ
ーリングメモリシステムの一部として追加されていると
き、交換コントローラの動作システムへの追加に関連す
る問題が増大する。
トに接続される。従って、ホストシステムは、コントロ
ーラボードの交換により、相当量の時間、データ格納シ
ステムが休止し、その結果ホストシステムがタイムアウ
トにならないように要求することが多い。交換コントロ
ーラを動作システムに挿入すると、交換コントローラが
試験され、動作システムに追加される間に、システムの
可用性が失われることが多い。交換コントローラがミラ
ーリングメモリシステムの一部として追加されていると
き、交換コントローラの動作システムへの追加に関連す
る問題が増大する。
【0008】コントローラAがシステムで動作し、交換
コントローラBが活線挿入される1つの既知のミラーリ
ングメモリ二重コントローラシステムは、コントローラ
A及び交換コントローラBの両方をリセットすることを
含み、各コントローラは、プロセッササブシステムの自
己試験を実行する。各コントローラは、それ自体の共有
メモリシステムを試験して、ハードウェアが正しく機能
していることを検証する。各コントローラは、その共有
メモリの内容をチェックして、メモリイメージがそのシ
ステムに関して「有効」であるかどうかを見る。この例
では、コントローラAのみがシステムの有効なメモリイ
メージを有する。
コントローラBが活線挿入される1つの既知のミラーリ
ングメモリ二重コントローラシステムは、コントローラ
A及び交換コントローラBの両方をリセットすることを
含み、各コントローラは、プロセッササブシステムの自
己試験を実行する。各コントローラは、それ自体の共有
メモリシステムを試験して、ハードウェアが正しく機能
していることを検証する。各コントローラは、その共有
メモリの内容をチェックして、メモリイメージがそのシ
ステムに関して「有効」であるかどうかを見る。この例
では、コントローラAのみがシステムの有効なメモリイ
メージを有する。
【0009】次に、各コントローラは、改訂,システム
の最後のビュー,及びシステムがアクティブであった最
後のときのシステム状態についての情報を交換する。こ
の情報を共有した後に、ファームウェアは、どのコント
ローラが有効なメモリイメージを有しているかを判断す
る。この例では、コントローラAが有効なメモリイメー
ジを有する。コントローラAの共有メモリイメージがコ
ントローラBにコピーされ、検証される。これには、コ
ントローラA上のプロセッサがコントローラA上の全て
の共有メモリを読み出し、それをコントローラB上の全
ての共有メモリロケーションに書き込む必要がある。次
いで、両方のコントローラ上のメモリが読み出されて比
較され、コピー動作が成功したことを検証する。大きな
メモリシステムの場合、このプロセスには数分かかる。
最後の構成ステップが行われ、コントローラがオンライ
ンにされ、完全に動作することが可能になる。上記プロ
セス内の多くのステップは、実行に数十秒かかる。コン
トローラAの共有メモリイメージをコントローラBにコ
ピーし、検証するプロセスには、数分かかることがあ
る。この活線挿入に必要な長時間中、大部分のホストコ
ンピュータのオペレーティングシステムがタイムアウト
することになる。
の最後のビュー,及びシステムがアクティブであった最
後のときのシステム状態についての情報を交換する。こ
の情報を共有した後に、ファームウェアは、どのコント
ローラが有効なメモリイメージを有しているかを判断す
る。この例では、コントローラAが有効なメモリイメー
ジを有する。コントローラAの共有メモリイメージがコ
ントローラBにコピーされ、検証される。これには、コ
ントローラA上のプロセッサがコントローラA上の全て
の共有メモリを読み出し、それをコントローラB上の全
ての共有メモリロケーションに書き込む必要がある。次
いで、両方のコントローラ上のメモリが読み出されて比
較され、コピー動作が成功したことを検証する。大きな
メモリシステムの場合、このプロセスには数分かかる。
最後の構成ステップが行われ、コントローラがオンライ
ンにされ、完全に動作することが可能になる。上記プロ
セス内の多くのステップは、実行に数十秒かかる。コン
トローラAの共有メモリイメージをコントローラBにコ
ピーし、検証するプロセスには、数分かかることがあ
る。この活線挿入に必要な長時間中、大部分のホストコ
ンピュータのオペレーティングシステムがタイムアウト
することになる。
【0010】
【発明が解決しようとする課題】システムのダウンタイ
ムを低減し、ホストコンピュータオペレーティングシス
テムがタイムアウトしない、活線挿入及び/又は冗長ミ
ラーリングメモリマルチコントローラシステムで使用す
るためのシステム及び方法を有することが望ましい。さ
らに、システムのダウンタイム又はホストのタイムアウ
トを最小に抑える、コントローラのリセットを処理する
効率的な方法を有することが望ましい。
ムを低減し、ホストコンピュータオペレーティングシス
テムがタイムアウトしない、活線挿入及び/又は冗長ミ
ラーリングメモリマルチコントローラシステムで使用す
るためのシステム及び方法を有することが望ましい。さ
らに、システムのダウンタイム又はホストのタイムアウ
トを最小に抑える、コントローラのリセットを処理する
効率的な方法を有することが望ましい。
【0011】
【課題を解決するための手段】本発明は、マルチコント
ローラシステム、及び、冗長コントローラを採用したデ
ータ格納システムに関し、より詳細には、コントローラ
リセットを処理するシステム及び方法を有する冗長デー
タ格納システムに関する。
ローラシステム、及び、冗長コントローラを採用したデ
ータ格納システムに関し、より詳細には、コントローラ
リセットを処理するシステム及び方法を有する冗長デー
タ格納システムに関する。
【0012】一実施形態では、本発明は、冗長コントロ
ーラデータ格納システムにおいてコントローラリセット
を処理する方法を提供する。冗長コントローラデータ格
納システムは、第1のコントローラ及び第2のコントロ
ーラを備える。本方法は、第2のコントローラでのコン
トローラリセットを検出するステップを含む。第1のコ
ントローラと第2のコントローラとの間の通信リンクを
介して、第1のコントローラにコントローラリセットを
通知する。第1のコントローラ及び第2のコントローラ
に対してシャットダウンプロセスを実行する。第1のコ
ントローラと第2のコントローラとの間の通信リンクを
ディセーブル(disable)し、この際に、第2のコント
ローラを介しての後続のコントローラリセットの検出
が、通信リンクを介して第1のコントローラに連絡され
る。
ーラデータ格納システムにおいてコントローラリセット
を処理する方法を提供する。冗長コントローラデータ格
納システムは、第1のコントローラ及び第2のコントロ
ーラを備える。本方法は、第2のコントローラでのコン
トローラリセットを検出するステップを含む。第1のコ
ントローラと第2のコントローラとの間の通信リンクを
介して、第1のコントローラにコントローラリセットを
通知する。第1のコントローラ及び第2のコントローラ
に対してシャットダウンプロセスを実行する。第1のコ
ントローラと第2のコントローラとの間の通信リンクを
ディセーブル(disable)し、この際に、第2のコント
ローラを介しての後続のコントローラリセットの検出
が、通信リンクを介して第1のコントローラに連絡され
る。
【0013】別の実施形態において、本発明は、冗長コ
ントローラデータ格納システムにおいてコントローラリ
セットを処理する方法を提供する。冗長コントローラデ
ータ格納システムは、第1のコントローラ及び第2のコ
ントローラを備える。本方法は、第2のコントローラで
のコントローラリセットを検出するステップを含む。第
1のコントローラと第2のコントローラとの間の通信リ
ンクを介して、第1のコントローラにコントローラリセ
ットを通知する。第1のコントローラ及び第2のコント
ローラに対してシャットダウンプロセスを実行する。第
1のコントローラ及び第2のコントローラをオンライン
にする。第1のコントローラ及び第2のコントローラを
リセットする。第1のコントローラと第2のコントロー
ラとの間の通信リンクをディセーブルし、ここで、第2
のコントローラを介しての後続するコントローラリセッ
トの検出を、通信リンクを介して第1のコントローラに
連絡することは不可能である。
ントローラデータ格納システムにおいてコントローラリ
セットを処理する方法を提供する。冗長コントローラデ
ータ格納システムは、第1のコントローラ及び第2のコ
ントローラを備える。本方法は、第2のコントローラで
のコントローラリセットを検出するステップを含む。第
1のコントローラと第2のコントローラとの間の通信リ
ンクを介して、第1のコントローラにコントローラリセ
ットを通知する。第1のコントローラ及び第2のコント
ローラに対してシャットダウンプロセスを実行する。第
1のコントローラ及び第2のコントローラをオンライン
にする。第1のコントローラ及び第2のコントローラを
リセットする。第1のコントローラと第2のコントロー
ラとの間の通信リンクをディセーブルし、ここで、第2
のコントローラを介しての後続するコントローラリセッ
トの検出を、通信リンクを介して第1のコントローラに
連絡することは不可能である。
【0014】別の実施形態において、本発明は、コント
ローラリセットを処理するように構成された冗長コント
ローラデータ格納システムを提供する。冗長コントロー
ラデータ格納システムは、第1のコントローラと、通信
バスを介して第1のコントローラと通信する第2のコン
トローラとを備える。コントローラリセットが第2のコ
ントローラにより検出される場合、通信リンクを介して
第1のコントローラにコントローラリセットが通知され
る。シャットダウンプロセスが、第1のコントローラ及
び第2のコントローラに対して実行される。通信リンク
がディセーブルされ、通信リンクを介して第2のコント
ローラでの後続するコントローラリセットが通知されな
いようにする。
ローラリセットを処理するように構成された冗長コント
ローラデータ格納システムを提供する。冗長コントロー
ラデータ格納システムは、第1のコントローラと、通信
バスを介して第1のコントローラと通信する第2のコン
トローラとを備える。コントローラリセットが第2のコ
ントローラにより検出される場合、通信リンクを介して
第1のコントローラにコントローラリセットが通知され
る。シャットダウンプロセスが、第1のコントローラ及
び第2のコントローラに対して実行される。通信リンク
がディセーブルされ、通信リンクを介して第2のコント
ローラでの後続するコントローラリセットが通知されな
いようにする。
【0015】
【発明の実施の形態】以下の好ましい実施形態の詳細な
説明では、本明細書の一部をなすと共に、例示として、
本発明を実施し得る特定の実施形態が示される添付図面
を参照する。他の実施形態も利用可能であり、また、本
発明の範囲から逸脱せずに、構造的又は論理的な変更を
行い得ることを理解されたい。従って、以下の詳細な説
明は、制限する意味でとられるべきではなく、本発明の
範囲は添付の特許請求の範囲によって定義される。
説明では、本明細書の一部をなすと共に、例示として、
本発明を実施し得る特定の実施形態が示される添付図面
を参照する。他の実施形態も利用可能であり、また、本
発明の範囲から逸脱せずに、構造的又は論理的な変更を
行い得ることを理解されたい。従って、以下の詳細な説
明は、制限する意味でとられるべきではなく、本発明の
範囲は添付の特許請求の範囲によって定義される。
【0016】図1においては、本発明による冗長コント
ローラデータ格納システムの例示的な一実施形態を全体
的に参照番号30で示す。この冗長コントローラデータ
格納システム30は、システムのダウンタイムを低減す
ると共に、コントローラの交換中にホストコンピュータ
のオペレーティングシステムがタイムアウトしないオン
ラインすなわち「活線」挿入システム及び方法を有す
る、冗長ミラーリングメモリマルチコントローラシステ
ムを提供する。一態様では、冗長コントローラデータ格
納システム30は、二重コントローラシステムである。
本明細書において説明する例示的な実施形態は二重コン
トローラシステムを参照するが、これら実施形態は、他
のマルチコントローラ環境(すなわち、3つ以上のコン
トローラを備えるシステム)にも同様に適用可能であ
る。
ローラデータ格納システムの例示的な一実施形態を全体
的に参照番号30で示す。この冗長コントローラデータ
格納システム30は、システムのダウンタイムを低減す
ると共に、コントローラの交換中にホストコンピュータ
のオペレーティングシステムがタイムアウトしないオン
ラインすなわち「活線」挿入システム及び方法を有す
る、冗長ミラーリングメモリマルチコントローラシステ
ムを提供する。一態様では、冗長コントローラデータ格
納システム30は、二重コントローラシステムである。
本明細書において説明する例示的な実施形態は二重コン
トローラシステムを参照するが、これら実施形態は、他
のマルチコントローラ環境(すなわち、3つ以上のコン
トローラを備えるシステム)にも同様に適用可能であ
る。
【0017】本発明のコンポーネントは、マイクロプロ
セッサ,プログラマブルロジック,又は状態マシンを介
してハードウェア及びファームウェアで、又は所与の装
置内のソフトウェアで実施することができる。好ましい
一実施形態では、本発明の1つ又は複数のコンポーネン
トがソフトウェアに存在し、ハードウェアを介して採用
される。本発明のコンポーネントは、1つ又は複数のコ
ンピュータ読み取り可能媒体上のソフトウェアにあって
もよい。なお、本明細書で用いるコンピュータ読み取り
可能媒体という語は、フロッピー(登録商標)ディス
ク,ハードディスク,CD−ROM,フラッシュメモ
リ,読み取り専用メモリ(ROM),及びランダムアク
セスメモリ(RAM)等、揮発性であっても不揮発性で
あってもよく、任意の種類のメモリを包含するものと定
義される。さらに、本発明によるシステムは、特化され
たアプライアンスハードウェア及び/又は専用の単一目
的ハードウェアを組み込んだマイクロプロセッサ内蔵シ
ステム/アプライアンスを採用することが可能である。
セッサ,プログラマブルロジック,又は状態マシンを介
してハードウェア及びファームウェアで、又は所与の装
置内のソフトウェアで実施することができる。好ましい
一実施形態では、本発明の1つ又は複数のコンポーネン
トがソフトウェアに存在し、ハードウェアを介して採用
される。本発明のコンポーネントは、1つ又は複数のコ
ンピュータ読み取り可能媒体上のソフトウェアにあって
もよい。なお、本明細書で用いるコンピュータ読み取り
可能媒体という語は、フロッピー(登録商標)ディス
ク,ハードディスク,CD−ROM,フラッシュメモ
リ,読み取り専用メモリ(ROM),及びランダムアク
セスメモリ(RAM)等、揮発性であっても不揮発性で
あってもよく、任意の種類のメモリを包含するものと定
義される。さらに、本発明によるシステムは、特化され
たアプライアンスハードウェア及び/又は専用の単一目
的ハードウェアを組み込んだマイクロプロセッサ内蔵シ
ステム/アプライアンスを採用することが可能である。
【0018】例示的な一実施形態においては、システム
30は、第1のコントローラ32及び第2のコントロー
ラ34を有する冗長ミラーリングコントローラデータ格
納システムである。第1のコントローラ32及び第2の
コントローラ34は、通信バス38を介してデータ格納
システム36(例えば、ディスクアレイ等)にデータを
重複してすなわちミラーリングして読み書きするように
構成される。RAIDレベル1には、モードミラー書き
込みが含まれ、アレイは、何れのコピーからも読み出す
ことが可能である。RAIDレベル5又は6の場合、ユ
ーザのアクセスはディスクアレイにわたってストライピ
ングされる。さらに、第1のコントローラ32及び第2
のコントローラ34は、通信バス40を介して互いに通
信する。第1のコントローラ32及び第2のコントロー
ラ34は、通信バスプロトコルを用いて、データ格納シ
ステム36と通信すると共に、互いに通信する。一態様
では、通信バスプロトコルは標準プロトコルである。本
出願の読後、他の適した通信バスプロトコルが当業者に
は明白となるであろう。データ格納システム36は、磁
気ハードディスクデータ格納システムを含むことができ
る。他の態様では、データ格納システム36は、フラッ
シュメモリ,ランダムアクセスメモリ(RAM),CD
書き込み可能媒体,光磁気媒体等、他の読み出し/書き
込み可能なデータ格納媒体を含む。
30は、第1のコントローラ32及び第2のコントロー
ラ34を有する冗長ミラーリングコントローラデータ格
納システムである。第1のコントローラ32及び第2の
コントローラ34は、通信バス38を介してデータ格納
システム36(例えば、ディスクアレイ等)にデータを
重複してすなわちミラーリングして読み書きするように
構成される。RAIDレベル1には、モードミラー書き
込みが含まれ、アレイは、何れのコピーからも読み出す
ことが可能である。RAIDレベル5又は6の場合、ユ
ーザのアクセスはディスクアレイにわたってストライピ
ングされる。さらに、第1のコントローラ32及び第2
のコントローラ34は、通信バス40を介して互いに通
信する。第1のコントローラ32及び第2のコントロー
ラ34は、通信バスプロトコルを用いて、データ格納シ
ステム36と通信すると共に、互いに通信する。一態様
では、通信バスプロトコルは標準プロトコルである。本
出願の読後、他の適した通信バスプロトコルが当業者に
は明白となるであろう。データ格納システム36は、磁
気ハードディスクデータ格納システムを含むことができ
る。他の態様では、データ格納システム36は、フラッ
シュメモリ,ランダムアクセスメモリ(RAM),CD
書き込み可能媒体,光磁気媒体等、他の読み出し/書き
込み可能なデータ格納媒体を含む。
【0019】冗長コントローラデータ格納システム30
は、ホスト又は制御システムインタフェース42を介し
てホスト又は制御システムと通信するように構成され
る。ホスト又は制御システム42は、サーバ,コンピュ
ータネットワーク,中央コンピュータ,又は他の制御シ
ステムであってよい。一態様においては、冗長コントロ
ーラデータ格納システム30は、収容されたRAIDシ
ステムとインタフェースし、RAIDシステム(例え
ば、RAIDレベル0、RAIDレベル1、RAIDレ
ベル2、RAIDレベル3、RAIDレベル4、RAI
Dレベル5、又はRAIDレベル6のシステム)として
動作するように構成される。
は、ホスト又は制御システムインタフェース42を介し
てホスト又は制御システムと通信するように構成され
る。ホスト又は制御システム42は、サーバ,コンピュ
ータネットワーク,中央コンピュータ,又は他の制御シ
ステムであってよい。一態様においては、冗長コントロ
ーラデータ格納システム30は、収容されたRAIDシ
ステムとインタフェースし、RAIDシステム(例え
ば、RAIDレベル0、RAIDレベル1、RAIDレ
ベル2、RAIDレベル3、RAIDレベル4、RAI
Dレベル5、又はRAIDレベル6のシステム)として
動作するように構成される。
【0020】一実施形態では、第1のコントローラ32
は、「ミラーリング」メモリ50,タスクプロセッサ5
2,及びシステム動作プロセッサ54を備える。同様
に、第2のコントローラ34も、また、「ミラーリン
グ」メモリ56,タスクプロセッサ58,及びシステム
動作プロセッサ60を備える。第1のコントローラ32
及び第2のコントローラ34は、ミラーリングメモリシ
ステムの一部としてメモリ50及びメモリ56を作動す
る「メモリコントローラ」を備える。本明細書で用いる
「ミラーリングメモリ」という語は、1つのメモリのメ
モリイメージが別のメモリに複製すなわち「ミラーリン
グ」されるシステムを包含するものと定義される。本発
明では、第1のコントローラ32のメモリ50が、第2
のコントローラ34のメモリ56に複製すなわち「ミラ
ーリング」される。二重コントローラミラーリングメモ
リシステムは、耐故障環境を冗長コントローラデータ格
納システム30に提供する。一方のコントローラ又は一
方のコントローラメモリシステムが故障した場合、他方
のコントローラの存在及びそのミラーリングメモリによ
り、システムコマンドの処理を継続するためのシームレ
スなフェイル・オーバ(fail-over)が提供される。さ
らに、一方のコントローラを除外したり挿入したとき
に、本発明は、他方のコントローラを介してオペレーテ
ィングシステムを維持し、システムのダウンタイムをホ
ストのタイムアウト期間未満の時間期間に低減するため
に提供される。ミラーリングメモリ二重コントローラデ
ィスク格納システムの例示的な一実施形態は、1997
年12月16日付けでピーターソン氏他に付与され、米
国カリフォルニア州パロアルトに所在のヒューレット・
パッカード・カンパニーに譲渡された米国特許第5,6
99,510号に開示されている。なお、これに開示さ
れている記載内容は、これを引用することにより本明細
書に組み込まれるものとする。別のミラーリングメモリ
二重コントローラディスク格納システムは、1999年
7月27日付けでネルソン氏他に付与され、米国カリフ
ォルニア州パロアルトに所在のヒューレット・パッカー
ド・カンパニーに譲渡された米国特許出願第5,92
8,367号に開示されており、これもまた引用するこ
とにより本明細書に組み込まれるものとする。
は、「ミラーリング」メモリ50,タスクプロセッサ5
2,及びシステム動作プロセッサ54を備える。同様
に、第2のコントローラ34も、また、「ミラーリン
グ」メモリ56,タスクプロセッサ58,及びシステム
動作プロセッサ60を備える。第1のコントローラ32
及び第2のコントローラ34は、ミラーリングメモリシ
ステムの一部としてメモリ50及びメモリ56を作動す
る「メモリコントローラ」を備える。本明細書で用いる
「ミラーリングメモリ」という語は、1つのメモリのメ
モリイメージが別のメモリに複製すなわち「ミラーリン
グ」されるシステムを包含するものと定義される。本発
明では、第1のコントローラ32のメモリ50が、第2
のコントローラ34のメモリ56に複製すなわち「ミラ
ーリング」される。二重コントローラミラーリングメモ
リシステムは、耐故障環境を冗長コントローラデータ格
納システム30に提供する。一方のコントローラ又は一
方のコントローラメモリシステムが故障した場合、他方
のコントローラの存在及びそのミラーリングメモリによ
り、システムコマンドの処理を継続するためのシームレ
スなフェイル・オーバ(fail-over)が提供される。さ
らに、一方のコントローラを除外したり挿入したとき
に、本発明は、他方のコントローラを介してオペレーテ
ィングシステムを維持し、システムのダウンタイムをホ
ストのタイムアウト期間未満の時間期間に低減するため
に提供される。ミラーリングメモリ二重コントローラデ
ィスク格納システムの例示的な一実施形態は、1997
年12月16日付けでピーターソン氏他に付与され、米
国カリフォルニア州パロアルトに所在のヒューレット・
パッカード・カンパニーに譲渡された米国特許第5,6
99,510号に開示されている。なお、これに開示さ
れている記載内容は、これを引用することにより本明細
書に組み込まれるものとする。別のミラーリングメモリ
二重コントローラディスク格納システムは、1999年
7月27日付けでネルソン氏他に付与され、米国カリフ
ォルニア州パロアルトに所在のヒューレット・パッカー
ド・カンパニーに譲渡された米国特許出願第5,92
8,367号に開示されており、これもまた引用するこ
とにより本明細書に組み込まれるものとする。
【0021】本発明による冗長コントローラデータ格納
システム30では、各コントローラ32,34は、ミラ
ー・イメージである、すなわち上述したように、他方と
同じ「メモリイメージ」を有するそれ自体のメモリ5
0、56を備える。ミラーリングメモリにより、一方の
コントローラ又はそのメモリが故障した、又は失われた
場合に高速な復元が可能になる。一態様においては、読
み書きをミラーリングすると、第1のコントローラ32
のメモリ50が第2のコントローラ34のメモリ56の
「ミラー・イメージ(mirror image;鏡像)」になる。
第2のコントローラ34が損失又は故障すると、別のコ
ントローラがシステムに挿入されるまで、第1のコント
ローラ32が単一コントローラシステムにおけるシステ
ム全体を実行すなわち動作するように、全てのシステム
動作が自動的に第1のコントローラ32に切り換えられ
る。
システム30では、各コントローラ32,34は、ミラ
ー・イメージである、すなわち上述したように、他方と
同じ「メモリイメージ」を有するそれ自体のメモリ5
0、56を備える。ミラーリングメモリにより、一方の
コントローラ又はそのメモリが故障した、又は失われた
場合に高速な復元が可能になる。一態様においては、読
み書きをミラーリングすると、第1のコントローラ32
のメモリ50が第2のコントローラ34のメモリ56の
「ミラー・イメージ(mirror image;鏡像)」になる。
第2のコントローラ34が損失又は故障すると、別のコ
ントローラがシステムに挿入されるまで、第1のコント
ローラ32が単一コントローラシステムにおけるシステ
ム全体を実行すなわち動作するように、全てのシステム
動作が自動的に第1のコントローラ32に切り換えられ
る。
【0022】本発明による冗長コントローラデータ格納
システム30は、1つのコントローラを活線挿入又はオ
ンライン挿入する間に、冗長コントローラデータ格納シ
ステムの動作を継続することができる。例えば、第2の
コントローラ34が損失又は故障すると、冗長コントロ
ーラデータ格納システム30は、第1のコントローラ3
2を介して動作する。第2のコントローラ34は、シス
テム30にオンライン挿入すなわち「活線」挿入するこ
とができる。特に、システム動作プロセッサ54は、第
2のコントローラ34をシステムに挿入する活線挿入プ
ロセス中において、メモリ50を介して、データ格納シ
ステム36に対するデータの読み書き等システム動作コ
マンドの処理を継続する。タスクプロセッサ52は、シ
ステム動作コマンドの処理中に、冗長コントローラデー
タ格納システム30に遅延を課すことなく、システム動
作プロセッサ54を介してバックグラウンドタスクを処
理する。
システム30は、1つのコントローラを活線挿入又はオ
ンライン挿入する間に、冗長コントローラデータ格納シ
ステムの動作を継続することができる。例えば、第2の
コントローラ34が損失又は故障すると、冗長コントロ
ーラデータ格納システム30は、第1のコントローラ3
2を介して動作する。第2のコントローラ34は、シス
テム30にオンライン挿入すなわち「活線」挿入するこ
とができる。特に、システム動作プロセッサ54は、第
2のコントローラ34をシステムに挿入する活線挿入プ
ロセス中において、メモリ50を介して、データ格納シ
ステム36に対するデータの読み書き等システム動作コ
マンドの処理を継続する。タスクプロセッサ52は、シ
ステム動作コマンドの処理中に、冗長コントローラデー
タ格納システム30に遅延を課すことなく、システム動
作プロセッサ54を介してバックグラウンドタスクを処
理する。
【0023】好ましい一実施形態において、タスクプロ
セッサ52は、システム動作プロセッサ54がシステム
動作コマンドを処理し続けながら、第1のミラーリング
メモリ50のメモリイメージを第2のメモリ56にコピ
ーするように動作する。ここで、第2のコントローラ3
4を冗長コントローラデータ格納システム30に活線挿
入することにより、システム動作コマンドの処理に対す
るアンドゥ遅延及び/又はホストシステムインタフェー
ス42を介してのホストシステムによるタイムアウトが
生じることはない。例示的な一実施形態では、タスクプ
ロセッサ52が、システム動作プロセッサ54又は他の
システムプロセッサに直接関係することなく、専用デー
タ処理ハードウェアを介してバックグラウンドタスクを
行う。一態様では、データ処理ハードウェアは、特定用
途向け集積回路(ASIC)の一部として、インテリジ
ェントDMAエンジンに接続される。タスクプロセッサ
52は、システム動作プロセッサ54を介して継続され
る、第1のコントローラ32の動作中において、特定の
バックグラウンドタスクを処理する能力を有する。一態
様においては、タスクプロセッサ52は、メモリ間コピ
ータスク,メモリ自己試験,並びに他のタスクを実行す
るように動作する。
セッサ52は、システム動作プロセッサ54がシステム
動作コマンドを処理し続けながら、第1のミラーリング
メモリ50のメモリイメージを第2のメモリ56にコピ
ーするように動作する。ここで、第2のコントローラ3
4を冗長コントローラデータ格納システム30に活線挿
入することにより、システム動作コマンドの処理に対す
るアンドゥ遅延及び/又はホストシステムインタフェー
ス42を介してのホストシステムによるタイムアウトが
生じることはない。例示的な一実施形態では、タスクプ
ロセッサ52が、システム動作プロセッサ54又は他の
システムプロセッサに直接関係することなく、専用デー
タ処理ハードウェアを介してバックグラウンドタスクを
行う。一態様では、データ処理ハードウェアは、特定用
途向け集積回路(ASIC)の一部として、インテリジ
ェントDMAエンジンに接続される。タスクプロセッサ
52は、システム動作プロセッサ54を介して継続され
る、第1のコントローラ32の動作中において、特定の
バックグラウンドタスクを処理する能力を有する。一態
様においては、タスクプロセッサ52は、メモリ間コピ
ータスク,メモリ自己試験,並びに他のタスクを実行す
るように動作する。
【0024】図2は、本発明による冗長コントローラデ
ータ格納システムにコントローラを活線挿入する方法の
例示的な一実施形態を示す図であり、この方法を全体的
に参照番号80で示す。本方法は、第1のメモリ,タス
クプロセッサ,及びシステム動作プロセッサを備えるよ
うに第1のコントローラを構成するステップを含んでい
る(ステップ82参照)。第1のメモリは、第1のメモ
リイメージを含む。図示の例示的な一実施形態では、第
1のコントローラ32は、メモリ50,タスクプロセッ
サ52,及びシステム動作プロセッサ54を備えるよう
に構成される。冗長コントローラデータ格納システム3
0は、第1のコントローラ32を介して、ステップ84
で示すように、単一のコントローラシステムとして動作
する。ステップ85において、システム動作コマンド
は、システム動作プロセッサ54を介して処理される。
ステップ86において、第2のコントローラ34が冗長
コントローラデータ格納システム30内に挿入される。
第2のコントローラ34は、第2のメモリ56を備え
る。ステップ88において、バックグラウンドタスク
は、第1のコントローラを介してのシステム動作コマン
ドの処理中に、タスクプロセッサ52を用いて処理され
る。バックグラウンドタスクは、メモリ50の第1のイ
メージを第2のメモリ56にコピーすることを含む。
ータ格納システムにコントローラを活線挿入する方法の
例示的な一実施形態を示す図であり、この方法を全体的
に参照番号80で示す。本方法は、第1のメモリ,タス
クプロセッサ,及びシステム動作プロセッサを備えるよ
うに第1のコントローラを構成するステップを含んでい
る(ステップ82参照)。第1のメモリは、第1のメモ
リイメージを含む。図示の例示的な一実施形態では、第
1のコントローラ32は、メモリ50,タスクプロセッ
サ52,及びシステム動作プロセッサ54を備えるよう
に構成される。冗長コントローラデータ格納システム3
0は、第1のコントローラ32を介して、ステップ84
で示すように、単一のコントローラシステムとして動作
する。ステップ85において、システム動作コマンド
は、システム動作プロセッサ54を介して処理される。
ステップ86において、第2のコントローラ34が冗長
コントローラデータ格納システム30内に挿入される。
第2のコントローラ34は、第2のメモリ56を備え
る。ステップ88において、バックグラウンドタスク
は、第1のコントローラを介してのシステム動作コマン
ドの処理中に、タスクプロセッサ52を用いて処理され
る。バックグラウンドタスクは、メモリ50の第1のイ
メージを第2のメモリ56にコピーすることを含む。
【0025】図3は、全体的に参照番号90で示す、本
発明による冗長コントローラデータ格納システムにコン
トローラを活線挿入する方法の別の例示的な実施形態を
示す図である。本方法は、ステップ92で示すように、
第1のメモリ50,タスクプロセッサ52,及びシステ
ム動作プロセッサ54を備えるように第1のコントロー
ラ32を構成するステップを含む。第1のメモリ50
は、第1のメモリイメージを含む。ステップ94におい
て、冗長コントローラデータ格納システム30が第1の
コントローラ32を介して動作する。ステップ96にお
いて、システム動作コマンドが、システム動作プロセッ
サ54を介して処理される。ステップ98において、第
2のコントローラ34が冗長コントローラデータ格納シ
ステム30に挿入される。第2のコントローラは、第2
のメモリ56を備える。第1のメモリ50は、第2のメ
モリ56への書き込みをミラーリングすると共に、共有
又はミラーリングメモリ50に対するローカルな読み出
し専用に構成される(ステップ100参照)。ここで、
第1のコントローラ32は、それ自体のメモリイメージ
を読み出すように動作することができるが、冗長コント
ローラデータ格納システム30において第2のコントロ
ーラ34が完全に動作可能になる(すなわち、自己試験
を終え、オンラインに戻る)まで、読み出し及び書き込
みのミラーリングとして動作しない。ステップ102に
おいて、第1のコントローラ32を介して、システム動
作コマンドの処理中に、バックグラウンドタスクが処理
される。バックグラウンドタスクは、タスクプロセッサ
52を用いて処理される。バックグラウンドタスクは、
メモリ50の第1のイメージを第2のメモリ56にコピ
ーすることを含む。
発明による冗長コントローラデータ格納システムにコン
トローラを活線挿入する方法の別の例示的な実施形態を
示す図である。本方法は、ステップ92で示すように、
第1のメモリ50,タスクプロセッサ52,及びシステ
ム動作プロセッサ54を備えるように第1のコントロー
ラ32を構成するステップを含む。第1のメモリ50
は、第1のメモリイメージを含む。ステップ94におい
て、冗長コントローラデータ格納システム30が第1の
コントローラ32を介して動作する。ステップ96にお
いて、システム動作コマンドが、システム動作プロセッ
サ54を介して処理される。ステップ98において、第
2のコントローラ34が冗長コントローラデータ格納シ
ステム30に挿入される。第2のコントローラは、第2
のメモリ56を備える。第1のメモリ50は、第2のメ
モリ56への書き込みをミラーリングすると共に、共有
又はミラーリングメモリ50に対するローカルな読み出
し専用に構成される(ステップ100参照)。ここで、
第1のコントローラ32は、それ自体のメモリイメージ
を読み出すように動作することができるが、冗長コント
ローラデータ格納システム30において第2のコントロ
ーラ34が完全に動作可能になる(すなわち、自己試験
を終え、オンラインに戻る)まで、読み出し及び書き込
みのミラーリングとして動作しない。ステップ102に
おいて、第1のコントローラ32を介して、システム動
作コマンドの処理中に、バックグラウンドタスクが処理
される。バックグラウンドタスクは、タスクプロセッサ
52を用いて処理される。バックグラウンドタスクは、
メモリ50の第1のイメージを第2のメモリ56にコピ
ーすることを含む。
【0026】図4においては、本発明による冗長コント
ローラデータ格納システムの別の例示的な実施形態を全
体的に参照番号110で示している。この冗長コントロ
ーラデータ格納システム110は、本明細書において上
述した冗長コントローラデータ格納システム30と同様
である。冗長コントローラデータ格納システム110
は、システム動作コマンドの処理へのあらゆる割り込み
を最小化する(そうでなければ、ホストシステムのタイ
ムアウトが発生することがある)冗長コントローラデー
タ格納システムにコントローラを活線挿入するシステム
及び方法を含む。
ローラデータ格納システムの別の例示的な実施形態を全
体的に参照番号110で示している。この冗長コントロ
ーラデータ格納システム110は、本明細書において上
述した冗長コントローラデータ格納システム30と同様
である。冗長コントローラデータ格納システム110
は、システム動作コマンドの処理へのあらゆる割り込み
を最小化する(そうでなければ、ホストシステムのタイ
ムアウトが発生することがある)冗長コントローラデー
タ格納システムにコントローラを活線挿入するシステム
及び方法を含む。
【0027】冗長コントローラデータ格納システム11
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ルー
プ」として動作可能なファイバチャネルバスである。本
出願を読んだ後、他の適したバス構成が当業者には明白
となるであろう。
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ルー
プ」として動作可能なファイバチャネルバスである。本
出願を読んだ後、他の適したバス構成が当業者には明白
となるであろう。
【0028】一態様では、メモリコントローラ122
は、タスクプロセッサ134,割り込みロジック13
6,及びメモリバッファ/通信モジュール138を備え
る。一態様では、タスクプロセッサ134は、システム
動作プロセッサ136を介して、システム動作コマンド
の処理に割り込みすることなく、予め定義されたバック
グラウンドタスクを処理するための専用ファームウェア
及び/又はメモリバッファコンポーネントを備える。メ
モリコントローラ122のホット・プラグ警告/早期検
出システムは、参照番号142で示される。同様に、メ
モリコントローラ122のリセットロジックは、参照番
号140で示される。
は、タスクプロセッサ134,割り込みロジック13
6,及びメモリバッファ/通信モジュール138を備え
る。一態様では、タスクプロセッサ134は、システム
動作プロセッサ136を介して、システム動作コマンド
の処理に割り込みすることなく、予め定義されたバック
グラウンドタスクを処理するための専用ファームウェア
及び/又はメモリバッファコンポーネントを備える。メ
モリコントローラ122のホット・プラグ警告/早期検
出システムは、参照番号142で示される。同様に、メ
モリコントローラ122のリセットロジックは、参照番
号140で示される。
【0029】同様に、第2の冗長コントローラ114
は、第2の共有又はミラーリングメモリ160,第2の
メモリコントローラ162,及び第2のシステム動作プ
ロセッサ164を備える。第2のコントローラ114
は、ディスクインタフェース166,ディスクインタフ
ェース168を介してデータ格納システムと通信すると
共に、ホストインタフェース170を介してホスト/制
御システムと通信する。第2のコントローラ114は、
通信バス172を介してディスクインタフェース16
6,ディスクインタフェース168,及びホストインタ
フェース170と通信する。
は、第2の共有又はミラーリングメモリ160,第2の
メモリコントローラ162,及び第2のシステム動作プ
ロセッサ164を備える。第2のコントローラ114
は、ディスクインタフェース166,ディスクインタフ
ェース168を介してデータ格納システムと通信すると
共に、ホストインタフェース170を介してホスト/制
御システムと通信する。第2のコントローラ114は、
通信バス172を介してディスクインタフェース16
6,ディスクインタフェース168,及びホストインタ
フェース170と通信する。
【0030】第2のメモリコントローラ162は、タス
クプロセッサ174、割り込みロジック176、及びメ
モリ/通信モジュール178を備える。第2のコントロ
ーラ114のリセットロジックは、参照番号180で示
される。ホット・プラグ警告/早期検出システムが、第
2のメモリコントローラ162に設けられ、参照番号1
82で示される。第1のコントローラ112及び第2の
コントローラ114は、該コントローラ間の通信バスを
介して通信する。一態様では、ミラーバス200が、第
1のメモリコントローラ122及び第2のコントローラ
162において、第1のコントローラ112と第2のコ
ントローラ114とをリンクする。さらに、代替通信パ
スが、第1のメモリコントローラ122と第2のメモリ
コントローラ162の間に設けられ、これは参照番号2
02で示される。代替通信パス202は、メモリ/通信
モジュール138において第1のメモリコントローラ1
22にリンクすると共に、第2のメモリ/通信モジュー
ル178において第2のメモリコントローラ162にリ
ンクする。存在検出ライン204は、コントローラの存
在について(例えば、活線挿入プロセスの一環として)
第1のコントローラ112と第2のコントローラ114
との間に通信を提供する。
クプロセッサ174、割り込みロジック176、及びメ
モリ/通信モジュール178を備える。第2のコントロ
ーラ114のリセットロジックは、参照番号180で示
される。ホット・プラグ警告/早期検出システムが、第
2のメモリコントローラ162に設けられ、参照番号1
82で示される。第1のコントローラ112及び第2の
コントローラ114は、該コントローラ間の通信バスを
介して通信する。一態様では、ミラーバス200が、第
1のメモリコントローラ122及び第2のコントローラ
162において、第1のコントローラ112と第2のコ
ントローラ114とをリンクする。さらに、代替通信パ
スが、第1のメモリコントローラ122と第2のメモリ
コントローラ162の間に設けられ、これは参照番号2
02で示される。代替通信パス202は、メモリ/通信
モジュール138において第1のメモリコントローラ1
22にリンクすると共に、第2のメモリ/通信モジュー
ル178において第2のメモリコントローラ162にリ
ンクする。存在検出ライン204は、コントローラの存
在について(例えば、活線挿入プロセスの一環として)
第1のコントローラ112と第2のコントローラ114
との間に通信を提供する。
【0031】一実施形態においては、メモリ120及び
メモリ160は、ランダムアクセスメモリ(RAM)で
ある。例示的な一実施形態においては、ランダムアクセ
スメモリは、同期ダイナミックランダムアクセスメモリ
(SDRAM)である。一態様では、メモリ120及び
メモリ160のサイズは、512バイトから多ギガバイ
トの範囲であることができる。好ましい一実施形態で
は、メモリ120及びメモリ160は、バッテリバック
RAM等不揮発性メモリであるため、パワーダウン(例
えば、コントローラリセット)しても、メモリはそのメ
モリ内容(すなわちメモリ状態)を保持する。
メモリ160は、ランダムアクセスメモリ(RAM)で
ある。例示的な一実施形態においては、ランダムアクセ
スメモリは、同期ダイナミックランダムアクセスメモリ
(SDRAM)である。一態様では、メモリ120及び
メモリ160のサイズは、512バイトから多ギガバイ
トの範囲であることができる。好ましい一実施形態で
は、メモリ120及びメモリ160は、バッテリバック
RAM等不揮発性メモリであるため、パワーダウン(例
えば、コントローラリセット)しても、メモリはそのメ
モリ内容(すなわちメモリ状態)を保持する。
【0032】一態様では、メモリコントローラ122及
びメモリコントローラ162は、特定用途向け集積回路
(ASIC)チップ又はモジュールの一部である。タス
クプロセッサ134及びタスクプロセッサ174は、シ
ステム動作プロセッサを介してのシステムコマンドの処
理中に、予め定義された専用バックグラウンドタスクを
処理するように動作する。
びメモリコントローラ162は、特定用途向け集積回路
(ASIC)チップ又はモジュールの一部である。タス
クプロセッサ134及びタスクプロセッサ174は、シ
ステム動作プロセッサを介してのシステムコマンドの処
理中に、予め定義された専用バックグラウンドタスクを
処理するように動作する。
【0033】一実施形態では、タスクプロセッサ134
によって実行される全てのバックグラウンドタスク又は
機能が、メモリ120又はメモリ160に格納されたデ
ータに対して行われ、こういったタスクの結果は、適切
なメモリ120又はメモリ160に再び配置される。タ
スクプロセッサ134,174は、プロセッサ124又
はプロセッサ164等他のシステムプロセッサに直接関
わりなく、専用データ処理ハードウェアを用いて、バッ
クグラウンドタスク機能を実行する。一態様では、タス
クプロセッサ134及び/又はタスクプロセッサ174
は、ASICチップ又はモジュールの一部であることが
できるインテリジェントDMAエンジンに接続されたデ
ータ処理ハードウェアを利用する。タスクプロセッサ1
34及びタスクプロセッサ174の例示的な実施形態に
ついては、本明細書においてより詳細に後述する。
によって実行される全てのバックグラウンドタスク又は
機能が、メモリ120又はメモリ160に格納されたデ
ータに対して行われ、こういったタスクの結果は、適切
なメモリ120又はメモリ160に再び配置される。タ
スクプロセッサ134,174は、プロセッサ124又
はプロセッサ164等他のシステムプロセッサに直接関
わりなく、専用データ処理ハードウェアを用いて、バッ
クグラウンドタスク機能を実行する。一態様では、タス
クプロセッサ134及び/又はタスクプロセッサ174
は、ASICチップ又はモジュールの一部であることが
できるインテリジェントDMAエンジンに接続されたデ
ータ処理ハードウェアを利用する。タスクプロセッサ1
34及びタスクプロセッサ174の例示的な実施形態に
ついては、本明細書においてより詳細に後述する。
【0034】一態様では、第1のメモリ120と第2の
メモリ160との間の読み出し及び書き込みのミラーリ
ングは、ミラーバス200を介して達成される。さら
に、代替通信パスすなわちバス202が、メモリコント
ローラ122とメモリコントローラ162の間に存在す
る。従って、コントローラが冗長コントローラデータ格
納システムに挿入されているが、冗長コントローラデー
タ格納システムの一部として「オンライン」になってい
ない場合には、第1のメモリコントローラ122が、代
替通信パス202を介して第2のメモリコントローラ1
62と通信することが可能である。このような通信とし
ては、ハードウェア及びファームウェア改訂情報の交
換、システムにおいていつコントローラが交換されたか
を検出するためのシリアルナンバーの交換、互いの動作
状態についての情報の交換、及び活線挿入シーケンスに
おける次のステップに互いにいつ移るかについての通知
を含むことができる。通信バスは、故障によりミラーバ
ス200と通信不可能な場合にどのコントローラを動作
状態のままにしておくべきかを取り決めるためにも使用
される。ファームウェアの他のエリアは、他の目的のた
めにこのバスを使用する。ホット・プラグ警告142及
びホット・プラグ警告182は、冗長コントローラデー
タ格納システムに活線挿入中の、対応するメモリコント
ローラ122及び162に早期検出信号を提供するよう
に動作する。早期警告ロジックは、リセットロジックと
協働して、活線挿入されたコントローラが完全に設置さ
れるまで、そのコントローラをリセット状態に保つ。活
線抜去中、早期検出信号は、コントローラ抜去の早期警
告を提供する。ホット・プラグ警告142及びホット・
プラグ警告182の早期検出システムは、コネクタピ
ン,プッシュボタン警告,センサ検出(例えば、光学セ
ンサ)又は他の検出システムを使用してなど、機械的又
は電気的な手段を介して早期検出信号を受信することが
できる。存在検出ライン204は、コントローラが抜去
されたか、又はシステムに挿入されたことを他方のコン
トローラに通知するように動作する。
メモリ160との間の読み出し及び書き込みのミラーリ
ングは、ミラーバス200を介して達成される。さら
に、代替通信パスすなわちバス202が、メモリコント
ローラ122とメモリコントローラ162の間に存在す
る。従って、コントローラが冗長コントローラデータ格
納システムに挿入されているが、冗長コントローラデー
タ格納システムの一部として「オンライン」になってい
ない場合には、第1のメモリコントローラ122が、代
替通信パス202を介して第2のメモリコントローラ1
62と通信することが可能である。このような通信とし
ては、ハードウェア及びファームウェア改訂情報の交
換、システムにおいていつコントローラが交換されたか
を検出するためのシリアルナンバーの交換、互いの動作
状態についての情報の交換、及び活線挿入シーケンスに
おける次のステップに互いにいつ移るかについての通知
を含むことができる。通信バスは、故障によりミラーバ
ス200と通信不可能な場合にどのコントローラを動作
状態のままにしておくべきかを取り決めるためにも使用
される。ファームウェアの他のエリアは、他の目的のた
めにこのバスを使用する。ホット・プラグ警告142及
びホット・プラグ警告182は、冗長コントローラデー
タ格納システムに活線挿入中の、対応するメモリコント
ローラ122及び162に早期検出信号を提供するよう
に動作する。早期警告ロジックは、リセットロジックと
協働して、活線挿入されたコントローラが完全に設置さ
れるまで、そのコントローラをリセット状態に保つ。活
線抜去中、早期検出信号は、コントローラ抜去の早期警
告を提供する。ホット・プラグ警告142及びホット・
プラグ警告182の早期検出システムは、コネクタピ
ン,プッシュボタン警告,センサ検出(例えば、光学セ
ンサ)又は他の検出システムを使用してなど、機械的又
は電気的な手段を介して早期検出信号を受信することが
できる。存在検出ライン204は、コントローラが抜去
されたか、又はシステムに挿入されたことを他方のコン
トローラに通知するように動作する。
【0035】プロセッサ124及びプロセッサ164
は、システムコマンドの動作のために、メモリコントロ
ーラ122及びメモリコントローラ162を介して対応
するメモリ120及びメモリ160と通信するシステム
動作プロセッサである。このようなシステムコマンドと
しては、ディスクインタフェース126,132,16
6,168を介して対応するデータ格納システムでのデ
ータの読み出し及び書き込みのために、ホストインタフ
ェース130及びホストインタフェース170を介して
受信するシステムコマンドが挙げられる。プロセッサ1
24,164は、システム割り込み動作,リセット動
作,又は他のシステムプロセスの処理及び管理等他のシ
ステム動作を実行するように動作する。
は、システムコマンドの動作のために、メモリコントロ
ーラ122及びメモリコントローラ162を介して対応
するメモリ120及びメモリ160と通信するシステム
動作プロセッサである。このようなシステムコマンドと
しては、ディスクインタフェース126,132,16
6,168を介して対応するデータ格納システムでのデ
ータの読み出し及び書き込みのために、ホストインタフ
ェース130及びホストインタフェース170を介して
受信するシステムコマンドが挙げられる。プロセッサ1
24,164は、システム割り込み動作,リセット動
作,又は他のシステムプロセスの処理及び管理等他のシ
ステム動作を実行するように動作する。
【0036】図5は、本発明による冗長コントローラデ
ータ格納システムにおいて使用されるタスクプロセッサ
の例示的な一実施形態を示す図である。タスクプロセッ
サ134が一例として示されるが、タスクプロセッサ1
74についてもタスクプロセッサ134と同様である。
好ましくは、タスクプロセッサ134は、データ処理ハ
ードウェアを介して予め定義された機能を実行する。こ
ういったタスクは、「バックグラウンドタスク」として
処理されるため、システム動作プロセッサ124を介し
てシステムコマンドの動作中に達成することができる。
例示的な一実施形態においては、タスクプロセッサ13
4は、メモリ120とメモリ160との間でメモリイメ
ージをコピーするメモリ間コピータスク206を含む。
タスクプロセッサ134は、関連するメモリ120の自
己試験を実行する1つ又は複数のメモリ自己試験タスク
208も含む。コントローラが冗長コントローラデータ
格納システムに挿入されるとき、又は冗長コントローラ
データ格納システム110の動作中に随時、メモリ自己
試験208を実行することができる。典型的なメモリ自
己試験は、メモリイメージ,メモリチャンク,又はデー
タブロックを読み出し、それを内部バッファ(例えば、
メモリコントローラ122内のバッファ)に保存するこ
とを含む。テストパターンがメモリブロックに書き込ま
れ、それを読み出して正確性を検証する。このステップ
は、より多くのテストパターンを用いて繰り返される。
一態様では、タスクプロセッサは、単一の起動試験にお
いて1パターンから30パターン実行することができ
る。内部バッファに格納されたオリジナルデータブロッ
クは、外部メモリブロックに書き戻される。このプロセ
スは、全てのメモリブロックが試験されるまで繰り返さ
れる。他のタスクプロセッサ134のタスクには、二重
ブロックパリティ生成210,単一ブロックパリティ生
成212,ブロックパターン認識214,及びチェック
サム生成216を含めることができる。
ータ格納システムにおいて使用されるタスクプロセッサ
の例示的な一実施形態を示す図である。タスクプロセッ
サ134が一例として示されるが、タスクプロセッサ1
74についてもタスクプロセッサ134と同様である。
好ましくは、タスクプロセッサ134は、データ処理ハ
ードウェアを介して予め定義された機能を実行する。こ
ういったタスクは、「バックグラウンドタスク」として
処理されるため、システム動作プロセッサ124を介し
てシステムコマンドの動作中に達成することができる。
例示的な一実施形態においては、タスクプロセッサ13
4は、メモリ120とメモリ160との間でメモリイメ
ージをコピーするメモリ間コピータスク206を含む。
タスクプロセッサ134は、関連するメモリ120の自
己試験を実行する1つ又は複数のメモリ自己試験タスク
208も含む。コントローラが冗長コントローラデータ
格納システムに挿入されるとき、又は冗長コントローラ
データ格納システム110の動作中に随時、メモリ自己
試験208を実行することができる。典型的なメモリ自
己試験は、メモリイメージ,メモリチャンク,又はデー
タブロックを読み出し、それを内部バッファ(例えば、
メモリコントローラ122内のバッファ)に保存するこ
とを含む。テストパターンがメモリブロックに書き込ま
れ、それを読み出して正確性を検証する。このステップ
は、より多くのテストパターンを用いて繰り返される。
一態様では、タスクプロセッサは、単一の起動試験にお
いて1パターンから30パターン実行することができ
る。内部バッファに格納されたオリジナルデータブロッ
クは、外部メモリブロックに書き戻される。このプロセ
スは、全てのメモリブロックが試験されるまで繰り返さ
れる。他のタスクプロセッサ134のタスクには、二重
ブロックパリティ生成210,単一ブロックパリティ生
成212,ブロックパターン認識214,及びチェック
サム生成216を含めることができる。
【0037】図6は、タスク動作を処理するために、タ
スクプロセッサ134及びタスクプロセッサ174によ
って用いられるデータ構造の例示的な一実施形態を示す
図である。本出願を読んだ後に、他の適したデータ構造
が当業者には明白となるであろう。例示的な一実施形態
では、要求プロセッサがタスク記述ブロック(TDB)
をメモリ120に書き込む。タスク記述ブロックは、コ
マンドコード及び要求の処理に必要なコマンド固有の情
報(ブロックアドレス,ブロックサイズ,データパター
ン,パリティ係数へのポインタ等)を含む。次に、要求
プロセッサが、タスクプロセッサ134にとってローカ
ルな要求待ち行列(例えば、220で示す待ち行列0)
に要求エントリを挿入する。このエントリは、コマンド
コード要求ヘッダ222,関連するタスク記述ブロック
へのTDBポインタ224,及び待ち行列ポインタ22
6として示される応答の待ち行列番号を含む。
スクプロセッサ134及びタスクプロセッサ174によ
って用いられるデータ構造の例示的な一実施形態を示す
図である。本出願を読んだ後に、他の適したデータ構造
が当業者には明白となるであろう。例示的な一実施形態
では、要求プロセッサがタスク記述ブロック(TDB)
をメモリ120に書き込む。タスク記述ブロックは、コ
マンドコード及び要求の処理に必要なコマンド固有の情
報(ブロックアドレス,ブロックサイズ,データパター
ン,パリティ係数へのポインタ等)を含む。次に、要求
プロセッサが、タスクプロセッサ134にとってローカ
ルな要求待ち行列(例えば、220で示す待ち行列0)
に要求エントリを挿入する。このエントリは、コマンド
コード要求ヘッダ222,関連するタスク記述ブロック
へのTDBポインタ224,及び待ち行列ポインタ22
6として示される応答の待ち行列番号を含む。
【0038】「待ち行列0」220が空ではないと通知
すると、タスクプロセッサは、待ち行列220から要求
エントリを読み出す。タスクプロセッサは、要求情報を
用いて、タスクデータブロック228を読み出し、要求
と一致することをチェックする。次に、タスクプロセッ
サは、所望の機能を実行する。タスクプロセッサは、参
照番号230で示す指示された応答待ち行列に完了応答
エントリを配置する。要求するプロセッサ124には、
応答待ち行列230を通して完了(終了)が通知され
る。
すると、タスクプロセッサは、待ち行列220から要求
エントリを読み出す。タスクプロセッサは、要求情報を
用いて、タスクデータブロック228を読み出し、要求
と一致することをチェックする。次に、タスクプロセッ
サは、所望の機能を実行する。タスクプロセッサは、参
照番号230で示す指示された応答待ち行列に完了応答
エントリを配置する。要求するプロセッサ124には、
応答待ち行列230を通して完了(終了)が通知され
る。
【0039】図7は、タスクプロセッサ134による処
理に適したメモリブロックに分割された、第1のメモリ
120内に含まれるメモリイメージの例示的な一実施形
態を示す図である。特に、タスクプロセッサ134によ
って処理されるバックグラウンドタスクは、特定のタス
クプロセッサ134を含め、メモリコントローラ122
の内部にバッファリングするには大きすぎる、メモリ1
20に格納されるデータブロックに対して動作すること
ができる。従って、タスクプロセッサ134は、メモリ
イメージ又はブロックを、タスクプロセッサが処理可能
なサイズに対応するメモリブロック又はチャンクに構成
するように動作する。図示の例示的な実施形態におい
て、第1のメモリ120に格納されたメモリイメージ
は、「メモリブロック1」232,「メモリブロック
2」234,「メモリブロック3」236,「メモリブ
ロック4」238〜「メモリブロックN」240に構成
される。一態様では、各チャンクは最大512バイトで
あり、これはメモリコントローラ122内への内部バッ
ファリングを可能とするのに十分小さいが、タスク処理
システムを有効に使用するには十分大きい。一態様にお
いて、タスクプロセッサ134は、メモリコントローラ
122の制限内で動作しながら、メモリイメージ当たり
最小の数のメモリブロックを得るように、メモリブロッ
クのサイズを構成するように動作する。使用可能な最大
メモリブロックが512バイトである一態様では、タス
クプロセッサ134は、メモリイメージを、第1のメモ
リブロック及び最後のメモリブロックのみが最大すなわ
ち512バイト未満であることができるブロックに構成
する。図示の例示的な実施形態では、「メモリブロック
1」232及び「メモリブロックN」240は、最大メ
モリブロックサイズ未満であることができる。「メモリ
ブロック2」234,「メモリブロック3」236,及
び「メモリブロック4」238等は、最大メモリブロッ
クサイズ(例えば、512バイト)になる。
理に適したメモリブロックに分割された、第1のメモリ
120内に含まれるメモリイメージの例示的な一実施形
態を示す図である。特に、タスクプロセッサ134によ
って処理されるバックグラウンドタスクは、特定のタス
クプロセッサ134を含め、メモリコントローラ122
の内部にバッファリングするには大きすぎる、メモリ1
20に格納されるデータブロックに対して動作すること
ができる。従って、タスクプロセッサ134は、メモリ
イメージ又はブロックを、タスクプロセッサが処理可能
なサイズに対応するメモリブロック又はチャンクに構成
するように動作する。図示の例示的な実施形態におい
て、第1のメモリ120に格納されたメモリイメージ
は、「メモリブロック1」232,「メモリブロック
2」234,「メモリブロック3」236,「メモリブ
ロック4」238〜「メモリブロックN」240に構成
される。一態様では、各チャンクは最大512バイトで
あり、これはメモリコントローラ122内への内部バッ
ファリングを可能とするのに十分小さいが、タスク処理
システムを有効に使用するには十分大きい。一態様にお
いて、タスクプロセッサ134は、メモリコントローラ
122の制限内で動作しながら、メモリイメージ当たり
最小の数のメモリブロックを得るように、メモリブロッ
クのサイズを構成するように動作する。使用可能な最大
メモリブロックが512バイトである一態様では、タス
クプロセッサ134は、メモリイメージを、第1のメモ
リブロック及び最後のメモリブロックのみが最大すなわ
ち512バイト未満であることができるブロックに構成
する。図示の例示的な実施形態では、「メモリブロック
1」232及び「メモリブロックN」240は、最大メ
モリブロックサイズ未満であることができる。「メモリ
ブロック2」234,「メモリブロック3」236,及
び「メモリブロック4」238等は、最大メモリブロッ
クサイズ(例えば、512バイト)になる。
【0040】タスクプロセッサ134及びシステム動作
プロセッサ124は、両方とも、メモリ120内に格納
されているデータに対して動作する。第2のコントロー
ラを冗長コントローラデータ格納システムに追加するこ
とを含め、タスクプロセッサ134を介してのタスクの
処理中に、システムコマンドの処理を継続することがで
きるように、冗長コントローラデータ格納システム11
0を構成することが望ましい。従って、優先度がタスク
プロセッサ134と、メモリ120にアクセスするため
にプロセッサ124を介して達成されるもの等、他のシ
ステム動作の間に割り当てられる。好ましい一実施形態
においては、タスクプロセッサ134には、オペレーテ
ィングシステムの性能が、タスクプロセッサ134を介
してのバックグラウンドタスクの動作により過度に低下
しないように、プロセッサ124よりも低い優先度(例
えば、最も低い優先度)が割り当てられる。代替とし
て、タスクプロセッサ134のメモリアクセス優先度
が、他のシステム動作と同じか、それよりも高くてもよ
い。或いは、ファームウェアを利用して、タスクプロセ
ッサ134を介して達成される個々のタスクのメモリア
クセス優先度を上げることも可能である。
プロセッサ124は、両方とも、メモリ120内に格納
されているデータに対して動作する。第2のコントロー
ラを冗長コントローラデータ格納システムに追加するこ
とを含め、タスクプロセッサ134を介してのタスクの
処理中に、システムコマンドの処理を継続することがで
きるように、冗長コントローラデータ格納システム11
0を構成することが望ましい。従って、優先度がタスク
プロセッサ134と、メモリ120にアクセスするため
にプロセッサ124を介して達成されるもの等、他のシ
ステム動作の間に割り当てられる。好ましい一実施形態
においては、タスクプロセッサ134には、オペレーテ
ィングシステムの性能が、タスクプロセッサ134を介
してのバックグラウンドタスクの動作により過度に低下
しないように、プロセッサ124よりも低い優先度(例
えば、最も低い優先度)が割り当てられる。代替とし
て、タスクプロセッサ134のメモリアクセス優先度
が、他のシステム動作と同じか、それよりも高くてもよ
い。或いは、ファームウェアを利用して、タスクプロセ
ッサ134を介して達成される個々のタスクのメモリア
クセス優先度を上げることも可能である。
【0041】図8〜図10は、システム割り込みを最小
に抑える、本発明によるコントローラを冗長コントロー
ラデータ格納システムにオンライン「活線」(hot)挿入
する方法の例示的な一実施形態を示し、本明細書におい
て上述した図1〜図7も参照する。
に抑える、本発明によるコントローラを冗長コントロー
ラデータ格納システムにオンライン「活線」(hot)挿入
する方法の例示的な一実施形態を示し、本明細書におい
て上述した図1〜図7も参照する。
【0042】図8では、本発明による冗長コントローラ
データ格納システム(冗長コントローラシステム)にコ
ントローラを活線挿入する方法の例示的な一実施形態を
示す図が、全体的に参照番号250で示される。この例
示的な実施形態では、冗長コントローラデータ格納シス
テムが、第1のコントローラ112を介して動作してお
り、第2のコントローラは、冗長コントローラデータ格
納システムから抜去されている。ステップ252におい
て、冗長コントローラデータ格納システム110が、単
一コントローラシステムとして、第1のコントローラ1
12を介して作動する。ステップ254において、第1
のコントローラ112は、第2のコントローラ114が
冗長コントローラデータ格納システム110に追加され
ていることを検出する。第2のコントローラ114が冗
長コントローラデータ格納システム110に追加されて
いることが検出された後に、第1のコントローラ112
は、単一コントローラシステムとして引き続き動作す
る。第1のコントローラ112は、第2のコントローラ
114が冗長コントローラデータ格納システム110に
追加されたことを示す検出信号を受信する。一態様で
は、第2のコントローラ114が冗長コントローラデー
タ格納システム110に活線挿入されると、第2のコン
トローラ114が、完全に定位置に挿入されラッチされ
るまで、リセットに保たれる。存在検出ライン204
が、新しいコントローラの挿入を検出する。次に、挿入
されたコントローラ114の存在が、存在検出ライン2
04を介して第1のコントローラ112に連絡される。
データ格納システム(冗長コントローラシステム)にコ
ントローラを活線挿入する方法の例示的な一実施形態を
示す図が、全体的に参照番号250で示される。この例
示的な実施形態では、冗長コントローラデータ格納シス
テムが、第1のコントローラ112を介して動作してお
り、第2のコントローラは、冗長コントローラデータ格
納システムから抜去されている。ステップ252におい
て、冗長コントローラデータ格納システム110が、単
一コントローラシステムとして、第1のコントローラ1
12を介して作動する。ステップ254において、第1
のコントローラ112は、第2のコントローラ114が
冗長コントローラデータ格納システム110に追加され
ていることを検出する。第2のコントローラ114が冗
長コントローラデータ格納システム110に追加されて
いることが検出された後に、第1のコントローラ112
は、単一コントローラシステムとして引き続き動作す
る。第1のコントローラ112は、第2のコントローラ
114が冗長コントローラデータ格納システム110に
追加されたことを示す検出信号を受信する。一態様で
は、第2のコントローラ114が冗長コントローラデー
タ格納システム110に活線挿入されると、第2のコン
トローラ114が、完全に定位置に挿入されラッチされ
るまで、リセットに保たれる。存在検出ライン204
が、新しいコントローラの挿入を検出する。次に、挿入
されたコントローラ114の存在が、存在検出ライン2
04を介して第1のコントローラ112に連絡される。
【0043】ステップ256において、第2のコントロ
ーラ114に電源が投入され、定位置にラッチされるの
を待ってから、プロセッササブシステムの自己試験を実
行する。プロセッササブシステムの自己試験には、フラ
ッシュROMにあるファームウェアイメージの試験,マ
イクロプロセッサローカルメモリの試験,周辺チップレ
ジスタの実行,及びデータパス試験が含まれる。ステッ
プ258において、第1のコントローラ112及び第2
のコントローラ114が、代替通信パス202を介して
通信する。第1のコントローラ112及び第2のコント
ローラ114は、第2のコントローラ114が冗長コン
トローラデータ格納システム110の一部としてまだ
「オンライン」になっていない場合であっても、代替通
信パス202、メモリ/通信モジュール138、及びメ
モリ/通信モジュール178を介して互いに通信する。
代替通信パス202を介しての第1のコントローラ11
2と第2のコントローラ114との間のサンプル通信と
しては、コントローラ間の互換性を確認するためのハー
ドウェア及びファームウェア改訂情報の交換、いつ試験
が完了したかならびにその試験の結果の通知、及び活線
挿入プロセス中のコントローラ間の同期点の通信が挙げ
られる。
ーラ114に電源が投入され、定位置にラッチされるの
を待ってから、プロセッササブシステムの自己試験を実
行する。プロセッササブシステムの自己試験には、フラ
ッシュROMにあるファームウェアイメージの試験,マ
イクロプロセッサローカルメモリの試験,周辺チップレ
ジスタの実行,及びデータパス試験が含まれる。ステッ
プ258において、第1のコントローラ112及び第2
のコントローラ114が、代替通信パス202を介して
通信する。第1のコントローラ112及び第2のコント
ローラ114は、第2のコントローラ114が冗長コン
トローラデータ格納システム110の一部としてまだ
「オンライン」になっていない場合であっても、代替通
信パス202、メモリ/通信モジュール138、及びメ
モリ/通信モジュール178を介して互いに通信する。
代替通信パス202を介しての第1のコントローラ11
2と第2のコントローラ114との間のサンプル通信と
しては、コントローラ間の互換性を確認するためのハー
ドウェア及びファームウェア改訂情報の交換、いつ試験
が完了したかならびにその試験の結果の通知、及び活線
挿入プロセス中のコントローラ間の同期点の通信が挙げ
られる。
【0044】ステップ260において、第2のコントロ
ーラが、共有メモリに対しての自己試験の実行を含め、
引き続き自己試験を実行する。本明細書において上述し
たように、こういった試験は、システムに割り込むこと
なく、バックグラウンドタスクとしてタスクプロセッサ
174を介して実行することができる。ステップ262
において、全ての試験にパスしたわけではない場合に
は、復元モード264に入る。この復元モード264
は、エラー状況を冗長コントローラデータ格納システム
及び/又はホストに提供することを含むことができる。
一実施形態では、コントローラが不良とマークされ、オ
フラインに保たれる。プロセスは、別のコントローラを
用いて初めからやり直される。全ての試験にパスした場
合には、ステップ266において、第2のコントローラ
114が、冗長コントローラデータ格納システム110
に追加する準備ができたというメッセージを第1のコン
トローラ112に送信する。
ーラが、共有メモリに対しての自己試験の実行を含め、
引き続き自己試験を実行する。本明細書において上述し
たように、こういった試験は、システムに割り込むこと
なく、バックグラウンドタスクとしてタスクプロセッサ
174を介して実行することができる。ステップ262
において、全ての試験にパスしたわけではない場合に
は、復元モード264に入る。この復元モード264
は、エラー状況を冗長コントローラデータ格納システム
及び/又はホストに提供することを含むことができる。
一実施形態では、コントローラが不良とマークされ、オ
フラインに保たれる。プロセスは、別のコントローラを
用いて初めからやり直される。全ての試験にパスした場
合には、ステップ266において、第2のコントローラ
114が、冗長コントローラデータ格納システム110
に追加する準備ができたというメッセージを第1のコン
トローラ112に送信する。
【0045】図9では、本発明による冗長コントローラ
データ格納システムにコントローラを活線挿入する方法
をさらに示す図が、全体的に参照番号220で示されて
いる。ステップ272において、第1のコントローラ1
12が、共有書き込み及びローカル読み出し専用にメモ
リ120を構成する。従って、その時点の前では、メモ
リ120への何れのデータ書き込みもまた、第2のコン
トローラ114のメモリ160にミラーリングされる、
すなわち書き込まれる。この時点では、メモリ160の
メモリイメージが、メモリ120のメモリイメージの
「ミラー」コピーではないため、冗長コントローラデー
タ格納システム110の一部として、メモリ120から
はデータしか読み出すことができない。ステップ274
において、第1のコントローラ112により許可が与え
られるまで(例えば、代替通信パス202を介して)、
第2のコントローラ114による共有メモリ120及び
それ自体のメモリ160への書き込みが禁止される。
データ格納システムにコントローラを活線挿入する方法
をさらに示す図が、全体的に参照番号220で示されて
いる。ステップ272において、第1のコントローラ1
12が、共有書き込み及びローカル読み出し専用にメモ
リ120を構成する。従って、その時点の前では、メモ
リ120への何れのデータ書き込みもまた、第2のコン
トローラ114のメモリ160にミラーリングされる、
すなわち書き込まれる。この時点では、メモリ160の
メモリイメージが、メモリ120のメモリイメージの
「ミラー」コピーではないため、冗長コントローラデー
タ格納システム110の一部として、メモリ120から
はデータしか読み出すことができない。ステップ274
において、第1のコントローラ112により許可が与え
られるまで(例えば、代替通信パス202を介して)、
第2のコントローラ114による共有メモリ120及び
それ自体のメモリ160への書き込みが禁止される。
【0046】ステップ276において、第1のコントロ
ーラ112が、バックグラウンドタスクを介して、共有
メモリ120を全て共有メモリ120における同一ロケ
ーションにコピーし返す。特に、タスクプロセッサ13
4は、タスクプロセッサ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に追加するプロ
セスが継続される。
ーラ112が、バックグラウンドタスクを介して、共有
メモリ120を全て共有メモリ120における同一ロケ
ーションにコピーし返す。特に、タスクプロセッサ13
4は、タスクプロセッサ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に追加するプロ
セスが継続される。
【0047】図10は、第1のコントローラ112のメ
モリイメージを第2のコントローラ114のメモリ16
0にミラーリングすなわちコピーした後に、冗長コント
ローラデータ格納システムにコントローラを追加する本
発明による方法の例示的な一実施形態(参照番号290
で示す)を示す図である。ステップ292において、第
1のコントローラ112が、書き込み及び読み出しミラ
ーリングモード又は構成に再構成される。これで、デー
タロケーションを第1のメモリ120及び第2のメモリ
160の両方に読み書きすることができるようになる。
ステップ294において、第1のコントローラ112
が、全てのメモリロケーションを読み出し、タスクプロ
セッサ134を介してのバックグラウンドタスクを用い
て、第2のコントローラの共有メモリ160に対する第
1のコントローラの共有メモリ120の一貫性(整合
性)(consistency)を比較する。従って、システム動
作コマンドは、このときに割り込みを受けない。ステッ
プ296において、メモリが一貫しない場合には、復元
モードに入る(ステップ298参照)。メモリが一貫
(整合)している場合には、ステップ300において、
第1のコントローラ112及び第2のコントローラ11
4が、第2のコントローラを冗長コントローラデータ格
納システム110に追加するように再構成される。ここ
で、冗長コントローラデータ格納システム110が、ミ
ラーリングメモリ冗長コントローラデータ格納システム
として完全に動作できるようになる。さらに、第2のコ
ントローラは、システム動作処理に対する割り込みが最
小で、かつホストのタイムアウトを引き起こさずに、冗
長コントローラデータ格納システムに活線挿入された。
モリイメージを第2のコントローラ114のメモリ16
0にミラーリングすなわちコピーした後に、冗長コント
ローラデータ格納システムにコントローラを追加する本
発明による方法の例示的な一実施形態(参照番号290
で示す)を示す図である。ステップ292において、第
1のコントローラ112が、書き込み及び読み出しミラ
ーリングモード又は構成に再構成される。これで、デー
タロケーションを第1のメモリ120及び第2のメモリ
160の両方に読み書きすることができるようになる。
ステップ294において、第1のコントローラ112
が、全てのメモリロケーションを読み出し、タスクプロ
セッサ134を介してのバックグラウンドタスクを用い
て、第2のコントローラの共有メモリ160に対する第
1のコントローラの共有メモリ120の一貫性(整合
性)(consistency)を比較する。従って、システム動
作コマンドは、このときに割り込みを受けない。ステッ
プ296において、メモリが一貫しない場合には、復元
モードに入る(ステップ298参照)。メモリが一貫
(整合)している場合には、ステップ300において、
第1のコントローラ112及び第2のコントローラ11
4が、第2のコントローラを冗長コントローラデータ格
納システム110に追加するように再構成される。ここ
で、冗長コントローラデータ格納システム110が、ミ
ラーリングメモリ冗長コントローラデータ格納システム
として完全に動作できるようになる。さらに、第2のコ
ントローラは、システム動作処理に対する割り込みが最
小で、かつホストのタイムアウトを引き起こさずに、冗
長コントローラデータ格納システムに活線挿入された。
【0048】コントローラリセット 既知の二重コントローラシステムでは、一方のコントロ
ーラをリセットすると、他方のコントローラのマイクロ
プロセッサに対する割り込みが生じる。そのとき、受け
る側のコントローラのプロセッサは、割り込み及びリセ
ットの原因に対処しなければならなかった。この従来の
方法は、多くの既知の欠点を有する。第1のコントロー
ラと第2のコントローラとの間のリセットのタイミング
は、可変である。コントローラが「リセットループ」内
でスタックすると、洗練さの低いミラーリングインタフ
ェースの状態変化により、コントローラのシステム性能
に影響する紛らわしいアクティビティが提供されること
と相まって、リセットが他方のコントローラのプロセッ
サに割り込む。第2のコントローラが「スタック」を有
する、すなわち異常なプロセッサである場合、第2のコ
ントローラのプロセッサを割り込みへのサービス提供に
使用することができないため、第1のコントローラは、
第2のコントローラをリセットさせることができない。
従って、ここで第1のコントローラは、システムを回復
するために、リセット生成の「ウォッチドッグ」モード
に戻らなければならない。第2のコントローラが、シス
テムを用いて格納されたデータにダメージを与える可能
性は遥かに大きい。
ーラをリセットすると、他方のコントローラのマイクロ
プロセッサに対する割り込みが生じる。そのとき、受け
る側のコントローラのプロセッサは、割り込み及びリセ
ットの原因に対処しなければならなかった。この従来の
方法は、多くの既知の欠点を有する。第1のコントロー
ラと第2のコントローラとの間のリセットのタイミング
は、可変である。コントローラが「リセットループ」内
でスタックすると、洗練さの低いミラーリングインタフ
ェースの状態変化により、コントローラのシステム性能
に影響する紛らわしいアクティビティが提供されること
と相まって、リセットが他方のコントローラのプロセッ
サに割り込む。第2のコントローラが「スタック」を有
する、すなわち異常なプロセッサである場合、第2のコ
ントローラのプロセッサを割り込みへのサービス提供に
使用することができないため、第1のコントローラは、
第2のコントローラをリセットさせることができない。
従って、ここで第1のコントローラは、システムを回復
するために、リセット生成の「ウォッチドッグ」モード
に戻らなければならない。第2のコントローラが、シス
テムを用いて格納されたデータにダメージを与える可能
性は遥かに大きい。
【0049】図11及び図12は、本発明による冗長コ
ントローラデータ格納システムを用いてコントローラリ
セットを処理するシステム及び方法の例示的な一実施形
態を示す図である。本発明による冗長コントローラデー
タ格納システムを用いてコントローラのリセットを処理
する方法では、1つのコントローラに対するリセットの
局所化が可能であり、従って、ミラーリングバスがイネ
ーブルされているときに、リセットを第2のコントロー
ラにのみ伝搬することができる。これにより、コントロ
ーラが誤って全てのコントローラをリセットに保つこと
が回避される。また、本明細書において上述した図1〜
図10も参照する。
ントローラデータ格納システムを用いてコントローラリ
セットを処理するシステム及び方法の例示的な一実施形
態を示す図である。本発明による冗長コントローラデー
タ格納システムを用いてコントローラのリセットを処理
する方法では、1つのコントローラに対するリセットの
局所化が可能であり、従って、ミラーリングバスがイネ
ーブルされているときに、リセットを第2のコントロー
ラにのみ伝搬することができる。これにより、コントロ
ーラが誤って全てのコントローラをリセットに保つこと
が回避される。また、本明細書において上述した図1〜
図10も参照する。
【0050】図11では、本発明による冗長マルチコン
トローラシステムにおいてコントローラリセットを処理
する方法の例示的な一実施形態が、全体的に参照番号4
00で示される。冗長コントローラデータ格納システム
は、アクティブに接続され、ミラーリング対として動作
する第1のコントローラ112及び第2のコントローラ
114を備え、ステップ402において、リセット状況
が第2のコントローラ114で検出される。すると、第
2のコントローラ114はリセットされ、シャットダウ
ンプロセスが開始される。ステップ404において、シ
ャットダウンプロセスは、第1のコントローラ112と
第2のコントローラ114との間の通信リンクを介し
て、第1のコントローラ112にコントローラリセット
を通知することを含む。好ましい一実施形態では、第1
のコントローラに、ミラーバス200を介して、第2の
コントローラにリセットが発生したことを知らせる。ス
テップ406において、シャットダウンプロセスが、第
1のコントローラ112及び第2のコントローラ114
の両方に対して行われる。従って、第1のコントローラ
112及び第2のコントローラ114は、両方とも、同
時にシャットダウンプロセスを受ける。
トローラシステムにおいてコントローラリセットを処理
する方法の例示的な一実施形態が、全体的に参照番号4
00で示される。冗長コントローラデータ格納システム
は、アクティブに接続され、ミラーリング対として動作
する第1のコントローラ112及び第2のコントローラ
114を備え、ステップ402において、リセット状況
が第2のコントローラ114で検出される。すると、第
2のコントローラ114はリセットされ、シャットダウ
ンプロセスが開始される。ステップ404において、シ
ャットダウンプロセスは、第1のコントローラ112と
第2のコントローラ114との間の通信リンクを介し
て、第1のコントローラ112にコントローラリセット
を通知することを含む。好ましい一実施形態では、第1
のコントローラに、ミラーバス200を介して、第2の
コントローラにリセットが発生したことを知らせる。ス
テップ406において、シャットダウンプロセスが、第
1のコントローラ112及び第2のコントローラ114
の両方に対して行われる。従って、第1のコントローラ
112及び第2のコントローラ114は、両方とも、同
時にシャットダウンプロセスを受ける。
【0051】図12では、本発明による二重コントロー
ラシステムにおいてコントローラをリセットする方法の
例示的な一実施形態をさらに示す図が、全体的に参照番
号410で示される。ステップ412において、両方の
コントローラ112,114に対してシャットダウンプ
ロセスが完了した後、第1のコントローラ112及び第
2のコントローラ114に電源が投入される。シャット
ダウンにより、全ての内部バッファがフラッシュされ、
メモリが確保される。ステップ414において、プロセ
スの一貫として、第1のコントローラ112及び第2の
コントローラ114がリセットされる。ステップ416
において、第1のコントローラ112と第2のコントロ
ーラ114との間のミラーバス200のインタフェース
がディセーブルされる。一態様では、第1のコントロー
ラ112及び第2のコントローラ114をリセットする
ステップにより、ミラーバス200がディセーブルされ
る。ミラーバスをディセーブルするステップ416は、
ミラーバス200が再度イネーブルされるまで、ボード
間のリセット伝搬がさらに発生しないようにする。
ラシステムにおいてコントローラをリセットする方法の
例示的な一実施形態をさらに示す図が、全体的に参照番
号410で示される。ステップ412において、両方の
コントローラ112,114に対してシャットダウンプ
ロセスが完了した後、第1のコントローラ112及び第
2のコントローラ114に電源が投入される。シャット
ダウンにより、全ての内部バッファがフラッシュされ、
メモリが確保される。ステップ414において、プロセ
スの一貫として、第1のコントローラ112及び第2の
コントローラ114がリセットされる。ステップ416
において、第1のコントローラ112と第2のコントロ
ーラ114との間のミラーバス200のインタフェース
がディセーブルされる。一態様では、第1のコントロー
ラ112及び第2のコントローラ114をリセットする
ステップにより、ミラーバス200がディセーブルされ
る。ミラーバスをディセーブルするステップ416は、
ミラーバス200が再度イネーブルされるまで、ボード
間のリセット伝搬がさらに発生しないようにする。
【0052】ステップ418において、第1のコントロ
ーラ112及び第2のコントローラ114の各コントロ
ーラが、自己試験を実行する。自己試験には、通常、本
明細書において上述したように、マイクロプロセッササ
ブシステム及びSDRAMメモリを試験すること、並び
に、内部メモリコントローラASIC122,162、
及び全てのデータパスバスを試験することが含まれる。
ーラ112及び第2のコントローラ114の各コントロ
ーラが、自己試験を実行する。自己試験には、通常、本
明細書において上述したように、マイクロプロセッササ
ブシステム及びSDRAMメモリを試験すること、並び
に、内部メモリコントローラASIC122,162、
及び全てのデータパスバスを試験することが含まれる。
【0053】このとき、第1のコントローラ112と第
2のコントローラ114との間のミラーバス200のイ
ンタフェースは、ディセーブルのままである。従って、
一方のコントローラにより、又は自己試験の結果発生す
ることがある任意のリセット又は割り込みは、他方のコ
ントローラに影響を与えない。ステップ420におい
て、自己試験が好結果でなかった場合には、ステップ4
22において、自己試験が好結果であったコントローラ
が復元モードになる。通常、復元モードは、エラーをホ
ストコンピュータシステムに対して生成して故障を知ら
せること、及び、「不良」コントローラをアレイでの使
用から除くことを含む。次に、残っている「良好」コン
トローラが、データのミラーリングが必要ではない単一
コントローラモードで動作を開始する。
2のコントローラ114との間のミラーバス200のイ
ンタフェースは、ディセーブルのままである。従って、
一方のコントローラにより、又は自己試験の結果発生す
ることがある任意のリセット又は割り込みは、他方のコ
ントローラに影響を与えない。ステップ420におい
て、自己試験が好結果でなかった場合には、ステップ4
22において、自己試験が好結果であったコントローラ
が復元モードになる。通常、復元モードは、エラーをホ
ストコンピュータシステムに対して生成して故障を知ら
せること、及び、「不良」コントローラをアレイでの使
用から除くことを含む。次に、残っている「良好」コン
トローラが、データのミラーリングが必要ではない単一
コントローラモードで動作を開始する。
【0054】第1のコントローラ112及び第2のコン
トローラ114の両方に関して自己試験が好結果であっ
た場合には、ステップ424において、第1のコントロ
ーラ112と第2のコントローラ114との間のミラー
バス200のインタフェースがイネーブルされる。従っ
て、第1のコントローラ112及び第2のコントローラ
114は、リセット又はリセットの原因が除去され、再
びミラーリング対として動作し続けることが可能である
ことが検証される。
トローラ114の両方に関して自己試験が好結果であっ
た場合には、ステップ424において、第1のコントロ
ーラ112と第2のコントローラ114との間のミラー
バス200のインタフェースがイネーブルされる。従っ
て、第1のコントローラ112及び第2のコントローラ
114は、リセット又はリセットの原因が除去され、再
びミラーリング対として動作し続けることが可能である
ことが検証される。
【0055】本発明による冗長コントローラデータ格納
システムを用いてコントローラリセットを処理するよう
にした上記方法では、一方のコントローラに対するリセ
ットの局所化が可能であり、従って、ミラーリングバス
と共にイネーブルされない限り、リセットが第2のコン
トローラに伝搬しないようにすることができる。これ
は、システムファームウェアが、システム内の全てのコ
ントローラをリセットすることができないようにコント
ローラをディセーブルする方法がなお可能でありなが
ら、マルチコントローラボード間でのリセット同期のハ
ードウェア管理という利点を提供する。
システムを用いてコントローラリセットを処理するよう
にした上記方法では、一方のコントローラに対するリセ
ットの局所化が可能であり、従って、ミラーリングバス
と共にイネーブルされない限り、リセットが第2のコン
トローラに伝搬しないようにすることができる。これ
は、システムファームウェアが、システム内の全てのコ
ントローラをリセットすることができないようにコント
ローラをディセーブルする方法がなお可能でありなが
ら、マルチコントローラボード間でのリセット同期のハ
ードウェア管理という利点を提供する。
【0056】コントローラの抜去 オンラインコントローラが冗長コントローラデータ格納
システムから抜去されると、コントローラが「部分的に
抜去された」場合又は正しく抜去されない場合にダウン
タイムを被ることがある。通常、これは、冗長コントロ
ーラが休止状態になる、又はオンライン抜去イベントが
継続している時間リセットに保持されるため、発生す
る。
システムから抜去されると、コントローラが「部分的に
抜去された」場合又は正しく抜去されない場合にダウン
タイムを被ることがある。通常、これは、冗長コントロ
ーラが休止状態になる、又はオンライン抜去イベントが
継続している時間リセットに保持されるため、発生す
る。
【0057】冗長コントローラデータ格納システムから
コントローラをオンラインで抜去する既知のプロセスに
は、コントローラが抜去されているという警告を冗長コ
ントローラデータ格納システムに提供する早期警告スイ
ッチ又はショートコネクタピンが含まれる。警告によ
り、コントローラがコントローラの現在のメモリアクセ
スを終了し、それからコントローラの不揮発性メモリを
自己リフレッシュモードにする。コントローラが全体的
に切り離された(例えば、コントローラ検出ロングピン
の切り離し)後、他方の「対になった」コントローラ
が、冗長コントローラデータ格納システムを制御するた
めに動作を再開することが可能になる。検出ピンコネク
タを利用するシステムの場合、部分的に抜去されたコン
トローラは、検出ピンが完全に接触しなくなるまで、シ
ステムを非アクティブ状態に保つことができる。このセ
ットアップは、コントローラが冗長コントローラデータ
格納システムから「部分的にのみ抜去」され、ホストの
オペレーティングシステムのタイムアウト期間を過ぎて
オンライン抜去によるダウンタイムが延びるなど、手順
が不正確になる機会をもたらす。
コントローラをオンラインで抜去する既知のプロセスに
は、コントローラが抜去されているという警告を冗長コ
ントローラデータ格納システムに提供する早期警告スイ
ッチ又はショートコネクタピンが含まれる。警告によ
り、コントローラがコントローラの現在のメモリアクセ
スを終了し、それからコントローラの不揮発性メモリを
自己リフレッシュモードにする。コントローラが全体的
に切り離された(例えば、コントローラ検出ロングピン
の切り離し)後、他方の「対になった」コントローラ
が、冗長コントローラデータ格納システムを制御するた
めに動作を再開することが可能になる。検出ピンコネク
タを利用するシステムの場合、部分的に抜去されたコン
トローラは、検出ピンが完全に接触しなくなるまで、シ
ステムを非アクティブ状態に保つことができる。このセ
ットアップは、コントローラが冗長コントローラデータ
格納システムから「部分的にのみ抜去」され、ホストの
オペレーティングシステムのタイムアウト期間を過ぎて
オンライン抜去によるダウンタイムが延びるなど、手順
が不正確になる機会をもたらす。
【0058】図13は、本発明による冗長コントローラ
データ格納システムからコントローラをオンラインで抜
去する方法の例示的な一実施形態を示す図である。本方
法は、全体的に参照番号450で示される。オンライン
での抜去方法450では、冗長コントローラデータ格納
システムのダウンタイムを最小に抑えながら、コントロ
ーラを冗長コントローラデータ格納システムからオンラ
インで安全に抜去することができる。
データ格納システムからコントローラをオンラインで抜
去する方法の例示的な一実施形態を示す図である。本方
法は、全体的に参照番号450で示される。オンライン
での抜去方法450では、冗長コントローラデータ格納
システムのダウンタイムを最小に抑えながら、コントロ
ーラを冗長コントローラデータ格納システムからオンラ
インで安全に抜去することができる。
【0059】ステップ452において、コントローラが
冗長コントローラデータ格納システム110から抜去さ
れていることが検出される。また、本明細書において上
述した図1〜図12も参照する。一態様では、早期警告
スイッチ又はコネクタ上のショートピンが、コントロー
ラ自体が抜去されつつあるという警告をシステム110
に提供する。検出は、冗長コントローラデータ格納シス
テム110からコントローラが完全に切り離される前に
行われることが好ましい。警告は、ホット・プラグ警告
142又はホット・プラグ警告182を介して受信され
る。本明細書で説明する例示的な一実施形態では、第1
のコントローラ112が冗長コントローラデータ格納シ
ステム110から抜去される。
冗長コントローラデータ格納システム110から抜去さ
れていることが検出される。また、本明細書において上
述した図1〜図12も参照する。一態様では、早期警告
スイッチ又はコネクタ上のショートピンが、コントロー
ラ自体が抜去されつつあるという警告をシステム110
に提供する。検出は、冗長コントローラデータ格納シス
テム110からコントローラが完全に切り離される前に
行われることが好ましい。警告は、ホット・プラグ警告
142又はホット・プラグ警告182を介して受信され
る。本明細書で説明する例示的な一実施形態では、第1
のコントローラ112が冗長コントローラデータ格納シ
ステム110から抜去される。
【0060】ステップ454において、第1のコントロ
ーラ112が冗長コントローラデータ格納システム11
0から抜去されていることが検出されると、シャットダ
ウンシーケンスが第1のコントローラ112及び第2の
コントローラ114に対して行われる。ステップ456
において、一態様では、各コントローラについてのシャ
ットダウンシーケンスが、コントローラのプロセッサに
割り込みし、プロセッサがアクティブな処理タスクを終
えることができるようにすることを含む。ステップ45
8において、各コントローラ112,114についての
シャットダウンシーケンスは、メモリ120及びメモリ
160への未処理のメモリアクセスを完了し、内部バッ
ファをフラッシュすることをさらに含む。シャットダウ
ンプロセスの一貫として、メモリコントローラ122
が、状態語をメモリ120に書き込み、メモリコントロ
ーラ162が状態語をメモリ160に書き込む。
ーラ112が冗長コントローラデータ格納システム11
0から抜去されていることが検出されると、シャットダ
ウンシーケンスが第1のコントローラ112及び第2の
コントローラ114に対して行われる。ステップ456
において、一態様では、各コントローラについてのシャ
ットダウンシーケンスが、コントローラのプロセッサに
割り込みし、プロセッサがアクティブな処理タスクを終
えることができるようにすることを含む。ステップ45
8において、各コントローラ112,114についての
シャットダウンシーケンスは、メモリ120及びメモリ
160への未処理のメモリアクセスを完了し、内部バッ
ファをフラッシュすることをさらに含む。シャットダウ
ンプロセスの一貫として、メモリコントローラ122
が、状態語をメモリ120に書き込み、メモリコントロ
ーラ162が状態語をメモリ160に書き込む。
【0061】好ましい一実施形態では、第1のメモリ1
20及び第2のメモリ160が自己リフレッシュモード
を有し、より好ましくはバッテリバックアップを備え
る。第1のコントローラ112及び第2のコントローラ
114に対してシャットダウンシーケンスが完了した後
に、第1のメモリ120及び第2のメモリ160が、対
応するメモリコントローラである第1のメモリコントロ
ーラ122及び第2のメモリコントローラ162によ
り、自己リフレッシュモードにされる(ステップ460
参照)。ステップ462において、抜去が検出されたコ
ントローラは、オフラインのままで抜去の終了を待つ。
そのメモリは、自己リフレッシュモードに留まる。ステ
ップ464において、抜去が検出されないコントローラ
が、オンラインになるプロセスを直ちに開始する。本明
細書において述べる例示的な実施形態では、メモリ12
0に対する自己リフレッシュプロセスの完了後、抜去が
検出された第1のコントローラ112が、オフラインの
まま抜去の終了を待ち、メモリ120が自己リフレッシ
ュモードに留まる(一態様において、メモリはバッテリ
バックDRAMである)。抜去を検出しない第2のコン
トローラ114が、直ちにオンラインになるプロセスを
開始し、冗長コントローラデータ格納システムのダウン
タイムを最小に抑える。メモリ160(例えば、バッテ
リバックDRAM)は、自己リフレッシュモードから出
され、メモリコントローラによる使用のため、先に書き
込まれた状態語を保持する。
20及び第2のメモリ160が自己リフレッシュモード
を有し、より好ましくはバッテリバックアップを備え
る。第1のコントローラ112及び第2のコントローラ
114に対してシャットダウンシーケンスが完了した後
に、第1のメモリ120及び第2のメモリ160が、対
応するメモリコントローラである第1のメモリコントロ
ーラ122及び第2のメモリコントローラ162によ
り、自己リフレッシュモードにされる(ステップ460
参照)。ステップ462において、抜去が検出されたコ
ントローラは、オフラインのままで抜去の終了を待つ。
そのメモリは、自己リフレッシュモードに留まる。ステ
ップ464において、抜去が検出されないコントローラ
が、オンラインになるプロセスを直ちに開始する。本明
細書において述べる例示的な実施形態では、メモリ12
0に対する自己リフレッシュプロセスの完了後、抜去が
検出された第1のコントローラ112が、オフラインの
まま抜去の終了を待ち、メモリ120が自己リフレッシ
ュモードに留まる(一態様において、メモリはバッテリ
バックDRAMである)。抜去を検出しない第2のコン
トローラ114が、直ちにオンラインになるプロセスを
開始し、冗長コントローラデータ格納システムのダウン
タイムを最小に抑える。メモリ160(例えば、バッテ
リバックDRAM)は、自己リフレッシュモードから出
され、メモリコントローラによる使用のため、先に書き
込まれた状態語を保持する。
【0062】以上を要約すると、次の通りである。コン
トローラリセット(ステップ400)を処理するための
システム及び方法を有する冗長コントローラデータ格納
システム(30,110)が記載されている。一態様に
おいては、本発明による冗長コントローラデータ格納シ
ステム(30,110)におけるコントローラリセット
を処理する方法は、第1のコントローラ(32,11
2)及び第2のコントローラ(34,114)を備える
冗長コントローラシステムを含んでいる。コントローラ
リセットは、第2のコントローラにおいて検出される
(ステップ402)。第1のコントローラは、第1のコ
ントローラと第2のコントローラとの間の通信リンク
(40,200)を介してコントローラリセットが通知
される(ステップ404)。第1のコントローラ及び第
2のコントローラに対するシャットダウンプロセスが実
行される(ステップ406)。第1のコントローラと第
2のコントローラとの間の通信リンクは、ディセーブル
され(ステップ416)、この場合、第2のコントロー
ラを介してのコントローラリセットの検出は、前記通信
リンクを介して第1のコントローラに通信され得ない。
トローラリセット(ステップ400)を処理するための
システム及び方法を有する冗長コントローラデータ格納
システム(30,110)が記載されている。一態様に
おいては、本発明による冗長コントローラデータ格納シ
ステム(30,110)におけるコントローラリセット
を処理する方法は、第1のコントローラ(32,11
2)及び第2のコントローラ(34,114)を備える
冗長コントローラシステムを含んでいる。コントローラ
リセットは、第2のコントローラにおいて検出される
(ステップ402)。第1のコントローラは、第1のコ
ントローラと第2のコントローラとの間の通信リンク
(40,200)を介してコントローラリセットが通知
される(ステップ404)。第1のコントローラ及び第
2のコントローラに対するシャットダウンプロセスが実
行される(ステップ406)。第1のコントローラと第
2のコントローラとの間の通信リンクは、ディセーブル
され(ステップ416)、この場合、第2のコントロー
ラを介してのコントローラリセットの検出は、前記通信
リンクを介して第1のコントローラに通信され得ない。
【0063】好ましい実施形態を説明するという目的で
特定の実施形態を本明細書に図示して説明したが、当業
者は、本発明の範囲から逸脱せずに、同じ目的を達成す
るために適合される多種多様な代替及び/又は同等の実
施を図示して説明した特定の実施形態と置き換えてもよ
いことを理解するであろう。化学,機械,電気機械,電
子,及びコンピュータの分野における知識を有する者
は、本発明を多種多様な実施形態で実施し得ることを容
易に理解するであろう。この出願は、本明細書に述べら
れる好ましい実施形態のあらゆる適合又は変更を網羅す
るよう意図される。従って、本発明は特許請求の範囲及
びその同等物によってのみ制限されるものと明白に意図
されるものである。
特定の実施形態を本明細書に図示して説明したが、当業
者は、本発明の範囲から逸脱せずに、同じ目的を達成す
るために適合される多種多様な代替及び/又は同等の実
施を図示して説明した特定の実施形態と置き換えてもよ
いことを理解するであろう。化学,機械,電気機械,電
子,及びコンピュータの分野における知識を有する者
は、本発明を多種多様な実施形態で実施し得ることを容
易に理解するであろう。この出願は、本明細書に述べら
れる好ましい実施形態のあらゆる適合又は変更を網羅す
るよう意図される。従って、本発明は特許請求の範囲及
びその同等物によってのみ制限されるものと明白に意図
されるものである。
【図1】冗長コントローラを活線挿入するように構成さ
れた本発明による冗長コントローラデータ格納システム
の例示的な一実施形態を示す図である。
れた本発明による冗長コントローラデータ格納システム
の例示的な一実施形態を示す図である。
【図2】本発明による冗長コントローラデータ格納シス
テムにコントローラを活線挿入する方法の例示的な一実
施形態を示す図である。
テムにコントローラを活線挿入する方法の例示的な一実
施形態を示す図である。
【図3】本発明による冗長コントローラデータ格納シス
テムにコントローラを活線挿入する方法の別の例示的な
実施形態を示す図である。
テムにコントローラを活線挿入する方法の別の例示的な
実施形態を示す図である。
【図4】本発明による冗長コントローラを活線挿入する
ように構成される冗長コントローラデータ格納システム
の別の例示的な実施形態を示すブロック図である。
ように構成される冗長コントローラデータ格納システム
の別の例示的な実施形態を示すブロック図である。
【図5】本発明による冗長コントローラデータ格納シス
テムにおいて使用されるタスクプロセッサの例示的な一
実施形態を示す図である。
テムにおいて使用されるタスクプロセッサの例示的な一
実施形態を示す図である。
【図6】本発明による冗長コントローラデータ格納シス
テムにおけるタスクプロセッサによって利用されるデー
タ構造の例示的な一実施形態を示す図である。
テムにおけるタスクプロセッサによって利用されるデー
タ構造の例示的な一実施形態を示す図である。
【図7】本発明による冗長コントローラデータ格納シス
テムに使用される、メモリブロックに構成されたメモリ
イメージを有するコントローラ共有メモリの例示的な一
実施形態を示す図である。
テムに使用される、メモリブロックに構成されたメモリ
イメージを有するコントローラ共有メモリの例示的な一
実施形態を示す図である。
【図8】本発明による冗長コントローラデータ格納シス
テムにコントローラを活線挿入する方法の例示的な一実
施形態を示す図である。
テムにコントローラを活線挿入する方法の例示的な一実
施形態を示す図である。
【図9】本発明による冗長コントローラデータ格納シス
テムにコントローラを活線挿入する方法の例示的な一実
施形態をさらに示す図である。
テムにコントローラを活線挿入する方法の例示的な一実
施形態をさらに示す図である。
【図10】本発明による冗長コントローラデータ格納シ
ステムにコントローラを活線挿入する方法の例示的な一
実施形態をさらに示す図である。
ステムにコントローラを活線挿入する方法の例示的な一
実施形態をさらに示す図である。
【図11】本発明による冗長コントローラデータ格納シ
ステムにおいてコントローラのリセットを処理する方法
の例示的な一実施形態を示す図である。
ステムにおいてコントローラのリセットを処理する方法
の例示的な一実施形態を示す図である。
【図12】本発明による冗長コントローラデータ格納シ
ステムにおけるコントローラのリセットを処理する方法
の例示的な一実施形態をさらに示す図である。
ステムにおけるコントローラのリセットを処理する方法
の例示的な一実施形態をさらに示す図である。
【図13】本発明による冗長コントローラデータ格納シ
ステムにおけるコントローラを抜去する方法の例示的な
一実施形態を示す図である。
ステムにおけるコントローラを抜去する方法の例示的な
一実施形態を示す図である。
30,110 冗長コントローラデータ格納システム 32,112 第1のコントローラ 34,114 第2のコントローラ 40 通信バス(通信リンク) 120,160 メモリ 122,162 メモリコントローラ 200 ミラーバス(通信リンク) 400 コントローラリセットを処理する方法 404 コントローラリセットを通知するステップ 406 シャットダウンプロセスを実行するステップ 416 ミラーバスをディセーブルするステップ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 バリー・ジェイ・オールドフィールド アメリカ合衆国アイダホ州83713,ボイジ ー,ウェスト・ダニエル・コート 11302 (72)発明者 クリストファー・ダブリュ・ジョハンソン アメリカ合衆国アイダホ州83629,ホース シュー・ベンド,リバー・ブラッフ・レー ン 32 Fターム(参考) 5B034 BB15 BB17 CC01 CC02 DD05 5B054 AA08 BB05 CC04 5B065 BA01 CA30 EA12
Claims (10)
- 【請求項1】 第1のコントローラ及び第2のコントロ
ーラを備える冗長コントローラデータ格納システムにお
いてコントローラリセットを処理する方法であって、
(a) 前記第2のコントローラにおいてコントローラ
リセットを検出するステップと、(b) 前記第1のコ
ントローラと前記第2のコントローラとの間の通信リン
クを介して、前記第1のコントローラに前記コントロー
ラリセットを通知するステップと、(c) 前記第1の
コントローラ及び前記第2のコントローラに対してシャ
ットダウンプロセスを実行するステップと、(d) 前
記第1のコントローラと前記第2のコントローラとの間
の前記通信リンクをディセーブルするステップであっ
て、前記第2のコントローラを介しての後続するコント
ローラリセットの検出が、前記通信リンクを介して前記
第1のコントローラに通信され得ないようにするステッ
プと、を含むことを特徴とするコントローラリセットを
処理する方法。 - 【請求項2】 前記第1のコントローラ及び前記第2の
コントローラをオンラインにするステップをさらに含む
ことを特徴とする請求項1に記載のコントローラリセッ
トを処理する方法。 - 【請求項3】 前記第1のコントローラ及び前記第2の
コントローラをリセットするステップをさらに含むこと
を特徴とする請求項1又は2に記載のコントローラリセ
ットを処理する方法。 - 【請求項4】 前記通信リンクをディセーブルするステ
ップは、ミラーバスを介して前記第1のコントローラと
前記第2のコントローラとの間の前記通信リンクを提供
するするステップと、前記ミラーバスをディセーブルす
るステップとを含むことを特徴とする請求項1乃至3の
何れか1項に記載のコントローラリセットを処理する方
法。 - 【請求項5】 前記第1のコントローラ及び前記第2の
コントローラに対して自己試験を実行するステップをさ
らに含むことを特徴とする請求項4に記載のコントロー
ラリセットを処理する方法。 - 【請求項6】 前記第1のコントローラ又は前記第2の
コントローラに対する前記自己試験が好結果でなかった
場合には、その後に復元モードにするステップをさらに
含むことを特徴とする請求項5に記載のコントローラリ
セットを処理する方法。 - 【請求項7】 前記第1のコントローラに対する前記自
己試験が好結果であり、かつ、前記第2のコントローラ
に対する前記自己試験が好結果であった場合には、その
後に前記第1のコントローラと前記第2のコントローラ
との間の前記通信リンクをイネーブルすることを特徴と
する請求項5に記載のコントローラリセットを処理する
方法。 - 【請求項8】 第1のコントローラ及び第2のコントロ
ーラを備え、請求項1乃至8の何れか1項に記載の方法
を実行するように構成されたことを特徴とする冗長コン
トローラデータ格納システム。 - 【請求項9】 前記第2のコントローラによって前記コ
ントローラリセットが検出されると、前記通信リンクを
介して前記第1のコントローラに前記コントローラリセ
ットが通知され、前記シャットダウンプロセスが前記第
1のコントローラ及び前記第2のコントローラに対して
実行され、前記通信リンクがディセーブルされて、該通
信リンクを介しての前記第2のコントローラに対する後
続するコントローラリセットの通知が阻止され、前記シ
ャットダウン後に、前記第1のコントローラ及び前記第
2のコントローラがリセットされるように構成されてい
ることを特徴とする請求項8記載の冗長コントローラデ
ータ格納システム。 - 【請求項10】 シャットダウンの後に、前記第1のコ
ントローラ及び前記第2のコントローラに電源が投入さ
れ、前記第1のコントローラ及び前記第2のコントロー
ラに電源が投入された後に、前記第1のコントローラ及
び前記第2のコントローラは、前記通信リンクがディセ
ーブルされている間に前記自己試験を実行し、該自己試
験が好結果であった場合には、前記第1のコントローラ
と前記第2のコントローラとの間の前記通信リンクはイ
ネーブルされるように構成したことを特徴とする請求項
9記載の冗長コントローラデータ格納システム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/810,108 US6708285B2 (en) | 2001-03-15 | 2001-03-15 | Redundant controller data storage system having system and method for handling controller resets |
US09/810108 | 2001-03-15 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2002358210A true JP2002358210A (ja) | 2002-12-13 |
Family
ID=25203018
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002072619A Withdrawn JP2002358210A (ja) | 2001-03-15 | 2002-03-15 | コントローラリセットを処理する方法、及びコントローラリセットを処理するシステム及び方法を有する冗長コントローラデータ格納システム |
Country Status (3)
Country | Link |
---|---|
US (1) | US6708285B2 (ja) |
JP (1) | JP2002358210A (ja) |
GB (1) | GB2375412B (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006120119A (ja) * | 2004-10-20 | 2006-05-11 | Seagate Technology Llc | 二重制御装置を有する冗長データ記憶システムおよびその動作方法 |
JP2021140402A (ja) * | 2020-03-04 | 2021-09-16 | 株式会社日立製作所 | ストレージシステム及びその制御方法 |
Families Citing this family (55)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5313421A (en) * | 1992-01-14 | 1994-05-17 | Sundisk Corporation | EEPROM with split gate source side injection |
KR100551669B1 (ko) * | 2000-05-29 | 2006-02-13 | 캐논 가부시끼가이샤 | 파일 포맷 호환성 허용 방법 |
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 |
JP4060552B2 (ja) * | 2001-08-06 | 2008-03-12 | 株式会社日立製作所 | 記憶装置システム、および、記憶装置システムの構成方法 |
US6931487B2 (en) * | 2001-10-22 | 2005-08-16 | Hewlett-Packard Development Company L.P. | High performance multi-controller processing |
US7107320B2 (en) * | 2001-11-02 | 2006-09-12 | Dot Hill Systems Corp. | Data mirroring between controllers in an active-active controller pair |
US6996655B1 (en) * | 2001-12-21 | 2006-02-07 | Cypress Semiconductor Corp. | Efficient peer-to-peer DMA |
US7499410B2 (en) | 2001-12-26 | 2009-03-03 | Cisco Technology, Inc. | Fibre channel switch that enables end devices in different fabrics to communicate with one another while retaining their unique fibre channel domain—IDs |
JP4219602B2 (ja) * | 2002-03-01 | 2009-02-04 | 株式会社日立製作所 | 記憶制御装置および記憶制御装置の制御方法 |
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 |
US6947981B2 (en) * | 2002-03-26 | 2005-09-20 | Hewlett-Packard Development Company, L.P. | Flexible data replication mechanism |
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 |
US7616637B1 (en) | 2002-04-01 | 2009-11-10 | Cisco Technology, Inc. | Label switching in fibre channel networks |
US7206288B2 (en) * | 2002-06-12 | 2007-04-17 | Cisco Technology, Inc. | Methods and apparatus for characterizing a route in fibre channel fabric |
JP4136615B2 (ja) | 2002-11-14 | 2008-08-20 | 株式会社日立製作所 | データベースシステム及びデータベースのアクセス方法 |
US7433326B2 (en) * | 2002-11-27 | 2008-10-07 | Cisco Technology, Inc. | Methods and devices for exchanging peer parameters between network devices |
US7028218B2 (en) * | 2002-12-02 | 2006-04-11 | Emc Corporation | Redundant multi-processor and logical processor configuration for a file server |
JP4704660B2 (ja) * | 2002-12-18 | 2011-06-15 | 株式会社日立製作所 | 記憶デバイス制御装置の制御方法、記憶デバイス制御装置、及びプログラム |
JP2004302713A (ja) * | 2003-03-31 | 2004-10-28 | Hitachi Ltd | 記憶システム及びその制御方法 |
US7437425B2 (en) * | 2003-09-30 | 2008-10-14 | Emc Corporation | Data storage system having shared resource |
US7024328B2 (en) * | 2004-01-27 | 2006-04-04 | Lsi Logic Corporation | Systems and methods for non-intrusive testing of signals between circuits |
US7290170B2 (en) * | 2004-04-07 | 2007-10-30 | International Business Machines Corporation | Arbitration method and system for redundant controllers, with output interlock and automatic switching capabilities |
JP4575059B2 (ja) | 2004-07-21 | 2010-11-04 | 株式会社日立製作所 | ストレージ装置 |
US7593324B2 (en) * | 2004-10-25 | 2009-09-22 | Cisco Technology, Inc. | Graceful port shutdown protocol for fibre channel interfaces |
US7916628B2 (en) * | 2004-11-01 | 2011-03-29 | Cisco Technology, Inc. | Trunking for fabric ports in fibre channel switches and attached devices |
JP4182948B2 (ja) * | 2004-12-21 | 2008-11-19 | 日本電気株式会社 | フォールト・トレラント・コンピュータシステムと、そのための割り込み制御方法 |
US7649844B2 (en) | 2004-12-29 | 2010-01-19 | Cisco Technology, Inc. | In-order fibre channel packet delivery |
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 |
US20060176096A1 (en) * | 2005-02-10 | 2006-08-10 | International Business Machines Corporation | Power supply insensitive delay element |
US7355435B2 (en) * | 2005-02-10 | 2008-04-08 | International Business Machines Corporation | On-chip detection of power supply vulnerabilities |
US20060230243A1 (en) * | 2005-04-06 | 2006-10-12 | Robert Cochran | Cascaded snapshots |
US7590885B2 (en) * | 2005-04-26 | 2009-09-15 | Hewlett-Packard Development Company, L.P. | Method and system of copying memory from a source processor to a target processor by duplicating memory writes |
US7549029B2 (en) * | 2005-05-06 | 2009-06-16 | International Business Machines Corporation | Methods for creating hierarchical copies |
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 |
US7861031B2 (en) * | 2007-03-01 | 2010-12-28 | Hewlett-Packard Development Company, L.P. | Access control management |
US8024514B2 (en) * | 2007-03-01 | 2011-09-20 | 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 |
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 |
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 |
US8583866B2 (en) * | 2010-02-22 | 2013-11-12 | International Business Machines Corporation | Full-stripe-write protocol for maintaining parity coherency in a write-back distributed redundancy data storage system |
TWI579688B (zh) * | 2012-02-29 | 2017-04-21 | 萬國商業機器公司 | 磁碟陣列資料儲存系統 |
US9055044B2 (en) * | 2012-12-03 | 2015-06-09 | Hitachi, Ltd. | Computer system and method of controlling computer system |
US10031820B2 (en) * | 2013-01-17 | 2018-07-24 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Mirroring high performance and high availablity applications across server computers |
US9606944B2 (en) * | 2014-03-20 | 2017-03-28 | International Business Machines Corporation | System and method for computer memory with linked paths |
US11109017B2 (en) | 2018-09-12 | 2021-08-31 | Semiconductor Components Industries, Llc | Systems and methods for fault detection in image sensor processors |
JP2021026375A (ja) * | 2019-08-01 | 2021-02-22 | 株式会社日立製作所 | ストレージシステム |
CN111708329A (zh) * | 2020-05-18 | 2020-09-25 | 武汉华中数控股份有限公司 | 一种智能化数控***及方法 |
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 | 交換機システムにおける非常再開処理方式 |
US5195100A (en) | 1990-03-02 | 1993-03-16 | Micro Technology, Inc. | Non-volatile memory storage of write operation identifier in data sotrage device |
US5140592A (en) | 1990-03-02 | 1992-08-18 | Sf2 Corporation | Disk array system |
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 |
JP3014494B2 (ja) | 1991-06-11 | 2000-02-28 | 三菱電機株式会社 | デュアルポートディスク制御装置 |
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 |
US5915082A (en) * | 1996-06-07 | 1999-06-22 | Lockheed Martin Corporation | Error detection and fault isolation for lockstep processor systems |
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 |
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 |
US6138247A (en) * | 1998-05-14 | 2000-10-24 | Motorola, Inc. | Method for switching between multiple system processors |
US6327675B1 (en) * | 1998-07-31 | 2001-12-04 | Nortel Networks Limited | Fault tolerant system and method |
US6085332A (en) | 1998-08-07 | 2000-07-04 | Mylex Corporation | Reset design for redundant raid controllers |
-
2001
- 2001-03-15 US US09/810,108 patent/US6708285B2/en not_active Expired - Fee Related
-
2002
- 2002-03-08 GB GB0205555A patent/GB2375412B/en not_active Expired - Fee Related
- 2002-03-15 JP JP2002072619A patent/JP2002358210A/ja not_active Withdrawn
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006120119A (ja) * | 2004-10-20 | 2006-05-11 | Seagate Technology Llc | 二重制御装置を有する冗長データ記憶システムおよびその動作方法 |
JP2021140402A (ja) * | 2020-03-04 | 2021-09-16 | 株式会社日立製作所 | ストレージシステム及びその制御方法 |
JP7145902B2 (ja) | 2020-03-04 | 2022-10-03 | 株式会社日立製作所 | ストレージシステム及びその制御方法 |
Also Published As
Publication number | Publication date |
---|---|
GB2375412B (en) | 2005-03-23 |
US20020133740A1 (en) | 2002-09-19 |
US6708285B2 (en) | 2004-03-16 |
GB0205555D0 (en) | 2002-04-24 |
GB2375412A (en) | 2002-11-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2002358210A (ja) | コントローラリセットを処理する方法、及びコントローラリセットを処理するシステム及び方法を有する冗長コントローラデータ格納システム | |
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 | |
US7549020B2 (en) | Method and apparatus for raid on memory | |
US7496786B2 (en) | Systems and methods for maintaining lock step operation | |
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 | |
JP3732440B2 (ja) | ミラーリング・デバイス群に格納されているデータの一貫性を維持する方法および装置 | |
US5740397A (en) | IDE disk drive adapter for computer backup and fault tolerance | |
US20090006745A1 (en) | Accessing snapshot data image of a data mirroring volume | |
EP1736879A2 (en) | DIsk array apparatus and method for controlling the same | |
US20100162043A1 (en) | Method, Apparatus, and System for Restarting an Emulated Mainframe IOP | |
TWI453592B (zh) | 利用儲存區域網路回復電腦系統的系統及方法 | |
KR20180086129A (ko) | 정보 처리장치, 그 제어방법, 및 기억매체 | |
US6931519B1 (en) | Method and apparatus for reliable booting device | |
JP2001356968A (ja) | 故障許容データ格納システムおよび故障許容データ格納システムの動作方法 | |
US7260680B2 (en) | Storage apparatus having microprocessor redundancy for recovery from soft errors | |
JP2006133926A (ja) | ストレージ装置 | |
CN113342262B (zh) | 用以进行全快闪存储器阵列伺服器的碟管理的方法与设备 | |
CN113868000B (zh) | 一种链路故障修复方法、***及相关组件 | |
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 | |
JPH11154058A (ja) | ディスクアレイ装置及びデータ保守方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050309 |
|
A761 | Written withdrawal of application |
Free format text: JAPANESE INTERMEDIATE CODE: A761 Effective date: 20070227 |