JP2016526229A - クラスタにおけるストレージ防御の分散 - Google Patents

クラスタにおけるストレージ防御の分散 Download PDF

Info

Publication number
JP2016526229A
JP2016526229A JP2016516710A JP2016516710A JP2016526229A JP 2016526229 A JP2016526229 A JP 2016526229A JP 2016516710 A JP2016516710 A JP 2016516710A JP 2016516710 A JP2016516710 A JP 2016516710A JP 2016526229 A JP2016526229 A JP 2016526229A
Authority
JP
Japan
Prior art keywords
node
storage device
cluster
registration
registration table
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
JP2016516710A
Other languages
English (en)
Other versions
JP6382958B2 (ja
JP2016526229A5 (ja
Inventor
クズネトソフ,ヴャチェスラフ
シャンカー,ヴィノッド・アール
ダマト,アンドレア
ディオン,デーヴィッド・アレン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2016526229A publication Critical patent/JP2016526229A/ja
Publication of JP2016526229A5 publication Critical patent/JP2016526229A5/ja
Application granted granted Critical
Publication of JP6382958B2 publication Critical patent/JP6382958B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • G06F3/0622Securing storage systems in relation to access
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0632Configuration or reconfiguration of storage systems by initialisation or re-initialisation of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0637Permissions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • 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]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Abstract

諸実施形態が、ストレージデバイスへのアクセスを可能にするための方法およびシステムを提供する。具体的には、ノードは、ストレージデバイスへの読取り/書込みアクセスできる加入承認をクラスタに要求することができる。ストレージデバイスへのアクセスを求めるノードは、まず、クラスタ内の他のノードから同意が得られなくてはならない。要求の一部として、ストレージデバイスへのアクセスを求めるノードは、登録キーをストレージデバイスに送信する。登録タイマの期限切れと同時に、ストレージデバイスへのアクセスを求めるノードは、ストレージデバイスから登録テーブルを受信し、その登録キーが登録テーブルに記憶されているかどうかを決定する。登録キーが登録テーブルに記憶されている場合、ノードは、クラスタにおいて受け付けられており、結果として、ストレージデバイスへの読取り/書込みアクセスが付与されている。

Description

[0001]ノードのクラスタがストレージデバイスにアクセスできるという通常の共有ストレージ状況では、クラスタ内の少なくとも1つのノードが、ストレージデバイスに接続される。結果として、ストレージデバイスに接続されているノードは、ストレージデバイスの防御の対処を担う。しかしながら、クラスタが複数のストレージデバイスにアクセスできる状況では、クラスタ内の単一のノードを各ストレージデバイスに接続することはできない。結果として、ストレージデバイスの一部は、保護されない場合がある。
[0002]これらおよび他の概括的考慮事項に関して、諸実施形態は作成されている。また、比較的具体的な問題を論じているが、諸実施形態は、この背景技術で特定された具体的な問題を解決することに限定されるべきでないことを理解されたい。
[0003]この概要は、「発明を実施するための形態」の項でさらに後述する概念選択を簡略化された形態で紹介するために提供される。この概要は、特許請求される主題の主要な特徴または本質的な特徴を特定するように意図するものでも、特許請求される主題の範囲を決定する際の助けとして使用すべきように意図するものでもない。
[0004]本開示の実施形態は、ストレージデバイスへのアクセスを可能にし、クラスタ内の様々なノードによってアクセス可能な1つまたは複数のストレージデバイスを保護するための方法およびシステムを提供する。具体的には、1つまたは複数の実施形態は、ノードがいかにクラスタに加入承認され得、それによって、ノードのクラスタ内の少なくとも1つのノードに接続されているストレージデバイスへの読取り/書込みアクセスを取得することができるかについて記載する。加えて、1つまたは複数の実施形態は、ノードがクラスタと関連する登録テーブルを監視し、認識されていないノードからのエントリを除去することが可能であることを提供する。除去されたそれらのノードに関しては、ノードは、クラスタに対する再承認を求めるために、登録テーブルに再登録しようと試みることができる。
[0005]以下に説明されるように、ストレージデバイスへのアクセスを求めるノードは、クラスタ通信プトロコルを使用して、クラスタ内に入る。ノードは、一旦、クラスタに加入承認されると、クラスタによって利用される1つまたは複数のストレージデバイスへのアクセスを得る資格を有することができる。ストレージデバイスへのアクセスを得るために、ストレージデバイスへのアクセスを求めるノードは、ストレージデバイスに登録キーを送信する。ストレージデバイスに登録後、ノードは、登録タイマを設定する。諸実施形態では、登録タイマは、要求されたアクセスがストレージデバイスへのアクセスを求めるノードに付与されるべきであるかどうかをクラスタ内の各ノードが決定する機会を得るその間の時間期間に相当する。登録タイマの期限切れと同時に、ストレージデバイスへのアクセスを求めるノードは、ストレージデバイスから登録テーブルを受信する。一旦、登録テーブルが受信されると、ノードは、その登録キーが登録テーブルに記憶されているかどうかを決定する。登録キーが登録テーブルに記憶されている場合、ノードは、ストレージデバイスへのアクセスが許可される。より具体的には、ノードには、ストレージデバイスへの書込みアクセスが付与される。
[0006]諸実施形態は、コンピュータ処理、コンピューティングシステムとして、またはコンピュータプログラム製品もしくはコンピュータ可読媒体などの製造品として実装可能である。コンピュータプログラム製品は、コンピュータシステムによって読取り可能で、コンピュータ処理を実行するためのコンピュータプログラム命令を符号化した、コンピュータストレージ媒体であってよい。コンピュータプログラム製品はまた、コンピューティングシステムによって読取り可能で、コンピュータ処理を実行するためのコンピュータプログラム命令を符号化した、搬送波上の伝播信号であってもよい。
[0007]限定的でなく、包括的でない実施形態は、以下の図を参照して説明される。
[0008]本開示の1つまたは複数の実施形態による、クラスタ内の複数のノードが、それぞれのストレージデバイスに接続されているシステムを示す図である。 [0009]本開示の1つまたは複数の実施形態による、クラスタにおけるメンバシップを要求するための方法を示す図である。 [0010]本開示の1つまたは複数の実施形態による、ノードのクラスタと関連するストレージデバイスへのアクセスを決定するための方法を示す図である。 [0011]本開示の1つまたは複数の実施形態による、クラスタにおける加入再承認を要求するための方法を示す図である。 [0012]本開示の1つまたは複数の実施形態による、クラスタ内の様々なノードがいかにして物理的ストレージデバイスに接続可能であるかを示すブロック図である。 [0013]本開示の1つまたは複数の実施形態とともに使用可能なコンピューティングデバイスの例示的な物理的構成要素を示すブロック図である。 [0014]本開示の1つまたは複数の実施形態とともに使用可能なモバイルコンピューティングデバイスの簡略化されたブロック図である。 本開示の1つまたは複数の実施形態とともに使用可能なモバイルコンピューティングデバイスの簡略化されたブロック図である。 [0015]本開示の1つまたは複数の実施形態とともに使用可能な分散されたコンピューティングシステムの簡略化されたブロック図である。
[0016]様々な実施形態が、その一部を成し、具体的な例示的実施形態を示す添付の図面を参照して、より十分に後述される。しかしながら、諸実施形態は、多数の種々の形態で実装可能であり、本明細書に示される実施形態に限定されるものと見なすべきでなく、そうではなくて、これらの実施形態は、本開示が、徹底的で完全になるように、および当業者に対して実施形態の範囲を十分に伝えることになるように提供される。諸実施形態は、方法、システム、またはデバイスとして実践可能である。したがって、実施形態は、ハードウェアの実装形態、全面的にソフトウェアの実装形態、またはソフトウェアの態様とハードウェアの態様とを組み合わせた実装形態の形態を取ることができる。そのため、以下の詳細な説明は、限定する意味で解釈すべきではない。
[0017]図1は、本開示の1つまたは複数の実施形態による、クラスタ102内の複数のノードが、それぞれのストレージデバイスに接続されているシステム100を示している。図1に示すように、クラスタ102は、複数のノード102A〜102Dを含むことができる。4つのノードが示されているが、クラスタ102が、4つより多いノード、または4つより少ないノードを有する場合があることが企図される。特定の実施形態では、ノードが、例えば、パーソナルコンピュータ、タブレット、ラップトップ、スマートフォン、およびパーソナルデジタルアシスタントなど、コンピューティングデバイスであってよい。他の実施形態では、ノードが、サーバコンピューティングデバイスであってもよい。
[0018]図1はまた、クラスタ102内の各ノードが、1つまたは複数のストレージデバイスに接続されていることを示している。特定の実施形態では、ストレージデバイスは、ダイレクトアタッチドストレージデバイス(すなわち、ホストシステムまたはホストデバイスに直接、接続されているストレージデバイス)とすることができる。また、ストレージデバイスが、1つまたは複数のパスを使用して、クラスタ内のいくつかのノードによってアクセス可能であることも企図される。例えば、1つまたは複数のノードは、ストレージデバイスに物理的に接続可能である一方、クラスタ内の他のノードは、リモートパスを使用して、ストレージデバイスに接続することができる。加えて、単一のノードが、様々なストレージデバイスに対する複数の物理的接続と、様々なストレージデバイスに対する1つまたは複数のリモート接続とを有することができる。また、クラスタ内の各ノードは、クラスタ内の他のノードのそれぞれの活動および接続をビューでき得ることが企図される。つまり、システム100は、一部のストレージデバイスが、一部のノードにとって利用可能である一方、他のストレージデバイスは、それらのノードにとって利用できないという点で非対称とすることができる。
[0019]例えば、図1に示すように、ノード102Aとノード102Bは、ストレージデバイス104に接続され、ノード102Cは、ストレージデバイス104とストレージデバイス106に接続され、ノード102Dは、ストレージデバイス106とストレージデバイス108に接続されている。特定の実施形態では、ストレージデバイス104〜108は、ストレージプールを備える。ストレージプール内の各ストレージデバイスにアクセスできる単一のノードがクラスタ102内に存在しないとき、クラスタ102内の各ノードは、防御アルゴリズムを動作させて、確実に、クラスタの一部であるノードだけがストレージデバイスに読取り/書込みアクセスできるようにする役割を担う。したがって、クラスタ102内の各ノードは、それらが、ストレージプールにおいて接続されているストレージデバイスを同時に保護する。
[0020]図1に戻って参照すると、ノード102A、102B、および102Cのそれぞれは、ストレージデバイス104に接続されている。論じたように、ノードのそれぞれは、ストレージデバイス104への物理的接続、またはリモート接続(すなわち、ストレージデバイス104への物理的接続を有するノードを通じたストレージデバイス104への接続)を有することができる。ノード102A、102B、および102Cは、ストレージデバイス104に接続されているので、各ノードは、ストレージデバイス104に読取り/書込みアクセスできる。さらには、クラスタ102内のノード102A、102B、および102Cのそれぞれは、クラスタ102内の他のノードの存在を検出し、クラスタ内の他のノードのそれぞれの活動を決定することができる。
[0021]諸実施形態では、特定のストレージデバイスに対する権利は、永続的な予約(persistent reservation)によって決定される。つまり、例えば、ストレージデバイス104などのストレージデバイスは、オフラインであるときでも、または再起動したときでも、特定のノードの予約を維持する。議論を進めるために、特定のノードの予約は、あるノードがある特定のストレージデバイスを予約したときに行われ、別の認可されていないノードがそのストレージデバイスにアクセスするのを防ぐ。
[0022]上記の例に戻って参照すると、ノード102A、102B、および102Cのそれぞれは、クラスタ102の一部であるという理由から、ストレージデバイス104に読取り/書込みアクセスできる。下記に詳細に説明されることになるが、クラスタ102内の各ノードは、時間tにおいて防御アルゴリズムを動作させて、クラスタ102内の他のいずれのノードも、(i)クラスタ内の他のノードに対する接続性か、または(ii)ストレージデバイス104に対する接続性を失っているかどうかを決定する。
[0023]例えば、ノード102Aが、ノード102Bと102Cに対する接続性、またはストレージデバイス104に対する接続性を失う場合、ノード102Aはもはや、ストレージデバイス104に(少なくとも)書込みアクセスできない、したがって、ストレージデバイスへのアクセスが禁止されるべきであることを、ノード102Bまたはノード102Cは独立に決定する。接続が失われている場合、ノード102Bおよび102Cは、ノード102Aのワークロードを取り、また、ストレージデバイスへの書込みをノード102Aに許可することにより、ストレージデバイス104上のデータを破損させる可能性があると、ノード102Aがもはや、ストレージデバイス104への書込みを確実にできないようにするステップを取る。ノード102Aは、ノード102Bと102Cに対する接続性を失っている場合はあるものの、ストレージデバイス104に対する接続性をなおも有することは可能であることが企図される。同様に、ノード102Aは、ストレージデバイス104に対する接続性を失った場合であっても、なおもノード102Bおよび/またはノード102Cに接続可能であることが企図される。
[0024]上記の例に戻ると、ノード102Aがストレージデバイス104に書き込むことを禁止するためには、ノード102Bまたは102Cは、ノード102Aをノード登録テーブルから抹消する要求をストレージデバイス104に送信する。より具体的には、要求は、ノード102Aと関連する登録キーをノード登録テーブルから抹消するように、ストレージデバイスに送信される。結果として、ストレージデバイス104はもはや、ノード102Aと関連する物理パス、またはリモートパスから書込みコマンドを受け付けなくなる。特定の実施形態では、ノード102Aは、ストレージデバイス104に書込みアクセスできなくなるものの、なおもストレージデバイス104への読取りアクセスはできることになる。
[0025]特定の実施形態では、ノード102Bまたは102Cはいずれも、互いに独立に抹消要求を送信することができる。別の実施形態では、クラスタのノードは、特定のノードが抹消されるべきであるかどうかに関して合意に達するように求められる場合がある。さらなる別の実施形態では、ノードがクラスタから除去されるべきであることをノード自体が決定することができる。例えば、ノード102Aは、ノード102Aが、他のノードのうちの1つに対する接続、またはストレージデバイス104に対する接続を失っていると決定する場合、それ自体からストレージデバイスへの1つまたは複数のパスを除去し、あるいはノード登録テーブルからその登録キーを除去するようにストレージデバイス104に命令することができる。
[0026]ノード登録テーブルを参照すると、特定の実施形態では、ノード登録テーブルは、ストレージデバイス104によって維持され、ストレージデバイス104に対して書込みアクセスできるノードをリストする。諸実施形態では、ノード登録テーブルは、ストレージデバイスに対して書込みアクセスできるノードごとに登録キーを含む。特定の実施形態では、登録キーは、以下の形式、すなわち、(i)(クラスタ内のすべてのノードについて同じである)クラスタグローバル一意識別子の32ビットハッシュ、(ii)8ビットキーリビジョン(key revision)、(iii)8ビットノード番号、および(iv)16ビットシグネチャを有する64ビット整数を含む。登録キーの具体的なサイズおよび構成が示されているが、登録キーは、登録キーが各ノードに固有である限り、任意の数のビットを有しても、また様々な構成を有してもよいことが企図される。
[0027]以下により詳細に説明されることになるように、ノードは、一旦、抹消されると、クラスタへの加入再承認を要求することができる。加入再承認を要求するために、抹消されたノードは、更新済みの登録キーをストレージデバイスに送信することができる。一旦、ノードがストレージデバイスに再登録されると、クラスタ内の他のノードのそれぞれは、ノードがクラスタに加入再承認されるべきであるかどうかに関しての決定を行う。クラスタ内のノードの決定に基づいて、加入再承認を求めるノードには、加入再承認が付与され得る、または加入再承認が拒否され得る。諸実施形態では、クラスタ内のノードは、加入再承認を求めるノードの接続速度、加入再承認を求めるノードの信頼度、および加入再承認を求めるノードが、ストレージプール内の他のストレージデバイスに対してできるアクセスなどを含む任意の数の要因に基づいて、その決定を行うことができる。
[0028]図2は、本開示の1つまたは複数の実施形態による、クラスタにおけるメンバシップを要求するための方法200を示している。特定の実施形態では、方法200は、図1のクラスタ102などのクラスタにおけるメンバシップを要求するノードによって使用され得る。上記に論じたように、ノードは、一旦、クラスタに加入承認されると、その特定のストレージデバイスに対して読取り/書込みアクセスでき得る。
[0029]具体的には、加入するノードは、アクティブなクラスタへの加入承認を得るために、クラスタ通信プロトコルを使用して他のノードと通信しようと試みることができる。この場合、加入するノードは、一旦、アクティブ状態に入ると、方法200を実行して、ストレージへのアクセスを得ることになる。加入するノードが、クラスタプロトコルを介して、他の加入するノード、またはアクティブなノードと通信するのに失敗し、アクティブなクラスタは存在しない場合もあり得ると考える場合、加入するノードは、方法200を実行して、ストレージへのアクセスを得て、したがって、第1のアクティブなノードになることができる。議論を進めるために、ノードは、クラスタへのアクセスを要求し、加入承認を得るとき、アクティブなノードとして、またはアクティブ状態に入っていると見られる。例えば、クラスタ通信プロトコルを動作中であり、現在、クラスタメンバシップに参加中であるすべてのノードは、アクティブなノードと見なされる。加えて、クラスタと関連する1つまたは複数のストレージデバイスにアクセスできるノードは、ストレージノードと見なされる。諸実施形態では、ストレージノードは、アクティブなノードセットのサブセットである。
[0030]図2に示すように、方法200は、ノードが、クラスタ通信プロトコルを使用して、クラスタに加入承認された後に開始する。一旦、クラスタに加入承認されると、1つまたは複数の実施形態は、登録キーを使用してストレージデバイスに登録すること(210)によって、ノードが、例えば、ストレージデバイス104(図1)など、クラスタと関連する1つまたは複数のストレージデバイスにアクセスするように求めることを実現する。論じたように、登録キーは、上記に論じた様々な構成要素を有する64ビット整数を含むことができる。
[0031]一旦、登録キーがストレージデバイスに送信されると、フローは動作220に進み、ここで、登録タイマが設定される。特定の実施形態では、この登録タイマは、ストレージデバイスへのアクセス、またはストレージプールへのアクセスを要求しているノードによって維持され得る。しかしながら、ストレージデバイスまたはクラスタ内の別のノードもまた、登録タイマを維持することが可能であり得ることが企図される。諸実施形態では、登録タイマの長さは、時間期間tに相当する。特定の実施形態では、時間期間tは、3秒である。より具体的には、時間期間tは、クラスタ内の他のいずれのノードも、(CPUロード、およびI/O待ち時間などに起因して生じ得るいずれの遅延も考慮して)3秒毎に行われるべきスクラブを行うための時間に相当する。
[0032]タイマの期限切れと同時に、フローは動作230に進み、ここで、ノード登録テーブルは、ストレージデバイスから読み取られる。上記に論じたように、ノード登録テーブルは、ストレージデバイスによって(またはストレージプール内の少なくとも1つのストレージデバイスによって)維持され、クラスタ内のあらゆるノードと関連する各登録キーのリストを含んでいる。
[0033]一旦、登録テーブルが受信され、読み取られると、フローは動作240に進み、ここで、ノードの登録キーがノード登録テーブルに含まれているかどうかが決定される。ノードの登録キーがノード登録テーブルに含まれている場合、クラスタ内のノードのそれぞれは、防御アルゴリズムを動作させており、ストレージデバイスは、ストレージデバイスへのアクセスを求めるノードの要求を受け付けている。結果として、フローは動作250に進み、ここで、ノードは、ストレージデバイスにアクセスするように、より具体的には、ストレージデバイスに書込みアクセスできるように許可される。
[0034]しかしながら、要求するノードの登録キーが、ノード登録テーブル内に存在しないことが動作240で決定される場合、フローは動作210に戻るように進み、ノードは、ストレージデバイスに登録しようと2回目の試みを行う。方法は、繰り返し、ストレージデバイスへのアクセスを要求するノードは、再度、登録テーブルを要求し、読み取って、その登録キーがノード登録テーブルに記憶されているかどうかを決定する。
[0035]図3は、本開示の1つまたは複数の実施形態による、ノードのクラスタと関連するストレージデバイスへのアクセスを決定するための方法300を示している。特定の実施形態では、方法300は、アクティブなノードとして見られるクラスタ内の各ノード(すなわち、クラスタ通信プロトコルを動作中であり、現在、クラスタメンバシップに加入中であるすべてのノード)によって行われる。方法300はまた、ストレージノードと見なされるノード(すなわち、クラスタと関連する1つまたは複数のストレージデバイスにアクセスできるいずれのノード)によっても行われ得る。
[0036]方法300は、ノードが、ノード登録テーブルからの登録キーを「スクラブする(scrub)」(310)ときに開始する。具体的には、ノードは、アクティブなクラスタの一部ではない他のノードを探す。登録キーがディスク登録テーブルからスクラブされるとき、スクラブされた登録キーと関連するノードはもはや、クラスタと関連する特定のストレージデバイスまたはストレージプールに、(少なくとも)書込みアクセスできない。特定の実施形態では、クラスタ内の1つのノードが、クラスタ内の別のノードはもはや、特定のストレージデバイスまたはストレージプールに書込みアクセスできないはずであると考えるとき、登録キーがスクラブされる。これは、ノードがクラスタ内の別のノードへの接続を失うこと、ノードがクラスタからそれ自体を除去すること、またはノードからストレージデバイスへの接続を失うことのうちの1つの結果とすることができる。ノードが、それ自体をクラスタから除去している状況では、そのノードは、その登録キーがノード登録テーブルから除去されるべきであるということを示す要求をストレージデバイスに送信することができる。別の実施形態では、クラスタ内の他のノードのうちの1つは、スクラビング処理中、ノードがクラスタから抹消される(すなわち、除去される)ことを要求することができる。特定の実施形態では、ノードがクラスタから抹消される場合、他のノードは、除去されたノードからのコマンドがストレージデバイスに達するのを防ぐように構成可能である。
[0037]図3に示すように、スクラビング処理は、様々なサブ動作を有する。スクラビング処理は、サブ動作311で開始し、ここで、ノードは、ストレージデバイスによって維持されるノード登録テーブルを読み取る。上記に論じたように、ノード登録テーブルは、クラスタ内の各ノードと関連する登録キーすべてのリストを含んでいる。
[0038]次いで、フローはサブ動作312に進み、ここで、クラスタ内のアクティブなメンバシップを有していない1つまたは複数のノードが、クラスタから抹消される。諸実施形態では、クラスタ内の各ノードは、クラスタ内の他のあらゆるノードによってビューでき、リモート接続、または物理接続のいずれかによって、1つまたは複数のストレージデバイスに接続され得る。クラスタ内の各ノードが、クラスタ内の他のあらゆるノードのビューを有すると、ノード登録テーブルを読取り中であるノードは、クラスタ内のどのノードが、ノード登録テーブル内の関連登録キー有しているのかを決定することができる。したがって、ノードは、ストレージデバイスから受信した登録テーブルをスクラブする。登録キーはテーブル内にあるが、ノードがアクティブでない場合、ノードは抹消される。
[0039]特定の実施形態では、ノードは、クラスタ内の複数のノードが類似の決定(すなわち、抹消されようとしているノードはノード登録テーブルに登録キーを有していない)に達するまで、抹消され得ない。他の実施形態では、抹消されるべきノードはノード登録テーブルに関連登録キーを有していないという決定に単一のノードが達するとき、ノードが、抹消され得る。
[0040]一旦、ノードが抹消されるように、要求が送信されると、アルゴリズムを動作させるノードは、ノードが成功裏に抹消されたかどうかを決定する(313)。ノードが成功裏に抹消されなかった場合、アルゴリズムを動作させるノードは、自己チェックを行って、それ自体の登録キーがノード登録テーブル内に存在するかどうかを決定する。それ自体の登録キーがノード登録テーブル内に存在しない場合、フローはサブ動作314に進み、ノードは、「ゲスト状態(guest state)」に入り、1つまたは複数のクラスタプロトコルを使用して、クラスタへの加入再承認を求める。ノードが成功裏に抹消された場合、フローは動作315に進み、ストレージデバイスがまだ予約されていない場合、ノードは、ストレージデバイスを予約する。つまり、ノードは、ストレージデバイスの所有権を取り、次いで、このストレージデバイスへのアクセスを、同じクラスタ内にある他のノードと共有する。
[0041]ノード登録テーブル内の登録キーがスクラブ済みである場合、フローは動作32に進み、ここで、第2のタイマが設定される。諸実施形態では、第2のタイマは、図2で論じた登録タイマに比例する。例えば、スクラビングアルゴリズムは、すべてのノードにおいて並行して動作する(例えば、各ノードは、すべての他のノードと独立に3秒毎にキーをスクラブする。特定の実施形態では、スクラビングアルゴリズムは、別のノードもやはり、登録テーブルをスクラブしているかどうか、またはノードのうちの1つがストレージへのその接続を失っており、そのため、登録テーブルをスクラブすることができないかどうかを1つのノードが信頼可能に見分けることができない可能性があるという理由から、並行して動作する。
[0042]ノードは、クラスタに加入するとき、クラスタに登録し、加入承認されるようになるのを待つ。ノードが加入承認される場合、1つの実施形態は、できる限りすぐにノードが、ディスクをスクラブし、明らかにする(surface)ことを実現する。3秒スクラビングタイマが設定され、ノードは、ストレージ上のそれ自体の登録を認証することができる。
[0043]タイマの期限切れと同時に、フローは動作330に進み、ここで、ノードは、ストレージデバイスへの1つまたは複数のパスを明らかにする。つまり、ノードは、物理パス、またはリモートパスのいずれのパスが、クラスタ内の他のノードおよび/またはストレージデバイスに接続される必要があるかを決定することができる。例えば、図1を参照すると、ノード102Bが、クラスタ102に加入し、ノード102Aが、ストレージデバイス104への物理接続を確立した場合、または有する場合、物理パスは、クラスタ内の他のノードにアドバタイズされ、クラスタ内の他のノード、例えば、102Dは、ノード102Aに対するリモートパスを確立し、ノード102Aとストレージデバイス104との間の物理接続を利用することができる。
[0044]図4は、本開示の1つまたは複数の実施形態による、クラスタへの加入再承認を要求するための方法400を示している。特定の実施形態では、クラスタへの加入再承認を求めるノードは、それ自体、クラスタから除去されている可能性があり、または図3に関して上記に論じたように、クラスタ内の別のノードによって除去されている可能性もある。諸実施形態では、方法400は、クラスタ内のノードが、ストレージデバイスへの書込みコマンドを送信し、書込みが成功裏でなかったことを通知されるときに開始する。書込みが成功裏でなかった場合、ノードは、コマンドが、異なるパスの下方に送信されることを要求することができる。加えて、または代替として、ノードは、進行中である他のすべての保留になっているコマンドがキャンセルされることも要求することができる。通知を受信すると同時に、ノードは、ストレージデバイスにノード登録テーブルを要求する(410)。上記に論じたように、ノード登録テーブルは、ストレージデバイスによって維持され、クラスタ内のそれぞれのノードと関連している様々な登録キーを含む。
[0045]ノード登録テーブルが、要求しているノードによって受信されたとき、ノードは、登録テーブルを読み取って(420)、それ自体の登録キーが登録テーブルに含まれているかどうかを決定する。ノードの登録キーが、ノード登録テーブルに含まれていないことが決定されるとき、ノードは、別の登録キーを使用して、ストレージデバイスに登録する(430)。上記に論じたように、登録キーは、クラスタグローバル一意識別子の32ビットハッシュ、8ビットキーリビジョン、8ビットノード番号、および16ビットシグネチャを有する64ビット整数とすることができる。特定の実施形態では、ノードは、再登録しなくてはならないとき、新規の登録キーを生成することができ、その場合、登録キーの少なくとも一部分がインクリメントされ、または変更される。したがって、ノード、ストレージデバイス、またはクラスタ内の他のノードは、新規のパスがノードのために設定されなくてはならない回数を追跡することができる。いくつかの実施形態では、ノードが、加入再承認を要求した回数は、クラスタに対する加入再承認を取得するノードに影響をもたらし得る。加えて、登録キーに対する変更は、(ノードがクラスタに加入再承認されるときに)ノードからおよび/またはノードと関連するパスから生じる書込みコマンドが、ストレージデバイスに書き込まれるのをなおも待っている可能性がある、ノードからの古くなった書込みコマンドと確実に区別できるようにすることの助けにもなる。
[0046]一旦、ノードが、その新規に生成された登録キーをストレージデバイスに登録すると、登録タイマが設定される(440)。先に論じたように、登録タイマの長さは、時間期間tの約2.5倍に相当する。つまり、時間期間tは、クラスタ内の各ノードが、本明細書に開示される防御アルゴリズムを動作させるのにかかる時間に相当する。
[0047]タイマの期限切れと同時に、フローは動作450に進み、ストレージデバイスへの書込みアクセスを求めるノードは、ストレージデバイスによって維持される登録テーブルを読み取る。新規に生成された登録キーが、ノード登録テーブルに存在することが決定される場合(460)、ノードには、ストレージデバイスへの書込みアクセスが付与される。
[0048]しかしながら、動作460で、ノードの新規に生成された登録キーが、ノード登録テーブルに存在しないことが決定される場合、フローは動作430に戻って進み、ノードは再登録し、登録タイマはリセットされる。特定の実施形態では、ノードが、決められた回数、拒否された場合、ノードはもはや、ストレージデバイスへの書込みアクセスを求めなくなる。特定の実施形態では、ノードは、決められた時間期間が経過した後に、再度、クラスタに対する加入承認、またはストレージデバイスへのアクセスを求めることができる。
[0049]図5は、本開示の1つまたは複数の実施形態による、クラスタ内の2つのノードが、リモートパスおよび/または物理パスを使用して、物理ディスクにそれによってアクセスすることが可能なシステム500を示すブロック図である。図1から図4に関して上記に論じたように、クラスタ内の様々なノードは、ストレージプール内の1つまたは複数のストレージデバイスに接続可能である。それらの接続(またはスピンドル)は、物理接続またはリモート接続とすることができる。以下に説明されるように、ノードは、様々なパスを利用して、1つまたは複数のストレージデバイスに接続することができる。
[0050]図5に示される例示的な実施形態では、クラスタは、2つのノード、Node(ノード)Aの510およびNodeBの520を有することができる。各ノードは、物理Disk530への物理接続を有することができる。2つのノードのみが示されているが、クラスタは、3つ以上のノードで構成されてよいことが企図される。加えて、各ノードは、1つまたは複数のストレージデバイスへの物理接続を有することができることも企図される。図5に示すように、ノードは、いくつかの異なるパスを通じて物理ディスクにアクセスでき得る。例えば、NodeAの510は、物理ディスク530への物理パスを有し、また、NodeBの520のターゲット524を経由して物理ディスク530へのリモートパスも有する。特定の実施形態では、単一のノードが、同じディスクへの複数の物理パスを有することができる。そのような実施形態では、ノードは、クラスタ内の他のノードのすべてに対してすべてのこれらの物理パスを曝すことになる。
[0051]また、図5に示すように、NodeAは、仮想ディスク511と、物理ディスク530への複数の物理パスおよびリモートパスを統合するマルチパスオブジェクト512と、例えば、NodeBの520など、別のノードを通じて、物理ディスク530への1つまたは複数のリモートパスをインスタンス化するリモートパスオブジェクト513と、NodeAの510と物理ディスク530との間の1つまたは複数の物理接続をアドバタイズするように働き、クラスタ内の他のノードがノードAの510を介して物理ディスク530に対する接続性を(例えば、リモートパスを通じて)得ることを可能にするターゲットオブジェクト514にアクセスでき、物理パスオブジェクト515が、物理ディスク530への1つまたは複数の物理接続もしくはパスをインスタンス化する。
[0052]同様に、NodeBの520は、仮想ディスク521と、NodeBの520から物理ディスク530への複数の物理パスおよびリモートパスを統合するマルチパスオブジェクト522と、例えば、NodeAの510など、別のノードを通じて、物理ディスク530への1つまたは複数のリモートパスをインスタンス化するリモートパスオブジェクト523その513と、クラスタ内の他のノードに物理ディスク530への物理パスをアドバタイズするターゲットオブジェクト524と、物理ディスク530への1つまたは複数の物理接続もしくはパスをインスタンス化する物理パスオブジェクト525にアクセスできる。NodeAの510とNodeBの520の両方に1つのリモートパスが示されているが、単一のノードが複数のリモートパスを有し得ることが企図される。また、各ノードが複数の物理パスを有し得ることも企図される。
[0053]諸実施形態では、様々なコマンドが物理ディスク530に送信されるのに経由する好ましいパスは、物理パスである。例えば、新規のディスクが検出されるとき、クラスタの1つまたは複数のノードは、ディスクを登録し、または予約することになる。上記に論じたように、この処理は、図2に関して上記に論じた防御アルゴリズムを動作させること、続いて、ノードから物理ディスクへの物理パスを創出することを含む。特定の実施形態では、各物理パス、または物理パスの新規の各インスタンスは、クラスタ識別子、ノード識別子、および再生識別子(物理パスがインスタンス化されるたびにインクリメントされる物理パスの固有の番号)を含む登録キーを有する。諸実施形態では、パスの登録キーは、関連ノードの登録キーに相当してよい。一旦、物理接続が確立され、ノードが登録キーを使用してディスクに登録されると、ノードのマルチパスオブジェクトおよびターゲットオブジェクトは、新規に確立された物理パスについて通知される。次いで、その情報が、クラスタ内の他のノードに伝送され、したがって、他のノードは、物理ディスクへの物理接続を有するノードのターゲットを介してリモートパスを確立することができる。
[0054]上記に論じたように、1つまたは複数のノードが、クラスタ内の1つまたは複数の他のノードへの、あるいは物理ディスクへの接続を失う場合があることが企図される。そのような事象においては、クラスタ内の接続されたノードのうちの1つは、接続解除されたノードからの1つまたは複数のパスが、除去されることを要求し、また、ストレージデバイスが、接続解除されたノードと関連する1つまたは複数のパス(例えば、物理パスもしくはリモートパス)からの書込み要求を取るのを中止することも要求することになる。同様に、接続解除されたノードへのリモート接続を有する各ノードと関連するターゲットもまた、接続解除されたノードからのコマンドを受け取るのを中止することができる。そのようなアクションにより、接続解除されたノードは、通信線上にはあるが、まだ完了していない可能性があるストレージデバイスに対する追加のおよび/または二重の書込みを送信しないようになる。つまり、登録キーをストレージデバイスから除去すること、およびターゲットを通じて書込みコマンドをブロックすることは、接続解除されたノードが、物理パスまたはリモートパスを使用して、ディスクに書き込むことが確実にできないようにすることの助けになる。
[0055]例えば、図5を参照すると、NodeAの510は、その物理パスオブジェクト515を介して物理ディスク530へのその物理接続を失っている場合がある。しかしながら、図示するように、NodeAの510はまた、NodeBの520のターゲットオブジェクト524を通じた物理ディスク530へのリモートパス513も有する。加えて、物理ディスク530への接続を失う前に、NodeAの510は、まだ完了していない物理ディスク530への書込みコマンドを送信していた場合もある。NodeAの510は、物理ディスク530への接続性を失ったとき、その書込みコマンドが実行されたのか、または拒否されたのかについての知識が全くない場合がある。
[0056]しかしながら、NodeAの510が、物理ディスク530とすぐに再接続することが許容され、実行された可能性がある、もしくは実行されていない可能性があるコマンドをいずれも再提出することが許容された場合、またはNodeAの510が、物理ディスク530に対する追加のコマンド(NodeAの510がその接続を失ったことにより、順序から外れてもよい)を送信することが許可された場合、そのようなアクションは、物理ディスク530内のデータを破損させることになる可能性がある。そのような破損を防ぐために、NodeBの520は、NodeAの510と関連する物理パスおよび/またはすべてのリモートパスをプリエンプト(preempt)する。
[0057]一旦、NodeAの510と関連する物理パスおよび/またはリモートパスがプリエンプトされると、物理ディスク530は、NodeAの510と関連するパスからのコマンドを受け付けなくなる。各ノードについての各パスが関連識別子を有すると、物理ディスク530は、どのコマンドが、パスのそれぞれの識別子に基づいてノードと関連付けられているかを決定することができる。特定の実施形態では、物理ディスク530は、物理パス間を区別する。したがって、物理ディスクの視点から見れば、I/Oがリモートパスを経由して来た場合、リモートパスが接続されているターゲットをホストするノードからI/Oが来たかのように見えることになる。要するに、リモートパスI/Oフェンシングが、ターゲットにおいて実行される一方、物理パスI/Oフェンシングは、物理ディスク530レベルにおいて実行される。
[0058]例を進めるために、クラスタ内の各ノードは、他のあらゆるノードの各スピンドルまたはパスを見ることができる。したがって、NodeBの520は、NodeAの510が、物理ディスク530への接続を失ったことが分かり得る。結果として、NodeBの520は、リモートパス523を破棄することになる。しかしながら、NodeAの510がクラスタ内の他のノードと通信することができない場合、NodeBの520は、物理ディスク530に、NodeAの510からの書込みコマンドを拒否するように命令することができる。
[0059]特定の実施形態では、一旦、物理ディスク530が、NodeAの510の物理パスからのコマンドの拒否を開始すると、NodeAの510のマルチパスオブジェクト512は、コマンドの拒否を検出する。結果として、マルチパスオブジェクト512は、すべての他の既存の物理パスに、いずれかが有効であるかどうかを決定するようにクエリすることができる。1つの物理パスがなおも、有効である場合、有効物理パスは、マルチパスオブジェクト512に追加される。しかしながら、有効な物理パスオブジェクトが全くない場合、新規のマルチパスオブジェクトが創出され、物理パスオブジェクト515は、新規の登録キーを含む新規の物理パスをインスタンス化する。新規の物理パスおよびその関連登録キーは、生成されると、古い物理パスと関連した今や機能していない(defunct)識別子とは別に設定する新規の再生識別子を有することになる。
[0060]加えて、例えば、NodeAの510などのノードが、新規の識別子を使用して、クラスタに加入再承認を要求するとき、新規の識別子は、クラスタ内の他のノードにアドバタイズされる。したがって、他のノードのリモートパスオブジェクトは、NodeAの510の物理パスの新規の識別子を使用して、物理ディスク530に接続することができる。上記に論じたように、物理ディスク530は、古い物理パスからのコマンドを受け付けないことを知ると、新規の物理パスからのコマンドおよびその関連識別子を受け付け、そのとき、NodeAの510が、図2〜図4に関して上述した方法によりクラスタに加入再承認を求める。
[0061]図5に戻って参照すると、NodeAの510およびNodeBの520は、互いへの接続性を失う場合、仮想ディスクに書き込まれていないアプリケーションのキャッシュにデータが存在することも、または物理ディスクに書き込まれていない仮想ディスクにデータが存在することもある。したがって、諸実施形態は、接続解除されたノードからのパス上の残存するすべてのコマンドを消失させる(drain)こと、および接続解除されたノードと関連するパスからのさらなるコマンドが受け付けられないことを実現する。
[0062]本明細書に記載の実施形態および機能性は、デスクトップコンピュータシステム、ワイヤードおよびワイヤレスのコンピューティングシステム、モバイルコンピューティングシステム(例えば、モバイル電話、ネットブック、タブレットタイプまたはスレートタイプのコンピュータ、ノートブックコンピュータ、およびラップトップコンピュータ)、ハンドヘルドデバイス、マルチプロセッサシステム、マイクロプロセッサベースのまたはプログラマブルの家庭用電化製品、ミニコンピュータ、ならびにメインフレームコンピュータを限定することなく含めた数多くのコンピューティングシステムによって動作することができる。
[0063]加えて、本明細書に記載の実施形態および機能性は、分散されたシステム(例えば、クラウドベースのコンピューティングシステム)を通じて動作することができ、その場合、アプリケーション機能性、メモリ、データの記憶および検索ならびに様々な処理機能は、Internet、またはイントラネットなど、分散されたコンピューティングネットワークを通じて互いとリモートに動作可能である。様々なタイプのユーザインターフェイスおよび情報は、オンボードコンピューティングデバイス表示部を介して、あるいは1つまたは複数のコンピューティングデバイスと関連するリモート表示装置を介して表示可能である。例えば、様々なタイプのユーザインターフェイスおよび情報は、様々なタイプのユーザインターフェイスおよび情報が投影される壁面に表示することができ、その壁面と相互作用することができる。本発明の実施形態がそれにより実践可能な数多くのコンピューティングシステムとの相互作用は、キーストローク入力、タッチ画面入力、音声または他の音響入力、およびジェスチャ入力などを含み、このジェスチャ入力では、関連コンピューティングデバイスに、コンピューティングデバイスの機能性を制御するようにユーザジェスチャを取り込み、解釈するための検出(例えば、カメラ)機能性が備わっている。
[0064]図6〜図8および関連の記載では、本発明の実施形態がその中で実践可能である種々の動作環境についての議論が行われる。しかしながら、図6〜図8に関して図示され、論じられるデバイスおよびシステムは、例示および図示の目的のためであり、本明細書に記載される本発明の実施形態を実践するのに使用可能な膨大な数のコンピューティングデバイス構成を限定するものではない。
[0065]図6は、本発明の実施形態がそれにより実践可能なコンピューティングデバイス105の物理的構成要素(すなわち、ハードウェア)を示すブロック図である。後述のコンピューティングデバイスの構成要素は、上記に記載のノードまたはコンピューティングデバイスに適し得る。基本構成では、コンピューティングデバイス105は、少なくとも1つの処理装置602、およびシステムメモリ604を含むことができる。コンピューティングデバイスの構成およびタイプに応じて、システムメモリ604は、これらに限定されないが、揮発性ストレージ(例えば、ランダムアクセスメモリ)、不揮発性ストレージ(例えば、読取り専用メモリ)、フラッシュメモリ、またはそのようなメモリの任意の組合せを含むことができる。システムメモリ604は、オペレーティングシステム605と、ソフトウェアの様々なアプリケーション620を動作させるのに適している1つまたは複数のプログラムモジュール606とを含むことができる。オペレーティングシステム605は、例えば、コンピューティングデバイス105の動作を制御するのに適し得る。さらには、本発明の実施形態は、グラフィックスライブラリ、他のオペレーティングシステム、または任意の他のアプリケーションプログラムと併せて実践可能であり、いずれかの特定のアプリケーションまたはシステムに限定されない。この基本構成は、図6に、破線608内のそれらの構成要素によって示されている。コンピューティングデバイス105は、追加の特徴または機能性を有することができる。例えば、コンピューティングデバイス105はまた、例えば、磁気ディスク、光ディスク、またはテープなどの追加のデータストレージデバイス(リムーバブルおよび/または非リムーバブル)を含むことができる。そのような追加のストレージは、図6に、リムーバブルストレージデバイス609および非リムーバブルストレージデバイス610によって示されている。
[0066]上記のように、いくつかのプログラムモジュールおよびデータファイルが、システムメモリ604に記憶され得る。処理装置602において実行する一方、プログラムモジュール606は、これらに限定されないが、図1〜図4に示す方法の段階のうちの1つまたは複数を含む処理を行うことができる。本発明の実施形態により使用可能な他のプログラムモジュールには、電子メール、および連絡先アプリケーション、ワードプロセシングアプリケーション、スプレッドシートアプリケーション、データベースアプリケーション、スライドプレゼンテーションアプリケーション、描画またはコンピュータ支援アプリケーションのプログラムなどを含めることができる。
[0067]さらには、本発明の実施形態は、個別の電子要素、論理ゲートを含んだパッケージ化もしくは集積化された電子チップ、マイクロプロセッサを利用する回路、または電子要素もしくはマイクロプロセッサを含んだ単一のチップを含む電気回路で実践可能である。例えば、本発明の実施形態は、システムオンチップ(system−on−a−chip:SOC)により実践可能であり、その場合、図6に示す構成要素のそれぞれ、または多くが、単一の集積回路上に集積化可能である。そのようなSOCデバイスは、1つまたは複数の処理装置、グラフィックス装置、通信装置、システム仮想化装置、および様々なアプリケーション機能性を含むことができ、それらのすべては、単一の集積回路としてチップ基板上に集積化される(または焼き込まれる)。本明細書に記載される機能性は、SOCにより動作するとき、単一の集積回路(チップ)上のコンピューティングデバイス105の他の構成要素とともに集積化されるアプリケーションに固有の論理機構により動作可能である。本発明の実施形態はまた、これらに限定されないが、機械技術、光技術、流体技術、および量子技術を含んだ、例えば、AND、OR、およびNOTなどの論理演算を行うことができる他の技術を使用しても実践可能である。加えて、本発明の実施形態は、汎用のコンピュータ内で、または任意の他の回路もしくはシステムにおいて実践可能である。
[0068]コンピューティングデバイス105はまた、キーバード、マウス、ペン、音入力デバイス、タッチ入力デバイスなどの1つまたは複数の入力デバイス612を有することができる。表示部、スピーカ、プリンタなどの出力デバイス(複数可)614もまた、含められ得る。上述のデバイスは、例であり、他のデバイスが使用されてもよい。コンピューティングデバイス104は、他のコンピューティングデバイス618との通信を可能にする1つまたは複数の通信接続部616を含むことができる。適切な通信接続部616の例は、これらに限定されないが、RF伝送器、受信器、および/または送受信器回路、ユニバーサルシリアルバス(universal serial bus:USB)、パラレルポート、および/またはシリアルポートを含む。
[0069]本明細書に使用される用語コンピュータ可読媒体は、コンピュータストレージ媒体を含むことができる。コンピュータストレージ媒体には、コンピュータ可読命令、データ構造、またはプログラムモジュールなど、情報を記憶するための任意の方法または技術で実装される揮発性と不揮発性の、リムーバブルと非リムーバブルの媒体を含めることができる。システムメモリ604、リムーバブルストレージデバイス609、および非リムーバブルストレージデバイス610はすべて、コンピュータストレージ媒体の例(すなわち、メモリストレージ)である。コンピュータストレージ媒体には、RAM、ROM、電気的に消去可能な読取り専用メモリ(EEPROM)、フラッシュメモリ、もしくは他のメモリ技術、CD−ROM、デジタル多用途ディスク(DVD)、もしくは他の光ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージ、もしくは他の磁気ストレージデバイス、または情報を記憶するのに使用可能であり、コンピューティングデバイス105によってアクセス可能な任意の他の製造品を含めることができる。任意のそのようなコンピュータストレージ媒体は、コンピューティングデバイス105の一部とすることができる。コンピュータストレージ媒体は、搬送波、または他の伝播もしくは変調データ信号を含まない。
[0070]通信媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、または搬送波もしくは他の輸送機構などの変調データ信号における他のデータによって実現可能であり、任意の情報配信媒体を含む。用語「変調データ信号」は、信号における情報を符号化するような形で、1つまたは複数の特性を設定または変更した信号について説明することができる。限定ではなく、例として、通信媒体は、ワイヤードネットワークまたは直接ワイヤード接続などのワイヤード媒体、ならびに音響、無線周波数(RF)、赤外線、および他のワイヤレス媒体など、ワイヤレス媒体を含むことができる。
[0071]図7Aおよび図7Bは、本発明の実施形態がそれにより実践可能なモバイルコンピューティングデバイス700、例えば、モバイル電話、スマートフォン、タブレットパーソナルコンピュータ、およびラップトップコンピュータなどを示している。図7Aに関しては、諸実施形態を実装するためのモバイルコンピューティングデバイス700の1つの実施形態が示されている。基本構成では、モバイルコンピューティングデバイス700は、入力要素と出力要素との両方を有するハンドヘルドコンピュータである。モバイルコンピューティングデバイス700は、典型的には、表示部705と、ユーザがモバイルコンピューティングデバイス700に情報を入力することを可能にする1つまたは複数の入力ボタン710とを含む。モバイルコンピューティングデバイス700の表示部705はまた、入力デバイス(例えば、タッチ画面表示部)として機能することができる。オプションのサイド入力要素715が含まれている場合、このサイド入力要素715は、さらなるユーザ入力を可能にする。サイド入力要素715は、ロータリスイッチ、ボタンまたは任意の他のタイプの手動入力要素とすることができる。代替の実施形態では、モバイルコンピューティングデバイス700は、より多くの入力要素、またはより少ない入力要素を組み込むことができる。例えば、表示部705は、いくつかの実施形態では、タッチ画面でない場合もある。さらなる別の代替の実施形態では、モバイルコンピューティングデバイス700は、セルラ電話など、携帯電話システムである。モバイルコンピューティングデバイス700はまた、オプションのキーパッド735を含むことができる。オプションのキーパッド735は、物理キーパッドであっても、またはタッチ画面表示部において作成される「ソフト」キーパッドであってもよい。様々な実施形態では、出力要素は、グラフィカルユーザインターフェイス(graphical user interface:GUI)を示すために表示部705、視覚指示器720(例えば、発光ダイオード)、および/または音響トランスデューサ(例えば、スピーカ)を含む。いくつかの実施形態では、モバイルコンピューティングデバイス700は、ユーザに触覚フィードバックを提供するための振動トランスデューサを組み込んでいる。さらなる別の実施形態では、モバイルコンピューティングデバイス700は、音響入力(例えば、マイクロフォンジャック)、音響出力(例えば、ヘッドフォンジャック)など、入力ポートおよび/または出力ポート、ならびに外部デバイスに信号を送信し、もしくは外部デバイスから信号を受信するための映像出力(例えば、HDMI(登録商標)ポート)を組み込んでいる。
[0072]図7Bは、モバイルコンピューティングデバイスの1つの実施形態のアーキテクチャを示すブロック図である。つまり、モバイルコンピューティングデバイス700は、いくつかの実施形態を実装するシステム(すなわち、アーキテクチャ)702を組み込んでいることができる。1つの実施形態では、システム702は、1つまたは複数のアプリケーション(例えば、ブラウザ、eメール、スケジュール管理(calendaring)、連絡先マネージャ、メッセージングクライアント、ゲーム、およびメディアクライアント/プレーヤ)を動作させることができる「スマートフォン」として実装される。いくつかの実施形態では、システム702は、集積化されたパーソナルデジタルアシスタント(personal digital assistant:PDA)とワイヤレス電話など、コンピューティングデバイスとして集積化される。
[0073]1つまたは複数のアプリケーションプログラム766は、メモリ762にロード可能であり、オペレーティングシステム764において、またはオペレーティングシステム764と関連して動作することができる。アプリケーションプログラムの例には、電話ダイヤラプログラム、eメールプログラム、パーソナル情報管理(personal information management:PIM)プログラム、ワードプロセシングプログラム、スプレッドシートプログラム、Internetブラウザプログラム、およびメッセージングプログラムなどが含まれる。システム702はまた、メモリ762内に不揮発性ストレージ領域768を含む。不揮発性ストレージ領域768は、システム702が電源を落とされた場合、失うべきでない永続的情報を記憶するために使用可能である。アプリケーションプログラム766は、eメールアプリケーションなどによって使用されるeメールまたは他のメッセージなど、不揮発性ストレージ領域768の情報を使用し、記憶することができる。同期化アプリケーション(図示せず)もまた、システム702において常駐し、ホストコンピュータに常駐する対応する同期化アプリケーションと相互作用して、不揮発性ストレージ領域768に記憶された情報がホストコンピュータにおいて記憶された対応する情報と継続して同期化されるようにプログラミングされる。理解すべきであるように、他のアプリケーションは、メモリ762にロード可能であり、モバイルコンピューティングデバイス700において動作することができる。
[0074]システム702は、電源770を有し、この電源770は、1つまたは複数のバッテリとして実装可能である。電源770は、バッテリを補填する、もしくは再充電するACアダプタまたは電力供給されるドッキングクレードルなど、外部電源をさらに含むこともあり得る。
[0075]システム702はまた、無線周波数通信を送受信する機能を行う無線機772も含むことができる。無線機772は、通信キャリアまたはサービスプロバイダを介して、システム702と「外部世界(outside world)」との間のワイヤレス接続性を容易にする。無線機772との間の伝送は、オペレーティングシステム764の制御の下、実施される。言い換えれば、無線機772によって受信される通信は、オペレーティングシステム764を介してアプリケーションプログラム766に伝えられていくことができ、逆も同様である。
[0076]視覚指示器720は、視覚的な通知を提供するために使用可能であり、および/または音響インターフェイス774は、音響トランスデューサ725を介して可聴通知をもたらすために使用可能である。図示の実施形態では、視覚指示器720は、発光ダイオード(LED)であり、音響トランスデューサ725は、スピーカである。これらのデバイスは、電源770に直接、連結可能であり、それにより、プロセッサ760および他の構成要素がバッテリ電力を保存するためにシャットダウンすることがあり得ても、それらのデバイスは、アクティブ状態であるとき、通知機構によって指図された継続時間の間は、オンのままである。LEDは、ユーザがデバイスの電源オン状態を示すアクションを取るまでは無期限に、オンのままであるようにプログラミング可能である。音響インターフェイス774は、ユーザに可聴信号を提供し、ユーザから可聴信号を受信するために使用される。例えば、音響インターフェイス774は、音響トランスデューサ725に連結されていることに加えて、電話会話を容易にするなどのために、可聴入力を受信するマイクロフォンにも連結可能である。本発明の実施形態により、マイクロフォンはまた、後述されるように、通知の制御を容易にする音響センサとしても働くことができる。システム702は、静止画像、および映像ストリームなどを記録するオンボードカメラ730の動作を可能にする映像インターフェイス776をさらに含むことができる。
[0077]システム702を実装するモバイルコンピューティングデバイス700は、追加の特徴または機能性を有することができる。例えば、モバイルコンピューティングデバイス700はまた、磁気ディスク、光ディスク、またはテープなどの追加のデータストレージデバイス(リムーバブルおよび/または非リムーバブル)も含むことができる。そのような追加のストレージは、不揮発性ストレージ領域768によって図7Bに示されている。
[0078]モバイルコンピューティングデバイス700によって生成され、または取り込まれ、システム702を介して記憶されるデータ/情報は、上記に記載したように、モバイルコンピューティングデバイス700においてローカルに記憶可能であり、すなわち、データは、無線機772を介して、またはモバイルコンピューティングデバイス700と、モバイルコンピューティングデバイス700に関連する別個のコンピューティングデバイス、例えば、Internetなど、分散されたコンピューティングネットワークにおけるサーバコンピュータとの間のワイヤード接続を介して、デバイスによってアクセス可能な任意の数のストレージ媒体において記憶可能である。理解すべきであるように、そのようなデータ/情報は、無線機772を介して、または分散されたコンピューティングネットワークを介して、モバイルコンピューティングデバイス700によりアクセス可能である。同様に、そのようなデータ/情報は、電子メールおよびコラボレーション型のデータ/情報共有システムを含む、よく知られているデータ/情報の転送およびストレージ手段に従って、記憶し、使用するためにコンピューティングデバイス間で容易に転送可能である。
[0079]図8は、上述したクラスタにおけるメンバシップを提供し、維持するためのシステムのアーキテクチャの1つの実施形態を示している。例えば、ノード登録テーブル、識別子、ならびにノード間およびノードと物理ディスクとの間の様々なパスは、種々の通信チャネルまたは他のストレージタイプで記憶され得る。例えば、様々な識別子は、ディレクトリサービス822、ウェブポータル824、メールボックスサービス826、インスタントメッセージングストア828、またはソーシャルネットワーキングサイト830を使用して記憶され得る。サーバ820は、データおよび/または接続タイプを、クラスタ内の1つまたは複数の他のサーバもしくはノードに提供することができる。1つの例として、サーバ820は、ネットワーク815を通じてデータをクライアントへとウェブを介して提供するウェブサーバとすることができる。例として、クライアントコンピューティングデバイスは、コンピューティングデバイス105として実装可能であり、パーソナルコンピュータ、タブレットコンピューティングデバイス610、および/またはモバイルコンピューティングデバイス700(例えば、スマートフォン)において実現可能である。クライアントコンピューティングデバイス105、610、700のこれらの実施形態のいずれもが、ストア816からコンテンツを取得することができる。
[0080]本発明の実施形態は、例えば、本発明の実施形態による方法、システム、およびコンピュータプログラム製品のブロック図および/または動作図を参照して上記に記載されている。ブロックに注記された機能/行為は、任意の流れ図に示される順序から外れて行われてもよい。実際、例えば、連続して示された2つのブロックが、実質的に同時に実行されても、またはブロックが、時として、関与している機能性/行為に応じて、逆の順序で実行されてもよい。
[0081]本出願において提供された1つまたは複数の実施形態の説明および例示は、特許請求される本発明の範囲をいかなる形でも限定または制限するように意図するものではない。本出願において提供される実施形態、例、および詳細は、所有権を譲渡し、当業者が、特許請求される発明の最良な様態を作成し、使用することを可能にするのに十分であると見なされる。特許請求される本発明は、本出願において提供されるいかなる実施形態、例、または詳細にも限定するものとは見なすべきではない。組み合わせて、または別個に示され、説明されているかどうかにかかわらず、(構造的にも、方法論的にも)様々な特徴は、特定の特徴の組とともに実施形態を生み出すために選択的に含まれ、または省略されるように意図される。本出願の説明および例示が提供されているので、当業者は、特許請求される本発明のより広範な範囲から逸脱しない、本出願において実現される概括的な発明的概念のより広い態様の趣旨の範囲に入る変形形態、修正形態、および代替の実施形態を想定することができる。

Claims (10)

  1. ストレージデバイスへのアクセスを可能にするための方法であって、
    ノードのクラスタ内の少なくとも1つのノードに接続されているストレージデバイスに、登録キーを送信するステップと、
    第1の登録タイマを設定するステップと、
    前記第1の登録タイマの期限切れと同時に、前記ストレージデバイスから登録テーブルを受信するステップと、
    前記登録キーが前記登録テーブルに記憶されているかどうかを決定するステップと、
    前記登録キーが前記登録テーブルに記憶されているとき、前記クラスタに加入するステップであって、前記ストレージデバイスへの書込みアクセスを可能にする、ステップと
    を含む方法。
  2. 前記クラスタに加入するステップ後、前記登録テーブルをスクラブするステップをさらに含む、請求項1に記載の方法。
  3. 前記登録テーブルをスクラブするステップは、
    前記登録テーブルを前記ストレージデバイスから受信するステップと、
    前記登録テーブルを読み取るステップと、
    前記登録テーブルから1つまたは複数の登録キーを抹消するステップであって、前記1つまたは複数の登録キーのそれぞれは、前記クラスタ内のノードと関連している、ステップと
    を含む、請求項2に記載の方法。
  4. 前記登録キーは、クラスタ識別子、およびノード識別子を含む、請求項1に記載の方法。
  5. コンピュータ実行可能な命令を符号化するコンピュータ可読ストレージデバイスであって、前記コンピュータ実行可能な命令は、1つまたは複数のプロセッサによって実行されると、ストレージデバイスへのアクセスを可能にするための方法を行い、前記方法は、
    ノードのクラスタ内の少なくとも1つのノードに接続されているストレージデバイスに、登録キーを送信するステップと、
    第1の登録タイマを設定するステップと、
    前記第1の登録タイマの期限切れと同時に、前記ストレージデバイスから登録テーブルを受信するステップと、
    前記登録キーが前記登録テーブルに記憶されているかどうかを決定するステップと、
    前記登録キーが前記登録テーブルに記憶されているとき、前記クラスタに加入するステップであって、前記ストレージデバイスへの書込みアクセスを可能にする、ステップと
    を含む、コンピュータ可読ストレージデバイス。
  6. 前記クラスタに加入するステップ後、前記登録テーブルをスクラブするための命令をさらに含む、請求項5に記載のコンピュータ可読ストレージデバイス。
  7. 前記登録テーブルをスクラブするステップは、
    前記ストレージデバイスから前記登録テーブルを受信するステップと、
    前記登録テーブルを読み取るステップと、
    前記登録テーブルから1つまたは複数の登録キーを抹消するステップであって、前記1つまたは複数の登録キーのそれぞれは、前記クラスタ内のノードと関連している、ステップと
    を含む、請求項6に記載のコンピュータ可読ストレージデバイス。
  8. 前記登録キーは、クラスタ識別子、およびノード識別子を含む、請求項5に記載のコンピュータ可読ストレージデバイス。
  9. ストレージデバイスへのアクセスを可能にするための方法であって、
    クラスタ内のノードから、前記ストレージデバイスに書込みコマンドを送信するステップであって、前記ノードは、関連登録キーを有する、ステップと、
    前記書込みコマンドが拒否されたという通知を受信すると同時に、
    前記ストレージデバイスに登録テーブルを要求するステップと、
    前記ノードと関連する前記登録キーが前記登録テーブルに存在するかどうかを決定するステップと、
    前記ノードと関連する前記登録キーが前記登録テーブルに存在しないとき、
    前記ストレージデバイスに新規の登録キーを送信するステップと、
    第1の登録タイマを設定するステップと、
    前記第1の登録タイマの期限切れと同時に、前記ストレージデバイスから前記登録テーブルを受信するステップと、
    前記新規の登録キーが前記登録テーブルに記憶されているかどうかを決定するステップと、
    前記新規の登録キーが前記登録テーブルに記憶されているとき、前記クラスタに加入するステップであって、前記ノードが前記ストレージデバイスに書き込むことを可能にする、ステップと
    を含む方法。
  10. 前記クラスタに加入するステップ後、前記登録テーブルをスクラブするステップをさらに含む、請求項9に記載の方法。
JP2016516710A 2013-05-29 2014-05-27 クラスタにおけるストレージ防御の分散 Active JP6382958B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/904,989 US9641614B2 (en) 2013-05-29 2013-05-29 Distributed storage defense in a cluster
US13/904,989 2013-05-29
PCT/US2014/039480 WO2014193770A1 (en) 2013-05-29 2014-05-27 Distributed storage defense in a cluster

Publications (3)

Publication Number Publication Date
JP2016526229A true JP2016526229A (ja) 2016-09-01
JP2016526229A5 JP2016526229A5 (ja) 2017-06-29
JP6382958B2 JP6382958B2 (ja) 2018-08-29

Family

ID=51023092

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016516710A Active JP6382958B2 (ja) 2013-05-29 2014-05-27 クラスタにおけるストレージ防御の分散

Country Status (7)

Country Link
US (2) US9641614B2 (ja)
EP (1) EP3005070B1 (ja)
JP (1) JP6382958B2 (ja)
CN (1) CN105283831B (ja)
BR (1) BR112015029220B1 (ja)
RU (1) RU2656828C2 (ja)
WO (1) WO2014193770A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020529668A (ja) * 2017-08-02 2020-10-08 セールスフォース ドット コム インコーポレイティッド 分散クラスタシステムにおけるノードのフェンシングアウト

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9652030B2 (en) 2009-01-30 2017-05-16 Microsoft Technology Licensing, Llc Navigation of a virtual plane using a zone of restriction for canceling noise
US10963448B1 (en) * 2013-03-15 2021-03-30 Teradata Us, Inc. Non-responsive node activity avoidance
US9641614B2 (en) 2013-05-29 2017-05-02 Microsoft Technology Licensing, Llc Distributed storage defense in a cluster
US10404520B2 (en) 2013-05-29 2019-09-03 Microsoft Technology Licensing, Llc Efficient programmatic memory access over network file access protocols
CN105653902B (zh) * 2016-02-01 2018-11-13 深圳市新产业生物医学工程股份有限公司 软件注册方法和装置,注册码生成方法和装置
US11586647B2 (en) * 2016-10-03 2023-02-21 Ocient, Inc. Randomized data distribution in highly parallel database management system
CN107153588A (zh) * 2017-05-12 2017-09-12 成都优孚达信息技术有限公司 数据编码存储方法
US10901621B2 (en) 2017-12-13 2021-01-26 Red Hat, Inc. Dual-level storage device reservation
FR3079644A1 (fr) * 2018-03-29 2019-10-04 Orange Procede de gestion d'un groupe d'equipements, serveur et systeme associes
US10503543B1 (en) * 2019-02-04 2019-12-10 Cohesity, Inc. Hosting virtual machines on a secondary storage system
US11176166B2 (en) * 2019-06-21 2021-11-16 International Business Machines Corporation Ability to move application spaces between two separate independent high availability (HA) environments
RU2757165C1 (ru) * 2021-04-18 2021-10-11 Арташес Валерьевич Икономов Способ получения персонализированной информации о пользователе
CN113504980B (zh) * 2021-07-23 2024-09-10 斑马网络技术有限公司 分布式计算图中节点切换方法、电子设备及可读存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030065782A1 (en) * 2001-09-28 2003-04-03 Gor Nishanov Distributed system resource protection via arbitration and ownership
JP2011526038A (ja) * 2008-06-27 2011-09-29 マイクロソフト コーポレーション クラスタ共有ボリューム
JP2012503249A (ja) * 2008-09-19 2012-02-02 マイクロソフト コーポレーション 永続予約を介する共有書込みアクセスのリソースアービトレーション

Family Cites Families (81)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
BR9204660A (pt) 1991-12-20 1993-06-22 Ibm Sistema de rede de computadores que engloba uma interface para sistemas de computadores pequenos(scsi)para dispositivos de scsi nao locais
EP0709779B1 (en) 1994-10-31 2001-05-30 International Business Machines Corporation Virtual shared disks with application-transparent recovery
US6085234A (en) 1994-11-28 2000-07-04 Inca Technology, Inc. Remote file services network-infrastructure cache
US6012129A (en) 1997-03-31 2000-01-04 International Business Machines Corporation Apparatus and method allocating virtual memory upon demand
US6363411B1 (en) * 1998-08-05 2002-03-26 Mci Worldcom, Inc. Intelligent network
WO1999023571A1 (en) 1997-11-03 1999-05-14 Inca Technology, Inc. Automatically configuring network-name-services
US6178529B1 (en) 1997-11-03 2001-01-23 Microsoft Corporation Method and system for resource monitoring of disparate resources in a server cluster
US6279032B1 (en) 1997-11-03 2001-08-21 Microsoft Corporation Method and system for quorum resource arbitration in a server cluster
US6173374B1 (en) 1998-02-11 2001-01-09 Lsi Logic Corporation System and method for peer-to-peer accelerated I/O shipping between host bus adapters in clustered computer network
US6356863B1 (en) 1998-09-08 2002-03-12 Metaphorics Llc Virtual network file server
US7774469B2 (en) 1999-03-26 2010-08-10 Massa Michael T Consistent cluster operational data in a server cluster using a quorum of replicas
US6845395B1 (en) 1999-06-30 2005-01-18 Emc Corporation Method and apparatus for identifying network devices on a storage network
US6895591B1 (en) 1999-10-18 2005-05-17 Unisys Corporation Virtual file system and method
US6633919B1 (en) 1999-11-18 2003-10-14 International Business Machines Corporation Method, system and program product for managing the flow of data between senders and receivers of a computing environment
US6714968B1 (en) 2000-02-09 2004-03-30 Mitch Prust Method and system for seamless access to a remote storage server utilizing multiple access interfaces executing on the remote server
US6654902B1 (en) * 2000-04-11 2003-11-25 Hewlett-Packard Development Company, L.P. Persistent reservation IO barriers
US7043563B2 (en) 2000-04-17 2006-05-09 Circadence Corporation Method and system for redirection to arbitrary front-ends in a communication system
US6990606B2 (en) 2000-07-28 2006-01-24 International Business Machines Corporation Cascading failover of a data management application for shared disk file systems in loosely coupled node clusters
US6954881B1 (en) 2000-10-13 2005-10-11 International Business Machines Corporation Method and apparatus for providing multi-path I/O in non-concurrent clustering environment using SCSI-3 persistent reserve
US6965936B1 (en) 2000-12-06 2005-11-15 Novell, Inc. Method for detecting and resolving a partition condition in a cluster
US6622229B2 (en) 2001-02-28 2003-09-16 International Business Machines Corporation Virtual memory structure
US7127565B2 (en) 2001-08-20 2006-10-24 Spinnaker Networks, Inc. Method and system for safely arbitrating disk drive ownership using a timestamp voting algorithm
US7631066B1 (en) 2002-03-25 2009-12-08 Symantec Operating Corporation System and method for preventing data corruption in computer system clusters
US7603670B1 (en) 2002-03-28 2009-10-13 Symantec Operating Corporation Virtual machine transfer between computer systems
US7240098B1 (en) 2002-05-09 2007-07-03 Cisco Technology, Inc. System, method, and software for a virtual host bus adapter in a storage-area network
CN1602499A (zh) 2002-10-04 2005-03-30 索尼株式会社 数据管理系统、数据管理方法、虚拟存储设备、虚拟存储器控制方法、阅读器/写入器装置、 ic模块访问设备、以及ic模块访问控制方法
US7131003B2 (en) * 2003-02-20 2006-10-31 America Online, Inc. Secure instant messaging system
US20050080982A1 (en) 2003-08-20 2005-04-14 Vasilevsky Alexander D. Virtual host bus adapter and method
US7114053B2 (en) 2003-08-21 2006-09-26 Texas Instruments Incorporated Virtual-to-physical address conversion in a secure system
US7168071B2 (en) 2003-09-30 2007-01-23 Intel Corporation Method and system of permitting stack allocation to programs having open-world features
US20050132154A1 (en) 2003-10-03 2005-06-16 International Business Machines Corporation Reliable leader election in storage area network
US7673066B2 (en) 2003-11-07 2010-03-02 Sony Corporation File transfer protocol for mobile computer
US7590737B1 (en) 2004-07-16 2009-09-15 Symantec Operating Corporation System and method for customized I/O fencing for preventing data corruption in computer system clusters
US20060074940A1 (en) 2004-10-05 2006-04-06 International Business Machines Corporation Dynamic management of node clusters to enable data sharing
JP2006107158A (ja) * 2004-10-06 2006-04-20 Hitachi Ltd ストレージネットワークシステム及びアクセス制御方法
US7260678B1 (en) 2004-10-13 2007-08-21 Network Appliance, Inc. System and method for determining disk ownership model
US8365301B2 (en) * 2005-02-22 2013-01-29 Microsoft Corporation Peer-to-peer network communication
US7350074B2 (en) * 2005-04-20 2008-03-25 Microsoft Corporation Peer-to-peer authentication and authorization
US7529878B2 (en) 2005-04-29 2009-05-05 Sigmatel, Inc. Method and system of memory management
US7739677B1 (en) 2005-05-27 2010-06-15 Symantec Operating Corporation System and method to prevent data corruption due to split brain in shared data clusters
WO2007015183A1 (en) * 2005-08-01 2007-02-08 Koninklijke Philips Electronics N.V. Organizing content using a dynamic profile
US9077433B2 (en) * 2005-10-04 2015-07-07 Huawei Technologies Co., Ltd. Mobile station device and method, base station device and method, and mobile station device operating frequency band mapping method
US8347373B2 (en) 2007-05-08 2013-01-01 Fortinet, Inc. Content filtering of remote file-system access protocols
US8667076B2 (en) 2006-07-28 2014-03-04 Microsoft Corporation Mapping universal plug and play discovered items to an SMB location
US7925809B2 (en) 2006-10-24 2011-04-12 Apple Inc. Systems and methods for storage management in a data processing device
US8504794B1 (en) 2006-11-01 2013-08-06 Nvidia Corporation Override system and method for memory access management
CN101584192B (zh) * 2006-11-27 2013-10-30 艾利森电话股份有限公司 节点注册方法
US7786901B2 (en) * 2007-04-03 2010-08-31 Motorola, Inc. Key press registration in an electronic device with moveable housings
GB2449118A (en) * 2007-05-11 2008-11-12 Ericsson Telefon Ab L M Host Identity Protocol Rendezvous Servers which store information about nodes connected to other servers and forward address requests
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
US7783666B1 (en) 2007-09-26 2010-08-24 Netapp, Inc. Controlling access to storage resources by using access pattern based quotas
US7809776B1 (en) 2007-11-30 2010-10-05 Netapp, Inc. System and method for supporting change notify watches for virtualized storage systems
US8472431B2 (en) * 2008-01-24 2013-06-25 At&T Intellectual Property I, L.P. System and method of providing IMS services to users on terminating non IMS devices
US8893160B2 (en) 2008-06-09 2014-11-18 International Business Machines Corporation Block storage interface for virtual memory
US8046467B2 (en) 2008-08-29 2011-10-25 Microsoft Corporation Maintaining client affinity in network load balancing systems
US8225019B2 (en) 2008-09-22 2012-07-17 Micron Technology, Inc. SATA mass storage device emulation on a PCIe interface
US8838850B2 (en) * 2008-11-17 2014-09-16 Violin Memory, Inc. Cluster control protocol
US8041987B2 (en) 2008-11-10 2011-10-18 International Business Machines Corporation Dynamic physical and virtual multipath I/O
US8185049B2 (en) * 2008-12-29 2012-05-22 General Instrument Corporation Multi-mode device registration
US20100241731A1 (en) 2009-03-17 2010-09-23 Gladinet, Inc. Method for virtualizing internet resources as a virtual computer
US8417899B2 (en) * 2010-01-21 2013-04-09 Oracle America, Inc. System and method for controlling access to shared storage device
US8443231B2 (en) 2010-04-12 2013-05-14 Symantec Corporation Updating a list of quorum disks
US8219769B1 (en) 2010-05-04 2012-07-10 Symantec Corporation Discovering cluster resources to efficiently perform cluster backups and restores
US8381017B2 (en) 2010-05-20 2013-02-19 International Business Machines Corporation Automated node fencing integrated within a quorum service of a cluster infrastructure
WO2012057942A1 (en) 2010-10-27 2012-05-03 High Cloud Security, Inc. System and method for secure storage of virtual machines
CN101997918B (zh) 2010-11-11 2013-02-27 清华大学 异构san环境中的海量存储资源按需分配的实现方法
US8806030B2 (en) 2010-12-06 2014-08-12 Microsoft Corporation Multichannel connections in file system sessions
WO2012079651A1 (en) * 2010-12-17 2012-06-21 Telefonaktiebolaget L M Ericsson (Publ) Ethernet ring node with improved recovery time after a link failure
US10108630B2 (en) * 2011-04-07 2018-10-23 Microsoft Technology Licensing, Llc Cluster unique identifier
US9331955B2 (en) 2011-06-29 2016-05-03 Microsoft Technology Licensing, Llc Transporting operations of arbitrary size over remote direct memory access
US8677085B2 (en) 2011-08-29 2014-03-18 Vmware, Inc. Virtual machine snapshotting in object storage system
KR101378309B1 (ko) 2011-11-22 2014-03-28 에스케이텔레콤 주식회사 채팅 중 http를 이용한 파일 전송을 위한 장치 및 기록매체
US8938550B2 (en) 2011-12-15 2015-01-20 Microsoft Corporation Autonomous network streaming
US8738701B2 (en) 2012-02-28 2014-05-27 Microsoft Corporation Arbitration of disk ownership in a storage pool
US9678863B2 (en) 2012-06-12 2017-06-13 Sandisk Technologies, Llc Hybrid checkpointed memory
US20130346532A1 (en) 2012-06-21 2013-12-26 Microsoft Corporation Virtual shared storage in a cluster
US9021050B2 (en) 2012-08-31 2015-04-28 Yume, Inc. Network service system and method with off-heap caching
US20140086100A1 (en) * 2012-09-26 2014-03-27 Avaya, Inc. Multi-Chassis Cluster Synchronization Using Shortest Path Bridging (SPB) Service Instance Identifier (I-SID) Trees
EP2960800B1 (en) 2013-02-20 2019-06-19 Panasonic Intellectual Property Management Co., Ltd. Wireless access device and wireless access system
US10404520B2 (en) 2013-05-29 2019-09-03 Microsoft Technology Licensing, Llc Efficient programmatic memory access over network file access protocols
US9641614B2 (en) 2013-05-29 2017-05-02 Microsoft Technology Licensing, Llc Distributed storage defense in a cluster

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030065782A1 (en) * 2001-09-28 2003-04-03 Gor Nishanov Distributed system resource protection via arbitration and ownership
JP2011526038A (ja) * 2008-06-27 2011-09-29 マイクロソフト コーポレーション クラスタ共有ボリューム
JP2012503249A (ja) * 2008-09-19 2012-02-02 マイクロソフト コーポレーション 永続予約を介する共有書込みアクセスのリソースアービトレーション

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020529668A (ja) * 2017-08-02 2020-10-08 セールスフォース ドット コム インコーポレイティッド 分散クラスタシステムにおけるノードのフェンシングアウト
JP7233411B2 (ja) 2017-08-02 2023-03-06 セールスフォース インコーポレイテッド 分散クラスタシステムにおけるノードのフェンシングアウト

Also Published As

Publication number Publication date
RU2015151122A3 (ja) 2018-03-29
US20170228184A1 (en) 2017-08-10
EP3005070A1 (en) 2016-04-13
RU2656828C2 (ru) 2018-06-06
BR112015029220B1 (pt) 2021-12-28
BR112015029220A2 (pt) 2017-07-25
CN105283831B (zh) 2018-11-16
CN105283831A (zh) 2016-01-27
JP6382958B2 (ja) 2018-08-29
US9641614B2 (en) 2017-05-02
RU2015151122A (ru) 2017-05-31
US10503419B2 (en) 2019-12-10
WO2014193770A1 (en) 2014-12-04
US20140359054A1 (en) 2014-12-04
EP3005070B1 (en) 2018-02-14

Similar Documents

Publication Publication Date Title
JP6382958B2 (ja) クラスタにおけるストレージ防御の分散
US10545831B2 (en) Safe data access following storage failure
JP6654183B2 (ja) 通信障害後の分散ワークロード再割り当て
JP6676039B2 (ja) ホストデバイスコンピューティング環境へのターゲットデバイスリソースの貸与
JP2016520240A (ja) ネットワークファイルアクセスプロトコルを通じた効率的なプログラマチックメモリアクセス
US20140359612A1 (en) Sharing a Virtual Hard Disk Across Multiple Virtual Machines
US9935844B2 (en) Reducing internodal communications in a clustered system
WO2016022257A1 (en) Data backup to and restore from trusted devices in close physical proximity
CN109906453B (zh) 建立用于有状态云服务的安全会话的方法、系统
US9459975B2 (en) Managing storage connections
US11930056B1 (en) Reducing noise for online meetings

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170516

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170516

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180326

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180625

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: 20180703

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180802

R150 Certificate of patent or registration of utility model

Ref document number: 6382958

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250