Translated message

A translation of this page exists in English.

Warning message

This translation is outdated. For the most up-to-date information, please refer to the English version.

マウントポイントでファイルを開いているときに NFS4 サーバーを再起動すると、nfs クライアントで遅延が発生します

Solution Verified - Updated -

Environment

  • Red Hat Enterprise Linux 5/6

  • nfsv4

Issue

  • マウントポイントでテクストファイルを cat しているときに NFS4 サーバーを再起動すると、nfs クライアントで遅延が発生します。

  • RHEL サーバーで簡易な NFS エクスポートを設定します。

    /tmp    *(rw,no_root_squash,fsid=0)
    

別の RHEL 6 サーバーでエクスポートディレクトリをマウントします

# mount -t nfs4 x.x.x.x://mnt/tmp

マウント配下でテキストファイルを cat してください。サーバー上の nfs サービスを再起動した場合は、マウントポイント配下で同じテキストファイルを cat すると遅延が発生します。これは nfs クライアントがセッションの更新に 90 秒の猶予期間分待機するように強制されているようです。

Resolution

猶予期間の目的は、サーバーが再起動したことをクライアントに通知し、既存のロックが再要求される時間を確保し、ロックを失うことを防ぐための時間を確保します。これにより、mailbox/database/logfile/... など、ロックに依存しているファイルでデータの破損を防ぐことができるため、強く推奨されます。

nfsv4 RFC ( http://www.ietf.org/rfc/rfc3530.txt ) には、以下のように記載されています。

During the grace period, the server must reject READ and WRITE 
operations and non-reclaim locking requests (i.e., other LOCK and 
OPEN operations) with an error of NFS4ERR_GRACE.

訳: サーバーは猶予期間内、READ および WRITE 操作と、
再要求以外のロック要求 (つまり、その他の LOCK および OPEN 操作) 
を拒否し、NFS4ERR_GRACE エラーが発生します。

猶予期間を短くするには、以下のファイルでカーネルパラメータの値を変更します。
注意: lease 時間には、grace 期間と同じ値を設定する必要があります。"lease 時間" は、サーバーとクライアント間のファイルロック要求の時間間隔に使用されるため、そのパラメータの値を減らすと、ネットワークトラフィックがよりビジーとなる場合があります。

# service nfs stop
# echo 10 > /proc/sys/fs/nfs/nlm_grace_period
# echo 10 > /proc/fs/nfsd/nfsv4gracetime
# echo 10 > /proc/fs/nfsd/nfsv4leasetime
# service nfs start

echo "10" は 10 秒を示しています。

Root Cause

90 秒の猶予期間が原因で遅延が発生します。

Diagnostic Steps

問題は再現できます。

166    21:48:46.082089    10.65.211.44    10.65.211.9    NFS    V4 COMP Call (Reply In 167) <EMPTY> PUTFH;SAVEFH SAVEFH;OPEN OPEN;GETFH GETFH;GETATTR GETATTR;RESTOREFH RESTOREFH;GETATTR GETATTR
167    21:48:46.082207    10.65.211.9    10.65.211.44    NFS    V4 COMP Reply (Call In 166) <EMPTY> PUTFH;SAVEFH SAVEFH;OPEN OPEN(10013)

ステータス '10013' は NFS4ERR_GRACE になります。

This solution is part of Red Hat’s fast-track publication program, providing a huge library of solutions that Red Hat engineers have created while supporting our customers. To give you the knowledge you need the instant it becomes available, these articles may be presented in a raw and unedited form.