JP5695660B2 - クラスタ選択及び協調的レプリケーションのためのクラスタ・ファミリー - Google Patents

クラスタ選択及び協調的レプリケーションのためのクラスタ・ファミリー Download PDF

Info

Publication number
JP5695660B2
JP5695660B2 JP2012542429A JP2012542429A JP5695660B2 JP 5695660 B2 JP5695660 B2 JP 5695660B2 JP 2012542429 A JP2012542429 A JP 2012542429A JP 2012542429 A JP2012542429 A JP 2012542429A JP 5695660 B2 JP5695660 B2 JP 5695660B2
Authority
JP
Japan
Prior art keywords
cluster
family
clusters
volume
family members
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.)
Active
Application number
JP2012542429A
Other languages
English (en)
Other versions
JP2013513839A (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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2013513839A publication Critical patent/JP2013513839A/ja
Application granted granted Critical
Publication of JP5695660B2 publication Critical patent/JP5695660B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • 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/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • 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/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1464Management of the backup or restore process for networked environments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • G06F11/2082Data synchronisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • 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/0604Improving or facilitating administration, e.g. storage management
    • 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/0614Improving the reliability of storage systems
    • G06F3/0617Improving the reliability of storage systems in relation to availability
    • 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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • 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/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • 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]
    • 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/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • 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/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0686Libraries, e.g. tape libraries, jukebox
    • 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
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • 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/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0682Tape device

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)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Library & Information Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Hardware Redundancy (AREA)
  • Developing Agents For Electrophotography (AREA)

Description

本発明は、データ・ストレージ・システムに関するデータ・ストレージに関し、より具体的には、ストレージ・システム内のクラスタに関する。
ストレージ・システムは、ライブラリ・マネージャを用いて複数の磁気テープにアクセスするために用いられる複数のテープ・ドライブを含むことができる。磁気テープは、カートリッジ内に配置することができる。コントローラは、アクチュエータに、テープ・カートリッジを記憶領域(storage area)からテープ・ドライブに転送し、磁気テープ上に書き込まれたデータにアクセスする、及び/又は、データを磁気テープに書き込むように指示することができる。
ストレージ・システムは、複数の地理的に異なるサイトを含む複数のサイトに配置することができる。ストレージ・システムは、1つ又は複数のネットワークを通じて通信することができる。各々のストレージ・システムは、複数のクラスタを含むことができる。各々のクラスタは、複数のテープ・ドライブを含むことができる。磁気テープは、磁気テープとの間でデータを読み書きするために、テープ・ドライブにマウント(mount)される。
各々の磁気テープは、本明細書ではボリュームと呼ばれる、1つ又は複数の論理ボリュームとして編成することができる。ボリュームは、ホストには別個のストレージ・デバイスのように見えることがある。ボリュームは、仮想テープ・ドライブ上に論理的に「マウントする」ことができる。本明細書で用いられる仮想テープ・ドライブは、ホストにはテープ・ドライブのように見える論理構成体(logical construct)である。
特許文献1(Sutani,M R,他)は、分散構造におけるクラスタにわたるデータのパーティション化を開示し、ここで、キャッシュされたノードの動的レプリケーション(複製、replication)は、バディ・レプリケーション(buddy replication)の概念に基づいている。バディ・レプリケーションは、クラスタ内の有限数のノードによってデータを複製することを可能にし、ネットワーク・レプリケーション・トラフィックを低減させる。
特許文献2(Bates,J W)は、ピア・ツー・ピアのデータ・レプリケーションを実施する、レプリケーション・クラスタ内で実施される遠隔非同期データ・レプリケーション・プロセスを開示する。ピア・ツー・ピア・トポロジーは、データをネットワーク上のサイトの間で双方向に複製することによって、ローカル・サイトの一次ストレージが、データを遠隔サイトに分散させることを可能にする。
マルチ・クラスタ構成においては、各々のクラスタは、全ての他のクラスタから同じように独立している。何らかの関係の認識がなければ、クラスタは、その役割及び/又は他のクラスタからの距離に基づいて最も有効な方法で動作することができない。典型的なグリッド構成においては、マウント処理中、ボリュームを調達するためにクラスタを選択する手段、及び、クラスタがボリューム・レプリケーションを行う能力は、この関係に対する無認識によって大きな影響を受ける。例えば、グリッドは、マウント処理及び/又はコピー処理のために、メトロ・遠隔クラスタよりも、グローバル遠隔ソース・クラスタを選択することがある。グローバル・遠隔クラスタは、クラスタ間のネットワークの距離のために、効率がずっと悪い。リアルタイムの待ち時間チェックを導入して、この距離を検出することはできるが、広域ネットワーク(WAN)の不規則性及びランダム性により、相対距離を確実に測定することが非常に難しくなる。さらに一歩踏み込んで論じれば、グループが連携して、データをグループ内に累積的に複製し、次に互いの間で複製する場合、グループ内の2つ又はそれ以上のクラスタまでの距離にわたるレプリケーション自体は、ずっと効果的であり得る。
米国特許第2009/0132657号明細書 米国特許第2009/0030986 A1号明細書
従って、当技術分野において、前述の問題に対処する必要性が存在する。
クラスタ・ファミリーの生成、クラスタ・ファミリー・メンバー又はクラスタ・ファミリーの選択、並びにファミリー・メンバー及び異なるファミリー間の協調的レプリケーションのための方法、装置、及びシステムが提供される。例えば、クラスタは、その関係に基づいて、クラスタ・ファミリーのファミリー・メンバーにグループ化される。クラスタ・ファミリーのメンバーは、外部データ・オブジェクトを取得するのに、どのファミリー・メンバーが最良の位置にあるかを判断し、そのクラスタ・ファミリー内で外部データ・オブジェクトに対して累積的に一貫性をもつ(cumulatively consistent)ようになる。ひとたびクラスタ・ファミリーが累積的一貫性をもつようになると、データ・オブジェクトはそのクラスタ・ファミリー内で共有され、クラスタ・ファミリー内の全てのクラスタが、各々の外部データ・オブジェクトの一貫性のあるコピーを有するようになる。
1つの態様の観点から見ると、本発明は、コンピュータ可読プログラムを含むコンピュータ使用可能媒体を備えるコンピュータ・プログラム製品を提供する。コンピュータ可読プログラムは、コンピュータ上で実行されたとき、コンピュータに、複数のクラスタをクラスタ・ファミリーのファミリー・メンバーにグループ化させ、ソースから外部データを取得するのに、どのファミリー・メンバーが最良の位置にあるかを判断させ、データを取得するために、クラスタ・ファミリーの1つ又は複数のファミリー・メンバーを選択させ、データをクラスタ・ファミリーに複製させ、クラスタ・ファミリー内で少なくとも2つの外部データ・オブジェクトの累積的一貫性を達成させ、クラスタ・ファミリー内でデータを共有させ、クラスタ・ファミリー内の全てのクラスタが、各々の外部データ・オブジェクトの一貫性のあるコピーを有するようにさせる。
別の態様の観点から見ると、本発明は、複数のクラスタの協調的レプリケーションのための方法を提供する。本方法は、複数のクラスタをクラスタ・ファミリーのファミリー・メンバー内に配置することと、ファミリー・メンバー間で協議して、ソースからデータを取得するのに、どのファミリー・メンバーが最良の位置にあるかを判断することと、データを取得するために、クラスタ・ファミリーの1つ又は複数のファミリー・メンバーを選択することと、データをクラスタ・ファミリーに協調的に複製することと、クラスタ・ファミリー内で累積的一貫性を達成することと、データをクラスタ・ファミリー内で共有し、クラスタ・ファミリー内の全てのデータ・コピーが一貫性をもつようにすることと、を含む。
別の態様の観点から見ると、本発明は、協調的レプリケーションを実施するために、クラスタ・ファミリー及びファミリー・メンバーを生成するための装置を提供する。本装置は、クラスタ・ファミリー及びファミリー・メンバーを生成するステップと、協調的レプリケーションを適用するステップと、それらの関係に基づいてクラスタ・ファミリー及びファミリー・メンバーを選択するステップとを機能的に実行するように構成された複数のモジュールを含む。これらのモジュールは、説明される実施形態において、関係モジュール、生成モジュール、協調的レプリケーション・モジュール、マウント処理モジュール、通信モジュール、及びポリシー・モジュール、又はそれらのいずれかの組み合わせを含むことができる。
関係モジュールは、プロセッサ上で実行されるコンピュータ可読プログラムを含み、クラスタ・ファミリーとファミリー・メンバーとの間の役割、規則、及び関係を定める要因を保持する。クラスタは、ネットワーク上で通信する。各々のクラスタは、例えば仮想ボリューム・キャッシュなどの少なくとも1つのキャッシュを含む。
生成モジュールは、プロセッサ上で実行されるコンピュータ可読プログラムを含み、クラスタの選択及び協調的レプリケーションのためにクラスタ・ファミリーを生成する。本発明の好ましい実施形態において、生成モジュールは、その関係及び役割に基づいて、クラスタをファミリー・メンバーにグループ化することによって、クラスタ・ファミリーを生成する。1つの代替的な実施形態において、生成モジュールは、構成時にクラスタをファミリー内に配置する。1つの代替的な実施形態において、生成モジュールは、異なるクラスタ間の関係を生成し、クラスタをファミリーにグループ化する。
協調的レプリケーション・モジュールは、プロセッサ上で実行されるコンピュータ可読プログラムを含み、クラスタ・ファミリー内のクラスタ・ファミリー・メンバー及び異なるクラスタ・ファミリーにわたって、データを協調的に複製する。
マウント処理モジュールは、プロセッサ上で実行されるコンピュータ可読プログラムを含み、生産目的のために、他のクラスタ・ファミリーよりクラスタ・ファミリー内のファミリー・メンバーを優先する。
別の態様の観点から見ると、本発明は、複数のクラスタの協調的レプリケーションのためのシステムを提供する。本システムは、ネットワークと、ネットワーク上で通信する複数のサイトとを含み、各々のサイトは少なくとも1つのホストと、複数のクラスタを含むストレージ・システムとを含み、各々のクラスタは、磁気テープ上に格納されたボリュームにアクセスするように構成された少なくとも1つのテープ・ドライブと、少なくとも1つのテープ・ボリューム・キャッシュと、プロセッサ及びメモリを用いてコンピュータ可読プログラムを実行するように構成されたクラスタ・マネージャとを含み、ここでコンピュータ可読プログラムは、クラスタのグループをファミリーのファミリー・メンバーにセットアップして配置するように構成された生成モジュールと、データをクラスタ・ファミリーに協調的に複製してファミリーの累積的一貫性を達成するためにファミリー・メンバーを選択するように構成された協調的レプリケーション・モジュールとを含む。
ここで、本発明を、以下の図面に示されるような好ましい実施形態を参照して、単なる例として説明する。
本発明による分散サイトの1つの好ましい実施形態を示す概略的なブロック図である。 本発明によるストレージ・システムの1つの好ましい実施形態を示す概略的なブロック図である。 本発明によるストレージ・システムの1つの好ましい実施形態を示す概略的なブロック図である。 本発明のクラスタの1つの好ましい実施形態を示す概略的なブロック図である。 本発明のクラスタ・ファミリー装置の1つの好ましい実施形態を示す概略的なブロック図である。 本発明のクラスタ・ファミリーの選択及び協調的レプリケーションの方法の1つの好ましい実施形態を示す概略的なフロー・チャート図である。 本発明のクラスタ・ファミリーの選択及び協調的レプリケーションの方法の1つの好ましい実施形態を示す概略的なフロー・チャート図である。 本発明のクラスタ・ファミリーの選択及び協調的レプリケーションの方法の1つの好ましい実施形態を示す概略的なフロー・チャート図である。
本明細書の全体を通して、特徴、利点、又はそれに類した用語に対する言及は、本発明によって実現することができる全ての特徴及び利点が、本発明のいずれか単一の実施形態に含まれるべきであること又は含まれることを意味するものではない。むしろ、特徴及び利点について言及する用語は、1つの好ましい実施形態と関連して記述される特定の特徴、利点、又は特性が、本発明の少なくとも1つの好ましい実施形態に含まれることを意味するものと理解される。従って、特徴及び利点、並びにそれに類した用語についての議論は、本明細書を通して同じ実施形態に言及していることもあるが、必ずしもそうである必要はない。
さらに、説明される本発明の特徴、利点、及び特性は、1つ又は複数の実施形態においていずれかの適切な方式で組み合わせることができる。当業者であれば、本発明は、特定の実施形態の1つ又は複数の特定の特徴又は利点なしでも実施できることを認識するであろう。他の場合には、本発明の全ての実施形態に存在するものではない付加的な特徴及び利点を、特定の実施形態において認めることができる。
同様の番号が同じ又は類似の要素を表す図面を参照して、本発明を、以下の説明における実施形態において記述する。本発明は、本発明の目的を達成するための最良の形態に関して説明されるが、当業者であれば、本発明の範囲から逸脱することなく、これらの教示に照らして変形を達成できることが理解されるであろう。
本明細書において説明される機能ユニットの多くは、それらの実施の独立性をより特定的に強調するために、モジュールとして表記されている。例えば、モジュールは、特注の超大規模集積(VLSI)回路又はゲート・アレイを含むハードウェア回路、論理チップなどの既製の半導体、トランジスタ、若しくは他の別個のコンポーネントとして実装することができる。モジュールはまた、フィールド・プログラマブル・ゲート・アレイ(FPGA)、プログラマブル・アレイ論理、プログラマブル論理デバイス等といったプログラム可能なハードウェア・デバイスの形で実装することもできる。モジュールはまた、種々のタイプのプロセッサにより実行するためのソフトウェアの形で実施することもできる。実行可能コードの識別されるモジュールは、例えば、オブジェクト、プロシージャ、又は関数として編成することができるコンピュータ命令の1つ又は複数の物理又は論理ブロックを含むことができる。それにもかかわらず、識別されるモジュールの実行ファイルは、物理的に一ヶ所に配置する必要はなく、論理的に互いに結合されたとき、そのモジュールを含み、モジュールの規定の目的を達成する、異なる記憶場所(location)に格納された異なる命令を含むことができる。
実際には、実行可能コードのモジュールは、単一の命令又は多数の命令とすることができ、幾つかの異なるコード・セグメントにわたって、異なるプログラムの間で、及び、幾つかのメモリ・デバイス間にわたって、分散させることさえ可能である。同様に、本明細書において、動作データは、モジュール内で識別して示すことができるが、いずれかの適切な形態に具体化して、いずれかの適切なタイプのデータ構造体内に編成することができる。動作データは、単一のデータセットとして集めることができ、或いは、異なるストレージ・デバイスを含む異なる記憶場所にわたって分散させることができる。
本明細書の全体を通して、「1つの好ましい実施形態」、又は同様の用語への言及は、その実施形態と関連して説明される特定の特徴、構造、又は特性が、本発明の少なくとも1つの好ましい実施形態に含まれていることを意味する。従って、「1つの好ましい実施形態において」といった語句、又は同様の用語の出現は、この明細書の全体を通して、必ずしも全て同じ実施形態について言及するものではない。
さらに、本発明の説明される特徴、構造又は特性は、1つ又は複数の実施形態においていずれかの適切な方法で組み合わせることができる。以下の説明においては、本発明の実施形態の十分な理解を与えるように、プログラミング、ソフトウェア・モジュール、ユーザ選択、ネットワーク・トランザクション、データベース照会、データベース構造、ハードウェア・モジュール、ハードウェア回路、ハードウェア・チップ等の例のような多数の特定の細部が提供される。しかしながら、当業者であれば、特定の細部の1つ又は複数を用いることなく、或いは、他の方法、コンポーネント、材料等を用いて、本発明を実施できることが分かるであろう。他の例では、本発明の態様を不明瞭なものにしないように、周知の構造、材料又は動作は、詳細に示すことも説明することもない。
図1は、本発明による分散サイト100の好ましい実施形態を示す概略的なブロック図である。分散サイト100は、複数のサイト105を含む。各々のサイト105は、ネットワーク110上で他のサイト105と通信する。ネットワーク110は、インターネット、ローカル・エリア・ネットワーク(LAN)、広域ネットワーク(WAN)、専用ネットワーク、ネットワークの組み合わせ等とすることができる。
以下で説明されるように、各々のサイト105は、1つ又は複数のストレージ・システムを含むことができる。さらに、各々のサイト105は、ストレージ・システムをネットワーク110に接続するブリッジ、ルータ等を含むことができる。
図2及び図3は、本発明によるストレージ・システム200の1つの好ましい実施形態を示す概略的なブロック図である。図1の各サイト105内に、1つ又は複数のストレージ・システム200を具体化することができる。
ストレージ・システム200は、これらに限られるものではないが、ストレージ・カートリッジ、ディスク・ドライブ、ソリッドステート・ディスク(SSD)、直接アクセス・ストレージ・デバイス(DASD)、磁気テープ・ドライブ、ライブラリ、及び独立ディスクの冗長アレイ(redundant array of independent disks、RAID)、又は単純ディスク束(just a bunch of disks、JBOD)のようなディスク・ドライブ・アレイを含む、異なる物理媒体内にデータを格納することができる。ストレージ・カートリッジの一例は、リールのハブに巻かれた再書き込み可能な磁気テープと、カートリッジ・メモリとを含む磁気テープ・カートリッジである。磁気テープ・カートリッジの一例は、Linear Tape−Open(LTO)技術に基づいたカートリッジを含む。Linear Tape−Open、LTO、及びLTOロゴは、米国及び他の国々におけるHP社、IBM Corp.社、及びQuantum社の商標である。
ストレージ・システム200は、論理データ又は仮想データのような異なる形態でデータを格納することができる。ここでは、データは、「ボリューム」又は「オブジェクト」と呼ばれる種々の形態のいずれかで編成することができ、この用語は、データのいずれの特定のサイズ又は配置にも関係なく選択される。
図2及び図3に示されるように、ストレージ・システム200は、複数のホスト・システム210のためのストレージを提供する。例えば、ストレージ・システム200は、複数のホスト210、複数のクラスタ220、及びネットワーク215を含む。簡単にするために、図2には2つのホスト210a、210b、4つのクラスタ220a、220b、220c、220d、及び1つのネットワーク215が示されるが、いずれの数のホスト210、クラスタ220、及びネットワーク215を用いてもよい。従って、いずれの数のクラスタ220をストレージ・システム200内に含ませることもできる。
図2に示されるように、ストレージ・システム200は、ネットワーク215によって接続された4つのクラスタ220a、220b、220c、220dを用いることができ、各々のクラスタ220は、ホスト210a、210bに対してテープ・ドライブ又はテープ・ライブラリをエミュレートするための仮想化ノード(「VN」)260及びストレージ・デバイス230を含む。1つの好ましい実施形態において、クラスタ220a、220b、220c、220dは、仮想テープ・サーバ・クラスタである。
各々のクラスタ220は、データを、ストレージ・デバイス230とライブラリ240との間で局所的に移動する及び/又は転送するための階層ストレージ・ノード(「HSN」)250を含む。1つの好ましい実施形態において、ストレージ・システム200は、ディスク・ストレージ230と、テープ・ライブラリ240とを含む。1つの好ましい実施形態においては、ライブラリ240は、自動テープ・ライブラリ(「ATL」)である。HSN250は、データを、ローカル・ディスク・ストレージ230と遠隔ディスク・ストレージ230との間で遠隔転送するように動作することができる。ディスク・ストレージ230は、例えば、RAID、JBOD、SSD、又はそれらのいずれかの組み合わせとして構成された1つ又は複数のディスク・ドライブを含むことができる。
以下で説明されるように、各々のクラスタ220は、磁気テープを有する、図4に示されるようなライブラリ・マネージャ370を含む。ホスト210は、クラスタ・ファミリー280及び/又はファミリー・メンバー220内の磁気テープとの間でデータを読み書きする、テープ・ジョブのようなタスク又はジョブを開始及び実行することができる。ホスト210は、メインフレーム・コンピュータ、サーバ等とすることができる。ホスト210は、複数のオペレーティング・システムを実行又はホストする能力をもつことができる。例えば、ホスト210は、Linux(登録商標)、Java(登録商標)、Microsoft(登録商標)Windows(登録商標)等といった複数のオペレーティング・システムを実行又はホストすることができる。Linuxは、米国、その他の国々、又はその両方におけるLinus Torvalds社の登録商標である。Java及び全てのJavaベースの商標及びロゴはOracle社及び/又はその関連会社の商標又は登録商標である。Microsoft、Windows、及びWindowsロゴは、米国、その他の国々、又はその両方におけるMicrosoft Corporation社の商標である。ストレージ・システム200のホスト210の各々は、単一のメインフレーム・コンピュータとして、1つ又は複数のサーバとして、又は仮想マシンのメンバーとして、動作することができる。ホスト210は、Processor Resource/System Manager(PR/SM)ファシリティを介する論理パーティション(LPAR)、IBM(登録商標)z/VM(登録商標)オペレーティング・システムを介する仮想マシン、及びオペレーティング・システム、特にキー保護されたアドレス空間及び目標指向型作業負荷スケジューリングを有するIBM z/OS(登録商標)オペレーティング・システムを通じた、3つのレベルの仮想化を提供することができる。IBM、z/VM、及びz/OSは、世界中の多数の管轄区域において登録されているInternational Business Machines Corporation社の商標である。
以下で説明されるように、ホスト210は、ネットワーク215上でクラスタ220と通信し、クラスタ・ファミリー・メンバー220を通して、複数の磁気テープ・ドライブ、ディスク・ドライブ及び他のストレージ・デバイスにアクセスすることができる。例えば、第1のホスト210aは、ネットワーク215上で通信し、第1のクラスタ220aを通して、ストレージ・デバイス及び磁気テープにアクセスすることができる。
図4に示されるように、各々のクラスタ220は、階層ストレージ・ノード315のような、階層ストレージ・コントローラを含むことができる。ストレージ又はストレージ制御ノードと、高速書き込みキャッシュ、ポイント・イン・タイム・コピー、トランスペアレントなデータ・マイグレーション、及び遠隔コピーのような高度な機能を実装するためのプラットフォームとを付加することによって、クラスタ220は、データの読み出し及び格納のためのシングル・ポイント管理(single point management)を提供し、ストレージを異なるホスト210に容易に割り当てることができるストレージ・プールを集約し、ストレージ・システム200をスケーリングすることができる。
クラスタ220は、「イン・バンド(in-band)」手法に従うことができる。イン・バンド手法により、クラスタ・ファミリー・メンバー220を通して、全ての入力/出力(I/O)要求、並びに全ての管理及び構成要求を処理することができる。
ネットワーク215を通じて、クラスタ220の各々をクラスタ自体の間で、及び、ホスト210と接続して、磁気テープ上に書き込まれたデータにアクセスすること、及び/又は、データを磁気テープに書き込むことができる。複数のクラスタ220は、ストレージ・システム200のドメイン205を形成することができる。ドメイン205は、マルチ・クラスタ構成又はグリッド構成を表すことができる。ドメイン205は、2つ又はそれ以上のクラスタ220を含むことができる。
ストレージ・システム200のネットワーク215は、ストレージ・エリア・ネットワーク(SAN)、トークン・リング・ネットワーク、ローカル・エリア・ネットワーク(LAN)、広域ネットワーク(WAN)、インターネット、専用ネットワーク、ネットワークの組み合わせ等とすることができる。SANは、これを通じてホスト210がネットワーク215上でクラスタ220と通信することができる「ファブリック」から成ることができる。ファブリックは、ファイバ・チャネル・ネットワーク、イーサネット・ネットワーク等を含むことができる。全ての要素が、通信のために同じファブリックを共有しないこともある。第1のホスト210aは、1つのファブリック上で第1のクラスタ220aと通信することができる。さらに、第1のホスト210aは、別のファブリック上で第3のクラスタ220cと通信することができる。
各々のストレージ・システム200は、クラスタ・ファミリー280を含むことができる。クラスタ・ファミリー280は、複数のクラスタ・ファミリー・メンバー220を含むことができ、これらは、クラスタ・ファミリー280に配置され、構成され、編成され、及び/又はグループ化される。例えば、図3に示されるように、ストレージ・システム200は、クラスタ・ファミリー280(1)及びクラスタ・ファミリー280(2)を含む。クラスタ・ファミリー280(1)は、クラスタ・ファミリー280(1)のファミリー・メンバーにグループ化される複数のクラスタ220(a)、220(b)を含む。クラスタ・ファミリー280(2)は、クラスタ・ファミリー280(2)のファミリー・メンバーにグループ化される複数のクラスタ220(c)、220(d)を含む。クラスタ・ファミリー280(1)及びクラスタ・ファミリー280(2)は、ネットワーク110、215などのネットワークを介して、互いに通信する。各々のクラスタ・ファミリー280に名前を与えること又は割り当てることができる。例えば、クラスタ・ファミリー280(1)は都市Aと名付けることができ、クラスタ・ファミリー280(2)は都市Bと名付けることができる。
簡単にするために、図3は、2つのクラスタ・ファミリー280を有するストレージ・システム200を示すが、如何なる数のストレージ・システム200、クラスタ・ファミリー280、及びクラスタ・ファミリー・メンバー220を用いてもよい。
ストレージ・システム200の一例は、IBM TS7700 Virtual Tape Serverである。
図4は、本発明のクラスタ220の1つの好ましい実施形態を示す概略的なブロック図である。クラスタ220は、例えば、図2及び図3のクラスタ・ファミリー280のクラスタ・ファミリー・メンバー220を表すことができる。クラスタ220の説明は、図1−図2の要素を参照しており、同様の符号が同様の要素を示す。クラスタ220は、仮想化ノード310、階層ストレージ・ノード315、ボリューム・キャッシュ365、及びライブラリ・マネージャ370を含むことができる。
ストレージ・デバイス230は、例えば、独立ディスクの冗長アレイ(RAID)又は単純ディスク束(JBOD)、又はソリッドステート・ディスク(SSD)等として配置された1つ又は複数のディスク・ドライブを含むことができる。ストレージ・デバイス230は、ボリューム・キャッシュ365を含むことができる。ボリューム・キャッシュ365は、仮想ボリューム・キャッシュ及び/又はテープ・ボリューム・キャッシュ(TVC)の役目を果たすことができる。
例えば、ストレージ・デバイス230は、仮想ボリューム・キャッシュ365を含む。仮想ボリューム・キャッシュ365は、TVCの役目を果たすことができ、ここでTVCは、ハードディスク・ドライブのような高速でアクセス可能なストレージ・デバイスを含む。1つの好ましい実施形態において、クラスタ220は、データをTVC365にキャッシュするように動作する。
TVC365は、論理ボリュームから読み出されるデータをキャッシュすること、及び/又は、論理ボリュームに書き込まれるデータをキャッシュすることができる。ホスト210は、論理ボリュームに繰り返し書き込みを行うことができる。TVC365は、データを論理ボリュームの磁気テープに書き込むことなく、書き込まれたデータをハードディスク・ドライブ230上に格納することができる。後の時点で、TVC365は、キャッシュされたデータをテープ・ライブラリ240内の磁気テープに書き込むことができる。従って、論理ボリュームをマウントする仮想テープ・ドライブに対する、読み出し動作及び書き込み動作などの動作は、TVC365を通して経路指定することができる。
ホスト210は、クラスタ220上で、タスク及び/又はジョブを開始及び実行することができる。例えば、第1のホスト210aのアクセスの結果、ライブラリ・マネージャ370のアクチュエータが、物理テープ・マネージャ335によって制御されて、テープ・カートリッジをストレージ・エリアからテープ・ドライブに転送し、磁気テープ上に書き込まれたデータにアクセスすること、及び/又は、データを磁気テープ及び/又はTVC365に書き込むことがある。
仮想化ノード310は、ネットワーク215への複数の接続を有する独立したプロセッサ・ベースのサーバとすることができる。仮想化ノード310は、バッテリ・バックアップ式ユニット(BBU)を含むこと、及び/又は、無停電電源装置(UPS)へのアクセスを有することができる。仮想化ノード310は、ウォッチドッグ・タイマーを含むことができる。ウォッチドッグ・タイマーは、回復することができない、及び/又は、回復するのに長い時間がかかる故障した仮想化ノード310を再始動できることを保証できる。
仮想化ノード310は、1つ又は複数のテープ・デーモン312を含むことができる。テープ・デーモン312は、ホスト210に対してクラスタ220のテープ・ドライブを、仮想テープ・ドライブとしてエミュレートすることができる。テープ・デーモン312は、TVC365上にあるファイル上で動作することができ、及び/又は、遠隔ファイル・アクセス325を通して、別のクラスタ220の遠隔TVC365内のファイル上で動作することができる。
階層ストレージ・ノード315は、クラスタ・マネージャ320、遠隔ファイル・アクセス325、データ・ムーバ(data mover)330、物理テープ・マネージャ335、キャッシュ・マネージャ340、リコール・マネージャ345、データベース350、管理インターフェース355、及び媒体マネージャ360を含むことができる。クラスタ・マネージャ320は、マルチ・クラスタ又はグリッド・トポロジーにおける複数のクラスタ220間の動作を連係させることができる。
クラスタ・マネージャ320は、トークンを用いて、どのクラスタ220が現在のデータのコピーを有するかを判断することができる。トークンは、データベース350内に格納することができる。クラスタ・マネージャ320はまた、クラスタ220の間のデータのコピーを連係させることもできる。クラスタ・マネージャ320は、当業者には周知であるようなコンピュータ可読プログラムを実行するように構成された1つ又は複数のプロセッサを含むことができる。
遠隔ファイル・アクセス325は、サーバ、1つ又は複数のプロセッサ等とすることができる。遠隔ファイル・アクセス325は、いずれかの遠隔クラスタ220によるアクセスのために、TVC365へのリンクを提供することができる。クラスタ・マネージャ320は、コンピュータ可読プログラムを含むことができる。
データ・ムーバ330は、クラスタ220間で行われるコピーのための実際のデータ転送動作を制御することができ、同様に、物理テープ媒体とTVC365との間でデータを転送することもできる。データ・ムーバ330は、コンピュータ可読プログラムを含むことができる。
物理テープ・マネージャ335は、クラスタ220内の物理テープを制御することができる。物理テープ・マネージャ335は、複数プール内の物理テープ、共通スクラッチ・プールとの間のボリュームの再利用、借入及び返却を管理し、プール間でテープを転送することができる。物理テープ・マネージャ335は、コンピュータ可読プログラムを含むことができる。
キャッシュ・マネージャ340は、TVC365から物理テープへのデータのコピー、及びその後のTVC365からのデータの冗長コピーの除去を制御することができる。キャッシュ・マネージャ340はまた、制御信号を提供して、異なるコンポーネントとTVC365の間のデータ・フローのバランスを取ることができる。キャッシュ・マネージャ340は、コンピュータ可読プログラムを含むことができる。
リコール・マネージャ345は、仮想テープ・ドライブ又はクラスタ・マネージャ320が要求するコピーに関する、物理媒体からTVC365へのデータ・リコールをキューに入れ、制御することができる。リコール・マネージャ345は、コンピュータ可読プログラムを含むことができる。
データベース350は、ハードディスク・ドライブ上に格納することができる記録の構造化された集合体とすることができる。記録は、磁気テープ上のデータの記憶場所を含むことができる。ホスト210は、データをクラスタ220の磁気テープに書き込むことができ、及び/又は、データベース・アドレスを用いて磁気テープからのデータにアクセスし、データをユーザに提供することができる。
管理インターフェース355は、クラスタ220についての情報をユーザに提供することができる。また、管理インターフェース355は、ユーザが、クラスタ220を制御し、構成することを可能にする。管理インターフェース355は、コンピュータ陰極線管(CRT)、液晶ディスプレイ(LCD)スクリーン、キーボード等を含んでもよく、又は、ウェブ・ベースのインターフェースとして存在してもよい。
媒体マネージャ360は、クラスタ220の磁気テープの物理的な取扱いを管理することができる。また、媒体マネージャ360は、クラスタ220の磁気テープのエラー回復を管理することもできる。媒体マネージャ360は、エラーを診断することができ、そのエラーが物理テープ・ドライブにより生じたものか、又は物理テープ媒体により生じたものかを判断することができる。さらに、媒体マネージャ360は、エラー回復に対して適切な措置を取ることができる。
ライブラリ・マネージャ370は、複数の物理テープ・ドライブ、ロボット・アクセサ(accessor)及び複数の物理テープ媒体を含むことができる。ライブラリ・マネージャ370のロボット・アクセサは、磁気テープを、TVC365に割り当てられたテープ・ドライブに移送することができる。仮想テープ・ドライブは、ホスト210に対しては、物理テープ・ドライブのように見える論理構成体とすることができる。当業者には周知のように、読み出し/書き込みチャネルを通して、データをテープ・ドライブの磁気テープとの間で読み書きすることができる。
複数のクラスタ220のテープ・ドライブの各々は、1つ又は複数の磁気テープを用いて、データを格納することができる。磁気テープは、ストレージ・システム200においてデータのストレージ媒体として機能することができる。クラスタ220は、いずれの数のテープ・ドライブ及び磁気テープを用いることもできる。例えば、ストレージ・システム200は、2つのテープ・ドライブ及び256個の仮想ドライブを用いることができる。
TVC365は、動作されているテープ・ボリュームからのデータを含むことができ、高速アクセスのために、付加的なボリューム・データを格納する。ボリュームをマウントする仮想テープ・ドライブに対する、読み出し動作及び書き込み動作のような動作を、TVC365を通して経路指定することができる。従って、クラスタ220を選択することは、クラスタのTVC365を選択することになり得る。テープ・ドライブの全ての磁気テープを、1つ又は複数の論理ボリュームとして編成することができる。TVC365内のボリュームは、先入れ先だし(first in first out、FIFO)及び/又は最長時間未使用(leastrecently used、LRU)アルゴリズムを用いて管理することができる。
TVC365は、高速でアクセス可能なストレージ・デバイスとすることができる。例えば、TVC365は、5400ギガバイト(GB)等のストレージ容量を有するハードディスク・ドライブとすることができる。ストレージ・システム200において、テープ・ドライブは、論理ボリュームから読み出されるデータをTVC365にキャッシュすることができ、及び/又は、論理ボリュームに書き込まれるデータをキャッシュすることができる。例えば、ホスト210は、仮想テープ・ドライブに対して繰り返し書き込みを行うことができる。TVC365は、データを仮想磁気テープに書き込むことなく、書き込まれたデータをハードディスク・ドライブ上に格納することができる。後の時点で、キャッシュ・マネージャ340は、キャッシュされたデータをクラスタ220の磁気テープに書き込むことができる。
ボリュームにアクセスした仮想化ノード310は、マウント・ポイント(mount point)と呼ぶことができる。論理ボリュームに関する最近のマウント・ポイントのために用いられた遠隔クラスタTVC365を選ぶことにより、そのボリュームへのアクセスを改善することができる。TVC365の高可用性、高速書き込みストレージは、データが物理ディスクに書き込まれるのを待つ必要なしに、ホスト210がデータをTVC365に書き込むのを可能にする。
1つの好ましい実施形態において、各々のサイト105は、ストレージ・システム200を含む。各々のストレージ・システム200は、互いにグループ化されてクラスタ・ファミリー280を生成する2つ又はそれ以上のクラスタ・ファミリー・メンバー220を含む。例えば、クラスタ・ファミリー280(1)は、クラスタ・ファミリー・メンバー220(a)及び220(b)のグループを含み、クラスタ・ファミリー280(2)は、クラスタ・ファミリー・メンバー220(c)及び220(d)のグループを含む。例えば、クラスタ・ファミリー280(1)を生産目的に用い、クラスタ・ファミリー280(2)を災害復旧(DR)又はアーカイブ(保存記録、archive)目的に用いることができる。従って、クラスタ・ファミリー280は、他のクラスタ・ファミリー280に対して異なる役割を果たすことができる。さらに、クラスタ・ファミリー280のクラスタ・ファミリー・メンバー220は、クラスタ・ファミリー280内で互いに対して異なる役割を果たすことができる。従って、クラスタ・ファミリー280のクラスタ・ファミリー・メンバー220は、非ファミリー・メンバーに対して異なる役割を果たすことができる。
1つの好ましい実施形態において、クラスタ・ファミリー280は、グローバル距離、メトロ距離、又はそれらの組み合わせで構成することができる。同様に、クラスタ・ファミリー・メンバー220は、グローバル距離、メトロ距離、又はそれらの組み合わせで構成することができる。さらに、クラスタ・ファミリー・メンバー220は、クラスタ・ファミリー280において互いに異なる距離格付け(distant rating)を有することができる。同様に、クラスタ・ファミリー280は、互いの間で異なる距離格付けを有することができる。距離格付けは、クラスタ・ファミリー280とクラスタ・ファミリー・メンバー220との間の役割及び関係を定める要因として用いることができるが、これは、単に、クラスタ・ファミリー280とクラスタ・ファミリー・メンバー220との間の関係認識をもたらす1つの要因に過ぎない。従って、クラスタ・ファミリー・メンバーへのクラスタ220を構成又はグループ化は、距離に制限されるものではない。
さらに、各々のストレージ・システム200は、2つ又はそれ以上のクラスタ220をファミリー・メンバーにグループ化することによって生成されたクラスタ・ファミリー280を含むので、各々のストレージ・システム200又はストレージ・システム200の組み合わせは、マルチ・クラスタ構成又はグリッドを表すことができる。
さらに、ストレージ・システム200のクラスタ220は、分散型ストア構成を形成することができる。例えば、第2のクラスタ220(b)は、ボリュームの二次インスタンスを生成することができる。二次インスタンスを、第1のクラスタ220(a)上の一次コピーと同期化させることができ、ここで一次コピーが更新されたときはいつでも、二次コピーが更新される。二次インスタンスを、遠隔サイト105に配置された別のクラスタ・ファミリー280内に格納し、一次インスタンスが利用できなくなった場合のデータの可用性を保証することができる。将来のマウント・ポイント・アクセスは、二次コピーを一次コピーとして選択することができる。データを磁気テープに追加、除去、及び/又は再バランスする際に、トランスペアレントなデータ・マイグレーションを用いることができる。
図1−図2を参照して、本発明の好ましい実施形態が説明されるが、これは例示のためだけのものである。当業者であれば、本発明は、いずれかの特定のグリッド構成に限定されるものではなく、いずれのマルチ・クラスタ構成又はグリッド構成でも実装できることを認識するであろう。例えば、サイト105(a)からの1つ又は複数のクラスタ220を、サイト105(b)のような異なるサイト105からの1つ又は複数のクラスタ220とグループ化して、第1のクラスタ・ファミリー280を生成することができる。同様に、サイト105(c)及びサイト105(d)からの1つ又は複数のクラスタ220をファミリー・メンバー内にグループ化して、第2のクラスタ・ファミリー280を生成することができる。従って、クラスタ220のいずれの組み合わせも、ファミリー・メンバーにグループ化して、クラスタ・ファミリー280を生成することができる。
図5は、本発明のクラスタ・ファミリー装置400の1つの好ましい実施形態を示す概略的なブロック図である。この装置400は、ホスト210及び/又はクラスタ220の形で具体化することができる。1つの好ましい実施形態において、装置400は、クラスタ・マネージャ230の形で具体化される。装置400の説明は、図1−図4の要素を参照しており、同様の符号は同様の要素を指す。装置400は、関係モジュール405、生成モジュール410、協調的レプリケーション・モジュール415、マウント処理モジュール420、通信モジュール425、及びポリシー・モジュール430、又はこれらのいずれかの組み合わせを含むことができる。
関係モジュール405は、クラスタ・マネージャ320のプロセッサのようなプロセッサ上で実行されるコンピュータ可読プログラムを含む。さらに、クラスタ関係モジュール405は、クラスタ・ファミリー280とファミリー・メンバー220との間の役割及び関係を定める要因を含む。例えば、どのファミリー・メンバーがどのファミリーに属するのか、隣接するファミリー及び/又はファミリー・メンバーの間の距離格付け、及びどのファミリー・メンバーが製造目的に用いられ、どのファミリー・メンバーがDR(災害復旧)及び/又はアーカイブ目的に用いられるか、に関する要因である。
クラスタ・ファミリー・メンバー220は、ネットワーク110及び/又はネットワーク215のようなネットワーク上で通信する。各々のクラスタ・ファミリー・メンバー220は、磁気テープ上に格納されたボリュームにアクセスするように構成された少なくとも1つのテープ・ドライブを有するライブラリ・マネージャ370と、少なくとも1つのTVC365とを有する。
生成モジュール410は、クラスタ・マネージャ320のプロセッサのようなプロセッサ上で実行されるコンピュータ可読プログラムを含む。生成モジュール410は、共通の組のガイドライン、規則、及び/又は目的で動作するようにクラスタ220を互いにグループ化することにより、クラスタ220を選択し、クラスタ・ファミリー280のファミリー・メンバー内に配置する。
生成モジュール410は、クラスタ220をクラスタ・ファミリー280にグループ化して、ファミリー・メンバー220が共通の組の規則又はガイドラインに従うことができるようにする。このことにより、例えばファミリー280(1)、280(2)のようなクラスタのグループが連携して、特定のタスクをより効率的に達成できるようになり、又はクラスタ220及び/又はファミリー280の異なるグループが、グリッド内で異なる目的を有することができるようになる。
生成モジュール410を用いて、構成特性を通して、ファミリー280内のファミリー・メンバー220のカスタマイズ可能な動作を可能にすることができる。例えば、図3を参照すると、クラスタ・ファミリー・メンバー220(a)、220(b)のグループは、生産作業負荷に有利な1組の規則に従う生産ファミリー280(1)として働くことが許容される。ドメイン205内のクラスタ・ファミリー・メンバー220(c)、220(d)の別のグループは、アーカイブ又は災害復旧ファミリー280(2)として働くことが許容され、規則を作成するファミリー・メンバー220(c)、220(d)が、生産ファミリー280(1)からデータを複製する際により有効に動作する
さらに、生成モジュール410は、ファミリー280のファミリー・メンバー220の関係、及び、異なるクラスタ・ファミリー280間の関係を管理する。例えば、生成モジュール410は、クラスタ・ファミリー・メンバー220を、その関係及び役割に基づいて管理することができる。1つの好ましい実施形態においては、関係モジュール405は、この情報を生成モジュール410に提供することができる。ファミリー・メンバー及び隣接するファミリーの関係及び/又は役割に基づいて、クラスタ・ファミリー・メンバー220が互いの間で協議して、ファミリー280の外部の複数のクラスタから外部データを取得するのに、どのファミリー・メンバー220が最良の位置にあるかを判断する。生成モジュール410は、この情報を用いて、ファミリー280のメンバー220をTVCクラスタとして優先することができ、或いは、クラスタだけ又はグリッド全体とは対照的に、ファミリー280でのアクセス制限又は他の特例行動を可能にすることができる。
生成モジュール410は、管理インターフェース355を用いて、ページを表示することができ、そこでユーザ(例えば顧客)は、8文字の名前のような文字名を有するクラスタ・ファミリーを生成することができる。次に、ユーザは、生成モジュール410を用いて、1つ又は複数のクラスタをファミリーに付加することができる。生成モジュール410は、この情報をクラスタの永続的な重要プロダクト・データ(vital product data)内に格納することができるので、マルチ・クラスタ又はグリッド構成内の全てのクラスタは、そのクラスタの役割及びそれが属するファミリーを認識する。生成モジュール410は、ファミリーのために選択されているクラスタが、別のファミリーのために既に選択されていることを判断することができる。いずれか1つのクラスタが同時に2つのファミリー内に存在するのを回避するために、生成モジュール410は、ユーザに、選択されているクラスタが既に別のファミリー・メンバー内に存在することを通知することができる。さらに、生成モジュール410は、1組の規則を用いて、1つのクラスタが同時に2つのファミリーに選択されるのを防止することができる。
ポリシー・モジュール430は、クラスタ・マネージャ320のプロセッサのようなプロセッサ上で実行されるコンピュータ可読プログラムを含む。1つの好ましい実施形態において、ポリシー・モジュール430は、どのクラスタ・ファミリー・メンバー220を生産のために用いるべきであり、どのファミリー・メンバーをDR/アーカイブ目的のために用いるべきであるかに関する特定のポリシーを含むことができる。これらのポリシーは、データのレプリケーションを支配する規則の組を含むことができる。ユーザは、管理インターフェース355を介して、複数のクラスタ・ファミリー280及びファミリー・メンバー220を管理するためのポリシーを入力することができる。
図2及び図3を参照すると、クラスタ・ファミリー生成モジュール410を用いて、「都市A」と名付けられるクラスタ・ファミリー280(1)と、「都市B」と名付けられる別のクラスタ・ファミリー280(2)とを生成することができる。クラスタ・ファミリー280(1)は、クラスタ・ファミリー・メンバー220(a)、220(b)のグループを含むことができ、クラスタ・ファミリー280(2)は、クラスタ・ファミリー・メンバー220(c)、220(d)のグループを含むことができる。さらに、生成モジュール410を用いて、ファミリー・メンバー220を、クラスタ・ファミリー280に付加し又はそこから除去すること、及び、クラスタ・ファミリー・メンバーを異なるクラスタ・ファミリー280に再グループ化することができる。
生成モジュール410は、ファミリーの生成中、互いに対するその関係及び/又は役割に基づいてクラスタをセットアップし、ファミリー・グループ内に配置するので、グリッド又はマルチ・クラスタ構成内の全てのクラスタは、互いの役割及びそれらが属するファミリーを認識している。従って、生成モジュール410は、管理インターフェース355を介して、ユーザに、例えばファミリー280(1)に付加されているクラスタ220(d)が現在、別のファミリー280(2)のファミリー・メンバーであることを警告又は通知することができる。次いで、ユーザは、ファミリー280(2)からクラスタ220(d)を選択解除し、クラスタ220(d)をファミリー280(1)に付加又は再選択することができる。従って、生成モジュール410により、ドメイン205(例えば、グリッド)内の全てのクラスタ220が、自分の属するファミリー、他のファミリー・メンバー、及び他のファミリーに属する非ファミリー・メンバーに対する、各自の役割及び関係を認識することが可能になる。
1つの好ましい実施形態において、生成モジュール410は、クラスタ・ファミリーに名前を割り当てることができる。例えば、構成中、ユーザは、管理インターフェース355を用いて、クラスタ・ファミリーに名前を割り当てることができる。
協調的レプリケーション・モジュール415は、クラスタ・マネージャ320のプロセッサのようなプロセッサ上で実行されるコンピュータ可読プログラムを含む。さらに、協調的レプリケーション・モジュール415は、既存のコピー管理を強化して、クラスタ・ファミリー280に属するクラスタ220のグループが、ファミリー280のために、及び、ファミリー280内の個々のクラスタ220(例えば、ファミリー・メンバー220)の間で、一貫性を達成するのにより効率的に協働するのを可能にする。
協調的レプリケーション・モジュール415は、DR又はアーカイブ・ファミリーのようなファミリー280内の2つ又はそれ以上のクラスタ・ファミリー・メンバー220が、インバウンド・レプリケーションの作業負荷を共有することを可能にする。従って、協調的レプリケーション・モジュール415を用いるDR/アーカイブ・ファミリー・メンバー220のファミリー280は、レプリケーションのためにソース・クラスタを選ぶ際に、改善されたTVC選択から恩恵を受ける。
協調的レプリケーション・モジュール415は、クラスタ・ファミリー・メンバーが、同じファミリーに属する他のクラスタ・ファミリー・メンバーの間でコピー作業負荷を共有することを可能にする。例えば、1つの好ましい実施形態において、ドメイン205は、Y個のクラスタ220を含み、ここでYは、ドメイン205内に含まれるクラスタ220の数を表す。クラスタは、N個(2つ又はそれ以上)のクラスタ・ファミリー・メンバー220を有するクラスタ・ファミリー280にグループ化される。従って、ドメイン205は、Y個のクラスタ220から構成され、クラスタ220の一部は、クラスタ・ファミリー280のN個のクラスタ・ファミリー・メンバーにグループ化される。
例えば、図3を参照すると、ドメイン205内には4つのクラスタ220(a)、220(b)、220(c)、及び220(d)があるので、Yは4つのクラスタを表す(Y=4)。2つのクラスタ220(a)及び220(b)は、第1のクラスタ・ファミリー280(1)のN=2個のクラスタ・ファミリー・メンバーにグループ化され、2つのクラスタ220(c)及び220(d)は、第2のクラスタ・ファミリー280(2)のN=2個のクラスタ・ファミリー・メンバーにグループ化される。このグリッド構成において、ドメイン205は、Y(4)個のクラスタから構成され、N=2個のクラスタのサブセットが、クラスタ・ファミリー280のファミリー・メンバーにグループ化される。従って、1つのファミリー内のクラスタ・ファミリー・メンバーの数として、N=2である。
協調的レプリケーション・モジュール415は、初めてそれをファミリー内にもたらすときに、いずれか1つのボリュームのレプリケーションをシリアル化する(serialize)ことによって、クラスタのファミリー・グループを協調的に複製する。例えば、協調的レプリケーション・モジュール415は、Nがコピーを必要とするファミリー内のクラスタの数である場合に、外部ボリュームのN分の1を複製するように、ファミリー280(2)内の各クラスタ・メンバー220(c)、220(d)に指示する。ひとたび全ての外部ボリュームがファミリー280(2)内に複製され、ファミリー280(2)が累積的一貫性をもつようになると、次に、同じファミリー280(2)内の一貫性のないクラスタが互いの間で外部データを共有する。
一例として、本発明を用いない場合、マイクロコード・レベルからは、クラスタ220が互いに対するその関係及び役割を認識していないので、各々のクラスタ220は、互いに独立して機能することが可能である。例えば、クラスタ220(a)が、クラスタ220(c)及び220(d)に複製する必要がある20個のボリュームを含むと仮定した場合である。クラスタ220(c)及び220(d)は互いに独立して機能するので、各々のクラスタ220(c)、220(d)は、ネットワーク215にわたってオリジナル・データの20個のボリュームをプルする(pull)ことができる。
ここで図2及び図3を参照すると、1つの好ましい実施形態においては、例えば4つのクラスタがあり、そこで、生成モジュール410を介して、2つのクラスタ220(a)、220(b)がファミリー280(1)にグループ化され、2つのクラスタ220(c)、220(d)がファミリー280(2)にグループ化される。全てのファミリー・メンバー220は、互いに認識し、ファミリー・メンバー200が属するファミリー280を認識し、さらに、ファミリー内の隣接するクラスタ内に複製する必要がある全てのボリュームを認識している。
例えば、クラスタ・ファミリー・メンバー220(c)及び220(d)は、互いに認識し、かつ、自分のファミリー280(2)内に複製する必要がある、異なるクラスタ・ファミリー280(1)内の非ファミリー・メンバー220(a)からの20個のボリュームがあることを認識している。協調的レプリケーション・モジュール415を用いて、ファミリー・メンバー220(c)は、10個の固有ボリュームをプルし、ファミリー・メンバー220(d)は、他の10個の固有ボリュームをプルする。つまり、Nがファミリー内のクラスタ・ファミリー・メンバーの数である場合に、各々のクラスタ・ファミリー・メンバー220(c)、220(d)は、ボリュームのN分の1をプルする。この例では、ファミリー・クラスタ280(2)に属する2つのクラスタ・ファミリー・メンバー220(c)、220(d)があるので、合計で20個のボリュームを得るために、各々のファミリー・メンバーは、ボリュームの1/2をプルする(例えば、各々が10個の固有ボリュームをプルする)。次に、クラスタ・ファミリー・メンバー220(c)、220(d)は、互いに10個の固有ボリュームを共有する。
どの1つのボリュームも、N回に対して1回しか遠隔リンク110/215にわたってプルされなかったので、協調的レプリケーション・モジュール415を介して協調的に複製することにより、クラスタ・ファミリー280(2)又はDR記憶場所は、N倍速く累積的一貫性をもつようになる。次に、クラスタ・ファミリー・メンバー220は、これらの間の相対距離のために、可用性に関して、ずっと速く互いに一貫性をもつようになり得る。従って、各々のクラスタ220が、同じ遠隔の生産クラスタ220から別個に調達するのと比べて、DR及びHA(高可用性)の両方が一貫性をもつようになるまでの全体的な時間が大きく改善され得る。
従って、コピー・スループットを最適化し、クラスタ・ファミリー280内のボリュームの一貫性を達成するまでの全体的な時間を改善することが可能である。例えば、帯域幅が制限されたシステム又は複数のアーカイブ・サイトを有するグリッドにおいて、協調的レプリケーション・モジュール415は、如何なる努力の重複もなしに、全ての入ってくるコピーに関して、ファミリー280内の各ファミリー・メンバー220がレプリケーション・プロセスに関与することを可能にする。ひとたびファミリー280内のクラスタのグループ(ファミリー・メンバー)220が全体的に見て一貫性のある状態に到達すると、同じファミリー内のピア・クラスタの間でファミリー280の個々のクラスタ220内の一貫性のあるコピーが共有される。
さらに、協調的レプリケーション・モジュール415は、レプリケーションを遅らせることにより、永続的なレプリケーション・ソースの認識に対処する。例えば、一貫性のあるソースを有するクラスタ・メンバー220に、そのソース・ボリュームをキャッシュ内に保持するように命令して、他のファミリー・メンバー220がピア・レプリケーションのためにそれを容易に利用できるようにすることができる。一貫性のあるソースを有するクラスタは、オリジナルのマウント・ソース・クラスタ、又は、ホストにより生成/修正されたオリジナル・コピーを含むクラスタの役割を継承する。ひとたびファミリー内の1つのクラスタがそのN分の1のボリュームの1つを複製すると、協調的レプリケーション・モジュール415は、最初に、オリジナルのマウント・ソース・クラスタに、それ自体を含むそのファミリー内の全ての他のクラスタに説明がなされること、及び、生産クラスタは、ターゲットとするファミリー内のクラスタに代わって自分自身をその役割から解放できることを通知する。このことは、生産クラスタを解放して、ボリュームを外部のバック・エンド・テープにステージし(コピーを必要とする他のファミリー又は生産クラスタが存在しないと仮定して)、従って、より多くのキャッシュ可用性をもたらす。第2に、ボリュームに対するレプリケーションを開始したDRファミリー・クラスタがその役割を継承し、そのファミリー内のどのクラスタが依然としてコピーを必要とするかを記憶に留める。この継承を通じて、全てのピア・ファミリー・クラスタがコピーを完了するまで、キャッシュ内にボリュームを支持することができる。
1つの好ましい実施形態において、協調的レプリケーション・モジュール415は、コピー要求フラグ(copy required flag)のカスケード化を用いることができる。例えば、クラスタ・ファミリーが一貫性をもつようになったとき、協調的レプリケーション・モジュール415は、コピー要求フラグの所有権を、1つのクラスタ・ファミリーから別のクラスタ・ファミリーへと移動させる。コピー要求フラグをカスケード化することにより、協調的レプリケーション・モジュール415は、フラッグを1つのファミリーから別のファミリーにシフトさせ、従って、関与するオリジナルのTVCを解放するという利点を可能にする。コピー要求フラグをTVCから継承することにより、例えば、ひとたびファミリー・メンバーがコピーを得ると、TVCクラスタがボリュームをマイグレートし、他の新しい作業負荷のためのスペースをキャッシュ内に作ることが可能になる。
一例として、DR/アーカイブ・ファミリーと併せて、生産又はデフォルト・ファミリーから成るドメインを挙げることができる。TVCクラスタは、生産又はデフォルト・ファミリーのメンバーとすることができ、コピー要求フラグの管理を始めることができる。ひとたびDR/アーカイブ・ファミリーのメンバーがTVCクラスタからコピーを取得すると、DR/アーカイブ・ファミリーは、TVCクラスタに、そのDR/アーカイブ・ファミリーのメンバーに関する全てのコピー要求フラグをクリアするように通知することができる。これに伴って、DR/アーカイブ・ファミリーは、そのファミリー・メンバーに関するこれらのコピー要求フラグを管理する責任を継承することができる。
例えば、ストレージ・システム200の別の実施形態(図示せず)において、ドメイン205は、クラスタ・ファミリー・メンバー220(a)、220(b)、220(c)を含む第1のファミリー・クラスタ280(1)と、クラスタ・ファミリー・メンバー220(d)、220(e)、220(f)を含む第2のファミリー・クラスタ280(2)と、クラスタ・ファミリー・メンバー220(g)、220(h)、220(i)を含む第3のファミリー・クラスタ280(3)とを含むことができる。各々のファミリー280は、3つのクラスタ・ファミリー・メンバー220を含み、各々のファミリー・メンバーは、1ビットを表す。各々が3つのファミリー・メンバー(3ビット)を有する3つのファミリーが存在するので、ビット・セット内には合計で9ビットが存在する。ファミリー・クラスタ280(1)は、例えば、ファミリー・クラスタ280(2)、280(3)への複製を必要とするオリジナルのデータ・オブジェクトを含む。
クラスタ220(a)は、9つのクラスタ220の全てがネットワーク110又は215にわたってコピーをプルするまで、ボリュームをキャッシュ内に保持することが可能である。例えば、クラスタ220(a)は9ビット・セットを含むことができ、各クラスタ220がコピーをプルしたとき、クラスタ220(a)は、そのマスク内の1ビットをクリアすることができる。クラスタ220(a)は、9つのクラスタ220の全てに関するコピーをそのキャッシュ内に保持しているので、クラスタ220(a)は、付加的な作業負荷のためのスペースを作ることができない。
各々のクラスタ・ファミリー280が、そのファミリー・メンバーに関するこれらのコピー要求フラグを管理する責任を継承するのを可能にすることにより、クラスタ220(a)は、これらのクラスタ・ファミリー280(2)、280(3)についての残りの6ビットをクリアし、ファミリー280(1)内にあるそれぞれの2つのファミリー・メンバー220(b)、220(c)に関するコピーだけをそのキャッシュ内に保持することができる。ひとたびそれぞれのファミリー・メンバー220(b)及び220(c)がコピーを有すると、次に、クラスタ220(a)はそのマスクをクリアし、より多くの作業負荷のためのスペースを作ることができる。
この例では、ファミリー280(2)のクラスタ220(d)は、ネットワーク215にわたってコピーをプルし、ファミリー・クラスタ280(1)のクラスタ220(a)に、クラスタ220(d)は、そのファミリー・メンバー220(e)、220(f)がコピーを受け取るまでコピーをそのキャッシュ内に保持するので、もはやファミリー280(2)のためにコピーをキャッシュ内に保持する必要がないことを通知する。これにより、クラスタ220(a)は、クラスタ・ファミリー280(2)の全てのファミリー・メンバーのためにコピーをキャッシュ内に保持することから解放される。同様に、ファミリー280(3)に属するファミリー・メンバー220(g)は、クラスタ220(a)に、ファミリー・メンバー220(g)が、そのファミリー・メンバー220(h)、220(i)のためにコピーをそのキャッシュ内に保持していることを通知する。こうして、クラスタ220(a)は、ファミリー280(3)に属する全てのファミリー・メンバーのためにコピーをそのキャッシュ内に保持することから解放される。
さらに、協調的レプリケーション・モジュール415は、主としてTVCからのコピーに依存する代わりに、コピーを実施するために、ドメイン内でより多くのリンクを用いることにより、低帯域幅環境における性能を増大させることができ、ファミリー内のクラスタが一貫性をもつようになるまでの全体的な時間が改善する。例えば、協調的レプリケーション・モジュール415を用いるファミリー280は協働して、ファミリーにわたる一貫性を達成する。ファミリー全体にわたる一貫性を達成すると、次に、ファミリー・メンバー220は連携してファミリー・メンバー間でデータを共有し、個々のメンバーをファミリーの一貫性レベルまでもっていく。
マウント処理モジュール420は、クラスタ・マネージャ320のプロセッサのようなプロセッサ上で実行されるコンピュータ可読プログラムを含む。マウント処理モジュール420は、クラスタを有する論理ボリュームへのマウントが行われたとき、そのファミリーの外部のクラスタより、そのファミリー内のクラスタ・ファミリー・メンバーを優先し、選択する。例えば、生産クラスタへのマウントは、主としてDR又はエレクトロニック・ヴォールティング(electronic vaulting)のために用いられる遠隔クラスタよりも、同じファミリー280(1)内の別の生産クラスタを優先することができる。マウント処理モジュール420は、高可用性のために、生成データをローカルに留めて迅速に複製する必要があるときには、災害復旧可能性よりも可用性を優先し、従って、DRファミリーよりも生産ファミリー内のファミリー・メンバーを選択するように用いることができる。
マウント処理モジュール420は、遠隔マウントが必要とされるときにクラスタ・ファミリー・メンバーを優先することによって、制御及び性能を改善することができる。ファミリー及び/又はファミリー・メンバーは、遠隔TVCを選択するときに、他のクラスタよりも、特定のクラスタを優先するように(例えば、生成モジュール410を用いて)構成することができる。このことは、1組の生産クラスタを非生産クラスタと区別する際に有利であり得る。同じ生産ファミリー内のファミリー・メンバーを優先することにより、DR又はアーカイブ目的の遠方の遠隔クラスタを潜在的に選択するのではなく、TVC選択を生産クラスタ内に保持することができる。
さらに、クラスタ・ファミリー280内のクラスタ・ファミリー・メンバー220はマウントのターゲットであり、同じクラスタ・ファミリー280内で優先されるので、TVC選択処理が改善され得る。
1つの好ましい実施形態において、ストレージ・システム200は、複数のクラスタを含むことができ、そこで、2つ又はそれ以上のクラスタ220のサブセットが第1のクラスタ・ファミリー280にグループ化され、2つ又はそれ以上のクラスタ220のサブセットが第2のクラスタ・ファミリー280にグループ化される。ファミリー・グループのグループ化は、互いに対する、及び/又は、他の非ファミリー・メンバー・クラスタに対する、ファミリー・メンバーの役割、関係、及び/又は距離に基づくことができる。クラスタ・ファミリー280のクラスタ・ファミリー・メンバーの各々は、互いに対するそれらの関係を認識している。ファミリー・メンバーの間のこの関係認識により、グループが、効率的に連携し、データをグループ内に累積的に複製し、次に、互いの間で複製することが可能になる。
サイト105は、クラスタ・ファミリー280又はクラスタ・ファミリー280の組み合わせを含むことができる。例えば、サイト105(a)は、第1のクラスタ・ファミリー280と、第2のクラスタ・ファミリー280とを含むことができる。第1のクラスタ・ファミリー280は、生産クラスタ220(a)、220(b)を含むことができ、第2のクラスタ・ファミリー280は、DRクラスタ220(c)、220(d)を含むことができる。さらに、クラスタ220をサイト105の組み合わせから選択して、クラスタ・ファミリー280を生成することができる。例えば、105(a)及び105(b)といった複数のサイト105においてクラスタ220を選択することから、クラスタ・ファミリー280を生成することができ、ここでサイト105(a)におけるクラスタ220(a)、220(b)は、生産目的に用いられ、サイト105(b)におけるクラスタ220(c)、220(d)は、DR及び/又はアーカイブ目的に用いられる。
1つの好ましい実施形態において、クラスタ220(c)、220(d)は、データのアーカイブに用いられる。1つの好ましい実施形態において、クラスタ220(c)、220(d)は、DRに用いられる。別の実施形態において、クラスタ220(c)などの1つのクラスタは、DRに用いられ、クラスタ220(d)などの他のクラスタは、アーカイブに用いられる。
この後の概略的なフロー・チャート図は、全体的に、論理フロー・チャート図として説明される。従って、記載された順序及び表記されたステップは、提示される方法の1つの好ましい実施形態を示すものである。機能、論理、又は効果が、示される方法の1つ又は複数のステップ又はその一部と同等である他のステップ及び方法を考えることができる。さらに、用いられる形式及び記号は、本方法の論理ステップを説明するために提供されるものであり、方法の範囲を限定するように理解されるものではない。フロー・チャート図には、種々の矢印タイプ及び線種が用いられることがあるが、これらは対応する方法の範囲を限定するものではないことが理解される。実際に、幾つかの矢印又は他のコネクタは、方法の論理フローを示すためだけに用いられ得る。例えば、矢印は、示される方法の列挙されたステップ間の不特定期間の待ち時間又は監視時間を示し得る。さらに、特定の方法が行われる順序は、示される対応するステップの順序に厳密に従っても従わなくてもよい。
図6は、本発明のクラスタ・ファミリー選択及び協調的レプリケーション方法の1つの好ましい実施形態を示す概略的なフロー・チャート図である。方法500は、実質的に、図1−図5の説明される装置及びシステムの動作に関して上記に提示された機能を実行するためのステップを含む。1つの好ましい実施形態において、方法は、コンピュータ可読プログラムを有するコンピュータ可読媒体を含むコンピュータ・プログラム製品により実施される。コンピュータ可読プログラムは、クラスタ・マネージャ320及び/又はホスト210などのコンピューティング・システム内に統合することができ、ここで、プログラムは、コンピューティング・システムと組み合わされて、方法500を実行することができる。
方法500が開始し、ステップ510において、クラスタのグループが、クラスタ・ファミリーのファミリー・メンバー内に配置される。例えば、クラスタは、互いに対する関係、及び、ドメイン内の他のクラスタに対する関係に基づいてグループ化される。クラスタ・ファミリーは、役割(例えば生産ソース、DR、アーカイブ等)、範囲、距離(例えば、ファミリー間の距離格付け)等を含む種々の要因及び/又は機能に基づいて生成することができる。さらに、ユーザは、文字名を割り当てて、クラスタ・ファミリーを生成することができる。例えば、図3に示されるように、クラスタ・ファミリーは、文字名「都市A」を用いて生成することができ、別のファミリーは「都市B」を用いて生成することができる。
1つの好ましい実施形態においては、生成モジュール410は、クラスタ・ファミリーを生成するために用いられ、ここでユーザは、管理インターフェース355を用いて構成中にクラスタ・ファミリーを生成して、クラスタ・ファミリー名を生成し、1つ又は複数のクラスタをファミリーに付加し、隣接するファミリーの間で役割及び/又は距離格付けを割り当て、構成特性を用いてクラスタを教育することができる。これらの永続的設定を、生成モジュール410により用いて、例えば、1つ又は複数のクラスタ或いはファミリー・メンバーに対する関係の認識、並びに、距離のようなファミリー間の相対的特性をもたらすことができる。
1つの好ましい実施形態において、関係モジュール405は、クラスタ・ファミリー及びファミリー・メンバーに関するこれらの永続的設定を保持する。
さらに、自律機能を用いて、クラスタ間の役割及び関係を検出することができる。自律機能は、例えば、生成モジュール410において実行することができる。
ステップ515において、ファミリー・メンバーは互いに協議して、外部データ・オブジェクトを取得するために、ファミリーのどのファミリー・メンバーが最良の位置にあるかを判断する。例えば、図3に示されるように、クラスタ・ファミリー280(1)は、メトロ距離で構成し、生産目的に使用することができる、2つ又はそれ以上のファミリー・メンバー220(a)、220(b)を含む。クラスタ・ファミリー280(2)は、ファミリー280(1)に対してグローバル距離で構成し、DR目的に用いることができる、2つ又はそれ以上のファミリー・メンバー220(c)、220(d)を含む。クラスタ・ファミリー280(1)は、ネットワーク110、215を介して、データ・オブジェクトをコピーする準備ができていることを、クラスタ・ファミリー280(2)と通信することができる。各々のファミリーのクラスタ・ファミリー・メンバー、並びにファミリー自体は、互いの役割及び互いとの関係を認識しているので、ファミリー・メンバー220(c)、220(d)は互いに協議して、外部データ・オブジェクトのコピーを取得するために、ファミリー280(2)のどのファミリー・メンバーが最良の位置にあるかを判断することができる。
1つの好ましい実施形態においては、例えば、クラスタ・ファミリー280に属するクラスタ・ファミリー・メンバー220は、共通のコピー作業キューを用いて、FIFO順で作業する。コピーに取り掛かる前に、各々のクラスタ・ファミリー・メンバー220は、最初に、クラスタ・ファミリー280内の他のクラスタ・ファミリー・メンバーが、まだコピーを行っていないか又はまだコピーを終えていないことを確認する。コピーを行っていないか又はまだコピーを終えていない場合には、1つ又は複数のクラスタ・ファミリー・メンバー220は、コピーを行うことができる。コピーが別のファミリー・メンバーにより行われているか又は別のファミリー・メンバーにより既に行われている場合には、1つ又は複数のクラスタ・ファミリー・メンバーは、そのコピーを据え置き(deferred)キューに移動させる。全てのアクティブな生産コンテンツがクラスタ・ファミリー280にコピーされてからしばらくして、ファミリー・メンバーは、互いの間で共有すべきコンテンツである据え置きキューでの作業を開始する。もともとコピーを取得したピア・ファミリー・メンバーが存在しない場合には、依然として外部クラスタ又は別のファミリー・メンバーからコピーを取得することができる。
ステップ520において、1つ又は複数のファミリー・メンバーが、情報又はソース・ボリュームを取得し、複製する。例えば、クラスタ・ファミリー280に属する1つ又は複数のクラスタ・ファミリー・メンバー220が、遠隔ネットワーク110、125にわたってデータ又はソース・ボリュームをプルし、そのデータ又はソース・ボリュームをコピー/複製し、それをクラスタ・ファミリー280内にもたらすように選択される。例えば、ファミリー280(2)のファミリー・メンバー220(c)は、ネットワーク110、215を通じて外部データ・オブジェクトをファミリー280(2)内にプルする。今やファミリー・メンバー220(c)は一貫性のあるソースを有し、そのソース・ボリュームをキャッシュ(例えば、TVC365)内に保持し、これをピア・レプリケーションのために容易に使用できるようにすることが求められ得る。
ステップ525において、ソース・ボリュームは、ファミリーのファミリー・メンバーの間で協調的に複製される。例えば、クラスタのファミリー・グループは、初めてそれをファミリー内にもたらすときに、いずれか1つのボリュームのレプリケーションをシリアル化することによって協働する。Nがコピーを必要とするファミリー内のクラスタの数である場合、ファミリー内のクラスタは、それぞれボリュームのN分の1の複製で役割を果たすことができる。
いずれの1つのボリュームも、複数回に対して1回しか、遠隔リンクにわたってプルされなかったので、クラスタ・ファミリー又はDR記憶場所は、N倍速く累積的一貫性をもつようになり得る。次に、クラスタは、これらの間の相対距離のために、ずっと速く、可用性に関して互いの間で一貫性をもつようになり得る。各々のクラスタが同じ遠隔生産クラスタから別個に調達するのと比べて、DR及びHA(高可用性)の両方が一貫性をもつようになるまでの全体的な時間が大きく改善され得る。
ステップ530において、クラスタ・ファミリーは、累積的一貫性を達成する。つまり、クラスタ・ファミリー内に複製する必要があるクラスタ・ファミリーの外部の全てのボリュームが完了する。クラスタ・ファミリーは、全体として、全ての外部データ・オブジェクトに対して一貫性がある。今や、クラスタ・ファミリー・メンバーは、互いの間で共有するので、クラスタ・ファミリー内の個々のファミリー・メンバーがそれぞれのコピーを有することができる。
ステップ535において、全てのボリュームがファミリー内に複製され、ファミリーが累積的一貫性をもつようになった後、次に、同じファミリー内の一貫性のないクラスタが、ボリューム(即ち、データ・オブジェクト)を互いの間で共有する。
従って、本発明の実装方法500は協調的レプリケーションを実行し、ここで、いずれの1つのボリュームも、N回に対して1回しか、遠隔リンクにわたってプルされなかったので、クラスタ・ファミリー又はDR記憶場所は、N倍速く累積的一貫性をもつようになり得る。次に、クラスタは、これらの間の相対距離のために、ずっと速く、可用性に関して互いの間で一貫性をもつようになり得る。各々のクラスタが同じ遠隔生産クラスタから別個に調達するのと比べて、DR及びHA(高可用性)の両方が一貫性をもつようになるまでの全体的な時間が大きく改善され得る。
さらに、方法500は、顧客がN個のコピーだけを必要とし、そのN個のコピーが互いから遠く離れている必要がある場合、X個のクラスタ(ここで、Xはクラスタの数を表す)に複製するより有効な方法のために、ファミリーを用いる。これにより、顧客は、どのクラスタがコピーを受け取るかをことさら明示することなく、距離/ファミリーにわたってコピーを分散させることができるようになる。例えば、ユーザは、N個のコピーが存在する限り(ここで、NはXより少ない)、どのクラスタがコピーを含むかについて関心をもたなくてもよく、顧客は、N個のコピーが全て独立したファミリー内に存在することを要求する。従って、1つのドメイン内の全てのクラスタが協働して、各ファミリーからの少なくとも1つのメンバーがボリュームを複製することを保証することができ、次に、残りのメンバーは、そのレプリケーション要件を放棄することができる。そして、いずれの1つの領域内に過剰なN個のコピーもつことなく、N個のファミリー内にN個のコピーをもつようになることが可能である。
方法500のステップは、いずれかの組み合わせで、マウント処理において用いることができる。例えば、ステップ510において構成されたクラスタ・ファミリーの場合、ステップ515−535を用いて、方法500は、ファミリー外部のクラスタよりも、それぞれのファミリー内のクラスタを優先することができる。例えば、生産クラスタへのマウントは、主として災害復旧(エレクトロニック・ヴォールティング)に用いられる遠隔クラスタよりも、(同じファミリー内の)別の生産クラスタを優先することができる。ユーザは、高可用性のために、生産データをローカルに留めて迅速に複製することを望む傾向があるので(災害復旧可能性よりも可用性を優先する)、生産クラスタの調達は、短期的目標に関してはずっと有効であり、依然として長期的目標には影響を及ぼさない。
図7及び図8は、本発明のクラスタ・ファミリー選択及び協調的レプリケーション方法の1つの好ましい実施形態を示す概略的なフロー・チャート図である。方法600は、実質的に、図1−図5の説明される装置及びシステムの動作に関して上記に提示された機能を実行するためのステップを含む。1つの好ましい実施形態において、方法は、コンピュータ可読プログラムを有するコンピュータ可読媒体を含むコンピュータ・プログラム製品により実施される。コンピュータ可読プログラムは、クラスタ・マネージャ320及び/又はホスト210などのコンピューティング・システム内に統合することができ、ここで、プログラムを、コンピューティング・システムと組み合わせて、方法600を実行することができる。
方法600が開始し、ステップ605において、コピー・プロセスが始まる。例えば、都市A内の外部データ・オブジェクトを、都市B(例えば図3)に複製する必要がある。
ステップ610において、制御は、コピー要求を受け取るクラスタがクラスタ・ファミリー・メンバーであるかどうかを判断する。そうでない場合、ステップ615において、協調的レプリケーションを行うことなく、ボリュームがコピーされる。例えば、協調的レプリケーション・モジュール415は、遅延又は優先順位の変更なしにコピー要求を管理することができる。
さらに、協調的レプリケーション・モジュール415は、遠隔リンク又はネットワークにわたってデータをプルするように、ファミリー内の少なくとも1つのファミリー・メンバーを選択することができる。ひとたび、クラスタがファミリー・メンバーであり、他のファミリー・メンバーはネットワークにわたってデータをプルしていないと判断されると、選択を行うことができる。
これがクラスタ・ファミリー・メンバーである場合、ステップ620において、制御は、他のファミリー・メンバーの1つが既にこのボリュームのコピーを完了しているかどうかを判断する。肯定の場合、ステップ625において、他のファミリー・メンバーの1つが既にこのボリュームをコピーしているので、ボリュームのコピーにより低い優先順位が与えられ、これをキューに戻す。
ファミリー・メンバーの1つがまだこのボリュームのコピーを完了していない場合、ステップ630において、制御は、別のファミリー・メンバーがこのボリュームをアクティブにコピーしているかどうかを判断する。肯定の場合、ステップ635において、このボリュームのコピーに関する優先順位を下げて、キューに戻す前に遅延させる。コピー要求を再びキューに送る前の遅延は、例えば、ボリュームをアクティブにコピーしている別のファミリー・メンバーが、ボリュームをコピーする如何なる問題にも遭遇しないことを確実にするためである。
ステップ630において、ボリュームをアクティブにコピーしている他のファミリー・メンバーが存在しない場合、次にステップ640において、制御は、別のファミリー・メンバーもこのボリュームをコピーする準備ができているが、現時点ではアクティブにコピーしていないのかどうかを判断する。否定である場合、ステップ655において、制御は、現時点ではボリュームをアクティブにコピーしていないこの他のファミリー・メンバーが、コピー要求フラグを継承すべきかどうかを判断する。肯定の場合、ステップ645において、このクラスタはコピーの優先順位を下げ、遅延させてからキューに戻る。
ステップ645において否定である場合、方法600はステップ655に進み、このファミリー・メンバーが、2つのクラスタ・メンバーの間のせめぎ合いに勝ってコピー・フラグを継承する。従って、ステップ645において、制御は、コピー・フラグを継承するように、どのファミリー・メンバーを指定するかを判断する。指定されなかったファミリー・メンバーはコピーの優先順位を下げて、キューに戻るのを遅延させる(例えば、ステップ650)。
ステップ640に戻ると、別のファミリー・メンバーはこのボリュームをコピーする準備ができていない場合、次にステップ655において、制御は、このファミリー・メンバー内で、1つのファミリー・メンバーだけがボリュームをコピーする準備ができていると判断し、そのファミリー・メンバーをクラスタとして指定してコピー・フラグを継承し、レプリケーションを完了する。
ステップ640において、制御は、コピーする準備ができており、現時点ではアクティブにコピーしていない別のファミリー・メンバーが存在すると判断することができるが、ステップ645に示されるように、他のクラスタはコピー・フラグを継承しないと判断することができることに留意すべきである。従って、ステップ640におけるクラスタは、ステップ655に示されるように、コピー・フラグを継承する。
ステップ660において、ステップ655においてコピー・フラグを継承した指定されたクラスタが、コピーを完了する。
ステップ670において、制御は、ソース・クラスタにおけるコピー要求フラグをクリアし、クラスタ・ファミリーのファミリー・メンバーのためのコピー要求フラグを設定することによって、協働して累積的にファミリーを一貫性のある状態にする。
ステップ675において、クラスタ・ファミリーの他のファミリー・メンバーは、そのコピーを完了し、コピー・フラグを継承するように指定されたクラスタ内に、ステップ655において設定されたコピー要求フラグを再設定する。
図1−図4は、マルチ・クラスタ構成を示すものとすることができる。マルチ・クラスタ構成(又は、グリッド構成)においては、マイクロコードの観点から見ると、各々のクラスタは、自分自身及び他のクラスタに対する関係及び役割を認識していないことがあり、従って、全ての他のクラスタから独立して等しく動作する。例えば、2つ又はそれ以上のクラスタが1つ又は複数の生産クラスタからグローバル・遠隔に構成される場合、それらは、遠隔ネットワークにわたってデータを「プルする」ことにより、独立して複製を行うことができる。これらのクラスタには関係の認識がないため、これらは、役割及び/又は他のクラスタからの距離に基づいた最も有効な方法で動作することができない。
さらに、マルチ・クラスタ構成においては、マウント処理中にボリュームを調達するようにクラスタを選択する手段、及び、クラスタがボリュームのレプリケーションを履行する能力は、この関係を認識していないことで大きな影響を受ける。例えば、生産クラスタは、マウント処理及び/又はコピー処理のために、メトロ遠隔クラスタよりも、グローバル・遠隔ソース・クラスタを選択することがある。グローバル・遠隔クラスタは、クラスタ間のネットワークの距離のために、ずっと効率が悪い。
本発明の実装は、マルチ・クラスタ構成又はグリッド構成内のファミリー・メンバー及びファミリーの間に関係認識をもたらすことにより、これらの問題を解決することができる。さらに、本発明を実施することにより、データ・コピー及び/又はレプリケーションの性能、効率、及び最適化を改善することができる。例えば、ファミリー内に協調的に複製して、N倍速く累積的なファミリーの一貫性を達成すること、及び、累積的なネットワーク・スループットのN分の1だけを利用することにより、効率及び性能を改善することができる。
図1−図6を参照すると、本発明の実施は、ソフトウェア、ファームウェア、マイクロコード、ハードウェア、及び/又はこられのいずれかの組み合わせを含むことができる。本実施は、メモリ、ストレージ、及び/又は階層ストレージ・ノード315の回路のような媒体内に実装されたコード又は論理の形態を取ることができ、ここで媒体は、ハードウェア論理(例えば、集積回路チップ、プログラマブル・ゲート・アレイ[PGA]、特定用途向け集積回路[ASIC]、又は他の回路、論理若しくはデバイス)、或いは磁気ストレージ媒体(例えば、電子、磁気、光学、電磁気、赤外線又は半導体のシステム、半導体若しくはソリッドステート・メモリ、磁気テープ、取り外し可能なコンピュータ・ディスケット、及びランダム・アクセス・メモリ[RAM]、読み出し専用メモリ[ROM]、剛性磁気ディスク及び光ディスク、コンパクト・ディスク−読み出し専用メモリ[CD−ROM]、コンパクト・ディスク−読み出し/書き込み[CD−R/W]、並びにデジタル・ビデオ・ディスク(DVD))のようなコンピュータ可読ストレージ媒体を含むことができる。
当業者であれば、上述の方法に対して、ステップの順序の変更を含む変更をなし得ることを理解するであろう。さらに、当業者であれば、本明細書において示されたものとは異なる特定のコンポーネント構成を用い得ることを理解するであろう。
本発明の好ましい実施形態を詳細に示したが、以下の特許請求の範囲に記載される本発明の範囲から逸脱することなく、これらの実施形態に対する修正及び改造を行い得ることが、当業者には明らかである。
100:分散サイト
105a、105b、105c:サイト
110、215:ネットワーク
200:ストレージ・システム
205:ドメイン
210、210a、210b:ホスト・システム
220、220a、220b、220c、220d:クラスタ
230:ストレージ・デバイス
240:ライブラリ
250、310、315:階層ストレージ・ノード(HSN)
260:仮想化ノード(VN)
280:クラスタ・ファミリー
312:テープ・デーモン
320:クラスタ・マネージャ
325:遠隔ファイル・アクセス
330:データ・ムーバ
335:物理テープ・マネージャ
340:キャッシュ・マネージャ
345:リコール・マネージャ
350:データベース
355:管理インターフェース
360:媒体マネージャ
365:ボリューム・キャッシュ(仮想ボリューム・キャッシュ(TVC))
370:ライブラリ・マネージャ
400:クラスタ・ファミリー装置
405:関係モジュール
410:生成モジュール
415:協調的レプリケーション・モジュール
420:マウント処理モジュール
425:通信モジュール
430:ポリシー・モジュール

Claims (12)

  1. 複数のクラスタの協調的レプリケーションのためにストレージ・システムにより実行される方法であって、前記方法は、
    前記複数のクラスタの少なくとも1つのサブセットをクラスタ・ファミリーのファミリー・メンバー内に配置するステップと、
    前記クラスタ・ファミリー・メンバー間で協議して、前記ファミリーの外部の少なくとも1つのクラスタから少なくとも1つの外部データ・オブジェクトを取得するのに、どのクラスタ・ファミリーが最良の位置にあるかを判断するステップと、
    前記外部データ・オブジェクトを取得するために、前記クラスタ・ファミリーの1つのファミリー・メンバーを選択するステップと、
    前記クラスタ・ファミリー・メンバーの間で前記外部データ・オブジェクトを共有し、前記クラスタ・ファミリー内の各クラスタが外部データ・オブジェクトに対して一貫性をもつようにするステップと、
    前記クラスタ・ファミリー内のクラスタ間で外部データ・オブジェクトを共有する前に、複数の外部データ・オブジェクトの前記クラスタ・ファミリー内で累積的一貫性を達成するステップと
    を含む方法。
  2. クラスタ関係要因及び役割要因の少なくとも一方に基づいて、前記クラスタ・ファミリーの間の関係を生成するステップをさらに含む、請求項1に記載の方法。
  3. 一貫性のあるソースを有するファミリー・メンバーが、ボリュームをキャッシュ内に保持し、ピア・レプリケーションのために、他のファミリー・メンバーが前記ボリュームを容易に利用できるようにするステップをさらに含む、請求項1又は請求項2に記載の方法。
  4. 前記他のファミリー・メンバーのために前記ボリュームを前記キャッシュ内に保持する前記ファミリー・メンバーが、コピーを前記外部クラスタのキャッシュ内に保持することら前記外部クラスタを解放させるステップをさらに含む、請求項3に記載の方法。
  5. 前記ファミリー内のN個のファミリー・メンバーの各々が、前記外部データ・オブジェクトのN分の1のボリュームを複製し、前記ファミリー内のファミリー・メンバーの数はN個に等しい、請求項1から4までのいずれかに記載の方法。
  6. いずれかのボリュームの全てのレプリケーションを前記クラスタ・ファミリー内にシリアル化するステップをさらに含む、請求項1から請求項5までのいずれかに記載の方法。
  7. 前記外部データ・オブジェクトのN分の1のボリュームを複製する前記N個のファミリー・メンバーの第1のファミリー・メンバーが、前記外部クラスタに、前記第1のファミリー・メンバーが、前記クラスタ・ファミリー・メンバーのために前記ボリュームを保持し、前記ボリュームを外部クラスタのキャッシュ内に保持することから前記外部クラスタを解放することを通知し、前記ファミリー内のファミリー・メンバーの数はN個に等しい、請求項1から請求項6までのいずれかに記載の方法。
  8. マウント処理のために、前記クラスタ・ファミリー内の前記ファミリー・メンバーの1つを、前記クラスタ・ファミリーの外部のクラスタより優先するステップをさらに含む、請求項1から請求項7までのいずれかに記載の方法。
  9. 複数のクラスタ・ファミリーを準備するステップであって、各々のファミリーからの少なくとも1つのファミリー・メンバーがボリュームを複製する、準備するステップをさらに含む、請求項1から請求項までのいずれかに記載の方法。
  10. 複数のクラスタを含むドメインを準備するステップであって、前記クラスタは協働して、各々のファミリーからの少なくとも1つのファミリー・メンバーがボリュームを複製し、前記残りのクラスタはレプリケーション要件を放棄することを確実にする、準備するステップをさらに含む、請求項1から請求項9までのいずれかに記載の方法。
  11. 複数のクラスタの協調的レプリケーションのためのシステムであって、前記システムは、
    ネットワークと、
    前記ネットワーク上で通信する複数のサイトと、
    を含み、各々のサイトは、少なくとも1つのホストと、複数のクラスタを含むストレージ・システムとを含み、各々のクラスタは、磁気テープ上に格納されたボリュームにアクセスするように構成された少なくとも1つのテープ・ドライブと、少なくとも1つのテープ・ボリューム・キャッシュと、
    クラスタのグループをクラスタ・ファミリーのファミリー・メンバーにセットアップして配置するように動作可能な生成モジュールと、
    外部データ・オブジェクトを前記クラスタ・ファミリー内に協調的に複製し、前記クラスタ・ファミリー内のクラスタ間で外部データ・オブジェクトを共有する前に、複数の外部データ・オブジェクトの前記クラスタ・ファミリー内で累積的一貫性を達成するためにファミリー・メンバーを選択するように動作可能な協調的レプリケーション・モジュールと、
    を含むクラスタ・マネージャと、
    を含むシステム。
  12. コンピュータの内部メモリにロード可能なコンピュータ・プログラムであって、前記プログラムがコンピュータ上で実行されるとき、前記コンピュータをストレージ・システムとして請求項1から請求項10までのいずれかに記載の方法を実行させる、コンピュータ・プログラム。
JP2012542429A 2009-12-11 2010-11-16 クラスタ選択及び協調的レプリケーションのためのクラスタ・ファミリー Active JP5695660B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/635,702 US8812799B2 (en) 2009-12-11 2009-12-11 Cluster families for cluster selection and cooperative replication
US12/635,702 2009-12-11
PCT/EP2010/067595 WO2011069783A1 (en) 2009-12-11 2010-11-16 Cluster families for cluster selection and cooperative replication

Publications (2)

Publication Number Publication Date
JP2013513839A JP2013513839A (ja) 2013-04-22
JP5695660B2 true JP5695660B2 (ja) 2015-04-08

Family

ID=43567534

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012542429A Active JP5695660B2 (ja) 2009-12-11 2010-11-16 クラスタ選択及び協調的レプリケーションのためのクラスタ・ファミリー

Country Status (6)

Country Link
US (5) US8812799B2 (ja)
JP (1) JP5695660B2 (ja)
CN (1) CN102652423B (ja)
DE (1) DE112010003837T5 (ja)
GB (1) GB2488248B (ja)
WO (1) WO2011069783A1 (ja)

Families Citing this family (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8812799B2 (en) 2009-12-11 2014-08-19 International Business Machines Corporation Cluster families for cluster selection and cooperative replication
US20110153715A1 (en) * 2009-12-17 2011-06-23 Microsoft Corporation Lightweight service migration
US9389895B2 (en) * 2009-12-17 2016-07-12 Microsoft Technology Licensing, Llc Virtual storage target offload techniques
US11726955B2 (en) 2010-06-19 2023-08-15 Hewlett Packard Enterprise Development Lp Methods and apparatus for efficient container location database snapshot operation
US9323775B2 (en) * 2010-06-19 2016-04-26 Mapr Technologies, Inc. Map-reduce ready distributed file system
US9311328B2 (en) * 2011-04-22 2016-04-12 Veritas Us Ip Holdings Llc Reference volume for initial synchronization of a replicated volume group
US8856082B2 (en) * 2012-05-23 2014-10-07 International Business Machines Corporation Policy based population of genealogical archive data
WO2013190649A1 (ja) * 2012-06-20 2013-12-27 富士通株式会社 仮想ディスクのマイグレーションに関する情報処理方法及び装置
US9619256B1 (en) * 2012-06-27 2017-04-11 EMC IP Holding Company LLC Multi site and multi tenancy
US8904231B2 (en) * 2012-08-08 2014-12-02 Netapp, Inc. Synchronous local and cross-site failover in clustered storage systems
US20140122817A1 (en) * 2012-10-31 2014-05-01 Duke Browning System and method for an optimized distributed storage system
US8903539B2 (en) * 2012-11-21 2014-12-02 International Business Machines Corporation Efficient distribution and selection of storage media in a storage medium library
US20140229695A1 (en) * 2013-02-13 2014-08-14 Dell Products L.P. Systems and methods for backup in scale-out storage clusters
US9438674B2 (en) 2013-06-07 2016-09-06 International Business Machines Corporation Appliance interconnection architecture
US9659078B2 (en) 2013-08-29 2017-05-23 Oracle International Corporation System and method for supporting failover during synchronization between clusters in a distributed data grid
US11128448B1 (en) * 2013-11-06 2021-09-21 Pure Storage, Inc. Quorum-aware secret sharing
US9286366B2 (en) 2013-12-02 2016-03-15 International Business Machines Corporation Time-delayed replication for data archives
US9262290B2 (en) 2013-12-02 2016-02-16 International Business Machines Corporation Flash copy for disaster recovery (DR) testing
US9304871B2 (en) 2013-12-02 2016-04-05 International Business Machines Corporation Flash copy for disaster recovery (DR) testing
US20150271014A1 (en) * 2014-03-21 2015-09-24 Onyx Ccs Automatic configuration of new components by infrastructure management software
US9606873B2 (en) 2014-05-13 2017-03-28 International Business Machines Corporation Apparatus, system and method for temporary copy policy
US9542277B2 (en) 2014-09-30 2017-01-10 International Business Machines Corporation High availability protection for asynchronous disaster recovery
US20160140197A1 (en) * 2014-11-14 2016-05-19 Tim Gast Cross-system synchronization of hierarchical applications
US20160259573A1 (en) * 2015-03-03 2016-09-08 International Business Machines Corporation Virtual tape storage using inter-partition logical volume copies
US10896207B2 (en) * 2015-08-20 2021-01-19 International Business Machines Corporation Optimization of object-based storage
US11423053B2 (en) * 2016-01-30 2022-08-23 Micro Focus Llc Log event cluster analytics management
CN107220263B (zh) * 2016-03-22 2021-09-03 阿里巴巴集团控股有限公司 数据迁移的优化方法、评估方法及处理方法及装置
CN107291724A (zh) * 2016-03-30 2017-10-24 阿里巴巴集团控股有限公司 集群数据复制方法、优先级确定方法及装置
US10248523B1 (en) * 2016-08-05 2019-04-02 Veritas Technologies Llc Systems and methods for provisioning distributed datasets
CN108089949A (zh) * 2017-12-29 2018-05-29 广州创慧信息科技有限公司 一种数据自动备份的方法和系统
KR102292389B1 (ko) * 2018-01-17 2021-08-25 한국전자통신연구원 원격 직접 메모리 접근을 통한 분산 처리 장치 및 그 방법
US11010233B1 (en) 2018-01-18 2021-05-18 Pure Storage, Inc Hardware-based system monitoring
WO2019153113A1 (en) 2018-02-06 2019-08-15 Hewlett-Packard Development Company, L.P. File objects download and file objects data exchange
US11023174B2 (en) 2019-09-12 2021-06-01 International Business Machines Corporation Combining of move commands to improve the performance of an automated data storage library
US11429441B2 (en) 2019-11-18 2022-08-30 Bank Of America Corporation Workflow simulator
US11106509B2 (en) 2019-11-18 2021-08-31 Bank Of America Corporation Cluster tuner
US11720692B2 (en) 2019-11-22 2023-08-08 Pure Storage, Inc. Hardware token based management of recovery datasets for a storage system
US11675898B2 (en) 2019-11-22 2023-06-13 Pure Storage, Inc. Recovery dataset management for security threat monitoring
US11720714B2 (en) 2019-11-22 2023-08-08 Pure Storage, Inc. Inter-I/O relationship based detection of a security threat to a storage system
US11645162B2 (en) 2019-11-22 2023-05-09 Pure Storage, Inc. Recovery point determination for data restoration in a storage system
US11941116B2 (en) 2019-11-22 2024-03-26 Pure Storage, Inc. Ransomware-based data protection parameter modification
US11755751B2 (en) 2019-11-22 2023-09-12 Pure Storage, Inc. Modify access restrictions in response to a possible attack against data stored by a storage system
US11657155B2 (en) 2019-11-22 2023-05-23 Pure Storage, Inc Snapshot delta metric based determination of a possible ransomware attack against data maintained by a storage system
US11651075B2 (en) 2019-11-22 2023-05-16 Pure Storage, Inc. Extensible attack monitoring by a storage system
US11500788B2 (en) 2019-11-22 2022-11-15 Pure Storage, Inc. Logical address based authorization of operations with respect to a storage system
US11615185B2 (en) 2019-11-22 2023-03-28 Pure Storage, Inc. Multi-layer security threat detection for a storage system
US11341236B2 (en) 2019-11-22 2022-05-24 Pure Storage, Inc. Traffic-based detection of a security threat to a storage system
US11625481B2 (en) 2019-11-22 2023-04-11 Pure Storage, Inc. Selective throttling of operations potentially related to a security threat to a storage system
US11520907B1 (en) 2019-11-22 2022-12-06 Pure Storage, Inc. Storage system snapshot retention based on encrypted data
US11687418B2 (en) 2019-11-22 2023-06-27 Pure Storage, Inc. Automatic generation of recovery plans specific to individual storage elements
CN111885170B (zh) * 2020-07-23 2022-03-11 平安科技(深圳)有限公司 物联网控制系统的处理方法、系统、云端服务器及介质
CN113641503B (zh) * 2021-09-01 2024-05-14 上海联蔚盘云科技有限公司 多云多集群的Kubernetes管理系统及方法与设备
US11630603B1 (en) * 2021-09-28 2023-04-18 Hewlett Packard Enterprise Development Lp Hardware device polling using delay order
US20230136224A1 (en) * 2021-11-02 2023-05-04 Quantum Corporation Automated system and method for diagnosing tape drive and media issues within large-scale tape library system

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5862312A (en) * 1995-10-24 1999-01-19 Seachange Technology, Inc. Loosely coupled mass storage computer cluster
US6438705B1 (en) * 1999-01-29 2002-08-20 International Business Machines Corporation Method and apparatus for building and managing multi-clustered computer systems
JP2000322292A (ja) 1999-05-10 2000-11-24 Nec Corp クラスタ型データサーバシステム及びデータ格納方法
US6952741B1 (en) * 1999-06-30 2005-10-04 Computer Sciences Corporation System and method for synchronizing copies of data in a computer system
US6718361B1 (en) * 2000-04-07 2004-04-06 Network Appliance Inc. Method and apparatus for reliable and scalable distribution of data files in distributed networks
US6950833B2 (en) * 2001-06-05 2005-09-27 Silicon Graphics, Inc. Clustered filesystem
US7243103B2 (en) * 2002-02-14 2007-07-10 The Escher Group, Ltd. Peer to peer enterprise storage system with lexical recovery sub-system
JP2003345525A (ja) * 2002-05-24 2003-12-05 Hitachi Ltd 計算機システム及びレプリケーション方法
US7523204B2 (en) * 2004-06-01 2009-04-21 International Business Machines Corporation Coordinated quiesce of a distributed file system
US20060080362A1 (en) * 2004-10-12 2006-04-13 Lefthand Networks, Inc. Data Synchronization Over a Computer Network
CN100344186C (zh) 2004-11-18 2007-10-17 华为技术有限公司 一种确定集群用户集群组内优先级的方法
US7461130B1 (en) * 2004-11-24 2008-12-02 Sun Microsystems, Inc. Method and apparatus for self-organizing node groups on a network
US20060149922A1 (en) * 2004-12-28 2006-07-06 Ceva D.S.P. Ltd. Multiple computational clusters in processors and methods thereof
US9176741B2 (en) * 2005-08-29 2015-11-03 Invention Science Fund I, Llc Method and apparatus for segmented sequential storage
CN100474808C (zh) 2006-01-19 2009-04-01 思华科技(上海)有限公司 集群式缓存服务系统及其实现方法
JP4281925B2 (ja) 2006-06-19 2009-06-17 株式会社スクウェア・エニックス ネットワークシステム
US7757111B2 (en) * 2007-04-05 2010-07-13 International Business Machines Corporation Method and system for insuring data integrity in anticipation of a disaster
US7774094B2 (en) * 2007-06-28 2010-08-10 International Business Machines Corporation Selecting a source cluster by measuring system factors, calculating a mount-to-dismount lifespan, and selecting the source cluster in response to the lifespan and a user policy
US8073922B2 (en) * 2007-07-27 2011-12-06 Twinstrata, Inc System and method for remote asynchronous data replication
EP2052688B1 (en) * 2007-10-25 2012-06-06 pfm medical ag Snare mechanism for surgical retrieval
JP5018403B2 (ja) 2007-10-31 2012-09-05 日本電気株式会社 バックアップシステム、サーバ装置及びそれらに用いるバックアップ方法並びにそのプログラム
US8180747B2 (en) * 2007-11-12 2012-05-15 F5 Networks, Inc. Load sharing cluster file systems
US7779074B2 (en) * 2007-11-19 2010-08-17 Red Hat, Inc. Dynamic data partitioning of data across a cluster in a distributed-tree structure
EP2274676A1 (en) * 2008-01-31 2011-01-19 Oracle International Corporation System and method for transactional cache
CN101355476B (zh) 2008-05-23 2011-05-11 林云帆 一种基于服务器群集的数据文件存储、分发和应用的系统和方法
JP5508798B2 (ja) * 2009-09-29 2014-06-04 株式会社日立製作所 クラスタを考慮してレプリケーションを管理する管理方法及びシステム
US8812799B2 (en) 2009-12-11 2014-08-19 International Business Machines Corporation Cluster families for cluster selection and cooperative replication

Also Published As

Publication number Publication date
US20160103616A1 (en) 2016-04-14
GB201203109D0 (en) 2012-04-04
US9684472B2 (en) 2017-06-20
US10073641B2 (en) 2018-09-11
US20120290805A1 (en) 2012-11-15
US8812799B2 (en) 2014-08-19
US20110145497A1 (en) 2011-06-16
US8521975B2 (en) 2013-08-27
US9250825B2 (en) 2016-02-02
US20170235508A1 (en) 2017-08-17
CN102652423A (zh) 2012-08-29
CN102652423B (zh) 2015-04-01
DE112010003837T5 (de) 2012-11-08
GB2488248A (en) 2012-08-22
JP2013513839A (ja) 2013-04-22
US20140344540A1 (en) 2014-11-20
WO2011069783A1 (en) 2011-06-16
GB2488248B (en) 2015-07-01

Similar Documents

Publication Publication Date Title
JP5695660B2 (ja) クラスタ選択及び協調的レプリケーションのためのクラスタ・ファミリー
JP6009097B2 (ja) 分散オブジェクトストレージエコシステムにおけるコンテンツとメタデータの分離
US7774094B2 (en) Selecting a source cluster by measuring system factors, calculating a mount-to-dismount lifespan, and selecting the source cluster in response to the lifespan and a user policy
WO2017162179A1 (zh) 用于存储系统的负载再均衡方法及装置
US9606873B2 (en) Apparatus, system and method for temporary copy policy
US20040153481A1 (en) Method and system for effective utilization of data storage capacity
US8667238B2 (en) Selecting an input/output tape volume cache
JP5352490B2 (ja) サーバイメージ容量の最適化
US20150134708A1 (en) Updating map structures in an object storage system
US20230136106A1 (en) Space efficient distributed storage systems
JP5385987B2 (ja) 複数の記憶装置を含む記憶システム、方法、及びプログラム
JP2019537774A (ja) マルチサイト複製をサポートする一貫性ハッシュ構成
US9942098B2 (en) Appliance node clusters
JP2016532927A (ja) 論理ボリュームを管理するためのシステム及び方法
JP2020177274A (ja) ストレージ装置、ストレージシステムおよびプログラム
JP2006146661A (ja) レプリケーションシステム、方法、レプリカストレージ、およびプログラム
JP2015069342A (ja) ストレージ制御装置、ストレージ制御方法及びストレージ制御プログラム
US11972266B2 (en) Hibernating and resuming nodes of a computing cluster
US11327844B1 (en) Automated cloud recovery to provide a full usable application image
JP2012168840A (ja) ストレージシステム、ストレージ方法、及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130905

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140307

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140408

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20140708

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20140715

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140808

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150206

R150 Certificate of patent or registration of utility model

Ref document number: 5695660

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150