web-dev-qa-db-ja.com

高性能のローカルエリアの「ファイル共有」プロトコルはありますか?

ほとんどのネットワーク「ファイル共有」プロトコルは、1つ以上の古く、低速で、安全ではないように思われます。最も使用されているプロトコルは、SMB、NFS、およびWebDAVのようです。

私はここに座って、SMBを介してメディアライブラリをスキャンしようとしているiTunesを見ています。それは毎秒約2MBです。有線ギガビットネットワークを介して接続されており、共有は、検索時でも50倍のスループットを実行できるRAIDアレイ上に存在します。これはばかげています!

過去のファイル共有プロトコルには、次のものが含まれる場合があります。

  • Andrew File System
  • Plan9/Infernoの9P/Styxプロトコル
  • 古いSystemVのRFS
  • AppleShareプロトコル
  • NovellNetwareプロトコル

私の要件はかなり単純です:

  • 最新のセキュリティ-理想的には、SSHのような公開鍵/秘密鍵を使用します。 TLSを介したトンネリングは素晴らしいでしょう。
  • 高性能-ファイルシステムのスキャンまたはバルクデータの読み取りは、サーバーとネットワークがサポートできる速度で実行する必要があります。
  • WindowsとLinuxのネイティブクライアント-他のクライアントは肉汁になりますが、私には興味がありません。
  • LinuxおよびWindowsと互換性のあるファイルロック。
  • LinuxおよびWindowsと互換性のある変更通知。
  • 理想的には、高品質のオープンソース実装が利用可能ですが、少額のライセンス料で大丈夫です。 (そして、いいえ、企業全体の「小さな」ではありません-私は家族と住宅ローンを持つ普通の人です)

私は何かが足りないのですか?

5
Jon Watte

NFS 4の何が問題になっていますか?

最新のセキュリティ-理想的には、SSHのような公開鍵/秘密鍵を使用します。 TLSを介したトンネリングは素晴らしいでしょう。

NFS4は最新の認証を提供します。データセキュリティはVPN経由で行う必要があります。

高性能-ファイルシステムのスキャンまたはバルクデータの読み取りは、サーバーとネットワークがサポートできる速度で実行する必要があります。

NFS 4は、一般的なケースでは妥当な高性能です。たくさんのキャッシュ、コマンドの集約など。

WindowsとLinuxのネイティブクライアント-他のクライアントは肉汁になりますが、私には興味がありません。

ここでは何も知りません。合理的な広範な解決策は、いずれかのコーナーからもたらされ、他の世界では二次市民としてのみサポートされています。それは言った:私はそれを言うのは公正だと思うSMBは、Unixの世界では(Samba経由で)サポートされています。たとえば、NFSはWindowsの世界にあります。

LinuxおよびWindowsと互換性のあるファイルロック。

NFSはあなたにこれを与えます。

LinuxおよびWindowsと互換性のある変更通知。

良い質問。 NFSがこれをうまくサポートしているとは思いません。少なくとも、私はそのようなコマンドを知りません。 (メタデータ)サーバーで何かが変更された場合、コールバックを呼び出します。

SMBで2MB /秒に?何かが正しく構成されていないはずです。 SMBは確かにそれ以上の能力があります。100MB/秒(GBのワイヤースピード)は、妥当な構成では問題ありません。

4
dmeister

世界最速のファイル共有プロトコルでは、一部のアプリがリモートファイルシステムを念頭に置いて作成されていないという事実を補うことができないため、多くの小さな読み取りまたは書き込みをディスパッチし、1回の操作を待機します。次のものを開始する前に完了します。これは、ローカルディスクの待ち時間が比較的短い場合は問題ありませんが、待ち時間がはるかに長いネットワークでは問題があります。

リモートメディアライブラリのスキャンを高速化したい場合は、サーバー上で実行されているコードにスキャンを実行させ、結果を1つの大きな塊でクライアントプロセスに報告する必要があります。

3
Spiff

マルチパスTCP LinuxおよびWindowsでサポートされています。互換性がわかりません。複数のn/wパスがある場合は、それを使用してパフォーマンスを向上させることができます。セキュリティ以上に、信頼性を探してください。書き込みキャッシュが有効になっているほとんどのキャッシュシステムは、ここで取引されます。

0
sudhakar