ネットワーク共有をキャッシュするNFSサーバーをセットアップする方法は?


14

ユーザーデータは、2つのかなり大きな(1 PBを超える)OpenStack Swiftストレージクラスターに保存されます。それらをクラスターAおよびクラスターBとします。

さらに、そのデータとやり取りする必要があるPoPがいくつかあります。これらのPoPのサーバーは事実上ディスクレスです。つまり、ユーザーデータがサーバーに保存されたりダウンロードされたりすることはありません。PoPは、一般的な世界の地域北米南アフリカ中央ヨーロッパなど)にグループ化できます。

一部のPoPは、任意のクラスターのSwiftエンドポイントからかなり離れているため、望ましくない遅延が発生します。これをある程度緩和するために、各リージョンにキャッシングゲートウェイサーバーをセットアップします。これにより、最も近いクラスターへのr / w要求がキャッシュされます。

現在、PoPのいずれかのクライアントは、Swift Object Storageをブロックデバイス(多かれ少なかれ)としてマウントするFUSEモジュールである、永続的にマウントされた迅速な仮想ファイルシステムによってユーザーデータにアクセスします。ただし、そもそもsvfsは安定しているわけではなく、将来的にはクライアントはNFS経由でキャッシュサーバーにアクセスする必要があります。

これは、目的のアーキテクチャの1つのブランチの図です。

+------------------+                +------------------+    NFS   +------------------+
|    Cluster A     |     SVFS       |  Region 1 Cache  +---------->  R1 PoP a Client |
|                  +---------------->                  |          |                  |
|Persistent Storage|                |Ephemeral  Storage+----+     |Generates R/W Load|
+-----------------++                +------------------+    |     +------------------+
                  |                                         |
                  |                 +------------------+    | NFS +------------------+
                  |      SVFS       |  Region 2 Cache  |    +----->  R1 PoP b Client |
                  +----------------->                  |          |                  |
                                    |Ephemeral  Storage|          |Generates R/W Load|
                                    +------------------+          +------------------+

NFSとsvfsのセットアップ基本に精通しています

質問は次のとおりです。利用可能なすべてのリソース(指定されたキャッシュパーティション、RAM)を使用して、svfsマウントポイントに書き込む前にできるだけ積極的かつできるだけ多くのデータをキャッシュするようにキャッシュサーバーを設定するにどうすればよいですか?基本的には、Linuxでディレクトリをキャッシュするにはどうすればよいですか?

可能であれば、キャッシュをクラスターに書き込む必要がある場合にスループットを最大化し、レイテンシーを最小化するために、読み取りと書き込みを統合し、可能であればFUSE要求のブロックサイズを少なくとも128kにする必要があります。

補遺1:いくつかのサーバーでクラスターマウントモジュールをsvfsからS3QLに切り替えました。S3QLのキャッシュにより、パフォーマンスが少し改善されました。完全を期すために、パフォーマンスデータの取得を試みます。


あなたは、NFSクライアント上のFS-キャッシュを有効にしようとすることができます:cyberciti.biz/faq/...
kofemann

serverfault.com/a/441443/345699をご覧ください。おそらくこれはあなたの探求に役立つでしょう
スティーブンK7FAQ

回答:


1

固有のLinuxメカニズム(cachefsakaなどcachefilesd)が機能せず、予算がある場合は、WAFS(広域ファイルサービス)を調べることができます。これらは、NFS(およびCIFS)の積極的なキャッシュ用に設計されたデバイスであり、WANリンクに通常含まれるレイテンシーを隠そうとします。


1

私はこの分野の専門家ではありません(しかし、確かに興味深いです!)。

最近私が探していたのは、主にLVMのdm-cacheであり、そのキャッシュ部分にSSDがあります。以下に、概要を説明したreadhatのサンプルテキストを示しますが、RHとは関係ありません。https://www.redhat.com/en/blog/improving-read-performance-dm-cache

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.