(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5693560
(24)【登録日】2015年2月13日
(45)【発行日】2015年4月1日
(54)【発明の名称】データ複製システムにおけるデータの再分配
(51)【国際特許分類】
G06F 12/00 20060101AFI20150312BHJP
【FI】
G06F12/00 501B
G06F12/00 545A
【請求項の数】20
【全頁数】11
(21)【出願番号】特願2012-503418(P2012-503418)
(86)(22)【出願日】2010年3月29日
(65)【公表番号】特表2012-522305(P2012-522305A)
(43)【公表日】2012年9月20日
(86)【国際出願番号】US2010000947
(87)【国際公開番号】WO2010114598
(87)【国際公開日】20101007
【審査請求日】2013年3月6日
(31)【優先権主張番号】12/384,210
(32)【優先日】2009年3月31日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】503093224
【氏名又は名称】イーエムシー コーポレイション
【氏名又は名称原語表記】EMC CORPORATION
(74)【代理人】
【識別番号】100092093
【弁理士】
【氏名又は名称】辻居 幸一
(74)【代理人】
【識別番号】100082005
【弁理士】
【氏名又は名称】熊倉 禎男
(74)【代理人】
【識別番号】100067013
【弁理士】
【氏名又は名称】大塚 文昭
(74)【代理人】
【識別番号】100086771
【弁理士】
【氏名又は名称】西島 孝喜
(74)【代理人】
【識別番号】100109070
【弁理士】
【氏名又は名称】須田 洋之
(74)【代理人】
【識別番号】100109335
【弁理士】
【氏名又は名称】上杉 浩
(74)【代理人】
【識別番号】100122563
【弁理士】
【氏名又は名称】越柴 絵里
(72)【発明者】
【氏名】チョン ファ
(72)【発明者】
【氏名】モゲ ディール
(72)【発明者】
【氏名】レディ サザーラ ベンカタ
【審査官】
原 秀人
(56)【参考文献】
【文献】
特開2008−186223(JP,A)
【文献】
特開2006−113927(JP,A)
【文献】
特開2004−334419(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 12/00
(57)【特許請求の範囲】
【請求項1】
(1)(i)初期の分配取り決めから新たな分配取り決めへと複数のオリジネータノード間において1以上のオリジネータデータサブセットを再分配し、
(ii)オリジネータデータサブセットの識別情報と、初期の分配取り決めに従って前記オリジネータデータサブセットを分配した以前のオリジネータノードの識別情報と、新たな分配取り決めに従って前記オリジネータデータサブセットを現在分配する現在のオリジネータノードの識別情報とを含むデータ再分配情報を決定するように構成された1以上のプロセッサと、
(2)前記データ再分配情報をレプリカ・システムに送信する通信インタフェースと、を備え、
前記データ再分配情報は、以前にレプリカされた取り決めから新たにレプリカされる取り決めへと複数のレプリカノード間で1以上の対応するレプリカデータを再分配するために前記レプリカ・システムにより使用されるシステム。
【請求項2】
前記データ再分配情報は、前記1以上のオリジネータデータサブセットが移動した1以上の前オリジネータノードの識別情報と、前記オリジネータデータサブセットが現在存在する1以上の現在オリジネータノードの識別情報とを含む、請求項1に記載のシステム。
【請求項3】
前記1以上のオリジネータデータサブセットは1以上のデータコンテイナーを含む、請求項1に記載のシステム。
【請求項4】
前記データ再分配情報は前記1以上のデータコンテイナーに関連したメタデータを含む、請求項1に記載のシステム。
【請求項5】
前記データ再分配情報は前記1以上のデータコンテイナーに関連したメタデータを含み、前記1以上のデータコンテイナーのそれぞれは1以上のデータセグメントを含む、請求項1に記載のシステム。
【請求項6】
前記1以上のオリジネータデータサブセット及び前記1以上のレプリカデータサブセットは同一のバックアップデータを含む、請求項1に記載のシステム。
【請求項7】
前記複数のオリジネータノードはファイルシステムの中に含まれている、請求項1に記載のシステム。
【請求項8】
前記データ再分配情報はバックアップデータを含まない、請求項1に記載のシステム。
【請求項9】
前記1以上のオリジネータデータサブセットは、1以上の既存ノードから新たに追加されたノードまで再分配される、請求項1に記載のシステム。
【請求項10】
前記1以上のオリジネータデータサブセットは、前記複数のオリジネータノードの負荷を再バランスするために再分配される、請求項1に記載のシステム。
【請求項11】
初期の分配取り決めから新たな分配取り決めへと複数のオリジネータノード間において1以上のオリジネータデータサブセットを再分配する処理と、
オリジネータデータサブセットの識別情報と、初期の分配取り決めに従って前記オリジネータデータサブセットを分配した以前のオリジネータノードの識別情報と、新たな分配取り決めに従って前記オリジネータデータサブセットを現在分配する現在のオリジネータノードの識別情報とを含むデータ再分配情報を決定する処理と、
前記データ再分配情報をレプリカ・システムに送信する処理とを含み、
前記データ再分配情報は、以前にレプリカされた取り決めから新たにレプリカされる取り決めへと複数のレプリカノード間で1以上の対応するレプリカデータを再分配するために前記レプリカ・システムにより使用されるデータ複製方法。
【請求項12】
前記データ再分配情報は、前記1以上のオリジネータデータサブセットが移動した1以上の前オリジネータノードの識別情報と、前記オリジネータデータサブセットが現在存在する1以上の現在オリジネータノードの識別情報とを含む、請求項11に記載の方法。
【請求項13】
前記1以上のオリジネータデータサブセットは1以上のデータコンテイナーを含む、請求項11に記載の方法。
【請求項14】
前記データ再分配情報は前記1以上のデータコンテイナーに関連したメタデータを含む、請求項11に記載の方法。
【請求項15】
前記データ再分配情報は前記1以上のデータコンテイナーに関連したメタデータを含み、前記1以上のデータコンテイナーのそれぞれは1以上のデータセグメントを含む、請求項11に記載の方法。
【請求項16】
前記1以上のオリジネータデータサブセット及びz1以上のレプリカデータサブセットは同一のバックアップデータを含む、請求項11に記載の方法。
【請求項17】
コンピュータ読み出し可能な記録媒体に記録されるデータ複製のためのコンピュータプログラムであって、コンピュータに、
初期の分配取り決めから新たな分配取り決めへと複数のオリジネータノード間において1以上のオリジネータデータサブセットを再分配する手順と、
オリジネータデータサブセットの識別情報と、初期の分配取り決めに従って前記オリジネータデータサブセットを分配した以前のオリジネータノードの識別情報と、新たな分配取り決めに従って前記オリジネータデータサブセットを現在分配する現在のオリジネータノードの識別情報とを含むデータ再分配情報を決定する手順と、
前記データ再分配情報をレプリカ・システムに送信する手順と、を実行させるコンピュータ命令を含み、
前記データ再分配情報は、以前にレプリカされた取り決めから新たにレプリカされる取り決めへと複数のレプリカノード間で1以上の対応するレプリカデータを再分配するために前記レプリカ・システムにより使用されるコンピュータプログラム。
【請求項18】
1以上のオリジネータノードを含むオリジネータ・システムからデータ再分配情報を受信するインタフェースであって、前記データ再分配情報は、1以上のオリジネータデータサブセットの識別情報と、初期の分配取り決めに従って前記オリジネータデータサブセットを分配した以前のオリジネータノードの識別情報と、新たな分配取り決めに従って前記オリジネータデータサブセットを現在分配する現在のオリジネータノードの識別情報とを含み、
複数のレプリカノード間で以前にレプリカされた取り決めから新たにレプリカされる取り決めへと1以上の対応するレプリカデータサブセットを前記データ再分配情報に従い再分配する1以上のプロセッサと、
を備えたシステム。
【請求項19】
1以上のオリジネータノードを含むオリジネータ・システムからデータ再分配情報を受信する処理であって、前記データ再分配情報は、1以上のオリジネータデータサブセットの識別情報と、初期の分配取り決めに従って前記オリジネータデータサブセットを分配した以前のオリジネータノードの識別情報と、新たな分配取り決めに従って前記オリジネータデータサブセットを現在分配する現在のオリジネータノードの識別情報とを含み、
複数のレプリカノード間で以前にレプリカされた取り決めから新たにレプリカされる取り決めへと1以上の対応するレプリカデータサブセットを前記データ再分配情報に従い再分配する処理と、
を含む方法。
【請求項20】
コンピュータ読み出し可能な記録媒体に記録されるデータ複製のためのコンピュータプログラムであって、コンピュータに、
1以上のオリジネータノードを含むオリジネータ・システムからデータ再分配情報を受信する手順であって、前記データ再分配情報は、1以上のオリジネータデータサブセットの識別情報と、初期の分配取り決めに従って前記オリジネータデータサブセットを分配した以前のオリジネータノードの識別情報と、新たな分配取り決めに従って前記オリジネータデータサブセットを現在分配する現在のオリジネータノードの識別情報とを含む手順と、
複数のレプリカノード間で以前にレプリカされた取り決めから新たにレプリカされる取り決めへと1以上の対応するレプリカデータサブセットを前記データ再分配情報に従い再分配する手順と、
を実行させるコンピュータ命令を記録したコンピュータプログラム。
【発明の詳細な説明】
【背景技術】
【0001】
既存の多くのデータ複製システムの場合、オリジナルとレプリカの間でデータを同期することになる。オリジナルで生じる任意の変化はレプリカに送られ、ミラー化される。頻繁に起こるデータ更新は、多くのバンド幅を消費し、かつ、非効率性を生じさせる。この問題は、ワイドエリアネットワーク(WAN)によってオリジナルとレプリカが分離されたり、バンド幅が制限されたりといった環境において特にはっきり言われている。
【0002】
本発明の様々な実施例が、以下の詳細な説明及び添付の図面に開示されている。
【図面の簡単な説明】
【0003】
【
図1】
図1は、データ複製の一実施例を示すブロック図である。
【
図2】
図2は、データ複製のプロセスの一実施例を示すフローチャートである。
【
図3】
図3は、データ複製のプロセスの別の実施例を示すフローチャートである。
【
図4】
図4は、コンテイナーの一実施例を示すデータ構造図である。
【
図5A】
図5Aは、データを再分配する例示のシナリオを示す一連の図である。
【
図5B】
図5Bは、データを再分配する例示のシナリオを示す一連の図である。
【
図5C】
図5Cは、データを再分配する例示のシナリオを示す一連の図である。
【発明を実施するための形態】
【0004】
本発明は様々な方法で実行される。例えば、プロセス、装置、システム、合成物、コンピュータ読み出し可能な記録媒体上のコンピュータプログラム製品、及び/又はプロセスに結合されたメモリに記憶されたり提供されたりする命令を実行するプロセッサを含む。本明細書では、これらのインプリメンテーション(実装例)又は本発明がとり得る他の任意の形式が技術して引用される。一派的に、開示したプロセスのステップ順は、本発明の範囲内で変更され得る。特に断りがない限り、タスクを実行するものとして記載したプロセッサ又はメモリなどのコンポーネントは、或る時間でタスクを実行するよう一時的に構成された汎用コンポーネントとして、あるいはそのタスクを実行するために製造された特定コンポーネントとしてインプリメント(実装)される。ここで用いられる「プロセッサ」の語は、1以上のデバイス、回路、及び/又はコンポーネントプログラム命令などのデータを処理するよう構成したプロセスコアを称している。
【0005】
本発明の1以上の実施例の詳細な記述は、本発明の原理をあらわす添付の図面と共に以下に提供される。本発明はそのような実施例に関連して記載されるものであるが、これら実施例に限定されるわけではない。本発明の範囲は特許請求の範囲のよってのみ限定され、本発明は多数の変形、修正及び均等物を包含する。多数の特定の詳細は本発明の全体的な理解を提供するために後述する記載で述べているものである。これらの詳細は例示の目的で与えられ、本発明はこれら特定の詳細の幾つか又は全てを必要とせずに特許請求の範囲に従って実施化される。明確さを図るため、本発明に関連する本技術分野で基地の技術的事項は詳細には記載しておらず、その結果、本発明はいたずらに不明瞭にしていない。
【0006】
図1はデータ複製環境の実施例を示すブロック図である。この例において、データ複製システム100は、オリジネータ・システム(ソースシステムとも称される。)102と、レプリカ・システム104(宛先システムとも称される。)を含む。これらのシステムは、ローカルエリアネットワークやワイドエリアネットワークなどの1以上のネットワークによって分離される。
【0007】
オリジネータ・システムは、オリジネータ・フロントエンド・デバイス110と、複数のオリジネータノード112a,112b,112c(オリジネータ・バックエンド・デバイスとも称される。)を含む。レプリカ・システムは、レプリカ・フロントエンド・デバイス120、及び複数のレプリカノード122a,122b,122c(レプリカ・バックエンド・デバイスとも称される。)を含む。異なる数のノード、並びにフロントエンド・デバイス及びノードのアレンジメントが可能である。例えば、フロントエンド・デバイス及びノードの機能は一つの物理デバイスへ統合され得る。
【0008】
データを記憶するためにノードを用いる。様々な実施例において、コンポーネントをストレージするストレージデバイスやファイルサーバなどの任意の適当なタイプのデバイスを用いて、ノードがインプリメントされる。また、フロントエンド・デバイスは、データレプリカ管理ソフトウェアを実行する汎用サーバなどの様々なデバイスを用いてインプリメントされる。各フロントエンド・デバイスは、それぞれのノード、当該ノードに関する対応するデータストレージと通信し、仮想ファイルシステムを実現する。言い換えると、フロントエンド・デバイスを通じたデータにアクセスする外部デバイスに対して、フロントエンド・デバイスは、一つのファイルシステムを管理するファイルシステムサーバであるかのようにみえる。幾つかの実施例において、フロントエンドノード及びバックエンドノードは、1つの物理デバイス上で分離ストレージ・パーティションにより共存する。
【0009】
詳細は後述するが、オリジネータ・システム及びレプリカ・システムはお互いに通信する。詳しくいうと、オリジネータ・システムは、レプリカ・フロントエンド・デバイスにバックアップ情報を送り、それには新たなデータに関する情報と既存データの分配に関する情報とを含む。フロントエンド・デバイス間、又はノード間で直接に通信がおこる。
【0010】
幾つかの実施例において、バックアップデータのストリームがフロントエンド・デバイスで受信され処理される。そして、記憶されるはずのオリジネータノードに分配される。
図1に示す例の場合、レプリカのデータは、オリジネータのデータと同じミラーイメージを維持する。新たなデータが利用できるようになると、オリジネータデータに記憶されるとともに、レプリカにも複製される。システム100のような、オリジネータとレプリカが同じノード構成を有する場合、特別なオリジネータノードの新たなデータは対応するレプリカノード(時々、「バディー」と称される。)に複製される。例えば、ノード112bに記憶された新たなデータはバディーノード122bに複製される。幾つかの実施例の場合、ノード及びバディーに関する知識はフロントエンド・デバイスで保持される。個々のノードはお互いに直接通信する。あるいはまた、オリジネータノードはオリジネータ・フロントエンド・デバイスと通信し、フロントエンド・デバイスは順繰りにレプリカ・フロントエンド・デバイスと通信して適当なレプリカノードに複製したデータを転送する。
【0011】
幾つかの状況において、オリジネータの既存データは一つのオリジネータノードから別のオリジネータノードへ移動することができる。例えば、データ分配が不平等になったら、言い換えると、あまりに多くのデータが或るノードに記憶され、一方で他のノードへの記憶が少なすぎるような場合、システムはノード間のデータ分配を再び均等化するようにする。データの再分配を生じさせる別の状況というのは、新たなノードがシステムに追加されたときである。このデータは既存のノードから新たなノードに再分配される。データの再分配が生じるとき、再分配されたデータに関係する情報がオリジネータからレプリカに送信され、その結果、データは同じ方法でレプリカ上で再分配され得る。しかしながらシステム自体は最新ではない。レプリカデータを新しいレプリカノードにコピーし、それから古いレプリカノードに記憶された同じデータを削除することはもはや要求されていないので、全体システムはデータの再分配を効率的に処理する。
【0012】
図2はデータ複製の処理の実施例を示すフローチャートである。幾つかの実施例において、プロセス200はオリジネータシステム(102など)で実行される。幾つかの実施例において、プロセスはフロントエンド・デバイス110によってインプリメントされる。202で、1以上のオリジネータデータサブセットが複数のオリジネータノード間で再分配される。すなわち、オリジネータデータサブセットは或るオリジネータノードから他のオリジネータノードへと移動する。再分配はシステムが負荷バランスを実行するときに生じ、新たなノードがネットワークに追加されて、任意の適当な理由にために既存のノードがネットワークから削除されたりする。幾つかの実施例において、オリジネータデータサブセットは、その詳細は後述するデータコンテイナーである。204で、どのようにして再分配されるかということに関係するデータサブセット情報が決定される。幾つかの実施例において、データ再分配情報はデータサブセットが移動してきたソースオリジネータノードと、オリジネータシステムサブセットが移動される宛先オリジネータノードとに関係する情報を含む。206で、データ再分配情報がレプリカ・システムに対する通信インタフェースを介して送られる。レプリカ・システムは再分配情報を用いて、レプリカノード間の対応するレプリカデータサブセットを再分配する。
【0013】
図3は、データ複製のプロセスの別の実施例を示すフローチャートである。幾つかの実施例において、プロセス300はレプリカ・システム104で実行される。幾つかの実施例において、フロントエンド・デバイス120がそのプロセスを実行する。302で、データ再分配情報はオリジネータから受信される。データ再分配情報は、オリジネータ印譜裏面ティングプロセス200から送信される。304で、1以上の対応するレプリカデータサブセットがデータ再分配情報に従い、レプリカ・システムで再分配される。上述したように、データ再分配情報はソースノードと、再分配されたデータサブセットに関連する宛先ノードに関する情報を含む。各オリジネータノードが対応するバディーレプリカノードを持つこと、元々、同じオリジネータデータサブセット及びレプリカデータサブセットがオリジネータノード及び対応のレプリカノードのそれぞれに記憶され、そしてオリジネータノード間のデータサブセットの初期分配がレプリカノード間の分配と同一であると仮定する。データ再分配情報が与えられると、レプリカ・システムは、重複したデータ送信オーバーヘッドを負うことなく、オリジネータ・システムと同じ方法で、その既存のデータサブセットを再分配することができる。
【0014】
幾つかの実施例において、上述したプロセスで用いられるデータサブセットはコンテイナーである。様々な実施例において、コンテイナーは数メガバイトのサイズである。例えば、4.5MBのコンテイナーは幾つかの実施例で使用される。ノードは多数のコンテ−なーを記憶する。
図4は、コンテイナーの一実施例を示すデータ構造図である。この例において、コンテイナー400は、バックアップデータ部404とメタデータ部402を含む。バックアップデータ部はバックアップを要求する実際のデータを含み、そしてメタデータ部はデータバックアップを容易にするのに用いられるバックアップデータ部に関係する情報を含む。バックアップデータ部は多数のデータセグメントを含み、それは異なる大きさであり得るデータストレージサブユニットである。オリジネータでデータを受信する一方で、例えば、データストリームはフロントエンド・デバイスによって読み出される。データはデータセグメントに分けられ、適当なセグメント識別子(ID)が生成される。また、フロントエンド・デバイスはデータセグメントをチェックするなどの機能を実行し、どんな重複したセグメントも受信されないことを証明する。データストリームが再構築されるためにデータセグメントがどのようにしてデータストリームでアレンジされるかの記録は、フロントエンド・デバイスで保持されたり、又は1以上のノード内に記憶される。
【0015】
データセグメントは適当なコンテイナーにパックされ、それらの対応するオフセット及びセグメントIDがメタデータ部に記録される。メタデータ部は多数のオフセット/セグメント識別子(ID)組を含む。オフセットはデータセグメントの開始のオフセットを示す。セグメントIDはシステムセグメントを識別するために用いられる。幾つかの実施例において、データセグメントを唯一に識別する指紋又は修正された指紋が用いられる。このコンテイナーを識別するコンテイナーID、コンテイナーが現在存在するノードを識別するカレントノードID(すなわち、コンテイナーが移動させられる宛先ノード)、そしてコンテイナーが前に存在していたノードを識別する前ノードID(すなわち、コンテイナーが移動させられたソースノード)とがメタデータ部に含まれる。コンテイナーID、カレントノードID、前ノードIDは、複製中、コンテイナー再分配プロセスを容易にするために用いられる。
【0016】
図5A−5Cは、データを再分配する例示のシナリオを示す一連の図であり、新たなノードの結果がシステムに加えられる。
図5Aにおいて、データ複製システム100はオリジネータ・システム102とレプリカ・システム104とを含むように構成される。オリジネータ・システムで、データコンテイナー115,117,119はオリジネータノード112a,112b,112cでそれぞれ分配される。各ノードは更に追加のコンテイナー(不図示)を含む。オリジネータ・システムをミラーするレプリカ・システムで、対応する複製データコンテイナー125,127,129がレプリカノード112a,112b,112cで分配される。これらのレプリカコンテイナーはオリジネータから以前にコピーされていた。オリジネータ・システム内のフロントエンド・デバイス、ノード、データコンテイナーなどのオリジネータコンポーネントは、この例ではレプリカ・システムのものとは異なるラベル/IDを有するように示されているが、幾つかの実施例において、オリジネータコンポーネントと、レプリカでの対応する部分は同じ識別子を共有する。レプリカ・システムによりオリジネータコンポーネントとレプリカでの対応する部分とが関連できるかぎりにおいて、様々な識別子スキームが用いられる。
【0017】
図5Bにおいて、新しいノード112dがオリジネータ・システムに追加され、対応の新たなノード122dもまたレプリカ・システムに追加される。その結果、オリジネータ・システム及びレプリカ・システムに記憶されるデータは再び均衡(バランス)が図られるべきである。この例の場合、プロセス200がオリジネータ・システム102で生じる。詳しくいうと、オリジネータ・システムにおいて、コンテイナー115,117,119を再分配する。これらのコンテイナーをレプリカに再送信するというよりも、データ分配情報を決定する。このケースにおいて、コンテイナー115,117,119は新たなノード112dへ移動されていた。したがって、データ再分配情報は再分配されるコンテイナーに関係するメタデータのコンパクトセットを含み、具体的にはコンテイナーのID、コンテイナーが前に存在していた各ノードのID、そしてコンテイナーが再分配され現在存在するカレントノードのIDを含む。コンテイナー内のシステムセグメントなどの実際のバックアップデータは、本例においては送信されず、そしてバンド幅を一定に保つ。
【0018】
図5Cにおいて、本例において、レプリカ・システム104でプロセス300が生じる。データ再分配情報をオリジネータ・システムから受信すると、レプリカ・システムのシステムコンテイナーは、データ再分配情報に従って再分配される。この例において、フロントエンドデバイス120は再分配情報を受信し且つ構文解析をし、そして対応するコンテイナーがオリジネータに再分配されるのと同じ方法でデータコンテイナーを再分配するようレプリカノードを調整(コーディネート)する。与えられたデータ再分配に基づき、(コンテイナー115,117,119にそれぞれ対応する)データコンテイナー125,127,129は新たなノード122dへ移動する。
【0019】
また、上述したプロセスは負荷バランスに応じて実行されるようにしてもよい。一実施例において、ノード112a−c及び122a−cが既存ノードであり、ノード112d及び122dもまた、新たに追加されたノードというよりは既存ノードである。あまりに多くのデータがノード112a,112b,112cに記憶され、そしてノード112d及び122dに記憶されているデータが充分でないということを決定したとする。
図5A−5Cに記載したものと同様のプロセスが、データを再分配し、様々なノードに記憶されたデータの量をバランスすることを実行する。データ再分配情報を用いることによって、データコンテイナーはネットワークを介して送信する必要はなく、そして負荷バランスが迅速に効率的に達成され得る。
【0020】
上述した実施例は理解を明確にする目的から詳細に述べたものであるが、本発明はこの提供した詳細に限定されるものではない。本発明を実現する多くの代替方法がある。開示された実施例は例示的なものであり、制限的なものではない。