はじめに
このドキュメントでは、Cisco DNA Centerでコマンドdf -hを実行する際のNFS「Stale file handle」エラーのトラブルシューティングと解決方法について説明します。
前提条件
要件
- Linuxファイルシステム管理の知識
- NFS v3またはv4の知識
- maglev CLIの完全なbashシェルへのアクセス
- NFS IPアドレスまたはホスト名とNFSディレクトリパス
使用するコンポーネント
- Cisco DNA Center 2.3.3 maglevのCLI
- NFS v4
このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、クリアな(デフォルト)設定で作業を開始しています。本稼働中のネットワークでは、各コマンドによって起こる可能性がある影響を十分確認してください。
問題
Cisco DNA Centerのフルバックアップ(アシュアランス)は、Cisco DNA Centerのバックアップ設定でNFSが正しく設定されていたとしても、NFSが正しくマウントされていないため失敗する可能性があります。df -hコマンドを使用してCisco DNA Center(CDNA)bash内のファイルシステムをチェックすると、コマンド出力の先頭にエラー行が表示されることがわかります。df: /data/nfs: Stale file handle
このNFSの古いハンドルファイルエラーは、複数の理由により、どのLinuxシステムでも発生する可能性があります。最も一般的なのは、ディスクデバイスのマウントされたファイルinodeに何らかの変更があるためです。たとえば、サービスまたはアプリケーションがファイルを開いたり作成したりすると、そのファイルは削除されて閉じられ、同じファイルへの参照が古くなったり無効になったりするために、同じファイルへのアクセスや削除が再試行されます。つまり、ファイルハンドルが参照するファイルまたはディレクトリが別のホストによって削除される際に、クライアントがそのオブジェクトへのアクティブな参照を保持している間は、ファイルハンドルは古くなります。
例:
maglev@maglev-master-10-10-10-10:~$ df -h
df: /data/nfs: Stale file handle
Filesystem Size Used Avail Use% Mounted on
udev 189G 0 189G 0% /dev
tmpfs 38G 9.4M 38G 1% /run
/dev/sdb2 47G 28G 18G 62% /
tmpfs 189G 0 189G 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 189G 0 189G 0% /sys/fs/cgroup
/dev/sdb4 392G 123G 250G 34% /data
/dev/sdb3 239M 163M 76M 69% /boot/efi
/dev/sdc3 166G 5.6G 152G 4% /var
/dev/sdc1 671G 102G 536G 16% /data/maglev/srv
/dev/sdc2 923G 175G 702G 20% /data/maglev/srv/maglev-system
/dev/sdd1 5.2T 127G 4.9T 3% /data/maglev/srv/ndp
glusterfs-brick-0.glusterfs-brick:/default_vol 923G 187G 699G 22% /mnt/glusterfs/default_vol
glusterfs-brick-0.glusterfs-brick:/ndp_vol 5.2T 181G 4.9T 4% /mnt/glusterfs/ndp_vol
tmpfs 38G 0 38G 0% /run/user/1234
maglev@maglev-master-10-10-10-10:~$
同様の出力が、magctl sts backup mount displayコマンドによって提供されます。
例:
maglev@maglev-master-10-10-10-10:~$ magctl sts backup mount display
ERROR: df: /data/nfs: Stale file handle
注:同じNFSサーバでも、異なるマウントポイントで、複数の古いファイルハンドルエラーが見つかる可能性があります。ソリューションは、各古いファイルハンドルエラーに適用できます。
解決方法
1.- NFS設定を削除して、システムからNFSを削除します。Cisco DNA Centerメニュー> Settings > Backup & Restore > Configure > Cisco DNA Center (NFS)の順に移動し、Removeボタンをクリックします。
2. – 次のコマンドを実行して、システム内のNFSの古いマウントポイントを検証します。
$ mount | grep -i <NFS_IP_ADDRESS_OR_FQDN>
例:
maglev@maglev-master-10-10-10-10:~$ mount | grep -i 192.168.100.1
192.168.100.1:/dna_backups/dna_assurance_data on /data/nfs type nfs4 (rw,relatime,vers=4.2,rsize=1048576,wsize=1048576,namlen=255,acregmin=60,acdirmin=60,soft,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=10.10.16.2,local_lock=none,addr=10.10.16.3)
同じNFSサーバでも、マウント・ポイントが異なる複数の結果が見つかります。これらはすべてアンマウントする必要があります。
ヒント: maglev CLI(magshell)でセキュアシェル(SSH)が有効になっている場合は、_shellコマンドを実行して完全なbashを有効にすることができます。Cisco DNA Centerのバージョンによっては、完全なmaglev bashシェルへのアクセスを許可するために、TACからのトークンが必要になる場合があります。
3. – 次のコマンドを実行して、ファイルシステム内で「古いファイルハンドル」エラーが発生しているNFSマウントポイントを手動でマウント解除します。
$ sudo umount <NFS_IP_ADDRESS_OR_FQDN>:/remote/NFS/path /local/mounting/point
例:
maglev@maglev-master-10-10-10-10:~$ sudo umount 192.168.100.1:/dna_backups/dna_assurance_data /data/nfs
4. – ファイルシステムからNFSをアンマウントしたら、df -hコマンドを実行して「Stale file handle」エラーが表示されなくなったことを再確認できます。まだ古いファイルハンドルのエントリが表示されている場合は、ステップ2と3を繰り返します。これは、NFSにも使用中の異なるマウントポイントがあり、そのマウントポイントもアンマウントする必要がある場合があるためです。
5. – 最後に、Cisco DNA Centerメニュー> Settings > Backup & Restore > Configure > Cisco DNA Center (NFS)に移動し、NFSを再設定します。
検証
df -hコマンドを実行し、さらにmagctlを使用してバックアップ設定のNFSマウントポイントを確認することにより、NFSが正しくマウントされ、「古いファイルハンドル」エラーがないことを検証します。
maglev@maglev-master-10-10-10-10:~ $ magctl sts backup mount display
+------------------------------------------+------+------------+------------+------------+
| remote | type | used | available | percentage |
+------------------------------------------+------+------------+------------+------------+
|192.168.100.1:/dna_backups/dna_assurance_data/ | nfs4 | 6369873920 | 3744850944 | 63% |
+------------------------------------------+------+------------+------------+------------+