Klient NFS občas nečte data z exportů NFS synchronně, například když byla zapsána jiným klientem NFS. Například poté, co klient NFS A zapíše soubor pomocí „echo hello> /NFS_mountpoint/testfile“, klient NFS B nemůže číst soubor s „No takový soubor“, nebo může číst, ale obsah souboru může být starý.
Klienti NFS ukládají do mezipaměti různá data NFS. RFC 1813 pro specifikaci NFSv3 říká:
Clients can perform caching in varied manner.
a také říká:
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.
Jedná se tedy o navržené chování klienta Linux NFS. Zakažte/přeskočte ukládání do mezipaměti klienta NFS konfigurací možností připojení klienta NFS nebo čtěte/zapisujte data pomocí O_DIRECT /O_SYNC .
Chcete-li zakázat všechny mezipaměti pro klienta NFS, přidejte „sync ” pro možnost připojení, např.
# mount -t nfs -o vers=3,sync NFS_Server:/NFS_Export/ /NFS_MountpointPoznámka :Tato možnost může způsobit snížení výkonu. Před použitím na produkčním systému tuto možnost pečlivě otestujte na svém testovacím systému.
Chcete-li zakázat ukládání položek adresáře do mezipaměti klientem NFS, přidejte „noac,lookupcache=none ” pro možnost připojení, jako v následujícím příkladu:
# mount -t nfs -o vers=3,noac,lookupcache=none NFS_Server:/NFS_Export/ /NFS_MountpointPoznámka :Mezi noac a actimeo jsou rozdíly=0. actimeo=0 může ukládat změny atribuce do mezipaměti, ale noac ne. Noac je tedy bezpečnější než actimeo=0, ale může mít dopad na výkon. Je také v pořádku nastavit obě možnosti, abyste to dále omezili.