JP2009527062A - 超高度データ可用性および地理的災害許容性を得るためのシステムおよび方法 - Google Patents

超高度データ可用性および地理的災害許容性を得るためのシステムおよび方法 Download PDF

Info

Publication number
JP2009527062A
JP2009527062A JP2008555473A JP2008555473A JP2009527062A JP 2009527062 A JP2009527062 A JP 2009527062A JP 2008555473 A JP2008555473 A JP 2008555473A JP 2008555473 A JP2008555473 A JP 2008555473A JP 2009527062 A JP2009527062 A JP 2009527062A
Authority
JP
Japan
Prior art keywords
site
data
node
control node
protection domain
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
JP2008555473A
Other languages
English (en)
Inventor
デール ハグランド
ロン アンラウ
クレイグ グロウリッチ
ウェイン カーポフ
Original Assignee
ヨッタヨッタ インコーポレイテッド
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 ヨッタヨッタ インコーポレイテッド filed Critical ヨッタヨッタ インコーポレイテッド
Publication of JP2009527062A publication Critical patent/JP2009527062A/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/2058Error 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
    • 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
    • G06F11/2074Asynchronous techniques
    • 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
    • G06F11/2079Bidirectional techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/40Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection
    • 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/2002Error 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 interconnections or communication control functionality are redundant
    • G06F11/2007Error 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 interconnections or communication control functionality are redundant using redundant communication media
    • G06F11/201Error 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 interconnections or communication control functionality are redundant using redundant communication media between storage system components
    • 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

Abstract

ネットワークデータ記憶システムおよび方法は、潜在的に大きな距離によって隔てられた複数のデータセンタでデータを読み書きするコンピュータが、サイト間でデータを複製することを可能にして、ネットワーク待ち時間が読み書き動作の実行を有意に妨げることを防ぎながらも、完全なサイト障害を含む障害からデータが保護されるようにする。システムの任意のコンポーネントの単独障害の後、または地理的領域に関わらずすべての設備の任意の完全な障害の後でさえ、すべてのデータに対する継続したアクセスが提供される。書込みデータは、稼働サイト、たとえばサーバが記憶リソースにデータを書き込んでいるサイトから、ネットワーク待ち時間が性能に有意な影響を及ぼさないのに十分なほど稼働サイトに近いが、地域的災害が両サイトに悪影響を与える可能性が低くなるのに十分なほど離れて位置する保護サイトに同期的に複製される。そして、書込みデータは、離れたところに位置しうる稼働サイトに、非同期的にコピーされる。

Description

関連出願の相互参照
本出願は、非仮出願であり、その全ての内容が参照により本明細書に組み入れられる2006年2月14日出願の米国特許仮出願第60/773,401号の優先権を主張する。
著作権表示
本特許文献の開示の一部は、著作権保護の対象となる内容を含む。著作権所有者は、米国特許商標庁の特許ファイルまたは記録に見られるような特許文献または特許開示の、第三者によるファクシミリ複製には異議を唱えないが、他の点ではすべての著作権を留保する。
背景
本発明は一般に、ネットワーク記憶システムおよび方法に関し、特に、超高度データ可用性および地理的災害許容性を提供するネットワーク記憶システムに関する。
現在の記憶ネットワーク、特にネットワークによって相互接続された、地理的に隔てられたアクセスノードおよび記憶リソースを含む記憶ネットワークでは、データ損失がないことを意味する「ゼロ(RPO)(Recovery Point Object)」およびデータ可用性の損失がないことを意味する「ゼロ(RTO)(Recovery Time Objective)」と呼ばれることが多いものを備えたシステムおよび方法を、最小限の設備投資で提供することが望ましい。
残念ながら、現在の技術は一般に、純粋に同期的な距離をわたるデータ複製または長めの距離によって隔てられたサイトにおけるデータに対する書込みおよびスタンバイアクセスのみを受け入れる単一サイト内での複製に限られている。これらの解決法は両方とも、ゼロRPOおよびゼロRTOの両方を達成することができない。遠距離をわたるデータ複製を提供する現在の市販システムの例は、EMC CorporationのSymmetrix Remote Data Facility (SRDF)およびHitachi CorporationのTrue Copyを含む。
また、一部には、ホスト装置によって要求されるデータのブロックに対するアクセス速度を改善するために、データアクセスが局所化されることが望ましい。アクセスノードでブロックをキャッシュすることが局所化を提供するが、キャッシュデータは、同じデータをキャッシュしているかもしれない他のアクセスノードでの変更に対してコヒーレントに維持されなければならない。
さらに、そのような複雑な記憶アプリケーションは、それらの補助記憶システムの障害、ローカル記憶ネットワークの障害、ネットワーク相互接続ノードの障害およびアクセスノードの障害に耐える必要がある。障害が起こるならば、非同期データ伝送は、障害が発生したサイトで保持されたデータの損失の可能性を暗示する。そのうえ、アプリケーションの観点から、生き残った記憶コンテンツから、一貫性のあるデータイメージが構成される必要がある。アプリケーションは、記憶システムに対するどの書込み、すなわち書き込まれるデータのどの断片が記憶システム障害から生き残ったのかに関して、何らかの想定をしなければならない。具体的には、記憶システムによって、完了したものと肯定応答されたすべての書込みに関して、所与のブロックに対する書込みによる変更が失われるような場合、ボリューム中のブロックまたはブロックの関連ボリュームに対するすべての後続の書込みもまた失われるような書込みの順序付けが維持される。
したがって、高いデータ可用性および地理的障害許容性を提供するシステムおよび方法を提供することが望ましい。
簡単な概要
本発明は、高いデータ可用性および地理的障害許容性を提案するシステムおよび方法を提供する。特に、潜在的に大きな距離によって隔てられた複数のデータセンタでデータを読み書きするコンピュータが、サイト間でデータを複製することを可能にして、ネットワーク待ち時間が読み書き動作の実行を有意に妨げることを防ぎながらも、完全なサイト障害を含む障害からデータが保護されるようにするネットワークデータ記憶システムおよび方法が提供される。任意で、システムおよび方法は、複数のそのようなサイトが同じボリュームのデータを同時に読み書きすることができるようなコヒーレンスモデルを提供する。加えて、任意で、本システムおよび方法は、二つのサイトの障害後に動作再始動を可能にする、時間的一貫性のあるデータイメージを提供する機構を提供する。
様々な態様が、壊滅的な災害の後でさえ、企業がゼロ(RPO)(Recovery Point Objective)およびゼロ(RTO)(Recovery Time Objective)を維持することを可能にする。一つの態様では、システムのいずれかのコンポーネントの単一の障害の後、または単一の地理的領域に位置するすべての設備の完全な障害もしくは単一の地理的領域に対するアクセスを隔離する障害の後でさえ、すべてのデータに対する継続したアクセスを可能にするシステムおよび方法が提供される。特定の局面で、これは、稼働サイト、たとえばサーバが記憶リソースにデータを書き込んでいるサイトから、ネットワーク待ち時間が性能に有意な影響を及ぼさないのに十分なほど稼働サイトに近いが、地域的災害が両サイトに悪影響を与える可能性が低くなるのに十分なほど離れて位置する保護サイトに書込みデータを同期的に複製することによって達成される。そして、書込みデータは、より離れたところに位置する、一つまたは複数の稼働サイトを潜在的に含む他のサイトに、非同期的にコピーされる。特定の局面では、そのすべての内容が参照により本明細書に組み入れられる、2006年7月14日出願の「Maintaining Write Order Fidelity on a Multi-Writer System」と題する米国特許出願第11/486,754号で教示されている「WOF」(Write Order Fidelity)を使用して、稼働中および保護の両サイトを損失した後、動作を再始動するために時間的一貫性のあるデータのイメージが利用可能であることを保証する。
特定の局面で、そのすべての内容が参照により本明細書に組み入れられる、2005年7月7日出願の米国特許出願第11/177,924号で教示されているように、すべての制御ノードはコヒーレントであって、物理的なデータの動きが非同期的であるかもしれない場合に、すべての制御ノードがあたかも単一のディスクドライブに同期コヒーレンスでアクセスしているかのように挙動する。これは、クラスタ化アプリケーションが長い非同期距離の両端で作動して、局所性能に等しい全般性能で単一の共通のデータイメージにアクセスすることを可能にする。単一インスタンスアプリケーション、たとえば複数のコンピュータシステムにまたがるその実行のクラスタ化をサポートしないアプリケーションの場合でさえ、これは、サイトまたはシステム障害の場合にすべての非同期サイトの間での負荷分散およびアプリケーションの速やかなフェイルオーバを可能にするため、特に有用である。
一つの態様では、二つの稼働サイトが提供され、各稼働サイトが対応する保護サイトを有し、稼働サイトへの書込みが保護サイトに同期的に鏡映される。他の態様は、複数の地理的領域における障害の許容を可能にするさらなるネットワーク冗長性とともに、稼働サイトごとに複数の保護サイトを含む。他の態様は2つより多くの稼働サイトを考慮している。他の態様は、保護サイトが、それぞれのホストシステム(「ホスト」)へのI/Oを供しながらも、同期的距離内の他のサイトを使用して、以下に定義するダーティーページを保護する稼働中I/Oをも有することを可能にする。
本発明の局面は、有利には、トランザクション集中的作業負荷、すなわち高いボリュームの、短い待ち時間に影響されるトランザクションからなる作業負荷、ならびにスループット指向性作業負荷、すなわち各トランザクションで読み出しまたは書き込みされる大きな領域を有する作業負荷の両方をサポートする。本発明の局面はまた、有利には、通常は単一のサイトに限定されるクラスタ化アプリケーションおよびオペレーションを、広範に隔てられたサイトの間で作動させることを可能にする。さらには、本発明の局面は、動作障害回復力を高めるだけでなく、ネットワーク利用率を最適化する。
本発明の一つの局面にしたがって、第一のサイトおよび第一のサイトから離れたところに位置する第二のサイトを含む第一の保護ドメインと、第一の保護ドメインから離れたところに位置し、多数のサイトを有し、各サイトが少なくとも一つの制御ノードを含むものである第二の保護ドメインとを有するデータ記憶ネットワーク中で、データ可用性および障害許容性を提供する方法が提供される。本方法は典型的には、ホストシステムから受け取った書込み要求を、第一のサイト中の第一のノードに対応する第一のキャッシュに記憶するステップと、書込み要求を、第一のサイトから地理的に離れた第二のサイトの第二のノードに伝送するステップとを含む。本方法はまた、典型的には、第一のノードから受け取った書込み要求を第二のノード中の第二のキャッシュに記憶するステップ、および書込み要求が第二のノードによって受け取られたという第二のノードからの肯定応答を第一のノードで受け取るステップを含む。本方法はさらに、典型的には、その後、ホストシステムに対し、書込み要求が完了したことを肯定応答するステップ、およびその後、書込み要求を、第一の保護ドメインから地理的に離れた第二の保護ドメイン内の第三のサイトの第三のノードに送るステップを含む。
本発明の別の局面にしたがって、キャッシュおよびプロセッサモジュールを典型的に含むデータ記憶ネットワーク制御ノードが提供され、プロセッサモジュールは、典型的には、ホストシステムから受け取ったデータアクセス要求をキャッシュに記憶し(ホストシステムおよびデータ記憶ネットワーク制御ノードは第一のサイトにある)、データアクセス要求を、第一のサイトから地理的に離れた第二のサイト中の第二の制御ノードに送る(第一および第二のサイトは第一の保護ドメインの一部である)ように構成されている論理を実現する。論理はまた、典型的には、データアクセス要求がそのキャッシュに記憶されているという肯定応答を第二の制御ノードから受け取ると、a)ホストシステムに対し、データアクセス要求が完了したと肯定応答し、その後、b)データアクセス要求を、第一の保護ドメインから地理的に離れた第二の保護ドメイン中の第三の制御ノードに送るように構成されている。
本発明のさらに別の局面にしたがって、高いデータ可用性および障害許容性を提供するデータ記憶ネットワークが提供される。ネットワークは、典型的には、第一の制御ノードを有する第一のサイトおよび第二の制御ノードを有する第二のサイトを含む第一の保護ドメインを含み、第一および第二の制御ノードそれぞれがキャッシュを有し、第一のサイトが第二のサイトから地理的に離れている。ネットワークはまた、典型的には、多数のサイトを有し、各サイトが制御ノードを有し、各制御ノードがキャッシュを有するものである第二の保護ドメインを含み、第二の保護ドメインは、第一の保護ドメインから地理的に離れている。第一の制御ノードは、典型的には、第一のサイト内のホストから受け取ったデータアクセス要求をそのキャッシュに記憶し、データアクセス要求を第二のノードに送るように構成されている。第一の制御ノードはまた、典型的には、データアクセス要求がキャッシュに記憶されているという肯定応答を第二のノードから受け取ると、a) ホストに対し、データアクセス要求が完了したことを肯定応答し、その後、b) データアクセス要求を、第二の保護ドメイン中の第三の制御ノードに送るように構成されている。
本明細書の、図面および特許請求の範囲を含む残り部分を参照すると、本発明の他の特徴および利点が理解されよう。以下、添付図面を参照しながら本発明のさらなる特徴および利点ならびに本発明の様々な態様の構造および動作を詳細に説明する。図中、同種の参照番号は同一または機能的に類似した要素を示す。
図面を参照しながら本発明の様々な態様を説明する。
表1〜4は、読取りおよび書込み動作における詳細なステップを、様々な障害がステップの全体にわたって挿入された状態で示す。書込みには一つのシナリオがあり(表1)、読取りには四つのシナリオがある(表2)。
詳細な説明
定義
本明細書において以下のように用いられる。
「サイト」とは、一つの地理的場所または区域で集合的に維持される、ホスト、制御ノード、記憶域ネットワーク(SAN)組織、他のネットワーク組織、記憶システムおよびリソースを含む装備をいう。
「稼働サイト」とは、そのサイト内のホストから書込み動作を受け入れるサイトをいう。
「ダーティーデータ」とは、ホスト書込みから揮発性キャッシュ中に受け取られ、ホストにとって安全であると肯定応答されているが、バックエンド記憶システムにはまだ書き込まれていないデータをいう。
「ホスト」とは、一つまたは複数の制御ノードを介してデータを読み書きするコンピュータシステムをいう。
「ミラー」とは、記憶の物理領域のRAID1コピーをいう(RAIDの定義は以下を参照)。ミラーは、一つのサイト内に存在することもできるし、いくつかのサイトにまたがって存在し、分散ミラーと呼ばれることもできる。
「保護ドメイン」とは、サイト間でキャッシュ層においてダーティーデータを同期的に共用することによってダーティーデータを保護するサイトの集合体をいう。この動作は以下さらに詳細に説明する。
「記憶システム」とは、ホストからの書込み動作を受け入れる装置をいう。記憶システムは、読み書き動作を受け入れ、多数のディスクにまたがって物理データを冗長的に分散させる簡単なディスクまたはRAID使用可能システムであることができる。RAIDシステムおよび定義は当業者には周知である。RAIDの良好な説明は、その内容が参照により本明細書に組み入れられる、The RAID Advisory Board's (RAB) Handbook on System Storage Technology第六版に見いだすことができる。当業者は、ディスク以外の媒体にデータを記憶する他の装置を使用することもできることを理解するであろう。
「WOF (Write Order Fidelity)」とは、確認された書込み動作からのデータが場所間で非同期に送達されて、まだ分散されていないダーティーデータによってサイトに障害が発生したとしても、生き残ったサイトをより早期の時間的一貫性のあるデータイメージで再始動することができる機構をいう。時間tからの書込みがデータイメージ中に反映されるならば、そのデータイメージは時間的一貫性があり、その場合、書込みがどのホストまたは制御ノードから発生したのかにかかわらず、より早期の書込みがすべてそのイメージ中に反映される。WOFは、参照により本明細書に全体に組み入れられる出願番号第11/486,754号でさらに詳細に教示されている。
物理構成
図1は、一つの態様の、各保護ドメイン20が単一の稼働サイト25および単一の保護サイト30を有する、2つの保護ドメインシステム構成を示す。図2に示すように、各稼働サイト25(たとえば図1のサイトAおよびサイトB)は、ホストコンピュータシステム40と記憶サブシステム50との間に位置する一つまたは複数のI/Oプロセッサまたは制御ノード35を有する。各制御ノードは、仮想化ディスクイメージを一つまたは複数のホスト40にエクスポートすることができる。仮想ディスクとしてエクスポートされるデータは、バックエンド記憶システム50に物理的に記憶される。一つの態様では、多数の制御ノード35がクラスタ化され、それにより、高められた性能、プールされたキャッシュ、制御ノードの間でダーティーデータを複製する能力、および全体の動作に障害を発生させることなく個々の制御ノードに障害を発生させる能力が提供される。制御ノードのクラスタはネットワーク55と相互接続されている。相互接続ネットワーク55は、クライアントホスト(たとえばフロントエンドSANおよび任意のスイッチ)を、バックエンド記憶サブシステム(たとえばバックエンドSANおよび任意のスイッチ)またはサイト間ネットワーク(以下に説明する)に接続するためのネットワークと同じネットワークであってもよいし、独立したネットワークであってもよい。適切な相互接続ネットワークの例は、InfiniBand、Ethernet、Fibrechannel、他のローカルエリアネットワーク、およびバスプロトコル、たとえばPCIを含む。
一つの態様で、各稼働サイト25は、それらに対応する一つまたは複数の保護サイト30を有する。たとえば、図1は、それぞれが一つの保護サイト(それぞれA'およびB')に関連する二つの稼働サイト(AおよびB)を示し、図3は、それぞれが二つの保護サイト(それぞれA'、A"およびB'、B")に関連する二つの稼働サイト(AおよびB)を示す。一つの態様で、各保護サイト30は、一つまたは複数のさらなる制御ノード35を含む。特定の局面で、稼働サイトにおけるすべての制御ノード35は、関連する保護サイトにおけるすべての制御ノードと相互接続されているが、すべてよりも少ない制御ノードが相互接続されていてもよい。関連する稼働サイトの場所に対する保護サイトの物理的配置が、災害が稼働サイトおよび保護サイトの両方でデータを破壊する確率を減らすことによるさらなるデータ安全性と、この構成に適したアプリケーションの範囲を制限するかもしれない、地理的隔たりの増大によって誘発されるさらなる待ち時間の影響との間のトレードオフを決定する際に重要である。たとえば、重いトランザクション指向の作業負荷の場合でさえ、100キロメートル未満の距離が一般に許容可能でるが、一方で、市町村レベルの災害に対して保護する場合には、80キロメートルを超える距離が一般に許容可能であると考えられる。稼働サイト25と一つまたは複数のそれぞれの保護サイト30とをグループ分けまたは対応させたものを保護ドメイン20と呼ぶ。完全なシステムの中には一つ、二つまたはそれ以上の保護ドメイン20があってもよい。たとえば、図3は、二つの保護ドメイン20があるシステムを示しているのに対し、図4は、三つの保護ドメイン20があるシステムを示す。当業者は、そのような他の変形を創製する方法を理解するであろう。
代替態様では、データを書き込むホストは、保護ドメイン内の多数のサイトに存在してもよい。一例を図6に示す。このような場合、所与のサイトが、そのサイトから(たとえば、そのサイトにおけるホストから)発生するデータ書込みのための稼働サイトと、書込み動作を発するホストを有する他のサイトのための保護サイトとの両方として働くことができる。たとえば、図6で、サイトAは、サイトA中のホストから発生する書込みのための稼働サイトであり、サイトAは、サイトA'におけるホストから発生する書込みのための保護サイトであるが、サイトA'は、サイトA'中のホストから発生する書込みのための稼働サイトであり、サイトA'は、サイトAにおけるホストから発生する書込みのための保護サイトである。保護ドメイン内のすべての稼働サイトが記憶システムを収容する必要はない。
代替態様で、記憶リソースは多数のサイトに配置される。そのような態様の例が図5および6に示されている。これは、保護ドメイン内で多数のサイトにまたがり、そして保護ドメインにまたがる分散ミラーのレッグをサポートしたり、および/または、保護ドメイン内の異なるサイトにおける異なる仮想ディスクからのデータへのアクセスを許可したりするために実施することができる。全システム内に維持されている所与の仮想ディスクは、任意の稼働サイトにあるホストに利用可能にすることができるが、必ずしもすべての稼働サイトではない。全システム内に維持されている所与の仮想ディスクの物理データイメージは、他の稼働サイトへのアクセスがキャッシュされる状態で一つのサイトだけで維持することもできるし、任意の数のサイトでミラー化することもできる。
システム階層化
一つの態様で、制御ノード35内の機能性は、図7に示すように、様々な実体的コンポーネントで階層化される。制御ノード35内で、そのような階層化は、様々な機能の論理的描写を提供する。全システムにわたり、そのような階層化は、たとえば以下を含むデータ処理の層を提供する。
1. コヒーレンス層は、全システムにまたがり、ネットワーク距離によって誘発される待ち時間にもかかわらず、一つまたは複数のサイトに位置する一つまたは複数のホストにエクスポートされる仮想ディスクの同期イメージを提供する。
2. 保護層は、データが制御ノードまたは稼働サイト障害から保護されることを同期的に保証する。
3. コヒーレンス層は、仮想ディスクの同期提示にもかかわらず、保護ドメインにまたがる実際のデータ転送が非同期になることを可能にする。このデータ転送は、保護ドメインの完全な障害の場合でさえ、時間的一貫性のあるデータイメージが利用可能であることを保証するWOF層によって処理される。
4. RAIDおよびディスク管理層は、本明細書で提供される特徴および利点から利を得ながらも、従来のRAIDおよびディスク管理技術の適応を考慮している。
図7に示すフロントエンド(ホスト対面)通信プロトコル、具体的にはファイバチャネル、IP (およびカプセル化プロトコル、たとえばiSCSI)およびInfinibandは、例として示されている。当業者は、他の通信プロトコルを適用する方法を容易に理解するであろう。加えて、当業者は、より高レベルのプロトコル(たとえばNFS、RTS、HTTPなど)が同じくホストにエクスポートされることを可能にするために、分散ファイルシステム、ウェブサーバ、ストリーミングサーバ、データベースサーバおよび他のアプリケーションを埋め込み、組み込む方法を理解するであろう。
一つの態様で、キャッシュが維持される。キャッシュは、ライトバック動作をサポートする、たとえば、ダーティーデータがディスク上で安全になる前に書込み動作を肯定応答することに加え、加速化された読取り動作をサポートするための従来のキャッシュの、両法のために使用される。当業者はまた、他の従来機能、たとえば先取り、分散/収集I/O動作最適化、およびキャッシュ保存アルゴリズムを組み込む方法を察知するであろう。
所与の仮想ボリュームをエクスポートするキャッシュはコヒーレントである。所与の仮想ボリュームの任意のブロックへの書込みは、それらのブロックのコピーへのアクセスを共用する任意の制御ノードのキャッシュに記憶されたそれらのブロックの以前のイメージを「無効化」する。ネットワーク待ち時間がキャッシュコヒーレンスの実行を妨げないことを保証するため、コヒーレンシーは、クライアントによってアクセスされる主ディレクトリを維持する従来手法とは反対のピアベースのモデルとして実現されるべきである。ロック管理が、I/O動作を生成する制御ノードに移動して、大部分の管理機能が局所的に実行されることを保証すべきである。分散キャッシュコヒーレンスおよびロック管理技術は、2005年7月7日出願の「Systems and Methods for Providing Distributed Cache Coherence」と題する11/177924、ならびにいずれも「Methods and Systems for Implementing Shared Disk Array Management Functions」と題する米国特許第6,148,414号および2001年12月6日出願の米国特許出願第10/00,6929号に記載されており、これらそれぞれの開示内容が参照により本明細書に組み入れられる。
保護層(たとえばキャッシュ複製およびコヒーレンス)が、ダーティーブロックのコピーを、両方の局所制御ノードの間で、また、保護サイトに位置する制御ノードに対して複製する。データブロックの保護は、書込み動作が発生元ホストに対して肯定応答される前に完了する。保護層はまた、ひとたびブロックが物理記憶システム上で安全になると、任意の保護コピーを削除する役割を担う。保護層はまた、制御ノードが障害を起こし、ひいてはブロックのオリジナルコピーを損失した場合、適切な保護コピーを見つけ、展開する役割を担う。
WOF層は、障害が発生したノードのキャッシュ内に保持された未伝送ダーティーデータの損失によってデータが失われる危険を最小限にするための機構を提供する。本明細書で使用するWOFとは、何らかのタイプの障害からの回復の後、記憶システムのコンテンツをそれぞれが記述する関連する性質、すなわち、記憶システムが障害から回復した後、記憶システムのコンテンツに関してアプリケーションが想定することができる性質のグループをいう。WOFは、障害からの回復の後、生き残ったデータに一貫性があるという保証を加える。ファイルシステムまたはデータベースのような複雑なアプリケーションは、記憶システムの障害の後回復するために、この一貫性の性質に依存する。それら自体の障害またはバックエンド記憶の障害から回復するように明示的に書かれていない、より簡単なアプリケーションでさえ、これらの障害後の保証から恩典を得るはずである。
RAIDおよびディスク管理層が、下層にある記憶システムによって提示されるボリュームを管理する。一つの態様では、RAIDレベルは、ボリューム連結、ボリューム分割、RAID0ストライピング、RAID1ローカルミラー化、および他の従来のボリューム管理機能を含む。当業者はまた、より高レベルのボリューム機能、たとえば、その内容が参照により本明細書に組み入れられる「Storage Virtualization System and Methods」と題する米国特許第6,857,059号によって教示されているボリュームスナップショット、圧縮、連続データ保護(CDP)イメージ、暗号化、オンデマンド記憶割り当てを埋め込む方法を理解するであろう。
システム管理層は、ノード間管理を提供し、回復動作を走らせ、オペレータコマンドインタフェース、警報通知および他のシステム管理機能を提供する。他の態様は他のシステム管理機能を含むことができる。
他の態様では、上記機能のいくつかを他のサブシステムの中に移してもよい。
書込み動作の順序
様々な態様にしたがって、データが保護される方法をより良く理解するためには、一つの態様にしたがって図8に示すように、ホストからの書込み動作によって誘発されるステップをたどることが有用である。ステップ1で、サイトAにおけるホストHが、所与の書込み動作Wに関して、サイトA内の制御ノードのうち、本明細書で書込みターゲットノードと呼ばれる一つに対し、書込み動作要求を発する。書込み動作は、仮想ボリュームおよび最終的には物理記憶システム中の記憶の一つまたは複数のブロックに及ぶ、データレンジと呼ばれる仮想ボリュームの一部を変更する。そのような一部をすでに有しないならば、書込みターゲットノードは、データレンジ内のすべてのデータブロックに対してロックをかける。任意のステップ3で、書込みターゲットノードは、データレンジの保護コピーを、そのサイト(サイトA)内の別の制御ノードに送る。ステップ4で、上記ステップ3と同時に、書込みターゲットノードは、データレンジの保護コピーを、その保護ドメイン内の各保護サイトの第一の制御ノードに送る。ステップ5で、各保護サイト内の第一の制御ノードは、その保護サイト内の一つまたは複数の他の制御ノードにイメージを送り、送達されたという肯定応答を待つ。ステップ6で、書込みターゲットノードは、保護コピーを送った各第一の制御ノードから、すべての保護ノードがデータレンジのコピーを受け取ったという肯定応答を受け取る。書込みターゲット制御ノードは、他の制御ノードがデータレンジ内の任意のデータブロックのより早期のイメージを、そのキャッシュ内に有しているかどうかをチェックする。有しているならば、書込みターゲット制御ノードは、そのようなより早期のイメージを無効化する。これが上記のキャッシュコヒーレンス機構である。データレンジはオープンデルタ領域に配置される。この時点で、データレンジのコピーは、Wが発生したところの稼働サイトの保護ドメイン内のすべてのサイトで存在する。ステップ8で、書込みは今、完了したものとしてホストに肯定応答される。肯定応答後、ステップ9で、参照により全体として本明細書に組み入れられる出願第11/486,754号でさらに詳細に教示されているように、デルタパイプラインが前進して、データレンジを、仮想ボリュームの物理コピーを維持する他の関連する保護ドメイン内のサイトに (非同期的に)分散させる。ステップ11で、デルタタイプラインが再び前進して、データレンジを、仮想ボリュームの物理コピーを維持するすべてのサイトでの物理的記憶に書き込ませる。その後、データレンジのすべての保護コピーが削除される(記憶が解放される)。キャッシュシステムが管理される方法に依存して、書込みターゲットノード中のオリジナルコピーまたは他の保護コピーをキャッシュ中に残すこともできる。
上記シーケンスは、ひとたび書込み動作が完了したものとしてホストに肯定応答されると、任意のダーティーデータブロック(たとえば、すべてのディスクアレイミラーにはまだ安全に記憶されていないブロック)が、少なくとも二つのサイトの制御ノードおよび任意で、サイト内の複数の制御ノードのキャッシュ中に維持されることを保証する。すべての保護ドメインが必ずしも物理イメージのミラーを収容する必要はないが、物理ミラーは、二つの別個の保護ドメイン中の少なくとも二つのサイトに位置する記憶アレイに配置されるべきである。全サイト間のネットワーク化は二重冗長であるべきである。上記のやり方で、装備の任意の単一の部品に障害が発生した場合または単一のサイトに障害が発生した場合でも、データは失われない。
図3のような物理構成は、ダーティーデータが二つの保護サイトで保護される場合に展開することができる。物理ミラーが最低でも三つのサイトで維持されるならば、システムは、データ損失または全システム可用性の中断なしに、二つのサイトの完全な損失を含む二重障害にも生き残ることができる。
制御ノードの障害
全システム内のどこかで制御ノードが障害を起こした場合、一つの態様にしたがって以下の手順が実行される。制御ノードの障害は、ノード間ハートビートの損失によって、または障害が発生した制御ノードからのノード間エラー警報によって、もしくは制御ノードと通信している場合の回復不能I/Oエラーによって、検出される。ノード障害を検出すると、システムは、I/Oを一時停止し、どのノードが生き残っているのかをノード間メッセージングによって判断する。死んだものと判断される、または考えられるノードは、たとえばSTONITH技術を使用してフェンシングしで、そのノードが死んでいることを保証する。障害が発生したノードに根付いていたかもしれないデータ構造のために新たな根を選択する。システムは、障害が発生した制御ノードに収容されていたかもしれないプライマリデータブロックを目録にし、保護コピーを選択し、保護コピーがプライマリコピーになるようにグレードアップする。任意で、システムは、障害が発生した制御ノードによってサービスされている仮想ディスクのアドレスを代替ノードに移すこともできる。または、フェイルオーバ装置ドライバ、またはホストから代替制御ノードまでの代替I/O経路が、同じ回復機能を提供することができる。その後、ノードカウントが減ることを除き、動作は正常に継続する。
物理記憶システムの障害
図2を参照すると、制御ノード35のバックエンドに取り付けられた記憶システム50が故障した場合、または制御ノード35のバックエンドに取り付けられたI/O経路が故障した場合、一つの態様にしたがって以下の手順が実行される。障害は、記憶システム50に発されるコマンドにおけるタイムアウトによって、または記憶システム50によって報告されるエラーメッセージによって検出され、障害を検出する制御ノードが大域データ構造中で記憶システムをオフラインとマークする。ミラーの交互のレッグを収容する記憶システムへの書込みを開始する制御ノードが、ブロックが変更されたチェンジログを開始する。その後、障害が発生した記憶システム50が動作状態に戻るならば、システムは、記憶アレイ上に維持されたミラーの交互のレッグに書き込む様々な制御ノードで維持されているチェンジログを介して、どのブロックが変更されたのかを判断し、これらのシステムが、更新されたブロックを、復帰するアレイが取り付けられている制御ノードに送り、その制御ノードが他方でそのような変更を記憶アレイに書き込む。その後、I/O動作は正常に継続する。
代替態様で、記憶システムに収容されたどのブロックが最新であるのかを(チェンジログにより)決定し、そのようなブロックに対して直接I/O動作を許すことにより、回復する記憶システムへのI/O動作を早めに再始動することもできる。最新ではないブロックのための読取り動作は、ミラーの交互のレッグに向けられる。
サイトの障害
稼働サイト25が故障した場合、またはそのサイトへの接続性が故障した場合、一つの態様にしたがって以下の手順が実行される。サイトの障害は、ノード間ハートビートの損失によって、またはそのサイトに位置する制御ノードと通信している場合の回復不能I/Oエラーによって検出される。障害が検出されると、すべてのサイトのすべての制御ノードでI/Oが一時停止され、部分的接続性(すなわち、一部のサイトは所与のサイトと通信することができるが、他のサイトはそれができない場合)を検出するために、サイト間接続性グラフが創製される。あるサイトへの部分的接続性は、完全なサイト障害として処理される。そのようなサイトは、それらのサイトをオフラインとしてマークし、それらの再始動シーケンスに関連する通信以外のその後の通信を無視することによって隔離される。そして、システムは、上記の一つまたは複数の制御ノードの障害に関する発見および構成手順を実行し、システムは動作を再開する。障害が発生したサイトが記憶アレイを収容していたならば、上記の記録アレイ障害の部分で説明したチェンジログ手順が使用される。
サイト障害の結果、稼働サイトがその保護サイトの一つまたは複数を損失する場合、システムは、将来のさらなる障害に関して障害回復力が低下する。障害回復力が低下した状態にあるとき、システム管理者は、たとえば以下のような異なる措置の間で選択を行わなければならない:
1. 障害回復力が低下した状態で作動し続ける。
2. 稼働サイトを停止させる。
3. 非同期サイトへのライトスルーモードに入る。
4. 障害回復力が低下した状態で作動し続けながら、アプリケーションをそのサイトから移動させる。
すべてのトランザクションを動機的に遠くの保護ドメインに強制的に通すことによって誘発される待ち時間の増大が多くのアプリケーションを停止させるため、選択肢3は選択肢2に等しいともいえる。任意で、システムは、正しい措置を自動的にセットする機構を、仮想ボリュームべースで、仮想ボリュームに提供することができる。
保護ドメインの障害
保護ドメイン全体の障害は、障害が発生したノードのキャッシュ内に保持された未伝送ブロック(ダーティーデータ)の損失のせいでデータ損失を生じさせることがある。参照により本明細書に組み入れられる、2006年7月14日出願の米国特許出願第11/486,754号で教示されているWOF (Write Order Fidelity)を実現する方法が、この危険を最小限にするためのいくつかの機構を提供する。一つのそのような機構は、稼働サイトが、データを仮想ボリュームに書き込むことはできるが、そのボリュームに関してダーティーデータを有しないところの期間を検出する。そのような場合、データは失われず、したがって、動作は、運用の中断なく、生き残ったサイトで継続することができる。
保護ドメイン全体の障害の後、システムが、所与の仮想ボリュームに関してデータ損失があったと判断した場合、システムは、そのボリュームに対するI/Oを一時停止し、WOF状態をバックアップして、仮想ボリュームのより早期のバージョンがエクスポートされるようにしなければならない。仮想ボリュームにアクセスするホスト、それらのファイルシステム、およびそれらのアプリケーションは、これらのサブシステム内にキャッシュされたデータが、他の点では時間的一貫性のあるデータイメージであるものを破損しないことを保証するため、再始動されなければならない。再始動なしでは、キャッシュされた状態が今や仮想ボリュームの新たな状態と矛盾するため、これらのアプリケーションは故障する危険がある。
多くの動作は、保護ドメイン内のキャッシュ保護によって提供される保護が十分であるか、または、具体的なアプケーションは、矛盾するデータイメージでの動作の継続が非致命的であるようなアプリケーションであると見なされるため、WOFの使用は任意であると見なされる。
詳細な障害解析例
表1および2は、それぞれ書込みおよび読取り動作における詳細な動作ステップの例を、様々な障害シナリオがステップの至るところに挿入された状態で示す。書込み動作には一つのシナリオがあり(表1)、読取り動作には四つのシナリオがある(表2a、2b、2cおよび2d)。この例では、図8に示す三つの保護コピー(オリジナルコピー、サイトAの第二の制御ノード中の第一の保護コピー、サイトA'の二つのノードそれぞれの中の第二および第三の保護コピー)ではなく、単一の保護コピーのみが保護サイト中に維持されていることを除き、すべての解析は、図8に示す例示的構成に当てはまる。各表中、右4列が四つのサイトそれぞれにおける措置を表す。実在の都市がサイト間の地理的隔たりの例として挙げられている。一番左の列は、正常動作における読取りまたは書込みのステップを列挙する。あるステップのための右側四つのセルは、そのステップのための各サイトのアクションを示す。
正常動作ステップ間には、その時点で起こるおそれのある様々な障害シナリオが挿入されている。そのような障害シナリオそれぞれは、他の障害シナリオで同様な応答シーケンスで参照することができる2列目の障害番号(「F」で始まる)で標識されている。障害シナリオを開始する行の残りは、簡単な説明および、特定のサイトのための列では、潜在的に障害を生じさせる条件である。その後の行は、特定の障害を検出し、それから回復する際の各サイトにおけるステップおよび動作を詳述する。
表で使用する「再発見」とは、一般に、障害が発生した制御ノードの検出の後、生き残ったノードを決定し、データ構造を再構築し、動作を再開するプロセスをいう。「コミット」とは、ホストに対する、書込み動作が完了したという肯定応答をいう。
これらの表は、この例示的態様に関して、サイトAの制御ノードに向けられる動作のみを示すが、当業者は、同じシーケンスが、サイトAの任意の制御ノードまたはサイトBの任意の制御ノードに向けられる書込み動作にも当てはまるということを理解するであろう。
結論
したがって、本態様は、有利には、潜在的に大きな距離によって隔てられた複数のデータセンタに対してデータの読み出しおよび書き込みをするコンピュータが、以下を行うことを可能にするデータシステムを提供する:
a) これら多数のサイトにおける読み書き両方の動作にとってアクセス可能な単一のデータイメージを維持する。
b) すべてのサイトおよびアクセスポイントにかけてコヒーレントであるデータへのアクセスを高速化するデータキャッシュを提供する。
c) データセンタを破壊する市町村レベルの災害を含む単一の障害がデータ損失をもたらすこともなく、また生き残ったサイトにおけるデータ可用性を中断することもないよう、任意のサイトで書き込まれたデータを保護する。
d) 大きく隔てられたサイトの間でデータの非同期転送を提供して、ネットワーク待ち時間による性能の損失がないことを保証する。
e) 任意で、WOF (Write Order Fidelity)でデータを送達して、二つの同期的な市町村の障害を含む二重障害でさえ時間的一貫性のあるデータのイメージを提供して、動作の再始動を可能にする。
f) 冗長データ転送を最小限にし、ネットワーク転送パケットサイズを最適化し、通信同期化を最小限にすることによってネットワーク利用率を最適化する。
実例によって、および具体的な態様に関して本発明を説明したが、本発明は、開示された態様に限定されないということが理解されなければならない。それどころか、本発明は、当業者には自明であるような種々の改変および類似形態を対象とすることを意図する。たとえば、本特許で記載される態様はSCSIブロック層で実現されているが、当業者は、同じ概念を、アプリケーション層、ファイルシステム層、オペレーティングシステム層または記憶システム層を含むが、これらに限定されない他の層で実現することもできることを理解するであろう。さらには、本明細書で教示される方法は、SCSIまたは任意の他のプロトコルもしくはプロトコルの集合体に特定的ではない。事実、さらなるプロトコルは、FCon、ATA、SATA、および任意のネットワークプロトコル上で実現される他のプロトコル、たとえばファイバチャネル、Infiniband、Ethernetならびに種々のバスプロトコル、たとえばPCIを含むかもしれない。したがって、添付の特許請求の範囲は、そのような改変および類似形態をすべて包含するために、もっとも広義な解釈を与えられるべきである。
(表1)書込み動作障害解析
Figure 2009527062
Figure 2009527062
Figure 2009527062
Figure 2009527062
Figure 2009527062
(表2a)読取りシナリオ1:ROデータが制御ノードキャッシュ中にある
Figure 2009527062
Figure 2009527062
Figure 2009527062
(表2b)読取りシナリオ2:ROデータが制御ノードA2キャッシュ中にある
Figure 2009527062
Figure 2009527062
Figure 2009527062
(表2c)読取りシナリオ3:ROデータが制御ノードB1キャッシュ中にある(ここでBがサイトBにおける第二の制御ノードである)
Figure 2009527062
Figure 2009527062
Figure 2009527062
Figure 2009527062
(表2d)読取りシナリオ4:ROデータがどこにもキャッシュされていない
Figure 2009527062
Figure 2009527062
Figure 2009527062
一つの態様の、各保護ドメインが単一の稼働サイトおよび一つの保護サイトを有する2保護ドメインシステム構成を示す図である。 サイトを構成できる方法の一例を示す図である。記憶システムおよび記憶域ネットワーク(SANS)の構成の当業者は、このトポロジーの他の適用可能な変形を数多く察知するであろう。 一つの態様にしたがって、図1の構成のわずかな変形により、さらなるサイト障害保護を達成することができる方法を示す図である。この図は、それぞれが一つの稼働サイトおよび二つの保護サイトを有する二つの保護ドメインを示す。 一つの態様の3保護ドメインシステムを示す図である。 保護ドメイン内のさらなるサイトにおける記憶システムの配置を示す図である。 保護ドメインA内の両サイトにホストを有する2保護ドメインシステムを示す図である。これら二つの稼働サイトそれぞれが他方のための保護サイトターゲットを提供する。 制御ノード内の機能性の論理階層化を示す図である。 書込み動作中のデータ転送の順序を示す図である。

Claims (27)

  1. 第一のサイトおよび該第一のサイトから離れたところに位置する第二のサイトを含む第一の保護ドメインと、該第一の保護ドメインから離れたところに位置し、多数のサイトを有し、各サイトが少なくとも一つの制御ノードを含むものである第二の保護ドメインとを有するデータ記憶ネットワーク中で、データ可用性および障害許容性を提供する方法であって、以下のステップを含む方法:
    ホストシステムから受け取った書込み要求を、該第一のサイト中の第一のノードに対応する第一のキャッシュに記憶するステップ;
    該書込み要求を、該第一のサイトから地理的に離れた第二のサイトの第二のノードに伝送するステップ;
    該第一のノードから受け取った書込み要求を、該第二のノード中の第二のキャッシュに記憶するステップ;
    該書込み要求が該第二のノードによって受け取られたという該第二のノードからの肯定応答を、該第一のノードで受け取るステップ;
    その後、該ホストシステムに対し、該書込み要求が完了したことを肯定応答するステップ;および
    該書込み要求を、該第一の保護ドメインから地理的に離れた第二の保護ドメイン内の第三のサイトの第三のノードに送るステップ。
  2. 書込み要求を第二のサイト中の第二のノードに伝送するのと同時に該書込み要求を第一のサイト中の別のノードに送るステップ;
    第一のノードから受け取った書込み要求を、該別のノード中のキャッシュに記憶するステップ;および
    該別のノードによる該書込み要求の受取りを、該第一のノードに対して肯定応答するステップ
    をさらに含む、請求項1記載の方法。
  3. 第二のノードからの書込み要求を、第二のサイト中の別のノードに送るステップ;
    該第二のノードから受け取った書込み要求を、該別のノード中のキャッシュに記憶するステップ;および
    該別のノードによる該書込み要求の受取りを、該第二のノードに対して肯定応答するステップ
    をさらに含む、請求項1記載の方法。
  4. 第一のサイトが、第二のサイトから約80キロメートル以内に位置する、請求項1記載の方法。
  5. 第一の保護ドメイン内のサイトが、第二の保護ドメイン内のサイトから約80キロメートルを超えるところに位置する、請求項1記載の方法。
  6. 第一のサイト中のノードが、WAN相互接続を介して第二のサイトのノードと相互接続されている、請求項1記載の方法。
  7. 第一のサイト中のノードが、LAN相互接続、MAN相互接続、バス、ファイバチャネル相互接続、SCSI相互接続、およびInfiniband相互接続の一つを介して相互接続されている、請求項1記載の方法。
  8. 第一のノードにより、任意の他のノードが、書込み要求に関連するデータレンジに対応するデータをキャッシュ中に有するかどうかを判断するステップ;および
    有するならば、キャッシュ無効化メッセージを、該任意の他のノードに送って該データレンジを識別するステップ
    をさらに含む、請求項1記載の方法。
  9. 書込み要求で識別されたデータを物理記憶に書き込むステップ
    をさらに含む、請求項1記載の方法。
  10. 書込みが、書込み要求によって識別されたデータレンジの物理コピーを維持するすべてのノードによって実行される、請求項9記載の方法。
  11. 第一の制御ノードを有する第一のサイトおよび第二の制御ノードを有する第二のサイトを含む第一の保護ドメインであって、該第一および第二の制御ノードそれぞれがキャッシュを有し、該第一のサイトが該第二のサイトから地理的に離れているものである、第一の保護ドメインと、
    多数のサイトを有し、各サイトが制御ノードを有し、各制御ノードがキャッシュを有する第二の保護ドメインであって、該第一の保護ドメインから地理的に離れている第二の保護ドメインと
    を含む、高いデータ可用性および障害許容性を提供するデータ記憶ネットワークであって;
    該第一の制御ノードが、
    i) 該第一のサイト内のホストから受け取ったデータアクセス要求をそのキャッシュに記憶し、
    ii) 該データアクセス要求を該第二のノードに送り、
    iii) 該データアクセス要求がキャッシュに記憶されているという肯定応答を該第二のノードから受け取ると、
    a) 該ホストに対し、該データアクセス要求が完了したことを肯定応答し、その後、
    b) 該データアクセス要求を、該第二の保護ドメイン中の第三の制御ノードに送る
    ように構成されている、データ記憶ネットワーク。
  12. データアクセス要求が書込み要求である、請求項11記載のデータ記憶ネットワーク。
  13. 第一の制御ノードがさらに、
    iv) 任意の他の制御ノードが、書込み要求に関連するデータレンジに対応するデータをキャッシュ中に有するかどうかを判断し、有するならば、該任意の他の制御ノードに、キャッシュ無効化メッセージを送る
    ように構成されている、請求項12記載のデータ記憶ネットワーク。
  14. 第一の制御ノードがさらに、
    iv)データアクセス要求を第二のサイト中の第二のノードに送るのと同時に、該データアクセス要求を第一のサイト中の別の制御ノードに送る
    ように構成されている、請求項11記載のデータ記憶ネットワーク。
  15. 第一の保護ドメインが、第二の保護ドメインから約80キロメートルを超えるところに位置する、請求項11記載のデータ記憶ネットワーク。
  16. 第一のサイトが、第二のサイトから約80キロメートル以内に位置する、請求項11記載のデータ記憶ネットワーク。
  17. 第一のサイトが一つまたは複数の物理記憶リソースを含み、第一の制御ノードがさらに、
    iv) データアクセス要求で識別されたデータをアクセスおよび/または変更する
    ように構成されている、請求項11記載のデータ記憶ネットワーク。
  18. キャッシュと、
    プロセッサモジュールと
    を含む、データ記憶ネットワーク制御ノードであって、
    該プロセッサモジュールが、
    i) ホストシステムから受け取ったデータアクセス要求を該キャッシュに記憶し、ここで該ホストシステムおよびデータ記憶ネットワーク制御ノードが第一のサイトにあり、
    ii) 該データアクセス要求を、該第一のサイトから地理的に離れた第二のサイト中の第二の制御ノードに送り、ここで該第一および第二のサイトが第一の保護ドメインの一部であり、ならびに
    iii) 該データアクセス要求がそのキャッシュに記憶されているという肯定応答を、該第二の制御ノードから受け取ると、
    a) 該ホストシステムに対し、該データアクセス要求が完了したことを肯定応答し、その後、
    b) 該データアクセス要求を、該第一の保護ドメインから地理的に離れた第二の保護ドメイン中の第三の制御ノードに送る
    ように構成されている論理を実現するものである、データ記憶ネットワーク制御ノード。
  19. データアクセス要求が書込み要求である、請求項18記載のデータ記憶ネットワーク制御ノード。
  20. 論理がさらに、
    iv) 任意の他の制御ノードが、書込み要求に関連するデータレンジに対応するデータをキャッシュ中に有するかどうかを判断し、有するならば、該任意の他の制御ノードに、キャッシュ無効化メッセージを送る
    ように構成されている、請求項19記載のデータ記憶ネットワーク制御ノード。
  21. 論理がさらに、
    iv) データアクセス要求を第二のサイト中の第二のノードに送るのと同時に、該データアクセス要求を第一のサイト中の別の制御ノードに送る
    ように構成されている、請求項18記載のデータ記憶ネットワーク制御ノード。
  22. 第一の保護ドメインが、第二の保護ドメインから約80キロメートルを超えるところに位置する、請求項18記載のデータ記憶ネットワーク制御ノード。
  23. 第一のサイトが、第二のサイトから約80キロメートル内に位置する、請求項18記載のデータ記憶ネットワーク制御ノード。
  24. 第一のサイトが一つまたは複数の物理記憶リソースを含み、論理がさらに、
    iv) データアクセス要求で識別されたデータをアクセスおよび/または変更する
    ように構成されている、請求項18記載のデータ記憶ネットワーク制御ノード。
  25. 第一のサイトおよび/または第一の制御ノードに障害が発生した場合、データアクセス要求によって識別されたデータレンジが、第二のサイト中の第二の制御ノードもしくは別の制御ノード、または第二の保護ドメイン中の第三のサイト中の制御ノードの一つまたは複数を介して、ホストシステムにアクセス可能になり、該第三のサイトが第三の制御ノードを含む、請求項11記載のネットワーク。
  26. 第一のサイトおよび/または該第一のサイト中の物理記憶に障害が発生した場合、データアクセス要求によって識別されたデータレンジが、第二の制御ノード、第二のサイト中の別の制御ノード、または第二の保護ドメイン中の第三のサイト中の制御ノードの一つまたは複数によって維持されるチェンジログを使用して回復可能であり、該第三のサイトが第三の制御ノードを含む、請求項11記載のネットワーク。
  27. 第一のサイトおよび/または第一の制御ノードに障害が発生した場合、第二のサイト中の第二の制御ノードまたは別の制御ノードが、ホストおよび他のホストシステムに利用可能になり、少なくともデータアクセス要求によって識別されるデータレンジに関するデータアクセス要求を処理する、請求項11記載のネットワーク。
JP2008555473A 2006-02-14 2007-02-14 超高度データ可用性および地理的災害許容性を得るためのシステムおよび方法 Pending JP2009527062A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US77340106P 2006-02-14 2006-02-14
PCT/US2007/062156 WO2007095587A2 (en) 2006-02-14 2007-02-14 Systems and methods for obtaining ultra-high data availability and geographic disaster tolerance

Publications (1)

Publication Number Publication Date
JP2009527062A true JP2009527062A (ja) 2009-07-23

Family

ID=38372246

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008555473A Pending JP2009527062A (ja) 2006-02-14 2007-02-14 超高度データ可用性および地理的災害許容性を得るためのシステムおよび方法

Country Status (5)

Country Link
US (1) US8156195B2 (ja)
EP (1) EP1985046B1 (ja)
JP (1) JP2009527062A (ja)
CA (1) CA2642145C (ja)
WO (1) WO2007095587A2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014054128A1 (ja) * 2012-10-03 2014-04-10 株式会社日立製作所 情報処理装置、データ更新方法及びプログラム
WO2014142217A1 (ja) * 2013-03-15 2014-09-18 日本電気株式会社 情報処理システム、及びアプリケーションの移転方法
WO2019049224A1 (ja) * 2017-09-06 2019-03-14 株式会社日立製作所 分散ストレージシステム及び分散記憶制御方法

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7266706B2 (en) * 1999-03-03 2007-09-04 Yottayotta, Inc. Methods and systems for implementing shared disk array management functions
JP4357433B2 (ja) * 2005-02-15 2009-11-04 株式会社日立製作所 ストレージシステム
JP2009093378A (ja) * 2007-10-05 2009-04-30 Hitachi Ltd ストレージシステム
US8041678B2 (en) * 2008-06-20 2011-10-18 Microsoft Corporation Integrated data availability and historical data protection
US8055943B2 (en) 2009-04-24 2011-11-08 International Business Machines Corporation Synchronous and asynchronous continuous data protection
US9069727B2 (en) * 2011-08-12 2015-06-30 Talari Networks Incorporated Adaptive private network with geographically redundant network control nodes
US8874746B1 (en) * 2010-05-24 2014-10-28 Datacore Software Corporation Collaboration between discrete systems and a shared system to consolidate shared storage-related services
CN102142008B (zh) * 2010-12-02 2013-04-17 华为技术有限公司 分布式内存数据库的实现方法、系统、令牌控制器及内存数据库
US8887006B2 (en) * 2011-04-04 2014-11-11 Microsoft Corporation Proactive failure handling in database services
US8787155B2 (en) 2011-06-01 2014-07-22 International Business Machines Corporation Sideband error signaling
US8880956B2 (en) 2011-06-01 2014-11-04 International Business Machines Corporation Facilitating processing in a communications environment using stop signaling
US8726067B1 (en) * 2011-07-29 2014-05-13 Emc Corporation Utilizing both application and storage networks for distributed storage over asynchronous distances
US8862642B1 (en) 2012-06-29 2014-10-14 Emc Corporation Endurant cache
US9058326B1 (en) * 2012-06-29 2015-06-16 Emc Corporation Recovery and flush of endurant cache
US9582559B1 (en) * 2012-06-29 2017-02-28 EMC IP Holding Company LLC Multi-site storage system with replicated file system synchronization utilizing virtual block storage appliances
US9106721B2 (en) 2012-10-02 2015-08-11 Nextbit Systems Application state synchronization across multiple devices
US9811432B2 (en) 2013-03-04 2017-11-07 Netapp, Inc. Systems and methods for resynchronizing mirroring partners in a storage system
US9152578B1 (en) 2013-03-12 2015-10-06 Emc Corporation Securing data replication, backup and mobility in cloud storage
US9465855B2 (en) 2013-10-22 2016-10-11 International Business Machines Corporation Maintaining two-site configuration for workload availability between sites at unlimited distances for products and services
US9882980B2 (en) 2013-10-22 2018-01-30 International Business Machines Corporation Managing continuous priority workload availability and general workload availability between sites at unlimited distances for products and services
US9304865B2 (en) 2014-03-26 2016-04-05 International Business Machines Corporation Efficient handing of semi-asynchronous raid write failures
US10198321B1 (en) * 2014-04-01 2019-02-05 Storone Ltd. System and method for continuous data protection
US10105593B2 (en) 2014-04-08 2018-10-23 Razer (Asia-Pacific) Pte. Ltd. File prefetching for gaming applications accessed by electronic devices
US9928148B2 (en) * 2014-08-21 2018-03-27 Netapp, Inc. Configuration of peered cluster storage environment organized as disaster recovery group
US10423506B1 (en) * 2015-06-30 2019-09-24 EMC IP Holding Company LLC Fast rebuild using layered RAID
US10387273B2 (en) * 2016-09-16 2019-08-20 Oracle International Corporation Hierarchical fault tolerance in system storage
CN108111560B (zh) * 2016-11-24 2020-09-11 中国科学院声学研究所 一种线速存储网络分组的系统及方法
US10747606B1 (en) 2016-12-21 2020-08-18 EMC IP Holding Company LLC Risk based analysis of adverse event impact on system availability
CN107168656B (zh) * 2017-06-09 2020-07-24 苏州浪潮智能科技有限公司 一种基于多路径磁盘驱动的卷复本集系统及其实现方法
CN110609764B (zh) 2018-06-15 2023-07-25 伊姆西Ip控股有限责任公司 用于数据备份的方法、设备和计算机程序产品
US10747465B2 (en) 2018-10-30 2020-08-18 EMC IP Holding Company LLC Preserving replication to a storage object on a storage node
US11468175B2 (en) * 2019-07-31 2022-10-11 Salesforce, Inc. Caching for high-performance web applications
US11625308B2 (en) * 2021-09-14 2023-04-11 Dell Products L.P. Management of active-active configuration using multi-pathing software

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5544347A (en) * 1990-09-24 1996-08-06 Emc Corporation Data storage system controlled remote data mirroring with respectively maintained data indices
US5555371A (en) * 1992-12-17 1996-09-10 International Business Machines Corporation Data backup copying with delayed directory updating and reduced numbers of DASD accesses at a back up site using a log structured array data storage
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
US6148414A (en) 1998-09-24 2000-11-14 Seek Systems, Inc. Methods and systems for implementing shared disk array management functions
US6147968A (en) * 1998-10-13 2000-11-14 Nortel Networks Corporation Method and apparatus for data transmission in synchronous optical networks
US7266706B2 (en) 1999-03-03 2007-09-04 Yottayotta, Inc. Methods and systems for implementing shared disk array management functions
US6857059B2 (en) 2001-01-11 2005-02-15 Yottayotta, Inc. Storage virtualization system and methods
US6795849B1 (en) * 2001-04-25 2004-09-21 Lsi Logic Corporation Paradigm for inter-networked storage
US6675264B2 (en) * 2001-05-07 2004-01-06 International Business Machines Corporation Method and apparatus for improving write performance in a cluster-based file system
US6530003B2 (en) * 2001-07-26 2003-03-04 International Business Machines Corporation Method and system for maintaining data coherency in a dual input/output adapter utilizing clustered adapters
US7212574B2 (en) * 2002-04-02 2007-05-01 Microsoft Corporation Digital production services architecture
US7058850B2 (en) * 2002-07-31 2006-06-06 Hewlett-Packard Development Company, L.P. Method and system for preventing data loss within disk-array pairs supporting mirrored logical units
US7266665B2 (en) * 2003-06-17 2007-09-04 International Business Machines Corporation Method, system, and article of manufacture for remote copying of data
US7275177B2 (en) * 2003-06-25 2007-09-25 Emc Corporation Data recovery with internet protocol replication with or without full resync
JP4021823B2 (ja) * 2003-09-01 2007-12-12 株式会社日立製作所 リモートコピーシステム及びリモートコピーの方法
US7299378B2 (en) * 2004-01-15 2007-11-20 Oracle International Corporation Geographically distributed clusters
WO2006014573A2 (en) 2004-07-07 2006-02-09 Yotta Yotta, Inc. Systems and methods for providing distributed cache coherence
US7734582B2 (en) * 2004-11-16 2010-06-08 International Business Machines Corporation Apparatus, system, and method for cache synchronization
CA2615324A1 (en) 2005-07-14 2007-07-05 Yotta Yotta, Inc. Maintaining write order fidelity on a multi-writer system
US7467169B2 (en) * 2005-10-31 2008-12-16 Network Appliance, Inc. Circular and bi-directional mirroring of flexible volumes
US7395394B2 (en) * 2006-02-03 2008-07-01 Hewlett-Packard Development Company, L.P. Computer operating system with selective restriction of memory write operations

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014054128A1 (ja) * 2012-10-03 2014-04-10 株式会社日立製作所 情報処理装置、データ更新方法及びプログラム
JPWO2014054128A1 (ja) * 2012-10-03 2016-08-25 株式会社日立製作所 情報処理装置、データ更新方法及びプログラム
WO2014142217A1 (ja) * 2013-03-15 2014-09-18 日本電気株式会社 情報処理システム、及びアプリケーションの移転方法
WO2019049224A1 (ja) * 2017-09-06 2019-03-14 株式会社日立製作所 分散ストレージシステム及び分散記憶制御方法
JPWO2019049224A1 (ja) * 2017-09-06 2019-11-07 株式会社日立製作所 分散ストレージシステム及び分散記憶制御方法
CN111052090A (zh) * 2017-09-06 2020-04-21 株式会社日立制作所 分布式存储系统和分布式存储控制方法
US11321208B2 (en) 2017-09-06 2022-05-03 Hitachi, Ltd. Distributed storage system and distributed storage control method
JP7113832B2 (ja) 2017-09-06 2022-08-05 株式会社日立製作所 分散ストレージシステム及び分散記憶制御方法
CN111052090B (zh) * 2017-09-06 2023-09-29 株式会社日立制作所 分布式存储系统和分布式存储控制方法

Also Published As

Publication number Publication date
US20070195692A1 (en) 2007-08-23
US8156195B2 (en) 2012-04-10
EP1985046B1 (en) 2016-09-14
WO2007095587A3 (en) 2008-07-17
EP1985046A1 (en) 2008-10-29
CA2642145C (en) 2013-09-24
EP1985046A4 (en) 2012-07-25
CA2642145A1 (en) 2008-08-23
WO2007095587A2 (en) 2007-08-23

Similar Documents

Publication Publication Date Title
US8156195B2 (en) Systems and methods for obtaining ultra-high data availability and geographic disaster tolerance
US11726697B2 (en) Synchronous replication
US11567674B2 (en) Low overhead resynchronization snapshot creation and utilization
US11797406B2 (en) Moving a consistency group having a replication relationship
US11855905B2 (en) Shared storage model for high availability within cloud environments
US10176064B2 (en) Granular consistency group replication
US8904231B2 (en) Synchronous local and cross-site failover in clustered storage systems
US10083093B1 (en) Consistent replication in a geographically disperse active environment
CN114127695A (zh) 到文件系统同步复制关系端点的重新同步
US20240104061A1 (en) Gransets for managing consistency groups of dispersed storage items
US8117493B1 (en) Fast recovery in data mirroring techniques
US11714782B2 (en) Coordinating snapshot operations across multiple file systems
US20240126470A1 (en) Synchronous replication
US20240137329A1 (en) Shared storage model for high availability within cloud environments
US11221928B2 (en) Methods for cache rewarming in a failover domain and devices thereof