JP2006053932A - ミラーリング・デバイス群に格納されているデータの一貫性を維持する方法および装置 - Google Patents

ミラーリング・デバイス群に格納されているデータの一貫性を維持する方法および装置 Download PDF

Info

Publication number
JP2006053932A
JP2006053932A JP2005248644A JP2005248644A JP2006053932A JP 2006053932 A JP2006053932 A JP 2006053932A JP 2005248644 A JP2005248644 A JP 2005248644A JP 2005248644 A JP2005248644 A JP 2005248644A JP 2006053932 A JP2006053932 A JP 2006053932A
Authority
JP
Japan
Prior art keywords
source storage
storage devices
mirroring
storage system
storage device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2005248644A
Other languages
English (en)
Inventor
Dan Arnon
アーノン,ダン
Yuval Ofek
オーフェク,ユバル
Douglas E Lecrone
レクロン,ダグラス・イー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
EMC Corp
Original Assignee
EMC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by EMC Corp filed Critical EMC Corp
Publication of JP2006053932A publication Critical patent/JP2006053932A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error 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/2064Error 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error 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/2071Error 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 a plurality of controllers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error 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/2069Management of state, configuration or failover
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/82Solving problems relating to consistency

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】2つのデータ記憶システムを持つミラーリングシステムにおいて、障害発生時にデータ復元が可能なような一貫性のあるデータのミラリングを行う。
【解決手段】データ・ミラーリング・システムにおいて、一つの手段は第1ソース記憶装置から第1ターゲット記憶装置へのミラーリング通信が不能な場合、第2ソース記憶装置から第2ターゲット記憶装置へのミラーリング通信を不能にする。別の実施の形態では、データ・ミラーリング・システムに、複数のターゲット記憶装置の少なくとも1つの対応するサブセット上に一貫性のあるデータ表現を維持することが望ましい複数のミラー・ソース記憶装置の少なくとも1つのサブセットを識別する情報を格納する。更に別の実施の形態では、複数のミラー・ソース記憶装置の少なくとも1つを、第1状態、第2状態、および第3状態の1つに置く。
【選択図】図1

Description

本発明は、ミラーリング・デバイス(mirroring device)群に格納されているデータの一貫性を維持する方法および装置に関する。
多くのコンピュータ・システム・コンフィギュレーションでは、ソース記憶装置に格納されている情報を、当該ソース記憶装置から離れた場所に配置可能な、ターゲット記憶装置にミラーしている。かかるコンピュータ・システムの一例は、図1に関連付けて以下で論ずるデータ・ミラーリング・システム100である。
図1のデータ・ミラーリング・システム100では、1つ以上のホストCPU102が(1つ以上の通信リンク114を介して)ソース記憶システム104に結合されている。図示の例では、ソース記憶システム104は、複数の「ソース」記憶装置110a〜fを含む。ソース記憶装置110a〜fは、図1に示すように、単一のソース記憶システムに含めることができ、あるいは多数のソース記憶システム104を用いソース記憶装置110a〜fを多数のソース記憶システム全体に分散させることもできる。各ソース記憶システム104は、例えば、マサチュセッツ州、ホプキントンのEMC Corporation(EMC社)から入手可能なディスク・アレイのSYMMETRIXラインからの記憶システムで構成することができる。
ソース記憶装置110a〜fに格納されているデータは、ホストCPU102の動作にとって重大な場合がある。したがって、ソース記憶装置110a〜fのいずれかに問題が生じた場合に、それに格納されているデータが失われないことを保証し、ソース記憶装置110a〜fに伴う問題によってホストCPU102が停止する危険性を極力抑えるためには、偶発事故対策が望ましい。ソース記憶装置110a〜fに伴って潜在的に起こり得る問題には、例えば、格納されているデータの復元を不可能にし得る、ハードウエアまたはソフトウエアのエラーが含まれるであろう。加えて、地震またはその他の自然災害のような破局的な出来事も、1つ以上のソース記憶装置110a〜fの破壊に至る可能性がある。
ソース記憶装置110a〜fに格納されているデータを保護する方策の1つは、データを対応する1組の「ターゲット」記憶装置にミラーすることである。図1のデータ・ミラーリング・システム100は、かかるシステムの一例であり、ソース記憶システム104が(リンク112a〜fを介して)ターゲット記憶システム106に結合されている。ターゲット記憶システム106は、ソース記憶システム104内のソース記憶装置110a〜fにそれぞれ対応する、複数のターゲット記憶装置116a〜fを含む。データがソース記憶装置110a〜fのいずれかに書き込まれると、これはターゲット記憶システム106内のターゲット記憶装置116a〜fの対応する1つにも書き込まれる。ソース記憶装置110a〜fの1つが破壊されたり、あるいは格納されているデータを復元不可能にするエラーが生じた場合、ターゲット記憶装置116a〜fの対応する1つから、データを読み出すことができる。ターゲット記憶装置116a〜fは、図1に示すように、単一のターゲット記憶システム106に含ませることができ、あるいは複数のターゲット記憶システム106を用いターゲット記憶装置116a〜fを多数のターゲット記憶システム106全体に分散することもできる。ソース記憶システム104の場合と同様、ターゲット記憶システム106の各々は、例えば、マサチュセッツ州、ホプキントンのEMC Corporationから入手可能なディスク・アレイのSYMMETRIXラインからの記憶システムとすることができる。
ソースおよびターゲット記憶システム104および106の各々を、EMC Corporationから入手可能な1つ以上のディスク・アレイのSYMMETRIXラインを用いて実現する場合、SYMMETRIX Remote Data Facility(SRDF:SYMMETRIX遠隔データ設備)と呼ばれる機能を用いて、それらの間の接続を実施することができる。SRDFは、EMC Corporationから入手可能な多数の刊行物に記載されており、SYMMETRIX Remote Data Facility Product Manual,P/N200−999−554,rev.B.June 1995が含まれる。また、SRDFは米国特許第5,544,347号(Yanai(ヤナイ))にも記載されている。
図1に例示するデータ・ミラーリング・システム100では、ソース記憶システム104内の第1、第2、および第3組のソース記憶装置110a〜b、110c〜d、および110e〜fが、それぞれ、ターゲット記憶システム106内の対応する第1、第2、および第3組のターゲット記憶装置116a〜b、116c〜d、および116e〜fと(それぞれ、リンク112a〜b、112c〜d、および112e〜fを介して)通信する。リンク112のことを、ここでは、「ミラーリング・リンク」と呼び、更に、ターゲット記憶装置116a〜fがソース記憶装置110a〜fによって格納されたデータをミラー可能にするミラーリング・リンク112を介したソースおよびターゲット記憶システム104および106間の通信に言及する際、ここでは、「ミラーリング通信」という用語を用いることにする。図1に示すように、ソース記憶装置110a〜b、ミラーリング・リンク112a〜b、およびターゲット記憶装置116a〜bは第1ミラーリング・グループ108aを構成し、ソース記憶装置110c〜d、ミラーリング・リンク112c〜d、およびターゲット記憶装置116c〜dは第2ミラーリング・グループ108bを構成し、ならびにソース記憶装置110e〜f、ミラーリング・リンク112e〜f、およびターゲット記憶装置116e〜fは第3ミラーリング・グループ108cを構成する。「ミラーリング・グループ」とは、ソースおよびターゲット記憶装置104および106内の記憶装置群であり、これらの間を、共通の1組のミラーリング・リンク112を介してデータを転送することができる。一般に、記憶装置110および116は、他のミラーリング・グループ108内の記憶装置110および116とは、いずれのミラーリング・リンク112も共有しない。
ソース記憶システム104に対して書き込み動作を行なうためには、ホストCPU102が「I/Oコマンド・チェーン」をソース記憶システム104に送信する。各I/Oコマンド・チェーンは、ソース記憶システム104によって格納されている特定の論理ボリュームに宛てた、1つ以上のコマンドを含むことができる。論理ボリュームとは、ホストCPU102が認知して単一の物理的記憶装置に対応づける情報単位のことであり、ソース記憶システム104内において、1つ以上のソース記憶装置110上の物理的記憶空間にマップすることができる。書き込み動作に対するI/Oコマンド・チェーン(「書き込み要求コマンド・チェーン」)は、当該I/Oコマンド・チェーンを受信するソース記憶システム104に対する種々の命令、および動作の間に書き込まれるデータを含む。ホストCPU102は、通常、それが送った書き込み要求コマンド・チェーンに応答してソース記憶システム104から返送される1つのメッセージのみを受信する。このメッセージは、通常、(1)I/Oコマンド・チェーンがソース記憶システム104によってコミットされた(即ち、適正に処理された)こと、または(2)エラーが発生して、I/Oコマンド・チェーンがソース記憶システム104によってコミットされるのが妨げられたことのいずれかを示す。典型的に、ソース記憶システム104は、1つ以上のソース記憶装置110、またはソース記憶システム104内の一時的記憶空間(キャッシュのような)に適正にデータが書き込まれなければ、そして適正に書き込まれるまで、ホストCPU102に「I/Oコマンド・チェーン・コミット」メッセージを返さない。
ターゲット記憶システム106にデータをミラーリングする目的の1つは、ソース記憶システム104上のデータが復元不可能となった場合に、ターゲット記憶システム106からデータを読み出せるようにすることである。したがって、ターゲット記憶システム106内に格納されているデータは、内部的に一貫性があり、いずれの特定の時点においても、ソース記憶システム104に格納されているデータの正確なミラーを反映することを保証するというのが望ましい。ターゲット記憶システム106内のデータが、所与の時点に対して、ソース記憶システム104内のデータの正確なミラーを表さない場合、ターゲット記憶システム106内のデータをソース記憶システム104にロードし直して、ソース記憶システム104を有効な状態に戻すことはできない。例えば、ソース記憶システム104に格納されており、ターゲット記憶システム106上にミラーされているデータがデータベースに含まれているが、ターゲット記憶システム106に格納されている情報が所与の時点におけるデータベースの正確な絵図(picture)を反映していない場合、エラーが発見されて、ソース記憶システム104からデータベースを復元することが妨げられると、ターゲット記憶システム106は、データベースを復元するためには用いられない。何故なら、それによって格納されているデータは、いずれの特定の時点においても、データベースの状態の正確な反映ではないからである。
図1に示すデータ・ミラーリング・システム100のようなデータ・ミラーリング・システムにおいて、ミラー・リンク112a〜fに伴う誤動作のために、ソースおよびターゲット記憶システム104および106間のミラーリング通信の損失がミラーリング・グループ108a〜cの1つに発生すると、ある状況下ではデータの一貫性に問題を生ずる可能性があることを、本出願人は発見した。例えば、ミラーリング・グループ108aに対するミラーリング・リンク112a〜bの全てが誤動作を起こし、ミラーリング・リンク112a〜b上でのミラーリング通信が不可能となったことによって、ソース記憶装置110a〜110bに対する更新をターゲット記憶装置116a〜bに転送できなくなったと仮定する。更に、ミラーリング・グループ108bおよび108cに対するミラーリング・リンク112c〜dおよび112e〜f上ではそれぞれミラーリング動作が正常に継続し、ソース記憶装置110c〜fに対する更新がターゲット記憶装置116c〜fに転送され続けると仮定する。これらの状況の下で、ターゲット記憶装置116a〜bのいずれかに格納されているデータを、ターゲット記憶装置116c〜fのいずれかに格納されているデータに論理的に関係付けると(例えば、これらが同じデータベースの部分を格納する場合)、ターゲット記憶システム106内に格納されているデータは、いずれの特定の時点においても、ソース記憶システム104内に格納されているデータの有効な状態を表さないことになる。したがって、前述の状況においてソース記憶システム104が故障した場合、ターゲット記憶システム106上のデータは、いずれの特定の時点においても、ソース記憶システム104を有効な状態に戻すためには用いることができない。
前述の問題は、以下の例示的な状況を参考にすればよりよく理解することができよう。即ち、ホストCPU102が「従属」データ単位をそれぞれのソース記憶装置110に書き込む際、この従属データ単位を書き込んでいるソース記憶装置110の1つのみに対してミラーリング通信が不可能となっている状況である。第2データ単位が第1データ単位の関数である場合、第2データ単位は第1データ単位に従属するので、第1データ単位を変更した場合、第1データ単位の現在の値を正確に反映するとすれば、第2データ単位も変更しなければならない。例えば、第1、第2および第3データ単位がそれぞれ値「A」、「B」および「A+B」を表す場合、第3データ単位は第1および第2データ単位に従属し、一方、第1および第2データ単位は互いに従属しない。
この単純な従属データ単位の例を用いると、ミラーリング・リンク112a〜b上ではミラーリング通信が不可能であるが、ミラーリング・リンク112c〜f上では可能であるという前述の状況において、ホストCPU102が最初に第1データ単位(即ち、値「A」)をミラーリング・グループ108a(「動作不能なミラーリング・グループ」)内のソース記憶装置110aに書き込み、続いて第3データ単位(即ち、値「A+B」)をミラーリング・グループ108b(「動作可能なミラーリング・グループ」)内のソース記憶装置110cに書き込む場合、第1および第3データ単位をソース記憶システム104に書き込むが、(第1データ単位ではなく)第3データ単位だけがターゲット記憶システム106に書き込まれる。その結果、ターゲット記憶システム106は、「A+B」の更新された値を格納するが、「A」の更新された値は格納しない。この不一貫性は、ターゲット記憶システム106からデータを復元することが必要となった場合、問題を生ずる可能性がある。
前述のデータ一貫性欠如の問題を避けるために従来用いられていた技法の1つは、ソース記憶装置110a〜fが、そのミラーリング・リンク112を横断するミラーリング通信に加わることができないミラーリング・グループ108のメンバである場合、ソース記憶システム104が、ホストCPU102からソース記憶装置110a〜fへのあらゆる書き込み要求コマンド・チェーンをコミットするのを禁止することであった。この技法を用いると、動作不能なミラーリング・グループ108内のソース記憶装置110に宛てられた各書き込み要求コマンド・チェーンは、ソース記憶システム104によってコミットされないので、I/Oコマンド・チェーンを送信するホストCPU102は、書き込み動作の実行を反復する(が失敗に終わる)。
尚、ホストCPU102上で実行するアプリケーション・プログラムは、典型的に、前の命令が完了するまで、前の命令によって更新されるデータ単位に従属する命令の実行を開始しないことは認められよう。このため、前の命令を実行 するI/Oコマンド・チェーンはソース記憶システム104によってコミットされることが必要となる。したがって、ミラーリング通信が不能となっているソース記憶装置110a〜fに宛てられた書き込み要求コマンド・チェーンをコミットするのを禁止することによって、これらの書き込み要求コマンド・クレームによって書き込まれるデータに従属する後の命令が実行されないことを保証し、こうして前述のデータ一貫性欠如の問題を回避する。この点において、ターゲット記憶システム106に格納されているデータは、ミラーリング・グループが動作不能になった時点において、ソース記憶システム104に格納されているデータの有効なミラーとなる。
尚、前述の技法はデータの一貫性欠如という問題を回避するが、これは、動作不能のミラーリング・グループ内にあるソース記憶装置110に宛てられたI/Oコマンド・チェーンを完了するのを禁止することによるものであることは認められよう。その結果、I/Oコマンド・チェーンを開始したCPU102は、コマンド・チェーンの実行を反復し(しかし、失敗する)、最終的にアプリケーションまたはこのコマンド・チェーンを含むその他のプログラムのクラッシュに至る。
本発明の一態様によれば、データ・ミラーリング・システムにおける使用方法は、第1ソース記憶装置から第1ターゲット記憶装置へのミラーリング通信が不能となった場合、第2ソース記憶装置から第2ターゲット記憶装置へのミラーリング通信を不能にすることを含む。
本発明の別の態様によれば、データ・ミラーリング・システムにおいて用いるソース記憶システムは、少なくとも1つのホストに結合された少なくとも第1および第2ソース記憶装置であって、少なくとも1つのホストが当該第1および第2ソース記憶装置に対して書き込み動作を実行可能とし、更に少なくとも1つの第1および第2ターゲット記憶装置にそれぞれ結合され、当該少なくとも第1および第2ソース記憶装置から少なくとも第1および第2ターゲット記憶装置へのミラーリング通信を可能にする、少なくとも第1および第2ソース記憶装置と、第1ソース記憶装置から第1ターゲット記憶装置へのミラーリング通信が不能となったことに応答して、第2ソース記憶装置から第2ターゲット記憶装置へのミラーリング通信を不能とする、少なくとも1つのコントローラとを含む。
本発明の別の態様によれば、少なくとも1つのコンピュータ読み取り可能媒体は、少なくとも1つのプロセッサによって実行されたときに、第1ソース記憶装置から第1ターゲット記憶装置へのミラーリング通信が不能となった場合、第2ソース記憶装置から第2ターゲット記憶装置へのミラーリング通信を不能にするステップを含む方法を少なくとも1つのプロセッサに実行させる、複数の命令を格納する。
本発明の別の態様によれば、データ・ミラーリング・システムにおける使用方法は、少なくとも1つのホストが、第1ソース記憶装置から第1ターゲット記憶装置へのミラーリング通信が不能であるという指示を受信したことに応答して、少なくとも1つのソース記憶システムに、第2ソース記憶装置から第2ターゲット記憶装置へのミラーリング通信を不能にするように命令することを含む。
本発明の別の態様によれば、少なくとも1つのコンピュータ読み取り可能媒体は、少なくとも1つのプロセッサによって実行されたときに、少なくとも1つのホストが、第1ソース記憶装置から第1ターゲット記憶装置へのミラーリング通信が不能であるという指示を受信したことに応答して、少なくとも1つのソース記憶システムに、第2ソース記憶装置から第2ターゲット記憶装置へのミラーリング通信を不能にするように命令するステップを含む方法を少なくとも1つのプロセッサに実行させる、複数の命令を格納する。
別の態様によれば、データ・ミラーリング・システムにおいて用いるホストは、少なくとも第1および第2ソース記憶装置に結合され、少なくとも第1および第2ソース記憶装置に対して書き込み動作を実行する少なくとも1つのコントローラを含む。この少なくとも1つのコントローラは、第1ソース記憶装置から第1ターゲット記憶装置へのミラーリング通信が不能であるという指示を受信したことに応答して、少なくとも第1および第2ソース記憶装置が含まれる少なくとも1つのソース記憶システムに、第2ソース記憶装置から第2ターゲット記憶装置へのミラーリング通信を不能にすることを命令するように構成されている。
本発明の別の態様によれば、データ・ミラーリング・システムにおける使用方法は、データ・ミラーリング・システムに、複数のターゲット記憶装置の少なくとも1つの対応するサブセット上に、一貫性のあるデータ表現を維持することが望ましい、複数のミラー・ソース記憶装置の少なくとも1つのサブセットを識別する情報を格納することを含む。
本発明の別の態様によれば、データ・ミラーリング・システムにおいて用いるホストは、少なくとも1つのメモリと、少なくとも1つのメモリに、複数のターゲット記憶装置の少なくとも1つの対応するサブセット上に、一貫性のあるデータ表現を維持することが望ましい、複数のミラー・ソース記憶装置の少なくとも1つのサブセットを識別する情報を格納する、少なくとも1つのコントローラとを備える。
本発明の別の態様によれば、データ・ミラーリング・システムにおいて用いるソース記憶システムは、少なくとも1つのメモリと、少なくとも1つのメモリに、複数のターゲット記憶装置の少なくとも1つの対応するサブセット上に、一貫性のあるデータ表現を維持することが望ましい、複数のミラー・ソース記憶装置の少なくとも1つのサブセットを識別する情報を格納する、少なくとも1つのコントローラとを備える。
本発明の別の態様によれば、データ・ミラーリング・システムにおける使用方法は、複数のミラー・ソース記憶装置の少なくとも1つを、第1状態、第2状態、および第3状態の1つに置くことから成る。複数のミラー・ソース記憶装置の少なくとも1つが第1状態にあるときに、複数のミラー・ソース記憶装置の少なくとも1つに宛てられた書き込み要求コマンド・チェーンをソース記憶システムが受信したことに応答して、コマンド・チェーンをコミットすることを許可し、コマンド・チェーンによって書き込まれたデータを複数のターゲット記憶装置の対応する1つに転送する。複数のミラー・ソース記憶装置の少なくとも1つが第2状態にあるときに、複数のミラー・ソース記憶装置の少なくとも1つに宛てられた書き込み要求コマンド・チェーンをソース記憶システムが受信したことに応答して、コマンド・チェーンをコミットすることを禁止する。複数のミラー・ソース記憶装置の少なくとも1つが第3状態にあるときに、複数のミラー・ソース記憶装置の少なくとも1つに宛てられた書き込み要求コマンド・チェーンをソース記憶システムが受信したことに応答して、コマンド・チェーンによって書き込まれたデータを複数のターゲット記憶装置の対応する1つに転送することなく、コマンド・チェーンをコミットすることを許可する。
本発明の更に別の態様によれば、データ・ミラーリング・システムにおいて用いるソース記憶システムは、少なくとも1つのホストに結合され、複数のミラー・ソース記憶装置に対して書き込み動作を少なくとも1つのホストに実行させ、更に複数のターゲット記憶システムに結合され、複数のミラー・ソース記憶装置の各々から複数のターゲット記憶装置の対応する1つへのミラーリング通信を可能とする複数のミラー・ソース記憶装置と、複数のミラー・ソース記憶装置の少なくとも1つを、第1状態、第2状態、および第3状態の1つに置く少なくとも1つのコントローラとを備える。複数のミラー・ソース記憶装置の少なくとも1つが第1状態にあるときに、複数のミラー・ソース記憶装置の少なくとも1つに宛てられた書き込み要求コマンド・チェーンをソース記憶システムが受信したことに応答して、コントローラは、コマンド・チェーンをコミットすることを許可し、コマンド・チェーンによって書き込まれたデータを複数のターゲット記憶装置の対応する1つに転送し、複数のミラー・ソース記憶装置の少なくとも1つが第2状態にあるときに、複数のミラー・ソース記憶装置の少なくとも1つに宛てられた書き込み要求コマンド・チェーンをソース記憶システムが受信したことに応答して、少なくとも1つのコントローラは、コマンド・チェーンをコミットすることを禁止し、複数のミラー・ソース記憶装置の少なくとも1つが第3状態にあるときに、複数のミラー・ソース記憶装置の少なくとも1つに宛てられた書き込み要求コマンド・チェーンをソース記憶システムが受信したことに応答して、少なくとも1つのコントローラは、コマンド・チェーンによって書き込まれたデータを複数のターゲット記憶装置の対応する1つに転送することなく、コマンド・チェーンをコミットすることを許可する。
本発明の別の態様によれば、少なくとも1つのコンピュータ読み取り可能媒体は、少なくとも1つのプロセッサによって実行されたときに、(A)複数のミラー・ソース記憶装置の少なくとも1つを、第1状態、第2状態、および第3状態の1つに置くステップと、(B1)複数のミラー・ソース記憶装置の少なくとも1つが第1状態にあるときに、複数のミラー・ソース記憶装置の少なくとも1つに宛てられた書き込み要求コマンド・チェーンをソース記憶システムが受信したことに応答して、コマンド・チェーンをコミットすることを許可し、コマンド・チェーンによって書き込まれたデータを複数のターゲット記憶装置の対応する1つに転送するステップと、(B2)複数のミラー・ソース記憶装置の少なくとも1つが第2状態にあるときに、複数のミラー・ソース記憶装置の少なくとも1つに宛てられた書き込み要求コマンド・チェーンをソース記憶システムが受信したことに応答して、コマンド・チェーンをコミットすることを禁止するステップと、(B3)複数のミラー・ソース記憶装置の少なくとも1つが第3状態にあるときに、複数のミラー・ソース記憶装置の少なくとも1つに宛てられた書き込み要求コマンド・チェーンをソース記憶システムが受信したことに応答して、コマンド・チェーンによって書き込まれたデータを複数のターゲット記憶装置の対応する1つに転送することなく、コマンド・チェーンをコミットすることを許可するステップとを含む方法を少なくとも1つのプロセッサに実行させる、複数の命令を格納する。
(発明の詳細な説明)
本発明の一態様によれば、図1のデータ・ミラーリング・システムのようなデータ・ミラーリング・システムにおいて、ソース記憶装置110に対するミラーリング通信が失われた場合に、ターゲット記憶システム106上で一貫性のあるデータ・セットを維持し、しかもホストCPU102上のソフトウエア・プロセス(例えば、アプリケーション・プログラム)がクラッシュしないことを保証する手段が講じられる。
尚、ミラーリング通信の喪失から発生する可能性がある前述のデータの一貫性欠如の問題は、ミラーリング・リンク112a〜fがミラーリング・グループ108a〜cの一部に対して動作するが、その全てに対して動作しないという事実に帰することができる。本発明の例示の実施の形態によれば、特定のミラーリング・グループ108に対するミラーリング・リンク112a〜fの全てが動作不能となったと判定された(即ち、ミラーリング・グループ108におけるソース記憶装置110およびターゲット記憶装置116間のミラーリング通信には、もはや対応しない)場合、他のミラーリング・グループ108に対するミラーリング・リンク112a〜f上でのミラーリング通信も不能にすることができる。これは、これらその他のミラーリング・グループ108に関連するミラーリング・リンク112a〜fを「論理的に破壊すること」と見なすことができる。つまり、ミラーリング・リンク112a〜fの全てを同時に(例えば、特定のミラーリング・グループ108に対してミラーリング・リンク112a〜fが物理的に動作不能になったとき)破壊することによって、ターゲット記憶装置116a〜fのいずれに対しても、それ以上更新を行なうのを禁止するということが認められよう。したがって、ミラーリング・リンク110a〜fの全てが破壊された後に、ターゲット記憶システム106は、ある特定の時点(即ち、ミラーリング・グループ108の1つに対するミラーリング通信が動作不能となった時点)に、ソース記憶システム104に格納されているデータの正確なミラーを表すデータ・セットを格納する。
残りのミラーリング・リンク112a〜fを論理的に破壊すると、ターゲット記憶システム106のミラーリング機能が失われる結果となるが、ミラーリング・リンク112a〜fの全てが論理的に破壊された後には、ソース記憶システム104は、動作不能となったミラーリング・グループ108に含まれるソース記憶装置110に宛てられた書き込み要求コマンド・チェーンを再びコミットすることができ、ホストCPU102上で実行しているアプリケーション・プログラムは、動作し続けることができ、かかる書き込み動作の実行を反復する(が、失敗に終わる)ことの結果としてクラッシュすることもないことが認められよう。一方、ミラーリング・グループ108の1つに対するミラーリング通信の喪失に至った、ミラー・リンク112に発生した問題に取り組むことができる。一旦訂正すれば、ミラーリング・リンク112a〜fの全てを復元することができ、これによってターゲット記憶システム106が提供するミラーリング能力をオンラインで戻すことが可能となる。
尚、特定のミラーリング・グループ108に対してミラーリング・リンク112が失われたときにはいつでもミラーリング・リンク112a〜fの全てを論理的に破壊することにより、ターゲット記憶システム106上のデータに対する前述のデータ一貫性問題を防止するという結果が得られることが認められよう。これは、本発明の一つの実施の形態によれば、以下に論ずるようにして達成することができる。しかしながら、本出願人は、前述のデータ一貫性という目標を達成するために、必ずしもミラーリング・リンク112a〜fの全てを論理的に破壊しなくてもよい場合もあることも認識している。この点に関して、ターゲット記憶システム106は多数の論理的に無関係なデータ・セット、例えば、多数の無関係のデータベースを含む場合もあることが認められよう。このような論理的に無関係なデータ・セットに対しては、それらの間で一貫性を維持することは不要である。したがって、特定のデータベースを格納するターゲット記憶装置116を含むミラーリング・グループ108に関連するミラーリング・リンク112a〜fの喪失が発生した場合、無関係のデータを格納しているターゲット記憶装置116のみを含むその他のミラーリング・グループ108に関連するミラーリング・リンク112を論理的に破壊する必要はない。したがって、本発明の別の例示の実施の形態によれば、ミラーリング通信が失われたミラーリング・グループ108に関連するターゲット記憶装置116に格納されているデータに論理的に関係があるデータを格納しているターゲット記憶装置116を含むミラーリング・グループ108についてのみ、ミラーリング・リンク112a〜fを論理的に破壊する。このようにすれば、ターゲット記憶システム106のミラーリング機能に対する影響は最少に抑えられる。
同様に、特定のミラーリング・グループ108a〜c内の全てのターゲット記憶装置116a〜fが論理的に関係のあるデータを格納しているとは限らないことも認められよう。したがって、本発明の別の例示の実施の形態では、ミラーリング・グループ108内部のミラーリング・リンク112は、当該ミラーリング・リンク112が対応する一部のソース記憶装置110およびターゲット記憶装置116間のみのミラーリング通信を不能にするように、論理的に破壊することもできる。例えば、ターゲット記憶装置116a〜cの全てが共通のデータベースのデータを格納しており、ミラーリング・グループ108aに対するミラーリング・リンク112a〜bが動作不能となった場合、ミラーリング・グループ108bに対するミラーリング・リンク112c〜dを論理的に破壊して、ソース記憶装置110cよびターゲット記憶装置116c間のミラーリング通信を不能とし、当該データベースに対するターゲット記憶システム106内のデータの一貫性を維持しつつ、ソース記憶装置110dおよびターゲット記憶装置116d間のミラーリング通信を不能にはしないということも可能である。したがって、ソースおよびターゲット記憶装置110dおよび116dが、ソースおよびターゲット記憶装置110a〜cおよび116a〜cによって格納されているデータベースとは無関係なデータを格納している場合、ミラーリング・グループ108bのミラーリング・リンク112c〜d上のミラーリング通信は、ソース記憶装置110dおよびターゲット記憶装置116d間では可能のままにしておくことによって、ターゲット記憶システム106のミラーリング機能に対する影響を最少に抑えることができる。
本発明の前述の実施の形態は多数の方法で実現可能であり、本発明はいずれかの特定の実施態様に限定される訳ではない。装置毎にミラーリング・リンク112a〜dを介するミラーリング通信を選択的に不能にするという本発明の前述の特定の実施の形態によれば、例えば、ソース記憶装置110a〜fは1つ以上の言わば「一貫性グループ」(consistency group)に分類され得る。この文脈における一貫性グループとは、内部に格納されているデータおよび対応するターゲット記憶装置116に格納されているデータの一貫性を維持することを保証するための処置を講じたソース記憶装置群110のことである。例えば、ソース記憶装置110aおよび110cが従属データ単位を格納している場合、同じ一貫性グループ内にソース記憶装置110aおよび110cを含ませ、前述のようなデータ一貫性問題を防止する処置を講ずることができるようにすることが望ましい。
一貫性グループは、多くの方法のいずれでも実現可能であり、本発明はいずれかの特定の実施態様に限定される訳ではない。一つの実施の形態では、例えば、ソース記憶システム104は、各ソース記憶装置110が一貫性グループのメンバであるか否かのみを識別する情報を格納し、各一貫性グループ内において個々のソース記憶装置110を識別する情報は、ホストCPU102によってのみ維持される。しかしながら、かかる一貫性グループ情報は、多数の他の方法で格納することも可能であり、本発明は、殆どの一貫性グループ情報をホストCPU102によって維持する実施の形態に限定される訳ではない。例えば、全ての関連がある一貫性グループ情報は、代わりに、ソースおよび/ターゲット記憶システム104および106に関連するメモリに格納することも可能である。
本発明の一つの実施の形態では、ホストCPU102(図1)が書き込み要求コマンド・チェーンをソース記憶装置110a〜fの1つ(「宛先」記憶装置)に発行する場合、宛先記憶装置110のミラーリング・グループ108内におけるミラーリング・リンク112の少なくとも1つが動作状態にあるなら(即ち、宛先記憶装置110に対するミラーリング通信が可能であれば)、ソース記憶システム104は、書き込むべきデータがソース記憶システム104およびターゲット記憶システム106双方に転送された後に、I/Oコマンド・チェーンをコミットする。ミラーリング・グループ108に対するミラーリング・リンク112が不動作状態となったとき(即ち、宛先記憶装置110に対するミラーリング通信が不能となった場合)、これは、ホストCPU102がミラーリング・グループ108内のあるソース記憶装置110に書き込みを行なおうとした際に検出される。即ち、ホストCPU102が書き込み要求コマンド・チェーンを、ミラーリング通信が不能な宛先記憶装置110に発行した場合、当該宛先記憶装置110を含むソース記憶システム104は、宛先記憶装置110に宛てられた書き込み要求コマンド・チェーンをコミットするのを一時的に禁止する。
宛先記憶装置110に宛てられた書き込み要求コマンド・チェーンをコミットするのを一時的に禁止している期間では、宛先記憶装置110と同じ一貫性グループに含まれるその他のソース記憶装置110a〜fの全てに対して、関連するミラーリング・リンク112を横切って通信するのを禁止する(即ち、これらのソース記憶装置110に対するミラーリング通信を不能とする)措置が取られる。この関連するソース記憶装置110に対してミラーリング通信を不能にするには、多数の方法が可能であり、本発明はいずれかの特定の実施態様に限定される訳ではない。例えば、ソース記憶装置110に関連するメモリにフラグを格納し、あるソース記憶装置110はミラーリング・リンク112を介してデータを転送してはならないことを示してもよい。あるいは、関連するミラーリング・リンク112を物理的に破壊してもよい。しかしながら、単一のミラーリング・グループ108が数個の一貫性グループからのソース記憶装置110を含む場合もあるので、前述のように、装置毎にミラーリング・リンク112を介するミラーリング通信を不能とすることにより、関連する一貫性グループには含まれないソース記憶装置110に対するミラーリング・リンク112を介した情報転送を継続できるようにすることが望ましい。
ミラーリング・リンク112を介するミラーリング通信を、宛先記憶装置110と同じ一貫性グループに含まれるソース記憶装置110の各々に対して不能にした後、宛先記憶装置110に含まれるソース記憶システム104は、再度、宛先記憶装置110に宛てられた書き込み要求コマンド・チェーンをコミットすることを許可される。宛先記憶装置の一貫性グループ内にある全てのソース記憶装置110に対してミラーリング通信を不能にしてあるので、この一貫性グループ内のターゲット記憶装置116a〜fは、当該一貫性グループに対してミラーリング通信を不能にするよりも前にソース記憶システム104によって格納されたデータの「スナップショット」を表すデータ・セットを格納する。本発明のこの実施の形態によれば、ソース記憶システム104は、動作不能にしたミラーリング・グループ108に含まれるソース記憶装置110に宛てられた書き込み要求コマンド・チェーンをコミットするのを一時的に禁止するだけであるので、ホストCPU(複数のホストCPU)102上で走っているアプリケーション・ソフトウエアをクラッシュさせることなく、前述のようなデータ一貫性の問題を回避することができる。
本出願人は、ミラーリング・グループ108に対するミラーリング通信が失われたことに応答して、多数のソースおよびターゲット記憶装置110および116に対するミラーリング・リンク112を介するミラーリング通信を不能にする場合、異なる時点においてこれら多数のソース記憶装置110の異なるそれぞれに対するミラーリング通信を不能にすること自体が、前述と同様のデータ一貫性問題を引き起こす可能性があることを認識した。例えば、図1のソース記憶装置110a、110cおよび110eが全て同じ一貫性グループに含まれ、記憶装置110aに書き込もうとしたとき、ソース記憶装置110aに対するミラーリング通信が失われていたことを検出したことに応答して、ソース記憶装置110cおよび110eに対してミラーリング通信を不能にすると仮定する。ソース記憶システム104が、ソース記憶装置110cおよび110e双方に対するミラーリング通信が不能にされたことを検証する前に、これらのいずれかに宛てられた書き込み要求コマンド・チェーンをコミットすることを許可されるとすると、ソース記憶装置110cおよび110eに対するミラーリング通信を不能にする相対的なタイミングによっては、ターゲット記憶システム106においてデータ一貫性問題の発生に至る可能性がある。例えば、ソース記憶装置110eの前に、ソース記憶装置110cに対するミラーリング通信を不能にした場合、ソース記憶装置110cに対するミラーリング通信を不能にした後にソース記憶装置110cに対して第1データ単位の書き込みを要求するI/Oコマンド・チェーンがソース記憶システム104によってコミットされ、次いでソース記憶装置110eに対するミラーリング通信が不能にされる前に、第1データ単位に応じて第2データ単位のソース記憶装置110eへの書き込みを要求するその後のI/Oコマンド・チェーンがソース記憶システム104によってコミットされ更にターゲット記憶システム106に転送されたとすると、データ一貫性問題が発生する。
この潜在的な問題に取り組むために、本発明の一つの実施の形態では、ミラーリング・リンク112のいずれかを介するミラーリング通信を、一貫性グループ内部のソース記憶装置110に対して不能にする場合、ソース記憶システム104は、当該一貫性グループ内の全てのソース記憶装置110に宛てた書き込み要求コマンド・チェーンをコミットするのを一時的に禁止する。関連する一貫性グループ内のソース記憶装置110の全てに対して、ミラーリング通信を不能にした後で初めて、これらのソース記憶装置110に宛てられた書き込み要求コマンド・チェーンをコミットすることが、ソース記憶システム104に再度許可される。このように、ホストCPU102がこれらのソース記憶装置110に適正に書き込むことができないのは、関連する一貫性グループ内のソース記憶装置110の全てに対してミラーリング通信が不能となっている期間だけに過ぎない。
あるソース記憶装置110に対するミラーリング通信を選択的に不能にする前述の技法は、多数の方法のいずれでも実現可能であり、本発明はいずれかの特定の実施態様に限定される訳ではない。これらの目的を達成するために用いることができる技法の代表例について、図2ないし図7に関連付けて以下に説明する。ここでは、各ソース記憶システム104に格納されている所定のフラグは、ソース記憶システム104がそのソース記憶装置110に宛てられているホストCPU102からの書き込み要求コマンド・チェーンにどのように応答すべきかを示す。しかしながら、以下で説明する技法やフラグ以外の技法および/または別のフラグを代わりに用いてもよく、本発明は、記載する特定の技法またはフラグには限定されないことは認められよう。
図2は、図1に示したようなデータ・ミラーリング・システムの代表例を示し、多数のソース記憶システム104a〜bおよび多数のターゲット記憶システム106a〜bを含む。図示の実施の形態では、ホストCPU102は、1対のホストCPU102a〜bを含む。図示のように、ホストCPU102aおよび102bの各々は、ソース記憶システム104aおよび104bの双方に(通信リンク114a〜dを介して)結合してもよく、更にソース記憶システム104aおよび104bの各々はターゲット記憶システム106aおよび106bの一方または双方に(ミラーリング・リンク112a〜fを介して)結合してもよい。図1のミラーリング・グループ108a〜cを図2のデータ・ミラーリング・システム上で実現する場合、ミラーリング・グループ108a(図1)は、ソース記憶システム104aおよびターゲット記憶システム106aによって支援され、ミラーリング・グループ108b(図1)はソース記憶システム104aおよびターゲット記憶システム106bによって支援され、ミラーリング・グループ108c(図1)はソース記憶システム104bおよびターゲット記憶システム106bによって支援される。尚、図2は、多数のCPU102および多数の記憶システム104を、複数のミラーリング・グループに対応するようにするにはどのように組み合わせればよいかという一例を示すに過ぎず、多数の代替構成のいずれでも代わりに採用可能であることは認められよう。
図3は、図1のデータ・ミラーリング・システム100において、ソース記憶システム104および/またはターゲット記憶システム106として用いることができるディスク・ドライブ記憶システムの代表例を示す。尚、図1のソース記憶システム104および/またはターゲット記憶システム106は、各々、図3に示すような単一の記憶システム、または一緒に動作する数個のかかる記憶システムを採用してもよいことは認められよう。また、本発明は、図3に示す形式の記憶システムを必ずしも採用しなくてもよく、多数の他の形式の記憶システム(例えば、テープ・ドライブ・システム)を代わりに採用してもよいことも認められよう。
図示のように、図3に例示する記憶システム104bは、ホスト・バス・コントローラ302、複数のディスク・コントローラ304a〜b、および複数のディスク・ドライブ312a〜bを含む。図示の例では、ディスク・ドライブ312a〜bは、図1および図2のソース記憶装置110e〜fに対応する。ホスト・バス・コントローラ302は、通信リンク114bおよび114dを介してホストCPU102a〜b(図2)と通信する役割を担う。ディスク・コントローラ304a〜bの各々は、ディスク・ドライブ312a〜bのサブセットを制御する役割を担う。図3のシステム例では、ミラーリング・コントローラ308がディスク・ドライブ312a〜bに対するミラーリング通信を制御する。例えば、図2および図3のソース記憶システム104を実現するために記憶システム104bを用いる場合、ミラーリング・コントローラ308は、ミラーリング・グループ108cに対するミラーリング・リンク112e〜fを介するミラーリング通信を制御することができる。尚、図1ないし図3に示すようなコンピュータ・システムでは、1つ以上のミラーリング・グループ108に対応する記憶システム104および106の各々は、この実現を容易にするために、それが対応する各ミラーリング・グループ108毎に別個のミラーリング・コントローラ308を含んでもよいことは認められよう。
図3の実施の形態では、コントローラ302、308および304a〜bは内部バス310を通じて通信する。また、グローバル・メモリ306aおよびキャッシュ306bを含むメモリ・ユニット306もバス310に接続されている。グローバル・メモリ306aは、ソース記憶システム104bの動作および制御を容易にする情報を格納する。キャッシュ306bは改善されたシステム特性を提供する。特に、ホストCPU102a〜b(図2)の1つが記憶システム104bからの情報トラックの読み出しを実行するときに、この情報トラックが既にキャッシュ306b内に格納されていれば、ソース記憶システム104bはディスク・ドライブ312a〜bの1つからではなく、キャッシュ306bから読み出しを行い、これによって読み出しを一層効率的に実行することが可能となる。同様に、CPU102a〜bの1つがソース記憶システム104bに対する書き込みを実行するとき、ホスト・バス・コントローラ302は、典型的に、キャッシュ306bへの書き込みを実行し、データがキャッシュ306bに格納されたなら直ちにこの書き込みを要求するI/Oコマンド・チェーンをコミットさせる。その後、書き込みは、(ホストCPU102〜bに透過的な態様で)ディスク・ドライブ312a〜bの適切なドライブにデステージ(destage)することができる。したがって、キャッシュは一時的記憶装置として見なすことができ、ディスク・ドライブ312a〜bの各々は、記憶システム104b内部の永続的記憶装置として見なすことができる。
図3の実施の形態に関して、本発明の種々の実施の形態の機能性を実行するには、図示するよりも少ないまたは多いコントローラを使用可能なこと、および本発明はいずれの特定の形式または数のコントローラにも限定されないことは認められよう。異なる実施の形態では、例えば、図3のコントローラ302、308および304a〜bの全ての機能性は、単一のコントローラによって実現することもでき、また、コントローラ302、308および304a〜bのいずれか1つの機能性をコントローラ302、308および304a〜bの別の1つによって、または1つ以上の追加のコントローラ(図示せず)によって実現することも可能である。ここで用いるように、「コントローラ」という用語は、ハードウエア(例えば、1つ以上のプロセッサおよび/または専用回路構成要素)、ソフトウエアおよび/またはここで説明する制御機能の1つ以上を実行可能なファームウエアのあらゆる組み合わせを意味することとする。
図4A〜Bおよび5は、ソース記憶システム104およびターゲット記憶システム106間のミラーリング通信が1つ以上のミラーリング・グループ108に対して不能となった場合に、ソース記憶システム104が、本発明の一つの実施の形態にしたがって、関連するターゲット記憶システム106がデータ一貫性エラーに遭遇しないことを保証できるようにするために、各ソース記憶システム104に格納することができるフラグの表402A〜Bおよび504の一例を示す。ソース記憶システム104が図4および図5の情報を用いてこの成果を得ることができる方法の一例について、図6に関連付けながら以下で論ずる。
図4A〜Bに示すように、ソース記憶システム104によってサービスされるミラーリング・グループ108毎に、各フラグ表402を格納することができる。各表402は、関連するミラーリング・グループ108に含まれるミラーリング・リンク112の各々の現ステータス(即ち、動作可能または動作不能)を反映する。図4A〜Bの例では、2つのミラーリング・グループ(即ち、ミラーリング・グループ108aおよび108b)に対する表402を示す。これは、ソース記憶システム104に対して図4A〜Bの情報が格納されており、ソース記憶システム104が2つの異なるミラーリング・グループ108にサービスすることを意味する。表402A〜Bは、これらを用いるソース記憶システム104にアクセス可能な多数のロケーションのいずれにも格納することができ、本発明は、表402A〜Bをいずれの特定のロケーションに格納することも必要としない。例示の一つの実施の形態では、例えば、表402A〜Bは、図2のソース記憶システム104aのグローバル・メモリ306aに格納されている。
ミラーリング・リンク112がソース記憶装置110からターゲット記憶装置116に情報を転送することができない場合、ミラーリング・リンク112は所与のソース/ターゲット記憶装置対に対して「動作不能」となる。表402A〜Bを採用した本発明の例示の実施の形態では、表402A〜Bの「動作可能」および「動作不能」エントリは、ミラーリング・リンク112の物理的ステータス、即ち、リンク112が動作状態にあるかまたは物理的に故障しているかを示す。したがって、表402A〜Bの1つの「動作不能」エントリは、対応するミラーリング・リンクが物理的に故障しているので、いずれの2つの記憶装置110、116間においても対応するミラーリング・リンク112を通じてデータ転送が不可能であることを示し、一方、「動作可能」エントリは、対応するミラーリング・リンク112が動作状態にあるので、関連するいずれのソース/ターゲット記憶装置対間でもミラーリング・リンク112を通じてデータ転送が可能であることを示す。
前述のように、各ミラーリング・グループ108には、別個のミラーリング・コントローラ308を関連付けることができる。各ミラーリング・コントローラ308は、それに関連するミラーリング・グループ108においてミラーリング・リンク112と直接通信するので、図示した例示の実施の形態の表402A〜Bにおけるエントリは、各ミラーリング・グループ108に対してミラーリング・リンク112に関連するミラーリング・コントローラ308によってのみ更新することができる。しかしながら、本発明はこの点に限定されるものではない。何故なら、ミラーリング・リンク112のステータスに関する知識を有し、表402A〜Bが格納されているメモリにアクセスすることができるあらゆる装置が、以下に論ずるように、表402を更新することができるからである。ミラーリング・コントローラ308に加えて、グローバル・メモリ306aにアクセスすることができる他の装置(例えば、ソース記憶システム104のホスト・バス・コントローラ302(図3))も、以下に論ずる本発明の一つの実施の形態にしたがって、表402A〜Bに格納されている情報を利用することができる。
図5は、各ソース記憶システム104に対して格納することができるフラグ504の別の表を示す。フラグ504は、ソース記憶システム104における記憶装置110毎に、(a)当該記憶装置が一貫性グループに含まれているか否か、および(b)当該記憶装置の現「状態」を反映する。例えば、表504は、図2のソース記憶システム104aのグローバル・メモリ306aに格納することもできる。しかしながら、本発明はこの点に限定されるものではなく、表504は代わりにソース記憶システム104にアクセス可能であれば、他のいずれのロケーションにでも格納可能であることは認められよう。図示した例示の実施の形態によれば、表504におけるフラグは、各記憶装置110を、(1)「オンライン」、(2)「オフライン」、または(3)「保留オフライン」の3状態の内の1つとして識別する。これらの状態各々の意味および重要度について、図6および図7に例示するソフトウエア・ルーチンに関連付けて以下に説明する。
図6は、図4および5の表のエントリを用いて本発明の一つの実施の形態を実現し、ターゲット記憶システム106上に格納されているデータの一貫性を維持するために、ソース記憶システム104の各々において、1つ以上のコントローラ(例えば、図3のホスト・バス・コントローラ302)によって実行することができるソフトウエア・ルーチン600の一例を示す。ソフトウエア・ルーチン600は、コンピュータ読み取り可能媒体に格納されている複数の命令を含むことができ、ルーチン600を実現するコントローラは、例えば、コンピュータ読み取り可能媒体上に格納されている命令を実行し、図示する種々の方法ステップを実行することができる。ソース記憶システム104におけるコントローラ(例えば、図3の302および304)の各々は、ルーチン600を実現するマイクロコード命令を格納可能なローカル・メモリを有するプロセッサを含むことができ、あるいはルーチン600は、コントローラにアクセス可能な別のメモリ(例えば、グローバル・メモリ306a)に備えることもできる。あるいは、勿論、専用ハードウエア、または同様の結果を得ることができるハードウエアおよびソフトウエアのいずれの組み合わせを用いても、ルーチン600は実現可能である。図6に例示するルーチン600に関して、方法ステップの正確な順序は重要ではなく、本発明は、図示の順序で正確に方法ステップを実行する実施の形態に限定される訳ではないことは認められよう。加えて、図6に示す方法ステップは、単に所望の結果が得られる多数の可能なルーチンの1つを表すに過ぎず、本発明は図示する特定のルーチンに限定される訳ではないことも認められよう。更に、本発明の実施の形態の一部は、図6に示す方法ステップによって実行される機能の全てよりも少ない機能を実行することもでき、本発明は、図示のルーチンによって実行される機能の全てを用いる実施の形態に限定される訳ではないことも認められよう。
ルーチン600は、ソース記憶システム104(例えば、図3のソース記憶システム104b)が通信リンク114を介してホストCPU102からI/Oコマンド・チェーンを受信したときに始動する。I/Oコマンド・チェーンが受信されると、ソース記憶システムの記憶装置110の1つ(例えば、図3のディスク・ドライブ312a〜bの1つ)に対して書き込みを行なうことを要求しているか否かについての判定が(ステップ604において)行なわれる。
I/Oコマンド・チェーンが書き込みを実行することを要求しているのではない場合(例えば、読み出しを実行することを要求している場合)、ルーチン600はステップ606に進み、ソース記憶システム104によって通常通りにI/Oコマンド・チェーンを処理しコミットすることを許可し、ルーチン600は終了する。書き込みを実行しないI/Oコマンド・チェーンは、新たに書き込まれたデータをミラーリング・リンク112を通じてターゲット記憶システム106に伝送する必要がないので、ミラーリング・リンク112のステータスはこれらの動作には無関係であり、かかるI/Oコマンド・チェーンは、ミラーリング・リンク112のステータスには係らず、処理されコミットされる。
I/Oコマンド・チェーンが書き込みの実行を要求していると(ステップ604において)判定された場合、ルーチンはステップ608〜610に進み、宛先記憶装置110(即ち、書き込み要求コマンド・チェーンの宛先となるソース記憶装置110)に対する状態フラグ(図5参照)をチェックし、宛先記憶装置110がオフライン(ステップ608)、保留オフライン(610)、またはオンライン(ステップ610が宛先記憶装置は保留オフラインではないと判定した場合に、このように見なされる)のいずれであるかについて判定を行なう。
宛先記憶装置110がオフラインであると(ステップ608において)判定した場合、ルーチン600はステップ606に進み、ソース記憶システム104によって書き込み要求コマンド・チェーンを処理しコミットするのを許可する。宛先記憶装置110は既にオフライン状態にあるので、ルーチン600は、宛先記憶装置110が(1)対応するターゲット記憶装置116が関連付けられていない、(2)ルーチン600の以前の繰り返しに応答してオフラインに切り替えられた(例えば、ステップ620またはステップ626)、または(3)以下に論ずるようにホストCPU102によるルーチン700(図7)の繰り返しによって(例えば、ルーチン700のステップ712において)オフラインに切り替えられたと認識する。後者の2つの場合では、現時点で書き込み要求コマンド・チェーンをコミットして、書き込んだデータをターゲット記憶システム106に転送しなくても、ターゲット記憶システム106においてデータ一貫性問題が生じないことを保証するステップ(以下で論ずる)が、ルーチン600または700の以前の繰り返しにおいて実行されたはずである。
宛先記憶装置110が保留オフラインであると(ステップ610において)判定した場合、ルーチン600はステップ612に進み、ソース記憶システム104は、書き込み要求コマンド・チェーンをコミットすることを許可せず、I/Oコマンド・チェーンを発行したホストCPU102に「特殊」I/O不良メッセージを返送する。次いで、ルーチン600は終了する。この特殊I/O不良メッセージは、宛先記憶装置110が保留オフライン状態にあることを示す。宛先記憶装置110は、例えば、ルーチン600の以前の繰り返しの間に(例えば、ステップ622またはステップ628において)、またはホストCPU102による以下で論ずるルーチン700の繰り返しの間(例えば、ルーチン700のステップ708)に保留オフライン状態に置かれた可能性がある。例示の一つの実施の形態では、特殊I/O不良メッセージは、ソース記憶システム104が発生するいずれの他のI/O不良メッセージにも対応しないように選択される。したがって、ホストCPU102は、常に、保留オフライン状態にあるソース記憶装置110に宛てられた書き込み要求コマンド・チェーンによって生じたI/O不良を一意に示すものとして、この特殊I/O不良メッセージを認識する。
ホストCPU102が特殊I/O不良メッセージを受信すると、これに応答して、宛先記憶装置の一貫性グループに含まれているソース記憶装置110a〜fの全てを保留オフライン状態に置くステップを実行する(図7に例示するルーチン700におけるステップ706および708を参照のこと)。関連する一貫性グループ内のソース記憶装置110a〜fの全てが保留オフライン状態に置かれた後、特殊I/O不良メッセージを受信したあらゆるホストCPU102が、関連する一貫性グループに含まれるソース記憶装置110a〜fの全てをオフライン状態に置くステップを(例えば、図7に関連付けて以下で説明するルーチン700にしたがって)実行する(図7に例示するルーチン700のステップ710および712を参照のこと)。この点について、いくつかの異なるホストCPU102が、保留オフライン状態にあるソース記憶装置110が後にオフライン状態に切り替えられる前に、これらの装置に書き込みを行なおうとする場合があることは認められよう。このような状況では、保留オフライン状態にあるソース記憶装置110に書き込みを行なおうとした各ホストCPU102は、以下で論ずるルーチン700を実行する。したがって、多数のホストCPU102が各々独立して同時にルーチン700を実行する場合がある。記憶装置104の各々がオフライン状態に置かれた後、ソース記憶システム104は再び、その記憶装置110に宛てられた書き込み要求コマンド・チェーンをコミットすることを許可される(ルーチン600のステップ608参照)。
このように、宛先記憶装置110の保留オフライン状態は、ソース記憶システム104が宛先記憶装置110に宛てられた書き込み要求コマンド・チェーンを、宛先記憶装置の一貫性グループ内の他の全てのソース記憶装置110に対してミラーリング通信が不能となっている期間中、一時的に許可しないという前述の状況に対応する。一方、宛先記憶装置110のオフライン状態は、ソース記憶システム104が、書き込まれたデータを最初にターゲット記憶システム106に転送する必要なく、宛先記憶装置110への書き込み要求コマンド・チェーンをコミットすることを許可するという、前述の状況に対応する。
尚、宛先記憶装置110に対して試みた書き込みに応答して特殊エラー・メッセージを受信したホストCPU102はいずれも、直ちに書き込みを繰り返し実行しようとせず、その結果、ホストCPU102上で走っているアプリケーション・プログラムをクラッシュさせないことは認められよう。むしろ、かかるホストCPU102の各々は、代わりに、ルーチン700(図7)を実行し、最初に、関連する一貫性グループ内のソース記憶装置110の全てを保留オフライン状態に置き、次いで、かかるソース記憶装置110の全てをオフライン状態に置く。特殊エラー・メッセージを受信した各ホストCPU102は、ルーチン700を完了した後、その書き込み動作を繰り返し実行しようとする。ルーチン700が完了した後、宛先記憶装置の一貫性グループ内にあるソース記憶装置110は全てオフラインとなる。このため、いずれのホストCPUによる宛先記憶装置110への書き込みの試行も、これ以降(ルーチン600のステップ608によって)コミットされる。したがって、宛先記憶装置110に対するミラーリング通信を失ったソース記憶システム104が単純に書き込み要求コマンド・チェーンをコミットするのを禁止したときに、ホストCPU102上のアプリケーション・プログラムをクラッシュさせるという前述の状況は回避される。
宛先記憶装置110が保留オフラインでないと(ステップ610において)判定された場合、ルーチン600は、宛先記憶装置110が現在はオンラインであると認識する。図示の例では、宛先記憶装置110がオンラインであると(ステップ610において)判定した場合、ルーチン600はステップ614に進み、ミラーリング通信が現在宛先記憶装置110に対して可能か否かについて判定を行なう。ステップ614における判定は、例えば、宛先記憶装置110が含まれるミラーリング・グループ180に関連する表402にあるミラーリング・リンク・ステータス・フラグをチェックし、少なくとも1つのミラーリング・リンク112がミラーリング・グループ108に対して動作状態にあるか否か判定することによって行なうことができる。1つ以上のミラーリング・リンク112がミラーリング・グループ108に対して可能な場合、宛先記憶装置110に対するミラーリング通信は可能であると判定する。それ以外の場合、宛先記憶装置110に対するミラーリング通信は不能であると判定する。
宛先記憶装置110に対してミラーリング通信が不能であると(ステップ614において)判定した場合、ルーチン600はステップ620〜628に進み、ターゲット記憶システム106が格納したデータ・セットの一貫性を維持する処置を取る(以下で論ずる)。
宛先記憶装置110に対するミラーリング通信が可能であると(ステップ614において)判定した場合、ルーチン600はステップ616に進み、ターゲット記憶システム106によって、書き込み要求コマンド・チェーンを(条件付きで)処理しコミットする。次いで、ルーチン600はステップ618に進み、書き込み要求コマンド・チェーンの処理およびコミットの間を通じて(即ち、ソース記憶システム104およびターゲット記憶システム106双方に適正にデータを転送した後まで)ミラーリング通信が可能であり続けたか否かについて判定を行なう。ミラーリング通信が可能であり続けたため書き込み要求コマンド・チェーンを首尾よくコミットすることを許可された場合、ルーチン600は終了する。しかしながら、書き込み要求コマンド・チェーンがステップ616においてコミットされる前に(例えば、ミラーリング・リンク112を横切るデータ転送の間に)、宛先記憶装置110に対するミラーリング通信が不能になったと(ステップ618において)判定された場合、表402の初期チェックによって宛先記憶装置110に対するミラーリング通信が不能であったことが示されたかのように、ルーチン600はステップ620に進む。ステップ618における判定は、例えば、直接、即ち、表402(図4)を参照せずに、リンクのステータスを監視することによって行なうことができる。したがって、この実施の形態では、ソース記憶装置110に対するミラーリング通信が可能であることは、表402を参照するだけでは判定されない。代わりに、ミラーリング通信に関与する装置(例えば、図3のミラーリング・コントローラ308)または他のいずれかの装置も、ソース記憶装置110に対するミラーリング通信が不能となったか否かについて判定を行なうことができる。
ルーチン600がステップ620〜622に達した場合には、(ルーチン600をコールするに至った)書き込み要求コマンド・チェーンが送られたソース記憶装置110がオンラインであり、ターゲット記憶システム106とのミラーリング通信に携わることができないと判定されている。宛先記憶装置110は未だオンラインであるので、ルーチン600は、処理中の書き込み要求コマンド・チェーンが、宛先記憶装置のミラーリング・グループ108内のソース記憶装置110に宛てられた最初の書き込み要求コマンド・チェーンであることを認識する。何故なら、ミラーリング・グループ108に対するミラーリング通信は不能となっているからである。したがって、図示する実施の形態の一例では、ルーチン600は、ミラーリング・グループ108に対するミラーリング通信喪失を考慮に入れるために、宛先記憶装置のミラーリング・グループ108内にある他のソース記憶装置110の全ての状態を、オフライン(ステップ620)または保留オフライン(ステップ622)のいずれかに変更するステップを実行する。
更に具体的には、ステップ620において、宛先記憶装置100とのミラーリング通信を共有する(例えば、宛先記憶装置のミラーリング・グループ108の中にある)ソース記憶装置110の各々に対して、例えば、宛先記憶装置110に対する図5の表504の一貫性グループ・フラグをチェックすることによって判定することができる一貫性グループのメンバでないソース記憶装置110の各々に対して、ルーチン600は、当該ソース記憶装置110に対する状態フラグをオフラインにセットする。このように、オフラインに切り替えられたこれらソース記憶装置110に宛てられた書き込み要求コマンド・チェーンを伴うルーチン600の後続の繰り返し時に、これらのソース記憶装置110に対してミラーリング通信が不能となっているという事実にも拘らず、ルーチン600のステップ608および606のように、書き込み要求コマンド・チェーンを処理しコミットすることが許可される。
同様に、ステップ622において、宛先記憶装置110とのミラーリング通信を共有し、一貫性グループのメンバであるソース記憶装置110の各々に対して、ルーチン600は当該ソース記憶装置110の状態フラグを保留オフラインにセットする。したがって、保留オフラインに切り替えられたこれらソース記憶装置110に宛てられた書き込み要求コマンド・チェーンを伴うルーチン600の後続の繰り返し時に、ルーチン600はステップ612に進み、I/Oコマンド・チェーンを発行したホストCPU102に特殊I/O不良メッセージ(以下で論ずる)を送る。
ルーチン600のステップ622を完了した後、ステップ624において(例えば、図5の表504内の一貫性グループ・フラグをチェックすることによって)、宛先記憶装置110が一貫性グループのメンバであるか否かについて判定を行なう。宛先記憶装置110が一貫性グループのメンバではないと(ステップ624において)判定した場合、ルーチン600はステップ626に進み、当該宛先記憶装置110の状態フラグをオフラインにセットする。この状況では、宛先記憶装置110の状態フラグを直ちにオフライン状態に変更する方が安全である。何故なら、宛先記憶装置110は一貫性グループのメンバでなく、このソース記憶装置110に対してターゲット記憶システム106によってミラーされたデータは、他のいずれのソース記憶装置110に対してターゲット記憶システム106によってミラーされたデータとも一貫性を維持する必要がないからである。次いで、ルーチン600はステップ606に進み、宛先記憶装置110に宛てられた書き込み要求コマンド・チェーンを処理しコミットし、ルーチン600は終了する。前述のように、ソース記憶装置110に対する状態フラグがオフライン状態にあるとき、この記憶装置110を含むソース記憶システム104は、データを宛先記憶システム106に転送する必要なく、それに宛てられた書き込み要求コマンド・チェーンをコミットすることを許可される。
宛先記憶装置110が一貫性グループのメンバであると(ステップ624において)判定した場合、ルーチン600はステップ628に進み、宛先記憶装置110の状態フラグを保留オフラインにセットする。前述のように、宛先記憶装置110が保留オフライン状態にあるとき、この宛先記憶装置110を含むソース記憶システム104は、宛先記憶装置110に宛てられた書き込み要求コマンド・チェーンをコミットすることを一時的に禁止される。また、前述のように、本発明の一態様によれば、このソース記憶システム104がかかる書き込み要求コマンド・チェーンをコミットするのを禁止するのは、宛先記憶装置110と同じ一貫性グループ内に含まれる他のソース記憶装置110の全てに対するミラーリング通信が不能になるまでだけである。
図6の実施の形態では、宛先記憶装置110を含む不能のミラーリング・グループ108以外のミラーリング・グループ108に含まれるソース記憶装置110に対するミラーリング通信を不能にする役割は、ホストCPU102に任される。図6に例示する方法では、この目標はステップ612において達成され、宛先記憶装置110に宛てられた書き込み要求コマンド・チェーンを発行したホストCPU102に特殊I/O不良メッセージが送信される。
以下で更に詳しく説明するが、図7に例示する実施の形態では、この特殊I/O不良メッセージの受信に応答して、ホストCPU102は、宛先記憶装置110と同じ一貫性グループに含まれるソース記憶装置110を含むソース記憶システム104の各々にコマンドを送る。これらのコマンドは、ソース記憶システム104に、関連する一貫性グループに含まれるソース記憶装置110の状態フラグを保留オフライン状態にセットするように命令する。かかるソース記憶装置110の全てを保留オフライン状態に置いた後、特殊I/O不良メッセージを受信したホストCPU102は、関連するソース記憶システム104にコマンドを送り、関連する一貫性グループ内にあるソース記憶装置110の状態フラグをオフライン状態にセットするように命令する。最後に、関連する一貫性グループ内のソース記憶装置110の全てがオフライン状態に置かれた後、これらのソース記憶装置110を含むソース記憶システム104は、それに宛てられた書き込み要求コマンド・チェーンをコミットすることを再度許可される。このように、この技法を用いると、書き込み要求コマンド・チェーンを呼び出したホストCPU102上で走っているソフトウエアは、不能のミラーリング・グループ108に含まれるソース記憶装置110に対する書き込みに繰り返し失敗するために、クラッシュしない。むしろ、ホストCPU102が不能のミラーリング・グループ108内にある宛先記憶装置110に対して書き込みを行なおうとするときはいつでも、宛て先記憶装置110を含むソース記憶システム104は特殊I/O不良メッセージをホストCPU102に返送することによって、ホストCPU102に、宛先記憶装置の一貫性グループ内のソース記憶装置110に対するミラーリング通信を不能にする、前述の処置を講ずるように命令する。かかる処置を講じた後、宛先記憶装置110に対するミラーリング通信が不能になっていても、ホストCPU102は宛先記憶装置110に適正に書き込むことを許可される。
不能のミラーリング・グループ108内にある全てのソース記憶装置110の状態を変更する、前述のステップ620〜622に関して、これらのソース記憶装置110の状態は、代わりに、他の方法で変更することも可能であり、必ずしもミラーリング通信の喪失を発見した図6のルーチンの繰り返しの間に、ソース記憶システム104によって変更しなくてもよいことは理解されよう。例えば、これらの状態は、ルーチン600のその後の繰り返しの間に、ソース記憶システム104によって変更することも可能であり、あるいは図7のルーチン700(以下で論ずる)の実行中に、ホストCPU102の1つによって変更することも可能である。
この点について、図6に例示する実施の形態では、宛先記憶装置のミラーリング・グループ108内の記憶ソース装置110の全ての状態をステップ620〜622で変更するのは、単に便宜上のことに過ぎないことは認められよう。即ち、宛先記憶装置110と同じ一貫性グループになる不能のミラーリング・グループ108内のソース記憶装置110に対して、通信の喪失を発見するルーチン600の最初の繰り返しの間にかかるソース記憶装置110の状態を保留オフラインに変更すると、ステップ628において宛先記憶装置の状態フラグを保留オフライン状態にセットした後に、ステップ612においてソース記憶システム104によって発行された前述の特殊I/O不良メッセージに応答して、ホストCPU102が保留オフライン状態に変更しなければならない状態フラグの総数が減少する。加えて、宛先記憶装置100のそれ以外の一貫性グループに含まれる、またはいずれの一貫性グループにも含まれない不能のミラーリング・グループ108内のソース記憶装置110に対して、これらのソース記憶装置110の状態を保留オフライン状態またはオフライン状態にそれぞれ変更することによって、ホストCPU102が、ミラーリング通信が既に不能であると判定されたソース記憶装置110の1つに書き込みを行なおうとしたときに、以降のルーチン600の繰り返しにおいて、ステップ614〜628を実行する必要がなくなる。この点について、ミラーリング通信が既に不能であると判定されたソース記憶装置110の全ての状態の後。この点について、ミラーリング通信が既に不能であると判定されたソース記憶装置110の全ての状態を変更した後に、これらのソース記憶装置110の1つに書き込みを行なおうとしたとき、ルーチン600はステップ614には決して到達しない。何故なら、各々既にオフラインまたは保留オフライン状態のいずれかに置かれているからである。
図6の実施の形態では、ルーチン600が、不能のミラーリング・グループ108に含まれる宛先記憶装置110に宛てられた書き込み要求コマンド・チェーンに応答してのみ、ソース記憶装置110の状態を変更させているが、本発明はこれに限定される訳ではなく、代わりに、ソース記憶装置110の状態を、受信した書き込み要求コマンド・チェーンとは独立に変更してもよいことは認められよう。例えば、ソース記憶システム104内の1つ以上のコントローラ(例えば、図3のコントローラ302、304)が、直接またはリンク・ステータス表(例えば、図4の表402A〜B)によって、ミラーリング・リンク112a〜bのステータスを連続的に監視してもよく、これらのコントローラが、ミラーリング・グループ108に対するミラーリング通信が喪失したと判定したときにはいつでも、ミラーリング・グループ108内のソース記憶装置110の各々の状態を変更してもよい。
図7は、前述のようにホストCPU102がソース記憶システム104から特殊I/O不良メッセージを受信したときにはいつでもホストCPU102が実行することができるルーチン700の一例を示す。ルーチン700は、特殊I/O不良メッセージに応答するように多数の方法のいずれでもホストCPU102上に実現することができ、本発明はいずれかの特定の実現技法に限定されるのではない。例えば、メインフレーム・コンピュータを用いてホストCPU102を実現する場合、ルーチン700は、例えば、ソース記憶システム104に書き込み要求コマンド・チェーンを発行する役割を担うデバイス・ドライバに対するコードに埋め込むことができる。このような実施の形態では、ホストCPU102に返送される特殊エラー・メッセージは、そのデバイス・ドライバによって受信され、当該デバイス・ドライバがこの埋め込みコードを実行してルーチン700を行なうことができる。あるいは、オープン・システム・コンピュータを用いてホストCPU102を実現する場合、ルーチン600は、例えば、デバイス・ドライバよりも上位で実現することができ、ソース記憶システム104からの特殊I/O不良メッセージの受信によって、処理「スレッド」が、デバイス・ドライバから別個に実現されるルーチン700用のコードにジャンプすることもできる。即ち、特殊I/O不良メッセージは一時的にデバイス・ドライバから「処理カーネルを盗む」ことができる。尚、ルーチン700のコードは、オープン・システム・コンピュータのデバイス・ドライバ・コードにも埋め込み可能であることは認められよう。しかしながら、オープン・システムのデバイス・ドライバ・コードは各社に固有である場合が多く、したがってアクセスし変更することは困難である。当業者には、同様の結果を達成する数多くの別の適した技法が容易に想起されよう。したがって、本発明は、ここで説明する具体的な例に限定される訳ではない。
図7に例示するルーチン700に関して、方法ステップの正確な順序は重要ではなく、本発明は、図示の順序で正確に方法ステップを実行する実施の形態に限定される訳ではないことは認められよう。加えて、図7に示す方法ステップは、所望の結果を達成することができる多数の可能なルーチンの1つだけを表すのであり、本発明は図示する特定のルーチンに限定されるのではないことも認められよう。更に、本発明の実施の形態の中には、図7に示す方法ステップが実行する機能の全てよりも少ない機能を実行することが可能なものがあり、本発明は、図示したルーチンによって実行される機能の全てを用いる実施の形態に限定されるものではないことも理解されよう。
ルーチン700は、ソース記憶システム104から特殊I/O不良メッセージが受信されたときにコールされる。特殊I/O不良メッセージが受信されると、ルーチン700はステップ704に進み、ルーチン700は、特殊I/O不良メッセージの原因となった書き込み要求コマンド・チェーンが宛てられた宛先記憶装置110と同じ一貫性グループに含まれるソース記憶装置110の全てを識別する。特殊I/O不良メッセージの原因となった書き込み要求コマンド・チェーンが宛てられた宛先記憶装置110を識別するためには、ホストCPUは、書き込み要求コマンド・チェーンを送ったソース記憶装置に関してそれ自体のメモリを頼ることができ、あるいは、書き込み要求コマンド・チェーンが宛てられたソース記憶装置110を識別する、特殊I/O不良メッセージ自体に埋め込まれている情報を頼ることもできる。図示の実施の形態では、ホストCPU102は、どのソース記憶装置がどの一貫性グループのメンバであるかに関する情報を維持している。したがって、ステップ704の機能は、特殊I/O不良メッセージの原因となった書き込み要求コマンド・チェーンが宛てられたソース記憶装置110に対するこの情報を単に参照することによって、ホストCPU102によって実行することができる。ステップ704が完了した後、ルーチン700はステップ706に進む。
ステップ706において、ルーチン700は、関連する一貫性グループ内にオンライン状態にあるソース記憶装置110があるか否かについて判定を行い、ある場合、ステップ708に進む。ステップ708において、ステップ706でオンライン状態にあると識別された各ソース記憶装置110に対して、ルーチン700は、ホストCPU102に、I/Oコマンド・チェーンを発行させ、当該ソース記憶装置110を含むソース記憶システム104に、それを保留オフライン状態に戻すように命令する。
ステップ706および708の結果は、多数の方法のいずれでも得ることができ、本発明は、それを遂行するいずれかの特定の技法に限定されるのではない。ホストCPU102は、例えば、関連するソース記憶装置110の各々を順次ポーリングし、その現状態を判定して行き、ポーリングしたソース記憶装置110のいずれかが保留オフライン状態に切り替えられるべき状態のままであった場合、ホストCPU102はI/Oコマンド・チェーンを発行し、その装置の状態を変更することができる。保留オフライン状態に既に切り替えられている装置をポーリングするのを回避するために、ホストCPU102がステップ706および708を実行し始める前に、例えば、最初に各装置の現状態が示されている、関連するソース記憶装置110に対するステータス表(例えば、ホストCPUのメモリに格納されている)に対して更新を要求することができる。次いで、ホストCPU102は、表が保留オフライン状態に未だ切り替えていないことを示す、関連のソース記憶装置110のみをポーリングし、未だ変更されていないことをポーリングが示す装置の状態を変更するコマンド・チェーンを発行することができる。この技法は、前述のように多数のホストCPU102がルーチン700を同時に実行しているときに、時間を節約することができる。あるいは、ルーチン700を実行する各ホストCPU102は、例えば、表を更新したりあるいは現装置状態のポーリングを全く行なうことなく、宛先記憶装置の一貫性グループに含まれる各ソース記憶装置110に対して単にI/Oコマンドを発行し、ソース記憶システム104に、既に実行された状態変更を要求するI/Oコマンド・チェーンを破棄するか否かついて判定させてもよい。
宛先記憶装置の一貫性グループ内にあるソース記憶装置110の全てが保留オフライン状態に切り替えられていると(ステップ706において)判定した場合、ルーチン700はステップ710に進む。ステップ710において、ルーチン700は、関連する一貫性グループ内に、オフライン状態に未だ切り替えられていないソース記憶装置110があるか否かについて判定を行い、ある場合、ルーチン700はステップ712に進む。
ステップ712において、ステップ710でオフライン状態にあると識別された各ソース記憶装置110に対して、ルーチン700は、当該ソース記憶装置110を含むソース記憶システム104に、それをオフライン状態に切り替えるように命令するI/Oコマンド・チェーンをホストCPU102に発行させる。ステップ706および708に関連付けて先に説明した技法と同様の技法を用いて、ステップ710および712の結果を得ることができる。宛先記憶装置の一貫性グループ内のソース記憶装置110の全てがオフライン状態に切り替えられていると(ステップ710において)判定した場合、ルーチン700は終了する。
図7に示す実施の形態では、ソース記憶システム104は、各ソース記憶装置110が一貫性グループ内に含まれているか否かについてのみ識別する情報を格納し、ホストCPU102は、どの記憶装置110がどの一貫性グループに含まれているかに関する全ての情報を格納する。したがって、図示した例示の実施の形態では、ホストCPU102の1つが、関連する一貫性グループ内のソース記憶装置110を最初に保留オフライン状態に置き、次いでオフライン状態に置くことを要求するコマンドを送る実体となる。しかしながら、関連する一貫性グループ内のソース記憶装置110に対するミラーリング通信を不能にするには、代わりに、1つ以上のソース記憶システム104、またはソース記憶システム104と通信するコンピュータ・システム内の他のいずれかの装置または複数の装置がこれを行なうことも可能であることは認められよう。
以上説明した本発明の実施の形態は、少なくとも1つのホスト、少なくとも1つのソース記憶システム、および少なくとも1つのターゲット記憶システムを含み、ホストが書き込み動作をソース記憶システムに対して実行し、ソースおよびターゲット記憶システム間にミラーリング通信を確立する、データ・ミラーリング・システムを対象とする。前述の特定の実施の形態では、ホストは、ホストCPUとして記載されている。しかしながら、前述の本発明の種々の実施の形態はこの点に関して限定される訳ではなく、ソース記憶システムにデータを書き込むことができる、他の多数の形式のホスト・デバイスを含むデータ・ミラーリング・システムにも採用可能であることは認められよう。
以上、本発明の実施の形態をいくつか詳細に説明したが、当業者には種々の変更や改善が容易に想起されよう。かかる変更や改善は、本発明の精神および範囲に含まれることを意図するものとする。したがって、前述の説明は一例に過ぎず、限定として意図したのではない。本発明は、特許請求の範囲およびその均等物による規定によってのみ限定されるものとする。
本発明の態様を採用可能なデータ・ミラーリング・システムの代表例を示すブロック図である。 多数のソースおよびターゲット記憶装置を用いた、図1に示すようなデータ・ミラーリング・システムの一例を示すブロック図である。 図1および図2のソースおよび/またはターゲット記憶システムとして使用可能な記憶システムの例示的な実現を示すブロック図である。 図4A及び図4Bは、図1および図2のソース記憶システムの各々に格納し、本発明の一つの実施の形態にしたがって複数のターゲット記憶装置上に格納されているデータの一貫性を維持する際に供することができる、フラグ表の代表例を示す図である。 図1および図2のソース記憶システムの各々に格納し、本発明の一つの実施の形態にしたがって複数のターゲット記憶装置上に格納されているデータの一貫性を維持する際に供することができる、フラグ表の代表例を示す図である。 図1および図2のソース記憶システムの各々の1つ以上のコントローラによって実行し、複数のターゲット記憶装置上に格納されているデータの一貫性維持に関する本発明の種々の態様を実現することができるプロセスの代表例を示すフロー・チャートである。 図1および図2のホストCPUによって実行され、複数のターゲット記憶装置上に格納されるデータの一貫性維持に関する本発明の更に別の態様を実現することができるソフトウエア・ルーチンの代表例を示すフロー・チャートである。

Claims (9)

  1. 少なくとも1つのホストと、少なくとも1つのソース記憶システムと、少なくとも1つのターゲット記憶システムとから成るデータ・ミラーリング・システムにおける使用方法であって、前記少なくとも1つのソース記憶システムは複数のミラー・ソース記憶装置を含み、前記少なくとも1つのターゲット記憶システムは複数のターゲット記憶装置を含み、前記少なくとも1つのホストは前記少なくとも1つのソース記憶システムに結合され、前記複数のミラー・ソース記憶システムに書き込み動作を実行し、前記少なくとも1つのソース記憶システムは前記少なくとも1つのターゲット記憶システムに結合され、前記複数のミラー・ソース記憶装置の各々から前記複数のターゲット記憶装置の対応する1つへのミラーリング通信を可能とする方法において、
    (A)前記データ・ミラーリング・システムに、前記複数のターゲット記憶装置の少なくとも1つの対応するサブセット上に一貫性のあるデータ表現を維持することが望ましい、前記複数のミラー・ソース記憶装置の少なくとも1つのサブセットを識別する情報を格納するステップ、
    を含む方法。
  2. 請求項1記載の方法であって、更に、
    (B)前記ステップ(A)において格納した前記情報を用いて、前記複数のターゲット記憶装置の前記少なくとも1つの対応するサブセット上に一貫性のあるデータ表現を維持することを保証するステップを含む、方法。
  3. 請求項1記載の方法であって、前記複数のターゲット記憶装置の前記少なくとも1つの対応するサブセットは、前記複数のミラー・ソース記憶装置の複数のサブセットを含み、前記ステップ(A)は、前記少なくとも1つのホストに、前記複数のミラー・ソース記憶装置のどれが前記複数のミラー・ソース記憶装置の前記複数のサブセットのどれに含まれているのかを識別する情報を格納するステップを含む、方法。
  4. 請求項3記載の方法であって、前記ステップ(A)は、更に、
    (A1)前記少なくとも1つのソース記憶システムに、前記複数のミラー・ソース記憶装置の各々が一貫性グループのメンバであるか否かを識別する情報を格納するステップを含む、方法。
  5. 請求項1記載の方法であって、前記ステップ(A)は、
    (A1)前記少なくとも1つのソース記憶システムに、前記複数のミラー・ソース記憶装置の各々が一貫性グループのメンバであるか否かを識別する情報を格納するステップを含む、方法。
  6. 複数のミラー・ソース記憶装置を含む少なくとも1つのソース記憶システムと、複数のターゲット記憶装置を含む少なくとも1つのターゲット記憶システムとから成るデータ・ミラーリング・システムにおいて用いるホストであって、前記少なくとも1つのソース記憶システムは前記少なくとも1つのターゲット記憶システムに結合され、前記複数のミラー・ソース記憶装置の各々から前記複数のターゲット記憶装置の対応する1つへのミラーリング通信を可能とするホストにおいて、
    少なくとも1つのメモリ・ユニットと、
    前記少なくとも1つのソース記憶システムに結合され、前記複数のミラー・ソース記憶装置に対して書き込み動作を実行する少なくとも1つのコントローラであって、前記少なくとも1つのメモリ・ユニットに、前記複数のターゲット記憶装置の少なくとも1つの対応するサブセット上に一貫性のあるデータ表現を維持することが望ましい、前記複数のミラー・ソース記憶装置の少なくとも1つのサブセットを識別する情報を格納するように構成されている、少なくとも1つのコントローラと、
    を備えるホスト。
  7. 請求項6記載のホストであって、前記複数のターゲット記憶装置の前記少なくとも1つの対応するサブセットは、前記複数のミラー・ソース記憶装置の複数のサブセットを含み、前記少なくとも1つのコントローラは、前記少なくとも1つのメモリ・ユニットに、前記複数のミラー・ソース記憶装置のどれが前記複数のミラー・ソース記憶装置の前記複数のサブセットのどれに含まれているのかを識別する情報を格納するように構成されている、ホスト。
  8. 少なくとも1つのホストと、複数のターゲット記憶装置を含む少なくとも1つのターゲット記憶システムとから成るデータ・ミラーリング・システムにおいて用いるソース記憶システムであって、
    複数のミラー・ソース記憶装置であって、前記少なくとも1つのホストに結合され、前記少なくとも1つのホストに、当該複数のミラー・ソース記憶装置に対する書き込み命令を実行させ、更に前記少なくとも1つのターゲット記憶システムに結合され、当該複数のミラー・ソース記憶装置の各々から前記複数のターゲット記憶装置の対応する1つへのミラーリング通信を可能にする、複数のミラー・ソース記憶装置と、
    少なくとも1つのメモリ・ユニットと、
    前記少なくとも1つのメモリ・ユニットに、前記複数のターゲット記憶装置の少なくとも1つの対応するサブセット上に一貫性のあるデータ表現を維持することが望ましい、前記複数のミラー・ソース記憶装置のサブセットに各々属する前記複数のミラー・ソース記憶装置のそれぞれをを識別する情報を格納する、少なくとも1つのコントローラと、
    を備えるソース記憶システム。
  9. 請求項8記載のソース記憶システムであって、前記少なくとも1つのコントローラは、前記少なくとも1つのメモリ・ユニットに、前記複数のミラー・ソース記憶装置の各々が一貫性グループのメンバであるか否かを識別する情報を格納するように構成されている、ソース記憶システム。
JP2005248644A 1999-09-01 2005-08-30 ミラーリング・デバイス群に格納されているデータの一貫性を維持する方法および装置 Pending JP2006053932A (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US09/388,328 US6493796B1 (en) 1999-09-01 1999-09-01 Method and apparatus for maintaining consistency of data stored in a group of mirroring devices

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2001520635A Division JP3732440B2 (ja) 1999-09-01 2000-09-01 ミラーリング・デバイス群に格納されているデータの一貫性を維持する方法および装置

Publications (1)

Publication Number Publication Date
JP2006053932A true JP2006053932A (ja) 2006-02-23

Family

ID=23533675

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2001520635A Expired - Lifetime JP3732440B2 (ja) 1999-09-01 2000-09-01 ミラーリング・デバイス群に格納されているデータの一貫性を維持する方法および装置
JP2005248644A Pending JP2006053932A (ja) 1999-09-01 2005-08-30 ミラーリング・デバイス群に格納されているデータの一貫性を維持する方法および装置

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2001520635A Expired - Lifetime JP3732440B2 (ja) 1999-09-01 2000-09-01 ミラーリング・デバイス群に格納されているデータの一貫性を維持する方法および装置

Country Status (5)

Country Link
US (1) US6493796B1 (ja)
EP (4) EP1426863B1 (ja)
JP (2) JP3732440B2 (ja)
DE (4) DE04002582T1 (ja)
WO (1) WO2001016748A1 (ja)

Families Citing this family (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7039657B1 (en) * 1999-11-09 2006-05-02 International Business Machines Corporation Method, system, and program for accessing data from storage systems
GB2368411B (en) 2000-10-25 2004-01-28 Proksim Software Inc Sharing data over a network
US6883018B1 (en) 2001-01-24 2005-04-19 Emc Corporation Scanning a message-list
EP1248179A1 (en) * 2001-04-03 2002-10-09 Hewlett-Packard Company Selective activation and deactivation of peripheral devices connected to a USB system
US7640582B2 (en) 2003-04-16 2009-12-29 Silicon Graphics International Clustered filesystem for mix of trusted and untrusted nodes
US7617292B2 (en) * 2001-06-05 2009-11-10 Silicon Graphics International Multi-class heterogeneous clients in a clustered filesystem
US6751681B2 (en) * 2001-06-18 2004-06-15 Sony Corporation System and method for providing automatic firmware updates and diagnostics for network attached storage devices
US7653928B2 (en) * 2002-08-30 2010-01-26 Sony Corporation Remote user interface for media player
US7143250B1 (en) 2003-06-02 2006-11-28 Lsi Logic Corporation Methods and systems for improving mirror performance via optimized multi-channel utilization
US7133986B2 (en) * 2003-09-29 2006-11-07 International Business Machines Corporation Method, system, and program for forming a consistency group
US7724599B2 (en) 2003-12-03 2010-05-25 Hitachi, Ltd. Remote copy system
JP2006221487A (ja) * 2005-02-14 2006-08-24 Hitachi Ltd リモートコピーシステム
US7437389B2 (en) * 2004-03-10 2008-10-14 Hitachi, Ltd. Remote copy system
US7085788B2 (en) 2003-12-03 2006-08-01 Hitachi, Ltd. Remote copy system configured to receive both a write request including a write time and a write request not including a write time.
US8032726B2 (en) * 2003-12-03 2011-10-04 Hitachi, Ltd Remote copy system
US20050149548A1 (en) * 2003-12-29 2005-07-07 Chong Fay Jr. One-way data mirror using copy-on-write
US20050149554A1 (en) * 2003-12-29 2005-07-07 Chong Fay Jr. One-way data mirror using write logging
KR100584598B1 (ko) * 2004-05-17 2006-05-30 삼성전자주식회사 재기록 가능 기록 매체, 기록/재생 방법, 기록/재생 장치및 싱크 검출 장치
US7707186B2 (en) * 2004-06-18 2010-04-27 Emc Corporation Method and apparatus for data set migration
JP4477950B2 (ja) 2004-07-07 2010-06-09 株式会社日立製作所 リモートコピーシステム及び記憶装置システム
US7330861B2 (en) 2004-09-10 2008-02-12 Hitachi, Ltd. Remote copying system and method of controlling remote copying
JP4915775B2 (ja) 2006-03-28 2012-04-11 株式会社日立製作所 ストレージシステム及びストレージシステムのリモートコピー制御方法
US7284150B2 (en) * 2004-09-22 2007-10-16 International Business Machines Corporation System and method for reliably storing data and providing efficient incremental backup and asynchronous mirroring by preferentially handling new data
US7647357B2 (en) * 2004-11-12 2010-01-12 International Business Machines Corporation Data transfer management in consistency group formation
JP2007047892A (ja) * 2005-08-08 2007-02-22 Hitachi Ltd 計算機システム及び計算機システムの状態管理方法
US7668810B2 (en) * 2006-01-27 2010-02-23 International Business Machines Corporation Controlling consistency of data storage copies
US7464238B1 (en) * 2006-04-28 2008-12-09 Network Appliance, Inc. System and method for verifying the consistency of mirrored data sets
JP4774400B2 (ja) * 2007-10-31 2011-09-14 株式会社日立製作所 監視システム
US20090182797A1 (en) * 2008-01-10 2009-07-16 Microsoft Corporation Consistent contingency table release
WO2010056239A1 (en) * 2008-11-13 2010-05-20 Lsi Corporation Active-active failover for a direct-attached storage system
US8453257B2 (en) * 2009-08-14 2013-05-28 International Business Machines Corporation Approach for securing distributed deduplication software
US8593918B1 (en) * 2011-06-30 2013-11-26 Emc Corporation Maintaining tape emulation consistency
US8601209B1 (en) 2011-06-30 2013-12-03 Emc Corporation Maintaining dasd and tape continuous availability
EP2642387B1 (en) * 2011-08-31 2015-07-15 Huawei Technologies Co., Ltd. Method, memory management unit and computer system for managing memory of computer system
US9430343B1 (en) * 2012-05-07 2016-08-30 Emc Corporation Using affinity to mediate bias in a distributed storage system
US9838260B1 (en) 2014-03-25 2017-12-05 Amazon Technologies, Inc. Event-based data path detection
US10467423B1 (en) * 2014-03-26 2019-11-05 Amazon Technologies, Inc. Static analysis-based tracking of data in access-controlled systems
US9645766B1 (en) 2014-03-28 2017-05-09 EMC IP Holding Company LLC Tape emulation alternate data path
WO2016010527A1 (en) * 2014-07-15 2016-01-21 Hewlett-Packard Development Company, L. P. Database transaction replay
US10728272B1 (en) 2014-12-17 2020-07-28 Amazon Technologies, Inc. Risk scoring in a connected graph
DE102017102420A1 (de) 2017-02-08 2018-08-09 Abb Turbo Systems Ag Gleitlagerung mit hydrodynamischer axialsicherung
US11379335B2 (en) 2017-10-05 2022-07-05 International Business Machines Corporation Self-reporting remote copy performance on a consistency group
US11157368B2 (en) 2017-11-27 2021-10-26 Nutanix, Inc. Using snapshots to establish operable portions of computing entities on secondary sites for use on the secondary sites before the computing entity is fully transferred
US11275519B2 (en) * 2017-11-27 2022-03-15 Nutanix, Inc. Forming lightweight snapshots for lossless data restore operations
US11093338B2 (en) 2017-11-27 2021-08-17 Nutanix, Inc. Emulating high-frequency application-consistent snapshots by forming restore point data sets based on remote site replay of I/O commands
US10942822B2 (en) 2017-11-27 2021-03-09 Nutanix, Inc. Consistency group restoration from a secondary site
JP2021082003A (ja) * 2019-11-19 2021-05-27 キヤノン株式会社 情報処理装置
US11853585B2 (en) 2020-01-27 2023-12-26 International Business Machines Corporation Performing a point-in-time snapshot copy operation within a data consistency application
US11055017B1 (en) 2020-01-27 2021-07-06 International Business Machines Corporation Throttling a point-in-time snapshot copy operation within a data consistency application
US11513716B2 (en) * 2021-01-22 2022-11-29 EMC IP Holding Company LLC Write first to winner in a metro cluster

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5313585A (en) * 1991-12-17 1994-05-17 Jeffries Kenneth L Disk drive array with request fragmentation
US5555404A (en) 1992-03-17 1996-09-10 Telenor As Continuously available database server having multiple groups of nodes with minimum intersecting sets of database fragment replicas
KR0128271B1 (ko) * 1994-02-22 1998-04-15 윌리암 티. 엘리스 재해회복을 위한 일관성 그룹 형성방법 및 레코드갱싱의 섀도잉 방법, 주시스템, 원격데이타 섀도잉 시스템과 비동기 원격데이타 복제 시스템
JP2894676B2 (ja) * 1994-03-21 1999-05-24 インターナショナル・ビジネス・マシーンズ・コーポレイション 非同期式遠隔コピー・システム及び非同期式遠隔コピー方法
US5581754A (en) * 1994-12-07 1996-12-03 Xerox Corporation Methodology for managing weakly consistent replicated databases
US5799323A (en) 1995-01-24 1998-08-25 Tandem Computers, Inc. Remote duplicate databased facility with triple contingency protection
US5542065A (en) * 1995-02-10 1996-07-30 Hewlett-Packard Company Methods for using non-contiguously reserved storage space for data migration in a redundant hierarchic data storage system
US5692155A (en) * 1995-04-19 1997-11-25 International Business Machines Corporation Method and apparatus for suspending multiple duplex pairs during back up processing to insure storage devices remain synchronized in a sequence consistent order
US5799141A (en) 1995-06-09 1998-08-25 Qualix Group, Inc. Real-time data protection system and method
US6044444A (en) * 1996-05-28 2000-03-28 Emc Corporation Remote data mirroring having preselection of automatic recovery or intervention required when a disruption is detected
US6058455A (en) * 1997-07-02 2000-05-02 International Business Corporation RAID system having a selectable unattended mode of operation with conditional and hierarchical automatic re-configuration
JP3563591B2 (ja) * 1997-09-29 2004-09-08 株式会社リコー 分散型データベースシステムの一貫性管理方法およびその方法の各工程をコンピュータに実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体
US6304941B1 (en) * 1998-04-08 2001-10-16 International Business Machines Corporation Method and apparatus for reducing processor operations when adding a new drive to a raid-6 drive group

Also Published As

Publication number Publication date
DE04002582T1 (de) 2005-08-18
JP3732440B2 (ja) 2006-01-05
EP1435575A3 (en) 2005-02-09
DE60016371D1 (de) 2005-01-05
EP1125201B1 (en) 2004-12-01
EP1426863A2 (en) 2004-06-09
US6493796B1 (en) 2002-12-10
DE04002583T1 (de) 2005-08-18
EP1517238A1 (en) 2005-03-23
EP1435575A2 (en) 2004-07-07
EP1426863B1 (en) 2016-03-30
EP1125201A1 (en) 2001-08-22
DE60016371T2 (de) 2005-12-01
DE04028359T1 (de) 2006-06-22
WO2001016748A1 (en) 2001-03-08
JP2003508847A (ja) 2003-03-04
EP1426863A3 (en) 2005-02-09

Similar Documents

Publication Publication Date Title
JP3732440B2 (ja) ミラーリング・デバイス群に格納されているデータの一貫性を維持する方法および装置
US6708285B2 (en) Redundant controller data storage system having system and method for handling controller resets
US6802023B2 (en) Redundant controller data storage system having hot insertion system and method
US6715101B2 (en) Redundant controller data storage system having an on-line controller removal system and method
JP4916714B2 (ja) ストレージ・アクセス要求を処理するための方法およびプログラム
US6308284B1 (en) Method and apparatus for maintaining data coherency
EP0986008B1 (en) Computer system comprising controllers and computing elements
US7650467B2 (en) Coordination of multiprocessor operations with shared resources
US20030145168A1 (en) Method and apparatus for maintaining data coherency
JPH09269871A (ja) ディスクアレイ装置におけるデータ再冗長化方式
JPH083807B2 (ja) 2重化磁気デイスク装置の自動切換装置
JPH06139028A (ja) ディスク制御方式
JPH06124242A (ja) 二重化共有メモリ等価性保証方式

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20061107

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20070206

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20070209

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070507

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20070605

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071003

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20071116

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20080404

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20100427

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20100506