JP2018536229A - コンピューティングノード間の切り替え動作を実行する方法、装置、及び媒体 - Google Patents

コンピューティングノード間の切り替え動作を実行する方法、装置、及び媒体 Download PDF

Info

Publication number
JP2018536229A
JP2018536229A JP2018521645A JP2018521645A JP2018536229A JP 2018536229 A JP2018536229 A JP 2018536229A JP 2018521645 A JP2018521645 A JP 2018521645A JP 2018521645 A JP2018521645 A JP 2018521645A JP 2018536229 A JP2018536229 A JP 2018536229A
Authority
JP
Japan
Prior art keywords
computing node
node
computing
cloud
state information
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.)
Granted
Application number
JP2018521645A
Other languages
English (en)
Other versions
JP6476350B2 (ja
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 JP2018536229A publication Critical patent/JP2018536229A/ja
Application granted granted Critical
Publication of JP6476350B2 publication Critical patent/JP6476350B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0654Management of faults, events, alarms or notifications using network fault recovery
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0727Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a storage system, e.g. in a DASD or network based storage system
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/0757Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs
    • 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/2089Redundant storage control functionality
    • G06F11/2092Techniques of failing over between control units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/815Virtual

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Hardware Redundancy (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

1つ以上の手法及び/又はコンピューティング装置が、コンピューティングノード間で切り替え動作を実行すべきかどうかを決定するために提供される。災害復旧パートナーとして構成された第1のコンピューティングノードと第2のコンピューティングノードとが、コンピューティング環境内に展開され得る。第1のコンピューティングノード及び第2のコンピューティングノードは、動作可能ステート情報(例えば、通常動作、障害、等)をクラウド環境ノードステートプロバイダ、及び/又はクラウドストレージサービスを通じてアクセス可能なクラウド持続ストレージに提供するように構成され得る。したがって、コンピューティングノードは、さもなければパートナーノードの障害として見え得るノード間通信のロス及び/又はインフラストラクチャ障害にかかわらず、クラウド環境ノードステートプロバイダ及び/又はクラウドストレージサービスからパートナーノードの動作可能ステート情報を取得することができる。こうして、コンピューティングノードは、パートナーノードが機能しなくなったかどうかを正確に決定することができる。

Description

多くのサービスプロバイダ、例えばネットワークストレージプロバイダなどは、クラウドコンピューティング環境(例えば、サードパーティクラウドプロバイダ)を利用して、こうしたサービスを提供するコンピューティングノードをホストすることがある。例えば、ネットワークストレージプロバイダが、会社の金融部門に対してストレージサービスを提供するために、クラウドコンピューティング環境に第1のコンピューティングノードを展開することがある。ストレージプロバイダは、会社のエンジニア部門に対してストレージサービスを提供するために、クラウドコンピューティング環境に第2のコンピューティングノードを展開することがある。ストレージプロバイダは、第1のコンピューティングノード及び第2のコンピューティングノードを災害復旧パートナーとして構成し、生き残りのコンピューティングノードが機能しなくなったコンピューティングノードのリソースを引き継いで、機能しなくなったコンピューティングノードにより前に提供されていたサービスに対するフェールオーバーアクセスをクライアントに提供することがある(例えば、第1のコンピューティングノードが機能しなくなったことを検出すると、第2のコンピューティングノードが第1のコンピューティングノードのストレージを引き継いで、金融部門に対するフェールオーバーストレージサービス、例えば、第1のコンピューティングノードを通して前にアクセス可能であったデータに対するアクセスなどを提供することがある)。
第1のコンピューティングノード及び第2のコンピューティングノードは、動作可能ステート情報(例えば、ハートビート、及び/又はコンピューティングノードが動作可能である、リブートしている、機能しなくなった、カーネルパニックモードである等の通知)を共有するために、ノード間通信リンク、例えば、インターネットプロトコル(IP)通信などを確立することがある。不幸なことに、ノード間通信リンクで通信がロストした場合、コンピューティングノードは、パートナーコンピューティングノードが機能しなくなったのか、又はノード間通信リンクが例えばクラウドコンピューティング環境内のIPネットワーク障害などに起因してダウンしているのかを、判定することができない可能性がある。ゆえに、コンピューティングノードが、パートナーコンピューティングノードが機能しなくなったと不正確に仮定する場合、コンピューティングノードは、依然として動作可能であるパートナーコンピューティングノードについて引継ぎしようと誤って試みる可能性がある。対照的に、パートナーコンピューティングノードの障害が通信ロスの原因である(例えば、機能しなくなったパートナーコンピューティングノードが障害に起因してハートビート情報を送信することができない)場合、コンピューティングノードが、通信ロスがノード間通信リンクがダウンしていることに起因すると不正確に仮定する場合に、クライアントは、機能しなくなったパートナーコンピューティングノードにより提供されたストレージサービスに対するアクセスを失う可能性があり、なぜならば、コンピューティングノードが機能しなくなったパートナーコンピューティングノードについて引き継がない可能性があるからである。同様に、第1のコンピューティングノード及び第2のコンピューティングノードがそれぞれのコンピューティングノードにより管理されたストレージを通して動作可能ステート情報を共有するように構成される場合、コンピューティングノードが例えばクラウドコンピューティング環境インフラストラクチャ障害に起因してなどでパートナーコンピューティングノードのストレージへのアクセスを失う事象において、コンピューティングノードはパートナーコンピューティングノードが機能しなくなったのかどうかを検出できない可能性がある。
関連出願
本出願は、2015年10月30日に申請され“IMPLEMENTING SWITCHOVER OPERATIONS BETWEEN COMPUTING NODES”と題された米国非仮特許出願第14/928,137号に対する優先を主張し、該出願は本明細書において参照援用される。
本明細書に説明される対策の1つ以上による一例示的なクラスタ化ネットワークを示すコンポーネントブロック図である。 本明細書に説明される対策の1つ以上による一例示的なデータストレージシステムを示すコンポーネントブロック図である。 クラウドコンピューティング環境を示すコンポーネントブロック図である。 クラウドコンピューティング環境を示すコンポーネントブロック図であり、第1のコンピューティングノードは切り替え動作を誤って実行する。 クラウド環境ノードステートプロバイダを利用してコンピューティングノード間で切り替え動作を実行すべきかどうかを決定する一例示的なコンピューティング装置を示すコンポーネントブロック図である。 クラウド環境ノードステートプロバイダを利用してコンピューティングノード間で切り替え動作を実行すべきかどうかを決定する一例示的なコンピューティング装置を示すコンポーネントブロック図であり、切り替え動作は実行されない。 クラウド環境ノードステートプロバイダを利用してコンピューティングノード間で切り替え動作を実行すべきかどうかを決定する一例示的なコンピューティング装置を示すコンポーネントブロック図であり、切り替え動作が実行される。 クラウドストレージサービスを利用してコンピューティングノード間で切り替え動作を実行すべきかどうかを決定する一例示的なコンピューティング装置を示すコンポーネントブロック図である。 クラウドストレージサービスを利用してコンピューティングノード間で切り替え動作を実行すべきかどうかを決定する一例示的なコンピューティング装置を示すコンポーネントブロック図であり、切り替え動作は実行されない。 クラウドストレージサービスを利用してコンピューティングノード間で切り替え動作を実行すべきかどうかを決定する一例示的なコンピューティング装置を示すコンポーネントブロック図であり、切り替え動作が実行される。 クラウド環境ノードステートプロバイダを利用してコンピューティングノード間で切り替え動作を実行すべきかどうかを決定する一例示的な方法を示すフローチャートである。 クラウドストレージサービスを利用してコンピューティングノード間で切り替え動作を実行すべきかどうかを決定する一例示的な方法を示すフローチャートである。 本明細書において説明される対策の1つ以上によるコンピュータ読取可能媒体の一例である。
次に、請求される対象事項のいくつかの例が図面を参照して説明され、図面において、同様の参照番号は一般に全体を通して同様の要素を参照するために使用される。下記の記載において、説明の目的で、請求される対象事項の理解を提供するために多数の特定の詳細が説明される。しかしながら、請求される対象事項はこれら特定の詳細なく実現され得ることが明らかであり得る。この詳細な説明内のいずれも従来技術と認められない。
コンピューティングノード間で切り替え動作を実行するかどうかを決定する1つ以上の手法及び/又はコンピューティング装置が提供される。例えば、第1のコンピューティングノード及び第2のコンピューティングノードが、コンピューティング環境(例えば、クラスタネットワークストレージコンピューティング環境、サードパーティによりホストされたクラウドコンピューティング環境、又は任意の他のコンピューティング環境)に展開され得る。第1のコンピューティングノード及び第2のコンピューティングノードは、ノード間(internode)通信リンク(例えば、IPネットワーク)を通じて、及び/又はパートナーコンピューティングノードにより管理されたストレージを通して(例えば、第1のコンピューティングノードは、第1のコンピューティングノードにより所有されかつ第2のコンピューティングノードにより読み出すためにアクセス可能なストレージ内に記憶された動作可能ヘルス情報を記憶することができる)、動作可能ステート情報を共有することができる。
動作可能ステート情報が、コンピューティングノードが機能しなくなった(failed)と示す場合(例えば、ハートビートのロス)、生き残りのコンピューティングノードは、切り替え動作を実行して、機能しなくなったコンピューティングノードを通してクライアントにとって前にアクセス可能であったリソースへのフェールオーバーアクセスをクライアントに提供することができる。ノード間通信リンクがダウンしている可能性があり、かつ/あるいは、クラウドコンピューティング環境インフラストラクチャ障害(failure)が、コンピューティングノードがパートナーコンピューティングノードにより所有されたストレージ内の動作可能ステート情報にアクセスすることができないという結果をもたらす可能性があるため、コンピューティングノードは、実際には機能しなくなっていないパートナーコンピューティングノードについて切り替え動作を誤って実行する可能性がある。したがって、本明細書に提供されるように、第1のコンピューティングノード及び第2のコンピューティングノードは、クラウド環境ノードステートプロバイダ(例えば、クラウド環境ノードステートプロバイダは、クラウドコンピューティング環境内のコンピューティングノードの動作可能ステートを監視することができる)、及び/又はクラウドストレージサービスを通してアクセス可能であるクラウド持続ストレージ(cloud persistent storage)(例えば、コンピューティングノードが、パートナーコンピューティングノードにとって高度にアクセス可能であるクラウド持続ストレージを通して動作可能ステート情報を記憶することができる)を通して、動作可能ステート情報を共有するように構成され得る。こうして、コンピューティングノードは、パートナーコンピューティングノードが機能しなくなった(例えば、パートナーコンピューティングノードの障害に起因したハートビートのロス)か否(例えば、ノード間通信リンクがダウンしていること及び/又はクラウドコンピューティング環境インフラストラクチャ障害などのインフラストラクチャ障害に起因したハートビートのロス)かを確実に決定することができ、これは、誤った切り替えを軽減し得る。
コンピューティングノード間の切り替え動作を実行するかどうかを決定する文脈を提供するために、図1は、クラスタ化されたネットワーク環境100又はネットワークストレージ環境の一実施例を示す。しかしながら、本明細書に説明される手法等は、クラスタ化ネットワーク環境100、非クラスタネットワーク環境、及び/又は様々な他のコンピューティング環境、例えば、デスクトップコンピューティング環境などにおいて実現されてよいことが十分理解され得る。すなわち、別記の特許請求の範囲を含む本開示は、本明細書に提供される例に限定されるようには意図されない。同一又は同様のコンポーネント、要素、特徴、アイテム、モジュール等が後の図面に示され、しかし前の図に関して前に論じられていた場合、後の図を説明するときに(例えば、理解の簡素さ及び容易さの目的で)同じものについての同様の(例えば、冗長の)議論が省略され得ることが十分理解されるであろう。
図1は、本明細書に説明される手法及び/又はシステムの少なくともいくつかの実施例を実現することができる一例示的なクラスタ化されたネットワーク環境100を示すブロック図である。例示的な環境100は、データストレージシステム又はストレージサイト102及び104を含み、データストレージシステム又はストレージサイト102及び104は、該ストレージシステム102及び104(及び、その中の1つ以上のモジュール、コンポーネント等、例えばノード116及び118など)の間の通信を容易にするクラスタファブリック106、例えばプライベートInfiniband、ファイバチャネル(FC)、又はイーサネット(登録商標)ネットワークとして具現化されたコンピューティングネットワークなどを通じて結合される。2つのデータストレージシステム102及び104並びに2つのノード116及び118が図1に示されるが、任意の適切な数のこうしたコンポーネントが企図されることが十分理解されるであろう。一例において、ノード116及び118は、ストレージコントローラを含み(例えば、ノード116が、プライマリ又はローカルストレージコントローラを含んでよく、ノード118が、セカンダリ又はリモートストレージコントローラを含んでよい)、上記ストレージコントローラは、データストレージ装置128、130内に記憶されたデータへのアクセスを、ホスト装置108、110などのクライアント装置に提供する。同様に、本明細書において別段具体的に提供されない限り、同じことが本明細書において参照されかつ/あるいは別記の図面に示される他のモジュール、要素、特徴、アイテム等に当てはまる。すなわち、本明細書に開示された特定数のコンポーネント、モジュール、要素、特徴、アイテム等は、限定的に解釈されるようには意図されない。
さらに、クラスタ化ネットワークは、任意の特定の地理的エリアに限定されず、ローカルに及び/又はリモートにクラスタ化されてよいことが十分理解されるであろう。ゆえに、一実施例において、クラスタ化ネットワークは、複数の地理的ロケーションに位置する複数のストレージシステム及び/又はノードにわたり分散されてよく、別の実施例において、クラスタ化ネットワークは、同じ地理的ロケーションに(例えば、データストレージ装置の単一のオンサイトのラック内に)存在するデータストレージシステム(例えば、102、104)を含んでよい。
示される例において、例えば、クライアント装置、パーソナルコンピュータ(PC)、記憶のために使用されるコンピューティング装置(例えば、ストレージサーバ)、及び他のコンピュータ又は周辺装置(例えば、プリンタ)を含み得る1つ以上のホスト装置108、110が、ストレージネットワーク接続112、114によりそれぞれのデータストレージシステム102、104に結合される。ネットワーク接続は、例えば、データパケットを交換するための共通インターネットファイルシステム(Common Internet File System)(CIFS)プロトコル又はネットワークファイルシステム(Network File System)(NFS)プロトコルなどのネットワークアタッチトストレージ(Network Attached Storage)(NAS)プロトコルを利用するローカルエリアネットワーク(LAN)又はワイドエリアネットワーク(WAN)を含んでよい。例示的に、ホスト装置108、110は、アプリケーションを実行する汎用目的コンピュータでよく、情報の交換のためにクライアント/サーバモデルを使用してデータストレージシステム102、104と対話してよい。すなわち、ホスト装置は、データストレージシステムからのデータ(例えば、ホスト装置によりストレージ装置に対して発行されたI/Oコマンドを処理するように構成されたネットワークストレージ制御により管理された、該ストレージ装置上のデータ)を要求することができ、データストレージシステムは、1つ以上のネットワーク接続112、114を介してホスト装置に要求の結果を返すことができる。
クラスタ化されたデータストレージシステム102、104上のノード116、118は、例えば、リモートのロケーション、クラウドストレージ(例えば、ストレージエンドポイントはデータクラウド内に記憶されてもよい)等を有する企業などにデータストレージ及び管理サービスを提供するためにクラスタとして相互接続されたネットワーク又はホストノードを含むことができる。データストレージ及び管理ネットワーククラスタ環境100におけるこうしたノードは、例えば接続ポイント、再分配ポイント、又は通信エンドポイントとしてネットワークにアタッチされた装置であり得る。ノードは、ネットワーク通信チャネルを通じて情報を送信し、受信し、及び/又は転送することができてよく、これら基準のうち任意のもの又はすべてに合う任意の装置を含むことができる。ノードの一例は、ネットワークにアタッチされたデータストレージ及び管理サーバであり得、該サーバは、データストレージ及び管理システムにおけるサーバとして動作するように特に構成された汎用目的コンピュータ又はコンピューティング装置を含むことができる。
一例において、ノード116、118などのノードの第1のクラスタ(例えば、1つ以上のストレージ装置の第1の論理グループ化を含む第1のストレージ集合体(storage aggregate)へのアクセスを提供するように構成されたストレージコントローラの第1のセット)が、第1のストレージサイトに位置してよい。例示されていないクラスタの第2のノードが、第2のストレージサイトに位置してよい(例えば、1つ以上のストレージ装置の第2の論理グループ化を含む第2のストレージ集合体へのアクセスを提供するように構成されたストレージコントローラの第2のセット)。第1のノードクラスタ及び第2のノードクラスタは、災害復旧構成に従い構成されてよく、災害ノードクラスタを含む災害ストレージサイトで災害が発生した事象において、生き残りのノードクラスタが災害ノードクラスタのストレージ装置への切り替えアクセスを提供する(例えば、第2のストレージサイトで災害が発生した事象において、第1のノードクラスタが、第2のストレージ集合体のストレージ装置への切り替えデータアクセスをクライアント装置に提供する)。
例示的な環境100に示されるように、ノード116、118は、クラスタのための分散ストレージアーキテクチャを提供するように協調する様々な機能コンポーネントを含むことができる。例えば、ノードは、ネットワークモジュール120、122と、データモジュール124、126とを含むことができる。ネットワークモジュール120、122は、例えば、ノード116、118(例えば、ネットワークストレージコントローラ)がネットワーク接続112、114を通じてホスト装置108、110と接続することを可能にするように構成でき、ホスト装置108、110が分散ストレージシステムに記憶されたデータにアクセスすることを可能にする。さらに、ネットワークモジュール120、122は、クラスタファブリック106を通して1つ以上の他のコンポーネントとの接続を提供することができる。例えば、図1において、第1のノード116の第1のネットワークモジュール120が、第2のノード118の第2のデータモジュール126を通して要求を送信することにより第2のデータストレージ装置130にアクセスすることができる。
データモジュール124、126は、1つ以上のデータストレージ装置128、130、例えば、ディスク又はディスクアレイ、フラッシュメモリ、又は何らかの他の形式のデータストレージなどを、ノード116、118に接続するように構成できる。ノード116、118は、例えば、クラスタファブリック106により相互接続でき、クラスタ内のそれぞれのノードが、クラスタ内の異なるノードに接続されたデータストレージ装置128、130上のデータにアクセスすることを可能にする。しばしば、データモジュール124、126は、例えば、スモールコンピュータシステムインターフェース(SCSI)又はファイバチャネルプロトコル(FCP)などのストレージエリアネットワーク(SAN)プロトコルに従いデータストレージ装置128、130と通信する。ゆえに、ノード116、118上のオペレーティングシステムから見られるとき、データストレージ装置128、130は、オペレーティングシステムにローカルにアタッチされているように見え得る。こうして、異なるノード116、118等が、抽象ファイルを明示的に要求するのでなくオペレーティングシステムを通してデータブロックにアクセスすることができる。
例示的な実施例100は等しい数のネットワーク及びデータモジュールを示すが、他の実施例が異なる数のこれらモジュールを含んでよいことが十分理解されるべきである。例えば、複数のネットワーク及びデータモジュール間で1対1対応を有さないクラスタ内で相互接続された該ネットワーク及びデータモジュールがあり得る。すなわち、異なるノードが、異なる数のネットワーク及びデータモジュールを有することができ、同じノードが、データモジュールとは異なる数のネットワークモジュールを有することができる。
さらに、ホスト装置108、110は、ネットワーキング接続112、114を通じてクラスタ内のノード116、118とネットワーク化されることができる。一例として、クラスタにネットワーク化されたそれぞれのホスト装置108、110は、クラスタ内のノード116、118のサービス(例えば、データパケットの形式における情報の交換)を要求することができ、ノード116、118は、要求されたサービスの結果をホスト装置108、110に返すことができる。一実施例において、ホスト装置108、110は、データストレージシステム102、104内のノード(例えば、ネットワークホスト116、118)に存在するネットワークモジュール120、122との間で情報を交換することができる。
一実施例において、データストレージ装置128、130は、ボリューム(volumes)132を含み、ボリューム132は、例えば、データのファイルシステムとしてのディスクドライブ又はディスクアレイ又は他のストレージ(例えば、フラッシュ)への情報の記憶の一実現例である。ボリュームは、例えば、ディスクの一部分、ディスクの集合、又はディスクの複数部分に及ぶことができ、典型的に、ストレージシステム内のディスク空間上にファイルストレージの全体的論理配置を定義する。一実施例において、ボリュームは、記憶されたデータを、ボリューム内の階層ディレクトリ構造に存在する1つ以上のファイルとして含むことができる。
ボリュームは、特定のストレージシステムに関連づけられ得るフォーマットで典型的に構成され、それぞれのボリュームフォーマットは、例えばボリュームがクラスタを形成する能力を提供することなどの、ボリュームに対する機能性を提供する特徴を典型的に含む。例えば、第1のストレージシステムがそのボリュームについて第1のフォーマットを利用することがあり、第2のストレージシステムはそのボリュームについて第2のフォーマットを利用することがある。
例示的な環境100において、ホスト装置108、110は、データストレージシステム102、104を利用して、データを記憶し、ボリューム132から取り出すことができる。この実施例において、例えば、ホスト装置108は、データストレージシステム102内のノード116のネットワークモジュール120にデータパケットを送信することができる。ノード116は、データモジュール124を使用してデータストレージ装置128にデータを転送することができ、データストレージ装置128は、ボリューム132Aを含む。こうして、この例において、ホスト装置は、ネットワーク接続112により接続されたデータストレージシステム102を使用して、ストレージボリューム132Aにアクセスしてデータを記憶し、かつ/あるいは取り出すことができる。さらに、この実施例において、ホスト装置110は、データストレージシステム104(例えば、これはデータストレージシステム102からリモートであり得る)内のホスト118のネットワークモジュール122との間でデータを交換することができる。ホスト118は、データモジュール126を使用してデータストレージ装置130にデータを転送することができ、これにより、データストレージ装置130に関連づけられたボリューム132Bにアクセスする。
コンピューティングノード間で切り替え動作を実行するかどうかを決定することは、クラスタ化ネットワーク環境100内(例えば、クラウドコンピューティング環境内のノード、及び/又はクラウドコンピューティング環境の外部だがクラウドコンピューティング環境への通信アクセスを有するノード)で実現され得ることが十分理解され得る。一例において、ノード116(例えば、第1のコンピューティングノード)とノード118(例えば、第2のコンピューティングノード)とがクラウドコンピューティング環境内にホストされてよい。別の例において、ノード118がクラウドコンピューティング環境への通信アクセス(例えば、クラウドストレージサービスを通してアクセス可能なクラウド持続ストレージへのアクセス)を有する場合、ノード116がクラウドコンピューティング環境内にホストされてよく、ノード118がクラウドコンピューティング環境の外部にホストされてよい。別の例において、ノード116とノード118とがクラウドコンピューティング環境の外部でホストされてよいが、クラウドコンピューティング環境への通信アクセス(例えば、クラウドストレージサービスを通してアクセス可能なクラウド持続ストレージへのアクセス)を有し得る。クラウド環境ノードステートプロバイダ、及び/又はクラウドストレージサービスを通してアクセス可能なクラウド持続ストレージが、動作可能ステート情報を確実に共有するためにノード116及びノード118により使用されてよい。こうして、コンピューティングノードは、(例えば、通信リンク障害又は動作可能ステート情報の通信をその他の方法で妨害するインフラストラクチャ問題に応答して切り替えを誤って実行することと対照的に)パートナーコンピューティングノードが機能しなくなっており、ゆえに切り替え動作が実行されるべきであるかどうかを確実に決定することができる。コンピューティングノード間で切り替え動作を実行するかどうかを決定することは、任意タイプのコンピューティング環境について及び/又は該環境の間で実現されてよく、物理装置(例えば、ノード116、ノード118等)及び/又は(例えば、クラスタ化ネットワーク環境100に関連づけられているか又は該環境100に対してリモートの)クラウドコンピューティング環境の間で移転可能(transferrable)であり得ることが十分理解され得る。
図2は、データストレージシステム200(例えば、図1の102、104)の一説明例であり、本明細書に説明される手法及び/又はシステムの1つ以上を実現できるコンポーネントの一実施例のさらなる詳細を提供する。例示的なデータストレージシステム200は、ノード202(例えば、図1のホストノード116、118)と、データストレージ装置234(例えば、図1のデータストレージ装置128、130)とを含む。ノード202は、例えば、汎用目的コンピュータ、又は、ストレージサーバとして動作するように特に構成された何らかの他のコンピューティング装置であり得る。ホスト装置205(例えば、図1の108、110)は、例えば、ネットワーク216を通じてノード202に接続されて、データストレージ装置234上に記憶されたファイル及び/又は他のデータへのアクセスを提供することができる。一例において、ノード202は、データストレージ装置234内に記憶されたデータへのアクセスをホスト装置205などのクライアント装置に提供するストレージコントローラを含む。
データストレージ装置234は、大容量ストレージ装置、例えば、ディスクアレイ218、220、222のディスク224、226、228などを含むことができる。本明細書に説明される手法及びシステムは、例示的な実施例により限定されないことが十分理解されるであろう。例えば、ディスク224、226、228は、任意タイプの大容量ストレージ装置を含んでよく、これらに限られないが、ディスクドライブ、フラッシュメモリ、及び、例えばデータ(D)及び/又はパリティ(P)情報を含む情報を記憶するように適合された任意の他の同様の媒体が含まれる。
ノード202は、システムバス242により相互接続された1つ以上のプロセッサ204、メモリ206、ネットワークアダプタ210、クラスタアクセスアダプタ212、及びストレージアダプタ214を含む。ストレージシステム200は、例えば、独立(又は安価)ディスクの冗長アレイ(Redundant Array of Independent (or Inexpensive) Disks)(RAID)最適化手法を実現してアレイ内の機能しなくなったディスクのデータの再構築処理を最適化することができる、ノード202のメモリ206にインストールされたオペレーティングシステム208をさらに含む。
オペレーティングシステム208はまた、データストレージシステムの通信と、クラスタファブリック215(例えば、図1の106)にアタッチされているなどでクラスタ化ネットワーク内にあり得る他のデータストレージシステム間の通信とを管理することができる。ゆえに、ノード202、例えばネットワークストレージコントローラなどは、ホスト装置要求に応答して、これらホスト装置要求に従ってデータストレージ装置234(例えば、又はさらなるクラスタ化装置)上のデータを管理することができる。オペレーティングシステム208は、データストレージシステム200上の1つ以上のファイルシステムをしばしば確立することができ、ここで、ファイルシステムは、例えば、ファイル及びディレクトリの持続的階層名前空間を実現するソフトウェアコード及びデータ構造を含むことができる。一例として、新しいデータストレージ装置(図示されていない)がクラスタ化ネットワークシステムに追加されるとき、オペレーティングシステム208は、既存のディレクトリツリー内のどこに新しいデータストレージ装置に関連づけられた新しいファイルが記憶されるべきかを知らされる。これは、ファイルシステムを「マウントすること」としてしばしば参照される。
例示的なデータストレージシステム200において、メモリ206は、関連したソフトウェアアプリケーションコード及びデータ構造を記憶するためにプロセッサ204及びアダプタ210、212、214によりアドレス指定可能なストレージロケーションを含むことができる。プロセッサ204及びアダプタ210、212、214は、例えば、ソフトウェアコードを実行しデータ構造を操作するように構成された処理要素及び/又は論理回路を含んでよい。オペレーティングシステム208は、その一部が典型的にはメモリ206に存在し処理要素により実行され、とりわけストレージシステムにより実現されたファイルサービスをサポートするストレージ動作を呼び出すことにより、ストレージシステムを機能的に編成する。本明細書に説明される手法に属するアプリケーション命令を記憶及び/又は実行するために様々なコンピュータ読取可能媒体を含む他の処理及びメモリメカニズムが使用されてよいことが当業者に明らかであろう。例えば、オペレーティングシステムはまた、1つ以上の制御ファイル(図示されていない)を利用して仮想マシンの供給を支援することができる。
ネットワークアダプタ210は、コンピュータネットワーク216を通じてデータストレージシステム200をホスト装置205に接続するために必要な機械的、電気的、及びシグナリング回路を含み、コンピュータネットワーク216は、とりわけ、ポイントツーポイント接続又は共有媒体、例えばローカルエリアネットワークなどを含んでよい。ホスト装置205(例えば、図1の108、110)は、アプリケーションを実行するように構成された汎用目的コンピュータであり得る。上記で説明されたように、ホスト装置205は、情報送達のクライアント/ホストモデルに従いデータストレージシステム200と対話してよい。
ストレージアダプタ214は、ノード202上で実行しているオペレーティングシステム208と協調して、ホスト装置205により要求された情報にアクセスする(例えば、ネットワークストレージコントローラにより管理されたストレージ装置上のデータにアクセスする)。情報は、磁気ディスクドライブ、フラッシュメモリ、及び/又は情報を記憶するように適合された任意の他の同様の媒体などの、任意タイプのアタッチされたアレイの書き込み可能媒体に記憶されてよい。例示的なデータストレージシステム200において、情報は、ディスク224、226、228上のデータブロックに記憶されることができる。ストレージアダプタ214は、ストレージエリアネットワーク(SAN)プロトコル(例えば、スモールコンピュータシステムインターフェース(SCSI)、iSCSI、hyperSCSI、ファイバチャネルプロトコル(FCP))などの入力/出力(I/O)相互接続配置を通じてディスクに結合するI/Oインターフェース回路を含むことができる。情報は、ストレージアダプタ214により取り出され、必要な場合、システムバス242を通じてネットワークアダプタ210(及び/又は、クラスタ内の別のノードに送信する場合にはクラスタアクセスアダプタ212)に転送される前に1つ以上のプロセッサ204により処理され、上記ネットワークアダプタ210(及び/又は、クラスタアクセスアダプタ212)において、情報はデータパケットにフォーマットされ、ネットワーク接続216を通じてホスト装置205に返される(かつ/あるいは、クラスタファブリック215を通じてクラスタにアタッチされた別のノードに返される)。
一実施例において、アレイ218、220、222上の情報のストレージは、ディスク空間の全体的論理配置を定義するディスク224、226、228のクラスタを含む1つ以上のストレージ「ボリューム」230、232として実現されてよい。1つ以上のボリュームを含むディスク224、226、228は、RAIDの1つ以上のグループとして典型的に編成される。一例として、ボリューム230は、ディスクアレイ218及び220の集合体を含み、ディスクアレイ218及び220は、ディスク224及び226のクラスタを含む。
一実施例において、ディスク224、226、228へのアクセスを容易にするために、オペレーティングシステム208は、情報をディスク上のディレクトリ及びファイルの階層構造として論理的に編成するファイルシステム(例えば、ライトエニウェア(write anywhere)ファイルシステム)を実現してよい。この実施例において、それぞれのファイルは、情報を記憶するように構成されたディスクブロックのセットとして実現されてよく、これに対し、ディレクトリは、他のファイル及びディレクトリに関する情報が記憶された特別にフォーマットされたファイルとして実現されてよい。
このデータストレージシステム200内の基礎的な物理構成が何であれ、データが物理及び/又は仮想ボリューム内にファイルとして記憶されることができ、上記ボリュームは、ファイルシステム識別子(FSID)などのそれぞれのボリューム識別子に関連づけられることができ、上記ファイルシステム識別子は、一例において長さ32ビットであり得る。
物理ボリュームは、そのアドレス、アドレス指定可能空間、ロケーション等が変わらない物理ストレージ装置の少なくとも一部、例えば、1つ以上のデータストレージ装置234(例えば、独立(又は安価)ディスクの冗長アレイ(RAIDシステム))のうち少なくともいくつかなどに対応する。典型的に、物理ボリュームのロケーションは、それにアクセスするために使用されるアドレス(の範囲)が一般に一定のままであるという点で、変わらない。
対照的に、仮想ボリュームは、異なる物理ストレージ装置の全く異なる部分の集合体にわたり記憶される。仮想ボリュームは、異なる物理ストレージ装置ロケーションの異なる利用可能部分、例えば、ディスク224、226、及び/又は228の各々からのいくらかの利用可能な空間などの、集合であり得る。仮想ボリュームはいずれか1つの特定ストレージ装置に「結び付けられ」ないため、仮想ボリュームは抽象化又は仮想化のレイヤを含むと言うことができ、上記抽象化又は仮想化のレイヤは、仮想ボリュームがいくつかの観点でリサイズされ、かつ/あるいは柔軟であることを可能にすることが十分理解されるであろう。
さらに、仮想ボリュームは、1つ以上の論理ユニット番号(LUN)238、ディレクトリ236、Qtree235、及びファイル240を含むことができる。とりわけ、これらの特徴、より詳細にはLUNは、例えば、データが記憶される全く異なるメモリロケーションが識別され、データストレージユニットとしてグループ化されることを可能にする。そのようなものとして、LUN238は、仮想ボリューム内のデータが集合体の範囲内で記憶される仮想ディスク又はドライブを構成するものとして特徴付けられ得る。例えば、LUNは、仮想ドライブとしてしばしば参照され、これらは、ボリュームの様々な部分に記憶されたデータブロックを実際には含むと同時に、汎用目的コンピュータからのハードドライブをエミュレートする。
一実施例において、1つ以上のデータストレージ装置234が1つ以上の物理ポートを有することができ、各物理ポートはターゲットアドレス(例えば、SCSIターゲットアドレス)を割り当てられることができる。データストレージ装置に記憶されたそれぞれのボリュームを表すために、データストレージ装置上のターゲットアドレスが使用されて、1つ以上のLUN238を識別することができる。ゆえに、例えば、ノード202が、ストレージアダプタ214を通してボリューム230、232に接続するとき、ノード202とボリュームの基礎にある1つ以上のLUN238との間の接続が作成される。
一実施例において、それぞれのターゲットアドレスは複数のLUNを識別することができ、ターゲットアドレスは複数のボリュームを表すことができる。例えば、ストレージアダプタ214内の回路及び/又はソフトウェアとして、又はメモリ206に存在しプロセッサ204により実行される実行可能コードとして実現され得るI/Oインターフェースは、LUN238を識別する1つ以上のアドレスを使用することによりボリューム230に接続することができる。
コンピューティングノード間の切り替え動作を実行するかどうかを決定することが、データストレージシステム200について実現されてよいことが十分理解され得る。一例において、ノード202(例えば、第1のコンピューティングノード)と第2のノード(例えば、第2のコンピューティングノード)とが、データストレージシステム200に関連づけられたクラウドコンピューティング環境内にホストされてよい。別の例において、第2のノードがクラウドコンピューティング環境への通信アクセス(例えば、クラウドストレージサービスを通してアクセス可能なクラウド持続ストレージへのアクセス)を有する場合、ノード202がクラウドコンピューティング環境内にホストされてよく、第2のノードがクラウドコンピューティング環境の外部にホストされてよい。別の例において、ノード202と第2のノードとがクラウドコンピューティング環境の外部でホストされてよいが、クラウドコンピューティング環境への通信アクセス(例えば、クラウドストレージサービスを通してアクセス可能なクラウド持続ストレージへのアクセス)を有し得る。クラウド環境ノードステートプロバイダ、及び/又はクラウドストレージサービスを通してアクセス可能なクラウド持続ストレージが、動作可能ステート情報を確実に共有するためにノード202及び第2のノードにより使用されてよい。こうして、コンピューティングノードは、(例えば、通信リンク障害又は動作可能ステート情報の通信をその他の方法で妨害するインフラストラクチャ問題に応答して切り替えを誤って実行することと対照的に)パートナーコンピューティングノードが機能しなくなっており、ゆえに切り替え動作が実行されるべきであるかどうかを確実に決定することができる。コンピューティングノード間で切り替え動作を実行するかどうかを決定することは、任意タイプのコンピューティング環境について及び/又は該環境の間で実現されてよく、物理装置(例えば、ノード202、ホスト205等)及び/又は(例えば、ノード202及び/又はホスト205を含む)クラウドコンピューティング環境の間で移転可能であり得ることが十分理解され得る。
図3A〜3Bは、クラウドコンピューティング環境300を示す。図3Aは、クラウドコンピューティング環境300内にホストされている複数のコンピューティングノード、例えば、第1のコンピューティングノード304及び第2のコンピューティングノード306などを示す。一例において、第1のコンピューティングノード304及び/又は第2のコンピューティングノード306は、非クラウドコンピューティング環境内にホストされてよく、しかしクラウドコンピューティング環境300への通信アクセス(例えば、クラウドストレージサービスを通してアクセス可能なクラウド持続ストレージへのアクセス)を有し得ることが十分理解され得る。コンピューティングノードは、ネットワーク302を通じてリソース及び/又はストレージをクライアントに提供することができる。例えば、ショッピング事業プロバイダが、ショッピングサービスをホストするためにクラウドコンピューティング環境300内にコンピューティングノードを展開してよく、ビデオゲーム事業プロバイダが、ビデオゲームサービスをホストするためにクラウドコンピューティング環境300内にコンピューティングノードを展開してよく、ネットワークストレージプロバイダが、第1のコンピューティングノード304を展開して、第1のリソースセット312及び第1のストレージ装置310を使用して会社クライアントのマーケティング部門のためのストレージサービスをホストしてよく、ネットワークストレージプロバイダは、第2のコンピューティングノード306を展開して、第2のリソースセット316及び第2のストレージ装置314を使用して会社クライアントのエンジニアリング部門のためのストレージサービスをホストしてよい。こうして、様々なサービスプロバイダが、サードパーティクラウドプロバイダによりホストされたクラウドコンピューティング環境300を利用して、ネットワーク302を通じてサービスをクライアントに提供することができる。
一例において、ネットワークストレージプロバイダは、第1のコンピューティングノード304及び第2のコンピューティングノード306を災害復旧パートナーとして構成してよく、一コンピューティングノードが機能しなくなる場合、生き残りのコンピューティングノードが切り替え動作を実行して、機能しなくなったコンピューティングノードにより前に所有されたリソース及び/又はストレージ装置の所有権を取得するようにし、切り替えられたリソース及びストレージ装置を使用して、機能しなくなったコンピューティングノードにより前に提供されたサービスへのフェールオーバーアクセスをクライアントに提供する。切り替え動作を実行するかどうかを決定するために使用される動作可能ステート情報を共有する一例において、第1のコンピューティングノード304及び第2のコンピューティングノード306は、ノード間通信リンク308を通じて動作可能ステート情報(例えば、ハートビート、及び/又は、コンピューティングノードが動作可能である、機能しなくなった、リブートしている、カーネルパニックモードである、比較的高いレイテンシを有しクライアント要求についていけない、等かどうかに関する指標)を共有するように構成されてよい。例えば、ノード間通信リンク308はIPネットワークを含んでよく、第1のコンピューティングノード304は、第2のコンピューティングノード306に割り当てられたIPアドレスを使用して第2のコンピューティングノード306に第1の動作可能ステート情報を送信することができる。
切り替え動作を実行するかどうかを決定するために使用される動作可能ステート情報を共有する別の例において、第1のコンピューティングノード304は、第1のコンピューティングノード304により所有された第1のストレージ装置310内に第1の動作可能ステート情報を記憶するように構成されてよい。第2のコンピューティングノード306は、第1のクラウドインフラストラクチャ接続320を利用して、第1のストレージ装置310から第1の動作可能ステート情報を読み出すことができる。同様に、第2のコンピューティングノード306は、第2のコンピューティングノード306により所有された第2のストレージ装置314内に第2の動作可能ステート情報を記憶するように構成されてよい。第1のコンピューティングノード306は、第2のクラウドインフラストラクチャ接続318を利用して、第2のストレージ装置314から第2の動作可能ステート情報を読み出すことができる。こうして、第1のコンピューティングノード304及び第2のコンピューティングノード306は、切り替え動作が実行されるべきかどうかを決定するために使用される動作可能ステート情報を共有するためにノード間通信リンク308及び/又はクラウドインフラストラクチャ接続を利用することができる。
図3Bは、第2のコンピューティングノード306からの動作可能ステート情報のハートビートロス330を検出する第1のコンピューティングノード304を示す。ハートビートロス330を検出する一例において、IPネットワーク障害が、ノード間通信リンク308がダウンしているという結果をもたらす可能性があり、ゆえに、第1のコンピューティングノード304は、ノード間通信リンク308がダウンしていることと対照的に、ハートビートロス330が第2のコンピューティングノード306が機能しなくなっていることの結果であると誤って決定する可能性がある。ハートビートロス330を検出する別の例において、クラウドインフラストラクチャ障害が、第2のクラウドインフラストラクチャ接続318がダウンしているという結果をもたらす可能性があり、ゆえに、第1のコンピューティングノード304は、第2のコンピューティングノード306がクラウドインフラストラクチャ障害に起因して第2のストレージ装置314内の動作可能ステート情報にアクセスできないことと対照的に、ハートビートロス330が第2のコンピューティングノード306が機能しなくなっていることの結果であると誤って決定する可能性がある。ゆえに、第1のコンピューティングノード304は、切り替え動作332を誤って実現して、第2のストレージ装置314及び/又は第2のリソースセット316を利用して第2のコンピューティングノード306により前に提供されたストレージサービスへのフェールオーバーアクセスをクライアントに提供するために第2のストレージ装置314及び/又は第2のリソースセット316の所有権を引き継ぐ可能性がある。不幸なことに、第1のコンピューティングノード304及び第2のコンピューティングノード306は、第2のストレージ装置314及び/又は第2のリソースセット316の所有権について不必要に競合する可能性があり、なぜならば、第2のコンピューティングノード306は動作可能であり、第1のコンピューティングノード304は誤って切り替え動作332を実行するよう試みているからである。
図4A〜4Cは、コンピューティングノード間の切り替え動作を実行するかどうかを決定する例を示す。第1のコンピューティングノード404及び第2のコンピューティングノード406が、クラウドコンピューティング環境400内にホストされてよい。一例において、第1のコンピューティングノード404及び/又は第2のコンピューティングノード406は、非クラウドコンピューティング環境内にホストされてよく、しかしクラウドコンピューティング環境400への通信アクセス(例えば、クラウドストレージサービスを通してアクセス可能なクラウド持続ストレージへのアクセス)を有し得ることが十分理解され得る。一例において、第1のコンピューティングノード404は第1のクラウドレベルゾーン内にホストされてよく、第2のコンピューティングノード406は第2のクラウドレベルゾーン内にホストされてよい(例えば、データセンタのうち異なるゾーン又はロケーション内、異なるデータセンタ内、等にホストされる)。第1のコンピューティングノード404は、ネットワーク402を通じて、クラウドコンピューティング環境400内の第1のストレージリソースセット412(例えば、第1のコンピューティングノード404により所有された第1のストレージ装置410に関連づけられたストレージリソース)へのアクセスをクライアントに提供することができる。第2のコンピューティングノード406は、ネットワーク402を通じて、クラウドコンピューティング環境400内の第2のストレージリソースセット416(例えば、第2のコンピューティングノード406により所有された第2のストレージ装置414に関連づけられたストレージリソース)へのアクセスをクライアントに提供することができる。
ノード間通信リンク408が、第1のコンピューティングノード404及び第2のコンピューティングノード406の間に確立されてよい。例えば、ノード間通信リンク408は、IPベースの通信、例えば、IPネットワークなど(例えば、コンピューティングノード間の物理リンクなどのダイレクトリンクと対照的であり、これは、コンピューティングノードが異なるデータセンタ内又はデータセンタのうち異なるロケーション内などの異なるクラウドレベルゾーン内にあり得るため、非実際的であり得る)を含んでよい。第1のコンピューティングノード404及び第2のコンピューティングノード406は、ノード間通信リンク408を通じて動作可能ステート情報(例えば、ハートビート、障害の指標、通常動作の指標等)を送信するように構成されてよい。
一例において、第1のコンピューティングノード404は、第1のストレージ装置410内に第1の動作可能ステート情報を記憶するように構成されてよく、それにより、第2のコンピューティングノード406は、第1のクラウドインフラストラクチャ接続420を通じて第1のストレージ装置410から第1の動作可能ステート情報を読み出すことができる。第2のコンピューティングノード406は、第2のストレージ装置414内に第2の動作可能ステート情報を記憶するように構成されてよく、それにより、第1のコンピューティングノード404は、第2のクラウドインフラストラクチャ接続418を通じて第2のストレージ装置414から第2の動作可能ステート情報を読み出すことができる。
ノード間通信リンク408を動作不能にするIPネットワーク障害、及び/又は第1のクラウドインフラストラクチャ接続420及び第2のクラウドインフラストラクチャ接続418を動作不能にするクラウドコンピューティング環境インフラストラクチャ障害が、パートナーコンピューティングノードが機能しなくなったという偽の指標(例えば、ハートビートのロス)を提供する可能性があるため、クラウド環境ノードステートプロバイダ430が利用されて、コンピューティングノードの動作可能ステートを検証することができる。したがって、第1のコンピューティングノード404及び第2のコンピューティングノード406は、クラウドコンピューティング環境400のクラウド環境ノードステートプロバイダ430に動作可能ステート情報を提供するように構成されてよい。一例において、クラウド環境ノードステートプロバイダ430は、クラウドコンピューティング環境400のクラウドプロバイダ/所有者により提供されるサービスであり得、ゆえに、コンピューティングノードが動作可能であるか否かに関して高度に利用可能及び信頼可能な情報を提供することができる。
図4Bは、第2のコンピューティングノード406が動作可能である間、ノード間通信リンク408を通じての通信のロス440(例えば、ノード間通信リンク408を通じての第2のコンピューティングノード406からの動作ステート情報の最後の受信からのタイムアウト)、及び/又は第2のストレージ装置414へのアクセスのロス440(例えば、第2のクラウドインフラストラクチャ接続418を通じて第2のストレージ装置414にアクセスできないこと)を検出する第1のコンピューティングノード404を示す。ロス440を識別したことに応答して、第1のコンピューティングノード404は、第2のコンピューティングノード406の動作可能ステート情報についてクラウド環境ノードステートプロバイダ430に問い合わせることができる。第2のコンピューティングノード406が動作可能であるため、クラウド環境ステートプロバイダ430は、第2のコンピューティングノード406が動作可能ステートであることに関する動作可能ステートメッセージ442で応答することができる。したがって、第1のコンピューティングノード404は、第2のコンピューティングノード406が第2のリソースセット415へのアクセスをクライアントに提供するために動作可能であるため、切り替え動作を誤って実行することをやめることができる。ゆえに、第1のコンピューティングノード404は、ロス440がクラウドコンピューティング環境インフラストラクチャ障害及び/又はノード間通信リンク408の動作不能に対応すると決定することができる。
図4Cは、第2のコンピューティングノード406が機能停止ステート(failed state)450である間、ノード間通信リンク408を通じての通信のロス451(例えば、ノード間通信リンク408を通じての第2のコンピューティングノード406からの動作ステート情報の最後の受信からのタイムアウト)、及び/又は第2のストレージ装置414へのアクセスのロス451(例えば、第2のクラウドインフラストラクチャ接続418を通じて第2のストレージ装置414にアクセスできないこと)を検出する第1のコンピューティングノード404を示す。ロス451を検出したことに応答して、第1のコンピューティングノード404は、第2のコンピューティングノード406の動作可能ステート情報についてクラウド環境ノードステートプロバイダ430に問い合わせることができる。第2のコンピューティングノード406が、第2のリソースセット416へのアクセスをクライアントに提供することができない機能停止ステート450であるため、クラウド環境ステートプロバイダ430は、第2のコンピューティングノード406に関して機能停止ステートメッセージ452で応答することができる。したがって、第1のコンピューティングノードは、切り替え動作454を実行して、第2のストレージ装置414及び/又は第2のリソースセット416を利用して第2のコンピューティングノード406により前に提供されたストレージサービスへのフェールオーバーアクセスをクライアントに提供するために第2のストレージ装置414及び/又は第2のリソースセット416の所有権を引き継ぐことができる。別の例において、第1のコンピューティングノード404はまた、コンピューティングノードが動作可能情報を記憶することができるクラウド持続ストレージをホストするクラウドストレージサービスに問い合わせて、第2のコンピューティングノード406の動作可能ステートを決定してもよい(例えば、図5A〜5C)ことが十分理解され得る。
図5A〜5Cは、コンピューティングノード間で切り替え動作を実行するかどうかを決定する例を示す。第1のコンピューティングノード504及び第2のコンピューティングノード506が、クラウドコンピューティング環境500内にホストされてよい。一例において、第1のコンピューティングノード504及び/又は第2のコンピューティングノード506は、非クラウドコンピューティング環境内にホストされてよく、しかしクラウドコンピューティング環境500への通信アクセス(例えば、クラウドストレージサービスを通してアクセス可能なクラウド持続ストレージへのアクセス)を有し得ることが十分理解され得る。一例において、第1のコンピューティングノード504は第1のクラウドレベルゾーン内にホストされてよく、第2のコンピューティングノード506は第2のクラウドレベルゾーン内にホストされてよい。第1のコンピューティングノード504は、ネットワーク502を通じて、クラウドコンピューティング環境500内の第1のストレージリソースセット512(例えば、第1のコンピューティングノード504により所有された第1のストレージ装置510に関連づけられたストレージリソース)へのアクセスをクライアントに提供することができる。第2のコンピューティングノード506は、ネットワーク502を通じて、クラウドコンピューティング環境500内の第2のストレージリソースセット516(例えば、第2のコンピューティングノード506により所有された第2のストレージ装置514に関連づけられたストレージリソース)へのアクセスをクライアントに提供することができる。
ノード間通信リンク508が、第1のコンピューティングノード504及び第2のコンピューティングノード506の間に確立されてよい。例えば、ノード間通信リンク508は、IPベースの通信、例えば、IPネットワークなどを含んでよい。第1のコンピューティングノード504及び第2のコンピューティングノード506は、ノード間通信リンク508を通じて動作可能ステート情報(例えば、コンピューティングノードの進捗を示す番号のシーケンスに対応するハートビート、障害の指標、通常動作の指標等)を送信するように構成されてよい。
一例において、第1のコンピューティングノード504は、第1のストレージ装置510内に第1の動作可能ステート情報を記憶するように構成されてよく、それにより、第2のコンピューティングノード506は、第1のクラウドインフラストラクチャ接続520を通じて第1のストレージ装置510から第1の動作可能ステート情報を読み出すことができる。第2のコンピューティングノード506は、第2のストレージ装置514内に第2の動作可能ステート情報を記憶するように構成されてよく、それにより、第1のコンピューティングノード504は、第2のクラウドインフラストラクチャ接続518を通じて第2のストレージ装置514から第2の動作可能ステート情報を読み出すことができる。
ノード間通信リンク508を動作不能にするIPネットワーク障害、及び/又は第1のクラウドインフラストラクチャ接続520及び第2のクラウドインフラストラクチャ接続518を動作不能にするクラウドコンピューティング環境インフラストラクチャ障害が、パートナーコンピューティングノードが機能しなくなったという偽の指標(例えば、ハートビートのロス)を提供する可能性があるため、クラウドストレージサービス530が利用されて、コンピューティング装置の動作可能ステートを検証することができる。したがって、第1のコンピューティングノード504及び第2のコンピューティングノード506は、クラウドコンピューティング環境500のクラウドストレージサービス530を通してアクセス可能なクラウド持続ストレージに動作可能ステート情報を記憶するように構成されてよい。一例において、クラウドストレージサービス530及びクラウド持続ストレージは、クラウドコンピューティング環境500のクラウドプロバイダ/所有者により提供され、ゆえに、コンピューティングノードが動作可能であるか否かに関して高度に利用可能及び信頼可能な情報を提供することができる。
図5Bは、第2のコンピューティングノード506が動作可能である間、ノード間通信リンク508を通じての通信のロス540(例えば、ノード間通信リンク508を通じての第2のコンピューティングノード506からの動作ステート情報の最後の受信からのタイムアウト)、及び/又は第2のストレージ装置514へのアクセスのロス540(例えば、第2のクラウドインフラストラクチャ接続518を通じて第2のストレージ装置514にアクセスできないこと)を検出する第1のコンピューティングノード504を示す。ロス540を検出したことに応答して、第1のコンピューティングノード504は、クラウド持続ストレージ内に第2のコンピューティングノード506により記憶された動作可能ステート情報542(例えば、第2のコンピューティングノード506の進捗を示すシーケンス番号を含むハートビート;障害、カーネルパニック、又は通常動作ステートの指標;等)についてクラウドストレージサービス530に問い合わせることができる。動作可能ステート情報542が、第2のコンピューティングノード506が動作可能であると示すことができるため、第1のコンピューティングノード504は、切り替え動作を誤って実行することをやめることができ、なぜならば、第2のコンピューティングノード506が第2のリソースセット516へのアクセスをクライアントに提供するために動作可能であるからである。ゆえに、第1のコンピューティングノード504は、ロス540がクラウドコンピューティング環境インフラストラクチャ障害及び/又はノード間通信リンク508の動作不能に対応すると決定することができる。
図5Cは、第2のコンピューティングノード506が機能停止ステート550である間、ノード間通信リンク508を通じての通信のロス551(例えば、ノード間通信リンク508を通じての第2のコンピューティングノード506からの動作ステート情報の最後の受信からのタイムアウト)、及び/又は第2のストレージ装置514へのアクセスのロス551(例えば、第2のクラウドインフラストラクチャ接続518を通じて第2のストレージ装置514にアクセスできないこと)を検出する第1のコンピューティングノード504を示す。ロス551を検出したことに応答して、第1のコンピューティングノード504は、クラウド持続ストレージ内に第2のコンピューティングノード506により記憶された動作可能ステート情報552(例えば、第2のコンピューティングノード506の進捗を示すシーケンス番号を含むハートビート;障害、カーネルパニック、又は通常動作ステートの指標;等)についてクラウドストレージサービス530に問い合わせることができる。動作ステート情報552が、第2のコンピューティングノード506が第2のリソースセット516へのアクセスをクライアントに提供することができない機能停止ステート550であると示すことができるため、第1のコンピューティングノードは、切り替え動作554を実行して、第2のストレージ装置514及び/又は第2のリソースセット516を利用して第2のコンピューティングノード506により前に提供されたストレージサービスへのフェールオーバーアクセスをクライアントに提供するために第2のストレージ装置514及び/又は第2のリソースセット516の所有権を引き継ぐことができる。別の例において、第1のコンピューティングノード504はまた、クラウド環境ノードステートプロバイダに問い合わせて第2のコンピューティングノード506の動作可能ステートを決定してもよい(例えば、図4A〜4C)ことが十分理解され得る。
コンピューティングノード間の切り替え動作を実行するかどうかを決定する一実施例が、図6の例示的な方法600により示される。602において、方法600は開始する。604において、ノード間通信リンクが、クラウドコンピューティング環境内にホストされた第1のコンピューティングノードと第2のコンピューティングノードとの間に確立される。第1のコンピューティングノードは、クラウドコンピューティング環境内の第1のリソースセットへのアクセスをクライアントに提供するように構成される。第2のコンピューティングノードは、クラウドコンピューティング環境内の第2のリソースセットへのアクセスをクライアントに提供するように構成される。606において、第1のコンピューティングノード及び第2のコンピューティングノードは、クラウドコンピューティング環境のクラウド環境ノードステートプロバイダに動作可能ステート情報を提供するように構成される。
ノード間通信リンクを通じての通信のロスを識別したことに応答して、クラウド環境ノードステートプロバイダは、608において、第1のコンピューティングノードの第1の動作可能ステート情報について問い合わせられてよい。610において、第1のコンピューティングノードの障害を示す第1の動作可能ステート情報に応答して、切り替え動作が、第2のコンピューティングノードが第1のコンピューティングノードの障害復旧パートナーであることに基づき、第1のコンピューティングノードを通してクライアントにとって前にアクセス可能であった第1のリソースセットへのフェールオーバーアクセスをクライアントに提供するために第1のコンピューティングノードから第2のコンピューティングノードに実行されてよい。612において、方法600は終了する。
コンピューティングノード間の切り替え動作を実行するかどうかを決定する一実施例が、図7の例示的な方法700により示される。702において、方法700は開始する。704において、ノード間通信リンクが、第1のコンピューティングノードと第2のコンピューティングノードとの間に確立される。一例において、第1のコンピューティングノード及び第2のコンピューティングノードは、クラウドコンピューティング環境内にホストされてよい。別の例において、第1のコンピューティングノード及び第2のコンピューティングノードは、非クラウドコンピューティング環境(例えば、クラスタネットワークストレージ環境)内にホストされてよく、しかしクラウドコンピューティング環境への通信アクセスを有し得る。別の例において、第1のコンピューティングノードはクラウドコンピューティング環境内にホストされてよく、第2のコンピューティングノードは非クラウドコンピューティング環境内にホストされてよく、第2のコンピューティングノードは、クラウドコンピューティング環境への通信アクセスを有する。第1のコンピューティングノードは、第1のリソースセットへのアクセスをクライアントに提供するように構成される。第2のコンピューティングノードは、第2のリソースセットへのアクセスをクライアントに提供するように構成される。706において、第1のコンピューティングノード及び第2のコンピューティングノードは、クラウドコンピューティング環境のクラウドストレージサービスを通してアクセス可能なクラウド持続ストレージに動作可能ステート情報を記憶するように構成される。
ノード間通信リンクを通じての通信のロスを識別したことに応答して、クラウドストレージサービスは、708において、第1のコンピューティングノードの第1の動作可能ステート情報について問い合わせられてよい。710において、第1のコンピューティングノードの障害を示す第1の動作可能ステート情報に応答して、切り替え動作が、第2のコンピューティングノードが第1のコンピューティングノードの障害復旧パートナーであることに基づき、第1のコンピューティングノードを通してクライアントにとって前にアクセス可能であった第1のリソースセットへのフェールオーバーアクセスをクライアントに提供するために第1のコンピューティングノードから第2のコンピューティングノードに実行されてよい。712において、方法700は終了する。
さらに別の実施例には、本明細書に提示される手法の1つ以上を実現するように構成されたプロセッサ実行可能命令を含むコンピュータ読取可能媒体が含まれる。これら方法で考えられるコンピュータ読取可能媒体又はコンピュータ読取可能装置の一例示的な実施例が図8に示され、実現例800は、コンピュータ読取可能データ806が符号化されたコンピュータ読取可能媒体808、例えば、CD‐R、DVD‐R、フラッシュドライブ、ハードディスクドライブのプラッタ等を含む。このコンピュータ読取可能データ806、例えばゼロ又はイチのうち少なくとも一方を含むバイナリデータなどは、本明細書に説明される原理の1つ以上に従い動作するように構成されたコンピュータ命令804のセットを同様に含む。いくつかの実施例において、プロセッサ実行可能コンピュータ命令804は、方法802、例えば、図6の例示的な方法600のうち少なくともいくつか及び/又は図7の例示的な方法700のうち少なくともいくつかなどを実行するように構成される。いくつかの実施例において、プロセッサ実行可能命令804は、システム、例えば、図4A〜4Cの例示的なシステム400のうち少なくともいくつか及び/又は図5A〜5Cの例示的なシステム500のうち少なくともいくつかなどを実現するように構成される。多くのこうしたコンピュータ読取可能媒体が、本明細書に提示される手法に従い動作するように企図される。
本明細書に説明される処理、アーキテクチャ、及び/又は手順は、ハードウェア、ファームウェア、及び/又はソフトウェアにおいて実現できることが十分理解されるであろう。さらに、本明細書に説明される対策は、ストレージシステムとして具現化され又はストレージシステムを含み、スタンドアロンコンピュータ又はその一部を含む、任意タイプの特別目的コンピュータ(例えば、ファイルホスト、ストレージサーバ、及び/又はストレージ供給アプライアンス)及び/又は汎用目的コンピュータに適用されてよいことが十分理解されるであろう。さらに、本明細書における教示は、様々なストレージシステムアーキテクチャに対して構成でき、これらに限られないが、ネットワークアタッチトストレージ環境及び/又はストレージエリアネットワーク、並びにクライアント又はホストコンピュータに直接アタッチされたディスクアセンブリが含まれる。ストレージシステムは、したがって、ストレージ機能を実行するように構成され他の機器又はシステムに関連づけられた任意のサブシステムに追加でこうした配置を含むように広く取られるべきである。
いくつかの実施例において、本開示において説明及び/又は例示された方法は、全体的又は部分的にコンピュータ読取可能媒体上に実現されてよい。コンピュータ読取可能媒体は、本明細書に提示される方法の1つ以上を実現するように構成されたプロセッサ実行可能命令を含むことができ、コンピュータシステムによりその後読み出せるこのデータを記憶する任意のメカニズムを含んでよい。コンピュータ読取可能媒体の例には、(ハード)ドライブ(例えば、ネットワークアタッチトストレージ(NAS)を介してアクセス可能)、ストレージエリアネットワーク(SAN)、揮発及び不揮発メモリ、例えば、読取専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、EEPROM、及び/又はフラッシュメモリ、CD‐ROM、CD‐R、CD‐RW、DVD、カセット、磁気テープ、磁気ディスクストレージ、光学又は非光学データストレージ装置、及び/又はデータを記憶するために使用できる任意の他の媒体が含まれる。
対象事項が構造的特徴又は方法論動作に固有の言語で説明されたが、別記の特許請求の範囲に定義される対象事項は必ずしも上記で説明された特定の特徴又は動作に限定されないことが理解されるべきである。むしろ、上記で説明された特定の特徴及び動作は、請求項のうち少なくともいくつかを実現する例示的な形式として開示される。
様々な実施例動作が本明細書において提供される。動作のうちいくつか又はすべてが説明された順序は、これら動作が必ず順序依存であることを示すようにみなされるべきではない。代替的な順序付けが、本説明の恩恵を考慮して十分理解されるであろう。さらに、すべての動作が必ずしも本明細書に提供された各実施例に存在するわけではないことが理解されるであろう。また、いくつかの実施例においてすべての動作が必要であるわけではないことが理解されるであろう。
さらに、請求される対象事項は、コンピュータを制御して開示された対象事項を実現するためのソフトウェア、ファームウェア、ハードウェア、又はこれらの任意の組み合わせを生み出すように標準のアプリケーション又はエンジニアリング手法を用いて方法、装置、又は製造品として実現される。本明細書において用いられるときの用語「製造品」は、任意のコンピュータ読取可能装置、キャリア、又は媒体からアクセス可能なコンピュータアプリケーションを包含するように意図される。当然ながら、請求される対象事項の範囲及び主旨から逸脱することなくこの構成に対して多くの変更が行われてよい。
本出願において用いられるとき、用語「コンポーネント」、「モジュール」、「システム」、「インターフェース」などは一般に、コンピュータ関連エンティティ、ハードウェア、ハードウェア及びソフトウェアの組み合わせ、ソフトウェア、又は実行中のソフトウェアを参照するように意図される。例えば、コンポーネントが、プロセッサ上で実行するプロセス、プロセッサ、オブジェクト、実行ファイル、実行のスレッド、アプリケーション、又はコンピュータを含む。例示として、コントローラ上で実行するアプリケーションとコントローラとの双方がコンポーネントであり得る。実行のプロセス又はスレッド内に存在する1つ以上のコンポーネントと一コンポーネントとが、1つのコンピュータ上に局所化されてもよく、あるいは2つ以上のコンピュータ間に分散されてもよい。
さらに、「例示的」は本明細書において、必ずしも利点としてでなく、例、事例、例示等の役割を果たすことを意味するために用いられる。本出願において用いられるとき、「又は」は、排他的な「又は」でなく包含的な「又は」を意味することが意図される。さらに、本出願において用いられる一の(“a”、“an”)は一般に、単数形に向けられるように別段指定されるか又は文脈から明らかかでない限り、「1つ以上」を意味するようにみなされるべきである。また、A及びBのうち少なくとも1つ及び/又は同様のものは一般に、A、又はB、及び/又はA及びBの双方を意味する。さらに、「含める」、「有している」、「有する」、「備える」、又はこれらの変形が用いられる範囲で、こうした用語は、用語「含む」と同様に包含的であることが意図される。
請求される対象事項の範囲及び主旨から逸脱することなく多くの変更が本開示に対して行われてよい。別段指定されない限り、「第1の」、「第2の」などは、時間的態様、空間的態様、順序付け等を示すようには意図されない。むしろ、こうした用語は、特徴、要素、アイテム等のための、識別子、名前等として専ら用いられる。例えば、第1の情報セット及び第2の情報セットは一般に、情報セットA及び情報セットB、又は2つの異なる若しくは2つの同一の情報セット、又は一の同じ情報セットに対応する。
また、本開示は1つ以上の実現例に関して図示され説明されたが、本明細書及び添付図面を読んで理解した当業者は均等的な修正及び変更に気づくであろう。本開示は、すべてのこうした変更及び修正を含み、下記の特許請求の範囲によってのみ限定される。特に、上記で説明されたコンポーネント(例えば、要素、リソース等)により実行される様々な機能に関し、こうしたコンポーネントを説明するために用いられる用語は、別段示されない限り、開示された構造に対して構造的に均等でないとしても、(例えば、機能的に均等である)説明されたコンポーネントの指定された機能を実行する任意のコンポーネントに対応することが意図される。さらに、開示の特定の特徴がいくつかの実現例のうち1つのみに関して開示されている可能性があるが、こうした特徴は、所望され得る他の実現例の1つ以上の他の特徴、及び任意の所与の又は特定の適用のための利点と組み合わせられてよい。

Claims (21)

  1. 切り替え動作を実行する方法であって、
    ストレージサーバにより、クラウドコンピューティング環境内にホストされた第1のコンピューティングノードと第2のコンピューティングノードとの間のノード間通信リンクを確立するステップであって、前記第1のコンピューティングノードは前記クラウドコンピューティング環境内の第1のリソースセットへのアクセスをクライアントに提供するように構成され、前記第2のコンピューティングノードは前記クラウドコンピューティング環境内の第2のリソースセットへのアクセスをクライアントに提供するように構成される、ステップと、
    動作可能ステート情報を前記クラウドコンピューティング環境のクラウド環境ノードステートプロバイダに提供するように前記第1のコンピューティングノード及び前記第2のコンピューティングノードを構成するステップと、
    前記ノード間通信リンクを通じての通信のロスを識別したことに応答して、
    前記第1のコンピューティングノードの第1の動作可能ステート情報について前記クラウド環境ノードステートプロバイダに問い合わせるステップと、
    前記第1のコンピューティングノードの障害を示す前記第1の動作可能ステート情報に応答して、前記第2のコンピューティングノードが前記第1のコンピューティングノードの障害復旧パートナーであることに基づき、前に前記第1のコンピューティングノードを通してクライアントにとってアクセス可能であった前記第1のリソースセットへのフェールオーバーアクセスをクライアントに提供するために前記第1のコンピューティングノードから前記第2のコンピューティングノードへの切り替え動作を実行するステップと、
    を含む方法。
  2. 前記動作可能ステート情報を前記クラウドコンピューティング環境のクラウドストレージサービスを通してアクセス可能なクラウド持続ストレージに記憶するように前記第1のコンピューティングノード及び前記第2のコンピューティングノードを構成するステップと、
    前記ノード間通信リンクを通じての前記通信のロスを識別したことに応答して、前記第1のコンピューティングノードの前記第1の動作可能ステート情報について前記クラウドストレージサービスに問い合わせるステップと、
    を含む請求項1に記載の方法。
  3. 前記ノード間通信リンクを通じて前記動作可能ステート情報を送信するように前記第1のコンピューティングノード及び前記第2のコンピューティングノードを構成するステップ、
    を含む請求項1又は2に記載の方法。
  4. 前記第1のコンピューティングノードが動作可能ステートであると示す前記第1の動作可能ステート情報に応答して、前記切り替え動作を実行することをやめるステップ、
    を含む請求項1乃至3のうちいずれか1項に記載の方法。
  5. 前記ノード間通信リンクはインターネットプロトコル(IP)ベースの通信を含む、請求項1乃至4のうちいずれか1項に記載の方法。
  6. 前記第1のコンピューティングノードは第1のクラウドレベルゾーン内にホストされ、前記第2のコンピューティングノードは前記第1のクラウドレベルゾーンと別個の第2のクラウドレベルゾーン内にホストされる、請求項1乃至5のうちいずれか1項に記載の方法。
  7. 前記第1のコンピューティングノードが動作可能ステートであると示す前記第1の動作可能ステート情報に応答して、クラウドコンピューティング環境インフラストラクチャ障害が発生したと決定するステップ、
    を含む請求項1乃至6のうちいずれか1項に記載の方法。
  8. 前記第1のコンピューティングノードが動作可能ステートであると示す前記第1の動作可能ステート情報に応答して、前記ノード間通信リンクが動作不能であると決定するステップ、
    を含む請求項1乃至7のうちいずれか1項に記載の方法。
  9. 前記ノード間通信リンクを通じての動作可能ステート情報の最後の受信からのタイムアウトに基づき前記通信のロスを識別するステップ、
    を含む請求項1乃至8のうちいずれか1項に記載の方法。
  10. 前記第1のリソースセットに関連づけられたストレージ内に前記動作可能ステート情報を記憶するように前記第1のコンピューティングノードを構成するステップと、
    前記ストレージにアクセスして前記第1の動作可能ステート情報を取り出すように前記第2のコンピューティングノードを構成するステップと、
    を含む請求項1乃至9のうちいずれか1項に記載の方法。
  11. 前記ストレージへのアクセスのロスを識別したことに応答して、
    前記第1の動作可能ステート情報について前記クラウド環境ノードステートプロバイダに問い合わせるステップ、
    を含む請求項10に記載の方法。
  12. 前記動作可能ステート情報を前記クラウドコンピューティング環境のクラウドストレージサービスを通してアクセス可能なクラウド持続ストレージに記憶するように前記第1のコンピューティングノード及び前記第2のコンピューティングノードを構成するステップと、
    前記ストレージへのアクセスのロスを識別したことに応答して、
    前記第1の動作可能ステート情報について前記クラウドストレージサービスに問い合わせるステップと、
    を含む請求項10に記載の方法。
  13. 少なくとも1つのマシンにより実行されたときに前記マシンに請求項1乃至12のうちいずれか1項に記載の方法を実行させるマシン実行可能コードを含む、方法を実行する命令を記憶した非一時的マシン読取可能媒体。
  14. マシン実行可能コードを含む、方法を実行する命令を記憶した非一時的マシン読取可能媒体であって、前記マシン実行可能コードは少なくとも1つのマシンにより実行されたときに前記マシンに、
    第1のコンピューティングノードと第2のコンピューティングノードとの間のノード間通信リンクを確立することであって、前記第1のコンピューティングノードは第1のリソースセットへのアクセスをクライアントに提供するように構成され、前記第2のコンピューティングノードは第2のリソースセットへのアクセスをクライアントに提供するように構成され、
    動作可能ステート情報をクラウドコンピューティング環境のクラウドストレージサービスを通してアクセス可能なクラウド持続ストレージに記憶するように前記第1のコンピューティングノード及び前記第2のコンピューティングノードを構成し、
    前記ノード間通信リンクを通じての通信のロスを識別したことに応答して、
    前記第1のコンピューティングノードの第1の動作可能ステート情報について前記クラウドストレージサービスに問い合わせ、
    前記第1のコンピューティングノードの障害を示す前記第1の動作可能ステート情報に応答して、前記第2のコンピューティングノードが前記第1のコンピューティングノードの障害復旧パートナーであることに基づき、前に前記第1のコンピューティングノードを通してクライアントにとってアクセス可能であった前記第1のリソースセットへのフェールオーバーアクセスをクライアントに提供するために前記第1のコンピューティングノードから前記第2のコンピューティングノードへの切り替え動作を実行すること
    を実行させる、非一時的マシン読取可能媒体。
  15. 前記マシン実行可能コードは前記マシンに、
    前記動作可能ステート情報をクラウド環境ノードステートプロバイダに提供するように前記第1のコンピューティングノード及び前記第2のコンピューティングノードを構成し、
    前記ノード間通信リンクを通じての前記通信のロスを識別したことに応答して、前記第1のコンピューティングノードの前記第1の動作可能ステート情報について前記クラウド環境ノードステートプロバイダに問い合わせること
    を実行させる、請求項14に記載の非一時的マシン読取可能媒体。
  16. 前記マシン実行可能コードは前記マシンに、
    前記第1のコンピューティングノードが動作可能ステートであると示す前記第1の動作可能ステート情報に応答して、前記切り替え動作を実行することをやめること
    を実行させる、請求項14又は15に記載の非一時的マシン読取可能媒体。
  17. 前記第1のコンピューティングノード又は前記第2のコンピューティングノードのうち少なくとも1つが、前記クラウドコンピューティング環境の外部の非クラウドコンピューティング環境内にホストされる、請求項14乃至16のうちいずれか1項に記載の非一時的マシン読取可能媒体。
  18. コンピューティングノード間で切り替え動作を実行するかどうかを決定する方法を実行する命令を記憶したマシン実行可能コードを含むマシン読取可能媒体を含むメモリと、
    前記メモリに結合されたプロセッサと、
    を含み、
    前記プロセッサは、前記マシン実行可能コードを実行して前記プロセッサに、
    第1のコンピューティングノードと第2のコンピューティングノードとの間のノード間通信リンクを確立することであって、前記第1のコンピューティングノードは第1のリソースセットへのアクセスをクライアントに提供するように構成され、前記第2のコンピューティングノードは第2のリソースセットへのアクセスをクライアントに提供するように構成され、
    動作可能ステート情報をクラウドコンピューティング環境のクラウドストレージサービスを通してアクセス可能なクラウド持続ストレージに記憶するように前記第1のコンピューティングノード及び前記第2のコンピューティングノードを構成し、
    前記ノード間通信リンクを通じての通信のロスを識別したことに応答して、
    前記第1のコンピューティングノードの第1の動作可能ステート情報について前記クラウドストレージサービスに問い合わせ、
    前記第1のコンピューティングノードの障害を示す前記第1の動作可能ステート情報に応答して、前記第2のコンピューティングノードが前記第1のコンピューティングノードの障害復旧パートナーであることに基づき、前に前記第1のコンピューティングノードを通してクライアントにとってアクセス可能であった前記第1のリソースセットへのフェールオーバーアクセスをクライアントに提供するために前記第1のコンピューティングノードから前記第2のコンピューティングノードへの切り替え動作を実行すること
    を実行させるように構成される、コンピューティング装置。
  19. 前記マシン実行可能コードは前記プロセッサに、
    前記動作可能ステート情報をクラウド環境ノードステートプロバイダに提供するように前記第1のコンピューティングノード及び前記第2のコンピューティングノードを構成し、
    前記ノード間通信リンクを通じての前記通信のロスを識別したことに応答して、前記第1のコンピューティングノードの前記第1の動作可能ステート情報について前記クラウド環境ノードステートプロバイダに問い合わせること
    を実行させる、請求項18に記載のコンピューティング装置。
  20. 前記マシン実行可能コードは前記プロセッサに、
    前記第1のコンピューティングノードが動作可能ステートであると示す前記第1の動作可能ステート情報に応答して、前記切り替え動作を実行することをやめること
    を実行させる、請求項18又は19に記載のコンピューティング装置。
  21. 前記第1のコンピューティングノード又は前記第2のコンピューティングノードのうち少なくとも1つが、前記クラウドコンピューティング環境の外部の非クラウドコンピューティング環境内にホストされる、請求項18乃至20のうちいずれか1項に記載のコンピューティング装置。
JP2018521645A 2015-10-30 2016-10-28 コンピューティングノード間の切り替え動作を実行する方法、装置、及び媒体 Active JP6476350B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/928,137 US10855515B2 (en) 2015-10-30 2015-10-30 Implementing switchover operations between computing nodes
US14/928,137 2015-10-30
PCT/US2016/059358 WO2017075375A1 (en) 2015-10-30 2016-10-28 Method, device and medium for performing switchover operations between computing nodes

Publications (2)

Publication Number Publication Date
JP2018536229A true JP2018536229A (ja) 2018-12-06
JP6476350B2 JP6476350B2 (ja) 2019-02-27

Family

ID=57233961

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018521645A Active JP6476350B2 (ja) 2015-10-30 2016-10-28 コンピューティングノード間の切り替え動作を実行する方法、装置、及び媒体

Country Status (5)

Country Link
US (2) US10855515B2 (ja)
EP (1) EP3368985B1 (ja)
JP (1) JP6476350B2 (ja)
CN (1) CN108351824B (ja)
WO (1) WO2017075375A1 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10521306B2 (en) * 2017-07-27 2019-12-31 Western Digital Technologies, Inc. Methods, systems and devices for restarting data processing units
US11157300B2 (en) * 2018-02-13 2021-10-26 Sophos Limited Managing virtual machine security resources
KR102494744B1 (ko) * 2018-03-22 2023-02-02 국방과학연구소 서비스의 연속성을 지원하는 클라우드 서버, 이를 포함하는 시스템 및 방법
US10860368B2 (en) 2018-09-28 2020-12-08 Juniper Networks, Inc. Migrating workloads in multicloud computing environments
US10909009B2 (en) * 2018-11-01 2021-02-02 Dell Products L.P. System and method to create a highly available quorum for clustered solutions
CN111176888B (zh) * 2018-11-13 2023-09-15 浙江宇视科技有限公司 云存储的容灾方法、装置及系统
CN110333974B (zh) * 2019-06-03 2022-04-15 腾讯科技(深圳)有限公司 一种云存储服务的切换方法和设备
CN112199240B (zh) * 2019-07-08 2024-01-30 华为云计算技术有限公司 一种节点故障时进行节点切换的方法及相关设备
CN113746763B (zh) * 2020-05-29 2022-11-11 华为技术有限公司 一种数据处理的方法、装置和设备
US11625338B1 (en) * 2021-10-29 2023-04-11 Hewlett Packard Enterprise Development Lp Extending supervisory services into trusted cloud operator domains

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01195544A (ja) * 1988-01-29 1989-08-07 Nec Corp デュプレックス構成システムのダウン監視方式
JP2005258847A (ja) * 2004-03-12 2005-09-22 Hitachi Ltd フェイルオーバクラスタシステム及びフェイルオーバ方法

Family Cites Families (70)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19613519B4 (de) 1996-04-03 2014-06-05 Robert Bosch Gmbh Telefonanlage für schnurlose Telefone
GB2353113B (en) * 1999-08-11 2001-10-10 Sun Microsystems Inc Software fault tolerant computer system
US6954435B2 (en) * 2002-04-29 2005-10-11 Harris Corporation Determining quality of service (QoS) routing for mobile ad hoc networks
JP2004021556A (ja) * 2002-06-14 2004-01-22 Hitachi Ltd 記憶制御装置およびその制御方法
US7178055B2 (en) * 2003-06-06 2007-02-13 Hewlett-Packard Development Company, L.P. Method and system for ensuring data consistency after a failover event in a redundant data storage system
US7089383B2 (en) * 2003-06-06 2006-08-08 Hewlett-Packard Development Company, L.P. State machine and system for data redundancy
US7380081B2 (en) * 2003-06-06 2008-05-27 Hewlett-Packard Development Company, L.P. Asynchronous data redundancy technique
US20040250030A1 (en) * 2003-06-06 2004-12-09 Minwen Ji Data redundancy using portal and host computer
US7120825B2 (en) * 2003-06-06 2006-10-10 Hewlett-Packard Development Company, L.P. Adaptive batch sizing for asynchronous data redundancy
US7711820B2 (en) * 2004-11-08 2010-05-04 Cisco Technology, Inc. High availability for intelligent applications in storage networks
US7426653B2 (en) * 2005-04-13 2008-09-16 Progress Software Corporation Fault tolerant distributed lock management
US7804769B1 (en) * 2005-12-01 2010-09-28 Juniper Networks, Inc. Non-stop forwarding in a multi-chassis router
US8266472B2 (en) * 2006-05-03 2012-09-11 Cisco Technology, Inc. Method and system to provide high availability of shared data
US7711683B1 (en) * 2006-11-30 2010-05-04 Netapp, Inc. Method and system for maintaining disk location via homeness
US7685461B2 (en) * 2006-12-20 2010-03-23 International Business Machines Corporation Method, apparatus and program storage device for performing fault tolerant code upgrade on a fault tolerant system by determining when functional code reaches a desired state before resuming an upgrade
US20080162984A1 (en) * 2006-12-28 2008-07-03 Network Appliance, Inc. Method and apparatus for hardware assisted takeover
US7778986B2 (en) * 2007-08-29 2010-08-17 International Business Machines Corporation Securing transfer of ownership of a storage object from an unavailable owner node to another node
US7899895B2 (en) * 2007-08-29 2011-03-01 International Business Machines Corporation Transfer of ownership of a storage object in response to an original owner node becoming available after a period of unavailability
US8064360B2 (en) * 2009-01-23 2011-11-22 Empire Technology Development Llc Wireless home network routing protocol
US8943498B2 (en) * 2009-05-31 2015-01-27 Red Hat Israel, Ltd. Method and apparatus for swapping virtual machine memory
US8417938B1 (en) * 2009-10-16 2013-04-09 Verizon Patent And Licensing Inc. Environment preserving cloud migration and management
US8078902B2 (en) * 2009-10-30 2011-12-13 Verizon Patent And Licensing, Inc. Fault surveillance and automatic fail-over processing in broker-based messaging systems and methods
US8452932B2 (en) * 2010-01-06 2013-05-28 Storsimple, Inc. System and method for efficiently creating off-site data volume back-ups
US9098456B2 (en) * 2010-01-13 2015-08-04 International Business Machines Corporation System and method for reducing latency time with cloud services
US8515726B2 (en) * 2010-01-20 2013-08-20 Xyratex Technology Limited Method, apparatus and computer program product for modeling data storage resources in a cloud computing environment
CN101860492A (zh) * 2010-06-28 2010-10-13 中兴通讯股份有限公司 快速切换的方法、装置和系统
US8799422B1 (en) * 2010-08-16 2014-08-05 Juniper Networks, Inc. In-service configuration upgrade using virtual machine instances
US8413145B2 (en) * 2010-09-30 2013-04-02 Avaya Inc. Method and apparatus for efficient memory replication for high availability (HA) protection of a virtual machine (VM)
US8676763B2 (en) * 2011-02-08 2014-03-18 International Business Machines Corporation Remote data protection in a networked storage computing environment
US8984330B2 (en) * 2011-03-28 2015-03-17 Siemens Corporation Fault-tolerant replication architecture
US8751863B2 (en) * 2011-05-23 2014-06-10 Microsoft Corporation Implementing failover processes between storage stamps
US8930320B2 (en) * 2011-09-30 2015-01-06 Accenture Global Services Limited Distributed computing backup and recovery system
CN102546256B (zh) * 2012-01-12 2015-05-06 易云捷讯科技(北京)有限公司 用于对云计算服务进行监控的系统及方法
US9213580B2 (en) * 2012-01-27 2015-12-15 MicroTechnologies LLC Transportable private cloud computing platform and associated method of use
US9304879B2 (en) * 2012-03-12 2016-04-05 Os Nexus, Inc. High availability failover utilizing dynamic switch configuration
US8839031B2 (en) * 2012-04-24 2014-09-16 Microsoft Corporation Data consistency between virtual machines
US8966491B2 (en) * 2012-04-27 2015-02-24 Oracle International Corporation System and method for implementing NUMA-aware reader-writer locks
US8935563B1 (en) * 2012-06-15 2015-01-13 Symantec Corporation Systems and methods for facilitating substantially continuous availability of multi-tier applications within computer clusters
US9367412B2 (en) * 2012-06-25 2016-06-14 Netapp, Inc. Non-disruptive controller replacement in network storage systems
US10152398B2 (en) * 2012-08-02 2018-12-11 At&T Intellectual Property I, L.P. Pipelined data replication for disaster recovery
WO2014026387A1 (zh) * 2012-08-17 2014-02-20 华为技术有限公司 一种云环境下虚拟应用双机的切换方法、装置及系统
US20140095925A1 (en) * 2012-10-01 2014-04-03 Jason Wilson Client for controlling automatic failover from a primary to a standby server
US9378145B2 (en) * 2013-03-05 2016-06-28 Dot Hill Systems Corporation Storage controller cache synchronization method and apparatus
SG11201508407RA (en) * 2013-04-15 2015-11-27 Ashok Anand P Load balancer system and method for server/nodes in cloud environment
CN103209099B (zh) * 2013-05-03 2016-06-29 广州市成格信息技术有限公司 一种节点间的网络通信线路的自动切换保护方法
US9483558B2 (en) * 2013-05-29 2016-11-01 Commvault Systems, Inc. Assessing user performance in a community of users of data storage resources
US9176833B2 (en) 2013-07-11 2015-11-03 Globalfoundries U.S. 2 Llc Tolerating failures using concurrency in a cluster
US10789136B1 (en) * 2013-08-23 2020-09-29 Acronis International Gmbh Granular recovery using hot-plug virtual disks
US9946843B2 (en) * 2013-11-13 2018-04-17 Koninklijke Philips N.V. Clinical decision support system based triage decision making
US9348715B2 (en) 2014-03-20 2016-05-24 Netapp Inc. Storage device health status synchronization
US9582373B2 (en) * 2014-03-31 2017-02-28 Vmware, Inc. Methods and systems to hot-swap a virtual machine
US9317380B2 (en) * 2014-05-02 2016-04-19 International Business Machines Corporation Preserving management services with self-contained metadata through the disaster recovery life cycle
US20170199770A1 (en) * 2014-06-23 2017-07-13 Getclouder Ltd. Cloud hosting systems featuring scaling and load balancing with containers
US9940073B1 (en) * 2014-06-30 2018-04-10 EMC IP Holding Company LLC Method and apparatus for automated selection of a storage group for storage tiering
US9641388B2 (en) * 2014-07-29 2017-05-02 Commvault Systems, Inc. Customized deployment in information management systems
US9489270B2 (en) * 2014-07-31 2016-11-08 International Business Machines Corporation Managing backup operations from a client system to a primary server and secondary server
WO2016025321A1 (en) * 2014-08-13 2016-02-18 OneCloud Labs, Inc. Replication of virtualized infrastructure within distributed computing environments
US9417968B2 (en) * 2014-09-22 2016-08-16 Commvault Systems, Inc. Efficiently restoring execution of a backed up virtual machine based on coordination with virtual-machine-file-relocation operations
US9436555B2 (en) * 2014-09-22 2016-09-06 Commvault Systems, Inc. Efficient live-mount of a backed up virtual machine in a storage management system
WO2016071736A1 (en) * 2014-11-04 2016-05-12 Telefonaktiebolaget L M Ericsson (Publ) Network function virtualization service chaining
US9912625B2 (en) * 2014-11-18 2018-03-06 Commvault Systems, Inc. Storage and management of mail attachments
US20160142485A1 (en) * 2014-11-19 2016-05-19 Commvault Systems, Inc. Migration to cloud storage from backup
US10061664B2 (en) * 2015-01-15 2018-08-28 Cisco Technology, Inc. High availability and failover
JP6540072B2 (ja) * 2015-02-16 2019-07-10 富士通株式会社 管理装置、情報処理システム及び管理プログラム
US9747180B1 (en) * 2015-03-31 2017-08-29 EMC IP Holding Company LLC Controlling virtual endpoint failover during administrative SCSI target port disable/enable
US9800459B1 (en) * 2015-04-01 2017-10-24 EMC IP Holding Company LLC Dynamic creation, deletion, and management of SCSI target virtual endpoints
US10275328B2 (en) * 2015-04-02 2019-04-30 Vmware, Inc. Fault tolerance for hybrid cloud deployments
US10303453B2 (en) * 2015-05-08 2019-05-28 Desktop 365, LLC Method and system for managing the end to end lifecycle of the virtualization environment for an appliance
US9921764B2 (en) * 2015-06-30 2018-03-20 International Business Machines Corporation Using inactive copy relationships to resynchronize data between storages
US10423588B2 (en) * 2015-08-25 2019-09-24 International Business Machines Corporation Orchestrated disaster recovery

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01195544A (ja) * 1988-01-29 1989-08-07 Nec Corp デュプレックス構成システムのダウン監視方式
JP2005258847A (ja) * 2004-03-12 2005-09-22 Hitachi Ltd フェイルオーバクラスタシステム及びフェイルオーバ方法

Also Published As

Publication number Publication date
US20170126479A1 (en) 2017-05-04
CN108351824B (zh) 2021-07-30
WO2017075375A1 (en) 2017-05-04
EP3368985A1 (en) 2018-09-05
CN108351824A (zh) 2018-07-31
US10855515B2 (en) 2020-12-01
JP6476350B2 (ja) 2019-02-27
EP3368985B1 (en) 2019-06-19
US20210075665A1 (en) 2021-03-11

Similar Documents

Publication Publication Date Title
US11232004B2 (en) Implementing automatic switchover
JP6476350B2 (ja) コンピューティングノード間の切り替え動作を実行する方法、装置、及び媒体
US11983083B2 (en) Trust relationship migration for data mirroring
US20210176513A1 (en) Storage virtual machine relocation
US10719419B2 (en) Service processor traps for communicating storage controller failure
US10853210B2 (en) Storage device health status synchronization
US9354992B2 (en) Interconnect path failover
US9836345B2 (en) Forensics collection for failed storage controllers
US9348714B2 (en) Survival site load balancing
US10782889B2 (en) Fibre channel scale-out with physical path discovery and volume move
US9952951B2 (en) Preserving coredump data during switchover operation
US10855522B2 (en) Dual port storage device emulation

Legal Events

Date Code Title Description
A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20181002

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20181016

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181211

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190108

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190204

R150 Certificate of patent or registration of utility model

Ref document number: 6476350

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250