(58)【調査した分野】(Int.Cl.,DB名)
前記第1のコンピューティングノードは第1のクラウドレベルゾーン内にホストされ、前記第2のコンピューティングノードは前記第1のクラウドレベルゾーンと別個の第2のクラウドレベルゾーン内にホストされる、請求項1乃至5のうちいずれか1項に記載の方法。
前記第1のコンピューティングノードが動作可能ステートであると示す前記第1の動作可能ステート情報に応答して、クラウドコンピューティング環境インフラストラクチャ障害が発生したと決定するステップ、
を含む請求項1乃至6のうちいずれか1項に記載の方法。
前記第1のコンピューティングノードが動作可能ステートであると示す前記第1の動作可能ステート情報に応答して、前記ノード間通信リンクが動作不能であると決定するステップ、
を含む請求項1乃至7のうちいずれか1項に記載の方法。
前記第1のコンピューティングノード又は前記第2のコンピューティングノードのうち少なくとも1つが、前記クラウドコンピューティング環境の外部の非クラウドコンピューティング環境内にホストされる、請求項14乃至16のうちいずれか1項に記載のコンピュータプログラム。
前記第1のコンピューティングノード又は前記第2のコンピューティングノードのうち少なくとも1つが、前記クラウドコンピューティング環境の外部の非クラウドコンピューティング環境内にホストされる、請求項18乃至20のうちいずれか1項に記載のコンピューティング装置。
【発明を実施するための形態】
【0005】
次に、請求される対象事項のいくつかの例が図面を参照して説明され、図面において、同様の参照番号は一般に全体を通して同様の要素を参照するために使用される。下記の記載において、説明の目的で、請求される対象事項の理解を提供するために多数の特定の詳細が説明される。しかしながら、請求される対象事項はこれら特定の詳細なく実現され得ることが明らかであり得る。この詳細な説明内のいずれも従来技術と認められない。
【0006】
コンピューティングノード間で切り替え動作を実行するかどうかを決定する1つ以上の手法及び/又はコンピューティング装置が提供される。例えば、第1のコンピューティングノード及び第2のコンピューティングノードが、コンピューティング環境(例えば、クラスタネットワークストレージコンピューティング環境、サードパーティによりホストされたクラウドコンピューティング環境、又は任意の他のコンピューティング環境)に展開され得る。第1のコンピューティングノード及び第2のコンピューティングノードは、ノード間(internode)通信リンク(例えば、IPネットワーク)を通じて、及び/又はパートナーコンピューティングノードにより管理されたストレージを通して(例えば、第1のコンピューティングノードは、第1のコンピューティングノードにより所有されかつ第2のコンピューティングノードにより読み出すためにアクセス可能なストレージ内に記憶された動作可能ヘルス情報を記憶することができる)、動作可能ステート情報を共有することができる。
【0007】
動作可能ステート情報が、コンピューティングノードが機能しなくなった(failed)と示す場合(例えば、ハートビートのロス)、生き残りのコンピューティングノードは、切り替え動作を実行して、機能しなくなったコンピューティングノードを通してクライアントにとって前にアクセス可能であったリソースへのフェールオーバーアクセスをクライアントに提供することができる。ノード間通信リンクがダウンしている可能性があり、かつ/あるいは、クラウドコンピューティング環境インフラストラクチャ障害(failure)が、コンピューティングノードがパートナーコンピューティングノードにより所有されたストレージ内の動作可能ステート情報にアクセスすることができないという結果をもたらす可能性があるため、コンピューティングノードは、実際には機能しなくなっていないパートナーコンピューティングノードについて切り替え動作を誤って実行する可能性がある。したがって、本明細書に提供されるように、第1のコンピューティングノード及び第2のコンピューティングノードは、クラウド環境ノードステートプロバイダ(例えば、クラウド環境ノードステートプロバイダは、クラウドコンピューティング環境内のコンピューティングノードの動作可能ステートを監視することができる)、及び/又はクラウドストレージサービスを通してアクセス可能であるクラウド持続ストレージ(cloud persistent storage)(例えば、コンピューティングノードが、パートナーコンピューティングノードにとって高度にアクセス可能であるクラウド持続ストレージを通して動作可能ステート情報を記憶することができる)を通して、動作可能ステート情報を共有するように構成され得る。こうして、コンピューティングノードは、パートナーコンピューティングノードが機能しなくなった(例えば、パートナーコンピューティングノードの障害に起因したハートビートのロス)か否(例えば、ノード間通信リンクがダウンしていること及び/又はクラウドコンピューティング環境インフラストラクチャ障害などのインフラストラクチャ障害に起因したハートビートのロス)かを確実に決定することができ、これは、誤った切り替えを軽減し得る。
【0008】
コンピューティングノード間の切り替え動作を実行するかどうかを決定する文脈を提供するために、
図1は、クラスタ化されたネットワーク環境100又はネットワークストレージ環境の一実施例を示す。しかしながら、本明細書に説明される手法等は、クラスタ化ネットワーク環境100、非クラスタネットワーク環境、及び/又は様々な他のコンピューティング環境、例えば、デスクトップコンピューティング環境などにおいて実現されてよいことが十分理解され得る。すなわち、別記の特許請求の範囲を含む本開示は、本明細書に提供される例に限定されるようには意図されない。同一又は同様のコンポーネント、要素、特徴、アイテム、モジュール等が後の図面に示され、しかし前の図に関して前に論じられていた場合、後の図を説明するときに(例えば、理解の簡素さ及び容易さの目的で)同じものについての同様の(例えば、冗長の)議論が省略され得ることが十分理解されるであろう。
【0009】
図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などのクライアント装置に提供する。同様に、本明細書において別段具体的に提供されない限り、同じことが本明細書において参照されかつ/あるいは別記の図面に示される他のモジュール、要素、特徴、アイテム等に当てはまる。すなわち、本明細書に開示された特定数のコンポーネント、モジュール、要素、特徴、アイテム等は、限定的に解釈されるようには意図されない。
【0010】
さらに、クラスタ化ネットワークは、任意の特定の地理的エリアに限定されず、ローカルに及び/又はリモートにクラスタ化されてよいことが十分理解されるであろう。ゆえに、一実施例において、クラスタ化ネットワークは、複数の地理的ロケーションに位置する複数のストレージシステム及び/又はノードにわたり分散されてよく、別の実施例において、クラスタ化ネットワークは、同じ地理的ロケーションに(例えば、データストレージ装置の単一のオンサイトのラック内に)存在するデータストレージシステム(例えば、102、104)を含んでよい。
【0011】
示される例において、例えば、クライアント装置、パーソナルコンピュータ(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を介してホスト装置に要求の結果を返すことができる。
【0012】
クラスタ化されたデータストレージシステム102、104上のノード116、118は、例えば、リモートのロケーション、クラウドストレージ(例えば、ストレージエンドポイントはデータクラウド内に記憶されてもよい)等を有する企業などにデータストレージ及び管理サービスを提供するためにクラスタとして相互接続されたネットワーク又はホストノードを含むことができる。データストレージ及び管理ネットワーククラスタ環境100におけるこうしたノードは、例えば接続ポイント、再分配ポイント、又は通信エンドポイントとしてネットワークにアタッチされた装置であり得る。ノードは、ネットワーク通信チャネルを通じて情報を送信し、受信し、及び/又は転送することができてよく、これら基準のうち任意のもの又はすべてに合う任意の装置を含むことができる。ノードの一例は、ネットワークにアタッチされたデータストレージ及び管理サーバであり得、該サーバは、データストレージ及び管理システムにおけるサーバとして動作するように特に構成された汎用目的コンピュータ又はコンピューティング装置を含むことができる。
【0013】
一例において、ノード116、118などのノードの第1のクラスタ(例えば、1つ以上のストレージ装置の第1の論理グループ化を含む第1のストレージ集合体(storage aggregate)へのアクセスを提供するように構成されたストレージコントローラの第1のセット)が、第1のストレージサイトに位置してよい。例示されていないクラスタの第2のノードが、第2のストレージサイトに位置してよい(例えば、1つ以上のストレージ装置の第2の論理グループ化を含む第2のストレージ集合体へのアクセスを提供するように構成されたストレージコントローラの第2のセット)。第1のノードクラスタ及び第2のノードクラスタは、災害復旧構成に従い構成されてよく、災害ノードクラスタを含む災害ストレージサイトで災害が発生した事象において、生き残りのノードクラスタが災害ノードクラスタのストレージ装置への切り替えアクセスを提供する(例えば、第2のストレージサイトで災害が発生した事象において、第1のノードクラスタが、第2のストレージ集合体のストレージ装置への切り替えデータアクセスをクライアント装置に提供する)。
【0014】
例示的な環境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にアクセスすることができる。
【0015】
データモジュール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等が、抽象ファイルを明示的に要求するのでなくオペレーティングシステムを通してデータブロックにアクセスすることができる。
【0016】
例示的な実施例100は等しい数のネットワーク及びデータモジュールを示すが、他の実施例が異なる数のこれらモジュールを含んでよいことが十分理解されるべきである。例えば、複数のネットワーク及びデータモジュール間で1対1対応を有さないクラスタ内で相互接続された該ネットワーク及びデータモジュールがあり得る。すなわち、異なるノードが、異なる数のネットワーク及びデータモジュールを有することができ、同じノードが、データモジュールとは異なる数のネットワークモジュールを有することができる。
【0017】
さらに、ホスト装置108、110は、ネットワーキング接続112、114を通じてクラスタ内のノード116、118とネットワーク化されることができる。一例として、クラスタにネットワーク化されたそれぞれのホスト装置108、110は、クラスタ内のノード116、118のサービス(例えば、データパケットの形式における情報の交換)を要求することができ、ノード116、118は、要求されたサービスの結果をホスト装置108、110に返すことができる。一実施例において、ホスト装置108、110は、データストレージシステム102、104内のノード(例えば、ネットワークホスト116、118)に存在するネットワークモジュール120、122との間で情報を交換することができる。
【0018】
一実施例において、データストレージ装置128、130は、ボリューム(volumes)132を含み、ボリューム132は、例えば、データのファイルシステムとしてのディスクドライブ又はディスクアレイ又は他のストレージ(例えば、フラッシュ)への情報の記憶の一実現例である。ボリュームは、例えば、ディスクの一部分、ディスクの集合、又はディスクの複数部分に及ぶことができ、典型的に、ストレージシステム内のディスク空間上にファイルストレージの全体的論理配置を定義する。一実施例において、ボリュームは、記憶されたデータを、ボリューム内の階層ディレクトリ構造に存在する1つ以上のファイルとして含むことができる。
【0019】
ボリュームは、特定のストレージシステムに関連づけられ得るフォーマットで典型的に構成され、それぞれのボリュームフォーマットは、例えばボリュームがクラスタを形成する能力を提供することなどの、ボリュームに対する機能性を提供する特徴を典型的に含む。例えば、第1のストレージシステムがそのボリュームについて第1のフォーマットを利用することがあり、第2のストレージシステムはそのボリュームについて第2のフォーマットを利用することがある。
【0020】
例示的な環境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にアクセスする。
【0021】
コンピューティングノード間で切り替え動作を実行するかどうかを決定することは、クラスタ化ネットワーク環境100内(例えば、クラウドコンピューティング環境内のノード、及び/又はクラウドコンピューティング環境の外部だがクラウドコンピューティング環境への通信アクセスを有するノード)で実現され得ることが十分理解され得る。一例において、ノード116(例えば、第1のコンピューティングノード)とノード118(例えば、第2のコンピューティングノード)とがクラウドコンピューティング環境内にホストされてよい。別の例において、ノード118がクラウドコンピューティング環境への通信アクセス(例えば、クラウドストレージサービスを通してアクセス可能なクラウド持続ストレージへのアクセス)を有する場合、ノード116がクラウドコンピューティング環境内にホストされてよく、ノード118がクラウドコンピューティング環境の外部にホストされてよい。別の例において、ノード116とノード118とがクラウドコンピューティング環境の外部でホストされてよいが、クラウドコンピューティング環境への通信アクセス(例えば、クラウドストレージサービスを通してアクセス可能なクラウド持続ストレージへのアクセス)を有し得る。クラウド環境ノードステートプロバイダ、及び/又はクラウドストレージサービスを通してアクセス可能なクラウド持続ストレージが、動作可能ステート情報を確実に共有するためにノード116及びノード118により使用されてよい。こうして、コンピューティングノードは、(例えば、通信リンク障害又は動作可能ステート情報の通信をその他の方法で妨害するインフラストラクチャ問題に応答して切り替えを誤って実行することと対照的に)パートナーコンピューティングノードが機能しなくなっており、ゆえに切り替え動作が実行されるべきであるかどうかを確実に決定することができる。コンピューティングノード間で切り替え動作を実行するかどうかを決定することは、任意タイプのコンピューティング環境について及び/又は該環境の間で実現されてよく、物理装置(例えば、ノード116、ノード118等)及び/又は(例えば、クラスタ化ネットワーク環境100に関連づけられているか又は該環境100に対してリモートの)クラウドコンピューティング環境の間で移転可能(transferrable)であり得ることが十分理解され得る。
【0022】
図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などのクライアント装置に提供するストレージコントローラを含む。
【0023】
データストレージ装置234は、大容量ストレージ装置、例えば、ディスクアレイ218、220、222のディスク224、226、228などを含むことができる。本明細書に説明される手法及びシステムは、例示的な実施例により限定されないことが十分理解されるであろう。例えば、ディスク224、226、228は、任意タイプの大容量ストレージ装置を含んでよく、これらに限られないが、ディスクドライブ、フラッシュメモリ、及び、例えばデータ(D)及び/又はパリティ(P)情報を含む情報を記憶するように適合された任意の他の同様の媒体が含まれる。
【0024】
ノード202は、システムバス242により相互接続された1つ以上のプロセッサ204、メモリ206、ネットワークアダプタ210、クラスタアクセスアダプタ212、及びストレージアダプタ214を含む。ストレージシステム200は、例えば、独立(又は安価)ディスクの冗長アレイ(Redundant Array of Independent (or Inexpensive) Disks)(RAID)最適化手法を実現してアレイ内の機能しなくなったディスクのデータの再構築処理を最適化することができる、ノード202のメモリ206にインストールされたオペレーティングシステム208をさらに含む。
【0025】
オペレーティングシステム208はまた、データストレージシステムの通信と、クラスタファブリック215(例えば、
図1の106)にアタッチされているなどでクラスタ化ネットワーク内にあり得る他のデータストレージシステム間の通信とを管理することができる。ゆえに、ノード202、例えばネットワークストレージコントローラなどは、ホスト装置要求に応答して、これらホスト装置要求に従ってデータストレージ装置234(例えば、又はさらなるクラスタ化装置)上のデータを管理することができる。オペレーティングシステム208は、データストレージシステム200上の1つ以上のファイルシステムをしばしば確立することができ、ここで、ファイルシステムは、例えば、ファイル及びディレクトリの持続的階層名前空間を実現するソフトウェアコード及びデータ構造を含むことができる。一例として、新しいデータストレージ装置(図示されていない)がクラスタ化ネットワークシステムに追加されるとき、オペレーティングシステム208は、既存のディレクトリツリー内のどこに新しいデータストレージ装置に関連づけられた新しいファイルが記憶されるべきかを知らされる。これは、ファイルシステムを「マウントすること」としてしばしば参照される。
【0026】
例示的なデータストレージシステム200において、メモリ206は、関連したソフトウェアアプリケーションコード及びデータ構造を記憶するためにプロセッサ204及びアダプタ210、212、214によりアドレス指定可能なストレージロケーションを含むことができる。プロセッサ204及びアダプタ210、212、214は、例えば、ソフトウェアコードを実行しデータ構造を操作するように構成された処理要素及び/又は論理回路を含んでよい。オペレーティングシステム208は、その一部が典型的にはメモリ206に存在し処理要素により実行され、とりわけストレージシステムにより実現されたファイルサービスをサポートするストレージ動作を呼び出すことにより、ストレージシステムを機能的に編成する。本明細書に説明される手法に属するアプリケーション命令を記憶及び/又は実行するために様々なコンピュータ読取可能媒体を含む他の処理及びメモリメカニズムが使用されてよいことが当業者に明らかであろう。例えば、オペレーティングシステムはまた、1つ以上の制御ファイル(図示されていない)を利用して仮想マシンの供給を支援することができる。
【0027】
ネットワークアダプタ210は、コンピュータネットワーク216を通じてデータストレージシステム200をホスト装置205に接続するために必要な機械的、電気的、及びシグナリング回路を含み、コンピュータネットワーク216は、とりわけ、ポイントツーポイント接続又は共有媒体、例えばローカルエリアネットワークなどを含んでよい。ホスト装置205(例えば、
図1の108、110)は、アプリケーションを実行するように構成された汎用目的コンピュータであり得る。上記で説明されたように、ホスト装置205は、情報送達のクライアント/ホストモデルに従いデータストレージシステム200と対話してよい。
【0028】
ストレージアダプタ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を通じてクラスタにアタッチされた別のノードに返される)。
【0029】
一実施例において、アレイ218、220、222上の情報のストレージは、ディスク空間の全体的論理配置を定義するディスク224、226、228のクラスタを含む1つ以上のストレージ「ボリューム」230、232として実現されてよい。1つ以上のボリュームを含むディスク224、226、228は、RAIDの1つ以上のグループとして典型的に編成される。一例として、ボリューム230は、ディスクアレイ218及び220の集合体を含み、ディスクアレイ218及び220は、ディスク224及び226のクラスタを含む。
【0030】
一実施例において、ディスク224、226、228へのアクセスを容易にするために、オペレーティングシステム208は、情報をディスク上のディレクトリ及びファイルの階層構造として論理的に編成するファイルシステム(例えば、ライトエニウェア(write anywhere)ファイルシステム)を実現してよい。この実施例において、それぞれのファイルは、情報を記憶するように構成されたディスクブロックのセットとして実現されてよく、これに対し、ディレクトリは、他のファイル及びディレクトリに関する情報が記憶された特別にフォーマットされたファイルとして実現されてよい。
【0031】
このデータストレージシステム200内の基礎的な物理構成が何であれ、データが物理及び/又は仮想ボリューム内にファイルとして記憶されることができ、上記ボリュームは、ファイルシステム識別子(FSID)などのそれぞれのボリューム識別子に関連づけられることができ、上記ファイルシステム識別子は、一例において長さ32ビットであり得る。
【0032】
物理ボリュームは、そのアドレス、アドレス指定可能空間、ロケーション等が変わらない物理ストレージ装置の少なくとも一部、例えば、1つ以上のデータストレージ装置234(例えば、独立(又は安価)ディスクの冗長アレイ(RAIDシステム))のうち少なくともいくつかなどに対応する。典型的に、物理ボリュームのロケーションは、それにアクセスするために使用されるアドレス(の範囲)が一般に一定のままであるという点で、変わらない。
【0033】
対照的に、仮想ボリュームは、異なる物理ストレージ装置の全く異なる部分の集合体にわたり記憶される。仮想ボリュームは、異なる物理ストレージ装置ロケーションの異なる利用可能部分、例えば、ディスク224、226、及び/又は228の各々からのいくらかの利用可能な空間などの、集合であり得る。仮想ボリュームはいずれか1つの特定ストレージ装置に「結び付けられ」ないため、仮想ボリュームは抽象化又は仮想化のレイヤを含むと言うことができ、上記抽象化又は仮想化のレイヤは、仮想ボリュームがいくつかの観点でリサイズされ、かつ/あるいは柔軟であることを可能にすることが十分理解されるであろう。
【0034】
さらに、仮想ボリュームは、1つ以上の論理ユニット番号(LUN)238、ディレクトリ236、Qtree235、及びファイル240を含むことができる。とりわけ、これらの特徴、より詳細にはLUNは、例えば、データが記憶される全く異なるメモリロケーションが識別され、データストレージユニットとしてグループ化されることを可能にする。そのようなものとして、LUN238は、仮想ボリューム内のデータが集合体の範囲内で記憶される仮想ディスク又はドライブを構成するものとして特徴付けられ得る。例えば、LUNは、仮想ドライブとしてしばしば参照され、これらは、ボリュームの様々な部分に記憶されたデータブロックを実際には含むと同時に、汎用目的コンピュータからのハードドライブをエミュレートする。
【0035】
一実施例において、1つ以上のデータストレージ装置234が1つ以上の物理ポートを有することができ、各物理ポートはターゲットアドレス(例えば、SCSIターゲットアドレス)を割り当てられることができる。データストレージ装置に記憶されたそれぞれのボリュームを表すために、データストレージ装置上のターゲットアドレスが使用されて、1つ以上のLUN238を識別することができる。ゆえに、例えば、ノード202が、ストレージアダプタ214を通してボリューム230、232に接続するとき、ノード202とボリュームの基礎にある1つ以上のLUN238との間の接続が作成される。
【0036】
一実施例において、それぞれのターゲットアドレスは複数のLUNを識別することができ、ターゲットアドレスは複数のボリュームを表すことができる。例えば、ストレージアダプタ214内の回路及び/又はソフトウェアとして、又はメモリ206に存在しプロセッサ204により実行される実行可能コードとして実現され得るI/Oインターフェースは、LUN238を識別する1つ以上のアドレスを使用することによりボリューム230に接続することができる。
【0037】
コンピューティングノード間の切り替え動作を実行するかどうかを決定することが、データストレージシステム200について実現されてよいことが十分理解され得る。一例において、ノード202(例えば、第1のコンピューティングノード)と第2のノード(例えば、第2のコンピューティングノード)とが、データストレージシステム200に関連づけられたクラウドコンピューティング環境内にホストされてよい。別の例において、第2のノードがクラウドコンピューティング環境への通信アクセス(例えば、クラウドストレージサービスを通してアクセス可能なクラウド持続ストレージへのアクセス)を有する場合、ノード202がクラウドコンピューティング環境内にホストされてよく、第2のノードがクラウドコンピューティング環境の外部にホストされてよい。別の例において、ノード202と第2のノードとがクラウドコンピューティング環境の外部でホストされてよいが、クラウドコンピューティング環境への通信アクセス(例えば、クラウドストレージサービスを通してアクセス可能なクラウド持続ストレージへのアクセス)を有し得る。クラウド環境ノードステートプロバイダ、及び/又はクラウドストレージサービスを通してアクセス可能なクラウド持続ストレージが、動作可能ステート情報を確実に共有するためにノード202及び第2のノードにより使用されてよい。こうして、コンピューティングノードは、(例えば、通信リンク障害又は動作可能ステート情報の通信をその他の方法で妨害するインフラストラクチャ問題に応答して切り替えを誤って実行することと対照的に)パートナーコンピューティングノードが機能しなくなっており、ゆえに切り替え動作が実行されるべきであるかどうかを確実に決定することができる。コンピューティングノード間で切り替え動作を実行するかどうかを決定することは、任意タイプのコンピューティング環境について及び/又は該環境の間で実現されてよく、物理装置(例えば、ノード202、ホスト205等)及び/又は(例えば、ノード202及び/又はホスト205を含む)クラウドコンピューティング環境の間で移転可能であり得ることが十分理解され得る。
【0038】
図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を通じてサービスをクライアントに提供することができる。
【0039】
一例において、ネットワークストレージプロバイダは、第1のコンピューティングノード304及び第2のコンピューティングノード306を災害復旧パートナーとして構成してよく、一コンピューティングノードが機能しなくなる場合、生き残りのコンピューティングノードが切り替え動作を実行して、機能しなくなったコンピューティングノードにより前に所有されたリソース及び/又はストレージ装置の所有権を取得するようにし、切り替えられたリソース及びストレージ装置を使用して、機能しなくなったコンピューティングノードにより前に提供されたサービスへのフェールオーバーアクセスをクライアントに提供する。切り替え動作を実行するかどうかを決定するために使用される動作可能ステート情報を共有する一例において、第1のコンピューティングノード304及び第2のコンピューティングノード306は、ノード間通信リンク308を通じて動作可能ステート情報(例えば、ハートビート、及び/又は、コンピューティングノードが動作可能である、機能しなくなった、リブートしている、カーネルパニックモードである、比較的高いレイテンシを有しクライアント要求についていけない、等かどうかに関する指標)を共有するように構成されてよい。例えば、ノード間通信リンク308はIPネットワークを含んでよく、第1のコンピューティングノード304は、第2のコンピューティングノード306に割り当てられたIPアドレスを使用して第2のコンピューティングノード306に第1の動作可能ステート情報を送信することができる。
【0040】
切り替え動作を実行するかどうかを決定するために使用される動作可能ステート情報を共有する別の例において、第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及び/又はクラウドインフラストラクチャ接続を利用することができる。
【0041】
図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を実行するよう試みているからである。
【0042】
図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に関連づけられたストレージリソース)へのアクセスをクライアントに提供することができる。
【0043】
ノード間通信リンク408が、第1のコンピューティングノード404及び第2のコンピューティングノード406の間に確立されてよい。例えば、ノード間通信リンク408は、IPベースの通信、例えば、IPネットワークなど(例えば、コンピューティングノード間の物理リンクなどのダイレクトリンクと対照的であり、これは、コンピューティングノードが異なるデータセンタ内又はデータセンタのうち異なるロケーション内などの異なるクラウドレベルゾーン内にあり得るため、非実際的であり得る)を含んでよい。第1のコンピューティングノード404及び第2のコンピューティングノード406は、ノード間通信リンク408を通じて動作可能ステート情報(例えば、ハートビート、障害の指標、通常動作の指標等)を送信するように構成されてよい。
【0044】
一例において、第1のコンピューティングノード404は、第1のストレージ装置410内に第1の動作可能ステート情報を記憶するように構成されてよく、それにより、第2のコンピューティングノード406は、第1のクラウドインフラストラクチャ接続420を通じて第1のストレージ装置410から第1の動作可能ステート情報を読み出すことができる。第2のコンピューティングノード406は、第2のストレージ装置414内に第2の動作可能ステート情報を記憶するように構成されてよく、それにより、第1のコンピューティングノード404は、第2のクラウドインフラストラクチャ接続418を通じて第2のストレージ装置414から第2の動作可能ステート情報を読み出すことができる。
【0045】
ノード間通信リンク408を動作不能にするIPネットワーク障害、及び/又は第1のクラウドインフラストラクチャ接続420及び第2のクラウドインフラストラクチャ接続418を動作不能にするクラウドコンピューティング環境インフラストラクチャ障害が、パートナーコンピューティングノードが機能しなくなったという偽の指標(例えば、ハートビートのロス)を提供する可能性があるため、クラウド環境ノードステートプロバイダ430が利用されて、コンピューティングノードの動作可能ステートを検証することができる。したがって、第1のコンピューティングノード404及び第2のコンピューティングノード406は、クラウドコンピューティング環境400のクラウド環境ノードステートプロバイダ430に動作可能ステート情報を提供するように構成されてよい。一例において、クラウド環境ノードステートプロバイダ430は、クラウドコンピューティング環境400のクラウドプロバイダ/所有者により提供されるサービスであり得、ゆえに、コンピューティングノードが動作可能であるか否かに関して高度に利用可能及び信頼可能な情報を提供することができる。
【0046】
図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の動作不能に対応すると決定することができる。
【0047】
図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)ことが十分理解され得る。
【0048】
図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に関連づけられたストレージリソース)へのアクセスをクライアントに提供することができる。
【0049】
ノード間通信リンク508が、第1のコンピューティングノード504及び第2のコンピューティングノード506の間に確立されてよい。例えば、ノード間通信リンク508は、IPベースの通信、例えば、IPネットワークなどを含んでよい。第1のコンピューティングノード504及び第2のコンピューティングノード506は、ノード間通信リンク508を通じて動作可能ステート情報(例えば、コンピューティングノードの進捗を示す番号のシーケンスに対応するハートビート、障害の指標、通常動作の指標等)を送信するように構成されてよい。
【0050】
一例において、第1のコンピューティングノード504は、第1のストレージ装置510内に第1の動作可能ステート情報を記憶するように構成されてよく、それにより、第2のコンピューティングノード506は、第1のクラウドインフラストラクチャ接続520を通じて第1のストレージ装置510から第1の動作可能ステート情報を読み出すことができる。第2のコンピューティングノード506は、第2のストレージ装置514内に第2の動作可能ステート情報を記憶するように構成されてよく、それにより、第1のコンピューティングノード504は、第2のクラウドインフラストラクチャ接続518を通じて第2のストレージ装置514から第2の動作可能ステート情報を読み出すことができる。
【0051】
ノード間通信リンク508を動作不能にするIPネットワーク障害、及び/又は第1のクラウドインフラストラクチャ接続520及び第2のクラウドインフラストラクチャ接続518を動作不能にするクラウドコンピューティング環境インフラストラクチャ障害が、パートナーコンピューティングノードが機能しなくなったという偽の指標(例えば、ハートビートのロス)を提供する可能性があるため、クラウドストレージサービス530が利用されて、コンピューティング装置の動作可能ステートを検証することができる。したがって、第1のコンピューティングノード504及び第2のコンピューティングノード506は、クラウドコンピューティング環境500のクラウドストレージサービス530を通してアクセス可能なクラウド持続ストレージに動作可能ステート情報を記憶するように構成されてよい。一例において、クラウドストレージサービス530及びクラウド持続ストレージは、クラウドコンピューティング環境500のクラウドプロバイダ/所有者により提供され、ゆえに、コンピューティングノードが動作可能であるか否かに関して高度に利用可能及び信頼可能な情報を提供することができる。
【0052】
図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の動作不能に対応すると決定することができる。
【0053】
図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)ことが十分理解され得る。
【0054】
コンピューティングノード間の切り替え動作を実行するかどうかを決定する一実施例が、
図6の例示的な方法600により示される。602において、方法600は開始する。604において、ノード間通信リンクが、クラウドコンピューティング環境内にホストされた第1のコンピューティングノードと第2のコンピューティングノードとの間に確立される。第1のコンピューティングノードは、クラウドコンピューティング環境内の第1のリソースセットへのアクセスをクライアントに提供するように構成される。第2のコンピューティングノードは、クラウドコンピューティング環境内の第2のリソースセットへのアクセスをクライアントに提供するように構成される。606において、第1のコンピューティングノード及び第2のコンピューティングノードは、クラウドコンピューティング環境のクラウド環境ノードステートプロバイダに動作可能ステート情報を提供するように構成される。
【0055】
ノード間通信リンクを通じての通信のロスを識別したことに応答して、クラウド環境ノードステートプロバイダは、608において、第1のコンピューティングノードの第1の動作可能ステート情報について問い合わせられてよい。610において、第1のコンピューティングノードの障害を示す第1の動作可能ステート情報に応答して、切り替え動作が、第2のコンピューティングノードが第1のコンピューティングノードの障害復旧パートナーであることに基づき、第1のコンピューティングノードを通してクライアントにとって前にアクセス可能であった第1のリソースセットへのフェールオーバーアクセスをクライアントに提供するために第1のコンピューティングノードから第2のコンピューティングノードに実行されてよい。612において、方法600は終了する。
【0056】
コンピューティングノード間の切り替え動作を実行するかどうかを決定する一実施例が、
図7の例示的な方法700により示される。702において、方法700は開始する。704において、ノード間通信リンクが、第1のコンピューティングノードと第2のコンピューティングノードとの間に確立される。一例において、第1のコンピューティングノード及び第2のコンピューティングノードは、クラウドコンピューティング環境内にホストされてよい。別の例において、第1のコンピューティングノード及び第2のコンピューティングノードは、非クラウドコンピューティング環境(例えば、クラスタネットワークストレージ環境)内にホストされてよく、しかしクラウドコンピューティング環境への通信アクセスを有し得る。別の例において、第1のコンピューティングノードはクラウドコンピューティング環境内にホストされてよく、第2のコンピューティングノードは非クラウドコンピューティング環境内にホストされてよく、第2のコンピューティングノードは、クラウドコンピューティング環境への通信アクセスを有する。第1のコンピューティングノードは、第1のリソースセットへのアクセスをクライアントに提供するように構成される。第2のコンピューティングノードは、第2のリソースセットへのアクセスをクライアントに提供するように構成される。706において、第1のコンピューティングノード及び第2のコンピューティングノードは、クラウドコンピューティング環境のクラウドストレージサービスを通してアクセス可能なクラウド持続ストレージに動作可能ステート情報を記憶するように構成される。
【0057】
ノード間通信リンクを通じての通信のロスを識別したことに応答して、クラウドストレージサービスは、708において、第1のコンピューティングノードの第1の動作可能ステート情報について問い合わせられてよい。710において、第1のコンピューティングノードの障害を示す第1の動作可能ステート情報に応答して、切り替え動作が、第2のコンピューティングノードが第1のコンピューティングノードの障害復旧パートナーであることに基づき、第1のコンピューティングノードを通してクライアントにとって前にアクセス可能であった第1のリソースセットへのフェールオーバーアクセスをクライアントに提供するために第1のコンピューティングノードから第2のコンピューティングノードに実行されてよい。712において、方法700は終了する。
【0058】
さらに別の実施例には、本明細書に提示される手法の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のうち少なくともいくつかなどを実現するように構成される。多くのこうしたコンピュータ読取可能媒体が、本明細書に提示される手法に従い動作するように企図される。
【0059】
本明細書に説明される処理、アーキテクチャ、及び/又は手順は、ハードウェア、ファームウェア、及び/又はソフトウェアにおいて実現できることが十分理解されるであろう。さらに、本明細書に説明される対策は、ストレージシステムとして具現化され又はストレージシステムを含み、スタンドアロンコンピュータ又はその一部を含む、任意タイプの特別目的コンピュータ(例えば、ファイルホスト、ストレージサーバ、及び/又はストレージ供給アプライアンス)及び/又は汎用目的コンピュータに適用されてよいことが十分理解されるであろう。さらに、本明細書における教示は、様々なストレージシステムアーキテクチャに対して構成でき、これらに限られないが、ネットワークアタッチトストレージ環境及び/又はストレージエリアネットワーク、並びにクライアント又はホストコンピュータに直接アタッチされたディスクアセンブリが含まれる。ストレージシステムは、したがって、ストレージ機能を実行するように構成され他の機器又はシステムに関連づけられた任意のサブシステムに追加でこうした配置を含むように広く取られるべきである。
【0060】
いくつかの実施例において、本開示において説明及び/又は例示された方法は、全体的又は部分的にコンピュータ読取可能媒体上に実現されてよい。コンピュータ読取可能媒体は、本明細書に提示される方法の1つ以上を実現するように構成されたプロセッサ実行可能命令を含むことができ、コンピュータシステムによりその後読み出せるこのデータを記憶する任意のメカニズムを含んでよい。コンピュータ読取可能媒体の例には、(ハード)ドライブ(例えば、ネットワークアタッチトストレージ(NAS)を介してアクセス可能)、ストレージエリアネットワーク(SAN)、揮発及び不揮発メモリ、例えば、読取専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、EEPROM、及び/又はフラッシュメモリ、CD‐ROM、CD‐R、CD‐RW、DVD、カセット、磁気テープ、磁気ディスクストレージ、光学又は非光学データストレージ装置、及び/又はデータを記憶するために使用できる任意の他の媒体が含まれる。
【0061】
対象事項が構造的特徴又は方法論動作に固有の言語で説明されたが、別記の特許請求の範囲に定義される対象事項は必ずしも上記で説明された特定の特徴又は動作に限定されないことが理解されるべきである。むしろ、上記で説明された特定の特徴及び動作は、請求項のうち少なくともいくつかを実現する例示的な形式として開示される。
【0062】
様々な実施例動作が本明細書において提供される。動作のうちいくつか又はすべてが説明された順序は、これら動作が必ず順序依存であることを示すようにみなされるべきではない。代替的な順序付けが、本説明の恩恵を考慮して十分理解されるであろう。さらに、すべての動作が必ずしも本明細書に提供された各実施例に存在するわけではないことが理解されるであろう。また、いくつかの実施例においてすべての動作が必要であるわけではないことが理解されるであろう。
【0063】
さらに、請求される対象事項は、コンピュータを制御して開示された対象事項を実現するためのソフトウェア、ファームウェア、ハードウェア、又はこれらの任意の組み合わせを生み出すように標準のアプリケーション又はエンジニアリング手法を用いて方法、装置、又は製造品として実現される。本明細書において用いられるときの用語「製造品」は、任意のコンピュータ読取可能装置、キャリア、又は媒体からアクセス可能なコンピュータアプリケーションを包含するように意図される。当然ながら、請求される対象事項の範囲及び主旨から逸脱することなくこの構成に対して多くの変更が行われてよい。
【0064】
本出願において用いられるとき、用語「コンポーネント」、「モジュール」、「システム」、「インターフェース」などは一般に、コンピュータ関連エンティティ、ハードウェア、ハードウェア及びソフトウェアの組み合わせ、ソフトウェア、又は実行中のソフトウェアを参照するように意図される。例えば、コンポーネントが、プロセッサ上で実行するプロセス、プロセッサ、オブジェクト、実行ファイル、実行のスレッド、アプリケーション、又はコンピュータを含む。例示として、コントローラ上で実行するアプリケーションとコントローラとの双方がコンポーネントであり得る。実行のプロセス又はスレッド内に存在する1つ以上のコンポーネントと一コンポーネントとが、1つのコンピュータ上に局所化されてもよく、あるいは2つ以上のコンピュータ間に分散されてもよい。
【0065】
さらに、「例示的」は本明細書において、必ずしも利点としてでなく、例、事例、例示等の役割を果たすことを意味するために用いられる。本出願において用いられるとき、「又は」は、排他的な「又は」でなく包含的な「又は」を意味することが意図される。さらに、本出願において用いられる一の(“a”、“an”)は一般に、単数形に向けられるように別段指定されるか又は文脈から明らかかでない限り、「1つ以上」を意味するようにみなされるべきである。また、A及びBのうち少なくとも1つ及び/又は同様のものは一般に、A、又はB、及び/又はA及びBの双方を意味する。さらに、「含める」、「有している」、「有する」、「備える」、又はこれらの変形が用いられる範囲で、こうした用語は、用語「含む」と同様に包含的であることが意図される。
【0066】
請求される対象事項の範囲及び主旨から逸脱することなく多くの変更が本開示に対して行われてよい。別段指定されない限り、「第1の」、「第2の」などは、時間的態様、空間的態様、順序付け等を示すようには意図されない。むしろ、こうした用語は、特徴、要素、アイテム等のための、識別子、名前等として専ら用いられる。例えば、第1の情報セット及び第2の情報セットは一般に、情報セットA及び情報セットB、又は2つの異なる若しくは2つの同一の情報セット、又は一の同じ情報セットに対応する。
【0067】
また、本開示は1つ以上の実現例に関して図示され説明されたが、本明細書及び添付図面を読んで理解した当業者は均等的な修正及び変更に気づくであろう。本開示は、すべてのこうした変更及び修正を含み、下記の特許請求の範囲によってのみ限定される。特に、上記で説明されたコンポーネント(例えば、要素、リソース等)により実行される様々な機能に関し、こうしたコンポーネントを説明するために用いられる用語は、別段示されない限り、開示された構造に対して構造的に均等でないとしても、(例えば、機能的に均等である)説明されたコンポーネントの指定された機能を実行する任意のコンポーネントに対応することが意図される。さらに、開示の特定の特徴がいくつかの実現例のうち1つのみに関して開示されている可能性があるが、こうした特徴は、所望され得る他の実現例の1つ以上の他の特徴、及び任意の所与の又は特定の適用のための利点と組み合わせられてよい。