概要
このドキュメントでは、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 bashのファイルシステムをチェックすると、コマンド出力の先頭にエラー行が表示されます。df: /data/nfs: Stale file handle
このNFS stale handle fileエラーは、さまざまな理由により、どの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マウントポイントを検証します。
$マウント | 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サーバでも、異なるマウント・ポイントを使用して複数の結果を見つけることができます。これらはすべてマウント解除する必要があります。
ヒント:セキュアシェル(SSH)がmaglev CLI(magshell)で有効になっている場合は、_shellコマンドを実行して完全なbashを有効にできます。Cisco DNA Centerのバージョンによっては、完全なmaglev bashシェルへのアクセスを許可するためにTACのトークンが必要になる場合があります。
3. – 次のコマンドを実行して、ファイルシステム内で「Stale file handle」エラーが発生している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% |
+------------------------------------------+------+------------+------------+------------+