web-dev-qa-db-ja.com

NFS over OpenVPN:最高のパフォーマンスブースター

2つのVPSがあります。1つは2008Server R2を実行しており、もう1つはUbuntu12.04のインストールです。 Quickbooksや他のいくつかのアプリのRDセッションにWindowsVPSを使用しており、UbuntuVPSをNFSファイルストアおよびOpenVPNエンドポイントとして使用しています。問題は、VPNを介したNFSのパフォーマンスがまったくひどいことです。これは、接続すらできず、頻繁にタイムアウトすることを意味します。

トンネルの外部でNFSを設定した場合、パフォーマンスは問題ありません...あまり良くありませんが、管理しやすいので、VPNトンネルであることがわかります。

パフォーマンスを向上させるために試してみることができるopenvpnまたはNFSの微調整はありますか?

1
user970638

私はipsecリンクを介して最適なNFSパフォーマンスを得るためにすべての調整を行いましたが、「ls/mnt/remote1/etc」はまだ12.5秒かかりました。 (私は280ms離れており、13Mbps/2Mbpsが私の最も遅いリンクです)

いくつか検索した後、私は代わりにWebDAVに出くわしました。クライアントでwebdavとdavfs2を使用してApacheを使用し、共有をマウントしています。この設定では、lsが12.5秒から1.5秒になり、10Mbpsのダウンロード速度が得られます。今とても使える。

ルートアクセスが必要な場合は、「CFLAGS = -DBIG_SECURITY_HOLE」を使用してApacheをビルドする必要があります。すべてのユーザーがrootアクセス権を持っているので、これは私にとっては問題ありません。また、ipsecトンネルを介してのみwebdavを提供しています。

2
Jason Separovic

試すべきいくつかのこと:

OpenVPNの次のオプションを見てください:fragment、mssfix、link-mtu。基本的に、パケットサイズと断片化に関係するすべてのもの。 VPNパケットが小さすぎると、NFSパケットがフラグメント化されてパフォーマンスが低下する可能性があります。 OTOH、VPNパケットが大きすぎると、一部のルーターがそれらを適切に処理しないため、パフォーマンスが低下する可能性があります。ここで単純で一般的なルールを描くのは難しいです。

OpenVPNで圧縮を有効/無効にして、それがパフォーマンスにどのように影響するかを確認してください。

VPNサーバーがTCPではなくUDPをトランスポートに使用していることを確認してください。

NFSクライアント側で、オプション(retrans、rsize、wsize)、またはパケットサイズとエラー処理に関連するその他のものを確認します。状況によっては、パケットサイズを小さくすると、実際にパフォーマンスが向上する場合があります(LANでは、通常、その逆になります)。

この種の問題に対する確実な答えはありませんが、問題は上記の領域にある可能性があります。

2
Florin Andrei

私はADSL接続でopenvpnを使用してNFS構成で遊んだことがあり、さまざまなNFSマウントオプションを試しました。ここで完全な投稿を見つけることができます: NFS over OpenVPN over ADSL(または低速接続)

ここで興味深い部分を引用します。私は多くの投稿を読み、提案された解決策の合理的なサブセットを試しました。これは最良のヒントの要約です。

  • mTUサイズよりも小さいNFSパケットサイズを使用します(デフォルトは8Kバイト、新しい値は1500バイト未満である必要があり、1024バイトを提案する人はほとんどいません)
  • nFSを使用TCP接続タイプ; ADSL/WANでUDPを使用しない
  • nFS非同期オプションを使用する
  • 非常に小さなタイムアウトを設定しないでください。デフォルトの60秒(timeo = 600)のままにするか..私も10秒(timeo = 100)で成功しました
  • ハードマウントオプションを使用して、intrオプションを追加しましょう

Linuxユーザー向けに、ソフトマウントのfstab構成例を次に示します。

servername:/shared/     /mnt/foldername/  nfs     rw,suid,dev,soft,exec,nouser,async,noauto,timeo=100,user,rsize=1024,wsize=1024,tcp 0 0 

そしてここで、ハードマウントの場合:

rw,suid,dev,intr,exec,nouser,async,noauto,timeo=100,user,rsize=1024,wsize=1024,tcp 0 0 

NFS over vpn + adslはまだ劇的に遅いです(現時点では約150 KB /秒でファイルを転送していますが、これは提案された変更がない場合よりもはるかに優れています)。私の7MbitADSLのダウンロード帯域幅は800KB /秒であると考えてください。

PS:共有してくれてありがとう、openvpnの断片化も後でチェックします。私の調査結果も役立つことを願っています。

PS2:これらのヒントは私の環境ではうまく機能し、異なる人から2つの肯定的なフィードバックを得ました。

1
Fabiano Tarlao

Fabiano Tarlaoからのこれらのヒントは非常に役立ちます: https://thegoodcodeinn.blogspot.be/2015/06/nfs-over-openvpn-over-adslor-slow.html?showComment=1488621905080#c2984550821264645538

このカーネルパラメータを、OpenVPNサイト間トンネルを介したCasperNetbootで使用します。

NFSOPTS=tcp,intr,timeo=100,rsize=1024,wsize=1024