JP4945047B2 - 柔軟なリモート・データ・ミラーリング - Google Patents
柔軟なリモート・データ・ミラーリング Download PDFInfo
- Publication number
- JP4945047B2 JP4945047B2 JP2002511168A JP2002511168A JP4945047B2 JP 4945047 B2 JP4945047 B2 JP 4945047B2 JP 2002511168 A JP2002511168 A JP 2002511168A JP 2002511168 A JP2002511168 A JP 2002511168A JP 4945047 B2 JP4945047 B2 JP 4945047B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- local
- remote
- mirroring
- mirroring unit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 239000000872 buffer Substances 0.000 claims abstract description 173
- 238000003860 storage Methods 0.000 claims abstract description 116
- 238000000034 method Methods 0.000 claims abstract description 83
- 230000008859 change Effects 0.000 claims description 47
- 230000008569 process Effects 0.000 claims description 17
- 238000013500 data storage Methods 0.000 claims description 6
- 230000003139 buffering effect Effects 0.000 abstract description 19
- 239000000835 fiber Substances 0.000 description 26
- 238000012360 testing method Methods 0.000 description 26
- 238000013459 approach Methods 0.000 description 22
- 238000011084 recovery Methods 0.000 description 20
- 238000005192 partition Methods 0.000 description 19
- 230000005540 biological transmission Effects 0.000 description 18
- 230000009977 dual effect Effects 0.000 description 14
- 238000007726 management method Methods 0.000 description 11
- 241000863480 Vinca Species 0.000 description 9
- 230000008901 benefit Effects 0.000 description 9
- 239000003795 chemical substances by application Substances 0.000 description 9
- 238000012546 transfer Methods 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 238000009434 installation Methods 0.000 description 6
- 230000004044 response Effects 0.000 description 6
- 230000006978 adaptation Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 238000012544 monitoring process Methods 0.000 description 5
- 239000004606 Fillers/Extenders Substances 0.000 description 4
- 230000009471 action Effects 0.000 description 4
- 230000006399 behavior Effects 0.000 description 4
- 230000001419 dependent effect Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 239000012464 large buffer Substances 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 239000008186 active pharmaceutical agent Substances 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 3
- 238000012937 correction Methods 0.000 description 3
- 230000006378 damage Effects 0.000 description 3
- 230000007423 decrease Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000002829 reductive effect Effects 0.000 description 3
- 230000015556 catabolic process Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 125000004122 cyclic group Chemical group 0.000 description 2
- 238000006731 degradation reaction Methods 0.000 description 2
- 238000011010 flushing procedure Methods 0.000 description 2
- 230000001965 increasing effect Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 230000010076 replication Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 206010038743 Restlessness Diseases 0.000 description 1
- 230000002411 adverse Effects 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000005520 cutting process Methods 0.000 description 1
- 238000013479 data entry Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000001066 destructive effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 238000007429 general method Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000003999 initiator Substances 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000005304 joining Methods 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000036961 partial effect Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 239000000523 sample Substances 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000007619 statistical method Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 230000001502 supplementing effect Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2053—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
- G06F11/2056—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
- G06F11/2069—Management of state, configuration or failover
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2053—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
- G06F11/2056—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
- G06F11/2058—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring using more than 2 mirrored copies
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2053—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
- G06F11/2056—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
- G06F11/2064—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring while ensuring consistency
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Information Transfer Between Computers (AREA)
Description
(発明の技術分野)
本発明は、よりよいフォールト・トレランスおよび/または障害回復を提供するための、サーバまたは他のコンピュータからのディジタル・データのリモート・ミラーリングに関し、具体的には、リモート・データ・ミラーリングの柔軟性を高めるツールおよび技法に関する。
【0002】
(発明の技術的背景)
米国特許第5537533号に、主ネットワーク・サーバからリモート・ネットワーク・サーバへディジタル・データをリモート・ミラーリングするツールおよび技法が記載されている。その発明によるシステムには、主サーバ・インターフェースおよび主リンク・インターフェースを有する主データ転送ユニットと、リモート・リンク・インターフェースおよびリモート・サーバ・インターフェースを有するリモート・データ転送ユニットが含まれる。主リンク・インターフェースには、主ネットワーク・サーバに関する事前アクノレッジを生成することができるスプーフ・パケット・ジェネレータが含まれる。すなわち、このシステムは、ミラーリングされるデータが主リンク・インターフェース内の不揮発性バッファに保管された後で、ミラーリングされたデータがリモート・サーバによって保管されたことを示すアクノレッジが到着する前に、事前アクノレッジまたは「スプーフ」を主サーバに与える「スマート・バッファ」を有する。
【0003】
米国ユタ州ソルト・レーク・シティのミラリンク コーポレーション(MiraLink Corporation)社が、米国特許第5537533号の所有者である。MiraLink社は、本明細書の日付の1年以上前に、オフーサイトサーバ(Off−SiteServer)製品(OFF−SITESERVERはミラリンク社の商標である)を商業的に入手可能にした。オフーサイトサーバ製品には、地理的に離れた位置にある別のサーバに低帯域幅遠隔通信リンクを介してNovell NetWareサーバのディスクをリモート・ミラーリングする技術が含まれる(「NETWARE」は、ノヴェル・インク(Novell,Inc.)社の商標である)。
【0004】
主ネットワーク・サーバからリモート置換ネットワーク・サーバへの、データ・ミラーリングを使用するデータのリモート・ミラーリングは、データをバック・アップする強力で効率的な方法である。リモート・ミラーリングでは、元のデータから安全な距離にデータのコピーを作成し、元のデータの保管と実質的に同時にこれを行う。リモートに保管されたデータは、「ウォーム」リモート・ネットワーク・サーバすなわち、実際の障害またはシミュレートされた障害の時間の間に主サーバとして動作していることができるリモート・サーバにコピーされた場合に、障害のほぼ直後に使用可能にすることができる。
【0005】
通常のインストールでは、オフーサイトサーバ製品の使用に、ローカル・ボックス内とリモート・ボックス内のオフーサイトサーバの対が用いられる。オフーサイトサーバボックスは、全般的に米国特許第5537533号に記載されているように、特殊化されたハードウェアと、ファームウェアおよび/または他のソフトウェアとを用いて構成される。プロプラエタリ・シリアル回線によって、ローカルNetWareサーバがこれらのボックスの1つに接続される。NetWareサーバ自体は、Vincaカードを使用する(VINCAは、Vinca Corporation社の商標である)。このカードは、NetWare・ローダブル・モジュール(NLMと略す)によって駆動され、NLMは、ディスクドライバ要求をインターセプトし、シリアル回線を介してデータをローカルオフーサイトサーバボックスに送る。
【0006】
ローカルオフーサイトサーバボックスは、IDEディスク・ドライブなどの、4ギガバイト不揮発性バッファを有する。データは、このオフーサイトサーババッファに事前アクノレッジされる。ローカル・サーバのオペレーティング・システムに関する限り、第2の「ミラーリングされた」書込が、ローカルに行われる。実際には、オフーサイトサーバ製品が、NLMからこのデータを受け取り、ローカル・バッファに保管している。ローカルオフーサイトサーバボックスは、セクタおよびトラック(またはブロック・レベル)のデータ変更を、リモート位置にあるリモートオフーサイトサーバボックスにそのデータを安全に送信できるようになるまで、保管する。ローカルオフーサイトサーバボックス内のバッファは、遠隔通信リンクがローカルに処理できるものを超えるすべてのデータを保管するという点で、「スマート」でもある。このデータは、リモートオフーサイトサーバボックスがリモート副サーバに成功裡に書き込み、ローカル(主)オフーサイトサーバボックスにアクノレッジを送り返すまで、ローカルオフーサイトサーバボックスに保管される。このアクノレッジが受信された時に、ローカルオフーサイトサーバボックスが、成功裡に送信されたセクタ/トラック/ブロック・データによって占有されているローカル不揮発性バッファ内のスペースを解放する。
【0007】
オフーサイトサーバ製品は、ローカル(主)サイトでのデータ出力にV.35インターフェースを使用する。V.35は、チャネル・サービス・ユニット/データ・サービス(CSU/DSU)に接続されるシリアル遠隔通信標準規格であり、このCSU/DSUが、遠隔通信リンクとインターフェースする。リモート(副)位置は、第2のCSU/DSUを有し、このCSU/DSUが、セクタ/トラック/ブロック情報を、リモート副オフーサイトサーバボックスのV.35入力インターフェースに中継する。副オフーサイトサーバボックスは、このセクタ/トラック/ブロック・データを、副(リモート)サーバ内のもう1つのVincaカードに接続されたシリアル・ケーブルを使用して、プロプラエタリ・シリアル接続を介して出力する。リモート・サーバのデータ・ミラーリング・ソフトウェアおよびシステム・ソフトウェアは、このセクタ/トラック/ブロック情報を、リモート・サーバのディスク・ドライブに書き込み、その書込が、ローカルオフーサイトサーバボックスにアクノレッジされる。このシステムは、1時間に約300メガバイトの変更データを処理することができる。
【0008】
オフーサイトサーバ製品は、帯域幅の増加または減少がある場合、および/または遠隔通信リンクがダウンした場合を感知するのに十分にインテリジェントである。リンク・ダウンタイム期間中に、オフーサイトサーバボックスは、サーバからのデータ変更をローカル不揮発性スマート・バッファに保管することができる。リンクがアクティブになった時に、オフーサイトサーバ製品が、送信を自動的に開始する。オフーサイトサーバ製品は、使用可能な帯域幅が減るか増える時に、オンザフライでその帯域幅出力を変更することができる。上で説明した伝送のすべてに、標準ソフトウェア・チェックサム・エラー検出および訂正、および/またはハードウェア・エラー訂正コード(ECC)エラー処理も組み込まれている。
【0009】
ローカル(主)NetWareサーバでのディスク障害またはサーバ障害の場合には、上で説明した形でリモート(副)オフーサイトサーバボックスに接続された副(リモート)サーバが、ローカル(主)サーバ上のすべてのデータの完全にミラーリングされたディスク・コピーを有する。このリモート・バックアップ・コピーを、ローカル(主)サーバに復元することができる。この副リモート・サーバは、障害の場合にローカル主サーバの代役をつとめることもできる。そのような副復元および/または代役は、単純なコマンド・ラインのセットを用いて比較的すばやく実行することができる。
【0010】
要するに、オフーサイトサーバ製品および他のリモート・データ・ミラーリング技術は、ミッション・クリティカル・データおよび他の文脈の両方での、貴重なフォールト・トレランス能力および障害回復能力を提供する。それにもかかわらず、これらの既存の手法は、不必要に制限された柔軟性を有する。
【0011】
たとえば、オフーサイトサーバ製品は、Vinca Corporation社のハードウェアおよびソフトウェアの特別なバージョンを必要とする。このVinca製品の必要なバージョンは、Novell NetWareプラットフォーム以外のオペレーティング・システム/ファイル・システム・プラットフォームを全くサポートしない。必要なVincaパッケージのハードウェア・コンポーネントは、より新しくより高速なサーバおよびより大きいディスク・ボリュームをサポートしない。
【0012】
元々のオフーサイトサーバ製品は、1つのローカル・サーバを1つのリモート・サーバに接続するように設計されていた。単一のサーバだけが、所与の時点でリモート・サーバにミラーリングすることができる。異なる位置にある複数のサーバが、単一のリモート・サイトに簡単にミラーリングすることはできない。同様に、企業が、異なるオペレーティング・システムおよび/またはファイル・システムを実行する複数のローカル・サーバを有する場合に、別々のプラットフォームを動作させる各サーバは、一致するリモート・サーバにミラーリングされなければならない。
【0013】
さらに、元々のオフーサイトサーバ製品は、ローカル・サーバ上のNLMを必要とし、私有専用遠隔通信リンクを使用するように設計されていた。従来のミラーリングでは、ミラーリングされた情報をリモート位置でブート可能な形で保持するために、リモート・サーバも必要である。
【0014】
これらおよび他の制限が、原出願である米国特許出願第09/438184号に注記されている。本願は、原出願に記載の技術ならびに他の進歩を利用するために、リモート・データ・ミラーリングの追加のツールおよび技法を提供する。
【0015】
(発明の簡潔な要約)
本発明は、原出願の発明または他の実施形態と組み合わせて使用することができる、データ・ミラーリングのツールおよび技法を提供する。原出願である、仮出願でない米国特許出願第09/438184号が、本明細書に組み込まれるが、この簡単な要約では、前に強調されなかったツールおよび技法の便利について焦点を合わせる。たとえば、本発明は、ローカル−リモート役割逆転、「メディア・ノット・レディ」信号を介するホット・スタンバイ・サーバ状況の実施、複数の代替バッファ内容およびバッファリング方式、トランザクショニング、「仮想」リモート・ミラーリング・ユニットの使用を介する多対1ミラーリング、アプリケーション固有の知識なしで、アプリケーションのログ記録され分析された挙動に基づく、頻繁にアクセスされるデータの識別、および正式でない形での副サーバの使用などのツールおよび技法を提供する。本発明の他の特徴および長所は、以下の説明から完全に明白になる。
【0016】
(図面の簡単な説明)
本発明の長所および特徴が得られる形を例示するために、本発明のより具体的な説明を、添付図面に関して示す。これらの図面は、本発明の選択された態様および/またはその文脈を例示するのみであり、したがって、本発明の範囲を制限しない。
【0017】
(好ましい実施形態の詳細な説明)
本発明は、柔軟なデータ・ミラーリングに関するコンピュータ・システム、方法、および構成された記憶媒体に関する。注記したように、本願は、原出願である、仮出願でない米国特許出願第09/438184号を含む複数の出願の優先権を主張し、それらを組込み、本明細書で請求される発明は、原出願で請求された発明から利益を得る実施形態または他の実施形態と共に使用することができる。用語「発明」は、本明細書では、各明細書で請求項によって発明が定義されることの理解と共に、原出願との一貫性を有する形で使用される。特に示される場合を除いて、本願および原出願の両方で使用される他の用語は、本明細書で、原出願での使用との一貫性を有する形で使用されることを同様に意図されている。
【0018】
原出願で注記されているように、本発明は、非侵略的ミラーリング、専用の私有遠隔通信リンクを用いるか用いないミラーリング、およびリモート・ミラーリング・ユニットを支援するための宛先の専用サーバまたは別のサーバを用いるか用いないミラーリングを提供する。本発明は、複数の地理的に分散した位置にある、同一のまたは異なるオペレーティング・システムおよび/またはファイル・システムを実行するローカル・サーバからのミラーリングを含む多対1データ・ミラーリングも提供する。さらに、本発明は、ミラーリングされたデータを保持するのに1つまたは複数の外部記憶ユニットおよび/またはRAIDユニットのさまざまな組合せを使用できるようにすることによって、柔軟性を提供する。これらの話題は、原出願で具体的に対処されており、下でその議論を複写する。
【0019】
本発明は、原出願で本明細書と同様に詳細には対処されていないツールおよび技法も提供する。その例には、ミラーリング・ユニット役割逆転、サーバ・ホット・スタンバイ・モード実施形態、ミラーリングされるデータの保管のオプション、変更されたデータを伴うSCSIコマンドの保管および再生、トランザクショニング、仮想リモート・ミラーリング・ユニット、アプリケーション状態回復、およびデータ・ボリューム再同期化が含まれる。これらの話題は、所与の話題について提供される関係する情報が、必ずしも図15およびそれを直接に参照するテキストだけにあるのではないことの理解と共に、図15(原出願にはない図面)に関して述べる。
【0020】
本発明は、方法、システム、および/または構成された記憶媒体で実施することができる。明瞭に他の形で示されない限り、実施形態のタイプの1つの議論は、他の実施形態タイプにも適用される。たとえば、発明的システムの議論は、そのようなシステムを構成する発明的方法および/またはデータをミラーリングさせるためにそのようなシステムを介してデータを送る方法を理解するのにも役立ち、逆も同様である。具体的に言うと、図15に流れ図が示されているが、これは、方法に厳密に制限されるのではなく、本発明に従って構成された媒体およびシステムを例示するのにも役立つ。
【0021】
[コンピュータ及びネットワークの概要]
図1に、ローカル・サーバ102が、リモート・サーバ106への普通のルート104を介してミラーリングされるネットワーク100を示す。普通のルート104は、遠隔通信リンク自体に制限されるのではなく、モデム、データ転送ユニット、および、そのようなリンクでデータを送信し、かつ/またはそのように送信されるデータを受信するのに使用される他の普通のツールおよび技法も含まれる。具体的かつ制限なしに、普通のルート104に、米国特許第5537533号の図1に記載され、その特許で述べられたサーバ・インターフェース、リンク・インターフェース、およびDTUを含めることができる。
【0022】
さらに、普通のルート104に、Small Computer System Interface(SCSI)パフォーマンス・エクステンダまたは標準ストレージ・アクセス・ネットワーク(SAN)コネクタを含めることができる。そのようなデバイスは、非常に広い帯域幅のリンクおよび最小限の待ち時間を必要とする。そのようなデバイスは、距離によって待ち時間が導入されるので、おそらくは16kmまたは32km(10マイルまたは20マイル)の距離制限を有する傾向がある。たとえば、単一モード・ファイバ構成では、所与のSCSIエクステンダの待ち時間から、データ・ソースと宛先の間で、おそらく15kmの距離が許容される。マルチモード・ファイバを使用することによって、使用可能な距離が、待ち時間のゆえにおそらくこの2/3に減る。そのような接続は、10分の数秒を超えない遅延または割込みをほとんどまたは全く許容せず、あるいは、せいぜい数秒の遅延を優雅に処理できるだけである。これと同一の問題が、メインフレームのチャネル・エクステンダにもあてはまる。
【0023】
図示のネットワーク100は、従来のツールおよび技法によるミラーリング用に構成されているが、本発明に従う適応および使用に適する多数の可能なネットワークの1つでもある。そのような適応には、使用される本発明の特定の実施形態に応じて、さまざまなステップが含まれる。たとえば、適応に、もはや必要でない場合のリモート・サーバ106からの切断、本発明に従ってリンクされるミラーリング・ユニットによる普通のミラーリング・ルート104の補足または置換、ローカル・サーバ102からのミラーリングNLMまたは他の専門ソフトウェアのアンロード、やはりミラーリングされるより多くのローカル・サーバの追加、および/または、外部記憶ボリュームおよび/またはRedundant Array of Independent Disks(RAID)ユニットの形のリモート記憶装置の追加を含めることができる。しかし、最低限でも、適応に、通常は、少なくとも1つのローカル・ミラーリング・ユニットおよび少なくとも1つのリモート・ミラーリング・ユニットの追加が含まれ、このリモート・ミラーリング・ユニットは、本発明による動作のために互いにリンクされることが可能である。
【0024】
適応の前および/または後に、ネットワーク100を、LANまたはWANあるいはインターネットまたはイントラネットの部分を含む他のネットワーク108に、ゲートウェイまたは類似する機構を介して接続することができ、これによって、より大きいネットワークが形成される。図示のネットワーク100では、ローカル・サーバ102が、通信リンクまたはネットワーク信号線110によって、1つまたは複数のネットワーク・クライアント112に接続される。他の適当なネットワークに、マルチサーバ・ネットワークおよびピアツーピア・ネットワークが含まれる。特定のネットワーク内のサーバ102およびクライアント112は、ユニプロセッサ・マシン、マルチプロセッサ・マシン、またはクラスタ化プロセッサ・マシンとすることができる。サーバ102およびクライアント112のそれぞれに、ランダム・アクセス・メモリなどのアドレス可能記憶媒体が含まれる。
【0025】
適当なネットワーク・クライアント112には、制限なしに、パーソナル・コンピュータ、ラップトップ機114、携帯情報端末および他のモバイル・デバイス、およびワークステーション116が含まれる。信号線110には、より線対、同軸ケーブル、または光ファイバ・ケーブル、電話回線、衛星回線、マイクロ波リレー、変調されたAC電源線、RF接続、ネットワーク・リンク、ダイヤルアップ・リンク、赤外線リンクなどのポータブル・リンク、および/または当業者に既知の他のデータ伝送「ワイヤ」または通信リンクを含めることができる。リンク110は、従来の信号または新規の信号を実施することができ、具体的には、本明細書に記載のデータ・ミラーリング用の新規の一連のコマンドおよび/またはデータ構造を実施することができる。リモート・サーバ106は、普通のルート104を介して得るミラーリングされるデータを、外部ハード・ディスクおよび/またはRAIDサブシステム118などの接続された記憶手段に保管することができる。
【0026】
[柔軟なミラーリング・ユニット・システムの例]
図2に、本発明によるシステム内の本発明を示す。前に述べた従来の手法と異なって、この図によるシステムは、リモート・サーバを必要としない。ローカル・サーバ200またはなんらかの他のホスト200が、ローカル・リンク202を介してローカル・ミラーリング・ユニット204と通信する。ローカル・ミラーリング・ユニット204は、ジャーニー・リンク206を介してリモート・ミラーリング・ユニット208と通信する。ローカル・ミラーリング・ユニットに、ローカル・サーバ200へデータを事前アクノレッジするためのスプーフ・パケット・ジェネレータと、ミラーリングされたデータがリモート位置で保管される前にそのデータを保持する不揮発性データ・バッファ210を含めることができる。リモート・ミラーリング・ユニットは、ジャーニー・リンク206を介してローカル・ミラーリング・ユニット204から受け取ったミラーリングされるデータの宛先不揮発性記憶装置を有する。リモート・ミラーリング・ユニットは、16km(10マイル)未満、少なくとも16km(10マイル)、または少なくとも160km(100マイル)など、さまざまな距離だけローカル・サーバ200から物理的に離すことができる。これらの距離は、単なる例である。というのは、本発明が、ジャーニー・リンク206を完全に活用することができ、本発明によるシステムが、固有の距離制限を有しないからである。個々のミラーリング・ユニットを、図2から12に示された例示的システムでの柔軟性の例示に関して、また、その構成要素および動作全般に関して、下で詳細に説明する。
【0027】
しかし、ローカル・ミラーリング・ユニット204のいくつかの実施形態に、SCSIエミュレーション・ソフトウェアおよび/またはハードウェアが含まれ、ローカル・リンク202をSCSI接続にすることができ、このSCSI接続を介して、ローカル・ミラーリング・ユニット204が、ローカル・サーバ200または他のホスト200にとって、SCSIディスクまたは他の普通のSCSIデバイスに見えることを注記することが役立つであろう。これは、ローカル・ミラーリング・ユニット204内で、より普通のイニシエータ・モードではなくターゲット・モードで動作しているSCSIホスト・アダプタを使用することによって達成することができる。そのようなターゲット・モードを有する適切なSCSIホスト・アダプタには、少なくともAdaptec社の2940UWアダプタおよびQLogic社のQLA−1040アダプタが含まれる。類似する形で、ローカル・リンク202を、ファイバ・チャネル接続、Universal Serial Bus(USB)接続、メインフレーム・チャネル・エクステンダ、V.35 CSU/DSU接続、FireWire(IEEE 1394)接続、メモリ・タイプ(たとえば、ディスクではなく、AS/400ミラー・メモリ)、IDEバス、PCMCIA接続、シリアル接続、イーサネット接続、Fiber Distributed Data Interface(FDDI)接続、または、ディスクおよび/またはRedundant Array of Independent Disks(RAID)サブシステムをサーバに接続する別の標準バスとすることができる。したがって、ミラーリングされるデータが、ジャーニー・リンク206を介してリモート位置に送られるのではなく単純に別のローカル・ディスクに送られるかのように、普通のミラーリング(別のローカル・ディスクへのコピーという意味での)ハードウェアおよび/またはソフトウェアを、ローカル・サーバ200内で使用することができる。
【0028】
前に述べた普通の手法の長距離リンクと異なって、ジャーニー・リンク206は、専用の私有遠隔通信リンクである必要がない。そのようなリンクは、いくつかの実施形態で使用することができるが、本発明は、プロトコルのルータビリティまたは非ルータビリティにかかわらずに、イーサネット、FDDI、V.35、または他のデータリンク・プロトコル、インターネット・プロトコル(IP)または他のネットワーク・プロトコル、および/またはユーザ・データグラム・プロトコル(UDP)、転送制御プロトコル(TCP)、または他のトランスポート・プロトコルを使用する、ネットワークまたはインターネットなどの一連のネットワークを介して通信するミラーリング・ユニット204および208も提供する。したがって、望まれる場合に、2つのミラーリング・ユニット204および208を、数10kmまたは数百kmだけ離すことができる。
【0029】
ジャーニー・リンク206には、普通のリンク104およびデータ獲得ポイントとしてのスプーフィング・ローカル・ミラーリング・ユニット204を介して供給することができる。しかし、ジャーニー・リンク206は、普通のリンク104によって課せられることがしばしばである、広い帯域幅および低い待ち時間の要件を必ずしも課さない。たとえばSANと異なり、ジャーニー・リンク206を使用するシステムは、制限されない距離だけ離れたソースから宛先へ、ミラーリングされるデータを送信することができる。ジャーニー・リンク206は、通常はインターネットまたは広域ネットワークを横切る時に行うように、共用される帯域幅を提供することもできる。さらに、ジャーニー・リンク206および/またはミラーリング・ユニットは、発明的システムに、割込みおよび切断に関する比較的高い許容範囲という長所を提供する。
【0030】
図示のリモート・ミラーリング・ユニット208は、大きいバッファ212を有する。その結果、リモート・ミラーリング・ユニット208は、ローカル・サーバ200または他のホスト200の完全なボリュームをバッファリングすることができる。いくつかの実施形態では、ローカル・ミラーリング・ユニット204にも、大きいバッファが含まれる。たとえば、一実施形態では、ローカル・サーバ200のボリュームおよび大きいバッファ(ローカルおよびリモート)が、それぞれ、不揮発性記憶装置に1テラバイトまでのデータを保持することができる。このバッファリングは、たとえば、ローカル・ミラーリング・ユニット204またはリモート・ミラーリング・ユニット208内でQLogic QLA−1040アダプタを使用して、実質的な修正の必要がない1テラバイトまでのデータを制御することによって、達成することができる。したがって、ローカル・サーバ200の完全なボリューム・イメージを、ミラーリング・ユニット内のバッファに保管することができる。
【0031】
追加のデータ回復能力のために、任意選択のローカル・ミラー230も作成することができ、これは、一般に、一貫性があり使用可能であるが必ずしも全体が最新ではないという意味で、「フル」ローカル・ミラーである。このローカル・ミラーリングは、さまざまな形で達成することができる。これには、実際に地理的にローカル・ホスト200に近い「リモート」ディスク・サブシステムにデータをミラーリングするのに、第2のローカル・ミラーリング・ユニット204またはマルチポート式ローカル・ミラーリング・ユニット204の第2ポートを使用することと、ローカル・ミラーリング・ユニット204内でそのユニット204のディスク・エミュレーション層の下でデータを二股にわけ、これによって、SCSIまたは類似するバスを介してローカルに接続されたディスク・サブシステムに送られる別のコピーを作成すること(第1のコピーは、ジャーニー・リンク206を介してリモート・ミラーリング・ユニットに送られる)と、ローカル・ミラーリング・ユニット204と共に他の形で普通のツールおよび技法を使用して、ローカル・ミラー230を作成し、維持することが、制限なしに含まれる。
【0032】
ミラー230には、ハードウェア・エラーまたはソフトウェア・エラーの場合の回復を可能にするために、サーバ200のコピーが含まれる。しかし、ローカル・ミラー230は、リモートではなくローカルなので、天災、社会不安、テロリストの攻撃、物理的破壊、および他の地理的に局所化されたサーバ200への危険に対する実質的な保護を提供しない。したがって、ローカル・ミラー230は、ローカル・ミラー230に別のミラーリング・ユニット204が含まれるか、ローカル・ミラー230が他の形で本発明を実施する場合であっても、リモート・ミラーリングと同程度のデータ保護を提供しない。ローカル・ミラー230は、経路104などの普通のリンクまたは本発明による新規のリンクを含めることができる経路232によってミラーリング・ユニット204に接続される。ローカル・ミラー230は、他の図に明示的に図示されてはいないが、1つまたは複数のローカル・ミラーを、他の図に示されたシステムまたは本発明による他のシステムと共に使用することもできる。
【0033】
たとえば、1つの手法では、Nonstop Networks Limited社の技術または他の技術を使用して、2つのサーバの間でミラーリングを行い、ローカル・ミラーリング・ユニットが、副サーバの唯一の(主)ディスク・サブシステムとして使用される。もう1つの手法では、ローカル・ミラーリング・ユニットをホスト200用の唯一のディスク・サブシステムとて使用することによって、すべてのミラーリングをミラーリング・ユニットの対の内部にすることができ、ローカル・ミラー230が、主ディスクになり、リモート・ミラーが、唯一の真のミラーとして働く。この最後の手法は、より低い保証の構成であるが、より低いコストでより高い性能を提供することもできる。
【0034】
図3は、ローカル・サーバ200が、ローカル・リンク202を介してローカル・ミラーリング・ユニット204と通信するシステムを示す図である。ローカル・ミラーリング・ユニット204は、ジャーニー・リンク206を介してリモート・ミラーリング・ユニット308と通信する。ローカル・サーバ200のボリューム全体からのデータを保持することができる大きい不揮発性バッファ212を有するリモート・ミラーリング・ユニット208と異なって、リモート・ミラーリング・ユニット308は、数ギガバイト、たとえば4ギガバイトだけを保持するバッファ310など、比較的小さい不揮発性バッファ310だけを有する。
【0035】
しかし、図3によるシステムには、関連する不揮発性内部記憶装置または不揮発性外部記憶装置を有するリモート・サーバ300が含まれる。これを例示するために、図3に、ある点でリモート・サーバ300によって制御することができるRAIDユニット312が示されている。RAIDユニット312は、コンピュータ300の動作中にRAIDユニット312内の障害を発生したドライブを取り出し、交換できることを意味する「ホットスワップ可能」である。置換ドライブのファイル・システム構造および他のデータは、その後に、自動的に構築される。RAIDユニット312は、いくつかの場合に、図3でRAIDユニット312からサーバ300への矢印によって示されるように、サーバ300の一部または、サーバ300上の専用のミラーリング・ソフトウェアを含む手段などの普通の手段によってサーバ300に接続されるとみなすことができる。
【0036】
しかし、RAIDユニット312を、下で説明し、図14に示されているように、構成1400の二重ホスト接続によってリモート・ミラーリング・ユニット308およびサーバ300に接続することもできる。二重ホスト接続を用いると、ミラーリングだけに使用される受動リモート・サーバ300、リモートRAIDユニット312、または他のリモート・ディスク・サブシステムと、読取要求をサービスするのに能動的に使用されるローカル・ミラーおよび/またはローカル・ホスト200ディスクとを有する第1の「通常ミラーリング」状態から、リモートRAIDユニット312または他のリモート・ディスク・サブシステムでミラーリングされたデータからの読取要求をサービスする能動リモート・サーバ300を有する第2の「回復」状態への切替が可能になる。
【0037】
第1の(通常のミラーリング)状態では、リモート・ミラーリング・ユニット308が、たとえばイーサネットおよび/またはTCP/IP接続206を使用して、ローカル・ミラーリング・ユニット204からデータを受け取る。図2に関して注記したように、ローカル・リンク202は、SCSIバス、USB、ファイバ・チャネル、または類似する接続とすることができる。リモート・ミラーリング・ユニット308は、リモート・リンク302およびリモート・ミラーリング・ユニット308を介してリモート・サーバ300にホットスワップ可能RAIDユニット312への後続の保管のためにデータを転送するか、二重ホスト接続1400が使用されている場合にリモート・ミラーリング・ユニット308からRAIDユニット312に直接に、データを転送する。リモート・リンク302は、たとえばSCSIバス接続とすることができ、したがって、リモート・ミラーリング・ユニット308は、リモート・サーバ300にとってたとえばSCSIディスクに見え、このSCSIディスクが、リモート・サーバ300によってもう1つの「ディスク」すなわちRAIDユニット312にミラーリングされる。リモート・リンク302は、シリアル接続、イーサネット接続、FDDI接続、USB接続・ファイバ・チャネル接続、または他の非プロプラエタリ接続とすることもできる。
【0038】
ローカル・ミラーリング・ユニット204は、リモート・ミラーリング・ユニットの小さいバッファ310に類似するか同一である(そこに保管される特定のデータ以外に関して)不揮発性バッファを有する。ローカル・サーバ200からのデータは、ローカル・ミラーリング・ユニット204のバッファに事前アクノレッジされる。主サーバ200に関する限り、第2の「ミラーリングされた」書込は、ローカルに発生したものである。実際には、ローカル・ミラーリング・ユニット204が、このデータを受け取り、このローカル・バッファに保管した。ローカル・ミラーリング・ユニット204は、ローカル・ミラーリング・ユニット204がジャーニー・リンク206を介してリモート・ミラーリング・ユニット308に安全にデータを送信できるまで、このセクタおよびトラック変更データ(または類似するブロック・レベル・データ)を保管する。ローカル・ミラーリング・ユニット204内のスマート・バッファに、ジャーニー・リンク206がローカルに処理できるものに関するすべてのデータが保管される。そのようなデータは、リモート・ミラーリング・ユニット308がリモート・サーバ300に成功裡に書き込み、ローカル・ミラーリング・ユニット204にアクノレッジを送り返すまで、ローカル・ミラーリング・ユニット204内に保管される。このアクノレッジを受信した時に、ローカル・ミラーリング・ユニット204は、成功裡に送信されたセクタ/トラック/ブロック・データを、ローカル不揮発性バッファから除去する。普通のシステムと異なって、サーバ200および300の両方が、標準のファイル・システムおよびオペレーティング・システム・ソフトウェアと異なって、NLMまたは特にデータ・ミラーリングのために設計された他のソフトウェアを必ずしも必要としない。
【0039】
図4に、図面で同一の符号の使用によって示されるように、上で述べた複数の構成要素を有するシステムを示す。しかし、図4のシステムでは、リモート・ミラーリング・ユニット408に、小さい不揮発性バッファ310と大きい不揮発性バッファの両方が含まれ、大きいバッファは、リモート・ミラーリング・ユニット408に直接に接続されるホットスワップ可能RAIDユニット312として実施される。小さいバッファ310は、ジャーニー・リンク206を介して受け取られるデータのバッファリングに使用され、そのデータを、ローカル・ミラーリング・ユニット204にアクノレッジできるようにし、そのデータがリモート・ミラーリング・ユニット408によって大きいバッファ312に保管されるまでデータがバッファリングされる。リモート・サーバは不要である。
【0040】
図5に、複数のローカル・サーバ200が、リモート・ミラーリング・ユニット508に書き込むシステムを示す。この図および他所で、ローカル・サーバ200への言及は、サーバでないホスト200をも一般的に含むものとして理解されたい。すなわち、本発明は、ミラーリング・ユニット204に接続されるすべてのホスト・コンピュータ・システム200のミラーリングに使用することができる。サーバは、適切なホスト200の広く認識される例であるが、他の適切なホスト200に、クラスタ、サーバでないコンピュータ、メインフレーム、および、ストレージ・アクセス・ネットワーク(SAN)またはネットワーク接続ストレージ(NAS)データ・ソースが含まれる。ローカル・サーバ200または他のホスト200は、16km(10マイル)未満、少なくとも16km(10マイル)、または少なくとも160km(100マイル)など、さまざまな距離だけ互いに物理的に離すことができる。この図の当のシステムでは、特定のシステム内の各ローカル・サーバ200が、同一のオペレーティング・システムおよびファイル・システム・プラットフォームに頼るが、図5による異なるシステムが、異なるプラットフォームを使用することができる。たとえば、各サーバ200を、そのようなシステムでNovell NetWareサーバとすることができ、各サーバ200を、別のそのようなシステムでNTファイル・システム(NTFS)を使用するMicrosoft Windows NTサーバとすることができる。
【0041】
システム内の各ホスト200は、SCSI、ファイバ・チャネル、USB、シリアル信号線、あるいは他の標準記憶サブシステム接続または他の周辺接続202によって、それ自体のローカル・ミラーリング・ユニット204に接続される。ローカル・ミラーリング・ユニット204は、ジャーニー・リンク206によって、単一のリモート・ミラーリング・ユニット508に接続される。リモート・ミラーリング・ユニット508は、ローカル・ミラーリング・ユニット204ごとに、SCSI、ファイバ・チャネル、USB、または類似するコントローラ・カードを有する。
【0042】
各ローカル・ミラーリング・ユニット204からのデータは、リモート・ミラーリング・ユニット508内のSCSI、ファイバ・チャネル、USB、または類似する接続によって、RAIDユニットのグループ512内の個々のホットスワップ可能RAID記憶ユニット312に直接に(すなわち、リモート・サーバを介さずに)転送することができる。RAIDユニット312は、ジャーニー・リンク206への接続用のイーサネット・カードを含む部分など、リモート・ミラーリング・ユニット508の少なくとも一部に対して物理的に外部とすることができる。しかし、リモート・ミラーリング・ユニット508は、パッケージングではなく機能性によって定義される。具体的に言うと、RAIDユニット312は、他の形で示されない限り(たとえば図14の議論など)、リモート・ミラーリング・ユニット508の一部とみなされる。各RAID記憶ユニット312は、リモート・ブート可能ボリュームを有し、データは、セクタ/トラックまたはブロックの形で書き込まれる。図示のリモート・ミラーリング・ユニット508には、ジャーニー・リンク206を介して受け取られたデータのアクノレッジおよびバッファリングを可能にするための小さいバッファ310も含まれる。
【0043】
図6に、図5に示されたシステムに類似するが、リモート・ミラーリング・ユニット608が、外部ブート可能記憶ボリュームのグループ616内の外部ブート可能記憶ボリューム614に書き込むシステムを示す。同一のプラットフォームで実行中のローカル・サーバ200が、実際にはローカル・ミラーリング・ユニット204である「ディスク」に書き込み、このローカル・ミラーリング・ユニット204が、そのデータをリモート・ミラーリング・ユニット608に書き込む。リモート・ミラーリング・ユニット608は、SCSI、ファイバ・チャネル、USB、または類似するコントローラ・カードと、ローカル・ミラーリング・ユニット204のそれぞれに対応するブート可能記憶ボリューム614を有する。各ローカル・ミラーリング・ユニット204からのデータは、リモート・ミラーリング・ユニット608から、SCSIバスまたは他のデータ信号線を使用して、対応する記憶ボリューム614に直接に転送される。各ボリューム614は、リモート・ブート可能ボリュームであり、データは、セクタ/トラックまたはブロックの形で書き込まれる。
【0044】
全般的に図6によるシステムの代替実施形態および他のシステムで、ミラーリングされたデータを対応する別々のディスク614(たとえば図6のように)または別々のRAIDユニット312(たとえば図5のように)に保持するのではなく、別々の区画を使用して、めいめいのローカル・サーバ200のミラーリングされたデータを保持することができる。さまざまな多対1システムで、新しい接続が行われる時にそれ自体をforkするプロセスを始動し、IPCまたは他の機構を使用する複数のミラーリングの試みからボリューム・ミラーをロックすることが必要になる場合がある。
【0045】
図7に、リモート・ミラーリング・ユニット708に、個々の外部記憶ボリューム614およびRAIDユニット312の両方が含まれるシステムを示す。ミラーリングされるデータは、リモート・ミラーリング・ユニット708によって、記憶サブシステム312および614の両方に保管されて、データが必要な時に使用可能になることの余分な保証が提供される。
【0046】
図7には、複数のローカル・ミラーリング・ユニット204が、1つのリモート・ミラーリング・ユニット708に書き込み、それぞれ図5および図6に示されているように、ミラーリングされるデータが複数のリモート記憶ユニット312または614に分割されるのではなく、複数のローカル・サーバ200のすべてのミラーリングされるデータが、リモート・ミラーリング・ユニット708に直接にマウントされる1つの大きい記憶ボリューム(さまざまな実施形態で、312または614もしくはその両方)に送られるシステムも図示されている。リモート・ミラーリング・ユニット708によって使用されるボリュームは、ローカル・ミラーリング・ユニット204ごとに1区画を有する。各区画は、リモート・ブート可能「ボリューム」を提供し、データは、通常通りに、セクタ/トラックまたはブロックの形で書き込まれる。
【0047】
やはり図7に示された代替システムでは、ミラーリングされるデータが、リモート・ミラーリング・ユニット708に直接に接続された複数の記憶ユニットの間で分割され、所与の記憶ユニットが、所与のローカル・ミラーリング・ユニット204のミラーリングされるデータを保持する。しかし、RAIDユニットだけ(図5)または外部ディスクだけ(図6)を使用するシステムとは異なって、外部ディスク614およびRAIDユニット312の混合が使用される。たとえば、外部ディスク614が、第1のローカル・ミラーリング・ユニット204からのデータを保持し、RAIDユニット312が、第2のローカル・ミラーリング・ユニット204からのデータを保持する。そのようなシステムでは、リモート・ミラーリング・ユニット708が、各ローカル・ミラーリング・ユニット204に対応するSCSI、ファイバ・チャネル、USB、または類似するコントローラ・カードを有し、各ローカル・ミラーリング・ユニット204からのデータが、SCSI、ファイバ・チャネル、USB、または類似する通信信号線を介して、個々の外部ホットスワップ可能RAIDユニット312または外部ブート可能ドライブ614に直接に(サーバ300などのサーバなしで)転送される。
【0048】
図8に、図5に関して説明したシステムに似たシステムを示す。しかし、図8のシステムでは、ローカル・サーバ200が、符号822、824、および826の存在によって示されるように、異なるプラットフォームに頼る。もちろん、この図または他の図によるシステムは、必ずしも、正確に3つのローカル・サーバ200および対応するローカル・ミラーリング・ユニット204を有するのではなく、各対にサーバ200および対応するローカル・ミラーリング・ユニット204が含まれる、複数の対を有するだけである。たとえば、図8による1つのシステムに、Novell NetWareサーバ822と、Microsoft Windows NTサーバ824が含まれるが、図8による別のシステムに、2つのNovell NetWareサーバ822、826およびMicrosoft Windows NTサーバ824が含まれる。
【0049】
図9に、図5および図8に関して説明したシステムに似たシステムを示す。しかし、図5と異なって、ローカル・サーバ200が、異なるプラットフォームに頼り、図8と異なって、リモート・ミラーリング・ユニットが、RAIDユニット312のグループ512ではなく、外部ディスク614のグループ616を使用するユニット608である。
【0050】
図10に、図7に関して述べたシステムに似たシステムを示す。しかし、図10によるシステムのローカル・サーバ200は、異なるプラットフォームに頼る。図7と同様に、ローカル・ミラーリング・ユニット204を、いくつかのシステムで、区画または記憶ユニットにマッピングすることができる。区画にマッピングする時に、ローカル・ミラーリング・ユニット204を、RAIDユニット312内の区画、外部ドライブ614内の区画、または外部ドライブ614にもミラーリングされるRAIDユニット312内の区画にマッピングすることができる。ローカル・ミラーリング・ユニット204を記憶ユニットにマッピングする時に、1つまたは複数のローカル・ミラーリング・ユニット204が、リモート・ミラーリング・ユニット708を介して対応する外部ドライブ614にデータを送ることができ、1つまたは複数の他のローカル・ミラーリング・ユニット204が、リモート・ミラーリング・ユニット708を介して対応するRAIDユニット312にデータを送る。
【0051】
図11に、データが複数のリモート位置にミラーリングされるシステムを示す。そのようなシステムは、図5から10に「多対1」ミラーリング・システム(複数のローカル・サーバが1つのリモート宛先にミラーリングされる)が示されているが、図11に「1対多」ミラーリング・システム(1つのローカル・サーバが複数のリモート宛先にミラーリングされる)が示されているという意味で、図5から10に示されたシステムの対照物である。一般に、ローカル・ミラーリング・ユニット204は、すべてが同一のデータをミラーリングするが、複数のローカル・ミラーリング・ユニット204を使用することによって、少なくとも1つのジャーニー・リンク206を介するミラーリングを、所与のローカル・ミラーリング・ユニット204が使用不能である場合にも中断されずに継続できるようになる。ローカル・リンク202は、すべてが同一の接続タイプとすることができ、あるいは、異なる接続を使用することができる。たとえば、1つのローカル・リンク202をSCSI接続とし、もう1つのローカル・リンク202を、USB接続とすることができる。ジャーニー・リンク206も、均一とするか変更することができる。同様に、リモート・ミラーリング・ユニットは、それぞれが同一の構成要素を有する(たとえば、それぞれがRAIDユニット312を有する)ものとするか、異なる位置の異なる構成要素を使用することができる。
【0052】
図12に、データがやはり複数のリモート位置にミラーリングされるという点で図11に示されたシステムに似たシステムを示す。しかし、図12のローカル・ミラーリング・ユニット204は、マルチポート・ミラーリング・ユニットである。すなわち、このミラーリング・ユニットは、普通のマルチポート・サーバの同時接続に似た形で、複数のジャーニー・リンク206に同時に接続することができる。マルチポート・ミラーリング・ユニット204は、ホスト200からのミラー・データを、アクティブ接続206のそれぞれを介して送り、これによって、互いに数km離れたものとすることができる複数のリモート位置にホスト200をミラーリングするのを助ける。マルチポート・ローカル・ミラーリング・ユニット204は、1つのローカル・バッファだけを必要とし、他のシステムのミラーリング・ユニット204と同様に、任意選択として完全なローカル・ミラー230が含まれる。
【0053】
[ミラーリング・ユニットについての追加情報]
ミラーリング・ユニットの構成要素および動作を、図2から12に関して上で説明した。下で提供する追加情報の所与の部分は、必ずしも本発明によるすべてのシステム内のすべてのミラーリング・ユニットに関係しないが、この追加情報は、それでも、ミラーリング・ユニットが、データが正しくミラーリングされていることを保証する責任を負う人および企業にどのようにして高い柔軟性を提供するかを理解するのを助ける。
【0054】
ミラーリング・ユニットの少なくとも一部は、Novell NetWareおよび/またはMicrosoft Windows NTプラットフォームの下で動作する標準サーバ・ドライバを介する、SCSI、ファイバ・チャネル、USB、または類似する接続によって接続されたディスク・ドライブを信頼性のある形でエミュレートすることができる。他のオペレーティング・システムの下でのSCSI、ファイバ・チャネル、USB、または類似するエミュレーションも提供することができる。
【0055】
ローカル・ミラーリング・ユニットおよびリモート・ミラーリング・ユニットのそれぞれが、それに接続されたモニタ、キーボード、およびマウスを介する入出力をサポートするように構成されることが好ましい。一部のミラーリング・ユニットは、ネットワーク・アドレスを有し、そうでない場合には、ネットワーク管理者が、リモート・ワークステーション116上のウェブ・ブラウザまたは他の手段を介して、適応されたネットワーク100上の特定のミラーリング・ユニットにアクセスできるようにする。
【0056】
ミラーリング・ユニットは、シンプル・ネットワーク管理プロトコル(SNMP)対応であることが好ましい。ネットワーク管理者は、ローカルとリモートの両方のミラーリング・デバイスにリモート・アクセスすることができる。ミラーリング・ユニット204のソフトウェアが、モニタリング・ユーティリティへのインターフェースを提供する。具体的に言うと、各ローカル・ミラーリング・ユニット204は、ユニット240が、ローカル・サーバ200への書込/読取の回数、各ローカル・サーバ200の状況、各ローカル・サーバ200の再起動/ウォーム・スタートの回数などを追跡し、必要な時にSNMPトラップを生成するという点で、ネットワーク・エージェントのように動作する。データの下記の部分も、ローカル・ミラーリング・ユニット204によって管理者に提供することができる:現在バッファ210内にあるブロックの数、バッファ210が満杯になり、かつ/またはある指定された閾値を超えて書き込まれる時の警告、サーバ200が起動してから送信されたブロックの数、およびサーバ200が起動してから受信されたブロックの数。
【0057】
一部のローカルミラーリング・ユニット204は、増分ダイヤルアップ・オプションも有する。顧客が、ダイヤルアップ接続を用いるミラーリング・ユニット204を使用しており、常時接続することを望まない場合に、ユニット204は、指定された時刻にジャーニー・リンク206を介してデータを送信するオプションを提供する。また、ローカル・ミラーリング・ユニット204は、適応されたネットワーク100またはジャーニー・リンク206の別の部分でのトラフィックが多い期間中にデータの送信を許可しない設定を有することができる。ローカル・ミラーリング・ユニット204内のバッファ210は、これらの非送信期間中にローカル・サーバ200から受け取るデータをバッファリングするのに十分に大きいものでなければならない。
【0058】
より一般的には、ローカル・ミラーリング・ユニット204は、データ転送速度、信頼性、および互換性に関して、高速RAIDディスク・サブシステムの性能をサーバ200上の既存のプラットフォームと一致させることが好ましい。主にソフトウェアでの実施形態が、これらの性能目標を満たす可能性が少ないので、ローカル・ミラーリング・ユニット204に、特殊目的のハードウェアが含まれることが好ましい。必要なファームウェアを含む適切なソフトウェアおよびハードウェアの設計および構成は、普通のミラーリング経路104と、本明細書で識別されるSCSIコントローラまたは類似するSCSI、ファイバ・チャネル、USB、または類似するコントローラと、バッファ210、212、310、ディスク614、RAIDユニット312、およびこれらのインターフェースなどの個々に既知のサブシステムと、FreeBSDドライバなどのソフトウェアと、イーサネットおよび個々に既知のネットワーク・インターフェース・カード(NIC)と、イーサネットおよびTCP/IPプロトコルなどのネットワーク・プロトコルと、本明細書で提供される説明および例と、当業者が現在または今後に入手可能な他のツールおよび技法とに特に注意して、当業者が達成することができる。
【0059】
ローカル・ミラーリング・ユニット204への書込は、通常は、アクノレッジされ、ローカル・バッファ210に書き込まれなければならず、普通の経路104または別の経路を介して完全なローカル・ミラーリングされるボリューム230にも書き込むことができるが、そのようなローカル・ミラーリングは、図3から12には明示的に図示されていない。性能のために、ローカル・ミラーリング・ユニット204またはローカル・サーバ200もしくはその両方のRAMキャッシュを介して書込をバッファリングすることが、一般に許容可能である。具体的に言うと、実施形態で、使用可能なハードウェアRAIDユニット312のキャッシュあるいは他のSCSIキャッシュ、ファイバ・チャネル・キャッシュ、USBキャッシュまたは類似するキャッシュを利用することができる。ローカル・ミラーリング・ユニット204からの読取は、一般に、ローカル・ミラー230からの正しいデータを用いてサービスしなければならない。
【0060】
ローカル・ミラーリング・ユニット204は、クラッシュまたはリブートあるいは他の種類のサービス中断の後にオンラインに戻った時に、そのローカル・バッファ210からリモート・ミラーリング・ユニット208、308、408、508、608、または708へのデータ送信を自動的に開始する。ローカル・ミラーリング・ユニット204は、SCSIリセット、ファイバ・チャネル・リセット、USBリセットまたは類似するリセットを発行してはならない。というのは、これによって、ホスト・マシン200をクラッシュさせる可能性があるからである。ローカル・ミラーリング・ユニットのバッファ210に書き込まれたデータは、ネットワークまたはジャーニー・リンク206を介して、先入れ先出しの形でリモート・ミラーリング・ユニットに送信されなければならない。これは、TCP/IPプロトコルまたは別のジャーニー・リンク・プロトコルを使用して行うことができる。リモート・ミラーリング・ユニットが、完全で一貫性のあるミラーを維持し、したがって、リモート・ボリュームが、ミラー同期状況に無関係にいつでもオペレーティング・システムによって使用可能であり、マウント可能であることが好ましい。
【0061】
少なくともFreeBSDベースのソフトウェアを使用する実施形態では、本質的なミラーリング・ハードウェアまたはミラーリング・ソフトウェアの障害がある場合のほかは、カーネル・パニックが、ローカル・ミラーリング・ユニット204で発生しないことが好ましい。ローカル・ミラーリング・ユニット204ソフトウェアの誤った構成が、システム・シャットダウンをもたらさず、ホスト・サーバ200のどのような挙動ももたらさないことが好ましい。リブートなしでミラーリング・ユニット・ソフトウェアを再構成できることが好ましく、各ソフトウェア変更に、一意のバージョン番号が付随しなければならない。したがって、ソフトウェアは、ミラーリング・ユニットによるデータ処理を中断せずに、すべての初期化情報を読み取り、管理者が使用可能なシステム呼出しを介してそれ自体を構成することが好ましい。ホスト・サーバ200が、中断されてはならない。ローカル・ミラーリング・ユニット204は、リモート・ミラーリング・ユニットがオンラインであるか否かにかかわらず、ネットワークまたは他のジャーニー・リンク206の帯域幅が使用可能であるか否かにかかわらず、ローカル・バッファ210が満杯でない限り、ホスト・システム200からの書込を受け入れることが好ましい。
【0062】
ローカル・バッファ210が満たされる場合に、ローカル・ミラーリング・ユニット204が、ローカル・ミラー230(存在する場合)の維持を継続することが好ましく、ローカル・バッファ210からデータの環状キューのデキューを継続することが好ましい。しかし、ローカル・ミラーリング・ユニット204は、ユーザ(通常は管理者)プロセスによってキューイングを再開するように指示されるまで、キューへの追加を停止することが好ましい。リブートではなくシステム呼出しによって、ユーザ空間プロセスがローカル・バッファ210のキューイングをディスエーブルでき、再イネーブルできることが好ましい。
【0063】
ミラーリング・ユニットは、ネットワークまたは他のジャーニー・リンク206の帯域幅の消失および再接続を自動検出することが好ましい。たとえば、ローカル・ミラーリング・ユニットのイーサネット・ケーブルの切断および翌日の再接続は、ローカル・ミラーリング・ユニット204が切断されている間に蓄積されるデータ変更を保持するのに十分なスペースがローカル・バッファ210にある場合に、0データ消失をもたらし、ネットワーク・オペレータの側での介入を必要としないことが好ましい。
【0064】
ミラーリング・ユニット内またはこれらのユニットに関連するモニタリング・ソフトウェアは、前のブートの後にシステムがクリーンにシャット・ダウンされたかどうかを判定し、その結果、モニタリング・ソフトウェアが、リモート・ミラーが同期はずれである可能性を判定できるようになることが好ましい。ローカル・ミラーリング・ユニット204は、停電の場合にできる限り少ないデータを失うことが好ましい。したがって、一部のミラーリング・ユニットに、無停電電源装置(UPS)が含まれる。停電の場合に、RAMにバッファリングされた書込をローカル・ミラー(存在する場合に)および/またはローカル・バッファ210にフラッシュする時間があると仮定することができる。
【0065】
一実施形態では、ミラーリング・ユニット・オペレーティング・システム(たとえばFreeBSD)が、読取専用モードのハード・ディスクからブートして、FreeBSD自体のファイルシステムの問題を回避する。構成データは、より小さい区画に書き込まれ、ミラーリング・ユニット・ピアの同一の情報から、またはミラーリング・ユニットが構成データを失い、復元されるまでオフラインになることのSNMP警告を送出することによってのいずれかで、復元することができる。警告は、ピア・ミラーリング・ユニットが到達可能でない場合に使用することができる。いくつかの実施形態では、たとえばバス・リセットを防ぐために、ディスク・ドライブがそれ自体で実行しないコントローラ・カード初期化ルーチンも防止される。また、ミラーリング・ユニット・バッファが満杯になる場合に、その書込を単純にアクノレッジし、ローカルにミラーリングすると同時に、バッファが満杯であり、リモート・ミラーがローカル・ミラーと同期していないことの警告を送ることが、よりよい可能性がある。
【0066】
注記したように、特にSCSIハンドシェーク、ファイバ・チャネル・ハンドシェーク、USBハンドシェークまたは類似するハンドシェークに関して、ホスト・システム200を妨害せずに、ローカル・ミラーリング・ユニット204をコールドリブートすることが可能であることが好ましい。ローカル・ミラーリング・ユニットのバッファ210は、書込要求の順序を維持し、ローカル・ミラーリング・ユニット204によって受け取られたのと同一の順序で書込要求をリモート・ミラーリング・ユニットに送信して、常時データ一貫性を保つ。
【0067】
リモート・ミラーリング・ユニットは、TCPプロトコル・データ・ユニット(本明細書でTCPパケットとも称する)を、たとえばローカル・ミラーリング・ユニット204から受け取り、ディスク・サブシステム(外部ドライブ614またはRAIDユニット312など)に書き込み、ドライブが、ローカル・ミラー230がある場合に少なくとも論理的にブロックごとにローカル・ミラー230と同一であり、前の時のホスト200ボリュームと同一であるようにする。ミラーリングされるデータは、古い場合があるが、一貫していなければならない。
【0068】
データ回復のために、リモート・ミラーリング・ユニット・ソフトウェアは、ユーザ空間へのインターフェースを有し、その結果、ユーザ空間プログラムが、ミラーリング・ユニット・ソフトウェアによるリモート・ミラーの読取、書込、および/またはシークをディスエーブルまたは再イネーブルでき、同一チェーン上の第2のSCSIホストがリモート・ディスク・サブシステム(したがって、ミラーリングされたデータ)にアクセスできるようにすることが好ましい。リモート・サイトでは、リモート・ミラーリング・ユニットおよびバックアップ・ホスト・サーバが、共用ディスク・サブシステムに接続される。たとえば、リモート・ミラーリング・ユニットが、SCSI ID6を使用することができ、回復に使用されるリモート・サーバが、SCSI ID7を使用することができる。リモート・ミラーリング・ユニットがミラーリングを行っている間に、リモート・ホストは、共用ドライブをマウントされないままになる。データ回復に関して、切替の一部として、リモート・ミラーリング・ユニットが、共用ドライブへのアクセスを停止し、バックアップ・ホスト・サーバがそれをマウントすることができる。
【0069】
リモート・ミラーリング・ユニットは、ローカル・ミラーリング・ユニット204から受け取ったブロック数をユーザ空間プログラムに報告することが好ましい。リモート・ミラーリング・ユニットは、ディスク・サブシステムへミラーリングし、ボリュームを、ローカル・ボリュームを作成したローカル・サーバ200と同一のオペレーティング・システムを有するホストがマウントできるようにする。リモート・ミラーリング・ユニットが、論理ブロック番号Nへの書込の要求をローカル・ミラーリング・ユニット204から受け取る場合に、そのデータは、リモート・ミラーリング・ユニットのディスク・サブシステム312または614の論理ブロックNに書き込まれなければならない。ローカル・ミラーリング・ユニット204からの書き込み要求は、データ一貫性を保つために、ローカル・ミラーリング・ユニット204によって要求が受け取られた順序でリモート・ミラーリング・ユニットのディスク・サブシステム312または614に書き込まれなければならない。
【0070】
ジャーニー・リンク206内で、ローカル・ミラーリング・ユニット204とリモート・ミラーリング・ユニットの間の通信に、TCPプロトコルを使用することができる。というのは、TCPプロトコルが、エラー回復および伝送保証を特徴とするからである。リモート・ミラーリング・ユニット・ソフトウェアは、TCPサーバとして働き、ローカル・ミラーリング・ユニット204は、リモート・ユニットのクライアントとして働く。ネットワーク帯域幅または接続性の消失が、ローカル・ミラーリング・ユニット204またはリモート・ミラーリング・ユニットのどちらも中断させないことが好ましい。同様に、リモート位置でのデータ回復が、ローカル・ミラーリング・ユニット204を中断させないことが好ましい。ローカル・ミラーリング・ユニット204とリモート・ミラーリング・ユニットの間の接続が、タイム・アウトになるか他の形で壊される場合に、ローカル・ミラーリング・ユニット204が、接続が再確立されるまで再接続を試みることが好ましい。その後、ローカル・ミラーリング・ユニット204が、中断したミラー・データの送信を継続するか、他の形で普通の動作を再開することが好ましい。
【0071】
発明的ミラーリング・ユニットは、発明的ミラーリング・ユニットが、FreeBSD UNIXオペレーティング・システムに基づく修正されたオペレーティング・システムを実行するという点で、元のオフーサイトサーバ製品より「インテリジェント」である。1つの修正に、QLogic SCSIコントローラのドライバを変更して、そのカードがホストではなくSCSIターゲットとして働くようにし、したがって、そのコントローラがディスク・ドライブをエミュレートすることが含まれ、他のコントローラも、適切なドライバと共に使用することができる。ブート・プロセスも修正されて、ログイン・プロンプトの代わりにミラーリング・ユニット構成ユーティリティがコンソールに示され、カーネルが再コンパイルされた。ソースでは、各ミラーリング・ユニット204が、ホスト・サーバ200と完全に独立に動作できるようにするオペレーティング・システムを実行している。その結果として、提供される柔軟なミラーリング特性の1つが、ミラーリング・ユニット204が、ホスト・サーバ200上の初期化または接続ソフトウェアを必要としないことである(元のオフーサイトサーバ製品では、このソフトウェアが、Vinca NLMの形であった)。
【0072】
その代わりに、ミラーリング・ユニット204のオペレーティング・システムが、SCSIまたは他の標準ディスクもしくはデータ獲得ポイントをエミュレートする。したがって、ミラーリング・ユニット204は、たとえば、少なくともMicrosoft Windows 95、Microsoft Windows 98、Microsoft Windows NT、Novell NetWare、FreeBSD、およびLinuxオペレーティング・システムを含む、SCSIをサポートするすべてのオペレーティング・システムの下で、ミラーリングされたSCSIディスクとしてマウントすることができる。ディスク・エミュレーションは、ディスク読取およびディスク書込に加えて、ディスク・フォーマット、ディスク区画作成、スキャンディスクなどのディスク一貫性検査などのサーバ200要求の処理を含めて、すべての標準ディスク動作を実行できる(少なくともサーバ200の展望から)点まで実行されることが好ましい。
【0073】
本発明によるシステムは、フォールト・トレランスのために完全にミラーリングされるボリューム230をローカルに維持することもできる。このミラーリング動作は、ミラーリング・ユニット204内のソフトウェアのエミュレーション層の下でデータを二股にする(または2回の書込を行う)ことによって行われるので、ミラーリング・ユニット204は、シーケンシャル・データ変更バッファと共にこのローカル・ボリューム230を維持することができる。これによって、ミラーリング・ユニット204が、過度の待ち時間なしでサーバ200によるローカル読取をサービスできるようになり、これによって、システムが、ディスク・ハンディキャップおよびスプリットシーク・ソフトウェアなしで動作できるようになり、潜在的なソフトウェア互換性の問題が除去される。これによって、発明的システムが、ジャーニー・リンク206を介して進むのではなく、ローカル・ディスク・ミラーリングの下でサーバ200のローカル・ディスクにデータをミラーリングすることも可能になる。さらに、ローカル・ミラー230が維持される場合には、ローカル・ミラーリング・ユニット204に、ホスト200に書込を事前アクノレッジするためのスプーフ・ジェネレータを含める必要がない。というのは、ローカル・ミラー230が、ジャーニー・リンク206を介するミラーリングされるデータの送信に関連する遅延およびリスクの対象ではないからである。
【0074】
本発明によるミラーリング・ユニットには、通常は、オペレーティング・システム・ソフトウェアが含まれる。したがって、少なくともいくつかのミラーリング・ユニットが、複数の「ホスト」アプリケーションを実行して、獲得したミラーリングされるデータを操作することができる。このシステムを、ドライバおよび/または他のアプリケーション・ソフトウェアおよび/またはハードウェアを使用して、特定の環境での要件を満たすためにスケール・アップまたはスケール・ダウンすることもできる。たとえば、プロセスを、複数のプロセッサ、SCSIカード、および/または他の「インテリジェント」デバイスにまたがって分散させて、より多くのアクティビティおよび作業負荷を処理することができる。同様に、システムをスケールダウンして、コストを減らしながらより低い性能要件の必要を満たすことができる。アプリケーション・ソフトウェアを用いて、ローカル・ミラーリング・ユニット204が、独立のインテリジェント・ディスク・サブシステムとして動作することができ、あるいは、ローカル・フォールト・トレランスのフェールオーバとして、ホスト200オペレーティング・システムのエミュレーションを実行することができる。ローカル・ディスク・ボリューム230は、ホスト200ディスク・サブシステムがクラッシュした場合に、ローカル・フォールト・トレランスのためのローカルにミラーリングされた置換として働くことができる。
【0075】
このシステムは、部分的に、データを維持し、先入れ先出しに基づいてデータを送るインテリジェント・バッファ210によって、リモート位置で一貫性および可用性を維持する。この形で、データ・ブロックが、ローカル・ミラーリング・ユニット204でエミュレーション層を介して受け取られた正確な順序で、リモート位置に送信される。シーケンス番号および/またはタイムスタンプも使用することができる。というのは、パケット化されたデータが、必ずしも送信されたのと同一の順序で宛先に到着しないからである。
【0076】
いくつかの実施形態で、シャットダウンの場合にデータを保護するために、環状バッファおよび他の手段と共に下記の手法が使用される。ディスク・ターゲット・エミュレータとして使用されるQLogicカードのほかに、ローカル・ミラーリング・ユニットが、ローカルSCSIディスク・コントローラを介して接続された2つのディスク・システムを有する。一方のディスクに、ホスト・オペレーティング・システム(たとえばFreeBSD 3.1)と、関連するユーティリティおよびミラーリング・ユニット管理ソフトウェアが含まれる。このディスクは、バッファ210ディスクとしても働く。ミラーリング・ユニットに接続される他方のディスク・システムは、少なくとも、ミラーリングされるホスト200ディスクと同程度の大きさであり、ホスト200ディスクのローカル・ミラー320として働く。
【0077】
SCSIデータが、QLogicカードから読み出され、読取要求または書込要求としてカーネル内で評価される。QLogicカードから来る読取要求は、ローカル・ミラー・ディスク230を使用して満足され、ネットワーク206を介して送られないことが好ましい。書込コマンドは、ローカル・ミラー・ディスク230に直接にコピーされ、できる限り早くホスト・システム200にアクノレッジされ(必ずしも事前アクノレッジではない)、バッファ・ディスクまたは不揮発性RAMの環状キューに追加される。
【0078】
ブロックが環状キューに書き込まれるたびに、実際には2つのブロックが、シーケンシャルに書き込まれ、一方のブロックは、送信される実際のデータ・ブロックであり、もう一方は、おそらくはLBN(論理ブロック番号)などの他のデータを伴う、キューの現在の末尾ポインタのタイムスタンプである。この第2ブロックが、いわゆるメタデータ・ブロックである。この手法は、スペース効率が良くはないが、キュー・ポインタを維持するのに必要なディスク書込の数が減る。キュー・ポインタは、少なくともそれらのコピー、およびおそらくは環状キュー全体を、不揮発性RAMが使用可能な場合にその不揮発性RAM内で保持することによっても維持することができる。スペースと時間の両方を節約する方法が、環状バッファを一時に大きな塊で書き込み、書込を実行するのに十分に蓄積されるまで、メモリ内でブロックをバッファリングすることである。これによって、メタデータ・ブロックを多数のデータ・ブロックに使用できるようになり、ディスク書込動作の数が減り、ディスク・スペースが節約される。
【0079】
システムのシャットダウンおよび再起動の場合に、キューの先頭は、メタデータ・セグメント内で最新のタイムスタンプを有するブロックを検索し、そのメタデータ・セグメントを使用して末尾ポインタを突き止めることによって見つけられる。これは、たとえば、バイナリ・サーチを実行することによって行うことができる。バッファ実施形態は、環状なので、送信されたブロックを物理的にバッファから除去する(すなわち、削除するか0にする)必要はなく、末尾ポインタを増分することによって、効果的にこれが行われる。バッファ満杯状態は、先頭ポインタが末尾ポインタより1つ小さい時に検出される。ポインタは、環状バッファ内の位置を参照し、バッファ自体の中のデータを参照しない(すなわち、バッファはリンク・リストではなく配列である)。
【0080】
64ビット・タイムスタンプを保持する必要がない可能性がある。というのは、最新の秒を有することが、システム・シャットダウンの前に最後に書き込まれたブロックを判定するのに十分である可能性があるからである。たとえば、4つのブロックが、同一の秒に書き込まれ、同一のタイムスタンプを有すると仮定する。この場合に、タイムスタンプによる最後のブロックは、これが順序付きのキューなので、最後に書き込まれたブロックである。タイムスタンプが、計算的に高価にすぎる場合には、単純に増分されるカウンタで十分である可能性があるが、これは、2038年の前にロールオーバーする可能性がある。キュー・バッファ・サイズは、エンド・ユーザのデータ変更速度およびネットワーク206機能休止に抵抗するために顧客が必要とする時間の長さに応じて変更される。キュー・バッファは、数百メガバイト程度に小さくすることができ、あるいは、ミラーリングされるホスト・ボリュームと同程度に大きくすることができる。バッファの最小サイズおよび最大サイズには、固有の制限がなく、高いデータ変更速度およびジャーニー・リンク206の頻繁な長い中断が予想される場合には、バッファを、ミラーリングされるホスト・ボリュームより大きくする必要が生じる場合がある。
【0081】
ユーザ空間またはシステム空間で動作することができる別のプロセスが、環状キューからブロックを読み取り、ネットワーク206を介してリモート・ミラーリング・ユニットに送る。この送信プロセスは、送信プロセスの現在のポインタ位置についてキューイング・プロセスに時々知らせることができ、タイムスタンプを調べて、キューが空である時を判定することができる。これは、メタデータに保管される末尾ポインタが多少古い場合に、よいことになる可能性がある。というのは、再送信数がシステム再起動の場合に過大なサイズにならないと仮定して、最悪の場合に、システムが既に送信した複数のブロックを再送信することになるからである。送信プロセスが、サーバ始動以降のブロック数も判定できることが好ましい。いくつかの場合に、バッファが、ホスト・ボリューム全体をバッファリングできないと仮定することができる。「害をなさない」という哲学の下で、SCSIバスを低速化し、既に満杯のキューにおさまらないデータを単純にダンプするという危険を犯さず、ユーザ空間モニタリング・プロセスにこのイベントについて知らせることがよりよいはずである。
【0082】
再送信されるブロックの数を減らすことを試みるために、システムは、ローカル・ミラーに対する書込を検査し、それらが実際に異なる場合に限って環状バッファに追加すると同時に、遅延書込の問題を回避することができる。これは、ディスク上のLBNごとにチェックサムのハッシュ・テーブルを維持することによって達成される。トレードオフの1つが、チェックサムを計算するプロセッサ時間およびメモリと、追加のディスク動作である。
【0083】
[一般的な方法(Methods Generally)]
図13および15に、リモート・データ・ミラーリングの、本発明の方法を示す。いくつかの方法に、ミラーリング・ユニットをインストールするステップが含まれ、便宜上、これらのステップを、インストール・ステップ1330内のステップとして集合的に識別する。たとえば、システム・インテグレータ、ミラーリング機器ベンダ、および管理者が、図2から12のどれかに示されたものなどのシステムをインストールする時に、ステップ1300内に示されたステップの一部またはすべてを実行するライセンスを得ることができる。本発明の他の方法には、データを1つまたは複数のミラーリング・ユニットに送信するステップが含まれ、便宜上、これらのステップを、送信ステップ1302内のステップとして集合的に識別する。これらの送信ステップは、インストール・ステップ1300の一部としてインストーラによってテスト・データを用いてライセンスの下で実行することができるが、これらは、本発明によるシステムの正規のユーザの命令で、ミッション・クリティカル・データを用いて日常的に実行することもできる。
【0084】
接続ステップ1304中に、少なくとも1つのサーバ200が、少なくとも1つのローカル・ミラーリング・ユニット204に接続される。上で述べたように、この接続は、SCSIバス、ファイバ・チャネル接続、USB接続、または他の標準ディスク・サブシステム・バスの形とすることができる。1つのローカル・ミラーリング・ユニット204が、ディスク・サブシステムをエミュレートするので、ステップ1304中のそれの接続は、基本的に、少なくともサーバ200の観点から、サーバ200への普通のディスク・サブシステムの接続と同一である。具体的に言うと、特殊なミラーリングNLMまたは他のミラーリング・ソフトウェアのインストールが、不要である。
【0085】
接続ステップ1306中に、少なくとも1つのローカル・ミラーリング・ユニット204が、少なくとも1つの対応するジャーニー・リンク206に接続される。状況に応じて、このステップに、さまざまな動作を含めることができる。たとえば、ジャーニー・リンク206に、ローカル・エリア・ネットワークが含まれる場合に、ローカル・ミラーリング・ユニット204を、他のネットワーク・ノードのようにそのネットワークに接続することができ、SNMPサポートも構成することができる。ジャーニー・リンク206に、ローカル・ミラーリング・ユニット204からのダイヤルアップ接続が含まれる場合には、ダイヤルアップ・パラメータを構成する。同様に、ジャーニー・リンク206に、T1回線などの専用私有遠隔通信回線が含まれる場合には、よく知られた動作が、接続を行うために実行される。
【0086】
接続ステップ1308中に、少なくとも1つのリモート・ミラーリング・ユニット208、308、408、508、608、または708が、少なくとも1つの対応するジャーニー・リンク206に接続される。これは、ステップ1306中のローカル・ミラーリング・ユニット204の接続と全般的に同一の形で達成することができる。しかし、リモート・ミラーリング・ユニットが、所与の実施形態でTCPサーバとして働く時には、ローカル・ミラーリング・ユニット204が、リモート・ミラーリング・ユニットのクライアントとして働く。したがって、そのような実施形態では、接続ステップ1306で、TCPクライアントが接続され、接続ステップ1308で、TCPサーバが接続される。
【0087】
テスト・ステップ1310中に、ミラーリング・ユニットに対してテストが実行される。このテストには、たとえば、ローカル・ミラーリング・ユニット204のスループット性能の、RAIDユニットの性能との比較と、リモート・サイトからローカル・サイトへのデータの再ミラーリングと、ローカル・ミラーリング・ユニット204への不正な構成情報の入力およびその情報の訂正と、ローカル・ミラーリング・ユニット204のリブートと、ジャーニー・リンク206の切断と、ローカル・ミラーリング・ユニット204への電力の中断と、リモート・ミラーリング・ユニットへの電力の中断と、ローカル・ミラーリング・ユニット204のバッファ210のオーバーフローと、他のテストを含めることができる。具体的に、制限なしに、テスト・ステップ1310に、本文書の「Test Suite」セクションに記載のテストのうちの1つまたは複数の実行を含めることができる。テスト1310では、下でステップ1302に関して説明するデータ送信を用いることもできるが、テストは、例示を明瞭にするために、図13で別のステップとして示した。
【0088】
送信ステップ1302には、サーバ200から標準バスを介してローカル・ミラーリング・ユニット204にデータを送信する送信ステップ1312を含めることができる。これが可能であるのは、本発明が、普通の経路104と異なって、ディスクまたはRAIDサブシステムをエミュレートするミラーリング・ユニットを提供するからである。
【0089】
送信ステップ1314中に、ミラーリングされるデータを、ジャーニー・リンク206を介して送信する。注記したように、これは、普通の経路104の場合のように専用リンクを用いて行うことができるが、ローカル・エリア・ネットワークおよび/またはインターネットなどの関連する普通のネットワーキング・インフラストラクチャを含めて、イーサネットおよび/またはTCPおよび/または他のオープン標準プロトコルなどの標準プロトコルを使用して行うこともできる。
【0090】
いくつかの実施形態で、ミラーリングされるデータに、ローカル・ミラーリング・ユニット204がタイムスタンプを付けて、データのブロックがミラーリングされたシーケンスのレコードを維持し、データを特定の時点に結び付ける。これは、ミラーリングされたボリュームの最新のコピーを単純に保持するのではなく、ミラーリングされたボリュームの1つまたは複数のスナップショットと、そのボリュームに対するセクタ/トラック/ブロック・レベルでの増分変更を保持するのに十分に大きい、リモートおよび/またはローカルのデータ記憶装置に結合される。好ましい実施形態では、1つのスナップショットだけが必要である。単一のスナップショットが、ベースラインを提供し、後続の変更が、ジャーナリングされ、その結果、所望の点(ジャーナリング粒度の対象)でのボリュームの状態を回復できるようになる。ジャーナルは、任意の大きさとし、それを保持する必要に応じて追加の記憶スペースを追加されるものとすることができ、あるいは、ある固定されたサイズのFIFO環状バッファ内に保持し、ジャーナル・バッファが最初に満たされた後に、古いジャーナル・エントリが新しいエントリによって上書きされるものとすることができる。より一般的には、適当な再ミラーリング・ソフトウェアとスナップショットおよび(必要な場合に)増分変更を使用して、後に、指定された以前の時刻に存在した、ミラーリングされたディスク・ボリュームを再構成することができる。
【0091】
送信ステップ1316中に、ミラーリングされるデータが、サーバレス・リモート・ミラーリング・ユニットに送信される。この構成は、たとえば図2に示されている。リモート・ミラーリング・ユニットは、普通のサーバに共通するハードウェアおよび機能能力を有するが、普通のサーバではない。サーバは、ミラーリング・ユニットより一般的な機能性を提供する。ミラーリング・ユニットは、実質的に連続した、ほぼリアルタイムのリモート・データ・ミラーリングの効果的提供に焦点を合わせたものである。リモート・ミラーリング・ユニットは、ジャーニー・リンク206を介するデータの獲得に関してはリモート・ミラーリング・サーバのように振る舞うが、それ以外の点では、マウントされたディスクに非常に似ている。具体的に言うと、リモート・ミラーリング・ユニットは、副サーバが接続される場合に、副サーバに関するディスクまたはRAIDユニットのように振る舞う。リモート・ミラーリング・ユニットが、必要になった場合にジャーナル・リンク206を介してローカル・サーバ200へすべてのデータを再ミラーリングするために、副サーバは必要でない。
【0092】
データが、ローカル・ミラーリング・ユニット204から宛先のリモート・ミラーリング・ユニットに送信された後に、リモート・ミラーリング・ユニットが、さまざまなことを行うことができる。たとえば、リモート・ミラーリング・ユニットが、受信したデータ・パケットを、単一の外部ディスク614に書き出されるデータ・ブロックに単純に変換することができる。リモート・ミラーリング・ユニットは、これらのデータ・パケットをディスク・ブロックに変換し、内部ディスク・サブシステムおよび/またはディスク区画に書き込むことができる。リモート・ミラーリング・ユニットは、パケット・データを受け取り、ディスク・データ・ブロックに変換し、内部ストライピング(RAID)ソフトウェアを使用して「非インテリジェント」ディスク・サブシステムの複数のディスクにまたがってデータをストライピングする外部データ・サブシステムの形のRAIDサブシステム312に書き込むことができる。パケットからディスク・ブロック・データからストライピングされた(RAID)データへのこの同一の変換を、外部「非インテリジェント」ディスク・サブシステムへの保管を用いる、ハードウェア・コントローラおよび関連するドライバを介して行うこともできる。リモート・ミラーリング・ユニットは、外部インテリジェントRAIDサブシステム312にも書き込むことができ、ディスク・ブロックは、データ・ストリームでディスク・サブシステムに書き込まれ、インテリジェントRAIDサブシステムによってストライピングされる。
【0093】
受け取ったデータを即座にリモート・ミラー312または614に書き込むのではなく、リモート・ミラーリング・ユニットは、データをまずリモート・バッファに書き込み、その後、データのあるタイプの「署名」(チェックサムまたは巡回冗長検査値など)を伴うACKをローカル・ミラーリング・ユニットに送る。ローカル・ミラーリング・ユニットは、データのACK−ACKまたはNAK−ACKのいずれか(署名の検証に応じて)を行い、ローカル・ミラーリング・ユニットからACK−ACKを受信する時に限って、リモート・ミラーリング・ユニットが、リモート・バッファからリモート・ミラーへデータをコミットする。そのような実施形態では、リモート・ミラーリング・ユニットは、データだけを受け取るのではなく、ローカル・ミラーリング・ユニットから元の署名も受け取る場合に、元の署名が正しく検証されない場合に元のデータ送信をNAKする。
【0094】
より一般的には、データをACKするさまざまな手法が可能である。たとえば、リモート・ミラーリング・ユニットとローカル・ミラーリング・ユニットを、一方が他方のサブシステムであるのではなく、ピアとみなすことができる。この場合に、リモート・ミラーリング・ユニット側で、ACKが、リモート・ミラー・ディスク自体から(おそらくはそのキャッシュから)少しずつ入り、ローカル・ミラーリング・ユニット側で、ACKが、ローカル・ミラー・ディスク自体から(おそらくはそのキャッシュから)少しずつ入るが、ローカル・ミラーリング・ユニット側では、ACKが、リモート・ミラーリング・ユニットからは不要であり、ホストにACKする前にジャーニー・リンクのローカル端からのみ必要である。ローカル・ミラーリング・ユニット側で、ローカル・バッファからブロックを削除する前にリモート・ミラーリング・ユニットからのACKを待つことが、慎重ではあるが、これは、ホストにACKしてからかなり後に行うことができる。
【0095】
少なくとも1つの副サーバ300がシステムに存在する場合に、追加ステップが可能である。たとえば、リモート・ミラーリング・ユニットが、サーバのネットワーク・オペレーティング・システムを介してリモート・サーバ300に直接にデータを中継することができる。このオペレーティング・システムは、能動状態または受動状態とすることができる。どちらの場合でも、接続302を介して受信されるデータを、サーバ300のオペレーティング・システムを介して内部ローカル・ディスク・サブシステムに書き込むことができる。この手法は、リモート位置のオペレーティング・システムごとに特定のソフトウェアを必要とする。リモート・ミラーリング・ユニットは、インターネット・ベースのデータ・ウィンドウを使用して、リモート・ミラーリング・ユニットと副サーバ300の間でデータを送受することもできる。このデータ・ウィンドウは、ブラウザ・インターフェースへのプラグイン拡張を介するか、Microsoft ActiveX拡張など、コア・オペレーティング・システムへのインターネット・コンポーネント拡張を介するものとすることができる。
【0096】
上のどのシナリオでも、ローカル・ミラーリング・ユニットは、ミラーリングされるデータを1つのリモート・ミラーリング・ユニットまたは複数のリモート・ミラーリング・ユニットに中継するのに十分に「インテリジェント」とすることができる。図12に示されたものなどの1対多システムは、めいめいのジャーニー・リンク206によって単一のマルチポート式ローカル・ミラーリング・ユニット204に接続される3つのリモート・ミラーリング・ユニットを有し、マルチポート・ミラーリング・ユニットを、本発明による他のシステムで、単独でまたは単一ポート・ミラーリング・ユニットと組み合わせて、同様に使用することができる。所与のシステム内のリモート・ミラーリング・ユニットの数に、ハード制限はない。
【0097】
リモート・ミラーリング・ユニットは、ミラーリングされるデータを、さらなるフォールト・トレランスのために、近くのミラーリング・ユニットおよび/または別のより離れたリモート・ミラーリング・ユニットに中継することもできる。リモート・ミラーリング・ユニットは、データ・ミラーの継続的一貫性および完全さに適当に注意を払いながら、負荷を分配し、フォールト・トレランスを提供するために、複数の続くリモート・ミラーリング・ユニットの間で負荷平衡を行うヘッド・エンドとして働くことができる。N個のリモート・ミラーリング・ユニットを、互いに接続し、同一のネットワーク・アドレスまたはドメイン・ネーム・システム(DNS)名を維持して、さらなるフォールト・トレランスを提供することができる。これらのさまざまな手法の組合せも、使用することができる。
【0098】
リモート・ミラーリング・ユニットに接続される1つまたは複数の別々の完全に独立のリモート・ディスク・サブシステムを有する実施形態では、リモート・ミラーリング・ユニットが、SCSIマスタ(たとえば)として振る舞い、データをリモート・ディスクに書き出す。副サーバ300が存在する場合には、このサーバ300は、リモート・ミラーリング・ユニットとSCSIチェーン内のリモート・ディスク・サブシステムの両方に従う。データ・ミラーリング中に、副サーバ300は、通常は、スレーブ状態および/または受動状態である。ミラーリングされるローカル・サーバ200の故障の場合に、リモート・サーバ300が、外部ボリュームをマウントし、SCSIマスタになる。それと同時に、リモート・ミラーリング・ユニットが、そのリモート・ディスク・サブシステムドライバをマウント解除し、受動(スレーブ)状態に入る。
【0099】
具体的に言うと、これは、「二重ホスト」接続1400を含む、図14に示されたものに類似する構成を使用して達成することができる。多くの通常の手法の下で、唯一のホスト・アダプタが、SCSIチェーン上で、通常はLUN 7として存在する。パワー・アップまたはリセット中に、ホストが、他のすべてのLUNをサイクルして、何が接続されているかを判定する。システムが、二重ホスト対応アダプタを使用する場合に、第2ホストが、通常はLUN 6に存在し、LUN0から5までだけをリセットし、質問する。したがって、LUN 7が主と見なされ、LUN 6が副と見なされる。どの場合でも、両方のホストが、図14に示されているように接続された時に、より低い順序のターゲットに「アクセス」できる。
【0100】
二重ホスト接続自体は、新しいものではない。具体的に言うと、BusLogic EISAカードおよびNovell NetWareサーバを用いる二重ホスト接続が既知である。しかし、Novellサーバが提出されたデマンドに基づいてそのファイル割振りテーブルをリフレッシュすることができないので、この場合に二重ホスト接続によって提供される能力の意義が失われる。二重ホスト接続に関する全般的な情報は、オンラインSCSI FAQを含むソースから公衆が入手可能である。二重ホスト接続が使用されない場合には、リモート・サーバ300が、リモート・ミラーリング・ユニットから直接にミラーリングされたデータを受け取り、可能な後の使用のためにそれを保管できるように、リモート・サーバ300が、ドライバ、NLM、および/または他のミラーリング専用のソフトウェアを必要とする。
【0101】
二重ホスト接続1400を使用する本発明の実施形態では、リモート・ミラーリング・ユニット208、308、408、508、608、または708が、切替を実行できるようにするために停止を指示される時まで、RAIDユニット312または他のリモート・ディスク・サブシステムを制御する。この時間中に、リモート・ミラーリング・ユニットが、データ・ミラーリングを実行し、SCSIマスタとして、他所で述べたようにRAIDユニット312にデータを送る。この時の間に、Novellまたは他の副サーバ300は、受動(マウント解除)状態になる。これによって、サーバ300、リモート・ミラーリング・ユニット、およびRAIDユニット312または他のリモート・ディスク・サブシステムを、図14に示されているように2対1の形で一緒に配線することによって引き起こされる損傷が防がれる。
【0102】
切替を実行するために、リモート・ミラーリング・ユニットは、RAIDユニット312ドライバをマウント解除し、サーバ300が、RAIDユニット312をマウントする。その後、サーバ300は、SCSIマスタになる。必ず副サーバSCSIカード選択を予測または実行することはできないので、リモート・ミラーリング・ユニットが、副ホスト位置(LUN 6)を有することが好ましい。2つのマシンが来る時に、リモート・ミラーリング・ユニットが、ドライバのパワー・アップの際に第2のリセットを経験する可能性がある。これは、正常であるが、リモート・ミラーリング・ユニットは、デバイス・ドライバ・レベルで回復できなければならない。二重ホスト(二重チャネルではなく)方法を使用することによって、配線が、普通に終端されたSCSIチェーンになり、追加のハードウェアは不要である。切替は、記憶サブシステムおよび/またはドライバのマウント解除、マウント、および関連する動作を介して、完全にソフトウェアによって達成することができる。
【0103】
前の説明は、リモート・ミラーリング・ユニットと副サーバ300の間の1対1の関係を暗黙のうちに仮定しているとみなすことができる。しかし、ソフトウェアまたは機械式SCSIスイッチ(たとえば)を使用して、複数の潜在的なホスト・サーバ300へのリモート・ミラーリング・ユニットの接続を可能にすることができる。ファイバ・チャネルなどのプロトコルおよび/またはSANアーキテクチャには、従来のSCSIマスタ/スレーブ関係がない。その代わりに、DNSおよび/または数値アドレスを介して行われるアドレス関係がある。そのようなシステムでは、切替が、アドレス変更を介して行われ、リモート・ミラーリング・ユニットは、それでも受動状態に入る。
【0104】
リモート・ミラーリング・ユニットは、完全なネットワーク・オペレーティング・システムを実行するようにすることができる。障害の場合に、そのようなリモート・ミラーリング・ユニットは、能動状態に入り、ミラーリングされるデータを送ったディスク・サブシステム上の情報に関する完全に機能するサーバになる。リモート・ミラーリング・ユニットは、ローカル・サイトの指定されたホスト・オペレーティング・システムの下のサーバをエミュレートできるようになるエミュレーション・プログラムも実行することができる。リモート・ミラーリング・ユニットは、ミラーリングの下で使用したオペレーティング・システムと、すべての関係するプログラムとをシャット・ダウンするプログラムを実行し、その後、指定されたホスト・オペレーティング・システムを別の内部ディスクまたは別の区画から再起動することもできる。
【0105】
リモート・ミラーリング・ユニットは、普通にデータ・ミラーリングのみの専用になるのではなく、副サーバとして継続的に動作するように機能強化することもできる。しかし、それを行うことによって、ミラーリング性能が大きく低下し、ミラーリングが完全に失敗する危険性が高まる可能性がある。
【0106】
リモート・ミラーリング・ユニットが、ローカル・ミラーリング・ユニット204と本質的に同一のソフトウェアを有する場合に、リモート・ミラーリング・ユニットが、ローカル・ミラーリング・ユニット204として動作することができる。たとえば、サイトAからサイトBを経てサイトCへのミラーリングの時に、サイトBのミラーリング・ユニットは、サイトAに関してリモート・ミラーリング・ユニットであり、サイトCに関してローカル・ミラーリング・ユニットである。リモート・ミラーリング・ユニットは、リモート位置からソースへの回復の際に、ローカル・ミラーリング・ユニット204として動作することもできる。すなわち、サイトAからサイトBへのミラーリングの時に、サイトAのミラーリング・ユニットがローカルであり、サイトBのミラーリング・ユニットがリモートであるが、サイトBからサイトAにデータを回復する際には、サイトAのミラーリング・ユニットがリモートであり、サイトBのミラーリング・ユニットがローカルである。
【0107】
最後に、いくつかの発明的システムは、複数のユーザ・セッションに対処することができ、ユーザ・セッションが、ミラーリングされるデータ中継セッションまたはデータ保管セッションになる。したがって、上のシナリオの複数の組合せおよびインスタンスが、適当な環境で並列にまたは別々に発生することができる。特定の組合せを達成するために、より多くのプロセッサ、ディスク、メモリなどを含めることが必要になる場合がある。
【0108】
これらのさまざまなツールおよび技法は、本発明による1対多ミラーリング・システムおよび多対1ミラーリング・システムにも使用することができる。同様に、パケットに言及するツールおよび技法の議論は、IP、イーサネット、トークン・リング、または他のパケット化されたデータ環境を指し、他のサポートされる環境で、パケットを使用するのではなくデータ・ストリームで書き込むことができることを理解されたい。
【0109】
上および本明細書の他所で述べた方法ステップは、あるステップの結果が別のステップへの入力として必要である場合を除いて、さまざまな順序でおよび/または並列に実行することができる。たとえば、接続ステップ1304、1036、および1308は、さまざまな順序でおよび/または並列に行うことができるが、テスト・ステップ1310の多くの動作では、示された接続の一部またはすべてが、少なくとも名目上は存在することが前提になっている。ステップ1312中のローカル・ミラーリング・ユニットへのデータの送信は、必ず、ステップ1314中のジャーニー・リンク206を介するかローカル・ミラー230へのそのデータの送信に先立つ。その一方で、送信ステップ1316は、送信がサーバレス・リモート・ミラーリング・ユニットへのものである場合に、送信ステップ1314を実行することによって(または私有専用リンク206を使用することによって)実行することができる。図に示されたステップは、このDetailed Descriptionで任意選択として明示的に記述されるかどうかに無関係に、発行される請求項で必要でない限り、省略することもできる。ステップを、繰り返す、組み合わせる、または別の名前を付けることもできる。
【0110】
注意を図15におよび下のテキストに向けるが、下のテキストでは、その図を直接に参照すると同時に、ローカル−リモート役割逆転、ホット・スタンバイ・サーバ状況の実施、複数の代替バッファ内容およびバッファリング方式、トランザクショニング、多対1ミラーリング(すでに図5から10で多少対処した)、頻繁にアクセスされるデータの識別、および正式でない形での副サーバの使用などに使用することができる(単独でまたはさまざまな組合せで)追加のツールおよび技法を述べる。
【0111】
[役割逆転(Role Reversal)]
サーバ200などの主サーバが、動作不能になり、変更データが、リモート・サイトに完全にフラッシュされる時に、204および208などのミラーリング・ユニットが、役割を変更することができ、これによって、たとえばWAN上のサーバ300などのリモート・サーバが、ネットワーク・ピアに障害回復を提供できるようになる。譲受人ミラリンクの最初の特許、米国特許第5537533号に、継続的に使用可能なリモート・ミラーリングされる置換ネットワーク・サーバが記載されている。しかし、役割逆転可用性は、明らかにその特許に記載されていない。役割逆転では、ミラーリング・ユニット・アーキテクチャ全体が、性質を逆転される。ローカルとリモートの両方のミラーリング・ユニットが、何であれ障害回復の必要につながるイベントから助かる場合に、ローカル−リモート役割逆転の後に、元のリモート側が、ローカル側とみなされ、そこで記録されたデータ変更が、元のローカル(現在はリモート役割)にミラーリングされる。
【0112】
一実施形態では、役割逆転ステップ1506が、下記のように実施される。第1に、「ボックス」(ユニット204、208などのミラーリング・ユニット)の対が、動作の変換を容易にするために同一の形で構成されることが好ましい。次に、SCSIエミュレーションを処理するカーネル・モジュールが、ローカル・ボックス内でアクティブであり、リモート・ボックス内で休止している。下で述べる「メディア・ノット・レディ」特徴に実際につながるのは、このソフトウェア状態である。ローカル・ボックスが、その変更データのすべてをリモート・ボックスにコミットした時に、ユーザが、役割逆転を指令することができる。これによって、ローカル・ボックスのミラーリングが非アクティブになり、リモートSCSIエミュレーション層がアクティブになり、その結果、リモート・サーバが、リモート・ミラーリング・ユニットをマウントするコマンドを受け取れるようになる。したがって、各サイトのミラーリング・ユニットが、その役割を変更し、サーバが、変更をもたらすために参加する。ミラーリング・ユニットの現在の役割は、ビットフラグまたは他の変数によって内部的に示すことができる。
【0113】
ローカル役割で動作しているミラーリング・ユニットの送信バッファとして使用される物理ディスクは、そのミラーリング・ユニットが役割を逆転1506し、リモート役割での動作を開始する時に、受信バッファとして使用される。ユニット204などのローカル・ミラーリング・ユニット内では、このディスクが、ジャーニー・リンク206に関する変更データを保管する送信バッファである。リモート・ミラーリング・ユニット内では、この同一のディスクが、変更データが検証され、リモート側ミラー・バッファ・ディスクまたは他の不揮発性記憶装置にコミットされるまで、受信1504した変更データを保持する受信バッファである。検証のレベルおよびコミットの時間遅れは、いくつかの実施形態でプログラム可能とすることができる。
【0114】
[メディア・ノット・レディ状況を副サーバに通知(Media Not Ready Status to the Secondary Server)]
1508「メディア・ノット・レディ」状況を使用することによって、副サーバ300を「ホット」スタンバイ・モードにすることができる。これがないと、リモート・ミラーリング・ユニット308がオンラインになった後に副サーバを立ち上げ、その結果、副サーバが、リモート・ミラーリング・ユニット308の存在についてSCSIチェーンに質問できるようにする必要が生じる可能性がある。ステップ1508中に、リモート・ミラーリング・ユニットのSCSIエミュレーション層が、データ・サイズおよびデータ可用性などのデータ特性に関するリモート・サーバ300からの要求に応答するが、リモート・サーバ300は、データの内容へのアクセスを拒否される。サーバ300照会に対するこれらの制限された応答は、標準SCSI応答フォーマットを使用して、ユニット308によって供給される。
【0115】
その代わりに、リモート・ミラーリング・ユニット308を副サーバ300に配線せずに、副サーバ300を立ち上げることができる。その結果の障害の後に、ケーブルを接続し、その後、デバイス・チェーンのSCSIプローブを実行して、新しいハードウェアを検出しなければならない。サーバ300は、その後、デバイス308をマウントする。対照的に、メディア・ノット・レディ・モードを使用1508する好ましい手法を用いると、ボリューム308を「電源を入れ」、「検出する」が、フェールオーバが必要になるまでマウントされないままにすることができる。
【0116】
[環状バッファ(Circular Buffer)]
動作の2つの追加モードによって、時間および/または帯域幅を与えられて、そこから回復することができる「一貫性のない」ミラー・モード(すなわち、もはや完全に忠実ではない時間潜在ミラー)を可能にすることによって、バッファ内のデータの環状キューの有用性が拡張される。この環状キューを、「スケーラブル・インテリジェント・バッファ」、「環状バッファ・キュー」、または「CBQ」とも称する。環状キューでは、ディスク・スペースを通常モードでFIFO(先入れ先出し構造)として使用し、最高水準に達するまで変更ブロックを保管し、最高水準に達した点で、ミラーリング・ユニットが、実際の変更データを保管するのではなく変更された論理ブロック番号(LBN)を保管1510する。これは、CBQに対して行われる保管のサイズの削減を表し(128個のLBN[それぞれ4バイト]対1つの変更されたブロック[それぞれ512バイト])、これによって、CBQが満たされる速度が減り、ジャーニー・リンク206を復元する時間が増える。ジャーニー・リンク206が、CBQが完全に満杯になるのに十分に長くダウンしたままになる場合には、完全な再ミラーリングが必要である。しかし、システムは、変更されたブロックの復元だけを必要とし、したがって、CBQを、仮想ファイル割振りテーブル(FAT)または類似するブロック(たとえばクラスタまたはセクタ)割振り構造に縮小することができ、チェックサムまたは巡回冗長検査値が、ブロックごとにCBQに保存される。ジャーニー・リンク206が復元された時に、リモート・ミラーリング・ユニットが、それを再ミラーリングする必要についてローカル・ミラーリング・ユニットによって通知1320され、CRCのブロックまたは類似物をローカル・ミラーリング・ユニットと交換して、ディスクのどのクラスタ(たとえば)を送信する必要があるかの判定を可能にする。たとえば、初期ミラーと異なって、ハード・ドライブの90%超が、変更されない可能性があり、したがって、リンク206を介して送信する必要がない。初期ミラーでは、データの100%が、ローカル・ドライブとリモート・ドライブの間で異なると仮定される。
【0117】
[スカジー・スヌープ・バッファリング(SCSI Snoop Buffering)]
いくつかの実施形態で、通常モードのスケーラブル・インテリジェント・バッファ(たとえば環状バッファ・キュー)が閾値に達するまで、このバッファに変更ブロックが保管され、閾値に達した時点で、ミラーリング・ユニットが、実際の変更データではなく変更された論理ブロック番号(LBN)を保管1510する。「SCSIスヌープ・バッファリング」を使用する変形形態では、データ・ミラーリング・システムが、ブロック・データを切り出し、これらのSCSIコマンドをバッファリングするのではなく、実際のSCSIコマンドをバッファリングする。これは、下記のように行うことができる。図15に示されたステップ1512の異なる実施形態に、本明細書で集合的に符号1512によって示される特定の動作の1つまたは複数を含めるか省略することができることに留意されたい。
【0118】
ミラーリング・デバイス204内のターゲット・アダプタが、受動的な形でSCSIバスをリスン1512する。この文脈での「受動的」は、物理デバイス204が、バスに電気的に参加するのではなく、バス上で見たものを記録1512することを意味する。ターゲット・アダプタは、SCSIアナライザに使用されるものに性質が似るが目的が異なる既存の物理ハードウェアを使用することができる。SCSIアナライザは、ユーザが、実際にSCSIバスに参加せずにSCSIバスのアクティビティを監視できるようにする分析ツールである。発明的ターゲット・アダプタによってSCSIバスから収集1512されたデータは、SCSIバス上の特定の実際の参加者または「ターゲット」から発するかそれに向けられたアクティビティについて解釈1512される。そのようなデータには、SCSIバス上で見られる1512カプセル化されたSCSIコマンドの組が含まれる。
【0119】
コマンド突合せ1512によって、判断基準をフィルタリングする、すなわち、当のSCSIバス参加者だけに関するコマンドが、適当なバッファリング・アルゴリズムを使用して、観察された順序でキューに入れられる1512。SCSIバスから収集1512されたデータは、必ずしも、バス上の特定の参加者からのコマンドまたは応答の認識1512を超えて分析または解釈1512されない。しかし、(a)読取の性質を有するバス上のホスト・コントローラからの要求を(b)書込の性質を有するバス上のホスト・コントローラからのコマンドを分割1512するために、処置を講じることができる。書込の性質のコマンドをバッファリング1512することによって、バッファに、SCSIバス上のターゲットの参加者に対するデータの変更または他の形の状態の変更に関連するトランザクションだけが含まれる。
【0120】
バッファリングされたSCSIコマンド・データが、第2のミラーリング・ユニット208、308などに、ジャーニー・リンク206などの通信リンクを介して転送1502される。受信1504された後に、コマンドが、同一のまたは類似する参加者(第1のバス上の対照物と同一の状態で始動する)を有する第2の物理的に別のSCSIバス上で繰り返すことによって「再生」1514される。この形で、第2のSCSIバス上の重複するターゲット参加者を、コマンドが元のSCSIバスから読み取られ1512た時の元のターゲット参加者と同一の状態にし、同一のデータを含むようにすることができる。SCSIバス以外のバスは、コマンドの取込および再生と、本発明の他の態様に関して、類似する形で使用することができる。
【0121】
このミラーリング・システムを実施する時には、読取要求と書込要求の間の微妙な望ましくない相互作用に注意することが重要である。これは、注意されるSCSIバス参加者が、前の読取動作に依存して後続の書込動作の挙動を変更する、暗黙だが簡単には可視にならない内部状態を保持する場合に特にそうである。
【0122】
さらに、コマンドが取り込まれる監視されるSCSIバスの参加者から報告されるエラーを、第2のSCSIバスで一貫性のある形で処理1514する必要があるが、第2のSCSIバスは、必ずしも同一のエラーを生成できない。また、第2のSCSIバスで生成されるエラー状態によって、第2のSCSIバスが、第1のSCSIバスからの状態およびデータに関して一貫性がなくなる可能性がある。
【0123】
[一時的トランザクショニング(Temporal Transactioning)]
一時的トランザクショニング1516では、ミラーリング・ユニット204、208などのバッファを使用して、トランザクショナル・ファイルシステム機能性を提供する。ステップ1516の異なる実施形態に、本明細書で集合的に符号1516によって示される特定の動作の1つまたは複数を含めるか省略できることに留意されたい。オペレーティング・システム・エージェントおよび/またはカーネル・ウェッジを用いて、まだトランザクションをサポートしていないファイルシステムで動作のロールバックをサポートする(1516)ために、ファイルのオープン、クローズ、およびファイル動作タイムスタンプを追跡する(1516)ことができる。
【0124】
これに関して、「カーネル・ウェッジ」は、既存のバイナリ・コードまたはソース・コードに詰め込んで、オペレーティング・システムを修正することができる、バイナリ・パッチまたはソース・コード・パッチである。カーネル・ウェッジ挿入は、オペレーティング・システム内で、追加ソフトウェアをその場所にリンクされるか他の形で挿入されるように特に設計されてはいない位置で行われるので、カーネル・ウェッジは、デバイス・ドライバまたはエージェントとは異なる。オペレーティング・システム内で、ファイルのオープンおよびクローズなどの動作が行われる点にコードを挿入(1516)することによって、これらのイベントに基づいて処置を講じることができる。
【0125】
この手法は、複製ではファイルがクローズされている時にファイルがコピーされ、ミラーリングではファイルが書き込まれる時にオープン・ファイルがコピーされるので、ミラーリングと複製の混成物と見なすことができる。この手法では、ファイルが書込のためにオープンまたはクローズされる時に基づいて、ミラーリングされるデータにタイムスタンプまたは他のマーカーを添付(1516)する。したがって、プログラムによってオープンされた後にファイルに対して行われる変更のすべてが、そのオープン/クローズ・サイクルに関連付け(1516)られ、ファイルが再オープンされた後の後続の変更は、現在のサイクルに関連付けられない。
【0126】
スペースの欠如または他の要因によって、オープン/クローズが行われる時にファイルに関連する特定のブロックを追跡(1516)することが困難になる場合があるが、特定のオープン/クローズ・イベントが発生した正確な時刻を追跡(1516)することは簡単にでき、ブロックがバッファに入った正確な時刻を追跡(1516)することもできる。したがって、後に、システム管理者が、ウェッジによって提供1516されるオープン/クローズ・ログを見、指定された時間期間に一致する変更されたデータ・ブロックを選択的に除去することができる。
【0127】
この手法は、長時間にわたってファイルをオープンし、長時間にわたってデータを書き込む、データベースなどのアプリケーションのみと共に使用される場合に、ほとんど利益をもたらさないことに留意されたい。しかし、この手法は、ファイルシステムを安全に保つか、誤って上書きされたワード・プロセッサ・ファイルを回復(1516)するのに非常に有用である。というのは、これらの動作が、短い時間の期間内に、通常はできる限り速く行われるからである。ファイルシステム変更は、ワード・プロセッサからのファイル保存動作と同様に、それが発生した適度に正確な時点まで追跡(1516)することができる。その後、この時刻に対応するデータ変更ミラーリング動作を識別(1516)することができ、選択されたデータ変更動作を、ミラーリングを実行したデータ変更動作のストリームから編集(1516)することができる。
【0128】
トランザクショニング(1516)は、バッファ内にデータの変更ログを保持(1516)し、ある時間の期間について変更をロールバック1516することができる、リモート・システム・エージェントまたは他のプログラムを用いて達成することができる。リモート・システム・エージェントは、ユニット208などのリモート・データ・ミラーリング・ユニットに常駐し、通信リンク206を介してローカル・データ・ミラーリング・ユニット204からデータ変更情報を受け取る(1504、1516)。
【0129】
いくつかの実施形態では、システムが、ローカルとリモートの両方のミラー・ディスクおよびバッファ・ディスクを有するが、リモート/ローカル役割が交換(1506)され、その結果、リモートでミラーリングされたデータをそれがミラーリングされた元の位置から回復できるようになる時など、なんらかの理由でリモート・システムがもはやリモートである必要がなく、ローカルにならない限り、バッファ310などのリモート側バッファ・ディスクが実際には使用されない。したがって、リモート側バッファ・ディスクを使用して、トランザクション・ログを保持(1516)することができる。
【0130】
ログは、送信キューに似た構造に編成することができ、したがって、データ・ブロックならびにそれに関する情報(LBNおよびタイムスタンプ)が、順序付けられた形で保存(1516)される。データを即座にディスクに書き込むのではなく、本発明は、バッファ・スペース可用性および/または管理者プリファレンスによって決定される時間の期間に、データをバッファに保管(1516)する。その時間が満了した時に、データが、バッファから除去(1516)され、ミラー・イメージに書き込まれる(1500)。この時点で、管理者は、その書込を元に戻す選択肢を有しない。リモート208が、ローカル204になる1506ことを必要とする場合に、同一のバッファ・スペース310をデータ送信専用にする1500前に、リモート・バッファ310全体を、RAIDユニット312などのディスクにコミットする必要がある。
【0131】
より一般的には、タイムスタンプ情報と共にバッファを使用することによって、ミラーリングされるサーバ200およびミラーリングされたデータを受け取るリモート・システムのバッファ310で既に行われたが、たとえばRAIDユニット312のミラー・イメージのためにバッファ310から出ていないものを、効果的に元に戻す(1516)ことができる。元に戻す動作は、管理ユーティリティを使用して、当のブロックをリモート側のキューから単純に除去(1516)することによって、管理者が実行することができる。
【0132】
[代替バッファリング方式(Alternate Buffering Scheme)]
異なるバッファリング方式を、いくつかのミラーリング・ユニット204で使用して、単純な環状キューと比較してバッファ・スペースおよび時間を節約することができる。ブロックが、受け取られた時にローカル・ミラー230に書き込まれ、LBN番号が、順序付きキューだけに保存されると仮定する。本明細書で使用する「順序付きキュー」は、その構造にサブミットされた順序と同一の順序で項目を取り出すことができる、すべてのキュー、リスト、FIFO、テーブル、あるいは1つまたは複数の構造の他の組を指す。具体的に言うと、環状キューが、順序付きキューの例である。
【0133】
ミラーリングされるブロックが、既にキュー内にあるがリモート・サイトにコピー1302されていないブロックの上に書き込まれる場合に、既存のブロックが、前に説明した実施形態での動作に類似する形でバッファ・スペースにコピーされる(たとえば、ブロックへのポインタだけが実際のキューに配置され、ブロック自体はスワップ・スペースに保管される)。この代替バッファリング方式を用いると、バッファ全体を「コンパクト」モードにすると同時に安全にすることができる。変更の変更だけがバッファリングされる。
【0134】
「コンパクト・モード」および「通常モード」は、バッファリング・モードを指す。コンパクト・モードでは、バッファが満杯になる時に活動し始める「最善を尽くす」戦略が実施される。通常モードは、管理者が定義した閾値または他の空きバッファ・スペース閾値に達するまで普通に使用されるバッファリング手法である。隠喩として、水がその高さになった時にそれについて何かをした方がよいので、閾値を、時々「最高水準」と称する。閾値に達した後に、バッファは、コンパクト・モードで動作し、このモードでは、LBNおよびデータではなく、変更されたLBNだけが追跡1510されるので、もはやすべての場合にデータ保存性が保証されなくなる。データは、通常通りにローカル・ミラー230に書き込まれ、LBNがキューから読み取られる時に、送信(1500)されるデータが、ローカル・ミラー230から読み取られる。多くの状況で、これは良好に機能し、すべてのデータがミラーリングされる。
【0135】
しかし、いくつかの状況で、ファイルが書き込まれ、その後、さらなる変更を伴って再書込される。両方の変更が、キューに置かれるが、最初の変更がキューから除去される時に、送信(1500)されるデータは、実際には第2の(またはより後の)変更からのものであり、したがって、その時の前にリモート・ミラーでディスク310/312に現れる。これは、ファイルシステム・オブジェクトがしばしば上書きされるので、個々のワード・プロセッサ・ファイルではなくファイルシステムをミラーリングする場合に、実質的な問題になる可能性がある。しかし、これは、「ある時に機能する可能性がある」方式であり、やはりある度合の保護を提供し、したがって、単純にバッファを使い果たすよりよい。
【0136】
この手法を改良するこの代替バッファリング方式は、ほぼ同一の形で動作する。しかし、所与のデータ・ブロックへの後続の書込の際に、ローカル・ミラー230のブロックが、コピーされ、バッファ内の別の場所に保管され、その結果、バッファ内のLBN番号が、より新しいデータではなく正しいデータを参照するようになる。このデータをキューに挿入しなおすことは実現可能でない。一般に、その余地を作るために、あまりに多数のキュー要素を移動する必要があるからである。しかし、特定のLBNの個々のエントリをその場で変更して、システム上の他の位置にあるデータを参照することができる。たとえば、第2の記憶域を、ローカル・ミラーリング・ユニット204が使用して、これらのブロックを保持することができる。
【0137】
この代替バッファリング方式の長所は、ほとんどの場合に、1つの書込動作だけが必要になることである。時折読取/書込/書込動作1518を行う必要が生じる、すなわち、ローカル・ミラー230からデータを読み取り、それを一時記憶装置に書き込み、キュー内のLBNエントリを更新して、ミラー内ではなく一時記憶装置内のブロックを指すようにし、新しいブロックをミラー230の、データの前のコピーが保管されていたところに書き込み、新しいブロックのLBNエントリをキューに追加する。
【0138】
[リモート多対一ミラーリング(Remote Many-to-One Mirroring)]
この革新には、本明細書の他所で述べた技術が含まれるが、この技術は、本明細書で述べるように、中央バックアップ・サイトまたはサービス・プロバイダとの多対1解決策でハードウェア/ソフトウェア・プラットフォームを提供するようにさらに適合される。ローカル・システムは、全般的に上で説明したように動作する。ローカル・ミラーリング・ユニット204は、SCSIバスを介してホスト・サーバ・システム200に接続され、固定ディスク・ドライブとして現れ、この固定ディスク・ドライブが、(たとえば)RAID−1ミラーの一部として使用される。データは、ローカル・バッファ210からローカル・ミラーリング・ユニット204の伝送プロトコルを介してリモート・サイトに送信1500され、動作の状態は、本明細書の他所で説明した通りである。管理インターフェースが、ローカル・システムと、ユニット508、608などのミラーリング・ユニットでのリモート多対1解決策との間の1対1ビュー(ローカル・ミラーリング・システムの観点からの)をサポートする。
【0139】
リモート多対1解決策では、ミラーリング・システムのトランスポートおよびバッファ管理ソフトウェアの複数のインスタンスすなわち、前に説明したリモート・ミラーリング・ユニット208、304、および408のソフトウェアに似たソフトウェアの複数のインスタンスを実行1520することができる。しかし、これらの実施形態では、カーネル・モジュールが、前に説明したシステムのカーネル・インターフェースをエミュレート(1520)するユーザ空間制御モジュールによって置換される。複数の「仮想リモート・ミラーリング・ユニット」(本明細書では「仮想システム」または「仮想1.1システム」とも称する)を、サーバ300または修正されたミラーリング・ユニット208、308、および408内の1つのハードウェア・プラットフォーム上でホスト(1520)することができる。ハードウェア・プラットフォームは、共通の使用可能なPosix/Unix/SRV4環境を提供することができる、任意のハイエンド・サーバ・システムとすることができる。例には、制限なしに、Solaris/Linuxを実行するSun社のサーバ、またはAIX/Linuxを実行するIBM社のサーバが含まれる。
【0140】
望み通りに動作(1520)する仮想システム・トランスポート・ソフトウェアの実施を容易にするために、このソフトウェアは、たとえば、ローカル・バッファ、リモート・バッファ、ローカル・ミラー、リモート・ミラーおよびカーネルを含むデバイスについて、データがデバイスからデバイスへどのように流れるかに関する仮定を一切設けずに、モジュラー式に記述されなければならない。データがどこからどこへ流れるかに関する制御は、カーネル・インターフェースを介して行われ、このカーネル・インターフェースは、ミラーの状態およびユーザが開始した状態変更に関する状態情報を維持する。
【0141】
いくつかの実施形態で、ハードウェア・プラットフォームが、SAN管理ソフトウェアを実行し、このSAN管理ソフトウェアが、ミラーリング・ユニット管理層とインターフェースして、動作のさまざまな状態(バッファ・デバイス、ミラー・デバイス、変化するミラー・デバイスなど)を実施する必要に応じてSAN記憶装置上のデバイスをローカル・デバイスにルーティングするなどの機能を提供する。多対1システムの管理インターフェースは、MIB拡張およびワールド・ワイド・ウェブスタイルのGUI拡張を介してSNMPを使用することによって、前に説明したミラーリング・ユニットの管理インターフェースから導出することができる。管理層内で、主(ローカル)ミラーリング・システムとの1対1関係が設けられ、なおかつ、リモート・システム上で必要な状態動作が可能である。SAN管理パケットは、チェックポイントのセット・アップ、ミラーリングされるデータの複数のコピーの作成、および/またはミラーリングされるようになるデバイスの変更などのタスクを自動化するために実施形態の管理層で使用することができる、類似するインターフェースのモデルとして使用することができる。
【0142】
[アプリケーション固有情報を用いない、頻繁にアクセスされるデータの識別(Identifying Frequently Accessed Data Elements Without Application−Specific Knowledge)]
このセクションおよびこれに続く2つのセクションでは、データのブロックが、「データ要素」の例であり、ディスク・セクタが、「記憶要素」の例である。「現在の組」は、ディスク・ドライブの抽象とみなすことができる。
フォールト・トレラント・データ・システムに共通する問題は、それを使用するアプリケーションが、アプリケーションが終了する前にデータ記憶動作の組の一部だけが完了した時の回復の方法を使用しないことである。フォールト・トレラントになるように設計されたアプリケーションは、通常は、データ記憶動作の組を実行する方法を有するが、ある最終動作が実行されるまで動作が有効であるとみなさず、したがって、動作のどれかが成功しなかった場合に、動作全体が有効でないとみなされる。しかし、多くのアプリケーションは、そのように設計されていない。
【0143】
フォールト・トレラントになるように特に設計されてはいないアプリケーションにフォールト・トレランスを提供する方法の1つが、実行される必要がある動作の詳細な知識を含むアプリケーション固有情報を有し、アプリケーションの外部でアプリケーションの状態を追跡することである。トランザクションが、アプリケーションを監視する外部エージェントを介してコミットされていない場合には、完全なトランザクションを、アクティブ・データ・セットから除去することができる。しかし、これは、モニタリング・エージェントが、アプリケーションの挙動に関する特殊化された知識を必要とし、したがって、アプリケーション自体の外部のデータ変更に敏感になるという点で、問題である。
【0144】
本明細書で説明する手法では、そのようなアプリケーション固有情報を有しないモニタリング・エージェントを使用して、頻繁にアクセスされるデータを識別1522する。エージェントは、アプリケーションによる記憶トランザクションの組が、時間的に関係するクラスタ内で行われることと、これに、通常は、隣接するデータ要素の第1グループに対する動作の組が含まれることと、記憶動作が、隣接するデータ要素の第1グループに対する動作の組の前および/または後に行われることと、記憶動作が、第1グループ以外の場所に配置され、異なるトランザクションに共通する隣接するデータ要素の第2グループまたはその付近で行われることを仮定1522する。これらの共通の要素を、本明細書では「状態ブロック」と称する。
【0145】
例として、ファイル・システム書込動作を検討されたい。データ・ファイルは、物理的保管媒体上で連続する隣接する記憶要素の組を通常は用いる1つまたは複数の動作の組で更新される。その後、更新が、ファイル・システム・テーブルに対して行われ、これは、異なるが一貫した形で参照される位置に保管され、限られた個数の物理的に関連する記憶要素の組の中にある。ファイルのユーザ・データを保持するセクタまたはクラスタは、隣接するデータ要素の第1グループに対応し、ファイル・システム・テーブル、ビットマップ、または類似するファイル・システム・データ構造を保持するセクタまたはクラスタは、隣接するデータ要素の第2グループに対応する。
【0146】
多くのアプリケーションが、これに似た書込戦略をサポートする。書込性能を高めるために、所与のオペレーティング・システムが、関係しない書込動作を単一の書込動作にクラスタ化することを試みる場合がある。その結果、データ・ファイル更新が、オペレーティング・システムに依存する時刻に行われる可能性がある。
【0147】
本発明を用いると、トランザクションを識別(1522)する方法の1つが、これらの特殊な状態ブロックに対する更新の間の記憶装置書込動作の追跡である。トランザクションには、2つの状態ブロック更新の間にデータ・ファイルに書き込まれるすべてのデータが含まれる。状態ブロックの識別(1522)は、正常な動作の範囲にわたってアプリケーションを動作(1522)させ、どの記憶動作がどれだけ頻繁にどの順序で書き込まれたかを追跡1522することによって行うことができる。ニューラル・ネット、統計分析、または類似する技法およびツールを使用して、結果のログから状態ブロックの識別を抽出(1522)することができる。計時的に、集約ログから、ある記憶要素が、他の記憶要素よりはるかに頻繁にアクセス/書き込まれることが示されなければならず、したがって、状態ブロックとみなされ(1522)なければならない。そのような明瞭な統計的に関係するパターンが見つからない場合には、この方法は、当のアプリケーションに適用可能でない。発明的方法は、必ずしも記憶装置を使用するすべてのアプリケーションと共に動作しない。
【0148】
この方法が、適切に使用される時には、アプリケーションが障害を発生し、回復できない場合に、アプリケーションが状態を回復できるまで、隣接するデータ・ブロックをアンコミット(1524)し、状態ブロック更新の間に書き込まれた状態ブロック更新をアンコミット(1524)することによって、回復を支援することができる。このアンコミット機能をサポートするために、本発明では、何らかの形の不揮発性記憶装置に、状態ブロック更新の間に上書きされるデータ要素を保管する。代替案では、本発明は、記憶動作をディスクにコミットする前に、その記憶動作をバッファリングし、状態ブロック記憶動作の次の組が検出され処理された後に、当のバッファ空間を解放することができる。読取動作は、コミットされたコピーからではなく、バッファリングされた記憶装置から読み取らなければならない。テーブルを維持して、バッファ内またはコミットされた記憶装置内の所与のデータ要素の位置を示すことができる。
【0149】
[主データ・ボリュームから正式でない副データ・ボリュームの回復(Resyncing a Non−Authoritative Secondary Data Volume from a Primary Data Volume)]
本発明は、ある時間期間にわたって副データ・ボリュームを主データ・ボリュームとして使用した後の障害回復のための、ローカル・ミラー210などの主データ・ボリュームからのリモート・ミラー・ディスク・サブシステム312または614などの正式でない副データ・ボリュームの再同期化のツールおよび技法も提供する。
通常の動作では、データ要素が、主データ・ボリュームに書き込まれ、その後、ミラーリング・ユニット204および208などのなんらかの手段によって副データ・ボリュームに書き込まれる。主データ・ボリュームのデータは、正式とみなされ、したがって、データ要素にアクセスする必要がある時に顧慮される。主データ・ボリュームの破壊的でない障害の場合(たとえば、停電または保管されたデータ要素の使用するアプリケーションからの一時的分離)に、使用するアプリケーションは、新しいデータ要素の保管とデータ要素の読取の両方に関して、副データ・ボリュームに向かうことができる。リスト(またはテーブル、あるいは別のデータ構造)が、保持され1526、主ボリュームが使用不能である間に副ボリュームで変更されたデータ要素が示される。このリストは、主ボリュームが使用可能になった時に、副データ・ボリュームの内容を主ボリュームの内容と再同期化1526するために顧慮される。再同期化1526処理では、主ボリュームから対応するデータ要素を読み取り、副データ・ボリュームに書き込む。
【0150】
副データ・ボリュームに対して行われた変更は、このシナリオでは正式でないと仮定され、通常は再同期化1526によって上書きされる。たとえば、使用するアプリケーションに固有の理由について、これがあてはまる場合がある。
したがって、適切な状況で、本発明は、2つのデータ・ボリュームの間の主−副関係を再確立する単純な方法を提供する。この再同期化1526は、役割逆転1506とは異なり、役割逆転では、副ボリュームが主の正式なボリュームになるが、再同期化1526では、主ボリュームが正式のままになる。
【0151】
[同一の物理的記憶システムにおける順序付きキューおよび現在のコピーの保管(Maintaining an Ordered Queue and a Current Copy on the Same Physical Storage System)]
本明細書の他所で述べるように、いくつかの実施形態で、データ要素書込が、ミラーリング・ユニット204によって、受け取られた順序で順序付きキューに保管され、その結果、これらを順番に読み戻すことができる。いくつかの実施形態では、データ記憶要素の組が、「現在のコピー」になるように定義され、データ要素を、現在のコピーから全体として読み戻す(1528)ことができる。記憶装置の所与のデータ要素に対する新しい記憶動作によって、現在のコピーのデータ要素が更新(1528)されるが、データ要素は、以前のシステム状態を回復するために、順序通りの読取のために使用可能(1528)である。
【0152】
これは、現在のコピーの記憶要素位置のテーブル(または他のデータ構造)を維持(1528)することによって管理される。このテーブルでは、現在のコピーの所与の記憶要素の最新のデータ要素のアドレスが識別される。読取要求が処理される時に、データ要素が、テーブル内でルック・アップ1528され、順序付きキューの、テーブルから参照される点から読み取られる。順序付き読取要求は、順序付きキューの既知の位置から、キューの順方向への形で読み取ることによって処理(1528)される。
【0153】
この手法では、物理的に区分された同一のデータ要素の2つのコピーを保持する、説得力のある理由がない。本発明は、物理的に区分されたシステムを実施するために記憶システムに同一のデータ要素を2回書き込むことをしない。ステップ1528の異なる実施形態に、符号1528によって集合的に示される特定の動作の1つまたは複数を含めるか省略できることに留意されたい。
【0154】
物理記憶システムが、順序付きキュー・データで満杯になる時に、最も古い順序付きキュー要素が、満了(1528)し、その記憶域が、新しい順序付きキュー要素のために解放される。現在の組の古い順序付きキュー要素を満了させる必要がある場合に、その要素を副記憶装置にコピー(1528)し、この新しい位置を参照するように順序付きの組を更新(1528)することができる。これが一般的なシナリオになるかどうかはアプリケーション固有であるが、多くのシナリオで、本発明のこの態様(1528)が、現在の組およびデータ要素の組の順序付きキュー・ビューの両方を維持するのに必要な書込動作の数を減らす傾向がある。
【0155】
順序付きキューを保持することの結果として、前の現在の組が、再構成(1528)に使用可能になる。前の現在の組は、新しい現在の組になる順序付きキュー内のある時点を選択(1528)することと、選択された時点より新しい順序付きキューの要素への参照について参照テーブルをスキャン(1528)することと、現在の組の正しい部分を参照する、より古い順序付きキュー要素を参照するように参照テーブルを更新(1528)することによって、再構成することができる。
【0156】
多くの状況で、本発明のそのような実施形態1528による読取動作について、性能ペナルティを受ける。というのは、これらの読取動作が、ある状況で連続する記憶要素に対して行われないからである。しかし、記憶動作は、どの順序でも効率的である。というのは、記憶動作が、必ず、たとえば順序付きキューが記憶システムの記憶要素の線形アレイとして実施される場合に、順序付きキュー配置内の連続する記憶要素に対するものでることが好ましいからである。
【0157】
[構成された記憶媒体、信号(Configured Storage Media, Signals)]
本発明の範囲内の製造品には、コンピュータ可読記憶媒体の基板の特定の物理構成と組み合わされるコンピュータ可読記憶媒体が含まれる。基板構成によって、本明細書に記載の特定の事前に定義された形でコンピュータに動作させるデータおよび命令が表現される。適切な記憶装置には、フロッピ・ディスク、ハード・ディスク、テープ、CD−ROM、RAM、フラッシュ・メモリ、および1つまたは複数のコンピュータによって可読の他の媒体が含まれる。そのような媒体のそれぞれによって、図13に記載のステップの一部またはすべてを実行する方法および図2から12に記載のシステムをインストールし、かつ/または使用する方法を制限なしに含む、実質的に本明細書に記載の柔軟なミラーリング方法ステップを実行するために計算機によって実行可能である、プログラム、関数、および/または命令が有形に実施される。本発明は、そのようなプログラム内またはそのようなプログラムによって使用される新規の信号も提供する。信号は、「ワイヤ」、RAM、ディスク、あるいは他の記憶媒体またはデータ担体で実施することができる。
【0158】
[追加情報(Additional Information)]
人および企業が本発明を理解し、正しく実践するのをさらに助けるために、追加の洞察および詳細を下で示す。これらのコメントは、実施形態タイプ(方法、システム、構成された記憶媒体)のいずれかの議論が、そうでないことが明らかに示されない限り、他の実施形態タイプにも適用されるという前提を継続するものとして与えられる。
【0159】
[発明の改良の特別の例(Specific Examples of the Invention’s Improvements)]
データ保護の問題に対する多くの他の解決策(テープ・バックアップ、ローカル・クラスタリング、複製、シャドウイング、リモート・メインフレーム・チャネル拡張など)は、多少はホスト200のオペレーティング・システムに直接につながり、依存する。この依存によって、顧客にとっての問題が生じるが、これは、本発明を使用することによって回避することができる。たとえば、依存する専用ソフトウェアに頼ることは、そのソフトウェアが現在のホスト・オペレーティング・システムまたはオペレーティング・システムに対するアップグレードと共に完全には機能しない時に、互換性の問題およびバグを引き起こす可能性がある。専用のホスト・ミラーリング・ソフトウェアに依存するソフトウェア解決策は、ホストでの追加の作業を課すので、性能の問題も提示する可能性がある。依存ソフトウェア解決策は、不安定性のポイントになる可能性もある。ディスク・ボリュームが大きくなり、ソフトウェアおよびオペレーティング・システムが複雑になるにつれて、依存ソフトウェアを必要とする手法に関して、これらの問題が増える。さらに、ホスト200のオペレーティング・システムが、フリーズする場合に、そのオペレーティング・システムに依存する解決策も、機能を停止する。
【0160】
対照的に、いくつかの実施形態で、本発明は、ホスト・コンピュータ(たとえばローカル・サーバ200)にロードされるソフトウェアを全く有しておらず、これによって、前述の問題が軽減されるか回避される。ホスト・オペレーティング・システムがフリーズする場合に、ミラーリング・ユニットは、動作を継続し、ミラーリングされるデータは、ミラーリング・ユニットがそれ自体のオペレーティング・システムを実行しているので、使用可能である。ディスク・ボリュームが増え、ソフトウェアが複雑になるにつれて、コアでの実施的な修正を必要とする解決策と異なって、本発明は、簡単にスケーリングされる。より高速のプロセッサが登場した場合には、望みに応じてこのプロセッサを単純にミラーリング・ユニットで使用する。ディスク・サイズが大きくなる場合には、ミラーリング・ユニットにより大きいディスクを付ける。データ変更速度が、ディスクへの書込の現在の能力を超える場合には、キャッシング・コントローラを使用し、システムにメモリを追加する。他の解決策のいくつかは、バグなしで統合され、正しく動作するために、オペレーティング・システム製造業者からの協力を必要とする。すべてのオペレーティング・システムが、予見できる将来についてSCSIおよびファイバ・チャネル(たとえば)をサポートするので、そのような協力は、本発明のインストールおよび使用について必要ではない。
【0161】
他の解決策は、障害を発生する時に、上で概要を示した密な相互作用のゆえに、ホスト200を巻き添えにする可能性がある。本発明は、ホスト200から独立に動作することができるので、障害を発生する場合に、ホスト・コンピュータに深刻に影響する必要はない。従来のディスク・ミラーリングは、元々は、ローカル・フォールト・トレランスのために設計された。2つのディスクが、並列に書き込まれ、一方のディスクが障害を発生した場合に、コンピュータが、動作を継続する。障害を発生したディスクは、バックグラウンドでオペレーティング・システムからマウント解除される。オペレーティング・システムおよびコンピュータは、しばししば、全く止まらずに動作し続ける。発明的ミラーリング・ユニットは、SCSIディスクのように見え、ミラーリングされたディスクとしてマウントすることができるので、類似する長所を提供する。ミラーリング・ユニットが壊れた場合に、簡単にマウント解除することができる。たとえば、ミラーリング・ユニットのオペレーティング・システムまたは他のソフトウェアが障害を発生する場合に、ミラーリング・ユニットが、ディスクのエミュレーションを停止する。その結果、ホスト200上のオペレーティング・システムは、もはやミラーリング・ユニットを認識しなくなる。これに応答して、ホスト200上のオペレーティング・システムは、単純にミラーリング・ユニット204をマウント解除し、動作を継続する。
【0162】
少なくともいくつかの前のミラーリング・システム実施形態で、単一ディスクIDEバッファが使用された。スプーフィングを用いる場合であっても、そのようなスマート・バッファは、ハードウェア・ストライピングを用いる高速SCSI RAIDユニットに追従することができなかった。リモート位置に送信されつつある最もクリティカルなデータが、スマート・バッファ・レベルでのフォールト・トレランスを有しない単一のディスクに委ねられた。本発明を用いると、対照的に、ローカルおよびリモートのミラーリング・ユニットの両方が、フォールト・トレランスのために単一のディスク・バッファをミラーリングすることができ、複数のディスクにまたがるハードウェアRAIDストライピングを実行することができる。これによって、サーバ側の新しい高速記憶サブシステムに追従する能力と、よりよいフォールト・トレランスがもたらされる。サーバ200のボリュームまたはミラーリング・ユニットのディスク210、310での個々のディスクの障害の場合に、バッファリングされたデータを失う危険性も減る。
【0163】
従来の手法の限られたデータ入力能力によって、市場に受け入れられつつある新しい技術に対処することが非常に困難になる。たとえば、少なくともいくつかの従来の手法では、ストレージ・アクセス・ネットワーク(SAN)またはネットワーク接続ストレージ(NAS)サポートがない。サーバ300などの標準のリモート・サーバを必要とすることによって、優勢になりつつあるSANおよびNASのディスク・サブシステムのバックアップおよびミラーリングが困難または不可能になる。しかし、これらのサブシステムのすべてが、イーサネット、ファイバ・チャネル、および/またはSCSIを介してローカル・ミラーリングを実行することができる。発明的ミラーリング・ユニットは、SCSI、イーサネット、およびファイバ・チャネルの入力を含む、複数の入力タイプを受け入れることができる。
【0164】
本発明は、より大きい記憶サブシステムのサポートも提供する。多くの以前のフォールト・トレランス解決策は、6ギガバイトのストレージ・ボリュームが非常に大きいと思われていた環境用に設計されている。記憶装置コストが下がるにつれて、ディスク・サブシステムが、非常に速い速度でサイズを増やしつつある。サーバが、100ギガバイトの複数のボリュームを有することが、現在では一般的である。本発明は、部分的に、ホスト・サーバ200の同期化をバックグラウンドですなわち、ミラーリング・ユニットで処理することによって、これらのより大きいボリュームに対処する。ホスト・サーバからミラーリング・ユニットにこのタスクをオフロードすることによって、大きい性能低下なしにメイン・ホスト・サーバ200の真のミラーリングが可能になる。対照的に、ミラーについて必要な同期化を処理するためにローカル・サーバを必要とする代替の「クラスタ化」解決策および/またはミラーリング解決策は、主サーバを極端に低速化するか、クラッシュさせる可能性がある。
【0165】
少なくともいくつかの以前の再ミラーリングの実施形態では、遠隔通信リンクを介するミラーリングされたディスクの再同期化(再ミラーリング)を回避するためにかなりのことを行ってはいるが、ローカル・バッファがローカル・ボリューム全体をサポートできない場合に、ローカル・サーバ200が介入することを必要とした。再ミラーリングによって、メイン/主/ホスト・サーバ200が、停止まで速度を落とし、数日を要する可能性があった。したがって、再ミラーリングは、一般に、ユーザが少ないのでネットワークが低速で動作することができる週末にのみ実行されてきた。しかし、ディスク・サブシステムが大きくなるにつれて、これが受入可能ではなくなってきた。本発明は、リモート位置だけではなくローカル・ミラーリング・ユニット204内で、リモート位置にミラーリングされつつある完全なボリュームを保持するのに十分に大きい不揮発性記憶装置をサポートする。これによって、ローカル・ミラーリング・ユニット204が、完全なローカル・ディスク記憶ボリュームをローカル化されたスマート・バッファに事前アクノレッジできるようになり、再ミラーリングに関係するタスクを、サーバ200の観点から「バックグラウンド」で実行できるようになる。
【0166】
少なくともいくつかの従来の手法では、ローカルまたはリモートのいずれかの位置からのT1出力の最大速度の制限によって、フレーム・リレー・ネットワーク、ATM、および/またはVSATネットワークが使用可能である場合であっても、再ミラーリングが低速になった。対照的に、本発明を用いると、より高い入出力パイプ能力が柔軟に可能になり、これによって、再ミラーがよりすばやく、データ配布がより効率的になるので、性能を改善することができる。リモートに保管されるミラーリングされるデータが、使用不能になる場合には、使用不能なサイトに保管されたデータを、高速私有データ・ネットワークを使用して別の施設に高速で移動することができる。これらのデータ・ネットワークは、通常は、OC48レート(2.488ギガビット毎秒)までの帯域幅をサポートする。この1例が、通常はシカゴにデータをミラーリングし、現在は回復のためにニュー・ヨークの施設を使用する必要がある顧客である。このタイプの必要は、当初に認識されたよりもはるかに一般的である。
【0167】
元のオフーサイトサーバ製品は、オープンなアプリケーション・プログラミング・インターフェース(「API」)を提供できなかった。その代わりに、元のオフーサイトサーバ製品は、クローズドなプロプラエタリ・ハードウェア(ミラリンクの)およびクローズドなプロプラエタリ・ソフトウェア(Vincaの)だけのために記述された。会社顧客が、その製品の範囲を超える必要を有する場合に、一般に、カスタム修正またはカスタム調整を行う簡単な方法はなかった。対照的に、本発明は、オープンなAPIを可能にし、その結果、ユーザ空間プロセスから調整を行って、特定の顧客および/または新しい市場に対処することができる。具体的に言うと、制限なしに、本発明は、サーバ200を中断させずにミラーリング・ユニットを再構成する1つまたは複数の呼出しを提供し、サーバ200を中断させずにミラーリング・ユニットをリブートする呼出しも提供するAPIを有することが好ましい。
【0168】
[コンフィグレーション・データ(Configuration Data)]
システム構成データは、分散され、その結果、ミラーリング・ユニットの1つが構成データを失った場合に、構成データをそのユニットのピアノ1つから回復できることが好ましい。ネットワーク情報などの基本的な構成データは、不揮発性記憶装置(たとえば、ディスク、またはバッテリバックアップされた半導体メモリ)に保管され、その結果、ディスク上の構成データが失われた場合であっても、構成データをピア・ミラーリング・ユニットから復元できることが好ましい。
【0169】
ワールド・ワイド・ウェブ・インターフェースが、最低限でも、次の構成オプションまたはその同等物を提供することが好ましい:IPアドレス(リモート/ローカル);ゲートウェイ(リモート/ローカル);ネット・マスク(リモート/ローカル);管理者パスワード(共用);バッファ・サイズ(ローカル);バッファ最高水準(許容可能な限度を超えて満たされるバッファ);ボリューム・サイズ(工場で構成されたハード最大値まで構成可能);SCSIターゲット論理ユニット番号(LUN);およびSNMP構成(リモート/ローカル)。
【0170】
SNMP構成自体に、下記が含まれることが好ましい:SNMPモニタリング・ホストの追加/削除(ローカル/リモート);イベント・ポーリング間隔:共用可能な限度を超えて満たされるバッファ;ネットワーク接続障害:バッファ満杯;リモート同期外れ;電子メール宛先の追加/削除。
【0171】
ウェブ・インターフェースは、最低限でも、下記の状況情報を提供することが好ましい:バッファ内のブロック数;送信されたブロック数;受信されたブロック数;ミラーリング・ユニットのバージョン;ミラーリング・ユニットの通し番号;ボリューム・サイズ;このユニットがリモートまたはローカルのどちらであるか。ウェブ・インターフェースは、アンマウント・リモート・ユーティリティを提供することが好ましい。ウェブ・インターフェースは、ログ・ダンプ・レポートも提供することが好ましい。SNMPトラップおよびSMTPトラップは、通常は、下記のイベントに使用される:バッファが許容可能な限度を超えて満たされた;バッファ満杯;ネットワーク接続障害;リモート同期外れ。
【0172】
管理ツールは、電子メール、ポケット・ベル呼出し、または他の手段による通知を提供することができる。通知は、リアルタイムおよび/あるいは自動化されたログまたは自動的に生成されるレポートとの組合せとすることができる。通知は、システム管理者および/またはベンダに送信することができる。インターフェースとしてウェブ・サーバ/メール・サーバ・パッケージを実行する実施形態では、ウェブ・サーバの特性の多くが使用可能である。たとえば、ユーザが、ローカルまたはリモートのいずれかで、ミラーリング・ユニットにアクセスし、管理することができる。許可に応じて、ユーザが、会社内および/または世界中のどこからでも、ミラーリング・ユニットにアクセスすることができる。ミラーリング・ユニットは、ミラーリング・ユニットに関する問題または重要なイベントについて、電子メールならびにSNMPを介してユーザ(およびミラーリング・ユニット・ベンダ)に通知することができる。この電子メール用のカスタム・スクリプトを記述し、その結果、異なるユーザまたはユーザのグループに通知することができる。レポート出力は、必ずしも静的ではない。顧客が、毎月必要な情報をコピーし、レポートを何度も記述するのではなく、管理のためにカスタム・レポートを必要とする場合に、顧客または保証された開発者が、HTML、Java、および/または他の一般的なツールおよび技法を使用して、ミラーリング・ユニットに、必要に応じて望みのフォーマットでレポートを生成させ、電子メールで送信させることができる。
【0173】
[基本的ハードウエア(Basic Hardware)]
一般に、本発明によるシステムには、標準的なPentium II、Pentium III、AMD K6−3、またはAMD K7クラスのPC互換コンピュータ(めいめいの所有者の商標)などの基本ハードウェアが含まれる。さまざまな構成で、計算機が、少なくとも64、128、または256メガバイトのRAMを有し、ラックマウント式ケースを有することが好ましい。これには、1つの100Mbイーサネット・カード、FDDIカード、または類似物も含まれることが好ましい。ディスク・インターフェースについて、計算機は、ディスク・エミュレーション用のQLogic SCSIカードと、バッファおよびミラー制御用のAdaptec 2940UWアダプタ、またはFreeBSDによってサポートされるDPTブランドのRAIDカードを有することが好ましい。RAIDまたはSCSIのコントローラのキャッシング、ミラーリング・ユニット内の揮発性RAMでのキャッシング、ミラーリング・ユニット内の不揮発性RAM(たとえばスタティックRAMまたはバッテリバックアップRAM)でのキャッシング、その他などを含む、キャッシングを使用することができる。当業者によく知られているキャッシングのツールおよび技法は、本発明による使用のために簡単に適応させることができる。
【0174】
いくつかの実施形態で、Nが、ミラーリングされるボリュームのサイズである場合に、ローカル・ミラー230を含むローカル・ミラーリング・ユニット204は、そのローカル・ミラー用に少なくともNの記憶容量を有する。いくつかの実施形態で、ローカル・バッファ210(ローカル・ミラーありまたはなし)として働くディスク・システムは、少なくともNの6/5すなわちNの1.2倍の容量を有する。リモート・ミラーリング・ユニットは、リモート・ミラー用の、少なくともNのサイズの少なくとも1つのディスク・システムを有する。すべてのシナリオで、ローカル・ミラーリング・ユニット・バッファ210は、ローカル・ミラーを可能にするために、バッファおよびホットスワップ可能RAIDサブシステムを含めて、そのリモート・ミラーリング・ユニットに対して、データ容量において同等である必要がある場合がある。
【0175】
[Test Suite]
本発明によるシステムの性能を測定するのに使用されるテストには、相対性能を測定するのに使用することができる分析テストと、クリティカル機能仕様適合判断基準をカバーするブール(合格/失格)テストが含まれることが好ましい。ブール・テストは、すべての質問に対する指定された回答が、テスト結果にと正しく一致する場合に合格する。ブール・テストは、提出物が適当であるかどうかを判定するのに使用することができる。
【0176】
テストは、好ましくは、ローカル・ネットワーク構成(ジャーニー・リンク206が、単一のローカル・エリア・ネットワーク内にある)と、ローカルおよびリモート構成(ローカル・ミラーリング・ユニット204とリモート・ミラーリング・ユニットが互いに地理的に離れている)の両方で合格しなければならない。たとえば、リモート・ネットワーク構成を、ジャーニー・リンク206として、T1リンク206または同等の量の公衆インターネット帯域幅によって一緒に接続された2つのサイトからなるものとすることができる。
【0177】
分析テストでは、Bonie(UNIX用)またはPCTools(Windows NTおよびNovellクライアント用)などの標準ディスク・ハードウェア・テスト・スイートを使用することが好ましい。テストによって、ネイティブ・ディスク・ドライブ(モデル、サイズ、および特性が記録される)の性能を、柔軟なミラーリング・ユニット204の性能と比較する。性能出力は、後の参照のために記録される。
【0178】
下記の質問が問われることが好ましく、示された通りの答えが得られるまで、必要な訂正を行う。
ミラーリング・ユニット204が、正しい構成されたサイズを有するディスクとしてホスト200のオペレーティング・システムによって認識されるか(はい)。
データを、消失なしでミラーリング・ユニット204から読み書きできるか(はい)。
ホスト・システム200が、エラーなしで48時間にわたってミラーリング・ユニット204のデータに関する任意のファイル動作を実行できるか(はい)。
100メガバイトのホスト・ボリュームおよびリモート・ネットワーク構成を用いて構成されたローカル・ミラーリング・ユニット204が、FDDIまたは他のサポートが存在する場合に、少なくとも300メガバイト/時間、好ましくはそれを超えるデータ速度で、リモート・ミラーリング・ユニットに成功裡にデータをミラーリングすることができるか(はい)。300メガバイト/時間が、T1接続の最大搬送容量より約50%低いことに留意されたい。T1容量は、約617メガバイト/時間である。
ローカル・ミラーリング・ユニット204が、接続されたホスト・システム200が通常の形の動作に失敗せずに完全にリブートできるか、すなわち、ホスト200が、大きい性能低下なしで企図された目的を満たし続けるか(はい)。
【0179】
ローカル・ミラーリング・ユニット204が、オン・ラインに戻る時に、ローカル・ミラーリング・ユニット204のキューに残されたデータのネットワークまたは他のジャーニー・リンク206を介する(たとえばTCPソケットを使用する)転送を自動的に開始でき、データの消失なしにリモート・ミラーリング・ユニットにそのデータを送信できるか(はい)。これは、ホスト・システム200に接続されている間にローカル・ミラーリング・ユニット204をリブートする前と後に、ホスト・システム200のリモート・ミラーリング・ユニットのドライブをマウントすることによって確認されなければならないことに留意されたい。リモート・ミラーは、そのようなイベントの後に、ファイル・システム修復の重大な必要なしにマウント可能でなければならない。データは、失われてはならず、それを作成したアプリケーション・プログラムにとって意味があるものでなければならない。ローカル・ホスト・システム200のリモート・ミラーを物理的にマウントした後に、ホスト・システム200が、ミラーをマウントできるか、また、ホスト200のアプリケーション・プログラムおよびそのクライアントが、ミラーのデータを成功裡に使用できるか(はい)。
【0180】
誤ったリモートIPアドレスまたは無効なSCSI ID(0未満または16以上)などの不正な情報の入力に応答して、ミラーリング・システムがクラッシュまたはハングするか(いいえ)。ミラーリング・ユニットのリブートを必要とせずに、ユーザがその情報を訂正でき、ソフトウェアを再初期化でき、ソフトウェアに普通に実行させることができるか(はい)。すべてのソフトウェアが、正しいバージョン番号および著作権宣言文を表示するか(はい)。
ミラーリング動作または他のディスク入出力集中型動作がホスト・システム200によって行われつつある30分の期間、好ましくはそれより長い期間の、ネットワーク・ケーブル206の切断に応答して、ローカル・ミラーリング・ユニット204が動作を継続するか(はい)。それが正しい構成されたサイズを有するディスクとしてホスト・オペレーティング・システムによって認識されるか(はい)。消失なしでローカル・ミラーリング・ユニット204からデータを読み書きできるか(はい)。
【0181】
最初のミラーが確立された後に、24時間の間ネットワーク・ケーブルを切断し、テストの周期的な再実行を実行する。ローカル・ミラーリング・ユニット204が、それでも、ホスト200のオペレーティング・システムによって、正しい構成されたサイズを有するディスクとして認識されるか(はい)。消失なしでローカル・ミラーリング・ユニット204からデータを読み書きできるか(はい)。
同様に、ホスト・システム200に、強制的にバッファ210をオーバーフロー(たとえば、複数回再ミラーリングすることによって)させた後に、ローカル・ミラーリング・ユニット204が、まだ可能な範囲まで正しく動作することを検証する。ローカル・ミラーリング・ユニット204が、それでも、ホスト200のオペレーティング・システムによって、正しい構成されたサイズを有するディスクとして認識されるか(はい)。消失なしでローカル・ミラーリング・ユニット204からデータを読み書きできるか(はい)。ローカル・ミラーリング・ユニット204のリブートを必要とせずに、ユーザがエンキュー処理を停止し、再起動することができるか(はい)。ローカル・ミラーリング・ユニット204のリブートを必要とせずに、ユーザがエンキュー処理を停止し、再起動することができるか(はい)。データが少なくとも部分的に複数回再ミラーリングされた場合に、ユーザが、ミラー全体をフラッシュせずに、たとえば打ち切られたミラーのフラッシュなど、バッファの指定された部分を選択的にフラッシュすることができるか(はい)。
【0182】
ミラーリング動作または他のディスク入出力集中型動作が、ホスト・システム200によって行われつつある間に、ネットワーク・ケーブルまたは他のジャーニー・リンク206を30分間切断する。物理ネットワーク接続を再確立した後に、ローカル・ミラーリング・ユニット204が、リモート・ミラーリング・ユニットへキューからのデータの送信を開始できるか(はい)。バッファの状態に関する有効な統計(たとえば、満杯であるか否か、バッファ内のブロック数、バッファから転送されたブロック数およびリモート側で受信されたブロック数)がローカル・ミラーリング・ユニット204から使用可能か(はい)。
【0183】
ローカル・ミラーリング・ユニット204のUPSのプラグを抜き、ホスト・システム200をシャット・ダウンし、ローカル・ミラーリング・ユニット204の電力がなくなるのを待つ。ローカル・ミラーリング・ユニット204の電源を回復し、その後、ホスト・システム200の電源を回復する。ホスト・システムは正しく動作するか(はい)。接続されたホスト・システム200が通常の形で動作できなくなることなしに、ローカル・ミラーリング・ユニット204を完全にリブートできるか(はい)。ローカル・ミラーリング・ユニット204が、オン・ラインに戻る時に、データの消失なしに、ローカル・ミラーリング・ユニット204のバッファ210に残されたデータのネットワークまたは他のジャーニー・リンク206を介する転送を自動的に開始するか(はい)。これらのリモート・ミラー・マウント・テストの最後の2つが、このシミュレートされた停電の前および後の両方で実行されなければならないことに留意されたい。これに合格したか(はい)。
【0184】
さらに、200ギガバイトのホスト・ボリューム・サイズで、前のすべてのテストに合格するか(はい)。
【0185】
主ホスト・システム200と同一のオペレーティング・システムを実行するスタンバイ・サーバによって、リモート・ミラーリング・ユニットをディスエーブルし、リモート・ミラーをマウントできるか(はい)。
その後、リモート・ホストが、普通に、その性能に対する悪影響なしに動作するか(はい)。前の2つのテストの動作が、リモート・バックアップ・ホストを、リモート・ミラーリング・ユニットおよびそのリモート・ミラー・ディスク・サブシステム312または614と同一のSCSIチェーンに接続することによってサポートされることに留意されたい。
【0186】
[要約]
本発明は、ローカルおよび/またはリモートのデータ・ミラーリングのツールおよび技法を提供する。具体的に言うと、本発明によるデータのリモート・ミラーリングのコンピュータ・システムに、1つまたは複数の柔軟なミラーリング特性が含まれる。ローカル・ミラーリング(たとえば、ソースと宛先が16km(10マイル)未満だけ離れている)のシステムも、そのような柔軟なミラーリング特性を有する。
たとえば、このシステムは、サーバレス宛先を有するという特徴がある。すなわち、このシステムの一実施形態では、ソースとしてのローカル・サーバ200からローカル・ミラーリング・ユニット204を介して宛先としてのリモート・ミラーリング・ユニット208、408、508、608、または708へ、リモート・ミラーリング・ユニットに接続されたリモート・サーバの使用を必要とせずに、データがミラーリングされる。
【0187】
このシステムは、特にリモート・データ・ミラーリング用に設計されたソフトウェアをローカル・サーバ200にインストールする必要がないという点で、非侵略的という特徴も有することができる。同様に、そのようなソフトウェアを、サーバ300を含むシステム内の副サーバ300にインストールする必要はない。その代わりに、各ミラーリング・ユニットが、オペレーティング・システムと、1つまたは複数のリモート・データ・ミラーリング・アプリケーション・プログラム(スレッド、プロセス、タスクなどを含む)を実行する。たとえば、サーバではなくミラーリング・ユニットが、ミラーリングされるデータをバッファリングし、ジャーニー・リンク206を介する接続を作成し、監視し、ジャーニー・リンク206を介してミラーリングされるデータを送受信し、これによって、サーバをこれらのタスクから解放する。同様に、このシステムは、ディスク・エミュレーションの特徴があり、システムが、ローカル・サーバ200からローカル・ミラーリング・ユニット204へ、標準記憶サブシステム・バスを介してデータをミラーリングするようになっている。適切な標準記憶サブシステム・バスには、SCSI、ファイバ・チャネル、USB、および他のプロプラエタリ・バスが含まれる。そのようなバスを、本明細書ではローカル・ミラーリング・ユニット204への「接続」とも称する。
【0188】
このシステムは、TCPジャーニー回線特性および/またはイーサネット・ジャーニー回線特性の特徴を持つことができる。たとえば、あるケースで、システムが、ローカル・サーバ200から、TCPクライアントとしてジャーニー回線206を介して動作するローカル・ミラーリング・ユニット204を介してデータをミラーリングし、リモート・ミラーリング・ユニット208、308、408、508、608、および708が、TCPサーバとして働く。より一般的には、ジャーニー回線特性は、SCSI、元のオフーサイトサーバシリアル接続、SAN接続、および類似物によって課せられる高速低待ち時間要件が、ローカル・ミラーリング・ユニット204とリモート・ミラーリング・ユニットの間の接続(206)に存在しないことを示す。
【0189】
このシステムは、多重度特性の特徴を持つこともできる。すなわち、このシステムは、複数のローカル(主)サーバ200から単一のリモート・ミラーリング・ユニット208、308、408、508、608、または708への多対1ミラーリングを提供することができる。リモート・ミラーリング・ユニット不揮発性記憶装置のデータ・ミラーリング・システムに、各ディスク区画がめいめいのサーバ200のミラーリングされたデータを保持する、主ネットワーク・サーバ200ごとに1つのディスク区画、サーバ200ごとに1つの外部ハード・ディスク614、サーバ200ごとに1つのRAIDユニット312、またはこれらの組合せを含めることができる。さまざまな主(ローカル)サーバ200は、すべてが同一のオペレーティング・システムを使用することができ、あるいは、異なるオペレーティング・システムの何らかの組合せを使用することができる。いくつかの場合に、宛先不揮発性記憶装置が、主サーバ200のすべての組み合わされた現在の不揮発性データを保持するのに十分に大きい。もう1つの多重度特性として、このシステムは、所与のローカル(主)サーバ200から複数のリモート・ミラーリング・ユニット208、308、408、508、608、または708への1対多ミラーリングを提供することができる。
【0190】
本発明は、柔軟なミラーリング・ユニットをインストールする方法、そのようなユニットを使用する方法、およびその両方を行う方法を含む方法も提供する。たとえば、柔軟なデータ・ミラーリングを容易にする方法に、インストール・ステップのグループ1300からの少なくとも2つのステップが含まれる。柔軟なデータ・ミラーリングのもう1つの方法に、1つまたは複数の送信ステップ1302が含まれる。
【0191】
インストール・ステップの1つに、標準記憶サブシステム・バス202を用いてローカル・サーバ200をローカル・ミラーリング・ユニット204に接続1304し、これによって、ローカル・ミラーリング・ユニット204が、リンク202を介する通信でディスク・サブシステムをエミュレートできるようにすることが含まれる。ステップ1306に、イーサネット接続およびTCP接続の少なくとも1つによるデータの伝送のために、ローカル・ミラーリング・ユニット204をジャーニー・リンク206に接続することが含まれる。ステップ1308に、イーサネット接続およびTCP接続の少なくとも1つによって送信されたデータを受け取るために、リモート・ミラーリング・ユニット208、308、408、508、608、または708をジャーニー・リンク206に接続することが含まれる。テスト・ステップ1310で、前述の接続ステップの少なくとも1つの少なくとも部分的な完了の後に、少なくとも1つのミラーリング・ユニット208、308、408、508、608、または708をテストする。
【0192】
送信ステップ1302の1つが、ステップ1312であり、このステップでは、ローカル・ミラーリング・ユニット204がディスク・サブシステムをエミュレートしている間に、標準記憶サブシステム・バス202を介してローカル・サーバ200からローカル・ミラーリング・ユニット204にデータを送る。ステップ1314では、ジャーニー・リンク206を介してローカル・ミラーリング・ユニット204からリモート・ミラーリング・ユニット208、308、408、508、608、または708にデータを送る。ステップ1316(ステップ1314と同一のデータ送信を用いて実行される場合がある)では、リモート・ミラーリング・ユニットがサーバレスである時すなわち、リモート・ミラーリング・ユニットが副サーバ300に接続されていない時に、ローカル・ミラーリング・ユニット204からジャーニー・リンク206を介してリモート・ミラーリング・ユニット208、308、408、508、608、または708にデータを送る。
【0193】
これらおよび他の実施形態では、役割逆転1506、ホット・スタンバイ・サーバ実施形態1508、さまざまなバッファリングおよび他の記憶装置特性1510、1518、および1528、SCSIまたは他のバスでのコマンド取込1512および再生1514、トランザクショナリティ(1516)、単一のハードウェア・プラットフォーム上のリモート・ミラーリング・ユニット・ソフトウェアの複数のインスタンスの実行1520、アプリケーション状態回復1524をサポートするための、所与のアプリケーションの記憶動作の詳細な高度な知識ではなく計時的観察に基づく頻繁にアクセスされるデータの識別1522、および正式でない副サーバの使用1526に対処するものなどの追加の特徴を有することができる。
【0194】
本発明の実施形態は、リモート・ミラーリング・ユニットへの比較的低帯域幅接続のジャーニー・リンク206待ち時間をマスクし、これによって、専用ファイバを用いても以前にはミラーリングが不可能であって状況での長距離を介するオフサイト・ミラーリングを容易にし、低コスト・ネットワーク接続を介するミラーリングを容易にするなどの利益を提供することができる。そのような低コスト接続接続は、ピーク・レートをサポートするのではなく平均ディスク・データ変更速度をサポートすることだけに十分な帯域幅を有する場合であっても使用することができる。本発明の実施形態を、サーバ・ミラーリングではなくディスク・ミラーリングに使用することができる。実施形態を、バックアップおよび回復だけではなく、高可用性主記憶システムとして使用することもできる。リモート多対一実施形態では、カーネル・モジュールか、バッファおよびSCSIまたは他のトランスポート・プロトコルへのソフトウェア・インターフェースを、より汎用のユーザ空間制御モジュールに置換することができ、このユーザ空間制御モジュールは、実際のSCSIまたは他のトランスポート・プロトコル処理層の必要なしに、システムのインターフェースをエミュレートする。デバイスには、たとえば、ローカル・バッファ、リモート・バッファ、リモート・ミラー、およびSCSIまたは他のトランスポート・プロトコル層を含めることができる。SAN管理ソフトウェアを実行するハードウェア・プラットフォームを、集中化することができる。
【0195】
本発明の特定の実施形態(方法、構成された記憶媒体、およびシステム)を、特に図示し、本明細書で説明した。不要な繰り返しを避けるために、1つの実施形態に適用可能な概念および詳細は、他の実施形態に関して必ずしも明白に記述されていない。しかし、他の形で特に示されない限り、本発明の特定の実施形態の説明は、他の実施形態に拡張される。たとえば、発明的システムの議論は、その方法にも関係し、逆も同様であり、発明的方法の説明は、対応する構成された記憶媒体にも関係し、逆も同様である。
【0196】
本明細書で使用される用語「a」および「the」と、「ミラーリング・ユニット」などの用語は、一般に、1つまたは複数の指示された項目を含む。本発明を、その本質的特性から逸脱せずに、他の特定の形で実施することができる。説明された実施形態は、例示にすぎず、制限的ではない。見出しは、便宜上のものにすぎない。本発明の範囲は、前述の説明によるのではなく、添付の請求項によって示される。請求項の意味および同等性の範囲に含まれるすべての変更が、請求項の範囲に含まれる。
【図面の簡単な説明】
【図1】 本発明と共に使用するように適合させることもできる、コンピュータのネットワークでの従来技術のミラーリングを示す図である。
【図2】 リモート・サーバなしだが、より大きいバッファを有するリモート・ミラーリング・ユニットを含む、本発明によるコンピュータ・システムを示す図である。
【図3】 ホットスワップ可能RAIDユニットおよび比較的小さいバッファを有するリモート・ミラーリング・ユニットを有するリモート・サーバを含む、本発明によるコンピュータ・システムを示す図である。
【図4】 リモート・サーバなしだが、比較的小さいバッファおよびホットスワップ可能RAIDユニットを有するリモート・ミラーリング・ユニットを含む、本発明によるコンピュータ・システムを示す図である。
【図5】 リモート・サーバなしだが、めいめいのローカル・ミラーリング・ユニットと共に所与にプラットフォームを実行する複数のローカル・サーバと、比較的小さいバッファおよび複数のホットスワップ可能RAIDユニットを有する単一のリモート・ミラーリング・ユニットとを含む、本発明による多対1ミラーリング用のコンピュータ・システムを示す図である。
【図6】 リモート・サーバなしだが、めいめいのローカル・ミラーリング・ユニットと共に所与のプラットフォームを実行する複数のローカル・サーバと、比較的小さいバッファおよび複数の個々の外部記憶ボリュームを有する単一のリモート・ミラーリング・ユニットを含む、本発明によるもう1つの多対1コンピュータ・システムを示す図である。
【図7】 リモート・サーバなしだが、めいめいのローカル・ミラーリング・ユニットと共に所与のプラットフォームを実行する複数のローカル・サーバと、比較的小さいバッファ、複数の区画を有する外部記憶ボリューム、および同様に複数の区画を有するホットスワップ可能RAIDユニットを有する単一のリモート・ミラーリング・ユニットを含む、本発明によるもう1つの多対1コンピュータ・システムを示す図である。
【図8】 リモート・サーバなしだが、めいめいのローカル・ミラーリング・ユニットと共に異なるプラットフォームを実行する複数のローカル・サーバと、比較的小さいバッファおよびホットスワップ可能RAIDユニットを有する単一のリモート・ミラーリング・ユニットを含む、本発明によるもう1つの多対1コンピュータ・システムを示す図である。
【図9】 リモート・サーバなしだが、めいめいのローカル・ミラーリング・ユニットと共に異なるプラットフォームを実行する複数のローカル・サーバと、比較的小さいバッファおよび複数の外部記憶ボリュームを有する単一のリモート・ミラーリング・ユニットを含む、本発明によるもう1つの多対1コンピュータ・システムを示す図である。
【図10】 リモート・サーバなしだが、めいめいのローカル・ミラーリング・ユニットと共に異なるプラットフォームを実行する複数のローカル・サーバと、比較的小さいバッファ、複数の区画を有する外部記憶ボリューム、および同様の複数の区画を有するホットスワップ可能RAIDユニットを有する単一のリモート・ミラーリング・ユニットを含む、本発明によるもう1つの多対1コンピュータ・システムを示す図である。
【図11】 ローカル・サーバが複数のリモート位置へのデータ・ミラーリングのために複数のローカル・ミラーリング・ユニットに接続される、本発明による1対多ミラーリング・コンピュータ・システムを示す図である。
【図12】 ローカル・サーバが複数のリモート位置へのデータ・ミラーリングのために1つのマルチポート式ローカル・ミラーリング・ユニットに接続される、本発明による代替の1対多ミラーリング・コンピュータ・システムを示す図である。
【図13】 本発明の方法を示す流れ図である。
【図14】 本発明による切替を実行する際に使用することができる、リモート・ミラーリング・ユニット、リモート・サーバ、およびRAIDユニットの間の二重ホスト構成を示す図である。
【図15】 本発明の方法をさらに示す流れ図である。
Claims (11)
- ミラーリングユニットがソースから変更データを受信するステップと、
前記変更データに対応する前記ソースの論理ブロックを示す変更された論理ブロック番号を前記ミラーリングユニットのバッファに格納するステップと、
前記バッファの残りのストレージが閾値より大きい場合、前記変更データを前記バッファに格納するステップと、
を有するデータミラーリング方法であって、
前記変更された論理ブロック番号を前記ミラーリングユニットのバッファに格納するステップはさらに、前記バッファの残りのストレージが前記閾値より小さい場合、前記変更データの代わりに前記変更された論理ブロック番号を前記バッファに格納することからなる方法。 - 前記ソースから変更データを受信するステップはさらに、ホストのストレージボリュームのミラーを含むローカルミラーから前記変更データを受信することからなる、請求項1記載の方法。
- 前記ソースから変更データを受信するステップはさらに、ホストから前記ホストのストレージボリュームのデータ変更に対応する前記変更データを受信することからなる、請求項1記載の方法。
- 前記変更された論理ブロック番号を前記ミラーリングユニットの前記バッファに格納するステップはさらに、前記変更データを格納することなく、前記変更された論理ブロック番号を前記バッファに格納することからなる、請求項1記載の方法。
- ミラーリングユニットがソースから変更データを受信するステップと、
前記変更データに対応する前記ソースの論理ブロックを示す変更された論理ブロック番号を前記ミラーリングユニットのバッファに格納するステップと、
前記バッファの残りのストレージが閾値より大きい場合、前記変更データを前記バッファに格納するステップと、
を有するデータミラーリング方法であって、
前記変更データを受信するステップはさらに、前記バッファにすでにある変更された論理ブロック番号エントリにより参照される前記ブロックにおける変更に対応する変更データを受信することからなり、
前記変更された論理ブロック番号を前記ミラーリングユニットのバッファに格納するステップはさらに、前記変更された論理ブロック番号エントリを前記変更された論理ブロック番号から他の論理ブロック番号に変更することからなり、
前記変更前の前記ブロックのデータは、前記他の論理ブロック番号により参照される位置に格納される方法。 - 前記ソースから変更データを受信するステップはさらに、ホストのストレージボリュームのミラーを含むローカルミラーから前記変更データを受信することからなる、請求項5記載の方法。
- 前記ソースから変更データを受信するステップはさらに、ホストから前記ホストのストレージボリュームのデータ変更に対応する前記変更データを受信することからなる、請求項5記載の方法。
- 前記変更された論理ブロック番号を前記ミラーリングユニットの前記バッファに格納するステップはさらに、前記変更データを格納することなく、前記変更された論理ブロック番号を前記バッファに格納することからなる、請求項5記載の方法。
- ミラーリングユニットがソースから変更データを受信するステップと、
前記変更データに対応する前記ソースの論理ブロックを示す変更された論理ブロック番号を前記ミラーリングユニットのバッファに格納するステップと、
前記バッファの残りのストレージが閾値より大きい場合、前記変更データを前記バッファに格納するステップと、
を有するデータミラーリング方法であって、
前記変更された論理ブロック番号を前記ミラーリングユニットのバッファに格納するステップはさらに、前記バッファの残りのストレージが前記閾値より小さい場合、前記変更データの代わりに前記変更された論理ブロック番号を前記バッファに格納することからなる方法。 - 前記ソースから変更データを受信するステップはさらに、ホストのストレージボリュームのミラーを含むローカルミラーから前記変更データを受信することからなる、請求項9記載の方法。
- 前記ソースから変更データを受信するステップはさらに、ホストから前記ホストのストレージボリュームのデータ変更に対応する前記変更データを受信することからなる、請求項9記載の方法。
Applications Claiming Priority (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US20946900P | 2000-06-05 | 2000-06-05 | |
US60/209,469 | 2000-06-05 | ||
US22393400P | 2000-08-09 | 2000-08-09 | |
US60/223,934 | 2000-08-09 | ||
US26214301P | 2001-01-16 | 2001-01-16 | |
US60/262,143 | 2001-01-16 | ||
PCT/US2001/017920 WO2001097030A1 (en) | 2000-06-05 | 2001-06-02 | Flexible remote data mirroring |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004523017A JP2004523017A (ja) | 2004-07-29 |
JP4945047B2 true JP4945047B2 (ja) | 2012-06-06 |
Family
ID=27395378
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002511168A Expired - Fee Related JP4945047B2 (ja) | 2000-06-05 | 2001-06-02 | 柔軟なリモート・データ・ミラーリング |
Country Status (10)
Country | Link |
---|---|
EP (1) | EP1305711A4 (ja) |
JP (1) | JP4945047B2 (ja) |
KR (1) | KR20030066331A (ja) |
CN (1) | CN1256672C (ja) |
AU (2) | AU6533501A (ja) |
BR (1) | BR0111422A (ja) |
CA (1) | CA2449984A1 (ja) |
IL (2) | IL153163A0 (ja) |
MX (1) | MXPA02012065A (ja) |
WO (1) | WO2001097030A1 (ja) |
Families Citing this family (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB0227786D0 (en) | 2002-11-29 | 2003-01-08 | Ibm | Improved remote copy synchronization in disaster recovery computer systems |
US7219201B2 (en) | 2003-09-17 | 2007-05-15 | Hitachi, Ltd. | Remote storage disk control device and method for controlling the same |
US7162551B2 (en) * | 2003-10-31 | 2007-01-09 | Lucent Technologies Inc. | Memory management system having a linked list processor |
JP4401895B2 (ja) * | 2004-08-09 | 2010-01-20 | 株式会社日立製作所 | 計算機システム、計算機及びそのプログラム。 |
US7464124B2 (en) * | 2004-11-19 | 2008-12-09 | International Business Machines Corporation | Method for autonomic data caching and copying on a storage area network aware file system using copy services |
US7568056B2 (en) | 2005-03-28 | 2009-07-28 | Nvidia Corporation | Host bus adapter that interfaces with host computer bus to multiple types of storage devices |
RU2439691C2 (ru) * | 2005-04-20 | 2012-01-10 | Акссана (Израэль) Лтд. | Способ защиты данных |
US9195397B2 (en) | 2005-04-20 | 2015-11-24 | Axxana (Israel) Ltd. | Disaster-proof data recovery |
EP2328089B1 (en) * | 2005-04-20 | 2014-07-09 | Axxana (Israel) Ltd. | Remote data mirroring system |
EP2201456A4 (en) | 2007-10-08 | 2012-02-15 | Axxana Israel Ltd | SYSTEM FOR QUICK DATA RECOVERY |
US8037240B2 (en) * | 2007-10-24 | 2011-10-11 | International Business Machines Corporation | System and method for using reversed backup operation for minimizing the disk spinning time and the number of spin-up operations |
EP2286343A4 (en) | 2008-05-19 | 2012-02-15 | Axxana Israel Ltd | ROBUST DATA STORAGE IN THE EVENT OF REPLICATION ERRORS AND ROLLING DISASTERS |
WO2010076755A2 (en) | 2009-01-05 | 2010-07-08 | Axxana (Israel) Ltd | Disaster-proof storage unit having transmission capabilities |
CN101997902B (zh) * | 2009-08-28 | 2015-07-22 | 云端容灾有限公司 | 基于驿站分段传输的远程在线备份系统和方法 |
WO2011067702A1 (en) | 2009-12-02 | 2011-06-09 | Axxana (Israel) Ltd. | Distributed intelligent network |
GB2499747B (en) * | 2010-11-22 | 2014-04-09 | Seven Networks Inc | Aligning data transfer to optimize connections established for transmission over a wireless network |
US8909996B2 (en) * | 2011-08-12 | 2014-12-09 | Oracle International Corporation | Utilizing multiple storage devices to reduce write latency for database logging |
US9135164B2 (en) * | 2013-03-15 | 2015-09-15 | Virident Systems Inc. | Synchronous mirroring in non-volatile memory systems |
WO2015056169A1 (en) | 2013-10-16 | 2015-04-23 | Axxana (Israel) Ltd. | Zero-transaction-loss recovery for database systems |
KR102157396B1 (ko) | 2013-12-11 | 2020-09-17 | 주식회사 알티캐스트 | 정지 이미지 또는 동영상을 이용하는 연관 서비스 제공 시스템 및 방법 |
KR102157399B1 (ko) | 2013-12-19 | 2020-09-17 | 주식회사 알티캐스트 | 연속적인 쿼리 이미지를 이용하는 연관 서비스 제공 시스템 및 방법 |
US10379958B2 (en) | 2015-06-03 | 2019-08-13 | Axxana (Israel) Ltd. | Fast archiving for database systems |
US10003835B2 (en) * | 2015-06-24 | 2018-06-19 | Tribune Broadcasting Company, Llc | Device control in backup media-broadcast system |
CN107015887A (zh) * | 2017-02-21 | 2017-08-04 | 深圳市中博睿存信息技术有限公司 | 对象存储远程复制方法及系统 |
US10592326B2 (en) | 2017-03-08 | 2020-03-17 | Axxana (Israel) Ltd. | Method and apparatus for data loss assessment |
RU2726318C1 (ru) * | 2020-01-14 | 2020-07-13 | Юрий Иванович Стародубцев | Способ резервного копирования состояния сложного объекта |
CN113742129B (zh) * | 2020-05-28 | 2024-05-28 | 珠海信核数据科技有限公司 | 一种数据备份方法和装置 |
JP7556593B1 (ja) | 2023-03-13 | 2024-09-26 | Necプラットフォームズ株式会社 | 制御システム、制御装置、制御方法およびプログラム |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1994000816A1 (en) * | 1992-06-18 | 1994-01-06 | Andor Systems, Inc. | Remote dual copy of data in computer systems |
JPH07146810A (ja) * | 1993-09-27 | 1995-06-06 | Toshiba Corp | 計算機システム |
KR0128271B1 (ko) * | 1994-02-22 | 1998-04-15 | 윌리암 티. 엘리스 | 재해회복을 위한 일관성 그룹 형성방법 및 레코드갱싱의 섀도잉 방법, 주시스템, 원격데이타 섀도잉 시스템과 비동기 원격데이타 복제 시스템 |
US5574950A (en) * | 1994-03-01 | 1996-11-12 | International Business Machines Corporation | Remote data shadowing using a multimode interface to dynamically reconfigure control link-level and communication link-level |
US5592618A (en) * | 1994-10-03 | 1997-01-07 | International Business Machines Corporation | Remote copy secondary data copy validation-audit function |
US5870537A (en) * | 1996-03-13 | 1999-02-09 | International Business Machines Corporation | Concurrent switch to shadowed device for storage controller and device errors |
US6052797A (en) * | 1996-05-28 | 2000-04-18 | Emc Corporation | Remotely mirrored data storage system with a count indicative of data consistency |
US6101497A (en) * | 1996-05-31 | 2000-08-08 | Emc Corporation | Method and apparatus for independent and simultaneous access to a common data set |
US5794254A (en) * | 1996-12-03 | 1998-08-11 | Fairbanks Systems Group | Incremental computer file backup using a two-step comparison of first two characters in the block and a signature with pre-stored character and signature sets |
JPH1139273A (ja) * | 1997-07-17 | 1999-02-12 | Chubu Nippon Denki Software Kk | 遠隔地でのバックアップ方式 |
JPH1185594A (ja) * | 1997-09-01 | 1999-03-30 | Hitachi Ltd | リモートコピー用情報処理システム |
US6065018A (en) * | 1998-03-04 | 2000-05-16 | International Business Machines Corporation | Synchronizing recovery log having time stamp to a remote site for disaster recovery of a primary database having related hierarchial and relational databases |
JPH11305947A (ja) * | 1998-04-17 | 1999-11-05 | Fujitsu Ltd | 磁気ディスク制御装置によるリモート転送方法 |
-
2001
- 2001-06-02 AU AU6533501A patent/AU6533501A/xx active Pending
- 2001-06-02 CA CA002449984A patent/CA2449984A1/en not_active Abandoned
- 2001-06-02 EP EP01939862A patent/EP1305711A4/en not_active Withdrawn
- 2001-06-02 BR BR0111422-0A patent/BR0111422A/pt not_active IP Right Cessation
- 2001-06-02 JP JP2002511168A patent/JP4945047B2/ja not_active Expired - Fee Related
- 2001-06-02 KR KR1020027016613A patent/KR20030066331A/ko active IP Right Grant
- 2001-06-02 CN CNB018131956A patent/CN1256672C/zh not_active Expired - Fee Related
- 2001-06-02 AU AU2001265335A patent/AU2001265335B2/en not_active Ceased
- 2001-06-02 MX MXPA02012065A patent/MXPA02012065A/es active IP Right Grant
- 2001-06-02 IL IL15316301A patent/IL153163A0/xx active IP Right Grant
- 2001-06-02 WO PCT/US2001/017920 patent/WO2001097030A1/en active Search and Examination
-
2002
- 2002-11-28 IL IL153163A patent/IL153163A/en not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
IL153163A (en) | 2008-11-26 |
AU6533501A (en) | 2001-12-24 |
CN1256672C (zh) | 2006-05-17 |
WO2001097030A1 (en) | 2001-12-20 |
KR20030066331A (ko) | 2003-08-09 |
CN1457457A (zh) | 2003-11-19 |
IL153163A0 (en) | 2003-06-24 |
MXPA02012065A (es) | 2003-04-25 |
AU2001265335B2 (en) | 2007-01-25 |
JP2004523017A (ja) | 2004-07-29 |
EP1305711A4 (en) | 2007-05-02 |
BR0111422A (pt) | 2004-02-10 |
CA2449984A1 (en) | 2001-12-20 |
EP1305711A1 (en) | 2003-05-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4945047B2 (ja) | 柔軟なリモート・データ・ミラーリング | |
US10003647B2 (en) | Flexible remote data mirroring | |
US7941501B2 (en) | Flexible remote data mirroring | |
AU2001265335A1 (en) | Flexible remote data mirroring | |
US7020669B2 (en) | Apparatus, method and system for writing data to network accessible file system while minimizing risk of cache data loss/ data corruption | |
US9846706B1 (en) | Managing mounting of file systems | |
US6345368B1 (en) | Fault-tolerant access to storage arrays using active and quiescent storage controllers | |
US20050283641A1 (en) | Apparatus, system, and method for verified fencing of a rogue node within a cluster | |
US20020069324A1 (en) | Scalable storage architecture | |
EP1825378A2 (en) | Functional partitioning method for providing modular data storage systems | |
US8095828B1 (en) | Using a data storage system for cluster I/O failure determination | |
US8707018B1 (en) | Managing initialization of file systems | |
US12038817B2 (en) | Methods for cache rewarming in a failover domain and devices thereof | |
WO2001082078A9 (en) | Method and apparatus for maintaining the integrity of configuration data in redundant, fault tolerant network appliances |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080602 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20080611 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110301 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20110530 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20110606 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20110721 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20110727 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20110728 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20110727 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110901 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20111011 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120106 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20120207 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20120305 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4945047 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150309 Year of fee payment: 3 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |