停止したnfs接続を閉じる方法

停止したnfs接続を閉じる方法

外部nfsサーバーを使用して、ホームディレクトリをkubernetesコンテナにマウントします。コンテナが削除されると、nfs接続が「クローズ待機中」の状態で停止することがあります。

その結果、コンテナが配置されているノードは膨大なiowait時間値を生成します。これにより、ノードが再起動されるまで、すべてのコンテナはnfsディスクパフォ​​ーマンスの影響を受けます。

問題のあるインストールを手動で削除できましたが、iowaitがダウンしていませんでした。

私は問題の診断を助けるためにiotopをインストールしましたが、Pythonエラーが発生します。

2つの質問:

  1. 再起動せずにこの問題を解決する方法はありますか?この問題は、私たちが知らない多くの顧客に影響を与えていますか?

  2. まず、これが起こる理由と解決策を考えてみましょう。 nfs サーバーが同期用に構成されています。非同期に切り替えると、この問題は解決しますか?

私はこれがkubernetesの問題だとは思わないが、kubernetes / nfsの1つの欠点は、とにかくクライアント接続を構成できないことです。

答え1

KubernetesでNFSマウントの問題(再起動せずにI / Oレイテンシが長くなる)を解決するには、NFSマウントポイントを強制(umount -f)またはゆっくり()マウント解除してみます。umount -lNFSサーバー構成をからに切り替えるとsyncパフォーマンスasyncが向上する可能性がありますが、データ整合性のリスクが発生します。特定のマウントオプション(たとえば、、nfsvers=4.1およびrsize=1048576wsize=1048576を使用してKubernetesで永続ボリューム(PV)定義を強化すると、パフォーマンスの問題を潜在的に軽減できます。たとえば、PV 構成には以下が含まれます。

nfs:
  path: /path/to/dir
  server: nfs-server.example.com
  mountOptions:
    - hard
    - nfsvers=4.1
    - rsize=1048576
    - wsize=1048576
    - timeo=14

CephやGlusterFSなどの代替ストレージソリューションの監視とナビゲーションと組み合わせたこのアプローチは、Kubernetes環境でNFS関連のパフォーマンス低下を軽減するように設計されています。

関連情報