JP2005528684A - 仮想分散ネットワーク・ストレージ・システム - Google Patents

仮想分散ネットワーク・ストレージ・システム Download PDF

Info

Publication number
JP2005528684A
JP2005528684A JP2004509750A JP2004509750A JP2005528684A JP 2005528684 A JP2005528684 A JP 2005528684A JP 2004509750 A JP2004509750 A JP 2004509750A JP 2004509750 A JP2004509750 A JP 2004509750A JP 2005528684 A JP2005528684 A JP 2005528684A
Authority
JP
Japan
Prior art keywords
storage
data
servers
server
data storage
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2004509750A
Other languages
English (en)
Other versions
JP2005528684A5 (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.)
Lefthand Networks Inc
Original Assignee
Lefthand Networks Inc
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 Lefthand Networks Inc filed Critical Lefthand Networks Inc
Publication of JP2005528684A publication Critical patent/JP2005528684A/ja
Publication of JP2005528684A5 publication Critical patent/JP2005528684A5/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • 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]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/167Interprocessor communication using a common memory, e.g. mailbox
    • 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
    • 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
    • G06F2003/0697Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers device management, e.g. handlers, drivers, I/O schedulers
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99944Object-oriented database structure
    • Y10S707/99945Object-oriented database structure processing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99948Application of database or data structure, e.g. distributed, multimedia, or image

Landscapes

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

Abstract

本発明は、データ保存をコンピュータ・ネットワーク(18)に分散させるために使用するデータ・ストレージ・システム(10)を提供することを目的とする。データ・ストレージ・システムの一実施形態は、各々がデータ保存を行なうストレージ・サーバ(20)から構成されたストレージ・サーバ・システムと、各々が管理サーバシステムに関する管理機能を提供する一つ以上の管理サーバから構成される管理サーバシステムと、データ・ストレージ・システムを利用するアプリケーション・クライアント(14)の各々との接続が可能なドライバと、を備える。その値がストレージ・システムの構成またはストレージ・システム内の保存領域割当てに変化が生じるときに更新されるデータ・ストレージ・コンフィグレーション識別子を使用して、ストレージ・システムとアプリケーション・クライアントとの間のデータ転送を管理する。

Description

本発明はデータ保存に関し、特にコンピュータ・ネットワーク上でのデータ保存の分散に関する。
従来のネットワーク・コンピュータ・システムは、各々がオペレーティング・システムを有する多数のコンピュータ、データをコンピュータ間で授受するネットワーク、及びネットワークに直接取り付けられるのではなく複数のコンピュータの内の少なくとも一つのコンピュータに取り付けられる少なくとも一つのデータ・ストレージ・デバイスから構成される。このようなシステムにおいては、データ・ストレージ・デバイスと、デバイスの接続先のコンピュータ以外のシステムのコンピュータとの間のデータの転送には、データ・ストレージ・デバイスの接続先のコンピュータのオペレーティング・システムがある程度の時間を割いてデータ転送を処理する必要がある。コンピュータのオペレーティング・システムは通常、コンピュータで動作する種々のアプリケーション(例えば、ワード・プロセッシング・アプリケーション)からのリクエストに応えているので、オペレーティング・システムは通常、データ転送を処理するためには短い時間しか割くことができない。
ネットワーク上でのデータ転送速度は比較的低かったが、オペレーティング・システムは通常、データ転送リクエストに十分迅速に応答することができるのでネットワークで利用できる時間を全て利用してシステムのコンピュータ間のデータ転送を行なうことができた。換言すれば、ネットワークはその転送速度が比較的低いので、システムのあるコンピュータに接続されるデータ・ストレージ・デバイスとシステムの他のコンピュータとの間でデータを転送する際のボトルネックになっていた。しかしながら、ネットワークのデータ転送速度が向上すると、オペレーティング・システムがボトルネックになった。この理由は、ネットワークがデータ・ストレージ・デバイスとのデータ転送に利用できる場合に、オペレーティング・システムは通常、種々のアプリケーションからのリクエストに応答しているからである。
オペレーティング・システムがボトルネックになるのを回避するために、ネットワークに直接取り付けられるデータ・ストレージ・デバイス、すなわちネットワーク・データ・ストレージ・デバイスが開発された。この直接取り付けにより、ネットワーク・コンピュータ・システムの全てのコンピュータはネットワーク・ストレージ・デバイスと直接通信することができる。
そこで更に行われたのが分散ネットワーク・データ・ストレージの開発であり、このデータ・ストレージでは、2つ以上のネットワーク・データ・ストレージ・デバイスを利用することができ、2つ以上のデータ・ストレージ・デバイスに渡って物理的に拡張された論理ボリューム、すなわちデータ保存単位を定義するメカニズムが存在する。従って、ネットワーク・コンピュータ・システムのコンピュータにとっては、論理ボリュームが単一のストレージ・デバイスに見える。分散ネットワーク・ストレージを用いるネットワーク・コンピュータ・システムの一例は、(a)2つのファイバ・チャネルディスク・ドライブ、(b)コンピュータ、及び(c)これらのドライブとコンピュータとの間のデータ転送を容易にするネットワーク、から構成される。コンピュータは、これらのドライブの各々及び論理ボリュームマネージャーのためのドライバ(オペレーティング・システムがデバイスと通信することを可能にするプログラム)を備え、この論理ボリューム・マネージャーは、ドライブを制御して2つのファイバ・チャネル・ディスク・ドライブに渡って拡張された論理ボリュームまたは仮想ボリュームを定義する。
本発明は、ネットワークにおける分散ネットワークデータ保存を実現するために使用するシステムを提供するものであり、このシステムによって、データ保存容量のスケーリングを行ない、データをストライピングし、データを複製し、データを移行し、データのスナップショットを生成し、シェアド・アクセスを可能にする機能等の追加機能を実現するフレキシビリティを提供することができる。
一実施形態では、システムはストレージ・サーバ・システムから構成されている。このストレージ・サーバ・システムは、データ保存機能及びデータ転送機能をネットワーク・コンピュータ・システムのアプリケーション・クライアントに提供する一つ以上のデータ・ストレージ・サーバから構成されている。アプリケーション・クライアントは、ネットワーク・コンピュータ・システムのコンピュータであって、このコンピュータは、データ保存機能及びデータ転送機能を必要とするか、或いは必要とする可能性がある特定のアプリケーション・プログラム(例えば、データベース管理プログラム)である、またはアプリケーション・プログラムを実行する。データ・ストレージ・サーバは、データ・ストレージ・デバイス(例えばディスク・ドライブ)、並びにネットワークを通してアプリケーション・クライアント及び管理ストレージ・サーバとの通信を行なうネットワーク・インターフェイスから構成される。
更に、システムは、管理ストレージ・サーバ・システムから構成されている。この管理ストレージ・サーバ・システムは、各々が全てのアプリケーション・クライアント及びストレージ・サーバ・システムに所定の保存管理機能を提供する一つ以上の管理ストレージ・サーバから構成されている。管理データ・ストレージ・サーバは、ネットワークを通してアプリケーション・クライアント、及びストレージ・システムのストレージ・サーバとの通信を行なうネットワーク・インターフェイスから構成されている。更に、管理データ・ストレージ・サーバは、データ・ストレージ・デバイス(例えばディスク・ドライブ及びテープ・ドライブ)から構成される。
管理ストレージ・サーバの各々は、ストレージ・サーバの動作を調整するために使用するデータ・ストレージ・コンフィグレーション識別子を含む。この識別子の値はストレージ・サーバ・システム内の特定の時点でのデータ保存領域の割当てを示す。一実施形態では、この値はタイム・スタンプである。他のタイプの値を用いることもできる。ストレージ・サーバ・システム内のデータ保存領域の割当てにおいては、どのような数の仮想ボリュームまたは論理ボリュームも定義することができ、これらのボリュームの各々は、ストレージ・サーバの内の一つ以上のストレージ・サーバに渡って分散させる。管理ストレージ・サーバの各々は、識別子の第1の値をアプリケーション・クライアントに供給する機能を有する。例えば、管理ストレージ・サーバは、識別子の第1の値をアプリケーション・クライアントに、このアプリケーション・クライアントへのデータ保存領域の割当ての一部として供給する。また管理ストレージ・サーバの各々は、ストレージ・サーバ・システム内のデータ保存領域の割当てに変化が生じた後に、識別子の更新値をストレージ・サーバの各々に供給する機能を有する。
ストレージ・サーバは識別子は、アプリケーション・クライアントからのデータ関連リクエストを実行するかどうかを判断するために使用される。更に詳細には、ストレージ・サーバがアプリケーション・クライアントから受信するデータ関連リクエストは、アプリケーション・クライアントが保有するデータ・ストレージ・コンフィグレーション識別子の最新値を含む。ストレージ・サーバは、このサーバが保有する識別子の最新値を、受信リクエストに関連する識別子の値と比較する。これらの値が同じである場合、アプリケーション・クライアント及びストレージ・サーバの双方はデータ保存領域の割当てが同じであることを認識する。この場合、ストレージ・サーバは、データ関連リクエストの処理を進める。しかしながら、ストレージ・サーバが保有する識別子の値とリクエストに関連する識別子の値とが異なる場合、アプリケーション・クライアント及びストレージ・サーバはデータ保存領域の割当てが異なることを認識する。別の表現をすれば、アプリケーション・クライアントは、期限切れのデータ保存領域の割当てに基づいて動作している。この場合、ストレージ・サーバはリクエストの処理を進めない。この理由は、処理を進めとデータを破損する恐れがあるからである。一実施形態では、ストレージ・サーバによってエラーが生成され、このエラーがネットワークを通して管理ストレージ・サーバに供給される。これに応答して、管理ストレージ・サーバは、アプリケーション・クライアントに更新識別子を供給し、この識別子をアプリケーション・クライアントが必要に応じて利用して、データ関連リクエストを再試行することができる。
図1は、ネットワーク・コンピュータ・システム10の実施形態を示している。このシステム10は、分散ストレージ・システム12の一実施形態を用いており、以後このストレージ・スステム12をシステム12と呼ぶ。ネットワーク・コンピュータ・システム10は、(a)一つ以上のアプリケーション・クライアント16(すなわち、アプリケーション・プログラムであるか、またはアプリケーション・プログラムを実行するコンピュータ)を含むアプリケーション・クライアント・システム14と、(b)システム12と、(c)アプリケーション・クライアント16とシステム12との間、及びシステム12の構成要素間の通信を可能にするネットワーク18と、を含む。この実施形態では、ネットワーク18はギガ・ビット・イーサネット・ネットワークである。しかしながら、本発明を他のタイプのネットワークに適用する、即ち適合させることができる。
図1を参照すると、システム12は、アプリケーション・クライアントで実行されるアプリケーション・プログラムにデータ保存機能を付与するストレージ・システム20から構成されている。ストレージ・システム20は一つ以上のストレージ・サーバ22を備える。各ストレージ・サーバ22は少なくとも一つのデータ・ストレージ・デバイス及びネットワーク18と通信するための少なくとも一つのインターフェイスを備える。一実施形態では、データ・ストレージ・デバイスはディスク・ドライブである。しかしながら、他のタイプのデータ・ストレージ・デバイスも用いることができる。例えば、テープ・ドライブを用いることができる。通常、ストレージ・サーバ22が複数のデータ・ストレージ・デバイスから構成される場合、これらのデバイスは全て同じタイプ(例えば、ディスク・ドライブ)である。しかしながら、異なるタイプのデータ・ストレージ・デバイスを使用することも可能である(例えば、ディスク・ドライブ及びテープ・ドライブ、異なるタイプのディスク・ドライブ、異なるタイプのテープ・ドライブ、またはこれらの組合せ)。
図1を参照すると、更に、システム12は、アプリケーション・クライアントとストレージ・システム20との間のデータ転送に関する管理機能を提供する管理ストレージ・サーバ・システム24から構成されている。管理ストレージ・サーバ・システム24は一つ以上の管理ストレージ・サーバ26を備える。一般的に、障害に対応できるようにするために複数の管理ストレージ・サーバ26を有することが望ましい。各管理ストレージ・サーバ26は、ネットワーク18と通信するための少なくとも一つのインターフェイス及び少なくとも一つのデータ・ストレージ・デバイス(例えば、ディスク・ドライブ又はテープ・ドライブ)を備える。また、管理ストレージ・サーバ26の内の少なくとも一つはインターフェイス28を備え、このインターフェイスによってユーザはサーバ26と情報を授受してアプリケーション・クライアント16とストレージ・システム20との間のデータ転送に関する機能を実行することができる。この実施形態では、インターフェイス28はグラフィカル・ユーザ・インターフェイス(GUI)であり、このGUIによってユーザは一般的なモニター及びキーボードまたはマウスを通してサーバ26と情報を授受することができる。他のタイプの周辺機器(例えば、プリンタ、ライトペン、音声認識機など)またはネットワーク・プロトコルと通信する他のタイプのインターフェイスを用いることができる。当然のことながら、管理ストレージ・サーバは、ストレージ・サーバ及び/又はドライバと同じ場所に配置されている。
図1を参照すると、システム12はさらにドライバ29を備え、このドライバは各アプリケーション・クライアント16に接続され、アプリケーション・クライアント16とシステム12との間の通信を容易にする。当然のことながら、ドライバ29の使用に替えて別の装置を使用することができる。例えば、PCI(Peripheral Component Interconnect:周辺機器接続アーキテクチャ)カードまたはホスト・バス・アダプタ(Host Bus Adapter:HBA)カードを利用することができる。
管理ストレージ・サーバ26の各々はデータ・ストレージ・コンフィグレーション識別子を含み、この識別子はストレージ・コンフィグレーション・マップに関連し、このマップは、或る時点におけるストレージ・システム20の構成、及び或る時点におけるストレージ・システム20上でのデータ保存領域の種々のアプリケーション・クライアント16への割り当てを示す。データ・ストレージ・コンフィグレーション識別子は、ストレージ・デバイス20の構成が変化するか、或いはシステム20内での保存領域の割当てが変化するときに変化する値を有する。一実施形態では、識別子の値は、変化が生じるにつれて単調に増加する論理タイム・スタンプである。他のタイプの論理タイム・スタンプも使用可能である。例えば、減少する論理タイム・スタンプだけでなく、予測可能な形で値が変化する論理タイム・スタンプも使用可能である。また、論理タイム・スタンプ以外のタイム・スタンプを用いることができる。例えば、実時間を反映するタイム・スタンプも用いることができる。
ストレージ・コンフィグレーション・マップによって、ストレージ・システム20のストレージ・サーバ22の各々が識別される。また、マップによって、各論理ボリュームまたは各仮想ボリューム、すなわち2つ以上のストレージ・サーバ22に分散され、特定のアプリケーション・クライアント16に割り当てられるデータ保存量が識別される。また、マップによって、各論理ボリュームまたは各仮想ボリュームのパーティション、すなわちどの位の量のボリュームのデータ保存領域がをストレージ・サーバ22の各々により提供されているかを認識することができる。
管理ストレージ・サーバ26がストレージ・システム20内のデータ保存領域をアプリケーション・クライアント16に割り当てると、サーバ26はデータ・ストレージ・コンフィグレーション識別子の更新値を関連するアプリケーション・クライアント16に、具体的には、アプリケーション・クライアント16内のドライバ29に供給する。識別子は、アプリケーション・クライアントにより、ストレージ・システム20からのデータ転送の全てのリクエストに添付される。また、管理ストレージ・サーバ26は、ストレージ・サーバ22の各々に識別子の更新値を供給する。しかしながら、管理ストレージ・サーバ26は、更新値を他のアプリケーション・クライアントに供給することができない可能性がある。その結果、他のアプリケーション・クライアントは古いコンフィグレーションを反映した古い識別子の値を有することがある。
識別子の値は、アプリケーション・クライアントからデータ転送のリクエストを受け取るストレージ・サーバ22の各々により使用され、データ破損が防止される。更に詳細には、ストレージ・サーバ22の各々は、比較器を備え、この比較器は、管理ストレージ・サーバ26からごく最近に受け取った識別子の値をアプリケーション・クライアントからのデータ転送リクエストに添付された識別子の値と比較する。これらの値が等しくない場合、ストレージ・システム20の構成、またはストレージ・サーバ・システム20内の保存領域の割当てに変化があったことになる。この場合、転送が行なわれると、データ破損が生じるか、或いは誤ったデータがアプリケーション・クライアントに供給されるので、ストレージ・サーバ22は、リクエストを少なくとも無視する。一実施形態では、ストレージ・サーバ22は、エラー・メッセージを関連するアプリケーション・クライアントまたは管理ストレージ・サーバ26に返送し、このメッセージは処理されて、関連するアプリケーション・クライアントに識別子の更新値が供給される。一旦、関連するアプリケーション・クライアントが識別子の最新の値を有すると、アプリケーション・クライアントは、データ転送のリクエストを再開するか、または新規のコンフィグレーションを取得する必要があることを認識することができる。
比較器が、リクエストに添付される識別子の値が、管理ストレージ・サーバがストレージ・サーバにごく最近に供給した識別子の値と等しいと判定した場合、ストレージ・システム20の構成、またはシステム20内の保存領域割当てに変化が無かったことになる。この場合、ストレージ・サーバ22は関連するアプリケーション・クライアントがリクエストするデータ転送を処理する。
スケーリング(Scaling)。システム12に対して容易にスケーリングを行なうことができ、このスケーリングによってストレージ・システム20のストレージ・サーバ22の数を増やす、または減らすことができる。更に詳細には、ユーザは、管理ストレージ・サーバ26の内の少なくとも一つに接続されるインターフェイス28を使用してコンフィグレーション・マップの変更を提案することができ、コンフィグレーション・マップの変更には、ストレージ・サーバをストレージ・システム20に加えるか、またはストレージ・サーバ22をシステム20から取り外すか、のいずれかが含まれる。管理ストレージ・サーバ・システム24内に他の管理ストレージ・サーバ26が存在する場合、提案された構成の変更がサーバ26の各々に対して提供される。サーバ26の各々は、提案される変更が及ぼす影響を評価し、この変更に対する賛同または拒否を示す「投票」を行なう機能を備える。管理ストレージ・サーバは、提案される変更が或る保存機能を実行する機能に悪影響を及ぼすと考えられる場合には拒否の投票を行なうことができる。例えば、管理ストレージ・サーバがアプリケーション・クライアントからのデータを2つのストレージ・サーバ上で複製して各サーバ上にコピーが存在する場合、別のストレージ・サーバを付加することなくこれらのストレージ・サーバの内の一つのサーバを取り外すことは許容されない可能性が大きい。提案される変更が管理ストレージ・サーバ・システム24の管理ストレージ・サーバ26に承認された場合、コンフィグレーション・マップを変更し、変更に必要なストレージ・システム20内の保存領域の再割り当ての全てを実行し、ストレージ・システム20内のデータのコピーを行ない、データ・ストレージ・コンフィグレーション識別子の更新値をストレージ・サーバの各々に発行する。
ストライピング(Striping)。システム12は、ストライピングを実行する、すなわち2つ以上のストレージ・サーバ22に対して論理ボリュームまたは仮想ボリュームのパーティショニングを実行する機能を備える。更に詳細には、ユーザは・管理ストレージ・サーバ26の内の少なくとも一つに接続されるインターフェイス28を使用して次の項目を提案することができる。(a)一アプリケーション・クライアントに対応するストレージ・システム20内の論理ボリュームまたは仮想ボリューム、及び(b)ストレージ・システム20のストレージ・サーバ22の内の2つ以上のサーバ間のこのようなボリュームに対するパーティショニング、である。提案される論理ボリューム及びボリュームに関して提案されるパーティショニングを管理ストレージ・サーバ26の各々に通知して、各々がその影響を評価し、承認投票または拒否投票を行なうことができる。提案される論理ボリューム及びそれらのパーティショニングが管理ストレージ・サーバ・システム24の管理ストレージ・サーバ26により承認されると、コンフィグレーション・マップを変更し、変更に必要なストレージ・システム20内の保存領域の再割当ての全てを実行し、ストレージ・システム20内の全てのデータのコピーを行ない、データ・ストレージ・コンフィグレーション識別子の更新値をストレージ・サーバの各々に発行する。
シェアド・アクセス(Shared Access)。図2を参照すると、分散ストレージ・システム12を備え、シェアド・アクセスを実行するネットワーク・コンピュータ・システム10’の一実施形態が示されている。ネットワーク・コンピュータ・システム10’は、特定のアプリケーション・クライアント・システム、すなわちオラクル(Oracle)・パラレル・データベース・サーバ・システム等のパラレル・データベース・サーバ・システム14’を更に備える。パラレル・データベース・サーバシステム14’は、2つ以上のパラレル・データベース・サーバ16’から構成され、これらのサーバ16’は、ストレージ・システム20のボリュームに保存されているか或いは保存されることになるデータベースの管理において互いに協力して動作する。更に、パラレル・データベース・サーバ・システム14’は、分散ロック管理システム30から構成されている。この管理システムは、一つ以上の分散ロック・マネージャー32から構成され、これらのロック・マネージャーの各々は「ロック(locks)」をパラレル・データベース・サーバ16’に発行する動作を行う。ロックは、データベースの明確に区別された部分に関連し、この部分は、ストレージ・システム20のパラレル・データベース・サーバ・システムに割り当てられるボリュームに保存されているか、または保存されることになる。ロックをパラレル・データベース・サーバ16’の内の一つのサーバに発行することにより、データベースの区別された部分の一部に排他的な書き込みアクセスを行なう、またはシェアド・アクセス方式を利用して読み出しを行なうことが可能になり、この区別された部分にはロックが他のパラレル・データベース・サーバとの関係で関与する。排他的な書き込みアクセスをパラレル・データベース・サーバ16’の内の一つのサーバのみに対して行うことにより、サーバの内の2つのサーバが同時にデータベースの同じ部分を更新する状況を回避することができる。
分散ロック・マネージャー30がパラレル・データベース・サーバ16’から独立している形で示されているが、ある実施形態では、分散ロック・マネージャー30の各々がパラレル・データベース・サーバ16’の内の一つのサーバと接続されるような形で分散ロック・マネージャー30を用いることができる。このような実施形態では、分散ロック・マネージャー30の各々はドライバ29に(パラレル・データベース管理プログラムに接続される汎用インターフェイスを通して)アクセスすることができ、このドライバによって分散ストレージ・システム12との通信が容易になる。分散ロック・マネージャー30の他の実施形態を用いることができるが、この場合、ロック・マネージャーの各々が管理ストレージ・サーバ26の内の少なくとも一つのサーバと通信する機能を備えることが前提となる。
分散ロック・マネージャー30の各々は、ロックが発行されているパラレル・データベース・サーバをモニターする動作を行って、ロックがパラレル・データベース・サーバ16’の内の別のサーバに発行されるようにロックの返送が可能かどうかを判断する。或る状況では、分散ロック・マネージャー30は、パラレル・データベース・サーバ16の内の第1サーバに発行されるロックを破棄する動作を行う。例えば、分散ロック・マネージャー30が、ロックが発行されている第1パラレル・データベース・サーバとの通信リンクが起動されていない即ち利用できないと判断するか、或いは第1パラレル・データベース・サーバが障害を起こしていると判断すると、分散ロック・マネージャー30は、第1パラレル・データベース・サーバに発行されているロックを破棄する。このような状況では、分散ロック・マネージャー30は、このロックを第2パラレル・データベース・サーバに再発行することができる。
第2パラレル・データベース・サーバにロックを発行する際の問題は、第1パラレル・データベース・サーバが、ロックを保有している状態で、ストレージ・システム20のボリュームに対する書き込みリクエストを開始してしまい、このリクエストが、ロックが廃棄されて第2パラレル・データベース・サーバに発行される時点までにストレージ・システム20によって処理されなかった場合に生じる。この状況は、例えば、ロックが廃棄されて第2パラレル・データベース・サーバに再発行される期間中に、書き込みリクエストが依然としてネットワークを伝送されている場合に生じる。この場合、第1及び第2パラレル・データベース・サーバが同時にデータベースのボリュームの同じ部分を更新している可能性があり、この状況は望ましくない。
この問題を解決するために、分散ロック・マネージャー32の内の一つのマネージャーは、そのドライバ29を通して管理ストレージ・サーバ26の内の一つのサーバと通信してロックが廃棄されていることを通知する。これに応答して、管理ストレージ・サーバは、「ロック」マップを更新する。「ロック」マップを更新することにより、データ・ストレージ・コンフィグレーション識別子の値が更新される。識別子の値が更新された後、管理ストレージ・サーバは、データ・ストレージ・コンフィグレーション識別子の更新値をストレージ・システム20のストレージ・サーバ22の各々に供給する。続いて、管理ストレージ・サーバは、ロック・マネージャーにロックの再発行の権限を付与する通知を分散ロック・マネージャーに発行する。
データ・ストレージ・コンフィグレーション識別子の更新値をストレージ・サーバ22に供給することにより、第1パラレル・データベース・サーバが開始した書き込みリクエストがストレージ・サーバによって処理されることを防止することができる。更に詳細には、書き込みリクエストに関連するのは、管理ストレージ・サーバ26の内の一つのサーバによって予めパラレル・データベース・サーバに供給されているデータ・ストレージ・コンフィグレーション識別子の特定の値である。しかしながら、データ・ストレージ・コンフィグレーション識別子を更新することにより、ストレージ・サーバ22は、書き込みリクエストに関連する識別子の値とは異なるデータ・ストレージ・コンフィグレーション識別子の更新値を有することになる。その結果、ストレージ・サーバ22の内の一つのサーバが書き込み更新を受信すると、ストレージ・サーバの比較器は、これらのデータ・ストレージ・コンフィグレーション識別子の値の差を検出し、この差によって書き込み更新に関するリクエストを少なくとも無視する。
複製(Replication)。ユーザは、管理ストレージ・サーバ26の内の少なくとも一つのサーバに接続されるインターフェイス28を使用して、アプリケーション・クライアントからのデータを、そのアプリケーション・クライアント専用のストレージ・システム20のボリュームに複製して、データの一つのコピーがストレージ・サーバ22の内の一つのサーバに存在し、かつデータの一つ以上の他のコピーが他のストレージ・サーバ22の内の一つのサーバに存在するようにすることができる。この冗長性によって障害が生じても障害に対応できる。ユーザは、コンフィグレーション・マップをインターフェイス28を通して適切に変更することによりデータを複製することを指示する。コンフィグレーション・マップを更新することにより、データ・ストレージ・コンフィグレーション識別子の値を更新することができる。データ・ストレージ・コンフィグレーション識別子の更新値は、複製に関連するストレージ・サーバ22の各々とアプリケーション・クライアントのドライバ29に供給される。また、ドライバ29には、コンフィグレーション・マップまたは他の情報が供給され、この情報によってアプリケーション・クライアントデータに適用される複製が決定される。この場合、アプリケーション・クライアントデータは、例えばデータのコピーが含まれる関連するボリューム及びストレージ・サーバである。
データを複製する際の問題は、データの複数コピーが同期しなくなる、すなわちこれらのコピーが互いに同じではなくなることである。例えば、データの第1コピーがストレージ・サーバ22の内の一つのサーバにおいて更新されるが、データの第2コピーを有する他のストレージ・サーバ22の内の一つのサーバが、更新がそのサーバにおいて行われる前に故障した場合、データの複数コピーが同期しなくなる。
この問題は、ビット・マスク装置(同期ビットとも呼ぶ)を、データが複製される予定のストレージ・サーバにおいて使用することにより解決することができるが、この場合、このビット・マスク装置を管理ストレージ・サーバが時々精査し、この管理ストレージ・サーバがビット・マスク装置を使用してコピーが同期しなくなったかどうかを判断して是正措置を採る。図3Aを参照すると、ビット・マスク装置の動作が示されており、1ページのデータの複数のコピーがサーバ「0」及びサーバ「1」に複製されようとしている状況を示している。1ページのデータがストレージ・システム20に対する割当て単位であり、割当て単位は通常、メガバイト級のサイズであるが他のサイズも用いることができる。サーバ「0」に関連するのは2ビットのビット・マスク40であり、このマスクは、サーバ「0」に関連するマスクの第1ビット及びサーバ「1」に関連する第2ビットを有する。サーバ「1」に関連するのは2ビットのビット・マスク42であり、このマスクは、サーバ「0」に関連するマスクの第1ビット及びサーバ「1」に関連する第2ビットを有する。これらのサーバの両方に存在する1ページのデータのコピーが同期しているとき、両方のビット・マスクのビットの各々の値は論理「1」であり、この状態は「変更無し(clean)」状態とも呼ばれる。両方のビット・マスクのビットの各々の値が「1」ではない場合、コピーが同期していない可能性がある。1ページのデータのコピーは、必ずそれ自体と同期していると見なされる。その結果、マスク40のビット「S0」は必ず論理「1」に設定され、マスク42のビット「S1」は必ず論理「1」に設定される。
データの複製元となるアプリケーション・クライアントに接続されたドライバ29が書き込みリクエストをサーバ「0」に発行する場合、書き込みリクエストは、消去ビット・マスク値及び復元マスク値を含む。消去ビット・マスク値は、サーバ「0」が書き込みリクエストを処理する前のビット・マスク40のビットの設定値である。復元ビット値は、書き込みリクエストが処理されたことが確認された後のビット・マスク40のビットの設定値である。消去ビット・マスク値を使用して、サーバ「0」に対する書き込みリクエストが処理される前にビット・マスク40を更新する。一旦、サーバ「0」に対する書き込みリクエストがサーバ「0」によって処理されると、このサーバは、トークン付きのアクノリッジメントをクライアント・アプリケーションに発行する。
同様に、ドライバ29がサーバ「1」に対して発行する書き込みリクエストは、消去ビット・マスク値及び復元ビット・マスク値を含む。消去ビット・マスク値を使用して、サーバ「1」に対する書き込みリクエストが処理される前にビット・マスク42を更新する。一旦、サーバ「1」に対する書き込みリクエストがサーバ「1」によって処理されると、このサーバは、トークン付きのアクノリッジメントをクライアント・アプリケーションに発行する。
一旦、ドライバ29がアクノリッジメントをサーバ「0」及びサーバ「1」の両方から受信すると、ドライバ29は、データの複製先であるストレージ・サーバの各々に対して発行される次の命令にトークンを含ませる。通常、次の命令は、サーバ「0」及びサーバ「1」の両方に発行されてデータを複製する書き込みリクエストである。ストレージ・サーバ「0」はこの命令に対して、ビット・マスク40のビットの値を復元値、すなわち「11」に変更することにより応答する。ストレージ・サーバ「1」はこの命令に対して、ビット・マスク42のビットの値を復元値、すなわち「11」に変更することにより応答する。この時点で、ビット・マスク40,42の各々におけるビットの各々の値は同じ、すなわち論理「1」である。この結果、サーバ「0」及びサーバ「1」上のページデータのコピーは同期、すなわち互いに同じとなる。
図3Bを参照すると、ビット・マスク40,42を使用して、ページデータの2つのコピーが同期しなくなった状況を識別する様子が示されている。同期していない理由は、サーバ「1」が、クライアント・アプリケーションからの書き込みリクエストが発行される前に故障した(すなわち、リクエストまたは命令を処理できなくなった)と考えられる。その結果、アプリケーションがページデータをサーバ「0」及び「1」に複製しようと試みると、サーバ「0」のデータのみが更新される。その結果、サーバ「1」が復旧すると、サーバ「1」上のページデータのコピーはサーバ「0」上のページデータのコピーに対して「古く」なってしまう。
図3Bを参照すると、サーバ「0」及び「1」上のページデータのコピーは最初は同期していたと仮定されている。従って、ビット・マスク40,42のビットの各々の値は同じ、すなわち論理「1」である。サーバ「0」及び「1」に対して書き込みリクエストが発行されて複製動作が行われる前に、管理ストレージ・サーバ26の内の一つのサーバはサーバ「1」に故障が起きたと考えられる。管理ストレージ・サーバ26の内の少なくとも一つのサーバは、ストレージ・サーバ22の内の一つのサーバにリクエストを時々発行して、そのストレージ・サーバが動作可能かどうかを判断する。ストレージ・サーバは、動作可能である場合、或る形式の返答またはアクノリッジメントを所定の期間内に、リクエストを発行した管理ストレージ・サーバに送信する。返答またはアクノリッジメントが所定の期間内に受信されない場合、管理ストレージ・サーバは、そのストレージ・サーバが故障したと判断する。このような状況では、管理ストレージ・サーバは、コンフィグレーション・マップを更新し、データコンフィグレーション・マップ識別子の値を更新し、マップ及び識別子をアプリケーション・クライアントだけでなくストレージ・サーバ22にも供給する。アプリケーション・クライアントがサーバ「1」が故障したことを認識するので、書き込みリクエストは、ストレージ・サーバ「1」には発行されない。サーバ「0」に発行される書き込みリクエストは、消去ビット値及び復元ビット値を含む。しかしながら、サーバ「1」の故障により生じ、データ・ストレージ・コンフィグレーション識別子の変化に反映されるストレージ・システム20の変化により、復元ビット値は図3Aとは異なり、“10”に設定される。
サーバ「0」は、書き込みリクエストを受信した後で、かつ書き込みリクエストを処理する前に、ビット・マスク40のビットの値を消去ビット値、すなわち論理「01」に設定する。次にサーバは、書き込みリクエストを処理し、アクノリッジメントをトークンを持つアプリケーション・クライアントに送信する。サーバ「0」がアプリケーションから受信する次の命令はトークンを含む。これに応答して、サーバ「0」はビット・マスク40のビットを、書き込みリクエストに添付された復元ビット値にて指定される復元値、すなわち論理「01」に変更する。この時点で、ビット・マスク40,42のビットの各々の値は同じ値を採ることができないので(ビット・マスクが「10」に設定されるので)、これらのビット・マスクは同期していない状態を示す。管理ストレージ・サーバ26の内の少なくとも一つのサーバは、これらのビット・マスクをモニターしており、ページデータのコピーが同期していないことを検出する。管理ストレージ・サーバがこの状態を検出した後、管理ストレージ・サーバは是正措置を採る。この場合、管理ストレージ・サーバがサーバ「0」上のページデータのコピーをサーバ「1」に書き込み、これによりデータのコピーを同期状態に戻す。当然のことながら、ビット・マスクを、他の原因による非同期を検出するために使用することもできる。
図3A及び3Bに関連付けて説明したビット・マスク装置は、より多くの数のコピーに対応できるように拡張することができる。当然のことながら、図3A及び3Bに関連付けて説明したものとは反対のビット値を利用してもよい。
移行(マイグレーション:migration)。ユーザは、管理ストレージ・サーバ26の内の少なくとも一つのサーバに接続されるインターフェイス28を使用してある論理ボリュームのデータを別の論理ボリュームに移行させることができる。これは、「半透明(translucent)」なレイヤ化機構の使用を確立することにより行なうことができる。更に詳細には、実行予定のデータの移行をユーザが開始、または決定した後、管理ストレージ・サーバは、移行される予定のデータを含むボリューム(古いボリューム)に関連するデータ・ストレージ・コンフィグレーション・マップの一部分を保存し、マップのこの部分をレイヤとして識別し、このレイヤを第1レイヤまたは旧レイヤとして整理する。次にデータ・ストレージ・コンフィグレーション・マップを更新して新規のデータ・ストレージ・コンフィグレーションを反映させ、データの移行先である論理ボリューム(新規ボリューム)を特定する。これにより、データ・ストレージ・コンフィグレーション識別子の値を更新する。識別子の新規マップ及び新規の値をストレージ・サーバ22及び関連するアプリケーション・クライアントのドライバ29に配布する。また、データの移行先の新規ボリュームに関連するコンフィグレーション・マップの一部分をレイヤとして特定し、このレイヤを第2レイヤまたは新規レイヤとして整理する。
レイヤ化を定義するかまたは整理した後、データを旧ボリュームから新規ボリュームに2つの可能な機構により移行させる。第1に、管理ストレージ・サーバ26の内の少なくとも一つのサーバが、第1レイヤまたは旧レイヤのページの各々を能動的にモニターして、旧ボリュームのページの各々に関連するデータが新規ボリュームに移行されていないかどうかを判断する。新規ボリュームに移行されなかったデータを含むページが検出された場合、管理ストレージ・サーバは、旧ボリュームのページのデータを読み出し、次にデータを新規ボリュームに書き込み、旧ボリュームのページに「消去済み」とマークする。データを旧ボリュームから新規ボリュームに移行させる第2機構は、アプリケーション・クライアントが新規ボリュームのページに書き込みを行おうと試みる際に実施される。この状況では、ドライバ29は、ページに関する書き込みリクエストを発行する前に、新規レイヤを精査して新規レイヤのページが旧ボリュームの該当するページからデータを受信したかどうかを判断する。データを受信していなかった場合、ドライバ29は、データの書き込み先のページに関連する新規レイヤの「透明な」部分から旧レイヤに至るまで「透視し」、データが未だに該当するページの旧ボリュームから移行されていないことを「見る(see)」ことができる。この場合、ドライバ29は、旧ボリュームのページのデータを読み出し、次にデータを新規ボリュームに書き込み、旧ボリュームのページに「消去済み」とマークする。さらに、旧ボリュームのページのデータが新規ボリュームに移行した後、ドライバ29は、書き込みリクエストを発行し、このリクエストによりデータが新規ボリュームのページに書き込まれる。
ページのデータが移行した後に旧ボリュームの各ページに消去済みとマークすることにより、移行に悪影響を及ぼす状況が生じないようにする機構を設ける。更に詳細には、2つのクライアント・アプリケーションは、同じ期間中でページのデータが旧ボリュームから未だ移行していない状態において新規ボリュームのページに書き込みを試みることが可能である。この状況では、各アプリケーション・クライアントに接続されるドライバ29は、データを旧ボリュームのページから新規ボリュームの該当するページに移行させようと試みる。アプリケーション・クライアントの内の一つのクライアントに接続されるドライバ29はページのデータを無事に移行させ、次に新規ボリュームのページのデータを書き込みリクエストを通して更新する。他のアプリケーション・クライアントに接続されるドライバ29は、上述したマークを付さない場合にはページのデータが移行されたことを認識せず、データを新規ボリュームの該当するページに移行しようと試みる。このようなことが起こると、他のアプリケーション・クライアントが移行するデータが、データを最初に移行させたアプリケーション・クライアントが発行した書き込みリクエストによりページに生成された新規データに上書きされる。このような可能性を無くすために、ドライバ29は旧レイヤの関連ページをチェックして、データ移行のための動作を行う前にページのデータが既に移行されてしまったかどうかを判断する。ページのデータが移行されてしまっている場合、ドライバ29は現在の書き込みリクエストを中断して書き込みリクエストを再度試みる。
旧ボリュームの各ページのデータが新規ボリュームに移行すると、旧レイヤは消去される。
図4A〜4Cを参照して、移行の例を説明する。図4Aは、それぞれデータ(A〜E)を含む6つのページ(0〜5)から構成された旧ボリューム、及び新規ボリュームを示しており、この状態は、データが旧ボリュームから新規ボリュームに移行する前である。移行を実行するために、更に旧ボリュームは、レイヤとして識別され、第1レイヤまたは旧レイヤとして整理される。データは、この時点で旧ボリュームのページの各々に含まれるので、旧レイヤに関連する「透明度」は無い。新規ボリュームもレイヤとして識別され、第2レイヤまたは新規レイヤとして整理される。データはこの時点で新規ボリュームのページのいずれにも含まれないので、新規レイヤの各ページに関連する「透明度」がある。この「透明度」によりアプリケーション・クライアントに接続されるドライバはページのデータが第1レイヤまたは旧レイヤに含まれていることを「見る(see)」ことができる。
図4Bは、旧ボリュームのページ「1」のデータ(B)が新規ボリュームのページ「1」に移行した後の旧ボリューム及び新規ボリュームを示している。この時点で、新規レイヤのページ「1」に関連する「透明度」が無くなっており、これは、旧ボリュームのページ「1」のデータが新規ボリュームのページ「1」に移行したことを示している。新規レイヤの他のページに関連する「透明度」は依然として保たれており、これは、旧レイヤの該当するページのデータが未だ移行していないことを示している。尚、移行によって旧レイヤのページ「1」が消去済みとマークされ、“X”により表現される。
図4Cは、旧ボリュームの各ページのデータが新規ボリュームの該当するページに移行した後の旧ボリューム及び新規ボリュームを示している。この時点で、新規レイヤに関連する「透明度」が無くなっており、これは、旧ボリュームの全ページのデータが新規ボリュームに移行したことを示している。また、移行が完了したことによって旧レイヤのページの各々が消去済みとマークされる。その結果、旧レイヤはもう必要なくなっているので、消去することができる。
当然のことながら、半透明レイヤ化機構を、追加レイヤを必要とする複数の移行に拡張することができる。
スナップショット。スナップショットによって特定時点でのボリュームの状態を保持することができ、同時に保持ボリューム、すなわちスナップショット・ボリュームのページのデータを新規ボリュームへ移行し、この新規ボリュームにおいて、ページをアプリケーション・クライアントの内の一つ以上のクライアントにより更新することができる。スナップショット・ボリュームの状態を保持するために、新規ボリュームはスナップショット・ボリュームと重複することができない。
ユーザは、管理ストレージ・サーバ26の内の少なくとも一つのサーバに接続されるインターフェイス28を使用してスナップショットを行うことができる。一旦、スナップショットが開始されると、管理ストレージ・サーバ26は、移行プロセスについて説明したのと同じ半透明レイヤ化機構を確立してスナップショット・ボリュームから新規ボリュームへのデータの移行を容易にする。アプリケーションに関連するドライバ29が行なう書き込みリクエストの発行の前段階として、ページのデータを移行させることにより移行が行われる。しかしながら移行プロセスとは異なり、ページのデータがスナップショット・ボリュームから新規ボリュームに移行した後、スナップショット・ボリュームのページは、消去済みとはマークされない。その結果、スナップショット・ボリュームのページのデータは保持される。
図5A〜5Cを参照して、スナップショットの例を説明する。図5Aは、それぞれデータ(A〜E)を含む6つのページ(0〜5)から構成されたスナップショット・ボリューム及び新規ボリュームを示しており、この状態は、データがスナップショット・ボリュームから新規ボリュームに移行する前である。移行を実行するために、更にスナップショット・ボリュームは、レイヤとして識別され、第1レイヤまたは旧レイヤとして整理される。データは、この時点でスナップショット・ボリュームのページの各々に含まれているので、旧レイヤに関連する「透明度」は無い。新規ボリュームもレイヤとして識別され、第2レイヤまたは新規レイヤとして整理される。データは、この時点で新規ボリュームのページのいずれにも含まれていないので、新規レイヤの各ページに関連する「透明度」がある。この「透明度」によりアプリケーション・クライアントに接続されるドライバは、ページのデータが第1レイヤまたは旧レイヤに含まれていることを「見る(see)」ことができる。
図5Bは、スナップショット・ボリュームのページ「1」のデータ(B)が新規ボリュームのページ「1」に移行した後のスナップショット・ボリューム及び新規ボリュームを示している。この時点で、新規レイヤのページ「1」に関連する「透明度」が無くなっており、これは、スナップショット・ボリュームのページ「1」のデータが新規ボリュームのページ「1」に移行したことを示している。新規レイヤの他のページに関連する「透明度」は依然として保たれており、これは、スナップショットレイヤの該当するページのデータが未だ移行していないことを示している。尚、移行前のスナップショット・ボリュームのページ「1」にあったデータが依然としてスナップショット・ボリュームのページ「1」に残っており、変更されていない。しかしながら、新規ボリュームのページ「1」に移行したデータは変更され易い。
図5Cは、スナップショット・ボリュームの各ページのデータが新規ボリュームの該当するページに移行した後のスナップショット・ボリューム及び新規ボリュームを示している。この時点で、新規レイヤに関連する「透明度」が無くなっており、これは、旧ボリュームの全ページのデータが新規ボリュームに移行したことを示している。尚、移行前のスナップショット・ボリュームのページの各々のデータが移行完了後に、依然として同じ位置に残っている。従って、スナップショットによって、特定の時点での初めのボリュームの状態が保持されたことになる。スナップショット・ボリュームのページの各々のデータも新規ボリュームに移行し、新規ボリュームのページは、アプリケーション・クライアントが発行する書き込みリクエストが処理される結果、変更され易い。
管理ストレージ・サーバプロセス。図6に示すように、管理ストレージ・サーバの各々は2つの主要なタスクを含むプロセスを実行する。2つの主要なタスクとは、ストレージ・サーバの故障または再起動の後のデータの再同期、及びボリュームデータの移行である。このプロセスは、2つのフェーズを有する。第1フェーズでは、ボリュームの位置、及びボリューム内のページであって再同期または移行を必要とするページの位置を特定する。まず、管理ストレージ・サーバは、現時点における管理対象のボリュームに関する一連のコンフィグレーション・マップを分析する。この分析から、サーバはどのボリュームが或る作業を必要としているかを判断するが、この理由は、ボリュームを異なる一連のストレージ・サーバに移行させる処理を施しているか、またはボリュームのデータを保存しているストレージ・サーバの内の少なくとも一つのサーバが機能しなくなり、その後再起動したが、完全には再同期していないからである。作業を必要としている一連のボリュームを判断した後、管理ストレージ・サーバはこれらのボリュームの内の一つのボリュームをランダムに、または或る優先度に従って選択する。次に管理ストレージ・サーバは、ストレージ・サーバの各々が移行基準または再同期基準に合致する或る固定数のページを最大数とするページを列挙するようにリクエストする。これらのページは、管理ストレージ・サーバによって蓄積され、この場合複製は廃棄される。次に管理はこれらのページ全体に渡って、1ページずつ、場合によっては数ページ並行して行われ、プロセスの第2フェーズに移る。
各ページに対して、管理ストレージ・サーバはまず、関連するストレージ・サーバに対してボリュームに関連する全てのレイヤのページの全コピーの状態をリクエストする。レイヤのいずれかのページのコピーのいずれかが、異なるコピーが異なるデータを含んでいることを示す同期ビットを有する場合、ページのこれらのレイヤが再同期するように選択される。これらのレイヤは次のようにして同期する。管理ストレージ・サーバは、一つのサーバのページの「信頼できるコピー」と呼ばれるコピーを選択し、そのコピーのコンテンツを読み出す。これらの管理ストレージ・サーバは、これらのサーバの全てが同じコピーを信頼できるものとして選択するような方法で、信頼できるコピーを選択する必要がある。これを行なうための一つの方法は、選択をコンフィグレーション・マップの情報に基づいて行うことであるが、他の方法を用いることも可能である。信頼できるコピーを読み出した後、管理ストレージ・サーバはページのコンテンツを該当するレイヤのページの他のコピーに書き込む。次に管理ストレージ・サーバは、ページの全コピーに、これらのコピーの同期ビットを設定することにより変更無し(clean)とマークする。これにより管理ストレージ・サーバは、当面はこのページに対する作業を完了した状態にある(ページに対して行なわれる予定の追加の作業が残っている可能性があるが、この場合にはストレージ・サーバはページを再度列挙する)。
ページの複数のコピーを再同期させる必要はないが、移行させる必要のあるコピーがある場合、管理ストレージ・サーバは、次のステップに従う。管理ストレージ・サーバはまず、どのレイヤが移行元レイヤになり、そしてどのレイヤが移行先レイヤになるかを判断する。次に管理ストレージ・サーバは、一つのコピーを移行元レイヤから読み出す。管理ストレージ・サーバは、このデータを移行先レイヤの全コピーに書き込む。次に管理ストレージ・サーバは、移行先レイヤの全コピーに、これらのコピーの同期ビットを設定することにより変更無しとマークする。最後に管理ストレージ・サーバは、移行元レイヤの全コピーを消去するようにリクエストする。この時点で、管理ストレージ・サーバはページの移行を終える。
このプロセスの各ステップを実行している最中に、ストレージ・サーバが、管理ストレージ・サーバが期限切れのデータ・ストレージ・コンフィグレーション識別子の値を使用していることを示すエラーを生成することがある。このようなことが起こると、管理ストレージ・サーバはプロセスを再開する。また、管理ストレージ・サーバは、プロセス中に通信エラーが生じるか、またはボリュームのコンフィグレーション・マップの構成が変化するとプロセスを再開する。
クライアント・ドライバ読み出しプロセス。図7Aに示すように、ドライバ29は、ボリュームのページデータの一部を読み出すプロセスを実行する。このプロセスは、ドライバが現時点のコンフィグレーション・マップのコピー及びデータ・ストレージ・コンフィグレーション識別子の値を、ドライバがアクセスしているボリュームの管理ストレージ・サーバから受信した後にのみ開始する。ドライバは最上層のレイヤから始めて、当該レイヤのページの一つのコピーを選択してそのコピーに対する読み出しを行なう。ドライバは、このコピーを選択してこのコピーに対する読み出しを、ランダムな方法、または性能負荷基準(負荷の最も軽いストレージ・サーバを選択しようとする)に従った方法を含む任意方法によって行なう。該当するレイヤにデータが含まれている場合、ドライバは、ドライバが読み出したデータをオペレーティング・システムに返送する。該当するレイヤにデータが含まれていない場合、ドライバはレイヤを一つずつ進んで、各レイヤのページデータを読み出そうとする。ドライバが有効なコピーの位置を特定することなく最後のレイヤに達したる場合、ドライバは、データは存在しているが全てがゼロ(「0」)であるかのように、データをオペレーティング・システムに返送する。同期ビットの状態によりいずれかのコピーが同期していない可能性があると判明すると、ドライバは、「信頼できるコピー」を読み出し、レイヤの全ての他のコピーに書き込みを行ない、同期ビットを全て「1」に設定し、プロセスを再開することにより、そのデータを再同期させる。どの時点においても、ストレージ・サーバがリクエストに対する返信として、ドライバが使用したデータ・ストレージ・コンフィグレーション識別子のコンフィグレーション値が古いことを通知すると、ドライバは、管理ストレージ・サーバに対して新規のコンフィグレーション・マップをリクエストし、プロセスを再開する。また、管理ストレージ・サーバがドライバに新規のコンフィグレーション・マップを送信する場合、以前には存在しているとしてマークされていたがそれ以降消去されてしまったページにドライバが遭遇した場合、または何らかの通信エラーが生じている場合、プロセスが再開する。
ドライバ書き込みプロセス。図7Bに示すように、ドライバ29は、データをボリュームのページの一部に書き込む処理を実行する。このプロセスは、ドライバがその第1コンフィグレーション・マップ及びデータ・ストレージ・コンフィグレーション識別子を管理ストレージ・サーバから受信した後にのみ開始する。
このプロセスでは、まず、最上層または最上層に最も近いレイヤのページの全てのコピーにデータを書き込む。全ての書き込みが無事行なわれると、ドライバは無事完了した旨をオペレーティング・システムに返信する。最上層のレイヤにコピーが全く含まれていない場合、ドライバは、レイヤを下位に向かって走査を進めて、全てのレイヤに関してデータの最上層コピーを探索する。データが同期していない場合、ドライバはデータを再同期させる(上記読み出しプロセスのステップと同じステップを使用する)。どのレイヤにもページが含まれていない場合、ゼロが最上層レイヤの全コピーに書き込まれ、全コピーの同期ビットが設定され、プロセスが再開する。いずれかのレイヤにページが含まれている場合、最上層レイヤのデータの一つのコピーを選択し、ドライバがページの全体を読み出し、最上層レイヤの全コピーに書き込み、最上層レイヤの同期ビットを設定し、このプロセスを再開する。
他のプロセスにおけるように、いずれかのリクエストに対して、ストレージ・サーバがドライバのコンフィグレーションIDが古いと返答すると、クライアント・ドライバは、新規のコンフィグレーション・マップ及びデータ・ストレージ・コンフィグレーション識別子を管理ストレージ・サーバにリクエストし、プロセスを再開する。また、管理ストレージ・サーバがドライバに新規のコンフィグレーション・マップを送信する場合、以前には存在しているとしてマークされていたがそれ以降消去されてしまったページにドライバが遭遇した場合、または何らかの通信エラーが生じている場合にも、プロセスは再開する。
本発明の分散ストレージ・システムの一実施形態を用いたネットワーク・コンピュータ・システムのブロック図である。 アプリケーション・クライアントがパラレル・データベース・サーバであり、本発明の分散ストレージ・システムの一実施形態が用いらたネットワーク・コンピュータ・システムのブロック図。 データが複製されているとき、あるストレージ・サーバのページデータが別のストレージ・サーバのページデータのコピーと同期していることが確認される検証においてビット・マスクを使用することを示す図。 データが複製されているとき、ビット・マスクを使用して、一のストレージ・サーバのページデータが別のストレージ・サーバのページデータのコピーと同期していないことを示す図。 データを一のボリュームのページから別のボリュームのページに移行させるレイヤ化機構の使用の一例を示す図。 データを一のボリュームのページから別のボリュームのページに移行させるレイヤ化機構の使用の一例を示す図。 データを一のボリュームのページから別のボリュームのページに移行させるレイヤ化機構の使用の一例を示す図。 スナップショット動作を実行するレイヤ化機構の使用の一例を示す図。 スナップショット動作を実行するレイヤ化機構の使用の一例を示す図。 スナップショット動作を実行するレイヤ化機構の使用の一例を示す図。 管理ストレージ・サーバがストレージ・サーバ・システムを管理するために実行するプロセスの実施形態を示す図。 アプリケーション・クライアントに関連するドライバが読み出し動作を行なうために実行するプロセスの実施形態を示す図。 アプリケーション・クライアントに関連するドライバが書き込み動作を行なうために実行するプロセスの実施形態を示す図。

Claims (11)

  1. コンピュータ・ネットワーク上での分散データ保存を実現する際に使用するシステムであって、
    一つ以上のストレージ・サーバを含むストレージ・サーバ・システムであって、該一つ以上のストレージ・サーバの各々は、データ・ストレージ・デバイス及びネットワーク・インターフェイスを含み、該ネットワーク・インターフェイスは、データ保存を要求するアプリケーション・クライアント及び管理ストレージ・サーバと通信する、ストレージ・サーバ・システムと、
    一つ以上の管理ストレージ・サーバを含む管理ストレージ・サーバ・システムであって、該一つ以上の管理ストレージ・サーバの各々は、ネットワーク・インターフェイスを含み、該ネットワーク・インターフェイスは、データ保存を要求するアプリケーション・クライアント及び前記一つ以上のストレージ・サーバの各々と通信する、管理ストレージ・サーバと、を備え、
    前記管理ストレージ・サーバの各々は、その値が前記ストレージ・サーバ・システム内の或る時点でのデータ保存領域の割当てを示すデータ・ストレージ・コンフィグレーション識別子を含み、
    前記ストレージ・サーバ・システム内のデータ保存領域の割当ては、前記ストレージ・サーバの内の一つ以上のストレージ・サーバに渡って分散した一つ以上のデータ保存領域の仮想ボリュームを定義することを備え、
    前記管理ストレージ・サーバの各々は、前記データ・ストレージ・コンフィグレーション識別子の第1の値をアプリケーション・クライアントに供給する機能を有し、
    前記管理ストレージ・サーバの各々は、前記ストレージ・サーバ・システム内のデータ保存領域の割当てに変化が生じた後に、前記データ・ストレージ・コンフィグレーション識別子の第2の値を前記ストレージ・サーバの各々に供給する機能を有し、
    前記ストレージ・サーバの各々は、(a)アプリケーション・クライアントから受信したデータ保存関連リクエストに関連する前記データ・ストレージ・コンフィグレーション識別子の前記第1の値を、(b)前記データ・ストレージ・コンフィグレーション識別子の前記第2の値と比較し、(c)前記第1の値が前記第2の値に等しくない場合に前記データ保存関連リクエストを無視する比較器を含む、システム。
  2. アプリケーション・クライアントのオペレーティング・システムとの接続を行なうドライバを更に備え、
    前記ドライバは、前記データ・ストレージ・コンフィグレーション識別子の前記第1の値を、ネットワークを通して前記ストレージ・サーバに送信されるデータ保存関連のリクエストに関連付ける機能を有する、請求項1記載のシステム。
  3. 前記一つ以上の管理ストレージ・サーバの各々は、前記ストレージ・サーバ・システムの前記一つ以上のストレージ・サーバを識別することが可能なコンフィグレーション・マップを含み、
    前記一つ以上の管理ストレージ・サーバの各々は、ユーザが前記コンフィグレーション・マップを変更してストレージ・サーバを追加するか、或いは取り除くことを可能にするインターフェイスを含む、請求項1記載のシステム。
  4. 前記一つ以上の管理ストレージ・サーバの各々は、(a)前記ストレージ・サーバ・システムの前記一つ以上のストレージ・サーバを識別すること、(b)前記ストレージ・サーバ・システムの内の2つ以上のサーバに渡って拡張された仮想ボリュームを識別すること、(c)前記ストレージ・サーバの内の2つ以上のサーバ間の前記仮想ボリュームのパーティションを識別すること、が可能なコンフィグレーション・マップを備え、
    前記一つ以上の管理ストレージ・サーバの各々は、ユーザが前記コンフィグレーション・マップを変更して前記仮想ボリュームの前記パーティションを定義することを可能にするインターフェイスを含む、請求項1記載のシステム。
  5. 前記一つ以上の管理ストレージ・サーバの各々は、コンフィグレーション・マップを備える、請求項1記載のシステム。
  6. 前記一つ以上の管理ストレージ・サーバの各々は、コンフィグレーション・マップを備える、請求項1記載のシステム。
  7. 前記一つ以上の管理ストレージ・サーバの各々は、コンフィグレーション・マップを備える、請求項1記載のシステム。
  8. 前記一つ以上の管理ストレージ・サーバの各々は、コンフィグレーション・マップを備える、請求項1記載のシステム。
  9. 前記データ・ストレージ・コンフィグレーション識別子の前記値は、タイム・スタンプである、請求項1記載のシステム。
  10. 前記タイム・スタンプは、論理タイム・スタンプを含む、請求項9記載のシステム。
  11. 前記データ・ストレージ・デバイスは、ディスク・ドライブを備える、請求項1記載のシステム。
JP2004509750A 2002-05-31 2003-05-30 仮想分散ネットワーク・ストレージ・システム Pending JP2005528684A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/063,992 US6732171B2 (en) 2002-05-31 2002-05-31 Distributed network storage system with virtualization
PCT/US2003/017098 WO2003102731A2 (en) 2002-05-31 2003-05-30 Distributed network storage system with virtualization

Publications (2)

Publication Number Publication Date
JP2005528684A true JP2005528684A (ja) 2005-09-22
JP2005528684A5 JP2005528684A5 (ja) 2006-07-20

Family

ID=29581855

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004509750A Pending JP2005528684A (ja) 2002-05-31 2003-05-30 仮想分散ネットワーク・ストレージ・システム

Country Status (9)

Country Link
US (2) US6732171B2 (ja)
EP (1) EP1512082A4 (ja)
JP (1) JP2005528684A (ja)
KR (1) KR20050010845A (ja)
CN (1) CN100339847C (ja)
AU (1) AU2003243347A1 (ja)
BR (1) BR0311390A (ja)
CA (1) CA2486994A1 (ja)
WO (1) WO2003102731A2 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009003769A (ja) * 2007-06-22 2009-01-08 Nec Corp ネットワークファイルシステムおよびネットワークファイルシステム復旧方法
JP4806729B2 (ja) * 2007-06-27 2011-11-02 マイクロソフト コーポレーション グローバルナレッジを有するサーバによる書込リクエスト処理
JP2014142945A (ja) * 2007-12-26 2014-08-07 Symantec Corp 分散リソース管理のためのバランスしたコンシステント・ハッシュ
US9514003B2 (en) 2013-03-19 2016-12-06 International Business Machines Corporation Executing a file backup process
JP2018503887A (ja) * 2015-12-30 2018-02-08 華為技術有限公司Huawei Technologies Co.,Ltd. 獲得ロック要求を処理するための方法及びサーバ

Families Citing this family (137)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7162600B2 (en) 2005-03-29 2007-01-09 Hitachi, Ltd. Data copying method and apparatus in a thin provisioned system
US6732171B2 (en) * 2002-05-31 2004-05-04 Lefthand Networks, Inc. Distributed network storage system with virtualization
US7571206B2 (en) * 2002-08-12 2009-08-04 Equallogic, Inc. Transparent request routing for a partitioned application service
US7649880B2 (en) 2002-11-12 2010-01-19 Mark Adams Systems and methods for deriving storage area commands
AU2002361716A1 (en) * 2002-11-12 2004-06-03 Zetera Corporation Data storage devices having ip capable partitions
US7170890B2 (en) * 2002-12-16 2007-01-30 Zetera Corporation Electrical devices with improved communication
US8005918B2 (en) 2002-11-12 2011-08-23 Rateze Remote Mgmt. L.L.C. Data storage devices having IP capable partitions
US7461146B2 (en) * 2003-01-20 2008-12-02 Equallogic, Inc. Adaptive storage block data distribution
US7627650B2 (en) * 2003-01-20 2009-12-01 Equallogic, Inc. Short-cut response for distributed services
US20040160975A1 (en) * 2003-01-21 2004-08-19 Charles Frank Multicast communication protocols, systems and methods
US20040210724A1 (en) * 2003-01-21 2004-10-21 Equallogic Inc. Block data migration
US7127577B2 (en) * 2003-01-21 2006-10-24 Equallogic Inc. Distributed snapshot process
US8499086B2 (en) * 2003-01-21 2013-07-30 Dell Products L.P. Client load distribution
US7937551B2 (en) 2003-01-21 2011-05-03 Dell Products L.P. Storage systems having differentiated storage pools
US8037264B2 (en) 2003-01-21 2011-10-11 Dell Products, L.P. Distributed snapshot process
JP3632695B2 (ja) * 2003-05-06 2005-03-23 セイコーエプソン株式会社 データ転送制御装置、電子機器及びデータ転送制御方法
US6823442B1 (en) * 2003-05-12 2004-11-23 3Pardata, Inc. Method of managing virtual volumes in a utility storage server system
US8136025B1 (en) 2003-07-03 2012-03-13 Google Inc. Assigning document identification tags
US7568034B1 (en) * 2003-07-03 2009-07-28 Google Inc. System and method for data distribution
EP1668486A2 (en) * 2003-08-14 2006-06-14 Compellent Technologies Virtual disk drive system and method
US9489150B2 (en) 2003-08-14 2016-11-08 Dell International L.L.C. System and method for transferring data between different raid data storage types for current data and replay data
US7552149B2 (en) * 2003-09-06 2009-06-23 Oracle International Corporation Querying past versions of data in a distributed database
US7725760B2 (en) 2003-09-23 2010-05-25 Symantec Operating Corporation Data storage system
US7287133B2 (en) 2004-08-24 2007-10-23 Symantec Operating Corporation Systems and methods for providing a modification history for a location within a data store
US7577806B2 (en) 2003-09-23 2009-08-18 Symantec Operating Corporation Systems and methods for time dependent data storage and recovery
US7827362B2 (en) 2004-08-24 2010-11-02 Symantec Corporation Systems, apparatus, and methods for processing I/O requests
US7991748B2 (en) 2003-09-23 2011-08-02 Symantec Corporation Virtual data store creation and use
US7904428B2 (en) 2003-09-23 2011-03-08 Symantec Corporation Methods and apparatus for recording write requests directed to a data store
US7730222B2 (en) 2004-08-24 2010-06-01 Symantec Operating System Processing storage-related I/O requests using binary tree data structures
JP4311637B2 (ja) 2003-10-30 2009-08-12 株式会社日立製作所 記憶制御装置
US7565431B2 (en) * 2003-11-20 2009-07-21 International Business Machines Corporation Method, system, and program for determining information on a storage system in a network
CN100349408C (zh) * 2004-02-12 2007-11-14 华为技术有限公司 实现网管系统和网元设备配置数据实时同步的方法
US7395369B2 (en) * 2004-05-18 2008-07-01 Oracle International Corporation Distributing data across multiple storage devices
US7251660B2 (en) * 2004-06-10 2007-07-31 Oracle International Corporation Providing mappings between logical time values and real time values in a multinode system
US20060031230A1 (en) * 2004-07-21 2006-02-09 Kumar Sinha M Data storage systems
US8601035B2 (en) * 2007-06-22 2013-12-03 Compellent Technologies Data storage space recovery system and method
US7707586B2 (en) * 2004-09-08 2010-04-27 Intel Corporation Operating system independent agent
US7062624B2 (en) * 2004-09-29 2006-06-13 Hitachi, Ltd. Method for managing volume groups considering storage tiers
CN100384294C (zh) * 2004-09-30 2008-04-23 华为技术有限公司 一种实现漫游限制的方法
US20060080362A1 (en) * 2004-10-12 2006-04-13 Lefthand Networks, Inc. Data Synchronization Over a Computer Network
US7386664B1 (en) * 2004-10-13 2008-06-10 Symantec Operation Corporation Method and system for mirror storage element resynchronization in a storage virtualization device
US7330955B2 (en) * 2004-10-18 2008-02-12 Seagate Technology Llc Recovery record for updating a system configuration
US8346843B2 (en) * 2004-12-10 2013-01-01 Google Inc. System and method for scalable data distribution
US20060129987A1 (en) * 2004-12-15 2006-06-15 Patten Benhase Linda V Apparatus, system, and method for accessing management data
JP2006172385A (ja) * 2004-12-20 2006-06-29 Hitachi Ltd 計算機システム、ストレージ管理プログラムの呼出方法及びストレージシステム
US7363444B2 (en) * 2005-01-10 2008-04-22 Hewlett-Packard Development Company, L.P. Method for taking snapshots of data
US8386449B2 (en) * 2005-01-27 2013-02-26 International Business Machines Corporation Customer statistics based on database lock use
US7702850B2 (en) 2005-03-14 2010-04-20 Thomas Earl Ludwig Topology independent storage arrays and methods
US8296271B1 (en) * 2005-03-28 2012-10-23 Federal Home Loan Mortgage Corporation System and method for optimizing data recovery in a parallel database
US7620981B2 (en) 2005-05-26 2009-11-17 Charles William Frank Virtual devices and virtual bus tunnels, modules and methods
JP4699808B2 (ja) * 2005-06-02 2011-06-15 株式会社日立製作所 ストレージシステム及び構成変更方法
CN100384146C (zh) * 2005-06-08 2008-04-23 杭州华三通信技术有限公司 管理分布式网络设备的方法
US20060294300A1 (en) 2005-06-22 2006-12-28 Seagate Technology Llc Atomic cache transactions in a distributed storage system
US7475207B2 (en) 2005-07-14 2009-01-06 Emc Corporation Maintaining write order fidelity on a multi-writer system
US7743214B2 (en) * 2005-08-16 2010-06-22 Mark Adams Generating storage system commands
US8819092B2 (en) 2005-08-16 2014-08-26 Rateze Remote Mgmt. L.L.C. Disaggregated resources and access methods
US7647335B1 (en) 2005-08-30 2010-01-12 ATA SpA - Advanced Technology Assessment Computing system and methods for distributed generation and storage of complex relational data
US9270532B2 (en) 2005-10-06 2016-02-23 Rateze Remote Mgmt. L.L.C. Resource command messages and methods
US20070088931A1 (en) * 2005-10-17 2007-04-19 Nobuyuki Osaki Method and apparatus to authorize cross-partition commands
JP4852298B2 (ja) * 2005-10-28 2012-01-11 株式会社日立製作所 仮想ボリュームを識別する情報を引き継ぐ方法及びその方法を用いたストレージシステム
US8200869B2 (en) * 2006-02-07 2012-06-12 Seagate Technology Llc Storage system with alterable background behaviors
CN100423491C (zh) * 2006-03-08 2008-10-01 杭州华三通信技术有限公司 虚拟化网络存储系统及其网络存储设备
US7924881B2 (en) 2006-04-10 2011-04-12 Rateze Remote Mgmt. L.L.C. Datagram identifier management
US8005793B1 (en) * 2006-04-18 2011-08-23 Netapp, Inc. Retaining persistent point in time data during volume migration
US8260924B2 (en) * 2006-05-03 2012-09-04 Bluetie, Inc. User load balancing systems and methods thereof
JP5124103B2 (ja) * 2006-05-16 2013-01-23 株式会社日立製作所 計算機システム
JP2009538493A (ja) * 2006-05-24 2009-11-05 コンペレント・テクノロジーズ データ・プログレッション・ディスク局所性最適化のシステムおよび方法
EP2357552A1 (en) 2006-05-24 2011-08-17 Compellent Technologies System and method for RAID management, reallocation and restriping
US8056082B2 (en) * 2006-05-31 2011-11-08 Bluetie, Inc. Capacity management and predictive planning systems based on trended rate change of monitored factors and methods thereof
US8261068B1 (en) 2008-09-30 2012-09-04 Emc Corporation Systems and methods for selective encryption of operating system metadata for host-based encryption of data at rest on a logical unit
US7904681B1 (en) * 2006-06-30 2011-03-08 Emc Corporation Methods and systems for migrating data with minimal disruption
US8416954B1 (en) 2008-09-30 2013-04-09 Emc Corporation Systems and methods for accessing storage or network based replicas of encrypted volumes with no additional key management
US8352448B2 (en) * 2007-01-23 2013-01-08 International Business Machines Corporation Securely deleting data in a transactionally consistent manner
US7814360B2 (en) * 2007-01-25 2010-10-12 Oralce International Corporation Synchronizing cluster time to a master node with a faster clock
CN101296108B (zh) * 2007-04-27 2012-12-12 华为技术有限公司 一种在结构化p2p中备份资源的方法和系统
JP5142629B2 (ja) * 2007-08-22 2013-02-13 株式会社日立製作所 仮想ボリュームのバックアップを行うストレージシステム及び方法
US7543046B1 (en) * 2008-05-30 2009-06-02 International Business Machines Corporation Method for managing cluster node-specific quorum roles
US8930371B1 (en) * 2008-06-30 2015-01-06 Amazon Technologies, Inc. Systems and methods for efficiently storing index data on an electronic device
KR20110066940A (ko) * 2008-10-06 2011-06-17 인터내셔널 비지네스 머신즈 코포레이션 복수의 어플리케이션 서버에 의해 공유 데이터를 액세스하는 시스템
SE533007C2 (sv) 2008-10-24 2010-06-08 Ilt Productions Ab Distribuerad datalagring
US8169856B2 (en) * 2008-10-24 2012-05-01 Oracle International Corporation Time synchronization in cluster systems
KR100926098B1 (ko) * 2008-11-18 2009-11-11 주식회사 네오플 스냅샷 데이터베이스를 이용한 정보 복구 방법 및 장치
US8166314B1 (en) 2008-12-30 2012-04-24 Emc Corporation Selective I/O to logical unit when encrypted, but key is not available or when encryption status is unknown
US9323473B2 (en) 2009-01-09 2016-04-26 Hewlett Packard Enterprise Development Lp Virtual tape library
US8468292B2 (en) 2009-07-13 2013-06-18 Compellent Technologies Solid state drive data storage system and method
US9092597B2 (en) * 2009-12-09 2015-07-28 Sandisk Technologies Inc. Storage device and method for using a virtual file in a public memory area to access a plurality of protected files in a private memory area
EP2387200B1 (en) 2010-04-23 2014-02-12 Compuverde AB Distributed data storage
US8301715B2 (en) * 2010-05-20 2012-10-30 Sandisk Il Ltd. Host device and method for accessing a virtual file in a storage device by bypassing a cache in the host device
US8930330B1 (en) 2011-06-27 2015-01-06 Amazon Technologies, Inc. Validation of log formats
US8688635B2 (en) 2011-07-01 2014-04-01 International Business Machines Corporation Data set connection manager having a plurality of data sets to represent one data set
US9658892B2 (en) 2011-08-31 2017-05-23 International Business Machines Corporation Management of storage cluster performance with hybrid workloads
US8769138B2 (en) 2011-09-02 2014-07-01 Compuverde Ab Method for data retrieval from a distributed data storage system
US9626378B2 (en) 2011-09-02 2017-04-18 Compuverde Ab Method for handling requests in a storage system and a storage node for a storage system
US8650365B2 (en) 2011-09-02 2014-02-11 Compuverde Ab Method and device for maintaining data in a data storage system comprising a plurality of data storage nodes
US8645978B2 (en) 2011-09-02 2014-02-04 Compuverde Ab Method for data maintenance
US8997124B2 (en) 2011-09-02 2015-03-31 Compuverde Ab Method for updating data in a distributed data storage system
US9021053B2 (en) 2011-09-02 2015-04-28 Compuverde Ab Method and device for writing data to a data storage system comprising a plurality of data storage nodes
US8966211B1 (en) * 2011-12-19 2015-02-24 Emc Corporation Techniques for dynamic binding of device identifiers to data storage devices
US9141440B2 (en) * 2011-12-29 2015-09-22 Red Hat, Inc. Fault tolerant distributed lock manager
US9146851B2 (en) 2012-03-26 2015-09-29 Compellent Technologies Single-level cell and multi-level cell hybrid solid state drive
KR101496011B1 (ko) * 2012-07-09 2015-02-26 부산대학교 산학협력단 하둡 기반 센서 스트림 데이터 처리 시스템 및 방법
CN102917005B (zh) * 2012-08-28 2016-10-26 大唐软件技术股份有限公司 一种支持事务的海量存储访问方法及装置
KR101242458B1 (ko) * 2012-09-13 2013-03-12 효성아이티엑스(주) 지능형 분산 스토리지 서비스 시스템 및 방법
US9501501B2 (en) 2013-03-15 2016-11-22 Amazon Technologies, Inc. Log record management
US10180951B2 (en) 2013-03-15 2019-01-15 Amazon Technologies, Inc. Place snapshots
US9672237B2 (en) 2013-03-15 2017-06-06 Amazon Technologies, Inc. System-wide checkpoint avoidance for distributed database systems
US9514007B2 (en) 2013-03-15 2016-12-06 Amazon Technologies, Inc. Database system with database engine and separate distributed storage service
US11030055B2 (en) 2013-03-15 2021-06-08 Amazon Technologies, Inc. Fast crash recovery for distributed database systems
US10747746B2 (en) 2013-04-30 2020-08-18 Amazon Technologies, Inc. Efficient read replicas
US9317213B1 (en) 2013-05-10 2016-04-19 Amazon Technologies, Inc. Efficient storage of variably-sized data objects in a data store
US9760596B2 (en) 2013-05-13 2017-09-12 Amazon Technologies, Inc. Transaction ordering
US9208032B1 (en) 2013-05-15 2015-12-08 Amazon Technologies, Inc. Managing contingency capacity of pooled resources in multiple availability zones
US10303564B1 (en) 2013-05-23 2019-05-28 Amazon Technologies, Inc. Reduced transaction I/O for log-structured storage systems
US9305056B1 (en) 2013-05-24 2016-04-05 Amazon Technologies, Inc. Results cache invalidation
US9047189B1 (en) 2013-05-28 2015-06-02 Amazon Technologies, Inc. Self-describing data blocks of a minimum atomic write size for a data store
US9280591B1 (en) 2013-09-20 2016-03-08 Amazon Technologies, Inc. Efficient replication of system transactions for read-only nodes of a distributed database
US9519664B1 (en) 2013-09-20 2016-12-13 Amazon Technologies, Inc. Index structure navigation using page versions for read-only nodes
US10216949B1 (en) 2013-09-20 2019-02-26 Amazon Technologies, Inc. Dynamic quorum membership changes
US9507843B1 (en) 2013-09-20 2016-11-29 Amazon Technologies, Inc. Efficient replication of distributed storage changes for read-only nodes of a distributed database
US9460008B1 (en) 2013-09-20 2016-10-04 Amazon Technologies, Inc. Efficient garbage collection for a log-structured data store
US9552242B1 (en) 2013-09-25 2017-01-24 Amazon Technologies, Inc. Log-structured distributed storage using a single log sequence number space
US10223184B1 (en) 2013-09-25 2019-03-05 Amazon Technologies, Inc. Individual write quorums for a log-structured distributed storage system
US9699017B1 (en) 2013-09-25 2017-07-04 Amazon Technologies, Inc. Dynamic utilization of bandwidth for a quorum-based distributed storage system
US10387399B1 (en) 2013-11-01 2019-08-20 Amazon Technologies, Inc. Efficient database journaling using non-volatile system memory
US9760480B1 (en) 2013-11-01 2017-09-12 Amazon Technologies, Inc. Enhanced logging using non-volatile system memory
US9880933B1 (en) 2013-11-20 2018-01-30 Amazon Technologies, Inc. Distributed in-memory buffer cache system using buffer cache nodes
US9223843B1 (en) 2013-12-02 2015-12-29 Amazon Technologies, Inc. Optimized log storage for asynchronous log updates
US10303663B1 (en) 2014-06-12 2019-05-28 Amazon Technologies, Inc. Remote durable logging for journaling file systems
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
CN105630104A (zh) * 2015-12-30 2016-06-01 深圳市瑞驰信息技术有限公司 一种集群存储系统
US11914571B1 (en) 2017-11-22 2024-02-27 Amazon Technologies, Inc. Optimistic concurrency for a multi-writer database
US10534751B1 (en) 2018-09-11 2020-01-14 Seagate Technology Llc Metadata space efficient snapshot operation in page storage
US10942902B2 (en) * 2019-01-17 2021-03-09 Cohesity, Inc. Efficient database migration using an intermediary secondary storage system
CN111277634B (zh) * 2020-01-14 2021-12-21 北京金山云网络技术有限公司 一种数据id分配方法、装置、系统以及服务器
US11341163B1 (en) 2020-03-30 2022-05-24 Amazon Technologies, Inc. Multi-level replication filtering for a distributed database
CN113760395A (zh) * 2020-06-30 2021-12-07 北京沃东天骏信息技术有限公司 接口鉴权的方法、装置、设备和计算机可读介质

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5537585A (en) * 1994-02-25 1996-07-16 Avail Systems Corporation Data storage management for network interconnected processors
US6260145B1 (en) * 1997-02-14 2001-07-10 Fujitsu Limited System and method of authentication of digital information
DE69822283T2 (de) * 1997-12-24 2004-07-29 Nortel Networks Ltd., St. Laurent Verteilte dauerhafte Speicher für Benutzer- Anbieter- Systeme mit manchmal unterbrochenen Verbindungen
US6295575B1 (en) * 1998-06-29 2001-09-25 Emc Corporation Configuring vectors of logical storage units for data storage partitioning and sharing
US7165152B2 (en) * 1998-06-30 2007-01-16 Emc Corporation Method and apparatus for managing access to storage devices in a storage system with access control
US6148414A (en) * 1998-09-24 2000-11-14 Seek Systems, Inc. Methods and systems for implementing shared disk array management functions
US20020103889A1 (en) * 2000-02-11 2002-08-01 Thomas Markson Virtual storage layer approach for dynamically associating computer storage with processing hosts
US6732171B2 (en) * 2002-05-31 2004-05-04 Lefthand Networks, Inc. Distributed network storage system with virtualization

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009003769A (ja) * 2007-06-22 2009-01-08 Nec Corp ネットワークファイルシステムおよびネットワークファイルシステム復旧方法
JP4806729B2 (ja) * 2007-06-27 2011-11-02 マイクロソフト コーポレーション グローバルナレッジを有するサーバによる書込リクエスト処理
JP2014142945A (ja) * 2007-12-26 2014-08-07 Symantec Corp 分散リソース管理のためのバランスしたコンシステント・ハッシュ
US9514003B2 (en) 2013-03-19 2016-12-06 International Business Machines Corporation Executing a file backup process
JP2018503887A (ja) * 2015-12-30 2018-02-08 華為技術有限公司Huawei Technologies Co.,Ltd. 獲得ロック要求を処理するための方法及びサーバ
US10846185B2 (en) 2015-12-30 2020-11-24 Huawei Technologies Co., Ltd. Method for processing acquire lock request and server

Also Published As

Publication number Publication date
WO2003102731A3 (en) 2004-03-25
WO2003102731A2 (en) 2003-12-11
CN100339847C (zh) 2007-09-26
US7200664B2 (en) 2007-04-03
EP1512082A4 (en) 2009-07-22
AU2003243347A1 (en) 2003-12-19
BR0311390A (pt) 2005-04-05
US6732171B2 (en) 2004-05-04
US20030225884A1 (en) 2003-12-04
CN1662903A (zh) 2005-08-31
US20050010618A1 (en) 2005-01-13
EP1512082A2 (en) 2005-03-09
KR20050010845A (ko) 2005-01-28
CA2486994A1 (en) 2003-12-11
US20050144199A2 (en) 2005-06-30

Similar Documents

Publication Publication Date Title
JP2005528684A (ja) 仮想分散ネットワーク・ストレージ・システム
US6950915B2 (en) Data storage subsystem
US7149787B1 (en) Apparatus and method for mirroring and restoring data
US6694413B1 (en) Computer system and snapshot data management method thereof
US6968425B2 (en) Computer systems, disk systems, and method for controlling disk cache
EP1455275B1 (en) Data restoring apparatus using journal data and identification information
US7013379B1 (en) I/O primitives
US7173929B1 (en) Fast path for performing data operations
EP2131284B1 (en) Storage system and method of producing recovery volume
US7702866B2 (en) Use of volume containers in replication and provisioning management
EP2161661B1 (en) Computer system and backup method therefor
US8060468B2 (en) Storage system and data recovery method
US20110066804A1 (en) Storage device and information management system
JP4615344B2 (ja) データ処理システム及びデータベースの管理方法
US20080005288A1 (en) Storage system and data replication method
JP2005004719A (ja) ロールバックによるデータレプリケーション方式
US7139875B2 (en) Disk array apparatus and control method for disk array apparatus
JP4804218B2 (ja) 記憶媒体への書き込み回数を管理する計算機システム及びその制御方法
CN100550894C (zh) 对n路共享存储系统中快闪副本的高效锁管理
US6684307B2 (en) Duplex disk controller
US7219204B2 (en) Dynamic, policy-based control of copy service precedence

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060529

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060529

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090721

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20091215