web-dev-qa-db-ja.com

クラスタファイルシステムはどのようにして競合状態を回避しますか?

クラスタファイルシステムは、無数の競合状態をどのように回避しますか?

マスター-マスターアーキテクチャでクラスターファイルシステムを使用する方法を理解しようとしています。私は特にGlusterFSについて考えているので、その実装の詳細は大歓迎ですが、一般的な答えを期待しています。

2
Craig Younkins

GlusterFSプロセスは、「トランスレーター」と呼ばれる積み重ねられたモジュラー機能ユニットで構成されます。ロックトランスレータはサーバースタックの一部としてロードされ、競合する可能性のある操作はこのトランスレータによって同期されます。

デフォルトでは、gluster CLIは、GlusterFSサーバースタックの一部として「features/locks」トランスレーターを含む構成を生成します。

1
Vijay

さまざまなクラスターファイルシステムがこれをさまざまな方法で処理します。基本的に、問題は、同時アクセスシナリオで他の共有データ構造(スレッドセーフ構造など)を処理するようなものです。ディスクアクセス上のデータは、RAMに格納されているデータよりも桁違いに潜在的で、アクセスが遅くなります(帯域幅が少なくなります)。そのため、クラスターファイルシステムで同時実行性を処理するために使用されるアルゴリズムは適切に調整されます。

たとえば、VERTIAS Cluster Filesystemのような「従来の」クラスターファイルシステムは、ロックマネージャーとマスター/スレーブプロセス(フェンシングメカニズムを使用)を使用して、ディスク上のメタデータの一貫性を維持します。

個人的には、GlusterFSを使用したことがなく、インテリジェントなコメントを作成するのに十分なアーキテクチャに精通しているとは言えません。私がそれについて読んでいることから、GlusterFSは、「従来の」クラスターファイルシステム(複数のクライアントが同じものに直接アクセスしている)ではなく、個々のストレージノード上の基盤となる非クラスター化ファイルシステムを「接着」するための素晴らしいメカニズムのようです。ブロックデバイス)。ここでいくつかの良い詳細を得ることができます(これらの詳細が最新バージョンでどの程度最新であるかはわかりませんが): http://www.raidinc.com/pdf/whitepapers/wp-gfs-architecture。 pdf

0
Evan Anderson