JP5059974B2 - クラスタ共有ボリューム - Google Patents

クラスタ共有ボリューム Download PDF

Info

Publication number
JP5059974B2
JP5059974B2 JP2011516432A JP2011516432A JP5059974B2 JP 5059974 B2 JP5059974 B2 JP 5059974B2 JP 2011516432 A JP2011516432 A JP 2011516432A JP 2011516432 A JP2011516432 A JP 2011516432A JP 5059974 B2 JP5059974 B2 JP 5059974B2
Authority
JP
Japan
Prior art keywords
node
volume
request
cluster
redirector
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.)
Expired - Fee Related
Application number
JP2011516432A
Other languages
English (en)
Other versions
JP2011526038A (ja
JP2011526038A5 (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 JP2011526038A publication Critical patent/JP2011526038A/ja
Publication of JP2011526038A5 publication Critical patent/JP2011526038A5/ja
Application granted granted Critical
Publication of JP5059974B2 publication Critical patent/JP5059974B2/ja
Expired - Fee Related 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
    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1479Generic software techniques for error detection or fault masking
    • G06F11/1482Generic software techniques for error detection or fault masking by means of middleware or OS functionality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/13File access structures, e.g. distributed indices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • 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
    • 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/0635Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
    • 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
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/40Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error 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 processing functionality is redundant
    • G06F11/2035Error 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 processing functionality is redundant without idle spare hardware
    • 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/202Error 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 processing functionality is redundant
    • G06F11/2046Error 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 processing functionality is redundant where the redundant components share persistent storage

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Databases & Information Systems (AREA)
  • Quality & Reliability (AREA)
  • Data Mining & Analysis (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Hardware Redundancy (AREA)
  • Storage Device Security (AREA)

Description

本発明は、クラスタ共有ボリュームに関する。
サーバククラスタは一般に、いずれかのサーバが故障しても、クラスタの他のサーバがその故障したサーバの動作を透過的に引き継ぐ、すなわち故障したサーバのアプリケーションを再開して、重大な中断なしにクライアントにサービスを提供し続ける、サーバ(ノード)のグループである。この動作は一般に、フェイルオーバー(障害迂回)又はフェイルオーバークラスタリングと称される。
現在、フェイルオーバークラスタリングは「非共有」記憶モデルを用い、そのモデルでは各記憶ユニット(例えば、ディスク又はその一部)を1つのノードが所有する。そして、記憶ユニットを所有するノードだけが、LUN(Logical Unit Number:論理ユニット番号)によって参照される特定の記憶ユニットに入力/出力(I/O)を行うことができる。LUNは1以上のボリュームを表す。
このモデルでは、アプリケーションが開始する前にディスクをオンライン状態にし、アプリケーションが終了した後にオフライン状態にすることを保証するために、アプリケーション及びディスクリソースは、アプリケーションリソースとディスクリソースとの間に明白な従属関係を有する共通のグループ(LUNに対応するフェイルオーバーのユニット)の一部である。その結果として、Microsoft(登録商標) SQL Server、Microsoft Exchange Server、及びMicrosoft File Services等のクラスタ化されたアプリケーションがこのI/Oモデルに制約され、それにより同一のディスクへのアクセスを必要とするすべてのアプリケーションが、同一のクラスタノードで動作される必要がある。
しかしながら、アプリケーションのフェイルオーバー及び再開始動作はボリュームの取り外し及び再取り付けのために要する時間によって制限される。更に、非共有モデルは、実際の使用状況で要求される比較的多くのLUNにより、取り付けた記憶装置の高い管理コストをもたらす可能性がある。例えば、保存されたファイルがSAN(storage area network)上に保存される場合に、若干より粒度の細かいフェイルオーバーを有するように、多くのLUNをSAN上で形成する必要がある。これは、同時に同一のLUNに依存する全てのアプリケーションをフェイルオーバーさせる必要性のためである。1つのノードだけが特定の時間にLUNへのアクセスを有するので、同一のLUNにあるアプリケーションが異なるノードにフェイルオーバーすることができない。
本概要は、以下の「発明を実施するための形態」でさらに説明される概念から選択したものを簡略化した形式で紹介するために提供するものである。本概要は、特許請求の範囲に記載されている主題の重要な特徴または本質的な特徴を特定することを意図するものでも、特許請求の範囲に記載されている主題の範囲を決定する際の一助として使用することを意図するものでもない。
簡潔に言うと、本明細書で説明される構成の様々な態様は、記憶ボリュームがクラスタノードによって共有される技術を対象としている。一実施例では、各ノードは、そのノードからボリュームへの共有アクセスを提供するファイルI/Oリダイレクタを含む。
一態様では、1つのノードは所有ノードを備え、所有ノードは、記憶装置の所有権を、その記憶装置と関連付けられた登録テーブルにキーを書き込む永続的予約機構を介して維持する。所有していないノードは登録テーブルに共有キーを書き込む。所有ノードはクラスタメンバシップデータに対して共有キーを確認し、有効とは思えない任意のキーを無効にする(例えば、削除する)。
一態様では、リダイレクタは、ファイルシステムメタデータ要求を第1の通信パスを介して記憶装置を所有するノードに送り、少なくともいくつかのファイルシステム読み取り及び書き込みデータをその記憶装置に、第1の通信パルスと比較して高速通信パスを備える第2の通信パスを介して送る。例えば、より低速のパスはSMB等のネットワークプロトコルに基づき、一方、より高速のパスは記憶装置に送られたダイレクトブロックレベルI/Oとすることができる。
その他の利点は、図面を共に用いて、次の詳細な説明から明らかにすることができる。
本発明が例示の目的で示されるが、添付の図面には限定されない。図面では、同様の参照符号により同様の要素を示す。
クラスタ共有ボリュームを有するサーバクラスタリング環境における例示のコンポーネントを表すブロック図である。 クラスタ共有ボリュームクラスタリング環境におけるノード内の例示のコンポーネントを示すブロック図である。 クラスタ共有ボリュームを予約及び/又はアクセスするための例示のステップを示すフロー図である。 例示のクラスタ共有ボリュームリダイレクタインスタンスを示すブロック図である。 クラスタ共有ボリュームリダイレクタを介する例示の読み取り及び書き込み操作を示すブロック図である。 (例えば)クラスタ共有ボリューム上のリモートファイルのファイル作成要求を処理する場合に、クラスタ共有ボリュームリダイレクタによって行われる例示のステップを示すフロー図である。 (例えば)クラスタ共有ボリュームに読み取り/書き込みI/Oを転送することに関して、クラスタ共有ボリュームリダイレクタによって行われる例示のステップを示すフロー図である。 ノード上のセキュリティサポートを提供するために動作するクラスタ認証マネージャモジュールを示すブロック図である。 クラスタ共有ボリュームについてセキュリティに関連する例示のステップを示すブロック図である。 本発明の様々な態様を組み込むことができる例示のコンピューティング環境を示す図である。
本明細書で説明される技術の様々な態様は、一般的にクラスタ共有ボリュームを対象としている。クラスタ共有ボリュームによれば、一般にサーバノードのクラスタで動作するクラスタアプリケーション及びサービスは、クラスタの任意のノードからそれらのデータにアクセスすることができる。理解されるように、ディスクリソースが同一のグループアプリケーションに置かれることを必要とされないこと、および明白な従属関係の必要性を除去することを含め、1または複数のクラスタ共有ボリュームの利用により非共有モデルを改善する。
容易に理解されるように、クラスタ共有ボリューム技術により簡易化されたSAN管理が可能となり(例えば、かなり少ないLUNが必要とされる)、ディスク空間利用を改善し(例えば、1つのLUNをいくつかのアプリケーションによって共有することができる)、バッファリングされたファイル、バッファリングされていないファイル、及びメモリマッピングされたファイルのためにサポートを提供する。同時に、この技術はファイルのための単一の名前空間、根本的なボリュームフェイルオーバー又は管理の移動に関するI/Oフォールトトレランス(fault-tolerance)、及びローカルファイルシステムと互換性があるI/O能力を提供する。更に、本明細書で説明される技術は、クラスタ内のどこからでもファイルシステムアクセスを要求するクラスタアプリケーションのために、拡張性があるフォールトトレラントソルーションを提供する。理解されるように、一般に、クラスタリングサービスは、クラスタのノードの間でのディスクの配置及び関連するボリュームの取り付けを扱い、以下に説明されるようにダイレクトI/O機構を介してなど、メタデータファイル操作及び読み取り/書き込みI/O操作を扱う。
理解されるように、一実施例において、クラスタ共有ボリューム技術は、「ローカル」及び「リモート」NTFSファイルシステムの組み合わせを備える、拡張性なフォールトトレラント分散ファイルシステムを、クラスタのあらゆるところから透過的なファイルアクセスを要求するクラスタアプリケーションに提供する。クラスタ共有ボリューム技術は、クラスタリングサービスに、クラスタのノードの間でのディスクの配置及び関連するファイルシステムボリュームの取り付け、ブロックアロケーション及びファイルシステムに対するファイルロッキングを含むメタデータファイル操作、SMBプロトコル及びリモートファイルサーバサービス、及びダイレクトI/O機構を介する読み取り/書き込みI/O操作を委譲する。
一実施例において、クラスタ共有ボリューム技術は、ファイルシステムやSAN技術のように、Microsoft NTFSを用いたMicrosoft Windows(登録商標) Server Failover Clustingと協働するが、それらは例である。実際には、他の環境、ファイルシステム及び/又は記憶技術を用いて、本明細書で説明されている技術の1以上の態様を実施することができる。本発明は本明細書で説明されている特定の実施形態、態様、コンセプト、構成、機能又は例に限定されない。むしろ、本明細書で説明されている特定の実施形態、態様、コンセプト、構成、機能又は例のいずれも限定ではなく、一般に、コンピューティング、クラスタリング及びデータアクセスにおいて利益及び利点を与える様々な方法で本発明を用いることができる。
図1を参照すると、クラスタアプリケーション及びサービスがクラスタのノードからそれらのデータにアクセスすることができるクラスタ共有ボリューム環境の簡単なブロック図が示されている。概して、図1はノードA102、ノードB103及びノードC104からなる3つのノードクラスタを示している。(SANディスクの)NTFSボリューム/ディスク10がそのノードのいずれか1つ、すなわち、この例ではノードB103に取り付けられている(図1には示していないが、1以上の他の共有ボリュームがノードB又は他のノードに取り付けられても良い)。明確さ及び簡潔さのために、ノードC104の内部コンポーネントはノードA102と同様であるので、本明細書では図示及び説明しない。
ノードA102で動作しているアプリケーションがクラスタ共有ボリューム108のそれのファイルデータにアクセスすることを可能にするために、例示のアーキテクチャは、ミニリダイレクタ110を介して部分的にノードA102にボリューム108を公開する。例えば、ミニディレクタは、SMB(Server Message Block)プロトコルに基づいている。このミニディレクタは後述するように、ノードB103のサーバファイルシステムドライバ111と通信する。更に、クラスタ共有ボリュームリダイレクタ112は、処理A114で図1に表されているように、1以上のアプリケーション及びその他(例えば、サービス)からのファイルシステムI/Oをインターセプトして、適切に送り出す。ノードB103には同様のクラスタ共有ボリュームリダイレクタ113及び処理B115が示されている。
一実施例において、処理A114によって作成されたI/O要求は、クラスタ共有ボリュームリダイレクタ112によってインターセプトされる。メタデータに対するI/O要求は、ミニリダイレクタ110を介してリモートサーバFSD(ファイルシステムドライバ)に送信される。しかしながら、典型的なネットワーク共有とは違って、データ(読み取り及び書き込み)I/O要求は、クラスタ共有ボリュームリダイレクタ112によって、ローカル記憶装置ドライバ118を介してディスク10に直接送信される。すなわちこの例ではノードB103は関与しない。クラスタノードは一般的に、クラスタの記憶ユニットにSCSI、ファイバチャンネル、ISCSI又は他の高速通信リンクを介して(装置が取り付けられたノードを介することと同様に、例えばこの例では、SMBリンクを介してリモートサーバFSD(ファイルシステムドライバ)に)接続される。このNTFSベースの例においては、サーバファイルシステムドライバ117は、ノードBのリダイレクタ113及びNTFSファイルシステムドライバ121を介して、記憶装置ボリューム108にアクセスする。このように、ノードAは、自身のローカル記憶装置ドライバ118及びリモート記憶装置ドライバ119を介して、記憶装置ボリューム108にアクセスすることができる。
理解されるように、このメタデータアクセスのためのSMBと読み取り及び読み出しデータのためのダイレクトI/Oとの組み合わせは、大幅な性能改善を提供する。しかしながら、SMBリンクは、ダイレクトI/Oデータリンクが機能しない場合、又は、例えば、不均衡を調整するためにディスクボリューム108のノードAの利用を意図的に抑える場合など、読み取り及び書き込みI/Oデータを送るクラスタ共有ボリュームリダイレクタ112に対してそれでも選択的に有効である。よって、リダイレクタは、少なくとも1つの現在の状態に応じて、読み取り及び書き込みI/Oデータのための通信パスを選択しても良い。
本明細書で例示されたクラスタ共有ボリューム技術は、多数のクラスタノードからボリュームへの同時アクセスを可能にする変化した予約方式(altered reservation scheme)と共に、共有ディスクを扱う現存のクラスタリングサービス機構に依存する。この目的を達成するために、各ノードはカーネルドライバを備えるクラスタディスクドライバ(例えば、cluster disk.sys)を含む。後述するように、記憶装置ボリューム108についてのリモートノードのクラスタディスクドライバ(例えば、130)は、装置ボリューム108にアクセスするために予約機構/アルゴリズムに加わり、一方、所有するノードのクラスタディスクドライバ131は、装置所有権を維持して保護するために予約機構/アルゴリズムに加わる。例示のクラスタディスクドライバ130及び131は、クラスタサービス140及び141とそれぞれ協働して、永続的な予約技術を利用するアルゴリズムを用いる。
背景技術として、米国特許番号7,277,952で説明される従来の永続的予約所有権アルゴリズムは非共有モデルを実施しており、すなわち、ディスクを所有するノードは排他的所有権及びフルアクセス権を有する一方、他のノードは読み取り専用のアクセス権を有する。所有権は、予約キー(PRキーと称する)を用いる書き込みが登録者のみとされた永続的な予約をディスクのPR予約テーブルに配置することにより、所有者ノードによって主張される。所有するノードは、PR登録テーブルを周期的に(例えば、初期値の3秒毎に)調べることにより、この所有権を維持/保持する。他のノードは、PR登録テーブルに自身のキーを登録することにより(所有しているノードがクラッシュした場合に引き継ぐために)所有権に挑戦する。所有しているノードが動作可能であり、テーブルに自身のPRキーだけを見つける場合、行うべき動作はない。しかしながら、PR登録テーブルに自身以外のキーを見つける場合、所有するノードはそのキーを無効にする(例えば、テーブルからそのキーを除去する、所有するノードが動作可能でない場合、挑戦するノードのキーはそのまま残り、それにより挑戦するノードが、自身のキーにより現在の所有者のPR予約を無効にすることにより所有権を引き継ぐ)。安定した機能的なクラスタ下においては、1つのディスクのPR予約テーブルは1つのキーを有し、それのPR登録テーブルはM個のキー(同一の所有者ノードからのそれらの全て)を有している。ここで、MはMPIOシステムのディスクへのIOパスの数である。非MPIOシステムについては、Mは1である。
クラスタ共有ボリュームに割り当てられたディスクについて、この永続的予約アルゴリズムを修正して、クラスタのノードが読み取り−書き込みモードで、安全な方法で基本的に同時に、ディスクにアクセスすることを可能にする。クラスタの外の装置は、クラスタ共有ボリュームディスクへのアクセス権を持たない。
図2に概して表されるように、物理ディスクリソース220はクラスタ内の共有ディスクを管理し、他の動作では、同一の共有ディスクに基本的に同時にアクセスすることを可能にすることを含め、クラスタディスクが安全にアクセスされ、破損から保護されることを保証する。これは共有永続的予約(PR)キー及びクラスタメンバシップの情報を用いることにより達成される。
クラスタ共有ボリュームディスク予約アルゴリズムについて、一実施例では、(例えば、クラスタサービス240の)ディスク制御マネージャ222は、物理ディスクリソース220を呼び出して、クラスタディスク208に対する新たな予約ポリシーを設定する。更に、クラスタディスク208は、上記した所有権のコンセプトに違反することなく、他のノードからの読み取り−書き込みI/Oを可能にする必要がある。この目的を達成するために所有者ノードはディスクの制御を保持するが、共有PRキー226を介してノード当たりベースでI/Oポリシーを緩和する。この共有PRキー機構/予約アルゴリズム228の元では、N番目のノードクラスタのクラスタ共有ボリュームディスク208は、その登録テーブルにN*M個のキーを有する。ここで、MはMPIO構成においてノードからディスクへのI/Oパスの数であり、非MPIOシステムではMは1である。所有者ノードは登録テーブル232にMキーを有し、予約テーブルに1つのキーを有する。
図3は図2の例示のコンポーネントを介して実施されるアルゴリズムの例示のステップを示すフロー図である。ステップ300を介して非所有者ノードとされると、ディスク制御マネージャ222は、物理ディスクリソース220に、共有PRキー226を登録テーブル232に挿入するよう要求する(ステップS302)。このキーはノード間では共有されないが、むしろこのキーが表すノードが、ディスクへの読み取り−書き込みアクセスを共有することを、所有者ノード及びいくつかの他のノードと共に示す。ノードの識別子(例えば、ノードId)はこの共有PRキー226の一部である。
所有者ノードでは、例示のステップ300を介して区別されると、ステップ304により、クラスタノードメンバシップデータ254を物理ディスクリソース220に知らせる。これはクラスタ内のボリュームを共有する動作中のノードを表す、単一のビットマスクを介して達成され得る(例えば、一般的に全てのノードであるが、必ずではない)。物理ディスクリソース220は、メンバシップデータ254をクラスタディスクドライバ231に送る。
ステップ306によって表されるように、所有権ノード上のクラスタディスクドライバ231が登録テーブル232に1以上のエクストラキー(自身の排他的PRキー以外)を見つけると、ステップ308によって表されるように、クラスタディスクドライバ231は、クラスタメンバシップデータ254に対してそれらキーの各々のノードIdを確認する。キーが有効であれば(ステップ310)、そのキーが登録テーブル232に残ることが許可され、そうでないと無効にされる(ステップ312)。ステップ314は他のキーのために検証を繰り返し、各ノードが共有ボリュームアクセスに参加するN番目のノードクラスタではN−1のそのような共有PRキーがある。
共有ボリュームアクセスポイントに関連する態様においては、ファイルの各々がノードから見たとき同一の名称及びパスを有するように、クラスタ共有ボリューム環境は一貫性があるファイル名前空間を提供する。この目的を達成するために、クラスタ共有ボリューム環境によって管理されるNTFSボリュームは、クラスタ共有ボリュームルートディレクトリ下でディレクトリ及びサブディレクトリとしてそれら自身を明示する。例えば、1つの形式において、クラスタ共有ボリュームは次のように表すことができる。
<%systemdrive>:\clusterStorage\Vol1
<%systemdrive>:\clusterStorage\Vol2
<%systemdrive>:\clusterStorage\VolN
なお、アーキテクチャは、例えば、特にその目的のためにクラスタノード上に作られた非システムドライブ又はRAMDISKベースのドライブのクラスタ共有ボリュームルートを公開する可能性を許可する。結果として、アクセスされているノードとは無関係に、同一パス及びファイル名称を用いてファイルを識別することができる(「位置独立」)。一実施例においては、クラスタ共有ボリュームルートディレクトリの名前を変更しても良く、マッピングのボリュームディレクトリの名前を、アプリケーションにより適合するよう、管理者が変更しても良い。
一実施例において一般に、各ノードに設けられたクラスタ共有ボリュームリダイレクタは、ディスクが取り付けられているところに無関係に、クラスタ共有ディスク又はディスクにシームレスアクセスを与える能力を備える。クラスタ共有ボリュームリダイレクタは、システム又は通信(例えば、ホストバスアダプタ)が故障の場合にディスクが1つのシステムから他のシステムにフェイルオーバーしているとき(短い停止とは別に)非中断の応答を提供することができる。
クラスタ共有ボリュームリダイレクタ212は、ディスク制御マネージャ222による配置決定を容易にするためにディスク当たりのアクセス統計データを収集しても良い。これはNTFSフィルタドライバとして実施され得る。また、クラスタ共有ボリュームリダイレクタ212は、リモート共有に対するファイルアクセスを可能にし、及びクラスタ共有ボリューム(ディスク)208へのI/Oを監視することもできる。そのI/Oは、ボリュームが取り付けられたサーバに、透過的にリダイレクトされる。内部的に、クラスタ共有ボリュームアクセスポイント(例えば、C:\cluster shared volume\VoIN)は、タイプ連結ポイント(type junction point)又はシンポリックリンク(symbolic link)のNTFSリパースポイント(reparse points)であっても良い。ボリュームがローカルとして取り付けられる場合、その連結ポイントはローカルボリュームデバイスオブジェクト、例えば、\??\Volume{...}を示す。ボリュームがリモートとして取り付けられる場合、同一のシンポリックリンクは、\\<Remote Virtual Node's IP Address>\<ShareName>を示す。ShareNameはクラスタディスクリソースがボリューム毎に作る共有を示す。
図4に示されるように、クラスタ共有ボリュームリダイレクタドライバ212は、いくつかの異なるインスタンス(例えば、4121−4123又は4124)を管理することができる。クラスタ共有ボリュームリダイレクタルートインスタンス4121は、クラスタ共有ボリュームルートをホストとするボリューム408に接続する。そのルートインスタンスは、ローカルアクセス用の転送インスタンス例えば、4122又はリモートアクセス用の転送インスタンス例えば、4123に、例えば、MUP(Multiple UNC Provider)/RDBSS(Redirected Drive Buffering Subsystem)との結びつきを介して連結している。なお、図4において、記憶スタックは分かり易くするために省略している。
一般に、クラスタ共有ボリュームリダイレクタルートインスタンス4121は、必要に応じてI/Oのインターセプト、ファイルハンドルの仮想化、プリンシパル識別の獲得及びI/Oの転送のための能力を有する。クラスタ共有ボリュームリダイレクタ転送インスタンス4122又は4123は、I/Oを適切なボリュームスタックに入れるために用いられる。クラスタ共有ボリュームリダイレクタ転送インスタンス4124は、ファイルを固定し、クライアントに成りすます能力を有する。なお、転送インスタンス及びサーバインスタンスは論理的に区別できるエンティティであるけれども、効率のためにそれらをノード上の同一のインスタンスとして実施しても良い。
クラスタ共有ボリューム環境によれば、アプリケーションが様々なファイルシステム構造物、例えば、ファイル、ディレクトリ、リンク等にアクセスすることができる。クラスタ共有ボリュームは、例えば、バッファリングされた、バッファリングされていない、及びマッピングされたメモリなど、様々な種類のファイルに対して高速パスI/O操作を構築する。そのようなリモートファイルの全体のI/O性能は、ローカルファイルシステムのI/O性能と同様である。
図5は、リモートファイルに対するCreateFile要求を扱う場合に、クラスタ共有ボリュームリダイレクタドライバによって行われる例示のステップを示し、入力されたパスに対する適切な転送インスタンスを検索することを表すステップ502で始まる。ステップ504は、クライアントのセキュリティ識別を獲得することを表す。
ステップ506は、転送インスタンスにCreateFile要求を送り、拡張したCreateFile属性に識別情報をセットする。ステップ508は、クラスタネームオブジェクト(CNO)なりすましとのSMB接続を介してI/Oを発する。なお、クラスタの名称を表すコンピュータアカウントはCNOによって参照される。このアカウントは、クラスタについての主セキュリティコンテキストである。ステップ510はCreateFileから拡張した属性を削除することを表し、ステップ512はクライアントのなりすましのステップを表す。
ステップ514はCreateFile要求をスタック下方に転送する。その動作がステップ516で評価されて成功したならば、ステップ518はファイルを固定する(成功しない場合はエラーに対処する、例えば、再試行、戻ったエラーコード等を用いて)。ステップ520は、例えば、修正したサーバファイルシステムドライバ(例えば、Server.sys)を介してそのファイル範囲を問い合わせる(例えば、どのようにファイルがマッピングされるのか識別する)。
ステップ522では、読み取り書き込み要求(図6及び図7について後述される)について、I/Oをディスクに直接発することができる(ステップ524)。例えば、読み取り/書き込み操作がファイルについて起きるときはいつも、クラスタ共有ボリュームフィルタドライバはファイルの論理ブロック割り当て、LUNにおけるボリュームのブロックオフセット、及びLUNのドライバ番号を用い、I/O操作を未加工の(raw)ディスクセクタ読み取り/書き込み操作に変換して、それをローカルNTデバイススタックに送る。
ステップ526によって表されるように、ユーザがファイルサイズ及び/又は論理ブロック割り当てを変更するファイルに対するI/Oを発するときはいつも、クラスタ共有ボリュームフィルタドライバは、ファイルのブロック割り当てをリロードする(ステップ528)。
図6及び図7はクラスタ共有ボリュームリダイレクタ読み取り/書き込みI/O操作を例示している。なお、図6において記憶スタックは分かり易くするために省略されている。特に、クラスタ共有ボリューム環境はフォールトトレランスを備え、透過的に、ノード、ネットワーク及び通信(例えば、ホストバスアダプタ)の故障に対処する。これは仮想ハンドルテーブル520(図2)及びクラスタNetFTフォールトトレランスTCP/IPドライバの使用によってクラスタ共有ボリュームリダイレクタにおいて達成され得る。
NetFTは、各ホストで仮想サブネットに対する仮想アダプタを公開するクラスタネットワークフォールトトレランスTCP/IP NDISミニポートドライバである。また、その物理ネットワークアダプタは各ホストでIP層に対して公開される。NetFTドライバは、最も有効であると思われる物理ネットワークパスを通り抜けて、仮想サブネットでパケットを転送する。フォールトトレランス通信を得るために、クラスタ共有ボリュームリダイレクタは、仮想サブネット上のインターフェースに結合する。そのボリュームがリモートとして取り付けられる場合、同一のシンボリックリンクは\\<Remote Virtual Node's IP Address>\<ShareName>を示す。ここで、Remote Virtual Node IP Addressはクラスタ内仮想IPアドレスを示す。
アプリケーションはクラスタ共有ボリュームの物理的位置と関連させる必要がない。なぜならば、ディスクボリュームがノード故障として、又は負荷バランス、ネットワーク管理組織、サービス、管理等の他の理由のために移動される可能性があるからである。アプリケーションの観点から他のノードへのディスクの移動をマスクするために、クラスタ共有ボリュームに存在するファイルについてアプリケーションによって開かれるハンドル毎に、クラスタ共有ボリュームリダイレクタ212は、例えば、仮想ハンドルテーブル250(図2)において、ファイルへのハンドルを内部に維持する。通信(例えば、ホストバスアダプタ)故障又はノード故障時に、クラスタ共有ボリュームリダイレクタ212は、その内部(実際の)ハンドルを閉じ及び再び開く。一方、アプリケーション(仮想の)ハンドルが有効な状態で残る。ホストバスアダプタ故障の場合には、異なる通信パスが用いられる(例えば、ダイレクトI/Oに代わってSMB)。ノード故障の場合には、ハンドルは新しい所有者ノードを示して再び開かれる(なお、クラスタインフラストラクチャは、ノード故障の検出及び連続的なディスクフェイルオーバーのための能力を有する。)ディスクが移動する場合、クラスタ共有ボリュームリダイレクタ212は、アプリケーションには透過的に、自身の仮想ハンドルテーブル250を更新する。
通常の場合には、アプリケーションによって開始される操作毎に、クラスタ共有ボリュームフィルタドライバ212は、図6及び図7のI/O転送のための例示のステップで示されるように、内部(実際の)ハンドルに基づいて操作をリダイレクトする。特に、ステップ702によって表されるように、アプリケーションが仮想ハンドルでI/O操作を開始し、バッファリングされていないI/Oをファイルに使用するとき(ステップ704)、ステップ706でブロック変換が行われ、I/Oがデバイスに直接送られる。ダイレクトI/O故障の場合には(ステップ708)、ステップ709は、ディスク制御マネージャ222に故障を示す。ステップ710は、そのディスク制御マネージャが回復動作をし終えることを待つことを表す。その後、ステップ711がI/Oを再び発する。そのような故障の一般的な種類は、通信(例えば、ホストバスアダプタ)の故障又は所有者ノード故障を含む。
代わりにバッファリングされているI/Oが使用される場合、ステップ704はステップ712に分岐する。ステップ712では、ディスクがどこに連結されているか、すなわちリモート又はローカルかに応じて、I/OをNTFS又はSMBリダイレクタに送る。なお、ステップ704は、状態ベースのルーティングを表しても良い。例えば、ダイレクトI/Oパスが故障である又は意図的な抑制が望まれている場合、ネットワークプロトコルベース(例えば、SMB)の通信パスが用いられる。リダイレクトされたI/Oの故障の場合には(ステップ714)、ステップ716は、I/Oをブロックし、その故障をディスク制御マネージャに知らせ、ディスク制御マネージャがそれの回復動作をし終えることを待つ。その後、ステップ718がI/Oを再び発する。
I/Oはファイルのブロック割り当てを変更することができる種類のリダイレクトされたI/Oでも良く(例えば、リサイズ)、一方、ハンドルはダイレクトI/Oのためにマークされている。もしそうならば、ステップ720によって評価されるように、ステップ722は、ファイルのブロック割り当てをリロードする。
図8及び図9の例に一般的に表される、セキュリティに関連する態様を参照すると、権限を有するクライアントは、クラスタ共有ボリューム環境で公開されているボリュームにアクセスすることができる。ユーザドメインアカウントや、LocalSystem及びLocalServer等の選択ローカルビルトインアカウント下で動作しているクライアント(処理及びサービス)がサポートされる。ノード間のネットワーク通信を横断するとき、ローカルユーザ識別に代わってクラスタ識別(CNO)が用いられ、続いてその元のユーザ識別がリモートノードにおいて回復される。その結果、クライアントアプリケーションはネットワーク境界に気が付かず、ローカルであるとしてリソースにアクセスする。このモデルは適切なネットワークアクセスチェックを備え、別のクラスタノードからの要求だけがアクセスを有する。
一実施例において、クラスタ権限マネージャ又はCAM(図8の880又は881)は、各ノードでSSP/AP(Security Support Provider/Authentication Package)として、それぞれのLSA(Local Security Authority)サービス(図8の882又は883)内で動作するモジュールを備える。例えば、CAM880は、複写されたWindowsログオンセッション及びユーザセキュリティアクセストークンをクラスタ共有ボリュームに対して提供しても良い。
CAM880は、元のセキュリティアクセストークンからグループデータ及び特権データを取り出し、その情報を用いて目的のマシーンにおいてネットワークトークンを再構築する。これは委任、認証情報、又はドメインコントローラへのアクセスを要求することなく行われ、それにより性能を改善し、セキュリティ委任がドメインポリシーで禁止されている環境における動作を可能にする。
一実施例において、グループ情報及び特権情報は「クラスタチケット」と称されるブロブに保存される。NTLMトークン及びローカルシステムトークン(例えば、LocalService又はNetworkService)等の元のノードにおいてトークンを複写するためにクラスタチケット使用し得ることを除いて、クラスタチケットはケルベロス(Kerberos)チケットに類似する。
クラスタチケットは全てのクラスタノードにより共有されるキーによって暗号化され保護される。一実施例において、このキーはクラスタ形成/加入処理の間に安全な方法で作成され送信されるセッションキーである。
動作において、図9の例示のステップによって一般に表されるように、ステップ902では、アプリケーションはプリンシパル「A」のトークンを用いてファイルを作成する/開く。ステップ904では、クラスタ共有ボリュームリダイレクタ112は、CAM880に接触し、CAM880はトークン「A」情報を組み込むクラスタチケットを生成する。また、CAM880はCNOトークンを作成する。
ステップ906では、CNOトークンに成りすましながら、クラスタ共有ボリュームリダイレクタは、SMBにおいてファイルを作成し/開く(なお、一実施例において、CNOは「NTFSルート」共有へのフルアクセス権を有する唯一のプリンシパルである)。クラスタチケットは、File Extended Atributes(ファイル拡張属性)に組み込まれる(ステップ906)。
ステップ908では、(他のノード上の)クラスタ共有ボリュームリダイレクタ113は、クラスタチケットを抽出し、それのCAM881を呼び出してプリンシパル「A」のネットワークトークンを生成する。クラスタ共有ボリュームリダイレクタ113は、CNOネットワークトークンをプリンシパル「A」のネットワークトークンで置き換え、それにより、NTFSを介してファイルにアクセスする。セキュリティチェックの一部として、共有永続予約キーを評価して、要求するノードがまだ有効なメンバであることを保証するようにしても良い。
(例示的な動作環境)
図10は図1〜図9の例を実施することができる適切なコンピューティング及びネットワーキング環境1000の例を示している。コンピューティングシステム環境1000は適切なコンピューティング環境の一例に過ぎず、本発明の使用又は機能の範囲について何らかの限定を提示するつもりではない。例示的動作環境1000に示されたコンポーネントのいずれか1又は組み合わせに関連する従属又は要求を有するようにコンピューティング環境1000が解釈されるべきでない。
本発明は多くの他の一般的な目的又は特定の目的のコンピューティングシステム環境又は構成で動作する。本発明の使用のために適した良く知られたコンピューティングシステム、環境、及び/又は構成の例は、限定されないが、上記のシステム又は装置のいずれかを含むパーソナルコンピュータ、サーバコンピュータ、ハンドヘルド装置又はラップトップ装置、タブレット装置、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セットトップボックス、プログラム可能な消費者向け家電、ネットワークPC、ミニコンピュータ、メインフレームコンピュータ、分散コンピューティング環境等を含む。
本発明はプログラムモジュール等のコンピュータ実行可能なインストラクション(命令)の一般的なコンテキストに示され、コンピュータによって実行されても良い。一般に、プログラムモジュールは特定のタスクを実行し、又は特定の抽象データ型を実施するルーチン、プログラム、オブジェクト、コンポーネント、データ構造等を含む。また、通信ネットワークを介してリンクがされているリモート処理装置によってタスクが実行される分散コンピューティング環境において本発明が実施されても良い。分散コンピューティング環境において、プログラムモジュールはメモリ記憶装置を含むローカル及び/又はリモートコンピュータ記憶メディア(媒体)に配置されても良い。
図10に関して、本発明の様々な態様を実施するための例示的システムがコンピュータ1010の形で一般目的のコンピューティング装置を含んでも良い。コンピュータ1010のコンポーネントは、限定されないが、処理ユニット1020、システムメモリ1030、及びシステムバス1021を含んでも良い。システムバス1021はシステムメモリを含む様々なシステムコンポーネントを処理ユニット1020に連結している。システムバス1021は様々なバスアーキテクチャのいずれかを用いるメモリバス又はメモリコントローラ、周辺バス、及びローカルバスを含む様々な種類のバス構造のいずれかであれば良い。例として、限定はされないが、そのようなアーキテクチャはISA(Industry Standard Architecture)バス、MCA(Micro Channel Architecture)バス、EISA(Enhanced ISA)バス、VESA(Video Electronics Standards Architecture)バス、Mezzanineバスとして知られたPCI(Peripheral Component Interconnect)バスを含む。
コンピュータ1010は、様々なコンピュータ読み取り可能なメディアを一般に含む。コンピュータ読み取り可能なメディアはコンピュータ1010がアクセスすることができ、揮発性及び不揮発性のメディアと、取り外し可能及び取り外し不能なメディアとの両方を含む有効なメディアであることができる。例としては、限定されないが、コンピュータ読み取り可能なメディアはコンピュータ記憶メディア及び通信メディアを備える。コンピュータ記憶メディアはコンピュータ読み取り可能命令、データ構造、プログラムモジュール又は他のデータ等の情報の記憶のための方法又は技術において実施される揮発性及び不揮発性メディアと、取り外し可能及び取り外し不能メディアとを含む。コンピュータ記憶メディアは、限定されないが、RAM、ROM、EEPROM、フラッシュメモリ又は他のメモリ技術装置、CD−ROM、ディジタルバーサタイルディスク(DVD)又は他の光ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置又は他の磁気記憶装置、又は所望の情報を保存するために用いられかつコンピュータ1010によってアクセスすることができる他のメディアを含む。通信メディアは一般に、搬送波又は他の搬送機構等の変調されたデータ信号内に、コンピュータ読み取り可能な命令、データ構造、プログラムモジュール又は他のデータを組み込み、情報配達メディアを含む。その「変調されたデータ信号」はその信号内の情報を符号化するような方法で設定又は変更された特性の1以上を有する信号を意味する。例としては、限定されないが、通信メディアは、有線ネットワーク又はダイレクト有線接続等の有線メディアと、音響、RF、赤外線及び他の無線メディア等の無線メディアとを含む。また、上記のいずれかの組み合わせをコンピュータ読み取り可能なメディアの範囲内に含んでも良い。
システムメモリ1030は、ROM(リードオンリメモリ)1031及びRAM(ランダムアクセスメモリ)1032等の揮発性及び/又は不揮発性メモリの形でコンピュータ記憶メディアを含む。スタートアップ間等のコンピュータ1010内のエレメント間の情報を伝達するために役立つ基本ルーチンを含む基本入力/出力システム1033(BIOS)が一般にROM1031には保存されている。RAM1032は処理ユニット1020によって直ちにアクセスすることができる及び/又は現在動作されているデータ及び/又はプログラムモジュールを一般に含む。例としては、限定されないが、図10はオペレーティングシステム1034、アプリケーションプログラム1035、他のプログラムモジュール1036及びプログラムデータ1037を示している。
また、コンピュータ1010は他の取り外し可能/取り外し不能で揮発性/不揮発性コンピュータ記憶メディアを含む。単なる例としては、図10は取り外し不能で不揮発性の磁気メディアから読み取りそれに書き込むハードディスクドライブ1041、取り外し可能で不揮発性の磁気ディスク1052から読み取りそれに書き込む磁気ディスクドライブ1051、及びCD−ROM又は他の光メディア等の取り外し可能で不揮発性の光ディスク1056から読み取りそれに書き込む光ディスクドライブ1055を示している。例示的な動作環境での使用が可能な他の取り外し可能/取り外し不能で揮発性/不揮発性コンピュータ記憶メディアは、限定されないが、磁気テープカセット、フラッシュメモリカード、ディジタルバーサタイルディスク、ディジタルビデオテープ、半導体RAM、半導体ROM等を含む。ハードディスクドライブ1041は一般に、インターフェース1040等の取り外し不能メモリインターフェースを介してシステムバス1021に接続され、磁気ディスクドライブ1051及び光ディスクドライブ1055は一般に、インターフェース1050等の取り外し可能メモリインターフェースによってシステムバス1021に接続されている。
上述されかつ図10で示されたドライブ及びそれに関連したコンピュータ記憶メディアは、コンピュータ読み取り可能な命令、データ構造、プログラムモジュール及びコンピュータ1010用の他のデータの記憶を提供する。図10において、例えば、ハードディスクドライブ1041はオペレーティングシステム1044、アプリケーションプログラム1045、他のプログラムモジュール1046及びプログラムデータ1047を保存するとして示している。なお、それらのコンポーネントはオペレーティングシステム1034、アプリケーションプログラム1035、他のプログラムモジュール1036及びプログラムデータ1037と同一であっても又は異なっても良い。オペレーティングシステム1044、アプリケーションプログラム1045、他のプログラムモジュール1046及びプログラムデータ1047は本明細書では少なくとも異なっていることを示すために異なる番号が与えられている。ユーザは、タブレット又は電子デジタイザ1064、マイクロホン1063、キーボード1062、及びマウス、トラックボーメ又はタッチパッドと共通に称されるポインティング装置1061等の入力装置を介してコンピュータ1010に命令及び情報を入力することができる。図10に示されていない他の入力装置はジョイスティック、ゲームパッド、サテライトディッシュ、スキャナー等を含んでも良い。それら及び他の入力装置は、システムバスに連結されているユーザ入力インターフェース1060を介して処理ユニット1020に度々接続される。ユーザ入力インターフェース1060は、パラレルポート、ゲームポート又はUSB(ユニバーサルシリアルバス)等の他のインターフェース及びバス構造によって接続されても良い。また、モニタ1091又は他の種類の表示装置は、ビデオインターフェース1090等のインターフェースを介してシステムバス1021に接続されている。モニタ1091はタッチスクリーンパネル等と合体されても良い。なお、モニタ及び/又はタッチスクリーンパネルは、タブレット型のパーソナルコンピュータ内のように、コンピューティング装置1010が組み込まれたハウジングに物理的に連結されても良い。加えて、コンピューティング装置1010等のコンピュータは、出力周辺インターフェース1094等を介して接続され得るスピーカ1095、プリンタ1096等の他の周辺出力装置を含んでも良い。
コンピュータ1010はリモートコンピュータ1080等の1以上のリモートコンピュータと論理接続部を用いてネットワーク化環境で動作しても良い。リモートコンピュータ1080は、パーソナルコンピュータ、サーバ、ルータ、ネットワークPC、ピア装置又は他の共通ネットワークノードであっても良く、メモリ記憶装置1081だけが図10では示されているが、一般にコンピュータ1010と関連して上述されたエレメントの多く又は全てを含む。図10に示された論理接続部は1以上のLAN(ローカルエリアネットワーク)1071及び1以上のWAN(ワイドエリアネットワーク)1073を含むが、他のネットワークを含んでも良い。そのようなネットワーク化環境はオフィス、企業規模のコンピュータネットワーク、イントラネット及びインターネットにおいて普通である。
LANネットワーク化環境において用いられるとき、コンピュータ1010はネットワークインターフェース又はアダプタ1070を介してLAN1071に接続される。WANネットワーク化環境において用いられるとき、コンピュータ1010は一般にインターネット等のWAN1073を介して通信を確立するためのモデム1072又は他の手段を含む。モデム1073は、内部又は外部にあっても良く、ユーザ入力インターフェース1060又他の適した機構を介してシステムバス1021に接続することができる。インターフェース及びアンテナを備える等の無線ネットワーク化コンポーネント1074は、アクセスポイント又はピアコンピュータ等の適切な装置を介してWAN又はLANに接続されても良い。ネットワーク化環境において、コンピュータ1010又はその一部に関連して示されたプログラムモジュールはリモートメモリ記憶装置に保存されても良い。例としては、限定されないが、図10はメモリ装置1081に存在するとしてリモートアプリケーションプログラム1085を示している。当然であるが、示されたネットワーク接続部は例示であり、コンピュータ間の通信リンクを確立するための他の手段を用いても良い。
補助サブシステム1099(例えば、コンテンツの補助表示用)は、コンピュータシステムの主たる部分が低電力状態にあってもプログラムコンテンツ、システム状態、イベント通知等のデータがユーザに提供され得るようにユーザインターフェース1060を介して接続されても良い。補助サブシステム1099は、主たる処理ユニット1020が低電力状態にあるとき、それらのシステム間の通信を可能にするためにモデム1072及び/又はネットワークインターフェース1070に接続されても良い。
結論
本発明は様々な変更及び代替構成を受け入れることができるが、本発明の一部の実施形態は図面で示され、上記のように詳細に説明された。しかしながら、開示された特定の形式に本発明を限定する意向でなく、逆に本発明は全ての変更、代替構成、及び本発明の精神及び範囲に入る等価物を含んでいることが理解されるべきである。

Claims (13)

  1. サーバクラスタ環境において、複数のノードと、前記複数のノードに連結された記憶装置とを備え、
    前記記憶装置は前記複数のノードのうちのいずれか1に取り付けられたボリュームを含み、前記ボリュームが取り付けられているノードは前記記憶装置の所有ノードであり前記ボリュームが取り付けられていない他の各ノードは非所有ノードであり各非所有ノードは当該非所有ノードから前記ボリュームへの共有アクセスを提供するリダイレクタを含み、前記リダイレクタは、第1の通信パスを介してファイルシステムメタデータ要求を前記所有ノードに送り、前記第1の通信パスに比べて高速通信パスを備える第2の通信パスを介して、前記ボリュームに少なくともいくつかのファイルシステム読み取り及び書き込みデータを送り、前記リダイレクタは、I/O要求を受け取るルートインスタンスと、I/Oデータをドライバに転送するルートインスタンスに連結された転送インスタンスとを備え、前記リダイレクタは、アプリケーションの仮想ハンドルを、前記ボリュームによって用いられる実際のファイルシステムハンドルに変換するためのハンドルテーブルを維持し、前記ボリュームが他のノードの記憶装置に移動する場合、前記仮想ハンドルを変更することなく前記実際のファイルシステムハンドルを変更し、前記所有ノードは前記記憶装置の所有権を維持するための機構を含み、前記記憶装置の所有権を維持するための前記機構は、前記記憶装置と関連付けられた登録テーブルに所有権を示すキーを書き込む永続予約機構を備え、各非所有ノードは前記登録テーブルに共有キーを書き込むことを特徴とするシステム。
  2. 前記所有ノードはクラスタメンバシップデータに対して共有キーを確認し、前記クラスタメンバシップデータに基づいて有効でないと思えるキーを無効にすることを特徴とする請求項1記載のシステム。
  3. 前記リダイレクタは、ファイルシステム読み取り及び書き込みデータを前記第1の通信パス又は前記第2の通信パスを介して送るかを、少なくとも1つの現在の状態に基づいて選択的に判別することを特徴とする請求項1記載のシステム。
  4. ファイルにアクセスするために用いられる、グループデータ又は特権データ、又はグループデータ及び特権データの両方に対応する情報を含むトークンを用いるセキュリティコンポーネントを更に備えることを特徴とする請求項1記載のシステム。
  5. 前記ボリュームは、どのノードがファイル名を提供するかと無関係である単一の名前空間に対応するファイル名を介してアクセスされることを特徴とする請求項1記載のシステム。
  6. コンピューティング環境において、
    クラスタの所有ノードに取り付けられたボリュームに向けられたI/O要求を、前記クラスタの非所有ノードのリダイレクタがインターセプトするステップと、
    前記I/O要求が前記ボリュームに対するダイレクトI/Oによって対処され得るか否かを判定することを含み、ダイレクトI/Oによって対処され得る場合、ダイレクトI/Oを介して前記I/O要求を前記ボリュームにリダイレクトし、対処されない場合、前記I/O要求を、ネットワークプロトコルを介して前記I/O要求に対処する前記所有ノードにリダイレクトすることにより、前記リダイレクタが、前記I/O要求を処理するステップであって、前記リダイレクタは、第1の通信パスを介してファイルシステムメタデータ要求を前記所有ノードに送り、前記第1の通信パスに比べて高速通信パスを備える第2の通信パスを介して、前記ボリュームに少なくともいくつかのファイルシステム読み取り及び書き込みデータを送り、前記リダイレクタは、I/O要求を受け取るルートインスタンスと、I/Oデータをドライバに転送するルートインスタンスに連結された転送インスタンスとを備える、ステップと、
    前記リダイレクタが、アプリケーションの仮想ハンドルを実際のファイルハンドルに変換するためのハンドルテーブルを維持し、前記ボリュームに対応する記憶装置を所有するノード又は前記ボリュームに対応する前記記憶装置を所有するノードのホストバストアダプタの故障を検出し、前記ボリュームが他のノードの記憶装置に移動する場合、前記仮想ハンドルを変更することなく前記実際のファイルシステムハンドルを変更するステップと
    を含むことを特徴とする方法。
  7. 永続予約機構を介して前記所有ノードで前記記憶装置の所有権を維持するステップを更に含むことを特徴とする請求項6記載の方法。
  8. 前記I/O要求がダイレクトI/Oによって対処され得るか否かの判定は、
    前記I/O要求がメタデータ又は読み取り/書き込みデータに対応するか否かの判定、
    前記I/O要求がバッファリングされているI/O又はバッファリングされていないI/Oに対応するか否かの判定、又は、
    前記I/O要求がメタデータ又は読み取り/書き込みデータに対応するか否かの判定、及び前記I/O要求がバッファリングされているI/O又はバッファリングされていないI/Oに対応するか否かの判定の両方を含むことを特徴とする請求項6記載の方法。
  9. 前記I/O要求を処理するステップは、
    ホストバスアダプタ故障を検出して、前記I/O要求がダイレクトI/Oによって対処され得るか否かを判定するステップと、
    前記I/O要求を中止するステップと、代替のパスに切り替えるステップと、
    前記I/O要求を再開させるステップと
    を含むことを特徴とする請求項6記載の方法。
  10. 前記I/O要求がダイレクトI/Oによって対処され得るか否かの判定は、ダイレクトI/O通信パスの状態の判定、又は抑制状態に基づいてネットワークプロトコルを介してI/Oデータを通信するか否かの判定を含むことを特徴とする請求項6記載の方法。
  11. 前記要求はダイレクトI/Oによって対処され、
    前記I/O要求が前記I/O要求に対応するファイルのブロック割り当てを変更することができる種類であるか否か判定するステップと、
    変更できる種類である場合、前記ファイルのブロック割り当てを得るステップと
    を更に含むことを特徴とする請求項6記載の方法。
  12. 前記I/O要求はファイルを作成又は開くために使用されるメタデータに対応し、
    前記ファイルへのアクセスを許可するためにセキュリティ情報を処理するステップを更に含むことを特徴とする請求項6記載の方法。
  13. コンピュータ実行可能な命令を有する1以上のコンピュータ読み取り可能な記録媒体であって、コンピュータに、
    クラスタの所有ノードに取り付けられたボリュームに向けられたI/O要求を、前記クラスタの非所有ノードのリダイレクタがインターセプトするステップと、
    前記I/O要求が前記ボリュームに対するダイレクトI/Oによって対処され得るか否かを判定することを含み、ダイレクトI/Oによって対処され得る場合、ダイレクトI/Oを介して前記I/O要求を前記ボリュームにリダイレクトし、対処されない場合、前記I/O要求を、ネットワークプロトコルを介して前記I/O要求に対処する前記所有ノードにリダイレクトすることにより、前記リダイレクタが、前記I/O要求を処理するステップであって、前記リダイレクタは、第1の通信パスを介してファイルシステムメタデータ要求を前記所有ノードに送り、前記第1の通信パスに比べて高速通信パスを備える第2の通信パスを介して、前記ボリュームに少なくともいくつかのファイルシステム読み取り及び書き込みデータを送り、前記リダイレクタは、I/O要求を受け取るルートインスタンスと、I/Oデータをドライバに転送するルートインスタンスに連結された転送インスタンスとを備える、ステップと、
    前記リダイレクタが、アプリケーションの仮想ハンドルを実際のファイルハンドルに変換するためのハンドルテーブルを維持し、前記ボリュームに対応する記憶装置を所有するノード又は前記ボリュームに対応する前記記憶装置を所有するノードのホストバストアダプタの故障を検出し、前記ボリュームが他のノードの記憶装置に移動する場合、前記仮想ハンドルを変更することなく前記実際のファイルシステムハンドルを変更するステップと
    を含む、ステップを実行させる命令を格納することを特徴とするコンピュータ読み取り可能な記録媒体。
JP2011516432A 2008-06-27 2009-06-12 クラスタ共有ボリューム Expired - Fee Related JP5059974B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/147,956 US7840730B2 (en) 2008-06-27 2008-06-27 Cluster shared volumes
US12/147,956 2008-06-27
PCT/US2009/047267 WO2009158217A2 (en) 2008-06-27 2009-06-12 Cluster shared volumes

Publications (3)

Publication Number Publication Date
JP2011526038A JP2011526038A (ja) 2011-09-29
JP2011526038A5 JP2011526038A5 (ja) 2012-03-22
JP5059974B2 true JP5059974B2 (ja) 2012-10-31

Family

ID=41445218

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011516432A Expired - Fee Related JP5059974B2 (ja) 2008-06-27 2009-06-12 クラスタ共有ボリューム

Country Status (5)

Country Link
US (2) US7840730B2 (ja)
EP (1) EP2316077A4 (ja)
JP (1) JP5059974B2 (ja)
CN (1) CN102077193B (ja)
WO (1) WO2009158217A2 (ja)

Families Citing this family (90)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8332526B2 (en) 2005-05-25 2012-12-11 Microsoft Corporation Data communication protocol including negotiation and command compounding
US7840730B2 (en) 2008-06-27 2010-11-23 Microsoft Corporation Cluster shared volumes
US8719473B2 (en) * 2008-09-19 2014-05-06 Microsoft Corporation Resource arbitration for shared-write access via persistent reservation
US8135980B2 (en) * 2008-12-23 2012-03-13 Unisys Corporation Storage availability using cryptographic splitting
US20110252208A1 (en) * 2010-04-12 2011-10-13 Microsoft Corporation Express-full backup of a cluster shared virtual machine
US8448014B2 (en) * 2010-04-23 2013-05-21 International Business Machines Corporation Self-healing failover using a repository and dependency management system
US9684573B2 (en) 2010-04-29 2017-06-20 Veritas Technologies Llc Dismounting a storage volume
US8621260B1 (en) * 2010-10-29 2013-12-31 Symantec Corporation Site-level sub-cluster dependencies
US8458181B2 (en) 2010-12-08 2013-06-04 International Business Machines Corporation Distributed free block map for a clustered redirect-on-write file system
US8904006B2 (en) 2010-12-08 2014-12-02 International Business Machines Corporation In-flight block map for a clustered redirect-on-write filesystem
US8626713B2 (en) 2010-12-08 2014-01-07 International Business Machines Corporation Multiple contexts in a redirect on write file system
US8396832B2 (en) 2010-12-08 2013-03-12 International Business Machines Corporation Independent fileset generations in a clustered redirect-on-write filesystem
US8631277B2 (en) 2010-12-10 2014-01-14 Microsoft Corporation Providing transparent failover in a file system
US8732346B2 (en) 2010-12-17 2014-05-20 Microsoft Corporation Coordination of direct I/O with a filter
US8886609B2 (en) 2010-12-17 2014-11-11 Microsoft Corporation Backup and restore of data from any cluster node
US8463762B2 (en) 2010-12-17 2013-06-11 Microsoft Corporation Volumes and file system in cluster shared volumes
CN102142032B (zh) * 2011-03-28 2013-03-20 中国人民解放军国防科学技术大学 一种分布式文件系统的数据读写方法及系统
US9306737B2 (en) * 2011-05-18 2016-04-05 Citrix Systems, Inc. Systems and methods for secure handling of data
US8627431B2 (en) 2011-06-04 2014-01-07 Microsoft Corporation Distributed network name
US9342254B2 (en) 2011-06-04 2016-05-17 Microsoft Technology Licensing, Llc Sector-based write filtering with selective file and registry exclusions
US9652469B2 (en) 2011-06-04 2017-05-16 Microsoft Technology Licensing, Llc Clustered file service
US9331955B2 (en) 2011-06-29 2016-05-03 Microsoft Technology Licensing, Llc Transporting operations of arbitrary size over remote direct memory access
US8856582B2 (en) 2011-06-30 2014-10-07 Microsoft Corporation Transparent failover
US20130067095A1 (en) * 2011-09-09 2013-03-14 Microsoft Corporation Smb2 scaleout
US8788579B2 (en) 2011-09-09 2014-07-22 Microsoft Corporation Clustered client failover
US8578111B2 (en) * 2011-10-11 2013-11-05 Hewlett-Packard Development Company, L.P. Backup optimization policy table for controlling buffered/un-buffered input/output
CN102572009B (zh) * 2011-12-09 2015-11-25 华为终端有限公司 共享媒体文件的方法、网关和系统
US9361043B2 (en) 2012-01-13 2016-06-07 Hitachi, Ltd. Information processing and control system for inter processing apparatus control of storage devices
US8738701B2 (en) * 2012-02-28 2014-05-27 Microsoft Corporation Arbitration of disk ownership in a storage pool
US10430216B1 (en) * 2012-08-23 2019-10-01 Scale Computing Inc Virtual machine automated selection
US10454997B2 (en) * 2012-09-07 2019-10-22 Avigilon Corporation Distributed physical security system
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
US9256614B1 (en) 2013-06-28 2016-02-09 Emc Corporation File system snapshots over fully provisioned volume file in direct mode
US9256629B1 (en) 2013-06-28 2016-02-09 Emc Corporation File system snapshots over thinly provisioned volume file in mapped mode
US20150006846A1 (en) 2013-06-28 2015-01-01 Saratoga Speed, Inc. Network system to distribute chunks across multiple physical nodes with disk support for object storage
US9256603B1 (en) * 2013-06-28 2016-02-09 Emc Corporation File system over fully provisioned volume file in direct mode
US9329803B1 (en) 2013-06-28 2016-05-03 Emc Corporation File system over thinly provisioned volume file in mapped mode
US9372752B2 (en) * 2013-12-27 2016-06-21 Intel Corporation Assisted coherent shared memory
WO2015142339A1 (en) 2014-03-20 2015-09-24 Hewlett-Packard Development Company, L.P. Storage system transactions
US10659523B1 (en) * 2014-05-23 2020-05-19 Amazon Technologies, Inc. Isolating compute clusters created for a customer
US9665432B2 (en) * 2014-08-07 2017-05-30 Microsoft Technology Licensing, Llc Safe data access following storage failure
US9847918B2 (en) 2014-08-12 2017-12-19 Microsoft Technology Licensing, Llc Distributed workload reassignment following communication failure
US10237342B2 (en) 2014-09-17 2019-03-19 Dh2I Company Coordinated and high availability storage access
US9811428B2 (en) * 2014-09-22 2017-11-07 Netapp Inc. System and method for handling multi-node failures in a disaster recovery cluster
US10298458B2 (en) 2014-10-31 2019-05-21 Hewlett Packard Enterprise Development Lp Distributed system partition
US9628350B2 (en) 2014-11-05 2017-04-18 Amazon Technologies, Inc. Dynamic scaling of storage volumes for storage client file systems
US9853873B2 (en) 2015-01-10 2017-12-26 Cisco Technology, Inc. Diagnosis and throughput measurement of fibre channel ports in a storage area network environment
US11294893B2 (en) * 2015-03-20 2022-04-05 Pure Storage, Inc. Aggregation of queries
US9900250B2 (en) 2015-03-26 2018-02-20 Cisco Technology, Inc. Scalable handling of BGP route information in VXLAN with EVPN control plane
US10222986B2 (en) 2015-05-15 2019-03-05 Cisco Technology, Inc. Tenant-level sharding of disks with tenant-specific storage modules to enable policies per tenant in a distributed storage system
WO2016192025A1 (en) 2015-06-01 2016-12-08 SZ DJI Technology Co., Ltd. Systems and methods for memory architecture
US11588783B2 (en) 2015-06-10 2023-02-21 Cisco Technology, Inc. Techniques for implementing IPV6-based distributed storage space
US10778765B2 (en) 2015-07-15 2020-09-15 Cisco Technology, Inc. Bid/ask protocol in scale-out NVMe storage
CN106470104B (zh) 2015-08-20 2020-02-07 阿里巴巴集团控股有限公司 用于生成共享密钥的方法、装置、终端设备及系统
US9778865B1 (en) * 2015-09-08 2017-10-03 EMC IP Holding Company LLC Hyper-converged infrastructure based on server pairs
US9830082B1 (en) 2015-09-08 2017-11-28 EMC IP Holding Company LLC Hybrid hyper-converged infrastructure and storage appliance
US9892075B2 (en) 2015-12-10 2018-02-13 Cisco Technology, Inc. Policy driven storage in a microserver computing environment
CN105630708B (zh) * 2015-12-28 2018-09-21 飞依诺科技(苏州)有限公司 硬盘数据保护方法及计算机存储系统
US10380100B2 (en) * 2016-04-27 2019-08-13 Western Digital Technologies, Inc. Generalized verification scheme for safe metadata modification
US10140172B2 (en) 2016-05-18 2018-11-27 Cisco Technology, Inc. Network-aware storage repairs
US20170351639A1 (en) 2016-06-06 2017-12-07 Cisco Technology, Inc. Remote memory access using memory mapped addressing among multiple compute nodes
US10158743B2 (en) * 2016-06-12 2018-12-18 International Business Machines Corporation Compute node cluster management
US10664169B2 (en) 2016-06-24 2020-05-26 Cisco Technology, Inc. Performance of object storage system by reconfiguring storage devices based on latency that includes identifying a number of fragments that has a particular storage device as its primary storage device and another number of fragments that has said particular storage device as its replica storage device
US11563695B2 (en) 2016-08-29 2023-01-24 Cisco Technology, Inc. Queue protection using a shared global memory reserve
WO2018067467A1 (en) 2016-10-03 2018-04-12 Ocient Llc Infrastructure improvements for use in a massively parallel database management system
US10545914B2 (en) 2017-01-17 2020-01-28 Cisco Technology, Inc. Distributed object storage
US10243823B1 (en) 2017-02-24 2019-03-26 Cisco Technology, Inc. Techniques for using frame deep loopback capabilities for extended link diagnostics in fibre channel storage area networks
US10713203B2 (en) 2017-02-28 2020-07-14 Cisco Technology, Inc. Dynamic partition of PCIe disk arrays based on software configuration / policy distribution
US10254991B2 (en) 2017-03-06 2019-04-09 Cisco Technology, Inc. Storage area network based extended I/O metrics computation for deep insight into application performance
US11079971B2 (en) * 2017-03-31 2021-08-03 Veritas Technologies Llc Input/output (i/o) fencing without dedicated arbitrators
US10678953B1 (en) * 2017-04-26 2020-06-09 Seagate Technology Llc Self-contained key management device
US10303534B2 (en) 2017-07-20 2019-05-28 Cisco Technology, Inc. System and method for self-healing of application centric infrastructure fabric memory
US11120151B1 (en) 2017-08-02 2021-09-14 Seagate Technology Llc Systems and methods for unlocking self-encrypting data storage devices
US11016990B2 (en) * 2017-08-02 2021-05-25 Salesforce.Com, Inc. Fencing out nodes in a distributed clustered system
US10404596B2 (en) 2017-10-03 2019-09-03 Cisco Technology, Inc. Dynamic route profile storage in a hardware trie routing table
US10942666B2 (en) 2017-10-13 2021-03-09 Cisco Technology, Inc. Using network device replication in distributed storage clusters
US10834190B2 (en) 2018-01-18 2020-11-10 Portworx, Inc. Provisioning of clustered containerized applications
US11003372B2 (en) 2018-05-31 2021-05-11 Portworx, Inc. Protecting volume namespaces from corruption in a distributed container orchestrator
US11048523B2 (en) 2018-10-25 2021-06-29 Dell Products, L.P. Enabling software sensor power operation requests via baseboard management controller (BMC)
US10860078B2 (en) 2018-10-25 2020-12-08 Dell Products, L.P. Managing power request during cluster operations
CN109684860B (zh) * 2018-12-29 2020-08-14 杭州宏杉科技股份有限公司 一种基于业务关系的数据加密方法及装置
US10996879B2 (en) * 2019-05-02 2021-05-04 EMC IP Holding Company LLC Locality-based load balancing of input-output paths
US11372702B2 (en) 2019-10-22 2022-06-28 International Business Machines Corporation Optimized high availability management using cluster-wide view
CN111147496B (zh) * 2019-12-27 2022-04-08 北京奇艺世纪科技有限公司 数据处理方法及装置
US11934679B2 (en) * 2020-10-21 2024-03-19 EMC IP Holding Company, LLC System and method for segmenting volumes across a multi-node storage system
CN112328368B (zh) * 2020-11-20 2022-12-27 上海云轴信息科技有限公司 一种基于云平台的应用层存储方法及设备
US12058244B2 (en) 2021-09-09 2024-08-06 International Business Machines Corporation Prevention of race conditions in a dual-server storage system for generation of encryption key
CN114296637B (zh) * 2021-12-09 2024-05-17 广西东信数建信息科技有限公司 一种本地存储卷动态创建方法及设备
CN114281253B (zh) * 2021-12-10 2024-01-26 招商银行股份有限公司 存储卷的管理方法

Family Cites Families (52)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5479514A (en) * 1994-02-23 1995-12-26 International Business Machines Corporation Method and apparatus for encrypted communication in data networks
US5828876A (en) * 1996-07-31 1998-10-27 Ncr Corporation File system for a clustered processing system
US6073218A (en) 1996-12-23 2000-06-06 Lsi Logic Corp. Methods and apparatus for coordinating shared multiple raid controller access to common storage devices
US6151688A (en) * 1997-02-21 2000-11-21 Novell, Inc. Resource management in a clustered computer system
US6144999A (en) * 1998-05-29 2000-11-07 Sun Microsystems, Incorporated Method and apparatus for file system disaster recovery
US6438705B1 (en) 1999-01-29 2002-08-20 International Business Machines Corporation Method and apparatus for building and managing multi-clustered computer systems
US7266706B2 (en) 1999-03-03 2007-09-04 Yottayotta, Inc. Methods and systems for implementing shared disk array management functions
US6415323B1 (en) * 1999-09-03 2002-07-02 Fastforward Networks Proximity-based redirection system for robust and scalable service-node location in an internetwork
US6532538B1 (en) 2000-02-17 2003-03-11 International Business Machines Corporation Method and system for supporting multiple operating systems on the same disk running on different computers at the same time
US6654902B1 (en) * 2000-04-11 2003-11-25 Hewlett-Packard Development Company, L.P. Persistent reservation IO barriers
US6804703B1 (en) 2000-06-22 2004-10-12 International Business Machines Corporation System and method for establishing persistent reserves to nonvolatile storage in a clustered computer environment
AU6778601A (en) * 2000-06-26 2002-01-08 International Business Machines Corporation Data management application programming interface for a parallel file system
US7315914B1 (en) * 2000-06-30 2008-01-01 Emc Corporation Systems and methods for managing virtualized logical units using vendor specific storage array commands
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
EP1370950B1 (en) * 2001-02-13 2017-12-27 NetApp, Inc. System and method for policy based storage provisioning and management
US6587921B2 (en) 2001-05-07 2003-07-01 International Business Machines Corporation Method and apparatus for cache synchronization in a clustered environment
US20040139125A1 (en) * 2001-06-05 2004-07-15 Roger Strassburg Snapshot copy of data volume during data access
CN1320483C (zh) 2001-09-21 2007-06-06 泛伺服公司 用于在多节点环境中实施日志处理的系统和方法
US7277952B2 (en) * 2001-09-28 2007-10-02 Microsoft Corporation Distributed system resource protection via arbitration and ownership
US7650412B2 (en) 2001-12-21 2010-01-19 Netapp, Inc. Systems and method of implementing disk ownership in networked storage
US7631066B1 (en) * 2002-03-25 2009-12-08 Symantec Operating Corporation System and method for preventing data corruption in computer system clusters
US6880052B2 (en) * 2002-03-26 2005-04-12 Hewlett-Packard Development Company, Lp Storage area network, data replication and storage controller, and method for replicating data using virtualized volumes
JP4229626B2 (ja) * 2002-03-26 2009-02-25 富士通株式会社 ファイル管理システム
US6996672B2 (en) * 2002-03-26 2006-02-07 Hewlett-Packard Development, L.P. System and method for active-active data replication
US7007042B2 (en) * 2002-03-28 2006-02-28 Hewlett-Packard Development Company, L.P. System and method for automatic site failover in a storage area network
US7107385B2 (en) * 2002-08-09 2006-09-12 Network Appliance, Inc. Storage virtualization by layering virtual disk objects on a file system
US6865597B1 (en) * 2002-12-20 2005-03-08 Veritas Operating Corporation System and method for providing highly-available volume mount points
US7272674B1 (en) * 2003-06-30 2007-09-18 Veritas Operating Corporation System and method for storage device active path coordination among hosts
US7739541B1 (en) * 2003-07-25 2010-06-15 Symantec Operating Corporation System and method for resolving cluster partitions in out-of-band storage virtualization environments
US7139772B2 (en) * 2003-08-01 2006-11-21 Oracle International Corporation Ownership reassignment in a shared-nothing database system
US7865485B2 (en) 2003-09-23 2011-01-04 Emc Corporation Multi-threaded write interface and methods for increasing the single file read and write throughput of a file server
US7698289B2 (en) * 2003-12-02 2010-04-13 Netapp, Inc. Storage system architecture for striping data container content across volumes of a cluster
JP4516322B2 (ja) 2004-01-28 2010-08-04 株式会社日立製作所 複数の上位装置で共有される記憶装置システムを持つサイト間での共有排他制御方式を備えたコンピュータシステム
US20050251716A1 (en) * 2004-05-07 2005-11-10 International Business Machines Corporation Software to test a storage device connected to a high availability cluster of computers
US20050283658A1 (en) * 2004-05-21 2005-12-22 Clark Thomas K Method, apparatus and program storage device for providing failover for high availability in an N-way shared-nothing cluster system
US7313636B2 (en) * 2004-06-15 2007-12-25 Lsi Corporation Methods and structure for supporting persistent reservations in a multiple-path storage environment
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
US20060053216A1 (en) * 2004-09-07 2006-03-09 Metamachinix, Inc. Clustered computer system with centralized administration
US7260678B1 (en) * 2004-10-13 2007-08-21 Network Appliance, Inc. System and method for determining disk ownership model
US7711820B2 (en) 2004-11-08 2010-05-04 Cisco Technology, Inc. High availability for intelligent applications in storage networks
US7383404B2 (en) * 2005-02-03 2008-06-03 International Business Machines Corporation Priority initialization system
EP1713206A1 (en) 2005-04-11 2006-10-18 Last Mile Communications/Tivis Limited A distributed communications network comprising wirelessly linked base stations
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
US7478220B2 (en) * 2005-06-23 2009-01-13 International Business Machines Corporation Method, apparatus, and product for prohibiting unauthorized access of data stored on storage drives
US7363457B1 (en) * 2005-07-21 2008-04-22 Sun Microsystems, Inc. Method and system for providing virtualization data services for legacy storage devices
US20070022314A1 (en) * 2005-07-22 2007-01-25 Pranoop Erasani Architecture and method for configuring a simplified cluster over a network with fencing and quorum
US20100098248A1 (en) 2006-10-31 2010-04-22 Agency For Science Technology And Research Device and method of generating and distributing access permission to digital object
US7991822B2 (en) * 2007-08-29 2011-08-02 International Business Machines Corporation Propagation of updates for attributes of a storage object from an owner node of the storage object to other nodes
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
US8719473B2 (en) * 2008-09-19 2014-05-06 Microsoft Corporation Resource arbitration for shared-write access via persistent reservation
US7840730B2 (en) 2008-06-27 2010-11-23 Microsoft Corporation Cluster shared volumes
US20100005318A1 (en) 2008-07-02 2010-01-07 Akram Hosain Process for securing data in a storage unit

Also Published As

Publication number Publication date
EP2316077A4 (en) 2014-09-10
CN102077193B (zh) 2013-11-06
US10235077B2 (en) 2019-03-19
CN102077193A (zh) 2011-05-25
WO2009158217A3 (en) 2010-04-15
US20090327798A1 (en) 2009-12-31
JP2011526038A (ja) 2011-09-29
US7840730B2 (en) 2010-11-23
EP2316077A2 (en) 2011-05-04
WO2009158217A2 (en) 2009-12-30
US20180129441A1 (en) 2018-05-10

Similar Documents

Publication Publication Date Title
JP5059974B2 (ja) クラスタ共有ボリューム
US11675746B2 (en) Virtualized server systems and methods including domain joining techniques
US11271893B1 (en) Systems, methods and devices for integrating end-host and network resources in distributed memory
US12038878B2 (en) Methods and apparatus for controlling snapshot exports
US10728090B2 (en) Configuring network segmentation for a virtualization environment
US11562034B2 (en) Transparent referrals for distributed file servers
US9986033B2 (en) Facilitating access to remote cloud services
US7526668B2 (en) Failover method of remotely-mirrored clustered file servers
US8589550B1 (en) Asymmetric data storage system for high performance and grid computing
US20060041595A1 (en) Storage network migration method, management device, management program and storage network system
EP1880326A2 (en) Cifs for scalable nas architecture
JP2005267327A (ja) ストレージシステム
US11636011B2 (en) Methods and systems for protecting multitenant databases in networked storage systems
US11614901B2 (en) Apparatus and method for processing sensitive data
US20050278383A1 (en) Method and apparatus for keeping a file system client in a read-only name space of the file system
JP2012503249A (ja) 永続予約を介する共有書込みアクセスのリソースアービトレーション
US8380954B1 (en) Failover method and system
US11966370B1 (en) Pseudo-local multi-service enabled file systems using a locally-addressable secure compute layer
US8850132B1 (en) Method and system for providing a shared data resource coordinator within a storage virtualizing data processing system
KR102717611B1 (ko) 민감 데이터 처리 장치 및 방법

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120202

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120202

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20120202

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20120306

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120316

RD13 Notification of appointment of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7433

Effective date: 20120425

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20120425

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120613

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120802

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150810

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

LAPS Cancellation because of no payment of annual fees