GNU/Linux >> Linux の 問題 >  >> Cent OS

CentOS/RHEL で NFS クライアントのキャッシュを無効にする方法

別の NFS クライアントによって書き込まれた場合など、NFS クライアントが NFS エクスポートから同期的にデータを読み取らない場合があります。たとえば、NFS クライアント A が「echo hello> /NFS_mountpoint/testfile」でファイルを書き込んだ後、NFS クライアント B が「そのようなファイルはありません」でファイルを読み取れないか、読み取れるがファイルの内容が古い可能性があります。

NFS クライアントは、さまざまな NFS データをキャッシュします。 NFSv3 仕様の RFC 1813 には次のように記載されています:

Clients can perform caching in varied manner.

また、次のようにも述べています:

The NFS version 3 protocol does not define a policy for
caching on the client or server. In particular, there is no
support for strict cache consistency between a client and
server, nor between different clients.
Therefore this is designed behavior of Linux NFS client.

したがって、これは Linux NFS クライアントの設計された動作です。 NFS クライアント マウント オプションを設定して NFS クライアント キャッシングを無効化/スキップするか、O_DIRECT でデータの読み取り/書き込みを行います /O_SYNC .

NFS クライアントのすべてのキャッシュを無効にするには、「sync」を追加します ” マウント オプションの例。

# mount -t nfs -o vers=3,sync NFS_Server:/NFS_Export/ /NFS_Mountpoint
注意 :このオプションを使用すると、パフォーマンスが低下する可能性があります。このオプションを本番システムに適用する前に、テスト システムで慎重にテストしてください。

NFS クライアントによるディレクトリ エントリのキャッシュを無効にするには、「noac,lookupcache=none」を追加します。 次の例のように、マウント オプションの場合:

# mount -t nfs -o vers=3,noac,lookupcache=none NFS_Server:/NFS_Export/ /NFS_Mountpoint
注意 :noac と actimeo=0 には違いがあります。 actimeo=0 は属性の変更をキャッシュできますが、noac はできません。したがって、noac は actimeo=0 よりも安全ですが、パフォーマンスに影響を与える可能性があります。これをさらに制限するために、両方のオプションを設定することもできます。


Cent OS
  1. CentOS / RHEL 7 :NFS サーバーと NFS クライアントの構成

  2. CentOS / RHEL 7 で NetworkManager を無効にする方法

  3. CentOS / RHEL 5 で IPv6 を無効にする方法

  1. CentOS/RHEL で avahi-daemon サービスを無効にする方法

  2. CentOS/RHEL で lvmetad を無効にする方法

  3. CentOS/RHEL 8 で IPv6 を無効にする方法

  1. CentOS7/6およびRHEL7/6でSELinuxを無効にする方法

  2. CentOS/RHEL 7 で ACPI を無効にする方法

  3. CentOS/RHEL で NFS クライアントのキャッシュを無効にする方法