JP5776267B2 - 分散ファイルシステム - Google Patents

分散ファイルシステム Download PDF

Info

Publication number
JP5776267B2
JP5776267B2 JP2011072790A JP2011072790A JP5776267B2 JP 5776267 B2 JP5776267 B2 JP 5776267B2 JP 2011072790 A JP2011072790 A JP 2011072790A JP 2011072790 A JP2011072790 A JP 2011072790A JP 5776267 B2 JP5776267 B2 JP 5776267B2
Authority
JP
Japan
Prior art keywords
incremental data
computer node
file system
node
data
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
JP2011072790A
Other languages
English (en)
Other versions
JP2012208649A (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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP2011072790A priority Critical patent/JP5776267B2/ja
Priority to EP12156479.3A priority patent/EP2506165A3/en
Priority to US13/430,575 priority patent/US8943022B2/en
Priority to CN201210090278.3A priority patent/CN102737098B/zh
Publication of JP2012208649A publication Critical patent/JP2012208649A/ja
Application granted granted Critical
Publication of JP5776267B2 publication Critical patent/JP5776267B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • G06F16/184Distributed file systems implemented as replicated file system

Description

本発明は分散ファイルシステムに関し、特にネットワークで接続された複数の計算機ノード間でファイルシステムの増分データを転送することによりファイルシステムの多重化を行う分散ファイルシステムに関する。
高信頼型の分散ファイルシステムでは、マスターファイルシステムと同一の内容を持つ複製ファイルシステムを作成し、マスターファイルシステムが格納されている計算機ノードとは別の計算機ノードに複製ファイルシステムを格納する多重化が採用される。このような分散ファイルシステムでは、ファイルに対する更新は、マスターファイルシステムに行うと共に、その更新内容を複製ファイルシステムに対して反映することで、ファイルシステムの多重化を維持する。この分散ファイルシステムでは、マスターおよび複製の何れかが壊れた場合でも、ファイルシステムの内容を他方から復元することができる。また複製ファイルシステムを複数作成しておくことにより、より高い信頼性を確保することができる。
マスターとなるデータの複製を複数の計算機ノードに作成する方法の一例が特許文献1の図10に記載されている。特許文献1に記載の技術では、複製データを有する複数の計算機ノードは、数珠繋ぎに接続されている。マスター計算機上のデータの更新にあわせて、複製データを有する複数の計算機ノードのうちの先頭の1つの計算機ノード上の複製データが更新される。次に、この先頭の計算機ノードから2番目の計算機ノードに対してデータが転送され、2番目の計算機ノード上の複製データが更新される。同様の動作が最後尾の計算機ノードまでリレー転送によって繰り返される。
特開2007−200086号公報
上述したリレー転送による多重化方法は、特定の計算機ノードに負荷が集中することを避けることができる。しかし、複製データを有する複数の計算機ノード間の通信に遅延が生じると、計算機ノードの記憶部に下流に送出できないデータが大量に滞留する。この滞留したデータは、下流に送出しない限り削減することは困難である。
本発明の目的は、上述した課題、すなわちリレー転送による多重化方法では途中の計算機ノードに滞留したデータは下流に送出しない限り削減することは困難である、という課題を解決する分散ファイルシステムを提供することにある。
本発明の一形態にかかる分散ファイルシステムは、
第1のファイルシステムを有する第1の計算機ノードと、上記第1の計算機ノードに通信可能に接続され、上記第1のファイルシステムの複製である第2のファイルシステムを有する第2の計算機ノードと、上記第2の計算機ノードに通信可能に接続され、上記第1のファイルシステムの複製である第3のファイルシステムを有する第3の計算機ノードとを有し、
上記第1の計算機ノードは、変更および追加がある毎または定期的に上記第1のファイルシステムのデータのうち前回から変更および追加されたデータを増分データとして生成する増分データ生成手段と、第1の記憶手段と、上記増分データ生成手段で生成された上記増分データを上記第1の記憶手段に記憶すると共に上記第2の計算機ノードに送信する第1の制御手段とを有し、
上記第2の計算機ノードは、第2の記憶手段と、上記第1の計算機ノードから受信した上記増分データを上記第2の記憶手段に記憶すると共に上記第2のファイルシステムに反映し、さらに上記第3の計算機システムに送信する第2の制御手段とを有し、
上記第3の計算機ノードは、第3の記憶手段と、上記第2の計算機ノードから受信した上記増分データを上記第3の記憶手段に記憶すると共に上記第3のファイルシステムに反映する第3の制御手段とを有し、
上記第2の制御手段は、上記第3の計算機ノードに上記増分データを送信している最中に、上記送信中の上記増分データ以降の複数回分の上記増分データが上記第2の記憶手段に蓄積された場合、上記複数回分の上記増分データを1つの増分データにマージする、といった構成を採る。
本発明は上述した構成を有するため、途中の計算機ノードに滞留したデータを下流に送出することなく削減することが可能になる。
本発明の第2の実施形態の構成説明図である。 本発明の第2の実施形態におけるノードのブロック図である。 本発明の第2の実施形態におけるスナップショット状態遷移図である。 本発明の第2の実施形態における中間ノード遅延状態時のスナップショット状態遷移図である。 本発明の第2の実施形態におけるノード離脱時のスナップショット状態遷移図である。 本発明の第2の実施形態におけるノード復帰時のスナップショット状態遷移図である。 本発明の第2の実施形態におけるサーバプロセスの処理例を示すフローチャートである。 本発明の第2の実施形態における先頭ノードのスナップショット制御プロセスの処理例を示すフローチャートである。 本発明の第2の実施形態における中間ノードのスナップショット制御プロセスの処理例を示すフローチャートである。 本発明の第2の実施形態における末端ノードのスナップショット制御プロセスの処理例を示すフローチャートである。 本発明の第2の実施形態における転送要求パケットの説明図である。 本発明の第2の実施形態におけるノードリストの説明図である。 本発明の第2の実施形態におけるネクストホップの説明図である。 本発明の第2の実施形態におけるネクストホップの説明図である。 本発明の第1の実施形態のブロック図である。 本発明の第1の実施形態における増分データとそのマージ処理の説明図である。
次に本発明の実施の形態について図面を参照して詳細に説明する。
[第1の実施形態]
図15を参照すると、本発明の第1の実施形態にかかる分散ファイルシステムは、計算機ノード110と、この計算機ノード110とネットワークを通じて通信可能に接続された計算機ノード120と、この計算機ノード120とネットワークを通じて通信可能に接続された計算機ノード130とを有する。
計算機ノード110は、マスターとなるファイルシステム111と、変更および追加がある毎または定期的にファイルシステム111のデータのうち前回から変更および追加されたデータを増分データとして生成する増分データ生成手段112と、記憶手段113と、増分データ生成手段112で生成された増分データを記憶手段113に記憶すると共に計算機ノード120に送信する制御手段114とを有する。
増分データ生成手段112は、変更および追加がある毎または定期的にファイルシステム111のイメージであるスナップショットを取得し、今回取得したスナップショットと前回取得したスナップショットとの差分を増分データとして算出するようにしてよい。また増分データは、ファイルシステムを構成するブロックのうち、前回から変更および追加のあったブロックのみを有するものとしてよい。
例えば、ファイルシステム111が合計4個のブロックから構成され、n回目、n+1回目、n+2回目に取得したスナップショットが図16に示すような内容になっていたとする。図16において、A0〜D0、A1、A2、B1は各ブロックの内容を示す。すなわち、n回目に取得したスナップショットでは、ブロック1〜4はそれぞれA0〜D0という内容であり、n+1回目のスナップショットでは、ブロック1、2がA0、B0からA1、B1という内容に変わっており、n+2回目では、ブロック1がさらにA2という内容に変わっているとする。このとき、nとn+1との増分データは、A1の内容を有するブロック1と、B1という内容を有するブロック2とを有する。また、n+1とn+2との増分データは、A2という内容を有するブロック1を有する。
計算機ノード120は、ファイルシステム111の複製となるファイルシステム121と、記憶手段123と、計算機ノード110から受信した増分データを記憶手段123に記憶すると共にファイルシステム121に反映し、さらに計算機ノード130に送信する制御手段124とを有する。また制御手段124は、計算機ノード130に増分データを送信している最中に、送信中の上記増分データ以降の複数回分の増分データが記憶手段123に蓄積されたことを検出すると、その複数回分の増分データを1つの増分データにマージする機能を有する。
制御手段124は、第1の増分データとこの第1の増分データの次に受信した第2の増分データとをマージし、第1および第2の増分データの何れか一方にのみ含まれるブロックと、双方に含まれるブロックについては第2の増分データのブロックのみを含む増分データを生成してよい。例えば図16に示したnとn+1との増分データと、n+1とn+2との増分データとをマージした増分データは、A2の内容を有するブロック1と、B1という内容を有するブロック2とを有する。
計算機ノード130は、ファイルシステム111の複製となるファイルシステム131と、記憶手段133と、計算機ノード120から受信した増分データを記憶手段133に記憶すると共にファイルシステム131に反映する制御手段134とを有する。
次に本実施形態の動作を説明する。
計算機ノード110の増分データ生成手段112は、ファイルシステム111に変更および追加がある毎、または定期的に、ファイルシステム111のデータのうち前回から変更および追加されたデータを増分データとして生成する。制御手段114は、増分データ生成手段112で生成された増分データを記憶手段113に記憶すると共に、計算機ノード120に送信する。
計算機ノード120の制御手段124は、計算機ノード110から増分データを受信すると、受信した増分データを記憶手段123に記憶すると共に、ファイルシステム121に反映する。さらに制御手段124は、上記受信した増分データを計算機ノード130に送信する。
計算機ノード130の制御手段134は、計算機ノード120から増分データを受信すると、受信した増分データを記憶手段133に記憶すると共に、ファイルシステム131に反映する。
上述のように、ファイルシステム111の増分データが、ファイルシステム121、131に反映されることにより、ファイルシステム121、131はファイルシステム111と同じ内容を維持する。
また、計算機ノード120と計算機ノード130とを接続する通信ネットワークの混雑等が原因で、増分データの通信に長時間を要すると、計算機ノード120が計算機ノード130に増分データを送信している最中に、新たな増分データが計算機ノード110から計算機ノード120に送信されてきて、記憶手段123に蓄積されていく。制御手段124は、送信中の増分データ以降の複数回分の増分データが記憶手段123に記憶されていることを検出すると、その複数回分の増分データを1つの増分データにマージする。その後、制御手段124は、送信中の増分データの送信が終了すると、記憶手段123から上記マージ後の増分データを読み出して計算機ノード130へ送信する。
計算機ノード130の制御手段134は、計算機ノード120から上記マージ後の増分データを受信すると、受信したマージ後の増分データを記憶手段133に記憶すると共に、ファイルシステム131に反映する。
このように本実施形態によれば、途中の計算機ノードに滞留したデータを下流に送出することなく削減することが可能になる。例えば、図16に示した例では、nとn+1との増分データと、n+1とn+2との増分データとをマージすることにより、滞留するデータ量を2/3に削減することができる。
また本実施形態によれば、下流に送出する増分データの数およびデータ量がマージによって削減されるため、より短時間で末端の計算機ノードまで増分データを届けることができる。これにより、ファイルシステムの多重化を早期に維持することが可能になる。
[第2の実施形態]
[本実施形態の特徴]
本実施形態の特徴は、ネットワークで接続されたノード間において、ファイルシステムのスナップショットを効率的にリレー転送して、ファイルシステムの多重化を維持する方式である。
[本実施形態が解決しようとする課題]
ファイルシステムの多重化を行うためにファイルシステムの或る時点のイメージとその次の時点のイメージとの増分である増分スナップショット(以下、単にスナップショットと記す)を送信し、ノード間のデータ同期をとる技術は存在した。しかし、中継ノードがスナップショットを送信中に、上位ノードから次々にスナップショットを受信した場合、送信すべきスナップショット数が増加し、その分だけコスト(ディスク容量、スナップショット数、通信数)が増え、効率的ではなく、保存するスナップショット数を減らし効率良く管理する必要があった。
[本実施形態による解決手段]
本実施形態では、管理するスナップショットを最大限に少なくし、効率的なスナップショットリレー転送を提供する。また、ネットワークからノードの離脱時および復帰時に、各ノードが動的にノードの親子関係を決定し、同期する。そのため、スナップショットリレーノードを無限にスケールすることが可能となる。具体的には、リレーノード機能種別に、先頭ノード機能、中間ノード機能、末端ノード機能、の3種類を備え、各ノードは親ノードと子ノードのみ通信するモデルを定義する。ノード機能の単位は、ファイルシステムごとに提供する。詳細は後述する。
[本実施形態の構成]
本実施形態の構成について説明する。全体の構成は図1を参照する。システムは複数のコンピュータ装置で構成される。コンピュータ装置はスナップショット制御プロセスの制御を行う1つのサーバプロセスを持つ。コンピュータ装置は単数および複数のディスク装置を持つ。ディスク装置には単数および複数のファイルシステムを持つ。1つのファイルシステム上には複数のスナップショットを構成することができる。1つのファイルシステムにつき、1つのスナップショット制御プロセスを持つ。
制御情報の受信および、ノード構成は、1台〜y台で構成する。1台の場合は、転送処理を実施しない。2台の場合は、先頭ノードと末端ノード機能のみで構成される。3台以上の場合は、先頭ノードと中間ノード、および末端ノードの機能で構成される。
リレーノード機能については、図2を参照する。サーバプロセス210は制御情報を受信する制御情報送受信部211、およびスナップショット制御プロセス情報を管理するスナップショット制御プロセスリスト212を持つ。
スナップショット制御プロセス220は、ノード情報を管理するノードリスト221、スナップショットを取得するスナップショット取得部222、スナップショットを確認するスナップショット確認部223、スナップショットを削除するスナップショット削除部224、転送制御情報を送信する制御情報送信部225、およびそれらを管理するスナップショット制御部226を持つ。
スナップショットを受信するスナップショット受信部230、スナップショトを送信するスナップショット送信部231は、スナップショット制御プロセスの機能であっても良いし、ファイルシステムなどの外部機能であっても良い。
ディスク装置240は、単数および複数のファイルシステム241を持ち、1つのファイルシステム上には複数のスナップショット242を構成することができる。
[本実施形態の動作の説明]
■動作シーケンス
1.サーバプロセス
まず図2を参照し、各プロセス機能について説明する。サーバプロセス210は、システム開始時、管理対象ファイルシステム数分スナップショット制御プロセス220を起動する。管理対象ファイルシステムがx個あれば、スナップショット制御プロセス220もx個起動する。管理するスナップショット制御プロセス220のリストをスナップショット制御プロセスリスト212に保存する。
スナップショット制御プロセス220が意図せず停止した場合は、プロセスを再起動する。システム停止時、スナップショット制御プロセスリスト212を参照し、起動したx個のスナップショット制御プロセスを停止する。
2.スナップショット制御プロセス
2.1.先頭ノードのスナップショット送信シーケンス
次に図2、図3、図7、図8を参照し、先頭ノードの動作シーケンスについて説明する。スナップショット制御プロセス220の各処理はスナップショット制御部226(以降、制御部226)が制御する。
制御部226は、定期的に、あるいはファイルシステムに書き込みがあったことを契機に、スナップショット取得部222に対してスナップショット取得要求を命令する。スナップショット取得部222はファイルシステム241に対してスナップショット取得を実行する。
スナップショットを取得すると、ファイルシステム241には今回送信分スナップショット(n)が保存され、前回送信分は、前回送信分スナップショット(n-1)として保存される。制御部226は、スナップショット送信部231に対して、子ノードへの今回送信分スナップショット(n)の送信要求を命令する。スナップショット送信部231は、送信要求を受信すると、当該スナップショットを子ノードへ送信する。
スナップショット(n)の送信が完了すると、制御部226は制御情報送信部225を経由して、子ノードへの今回分スナップショット(n)の転送要求を送信する。サーバプロセス210の制御情報送受信部211は子ノードからの転送要求結果を受信し、当該スナップショット制御プロセス220の制御部226に結果を伝える。転送要求結果が成功の場合は、次のスナップショット取得転送サイクルに移る。転送要求結果が失敗の場合は、前回送信分スナップショット(n-1)および今回送信分スナップショット(n)を保存する。
2.2.中間ノードのスナップショット転送シーケンス
次に図2、図3、図7、図9を参照し、中間ノードの動作シーケンスについて説明する。スナップショット制御プロセス220の各処理はスナップショット制御部226(以降、制御部226)が制御する。
スナップショット受信部230はスナップショット(n)を受信すると、ファイルシステム241にスナップショットを適用する。これにより、親ノードと自ノードのファイルシステム241の同期がとられる。
次にサーバプロセス210の制御情報送受信部211が、転送要求を受信し、制御部226に伝える。制御部226が転送要求を受信すると、スナップショット確認部223に対して、スナップショット確認要求を命令する。スナップショット確認部223は当該スナップショットが保存されているかどうかファイルシステム241を確認する。保存されていれば、制御部226はスナップショット送信部231にスナップショット送信要求を命令する。この送信要求は非同期で実行され、送信要求命令後は送信完了を待たずに処理を戻す。制御部226はサーバプロセス210の制御情報送受信部211を経由して、転送要求結果を親ノードに送信する。
スナップショット(n)の送信が完了すると、制御部226は制御情報送信部225を経由して、子ノードへ今回送信分スナップショット(n)の転送要求を送信する。サーバプロセス210は子ノードからの転送要求結果を受信し、当該スナップショット制御プロセス220の制御部226に結果を伝える。転送要求結果が成功の場合は、制御情報送信部225を経由して、前回送信分スナップショット(n-1)の削除要求を親ノードに命令する。転送要求結果が失敗の場合は、前回送信分スナップショット(n-1)および今回送信分スナップショット(n)を保存する。
次に図2、図4、図7、図9を参照し、中間ノードがスナップショット送信中にスナップショットを受信した場合のシーケンスを説明する。サーバプロセス210の制御情報送受信部211が、転送要求を受信し、制御部226に伝える。このときスナップショット送信中に制御部226が転送要求を受信すると、スナップショット確認部223に対して、スナップショット確認要求を命令する。このとき、前回受信分スナップショット(n+1)が存在していなければ、当該の今回受信分スナップショットが保存されていることを確認し、制御部226はサーバプロセス210の制御情報送受信部211を経由し、転送要求結果を親ノードに送信する。前回受信分スナップショット(n+1)が存在していれば、当該の今回受信分スナップショットが保存されていることを確認し、制御部226はスナップショット削除部224に前回受信分スナップショット(n+1)削除要求を命令する。この場合スナップショット(n)を送信中なので、スナップショット削除部224は、前回受信分スナップショット(n+1)と今回受信分スナップショット(n+2)とをマージしたデータで、今回受信分スナップショット(n+2)を置き換え、当該スナップショット(n+1)の削除を実行する。加えて、制御情報送信部225を経由し、前回受信分スナップショット(n+1)の削除要求を親ノードに命令する。処理完了後、制御部226はサーバプロセス210の制御情報送受信部211を経由し、転送要求結果を親ノードに送信する。
2.3. 末端ノードのスナップショット受信シーケンス
次に図2、図3、図7、図10を参照し、末端ノードの動作シーケンスについて説明する。スナップショット制御プロセス220の各処理はスナップショット制御部226(以降、制御部226)が制御する。
スナップショット受信部230はスナップショット(n)を受信すると、ファイルシステム241にスナップショットを適用する。これにより、親ノードと自ノードのファイルシステム241の同期がとられる。
次にサーバプロセス210の制御情報送受信部211が、転送要求を受信し、制御部226に伝える。制御部226が転送要求を受信すると、スナップショット確認部223に対して、スナップショット確認要求を命令する。スナップショット確認部223は当該スナップショットが保存されているかどうかファイルシステム241を確認する。このとき、転送する子ノードが存在しないので、転送処理は実行しない。保存されていれば、制御部226はスナップショット削除部224に前回受信分スナップショット(n-1)削除要求を命令する。スナップショット削除部224は、当該スナップショットの削除を実行する。次に制御情報送信部225を経由し、前回受信分スナップショット(n-1)の削除要求を親ノードに命令する。処理完了後、制御部226はサーバプロセス210の制御情報送受信部211を経由し、転送要求結果を親ノードに送信する。
2.4.共通シーケンス
取得転送サイクルとは非同期で、サーバプロセス210の制御情報送受信部211は子ノードから前回送信分スナップショット(n-1)の削除要求を受信する。受信した場合、当該スナップショット制御プロセス220の制御部226に削除要求を命令し、制御部226はスナップショット削除部224に当該スナップショット削除要求を命令する。スナップショット削除部は、当該スナップショットの削除を実行する。当該スナップショットの削除とは、管理情報であるスナップショットを削除するということで、ファイルシステムの実データを削除するということではない。送信中スナップショットが存在した場合は、段落0045にあるようにマージ処理を実行する。
取得転送サイクルとは非同期で、サーバプロセス210の制御情報送受信部211はノードステータス変更要求を受信する。受信した場合、当該スナップショット制御プロセス220の制御部226にノードステータス変更要求を命令し、制御部226はノードリスト221の当該ノードステータスを変更する。
3.ノード離脱時のシーケンス
図5を参照し、ノード離脱時のシーケンスを説明する。図5の例では中間ノード2から子ノード3への転送中にノード3がノード群から離脱した場合のシーケンスである。スナップショット送信中にノード3がノード群から離脱(例えば、ノードダウン)した場合、送信中スナップショット(n)および前回送信分スナップショット(n-1)を削除しないよう保存し、ノードリストのノード3のステータスを異常状態にする。また、親ノード1に対して当該スナップショット保存およびノード3のステータス変更要求を送信する。
このように、前回送信分スナップショット(n-1)および送信中スナップショット(n)の両方を保存する。この2つのスナップショットを保存する理由は、ノード3へスナップショット送信が完了したかどうかノード3離脱時点では不明なためである。離脱したノード3がノード群へ復帰する時に、ノード3の持つ最新のスナップショットは、ノード2、ノード1が保存しておいた2つのスナップショットのいずれかとなり、そのスナップショットを起点に再同期することが可能になる。
スナップショット保存後は、サイクル処理を継続する。ノード2は次のプライオリティの子ノードが存在すればスナップショット転送を行う。図5の例では、ノード2に子ノードが存在しないため、ノード2はノード群の末端ノード機能で動作する。
4.ノード復帰時のシーケンス
次に図6を参照し、ノード復帰のシーケンスを説明する。図6の例ではノード3がノード2に対して復帰要求を送信した場合のシーケンスである。ノード3は自身の持つ最新スナップショット(n-1)を起点に、ノード2に対し復帰要求を送信する。ノード2は復帰要求を受信すると、保存スナップショット(n-1)を起点に前回受信分スナップショット(n)までの差分同期を実行する。
この差分同期とは非同期で、ノード1からノード2へスナップショットが送信され、サイクル処理を実行する。このとき、差分同期実行中は、前回受信分スナップショット(n)は削除対象から外れる。
ノード2とノード3との差分同期が完了後、ノード2は中間ノードに昇格、ノード3を末端ノードとしてノード群に加える。また、ノード3のスナップショット(n-1)およびスナップショット(n-2)を削除、親ノード2に対し保存スナップショット(n-1)および保存スナップショット(n-2)の削除要求およびステータス変更要求を送信する。
ノード2は、保存スナップショットの削除要求およびステータス変更要求を受信すると、当該スナップショットを削除し、ノード3のステータスを正常に変更する。処理が完了すると、親ノード1に対して当該スナップショットの削除要求およびステータス変更要求を送信する。
ノード1は、保存スナップショットの削除要求およびステータス変更要求を受信すると、当該スナップショットを削除し、ノード3のステータスを正常に変更する。このとき、削除処理とは非同期でノード1とノード2間のサイクル処理は継続している。
差分同期完了後、ノード2がスナップショット(n+2)の転送要求を受信した場合、当該スナップショットが保存されているかどうかファイルシステムを確認し、保存されていれば、前回受信分スナップショット(n+1)の削除を実行し、親ノード1に対して前回受信分スナップショット(n+1)の削除要求を送信する。処理完了後、ノード3へスナップショット(n+2)を送信する。この送信は非同期で実行され、転送要求の処理結果を親ノード1に返す。
送信中のスナップショット(n+2)の送信が完了すると、ノード2からノード3に対してスナップショット(n+2)の転送要求を送信する。ノード3で当該スナップショットが保存されていることを確認し、前回受信分スナップショット(n)を削除する。ノード2への転送要求結果に加えて、ノード3からノード2に対し前回受信分スナップショット(n)の削除要求を送信する。ノード2は転送要求結果を受信すると、親ノード1に対して前回送信分スナップショット(n)の削除要求を送信する。以上の処理を実行し、全ノードで同期がとれた定常状態に戻る。
■補足
1.転送要求パケットについて
図11を参照し、転送要求パケットについて説明する。転送要求パケットには次を含む。
コンピュータ装置上で一意なファイルシステム名またはそれを示すIDなど。
転送対象のスナップショット名またはそれを示すIDなど。
送信元ノード名またはIPアドレスなど送信元ノードを示すもの。
既に受信したノードに転送要求することを防止する未送信ノードビット。
未送信ノードビットは、ビットがノード順になっており、先頭ノードが転送要求送信時に、送信すべきノードのビットを1にする。中間ノードは転送時に自身のビットを0にして、子ノードへ転送要求を送信する。
2.ノードリストについて
図11を参照し、ノードリストについて説明する。各ノードはそれぞれノード群に登録されているノードリストを保持するが、全ノードのステータス管理を行うのではなく、自身の親ノードおよび子ノードのステータスのみ管理する。子ノードに対してデータを送信できなかった場合、ノード群から離脱したとみなし、子ノードのステータスを異常状態にする。親ノードからの通信が異常終了した場合は、親ノードのステータスを異常状態にする。また、ノード群から離脱したノードからのステータス変更要求を受けて、当該ノードのステータスを正常にする。
3.ネクストホップについて
図12を参照し、ネクストホップについて説明する。転送要求パケットの未送信ノードビットのサイズ次第でデータ転送可能ノード数が決まる。ネクストホップアドレスを設定している場合は、ノード群の末端ノードは中間ノード機能で動作し、ネクストホップアドレスへスナップショットを転送する。通常、ネクストホップアドレスは次のノード群の仮想IPアドレスを指定する。物理IPアドレスを指定しても良い。次のノード群のネクストホップアドレスを持つノードは中間ノード機能で動作する。
図12の場合、先頭ノード1-1のスナップショットをノード1-4まで順に転送し、ノード1-4は中間ノード機能で動作し、ネクストホップアドレスへ転送する。ネクストホップアドレスを持つノード2-1は中間ノード機能で動作し、スナップショットをノード2-4まで順に転送する。ノード2-4は末端ノードとして動作する。
次に図13を参照し、ノード異常が発生した場合について説明する。図13は、ノード群の末端ノードが離脱、および次のノード群の先頭ノードが離脱した場合の例である。ノード1-4が離脱しているので、ネクストホップへの転送処理はノード1-4の親にあたるノード1-3が代行する。ノード2-1が離脱しているので、ネクストホップアドレスはノード2-1の子ノードにあたるノード2-2が保持し、処理を代行する。
[本実施形態の効果]
1.複数ノードでデータ同期をとることができ、単数または複数ノードに障害が発生した場合も、残りのノードでデータを利用することができる。
2.スナップショット機能を持つあらゆるファイルシステムについて本発明を利用することが出来る。
[他の実施形態]
1.スナップショット機能を持つ様々なファイルシステムが本発明の対象となる。
2.転送対象はファイルシステムのスナップショットだけでなく、全ての差分保存機能を持つデータが対象となる。
3.データは暗号化して送信することもできる。
4.データは圧縮して送信することもできる。
5.障害発生後のアプリケーション切り替えにHAクラスタソフトウェアを利用することで、業務停止時間を最小限にすることができる。
以上本発明の実施形態について説明したが、本発明は以上の実施形態にのみ限定されず、その他各種の付加変更が可能である。また、本発明の分散ファイルシステムを構成する計算機ノードの制御手段は、コンピュータとプログラムとで実現することができる。プログラムは、磁気ディスクや半導体メモリなどのコンピュータ読み取り可能な記録媒体に記録されて提供され、コンピュータの立ち上げ時などにコンピュータに読み取られ、そのコンピュータの動作を制御することにより、そのコンピュータ上に第1の実施形態における制御手段などを実現する。
110、120、130…計算機ノード
111…ファイルシステム(マスター)
112…増分データ生成手段
113、123、133…記憶手段
114、124、134…制御手段
121、131…ファイルシステム(複製)

Claims (8)

  1. 第1のファイルシステムを有する第1の計算機ノードと、前記第1の計算機ノードに通信可能に接続され、前記第1のファイルシステムの複製である第2のファイルシステムを有する第2の計算機ノードと、前記第2の計算機ノードに通信可能に接続され、前記第1のファイルシステムの複製である第3のファイルシステムを有する第3の計算機ノードとを有し、
    前記第1の計算機ノードは、変更および追加がある毎または定期的に前記第1のファイルシステムのデータのうち前回から変更および追加されたデータを増分データとして生成する増分データ生成手段と、第1の記憶手段と、前記増分データ生成手段で生成された前記増分データを前記第1の記憶手段に記憶すると共に前記第2の計算機ノードに送信する第1の制御手段とを有し、
    前記第2の計算機ノードは、第2の記憶手段と、前記第1の計算機ノードから受信した前記増分データを前記第2の記憶手段に記憶すると共に前記第2のファイルシステムに反映し、さらに前記第3の計算機ノードに送信する第2の制御手段とを有し、
    前記第3の計算機ノードは、第3の記憶手段と、前記第2の計算機ノードから受信した前記増分データを前記第3の記憶手段に記憶すると共に前記第3のファイルシステムに反映する第3の制御手段とを有し、
    前記第2の制御手段は、前記第1の計算機ノードから新たな前記増分データを受信したとき、前記新たな増分データ以前の前記増分データを前記第3の計算機ノードに送信している最中でなければ、前記新たな増分データを前記第3の計算機ノードへ送信し、前記新たな増分データ以前の前記増分データを前記第3の計算機ノードに送信している最中であれば、前記新たな増分データを前記第2の記憶手段に記憶すると共に前記新たな増分データの前記第3の計算機ノードへの送信を保留にし、前記送信中の前記増分データ以降の複数回分の前記増分データが前記第2の記憶手段に蓄積された場合、前記複数回分の前記増分データを1つの増分データにマージする
    ことを特徴とする分散ファイルシステム。
  2. 前記増分データ生成手段は、変更および追加がある毎または定期的に前記第1のファイルシステムのイメージであるスナップショットを取得し、今回取得したスナップショットと前回取得したスナップショットとの差分を前記増分データとして算出する
    ことを特徴とする請求項1に記載の分散ファイルシステム。
  3. 前記増分データ生成手段が生成する前記増分データは、前記第1のファイルシステムを構成するブロックのうち、前回から変更および追加のあったブロックのみを有する
    ことを特徴とする請求項1または2に記載の分散ファイルシステム。
  4. 前記第2の制御手段は、前記第2の記憶手段に蓄積される前記複数回分の前記増分データのうち、一番早く受信した増分データを第1の増分データ、該第1の増分データの次に受信した増分データを第2の増分データとするとき、前記第1および第2の増分データの何れか一方にのみ含まれるブロックを含み、双方に含まれるブロックについては前記第2の増分データのブロックのみを含む増分データを、前記第1および第2の増分データをマージした増分データとして生成する
    ことを特徴とする請求項1ないし3の何れかに記載の分散ファイルシステム。
  5. 前記第2の制御手段は、前記第2の記憶手段に蓄積される前記複数回分の前記増分データに、前記第2の増分データの次に受信した第3の増分データが含まれる場合、前記第1および第2の増分データをマージした増分データに、さらに前記第3の増分データをマージする
    ことを特徴とする請求項4に記載の分散ファイルシステム。
  6. 第1のファイルシステムを有する第1の計算機ノードと、前記第1の計算機ノードに通信可能に接続され、前記第1のファイルシステムの複製である第2のファイルシステムを有する第2の計算機ノードと、前記第2の計算機ノードに通信可能に接続され、前記第1のファイルシステムの複製である第3のファイルシステムを有する第3の計算機ノードとを有し、前記第1の計算機ノードは増分データ生成手段と第1の記憶手段と第1の制御手段とを有し、前記第2の計算機ノードは第2の記憶手段と第2の制御手段とを有し、前記第3の計算機ノードは第3の記憶手段と第3の制御手段とを有する分散ファイルシステムが実行する多重化方法であって、
    前記第1の計算機ノードの前記増分データ生成手段が、変更および追加がある毎または定期的に前記第1のファイルシステムのデータのうち前回から変更および追加されたデータを増分データとして生成し、
    前記第1の計算機ノードの前記第1の制御手段が、前記増分データ生成手段で生成された前記増分データを前記第1の記憶手段に記憶すると共に前記第2の計算機ノードに送信し、
    前記第2の計算機ノードの前記第2の制御手段が、前記第1の計算機ノードから受信した前記増分データを前記第2の記憶手段に記憶すると共に前記第2のファイルシステムに反映し、さらに前記第3の計算機ノードに送信し、
    前記第3の計算機ノードの前記第3の制御手段が、前記第2の計算機ノードから受信した前記増分データを前記第3の記憶手段に記憶すると共に前記第3のファイルシステムに反映し、
    前記第2の計算機ノードの前記第2の制御手段が、前記第1の計算機ノードから新たな前記増分データを受信したとき、前記新たな増分データ以前の前記増分データを前記第3の計算機ノードに送信している最中でなければ、前記新たな増分データを前記第3の計算機ノードへ送信し、前記新たな増分データ以前の前記増分データを前記第3の計算機ノードに送信している最中であれば、前記新たな増分データを前記第2の記憶手段に記憶すると共に前記新たな増分データの前記第3の計算機ノードへの送信を保留にし、前記送信中の前記増分データ以降の複数回分の前記増分データが前記第2の記憶手段に蓄積された場合、前記複数回分の前記増分データを1つの増分データにマージする
    ことを特徴とする分散ファイルシステムにおける多重化方法。
  7. 上流側計算機ノードと下流側計算機ノードとに通信可能に接続され、
    マスターファイルシステムの複製である複製ファイルシステムと、
    記憶手段と、
    前記マスターファイルシステムのデータのうち前回から変更および追加されたデータを含む増分データを前記上流側計算機ノードから受信して前記記憶手段に記憶すると共に前記複製ファイルシステムに反映し、さらに前記下流側計算機ノードに送信する制御手段であって、前記上流側計算機ノードから新たな前記増分データを受信したとき、前記新たな増分データ以前の前記増分データを前記下流側計算機ノードに送信している最中でなければ、前記新たな増分データを前記下流側計算機ノードへ送信し、前記新たな増分データ以前の前記増分データを前記下流側計算機ノードに送信している最中であれば、前記新たな増分データを前記記憶手段に記憶すると共に前記新たな増分データの前記下流側計算機ノードへの送信を保留にし、前記送信中の前記増分データ以降の複数回分の前記増分データが前記記憶手段に蓄積された場合、前記複数回分の前記増分データを1つの増分データにマージする制御手段と
    を有することを特徴とする計算機ノード。
  8. 上流側計算機ノードと下流側計算機ノードとに通信可能に接続され、マスターファイルシステムの複製である複製ファイルシステムと、記憶手段とを有するコンピュータを、
    前記マスターファイルシステムのデータのうち前回から変更および追加されたデータを含む増分データを前記上流側計算機ノードから受信して前記記憶手段に記憶すると共に前記複製ファイルシステムに反映し、さらに前記下流側計算機ノードに送信する制御手段であって、前記上流側計算機ノードから新たな前記増分データを受信したとき、前記新たな増分データ以前の前記増分データを前記下流側計算機ノードに送信している最中でなければ、前記新たな増分データを前記下流側計算機ノードへ送信し、前記新たな増分データ以前の前記増分データを前記下流側計算機ノードに送信している最中であれば、前記新たな増分データを前記記憶手段に記憶すると共に前記新たな増分データの前記下流側計算機ノードへの送信を保留にし、前記送信中の前記増分データ以降の複数回分の前記増分データが前記記憶手段に蓄積された場合、前記複数回分の前記増分データを1つの増分データにマージする制御手段
    として機能させるためのプログラム。
JP2011072790A 2011-03-29 2011-03-29 分散ファイルシステム Active JP5776267B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2011072790A JP5776267B2 (ja) 2011-03-29 2011-03-29 分散ファイルシステム
EP12156479.3A EP2506165A3 (en) 2011-03-29 2012-02-22 Distributed file system
US13/430,575 US8943022B2 (en) 2011-03-29 2012-03-26 Distributed file system
CN201210090278.3A CN102737098B (zh) 2011-03-29 2012-03-28 分布式文件系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011072790A JP5776267B2 (ja) 2011-03-29 2011-03-29 分散ファイルシステム

Publications (2)

Publication Number Publication Date
JP2012208649A JP2012208649A (ja) 2012-10-25
JP5776267B2 true JP5776267B2 (ja) 2015-09-09

Family

ID=45656390

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011072790A Active JP5776267B2 (ja) 2011-03-29 2011-03-29 分散ファイルシステム

Country Status (4)

Country Link
US (1) US8943022B2 (ja)
EP (1) EP2506165A3 (ja)
JP (1) JP5776267B2 (ja)
CN (1) CN102737098B (ja)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5862246B2 (ja) * 2011-11-30 2016-02-16 富士通株式会社 データ管理プログラム、データ管理方法およびストレージ装置
JP6056408B2 (ja) * 2012-11-21 2017-01-11 日本電気株式会社 フォールトトレラントシステム
US8983961B2 (en) 2012-11-29 2015-03-17 International Business Machines Corporation High availability for cloud servers
US10664548B2 (en) * 2013-07-12 2020-05-26 Trading Technologies International, Inc. Tailored messaging
CN103645970B (zh) * 2013-12-13 2017-04-19 华为技术有限公司 一种远程复制多快照间增量去重的实现方法及装置
CN105335218A (zh) * 2014-07-03 2016-02-17 北京金山安全软件有限公司 一种基于本地的流式计算方法及流式计算系统
US11030056B2 (en) * 2014-10-20 2021-06-08 Hitachi Vantara Llc Data system for managing synchronized data protection operations at nodes of the data system, source node and destination node, and computer program product for use in such data system
US10168916B2 (en) * 2014-11-02 2019-01-01 Infinidat Ltd. System, method and a non-transitory computer readable medium for reduction of consumption of storage system resources
CN105653551B (zh) * 2014-11-14 2019-01-11 阿里巴巴集团控股有限公司 分布式系统中数据更新和统计的方法及其装置
CN104657483B (zh) * 2015-02-28 2018-06-15 华为技术有限公司 处理事务的方法、处理节点、中心节点和集群
CN107277111B (zh) * 2017-05-19 2018-09-04 腾讯科技(深圳)有限公司 一种集群数据处理方法、主节点、从节点和集群
CN107491529B (zh) * 2017-08-18 2020-05-08 华为技术有限公司 一种快照删除方法及节点
CN108322533B (zh) * 2018-01-31 2019-02-19 广州鼎甲计算机科技有限公司 基于操作日志的分布式集群节点间配置同步方法
US11277455B2 (en) 2018-06-07 2022-03-15 Mellanox Technologies, Ltd. Streaming system
CN109491980A (zh) * 2018-11-02 2019-03-19 郑州云海信息技术有限公司 一种文件系统远程复制方法、装置、设备及存储介质
US11625393B2 (en) 2019-02-19 2023-04-11 Mellanox Technologies, Ltd. High performance computing system
EP3699770A1 (en) 2019-02-25 2020-08-26 Mellanox Technologies TLV Ltd. Collective communication system and methods
US11409715B2 (en) * 2019-10-04 2022-08-09 Hewlett Packard Enterprise Development Lp Maintaining high-availability of a file system instance in a cluster of computing nodes
US11750699B2 (en) 2020-01-15 2023-09-05 Mellanox Technologies, Ltd. Small message aggregation
US11252027B2 (en) * 2020-01-23 2022-02-15 Mellanox Technologies, Ltd. Network element supporting flexible data reduction operations
US11876885B2 (en) 2020-07-02 2024-01-16 Mellanox Technologies, Ltd. Clock queue with arming and/or self-arming features
US11556378B2 (en) 2020-12-14 2023-01-17 Mellanox Technologies, Ltd. Offloading execution of a multi-task parameter-dependent operation to a network device
US11922237B1 (en) 2022-09-12 2024-03-05 Mellanox Technologies, Ltd. Single-step collective operations

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5729743A (en) * 1995-11-17 1998-03-17 Deltatech Research, Inc. Computer apparatus and method for merging system deltas
US6209002B1 (en) * 1999-02-17 2001-03-27 Emc Corporation Method and apparatus for cascading data through redundant data storage units
US7739240B2 (en) * 2002-12-09 2010-06-15 Hewlett-Packard Development Company, L.P. Replication and replica management in a wide area file system
JP5420242B2 (ja) * 2005-06-24 2014-02-19 シンクソート インコーポレイテッド 高性能な企業データ保護のためのシステムおよび方法
JP4800031B2 (ja) * 2005-12-28 2011-10-26 株式会社日立製作所 ストレージシステム及びスナップショット管理方法
JP5050358B2 (ja) 2006-01-27 2012-10-17 日本電気株式会社 データ複製システムおよびデータ複製方法
JP4942418B2 (ja) * 2006-08-04 2012-05-30 株式会社日立製作所 計算機システム及びそのスナップショット作成方法
CN101064730A (zh) * 2006-09-21 2007-10-31 上海交通大学 计算机网络数据文件本地和远程的备份方法
TWI476610B (zh) * 2008-04-29 2015-03-11 Maxiscale Inc 同級間冗餘檔案伺服器系統及方法
JP5147570B2 (ja) * 2008-07-02 2013-02-20 株式会社日立製作所 ストレージシステム及びリモートコピー復旧方法
US8180730B2 (en) * 2008-11-25 2012-05-15 International Business Machines Corporation Arbitration token for managing data integrity and data accuracy of information services that utilize distributed data replicas
US9495382B2 (en) * 2008-12-10 2016-11-15 Commvault Systems, Inc. Systems and methods for performing discrete data replication
CN101594256A (zh) * 2009-06-05 2009-12-02 成都市华为赛门铁克科技有限公司 容灾方法、装置和系统
CN101650677A (zh) * 2009-07-27 2010-02-17 浪潮电子信息产业股份有限公司 一种基于Delta增量的文件数据备份方法
US8591529B2 (en) 2009-10-01 2013-11-26 Covidien Lp Wound closure device including direct-driven needle
US8744997B2 (en) * 2010-02-09 2014-06-03 Google Inc. Pruning of blob replicas
US9015126B2 (en) * 2010-05-22 2015-04-21 Nokia Corporation Method and apparatus for eventually consistent delete in a distributed data store

Also Published As

Publication number Publication date
EP2506165A3 (en) 2014-07-30
CN102737098B (zh) 2017-11-10
JP2012208649A (ja) 2012-10-25
EP2506165A2 (en) 2012-10-03
CN102737098A (zh) 2012-10-17
US20120254110A1 (en) 2012-10-04
US8943022B2 (en) 2015-01-27

Similar Documents

Publication Publication Date Title
JP5776267B2 (ja) 分散ファイルシステム
JP4719318B2 (ja) データの複製管理方法及びシステム
US9934242B2 (en) Replication of data between mirrored data sites
JP4728031B2 (ja) リモートコピーペアの移行を行うシステム
WO2014059804A1 (zh) 数据同步方法及系统
CN105426439A (zh) 一种元数据的处理方法和装置
JP2005174196A (ja) 複数の記憶システムを有するデータ処理システム
CN101388759A (zh) 实现数据的异步复制到同步复制的转换方法和系统
CN111787055B (zh) 一种基于Redis且面向事务机制和多数据中心的数据分发方法和系统
KR20190049266A (ko) 네트워크에서 메타데이터의 동기화를 제어하는 장치 및 그 방법
US7797571B2 (en) System, method and circuit for mirroring data
CN113010496A (zh) 一种数据迁移方法、装置、设备和存储介质
JP6511739B2 (ja) 冗長システムおよび冗長化方法
JP2006323663A (ja) 情報処理システムとレプリケーション方法並びに差分情報保持装置とプログラム
JP2012008934A (ja) 分散ファイルシステム及び分散ファイルシステムにおける冗長化方法
CN111506453B (zh) 磁盘快照创建方法、装置、系统和存储介质
JP4997784B2 (ja) データ記憶システム、データ記憶方法、データ記憶プログラム
JP5867902B2 (ja) データベースの非同期レプリケーション方式
JP6318902B2 (ja) 冗長システムおよび冗長化方法
WO2016063461A1 (ja) クラスタシステム、クラスタノード、クラスタ制御方法及びコンピュータ可読媒体
JP6511737B2 (ja) 冗長システム、冗長化方法および冗長化プログラム
JP4721057B2 (ja) データ管理システム,データ管理方法及びデータ管理用プログラム
KR101748912B1 (ko) 분산 저장 환경에서 데이터 저장 시스템 및 데이터 저장 시스템이 포함하는 클러스터의 업그레이드, 확장 및 축소를 위한 클러스터 관리 방법
JP5011728B2 (ja) ホットスタンバイ方式を採用したシステム及びそれに用いる同期方法
CN115396454A (zh) 数据复制方法、装置、存储节点及可读存储介质

Legal Events

Date Code Title Description
RD07 Notification of extinguishment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7427

Effective date: 20120719

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140207

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140811

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140826

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20141014

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20150127

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150421

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20150428

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150622

R150 Certificate of patent or registration of utility model

Ref document number: 5776267

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150