ECSでは、NFSキャッシュがECSアプライアンス上のdataheadsvcサービスのNFSキャッシュを伝播して更新するのに約20分かかります。この問題は、エクスポートのカスタマイズを解決するためにいくつかの変更が必要な場合に、新しいNFSエクスポートのセットアップ中に発生することがよくあります。
この動作は、既存のNFSエクスポートが変更され、エクスポートがECSでアクティブとして表示されている場合に、ECSで想定されます。
- この問題を確認するには、ECSに存在するエクスポートを確認します。
コマンド:(NFS Linuxクライアント上)
# showmount -e <ECS>のIPアドレスの例:
[root@nfsclient ~]# showmount -e xxx.xxx.xxx
Export list for xxx.xxx.xxx.xxx:
/namespace/nfsbucket *
- ECSで検証済みのエクスポートのマウントを試みます。
コマンド:(注:これはコマンドの例であり、NFS Linuxクライアントでより詳細な出力を取得するために-vvオプションを追加します)。
# mount -vv -t nfs -o vers=3,,nolock,sec=sys,proto=tcp <ECS IP>:<Export Path><local Mount Point>
例:
[root@ nfsclient ~]# mount -vv -t nfs -o vers=3,,nolock,sec=sys,proto=tcp xxx.xxx.xxx.xxx:/namespace/nfsbucket /mnt/test
mount.nfs: timeout set for Wed Aug 14 09:37:03 2019
mount.nfs: trying text-based options 'vers=3,nolock,sec=sys,proto=tcp,addr= xxx.xxx.xxx.xxx '
mount.nfs: prog 100003, trying vers=3, prot=6
mount.nfs: trying xxx.xxx.xxx.xxx prog 100003 vers 3 prot TCP port 2049
mount.nfs: prog 100005, trying vers=3, prot=6
mount.nfs: trying xxx.xxx.xxx.xxx prog 100005 vers 3 prot TCP port 2049
mount.nfs: mount(2): No such file or directory
mount.nfs: mounting xxx.xxx.xxx.xxx:/namespace/nfsbucket failed, reason given by server: No such file or directory
- エクスポートを見つけられないECSで検証します。
コマンド:(ECSクラスター上で過去5分間にキーワードnfsのすべてのノード ログが同時にスキャンされることに注意してください)。
# svc_log -i -f nfs -sr all -sn -sf -n all -start '5 minutes ago'
例:
admin@ecsnode1:~> svc_log -i -f nfs -sr all -sn -sf -n all -start '5 minutes ago'
svc_log v0.9.19 (svc_tools v1.1.1) Started 2019-08-14 15:35:57
Running on nodes: <All nodes>
Time range: 2019-08-14 15:30:57 - 2019-08-14 15:35:57
Filter string(s): 'nfs'
Show filename(s): True
Show nodename(s): True
Search reclaim logs (if any): False
Case insensitive: True
169.254.1.1 dataheadsvc.log 2019-08-14T15:35:05,953 [RpcDispatcherMD-3082827] INFO RpcProgramMountd.java (line 101) MOUNT MNT path: /namespace/nfsbucket Client: /xxx.xxx.xxx
169.254.1.1 dataheadsvc.log 2019-08-14T15:35:05,958 [RpcDispatcherMD-3082827] INFO ExportsService.java (line 98) added key /namespace/nfsbucket/ to the cache
169.254.1.1 dataheadsvc.log 2019-08-14T15:35:05,960 [RpcDispatcherMD-3082827] ERROR RpcProgramMountd.java (line 111) Couldn't locate the exportEntry for the path /namespace/nfsbucket
- 競合するエクスポート設定がECSで更新されるまで最大20分待ってから、マウント コマンドを再試行します。
コマンド:(注:これはコマンドの例であり、NFS Linuxクライアントでより詳細な出力を取得するために-vvオプションを追加します)。
# mount -vv -t nfs -o vers=3,,nolock,sec=sys,proto=tcp <ECS IP>:<Export Path><local Mount Point>
例:
[root@client ~]# mount -vv -t nfs -o vers=3,,nolock,sec=sys,proto=tcp xxx.xxx.xxx: /namespace/nfsbucket mnt/test
final mount options: 'vers=3,,nolock,sec=sys,proto=tcp'
mount.nfs: timeout set for Wed Aug 14 13:55:00 2019
mount.nfs: trying text-based options 'vers=3,nolock,sec=sys,proto=tcp,addr= xxx.xxx.xxx '
mount.nfs: prog 100003, trying vers=3, prot=6
mount.nfs: trying xxx.xxx.xxx prog 100003 vers 3 prot TCP port 2049
mount.nfs: prog 100005, trying vers=3, prot=6
mount.nfs: trying xxx.xxx.xxx prog 100005 vers 3 prot TCP port 2049
xxx.xxx.xxx:/namespace/nfsbucket on /mnt/test type nfs (rw,vers=3,,nolock,sec=sys,proto=tcp)