NFSv4 StorePool の問題に対して収集すべきデータは何ですか?
環境
- ONTAP 9
- NFSv4.x
回答
- EMSメッセージは、トラブルシューティングを絞り込むのに役立つ多くの情報を提供します
- AutoSupportをトリガーして、これをサポートに提供します
- Node Management lif を、エラーを報告しているノードのためにメモします
- 統計は、バケットがいっぱいかどうか、およびそれらがどのインスタンスに関連付けられているかを確認するためのガイダンスを提供します
- パフォーマンスアーカイブとは何であり、どのようにトリガーされますか?
- statistics start は、何度も参照できる一定期間のサンプルを収集するために使用できます。
- REST API呼び出しを使用して、
storePool_*
カウンタを確認します。curl -siku "admin:PASSWORD" https://Cluster-Mgmt-IP/api/cluster/counter/tables/nfs_v4_diag/rows/
NOTE: use the response from above to run the second call per node to get the storePool counters like in example below.
例:
curl -siku "admin: PASSWORD" https://Cluster-Mgmt-IP/api/cluster/counter/tables/nfs_v4_diag/rows/Cluster-01%3Cluster-01%3A67261b3
- storepoolに関連する可能性のあるオブジェクト
- nfsv4
- nfsv4_diag
- nfsv4_error
- nfsv4_1_error
- nfsv4_1_diag
- nfsv4_1
- spinnp_error
- spinnp
- spinhi
- lmgr_ng
- ストアプールEMSを呼び出していたノードからNFSv4ロックを収集します
::> vserver
locks nfsv4 show -instance
はノードスコープです。 そのため、storepoolアラートを報告しているノード(node managment lif)にsshで接続する必要があります
- 上位クライアントが以前に特定されている場合は、問題が発生している間、そのクライアントにフィルタリングしたパケットトレースを5分間収集します。
- 問題を軽減するためにLIF migrationが実行された場合は、このデータを再度収集してください。
追加情報
- NFSv4ストアプール - 解決ガイド
- リアルタイムで NFSv4ストアプールでブロックされているクライアントを表示するには:
::*> vserver nfs storepool blocked-client show -node node_name
次の BASH スクリプトを *nix ホストから使用して、必要な NFSv4 ロック情報を収集できます。
#!/bin/bash # Set the IP address of the node management server NODE_MANAGEMENT="NODE-MGMT-IP" # NODE_MANAGEMENT="10.2.1.3" # Set the username to use during authentication (Ideal to use pubkey auth) USERNAME="admin" # Directory to store the statistics STAT_DIR="statistics/$NODE_MANAGEMENT" mkdir -p "$STAT_DIR" # Check SSH connection if ! ssh -q -o BatchMode=yes -o ConnectTimeout=5 $USERNAME@$NODE_MANAGEMENT exit; then echo "SSH connection to $NODE_MANAGEMENT failed" exit 1 fi # Collect the statistics for NFSv4 and NFSv4_1 NFS_VERSIONS=("nfsv4" "nfsv4_1") NFS_TYPES=("" "_diag" "_error") for version in "${NFS_VERSIONS[@]}"; do for type in "${NFS_TYPES[@]}"; do ssh $USERNAME@$NODE_MANAGEMENT "set d -c off; rows 0; date; statistics show -object ${version}${type} -raw" >> "$STAT_DIR/stats_nfs.txt" done done # Collect the statistics for spinnp SPIN_TYPES=("spinnp_error" "spinhi" "spinnp") for type in "${SPIN_TYPES[@]}"; do ssh $USERNAME@$NODE_MANAGEMENT "set d -c off; rows 0; date; statistics show -object $type -raw" >> "$STAT_DIR/stats_spin.txt" done # Collect the statistics for lmgr_ng ssh $USERNAME@$NODE_MANAGEMENT "set d -c off; rows 0; date; statistics show -object lmgr_ng -counter files|hosts|owners|locks|*max -raw" >> "$STAT_DIR/stats_lmgr.txt" # Collect the statistics for vserver locks nfsv4 ssh $USERNAME@$NODE_MANAGEMENT "set d -c off; rows 0; date; vserver locks nfsv4 show -inst" >> "$STAT_DIR/locks.txt"