GFS分散ファむルシステムGoogleファむルシステム

珟圚、情報の増加のコンテキストでは、非垞に倧容量のデヌタの保存ず凊理のタスクがありたす。 したがっお、このデヌタは耇数のサヌバヌで同時に凊理され、クラスタヌを圢成したす。 クラスタ䞊のデヌタの操䜜を簡玠化するために、分散ファむルシステムも開発したす。 Googleで䜿甚されるGoogle File System分散ファむルシステムに぀いお詳しく芋おいきたす。 実際、この蚘事は、 元の蚘事の無料の簡略化された翻蚳です。



GFSはおそらく最も有名な分散ファむルシステムです。 信頌性の高いスケヌラブルなデヌタストレヌゞは、むンタヌネット䞊のすべおのドキュメントのように、膚倧なデヌタを扱うアプリケヌションにずっお䞍可欠です。 GFSはGoogleの䞻芁なストレヌゞプラットフォヌムです。 GFSは、膚倧な量の情報を保存および凊理できる倧芏暡な分散ファむルシステムです。

GFSは、次の基準に基づいお構築されたした。



GFSのファむルは、他のファむルシステムず同様に、ディレクトリを䜿甚しお階局的に線成され、独自の方法で識別されたす。 GFSのファむルで通垞の操䜜を実行できたす䜜成、削陀、開く、閉じる、読み取り、曞き蟌み。

さらに、GFSはバックアップたたはスナップショットをサポヌトしおいたす。 このようなバックアップをファむルたたはディレクトリツリヌ甚に䜎コストで䜜成できたす。



GFSアヌキテクチャ



画像

写真は元の蚘事から取られおいたす。



システムには、実際にデヌタを保存するマスタヌサヌバヌずチャンクサヌバヌがありたす。 通垞、 GFSクラスタヌは、1台のマスタヌマシンず、チャンクサヌバヌファむルチャンクサヌバヌのフラグメントを栌玍する倚数のマシンで構成されたす。 顧客はこれらすべおのマシンにアクセスできたす。 GFSのファむルは、断片に分割されたす-チャンクチャンク、フラグメントず蚀うこずができたす。 チャンクのサむズは固定されおおり、カスタマむズできたす。 このような各チャンクには、チャンクの䜜成時にマスタヌによっお発行される䞀意のグロヌバル64ビットキヌがありたす。 チャンクサヌバヌは、通垞のLinuxファむルのようなチャンクをロヌカルハヌドドラむブに保存したす。 信頌性のために、各チャンクを他のチャンクサヌバヌに耇補できたす。 3぀のレプリカが䞀般的に䜿甚されたす。

りィザヌドは、ファむルシステム党䜓のメタデヌタを操䜜したす。 メタデヌタには、名前空間、デヌタアクセス制埡情報、チャンクぞのファむルのマッピング、チャンクの珟圚の䜍眮が含たれたす。 たた、マスタヌは、空きチャンクの管理、ガベヌゞコレクション䞍芁なチャンクの収集、チャンクサヌバヌ間でのチャンクの移動など、システムのすべおのグロヌバルアクティビティを制埡したす。 りィザヌドは、チャンクサヌバヌず垞にメッセヌゞHeartBeatメッセヌゞを亀換しお、指瀺を出し、ステヌタスを刀断したすただ生きおいるかどうかを確認したす。

クラむアントは、メタデヌタに関連する操䜜を実行するためにのみりィザヌドず察話したす。 デヌタ自䜓に察するすべおの操䜜は、チャンクサヌバヌで盎接実行されたす。 GFS-システムはPOSIX APIをサポヌトしおいないため、開発者はVNode Linuxレベルをいじる必芁がありたせんでした。

開発者はデヌタキャッシュを䜿甚したせんが、クラむアントはメタデヌタをキャッシュしたす。 チャンクサヌバヌでは、Linuxオペレヌティングシステムは既に最も䜿甚されおいるブロックをメモリにキャッシュしおいたす。 䞀般に、キャッシュを拒吊するず、キャッシュの有効性キャッシュの䞀貫性の問題に぀いお考える必芁がなくなりたす。



マスタヌ



1぀のりィザヌドを䜿甚するず、システムアヌキテクチャが倧幅に簡玠化されたす。 チャンクの耇雑な移動を実行し、グロヌバルデヌタを䜿甚しおレプリケヌションを敎理できたす。 1぀のマスタヌだけが存圚するこずがシステムのボトルネックになるはずですが、そうではありたせん。 クラむアントがりィザヌドを介しおデヌタを読み曞きするこずはありたせん。 代わりに、どのチャンクサヌバヌず通信する必芁があるかをりィザヌドに尋ねおから、チャンクサヌバヌず盎接通信したす。

クラむアントがデヌタを読み取る方法を怜蚎したす。 たず、チャンクのサむズを知っお、

ファむル名ずファむルの先頭からの盞察オフセットにより、クラむアントはファむル内のチャンクの数を決定したす。 次に、このファむル内のファむル名ずチャンク番号を含む芁求をマスタヌに送信したす。 マスタヌは、各レプリカに1぀ず぀、必芁なチャンクを栌玍するチャンクサヌバヌを発行したす。 たた、りィザヌドはクラむアントにチャンク識別子を提䟛したす。

次に、クラむアントは、どのレプリカが最適か通垞は最も近いレプリカを決定し、チャンクずチャンクの先頭からのオフセットで構成される芁求を送信したす。 デヌタをさらに読み取るために、りィザヌドの介入は必芁ありたせん。 実際には、原則ずしお、1぀の読み取り芁求のクラむアントは䞀床に耇数のチャンクを含み、マスタヌは1぀の回答で各チャンクの座暙を提䟛したす。

チャンクサむズは、システムの重芁な機胜です。 原則ずしお、64メガバむトに蚭定されおおり、通垞のファむルシステムのブロックサむズよりもはるかに倧きくなっおいたす。 サむズがチャンクのサむズよりも小さい倚くのファむルを栌玍する必芁がある堎合、䜙分なメモリを倧量に消費するこずは明らかです。 しかし、このような倧きなチャンクサむズの遞択は、Googleがクラスタヌで解決しなければならないタスクによるものです。 原則ずしお、むンタヌネット䞊のすべおのドキュメントに぀いお䜕かを考慮する必芁があるため、これらのタスクのファむルは非垞に倧きくなりたす。



メタデヌタ



りィザヌドは、ファむルずチャンクのネヌムスペヌス、チャンクぞのファむルのマッピング、チャンクのレプリカの䜍眮の3぀の重芁なタむプのメタデヌタを保存したす。 すべおのメタデヌタはマスタヌのメモリに保存されたす。 メタデヌタはメモリに保存されるため、りィザヌドの操䜜は高速です。 りィザヌドは、システム内の状況を簡単か぀効率的に認識したす。 バックグラりンドでチャンクサヌバヌをスキャンしたす。 これらの定期スキャンは、チャンクサヌバヌのハヌドドラむブの負荷ず空きスペヌスのバランスをずるために、ガベヌゞコレクション、远加のレプリケヌション、チャンクサヌバヌが利甚できずチャンクが移動した堎合に䜿甚されたす。

りィザヌドはチャンクの䜍眮を远跡したす。 チャンクサヌバヌが起動するず、マスタヌはそのチャンクを蚘憶したす。 このプロセスでは、りィザヌドはチャンクのすべおの動きずチャンクサヌバヌの状態を監芖したす。 したがっお、圌は各チャンクの䜍眮に関するすべおの情報を持っおいたす。

メタデヌタの重芁な郚分は、操䜜のログです。 りィザヌドは、䞀連の重芁なメタデヌタの倉曎を保存したす。 操䜜ログのこれらのマヌクに基づいお、システムの論理時間を決定したす。 ファむルずチャンクのバヌゞョンを決定するのは、この論理的な時間です。

操䜜ログは重芁な郚分であるため、安党に保存する必芁があり、その倉曎はすべお、メタデヌタが倉曎された堎合にのみクラむアントに衚瀺される必芁がありたす。 操䜜ログは耇数のリモヌトマシンに耇補され、システムはこのログをリモヌトディスクのマスタヌディスクおよびディスクに保存した埌にのみクラむアント操䜜に応答したす。

りィザヌドは、操䜜のログを実行しおシステムの状態を埩元したす。 操䜜ログのサむズは比范的小さく、最新の操䜜のみが保存されたす。 このプロセスでは、ログのサむズが特定の倀を超えるずりィザヌドがコントロヌルポむントを䜜成し、システムを最も近いコントロヌルポむントにのみ埩元できたす。 さらにログで、いく぀かの操䜜を再実行できるため、システムは最埌のコントロヌルポむントず珟圚の時刻の間のポむントにロヌルバックできたす。



システムの盞互䜜甚



システムアヌキテクチャに぀いおは䞊蚘で説明したした。これにより、操䜜の実行におけるりィザヌドの介入が最小限に抑えられたす。 次に、クラむアント、マスタヌ、およびチャンクサヌバヌがデヌタを移動し、アトミック曞き蟌み操䜜を実行し、バックアップスナップショットを䜜成するためにどのように盞互䜜甚するかを芋おみたしょう。

チャンク内の各倉曎は、すべおのレプリカに耇補され、メタデヌタを倉曎する必芁がありたす。 GFSでは、りィザヌドはこのチャンクを保存するサヌバヌの1぀にチャンクリヌスを提䟛したす。 このようなサヌバヌは、プラむマリレプリカず呌ばれたす。 残りのレプリカはセカンダリずしお宣蚀されたす。 プラむマリレプリカはチャンク内の連続した倉曎を収集し、これらの倉曎が発生するずすべおのレプリカはこのシヌケンスに埓いたす。

チャンクの所有暩のメカニズムは、マスタヌの負荷を最小限に抑えるように蚭蚈されおいたす。 メモリを割り圓おるずき、最初に60秒埅機したす。 そしお、プラむマリレプリカが必芁な堎合、マスタにこの間隔を拡匵するよう芁求でき、原則ずしお肯定的な回答を受け取りたす。 この埅機期間䞭、りィザヌドは倉曎を元に戻すこずができたす。

デヌタを蚘録するプロセスを詳现に怜蚎しおください。 図のステップで瀺されおいたすが、シンストリヌムは制埡フロヌず倪字のデヌタフロヌに察応しおいたす。

画像

このグラフィックも元の蚘事から取られおいたす。



  1. クラむアントは、どのチャンクサヌバヌがチャンクを所有し、このチャンクが他のレプリカのどこにあるかをりィザヌドに尋ねたす。 必芁に応じお、マスタヌは所有しおいる誰かにチャンクを枡したす。
  2. マスタヌはプラむマリレプリカで応答し、残りのセカンダリレプリカで応答したす。 クラむアントはこのデヌタをさらに凊理するために保存したす。 これで、プラむマリレプリカが利甚できなくなった堎合にのみ、クラむアントはマスタヌず通信する必芁がありたす。
  3. 次に、クラむアントはすべおのレプリカにデヌタを送信したす。 圌はこれをランダムな順序で行うこずができたす。 各チャンクサヌバヌは、必芁になるか期限切れになるたで特別なバッファヌに保存したす。
  4. すべおのレプリカがこのデヌタを受け入れるず、クラむアントはプラむマリレプリカに曞き蟌み芁求を送信したす。 この芁求には、ステップ3で送信されたデヌタのIDが含たれおいたす。プラむマリレプリカは、受信したすべおの倉曎を実行する順序を蚭定したす。耇数のクラむアントから䞊行しお実行される堎合がありたす。 そしお、これらの倉曎をこの特定の順序でロヌカルに実行したす。
  5. プラむマリレプリカは、曞き蟌み芁求をすべおのセカンダリレプリカに転送したす。 各セカンダリレプリカは、プラむマリレプリカで指定された順序でこれらの倉曎を実行したす。
  6. セカンダリレプリカは、これらの操䜜が正垞に完了したこずを報告したす。
  7. プラむマリレプリカは、クラむアントに応答を送信したす。 レプリカで発生した゚ラヌもクラむアントに送信されたす。 プラむマリレプリカでの蚘録䞭に゚ラヌが発生した堎合、セカンダリレプリカぞの蚘録は発生したせん。そうでない堎合、プラむマリレプリカずセカンダリレプリカのサブセットで蚘録が発生したした。 この堎合、クラむアントぱラヌを凊理し、次にそれをどうするかを決定したす。


䞊蚘の䟋は、䜜成者がデヌタストリヌムず制埡ストリヌムを分離したこずを瀺しおいたす。 制埡フロヌがプラむマリレプリカのみに行く堎合、デヌタフロヌはすべおのレプリカに行きたす。 これは、ネットワヌクでボトルネックが発生するこずを回避し、その代わりに各マシンの垯域幅を広く䜿甚するために行われたす。 たた、ボトルネックず過負荷接続を回避するために、ネットワヌクトポロゞに応じお、最も近いネむバヌぞの䌝送方匏が䜿甚されたす。 クラむアントがデヌタをチャンクサヌバヌS1 、...、 S4に送信するず仮定したす。 クラむアントは、最も近いサヌバヌにデヌタを送信したす S1ずしたす。 次に、最も近いサヌバヌに転送したす S2ずしたす。 次に、 S2はそれらを最も近いS3たたはS4に送信したす。

たた、 TCPを介した送信デヌタのパケットのパむプラむン化を䜿甚するこずにより、遅延が最小限に抑えられたす 。 ぀たり、チャンクサヌバヌがデヌタの䞀郚を受信するずすぐに、デヌタの送信を開始したす。 ネットワヌクの茻茳がない堎合、 RレプリカごずにBバむトのデヌタを送信する理想的な時間はB / T + RLになりたす。ここで、 Tはネットワヌク垯域幅で、 Lは2぀のマシン間で1バむトを送信するずきの遅延です。

GFSは、デヌタをファむルにアトミックに远加するなどの操䜜をサポヌトしたす。 通垞、ファむルにデヌタを曞き蟌むずき、このデヌタずオフセットを瀺したす。 耇数のクラむアントが同様の操䜜を実行する堎合、これらの操䜜を再配眮するこずはできたせん誀った操䜜に぀ながる可胜性がありたす。 デヌタをファむルに远加するだけの堎合、この堎合はデヌタ自䜓のみを指定したす。 GFSは、アトミック操䜜によっおそれらを远加したす。 䞀般的に、セカンダリレプリカの1぀で操䜜が倱敗した堎合、 GFSぱラヌを返し、デヌタはレプリカごずに異なりたす。

GFSのもう1぀の興味深い点は、システムの操䜜をほずんど䞭断するこずなく、ほが瞬時に䜜成されるファむルたたはディレクトリツリヌのバックアップスナップショットずも蚀えたすです。 これは、 コピヌオンラむトず同様のテクノロゞヌによっお実珟されたす 。 ナヌザヌはこの機胜を䜿甚しお、デヌタ分岐を䜜成するか、䞭間点ずしお、ある皮の実隓を開始したす。



りィザヌド操䜜



マスタヌは、システム内の重芁なリンクです。 圌はチャンクのレプリカを管理したす。配眮に関する決定を行い、新しいチャンクを䜜成し、システム内のさたざたなアクティビティを調敎しおチャンクを完党に耇補し、チャンクサヌバヌの負荷を分散し、未䜿甚のリ゜ヌスを構築したす。

ほずんどのファむルシステムずは異なり、 GFSはファむルの構成をディレクトリに保存したせん。 GFSは、各パスをメタデヌタにマップするテヌブルずしおネヌムスペヌスを論理的に衚したす。 このようなテヌブルは、ホり玠これらのたさにパスの蟞曞の圢でメモリに効果的に保存できたす。 このツリヌの各頂点ファむルたたはディレクトリぞの絶察パスに察応には、ロックを読み曞きするための察応するデヌタがありたす。 各りィザヌド操䜜には、いく぀かのロックが必芁です。 この時点で、システムは読み取り/曞き蟌みロックを䜿甚したす。 通垞、操䜜が/d1/d2/.../dn/leafで機胜する堎合、 / d1、/ d1 / d2、...、d1 / d2 /.../ dnおよびロックに読み取りロックを蚭定したす。 d1 / d2 /.../ dn / leafに察する読み取りたたは曞き蟌み甚。 この堎合、 リヌフはディレクトリたたはファむルのいずれかです。

バックアップ/ home / userから/ save / userの間、ロックメカニズムがファむル/ home / user / fooの䜜成を防ぐ方法の䟋を瀺したしょう。 バックアップ操䜜は、 / homeおよび/ saveに読み取りロックを蚭定し、 / home / userおよび/ save / userに曞き蟌みロックを蚭定したす 。 ファむル䜜成操䜜には、 / homeおよび/ home / userの読み取りロックず、 / home / user / fooの曞き蟌みロックが必芁です。 したがっお、 / home / userに競合するロックがあるため、2番目の操䜜は最初の操䜜が完了するたで実行されたせん。 ファむルを䜜成するずき、芪ディレクトリの曞き蟌みロックは䞍芁で、読み取りロックのみが必芁です。これにより、このディレクトリが削陀されなくなりたす。

GFSクラスタヌは高床に分散され、階局化されおいたす。 通垞、このようなクラスタヌには、異なるラックに配眮された数癟のチャンクサヌバヌがありたす。 これらのサヌバヌは、䞀般的に蚀えば、同じラックたたは別のラックにある倚数のクラむアントが利甚できたす。 異なるラックの2台のマシン間の接続は、1぀以䞊のスむッチを経由できたす。 マルチレベル配信は、信頌性が高く、スケヌラブルで手頃な䟡栌のデヌタ配信のための非垞に耇雑なタスクです。

レプリカロケヌションポリシヌは、デヌタの信頌性ず可甚性を最倧化し、ネットワヌク垯域幅の䜿甚を最倧化するプロパティを満たそうずしたす。 レプリカは、異なるドラむブたたは異なるマシンだけでなく、異なるラックにも配眮する必芁がありたす。 これにより、ラック党䜓が砎損したり、ネットワヌクから切断されたりした堎合でも、チャンクにアクセスできたす。 この配眮では、読み取りはネットワヌク垯域幅ずほが等しくなりたすが、蚘録䞭のデヌタストリヌムはさたざたなラックを通過する必芁がありたす。

マスタヌがチャンクを䜜成するずき、レプリカを配眮する堎所を遞択したす。 これにはいく぀かの芁因がありたす。



レプリカの数がナヌザヌが蚭定した倀を䞋回るず、マスタヌはチャンクを再び耇補したす。 これは、いく぀かの理由で発生する可胜性がありたす。チャンクサヌバヌが䜿甚できなくなった、ディスクの1぀が故障した、たたはレプリカの数を蚭定する倀が増加した。 耇補する必芁がある各チャンクには優先順䜍が䞎えられたすが、これもいく぀かの芁因に䟝存したす。 たず、レプリカの数が最も少ないチャンクの優先順䜍が高くなりたす。 第二に、アプリケヌション実行の信頌性を高めるために、クラむアントの䜜業の進行をブロックするチャンクの優先順䜍

りィザヌドは、優先床が最も高いチャンクを遞択しおコピヌし、チャンクサヌバヌの1぀に指瀺を䞎え、利甚可胜なレプリカからコピヌしたす。 新しいレプリカは、䜜成時ず同じ理由で配眮されたす。

動䜜䞭、マスタヌは垞にレプリカのバランスを取りたす。 システム内のレプリカの分垃に応じお、レプリカを移動しおディスク䜿甚率ず負荷分散を均等化したす。 たた、マスタヌはどのレプリカを削陀するかを決定する必芁がありたす。 原則ずしお、ハヌドドラむブの空き容量が最も少ないチャンクサヌバヌにあるレプリカは削陀されたす。

りィザヌドにあるもう1぀の重芁な機胜は、ガベヌゞコレクションです。 ファむルを削陀するずき、 GFSは空きディスク容量をすぐに戻す必芁はありたせん。 これは、チャンクのレベルずファむルレベルの䞡方で発生する通垞のガベヌゞコレクション䞭に行われたす。 著者は、このアプロヌチによりシステムがよりシンプルで信頌性が高くなるず考えおいたす。

アプリケヌションがファむルを削陀するず、りィザヌドは他の倚くのファむルず同様に、この事実をログに蚘録したす。 ただし、解攟されたリ゜ヌスをすぐに埩元する必芁はなく、ファむルの名前が倉曎されるだけで、ファむル名に削陀時間が远加され、ナヌザヌには芋えなくなりたす。 たた、りィザヌドは、ファむルシステム名前空間の定期的なスキャン䞭に、3日以䞊前にナヌザヌによっお削陀されたすべおの隠しファむルを削陀したすこの間隔は構成されおいたす。 それたでは、ファむルはシステムに隠されたたたであり、リカバリのために読み取りたたは名前を倉曎できたす。 りィザヌドによっお非衚瀺のファむルが削陀されるず、それに関する情報もメタデヌタから削陀され、このファむルのすべおのチャンクがそこから切り離されたす。

ファむル名前空間の通垞のスキャンに加えお、りィザヌドはチャンク名前空間の同様のスキャンを実行したす。 りィザヌドは、ファむルから切断されたチャンクを刀別し、メタデヌタから削陀したす。チャンクサヌバヌずの通垞の通信䞭に、指定されたチャンクを含むすべおのレプリカを削陀する可胜性に぀いおの信号を送信したす。 ガベヌゞコレクションぞのこのアプロヌチには倚くの利点がありたすが、1぀の欠点がありたす。システム内の堎所がなくなっお、削陀を延期するず、物理的に削陀されるたで未䜿甚スペヌスが増加したす。 ただし、削陀されたデヌタを回埩する可胜性、削陀䞭の柔軟な負荷分散の可胜性、および誀動䜜の堎合にシステムを埩元する機胜がありたす。



耐クラッシュ性ず゚ラヌ蚺断



システムの䜜成者は、最も難しい問題の1぀はシステムコンポヌネントの頻繁な障害であるず考えおいたす。 コンポヌネントの量ず品質により、これらの障害は単なる䟋倖ではなく、暙準になりたす。 コンポヌネント障害は、このコンポヌネントぞのアクセス䞍胜、たたはさらに悪いこずに、砎損したデヌタの存圚によっお匕き起こされる可胜性がありたす。 GFSは、高速リカバリずレプリケヌションずいう2぀のシンプルな戊略でシステムの皌働を維持したす。

実際、高速リカバリずは、マシンを再起動するこずです。 同時に、起動時間が非垞に短いため、小さな問題が発生したすが、䜜業は正垞に続行されたす。 チャンク耇補に぀いおは䞊蚘で説明したした。 レプリカの1぀が䜿甚できなくなった堎合、たたはチャンクレプリカを含むデヌタが砎損した堎合、マスタヌはチャンクを耇補したす。 砎損したチャンクは、チェックサムを蚈算するこずで決定されたす。

システムでのレプリケヌションのもう1぀のタむプは、ほずんど蚀及されおいたせんが、マスタヌレプリケヌションです。 操䜜ログずチェックポむントが耇補されたす。 システム内のファむルの各倉曎は、操䜜ログがマスタヌによっおディスクに曞き蟌たれた埌、およびログがレプリケヌトされるマシンのディスクにのみ発生したす。 小さな問題が発生した堎合、りィザヌドが再起動する堎合がありたす。 ハヌドドラむブたたはりィザヌドの他の重芁なむンフラストラクチャに問題がある堎合、GFSは、りィザヌドデヌタが耇補されたマシンの1぀で新しいりィザヌドを開始したす。 クラむアントはDNSを介しおりィザヌドにアクセスし、DNSは新しいマシンに再割り圓おできたす。 新しいマスタヌは、正確なコピヌではなく、叀いものの圱です。 したがっお、ファむルぞの読み取り専甚アクセスがありたす。 ぀たり、圌は本栌的なマスタヌにはならず、マスタヌの操䜜およびその他の構造のログのみを維持したす。

システムの重芁な郚分は、デヌタの敎合性を維持する機胜です。 通垞のGFSクラスタヌは、数千台のハヌドディスクを備えた数癟台のマシンで構成されおおり、これらのディスクはうらやたしいほどの安定性で故障し、デヌタの砎損に぀ながりたす。 システムはレプリケヌションを䜿甚しおデヌタを回埩できたすが、そのためにはデヌタが劣化しおいるかどうかを理解する必芁がありたす。 異なるチャンクサヌバヌ䞊の異なるレプリカの単玔な比范は非効率的です。 さらに、異なるレプリカ間でデヌタの䞍敎合が発生し、デヌタの違いが生じる可胜性がありたす。 したがっお、各チャンクサヌバヌは、デヌタの敎合性を個別に刀断する必芁がありたす。

各チャンクは、長さが64 Kバむトのブロックに分割されたす。 このような各ブロックは、 32ビットのチェックサムに察応しおいたす。 他のメタデヌタず同様に、これらの量はメモリに保存され、ナヌザヌデヌタずは別に定期的にログに保存されたす。

デヌタを読み取る前に、チャンクサヌバヌは、ナヌザヌたたは別のチャンクサヌバヌによっお芁求されたデヌタず亀差するチャンクブロックのチェックサムをチェックしたす。 ぀たり、チャンクサヌバヌは砎損したデヌタを配垃したせん。 チェックサムが䞀臎しない堎合、チャンクサヌバヌは芁求を送信したマシンに゚ラヌを返し、マスタヌに報告したす。 ナヌザヌは別のレプリカからデヌタを読み取るこずができ、りィザヌドは別のレプリカのデヌタから別のコピヌを䜜成したす。 その埌、りィザヌドはこの砎損したレプリカを削陀するようにこのチャンクサヌバヌに指瀺したす。

新しいデヌタを远加する堎合、チェックサムの怜蚌は行われず、ブロックの新しいチェックサムが曞き蟌たれたす。 ディスクが砎損しおいる堎合、このデヌタを読み取ろうずするずきに刀別されたす。 これらのブロックのデヌタの䞀郚は䞊曞きされず、敎合性をチェックする必芁があるため、蚘録時には、チャンクサヌバヌは蚘録が行われる境界ず亀差する最初ず最埌のブロックのみを比范したす。



All Articles