FQDN を使用して複数の NFS share を同時にマウントすると ESXi が無応答となり hostd がクラッシュする
search cancel

FQDN を使用して複数の NFS share を同時にマウントすると ESXi が無応答となり hostd がクラッシュする

book

Article ID: 431058

calendar_today

Updated On:

Products

VMware vCenter Server

Issue/Introduction

免責事項:これは英文の記事「ESXi host becomes unresponsive and hostd crashes when mounting NFS shares concurrently via FQDN」の日本語訳です。記事はベストエフォートで翻訳を進めているため、ローカライズ化コンテンツは最新情報ではない可能性があります。最新情報は英語版の記事で参照してください。

 

  • ESXi ホストが「応答なし」状態となり、UI からホストが操作できなくなる。この問題は hostd デーモンがクラッシュし host ダンプを作成する際に発生します。

hostd.log ファイルには crash dump の前に NFS クライアントに対する IP アドレスの追加や削除を行うファイアウォールルールの操作が記録されます。

  • ESXi の /var/run/log/hostd-probe.log には以下のエントリが記録されます。

[YYYY-MM-DDTHH:MM:SS] Wa(164) hostd-probe[2100200]: [Originator@6876 sub=Default] hostd was not detected to be running

  • ESXi の /var/run/log/hostd.log には以下のエントリが記録されます。

[YYYY-MM-DDTHH:MM:SS] In(166) Hostd[4016277]: [Originator@6876 sub=Vimsvc.ha-eventmgr] Event 20286 : Firewall configuration has changed. Operation 'addIP4' for rule set nfsClient succeeded.
[YYYY-MM-DDTHH:MM:SS] In(166) Hostd[4016303]: [Originator@6876 sub=Hostsvc.VmkVprobSource] VmkVprobSource::Post event: (vim.event.EventEx) {
[YYYY-MM-DDTHH:MM:SS] In(166) Hostd[4016267]: -->    key = 124,
[YYYY-MM-DDTHH:MM:SS] In(166) Hostd[4016267]: -->    chainId = -1,
[YYYY-MM-DDTHH:MM:SS] In(166) Hostd[4016267]: -->    createdTime = "1970-01-01T00:00:00Z",
[YYYY-MM-DDTHH:MM:SS] In(166) Hostd[4016267]: -->    userName = "",
[YYYY-MM-DDTHH:MM:SS] In(166) Hostd[4016267]: -->    host = (vim.event.HostEventArgument) {
[YYYY-MM-DDTHH:MM:SS] In(166) Hostd[4016267]: -->       name = "Hostname",
[YYYY-MM-DDTHH:MM:SS] In(166) Hostd[4016267]: -->       host = 'vim.HostSystem:ha-host'
[YYYY-MM-DDTHH:MM:SS] In(166) Hostd[4016267]: -->    },
[YYYY-MM-DDTHH:MM:SS] In(166) Hostd[4016267]: -->    eventTypeId = "esx.audit.net.firewall.config.changed",
[YYYY-MM-DDTHH:MM:SS] In(166) Hostd[4016267]: -->    arguments = (vmodl.KeyAnyValue) [
[YYYY-MM-DDTHH:MM:SS] In(166) Hostd[4016267]: -->       (vmodl.KeyAnyValue) {
[YYYY-MM-DDTHH:MM:SS] In(166) Hostd[4016267]: -->          key = "1",
[YYYY-MM-DDTHH:MM:SS] In(166) Hostd[4016267]: -->          value = "removeIP4"
[YYYY-MM-DDTHH:MM:SS] In(166) Hostd[4016267]: -->       },
[YYYY-MM-DDTHH:MM:SS] In(166) Hostd[4016267]: -->       (vmodl.KeyAnyValue) {
[YYYY-MM-DDTHH:MM:SS] In(166) Hostd[4016267]: -->          key = "2",
[YYYY-MM-DDTHH:MM:SS] In(166) Hostd[4016267]: -->          value = "nfsClient"
[YYYY-MM-DDTHH:MM:SS] In(166) Hostd[4016267]: -->       }
[YYYY-MM-DDTHH:MM:SS] In(166) Hostd[4016267]: -->    ],
[YYYY-MM-DDTHH:MM:SS] In(166) Hostd[4016267]: -->    objectId = "ha-host",
[YYYY-MM-DDTHH:MM:SS] In(166) Hostd[4016267]: -->    objectType = "vim.HostSystem",
[YYYY-MM-DDTHH:MM:SS] In(166) Hostd[4016267]: --> }

  • ESXi の /var/run/log/vmkernel.log には以下のエントリが記録されます。

[YYYY-MM-DDTHH:MM:SS] In(182) vmkernel: cpu46:20###31 opID=75####6c)NFS: 366: NFS mount succeeded for server.example.com:/directory/TASK####### volume TASK#######.
[YYYY-MM-DDTHH:MM:SS] In(182) vmkernel: cpu88:20###20)UserDump: 3157: hostd-worker: Dumping cartel 209###89 (from world 20###20) to file /var/core/hostd-zdump.000

Cause

ESXi ファイアウォールリストから NFS サーバ IP を削除しようとする複数のスレッド間での競合が発生する事が原因です。

この競合は同一の疎通できない IP アドレスへ名前解決される Fully Qualified Domain Name (FQDN) を ESXi ホストが複数 NFS マウントする際に発生します。それらの IP は疎通出来ないためマウントは失敗し、マウントを試みた複数のスレッドがファイアウォールから NFS サーバの IP を同時に削除する事を試みます。この競合が未処理の例外を引き起こし hostd のクラッシュへ繋がります。

Resolution

ワークアラウンド

  • ESXi ホストから疎通可能な IP を使用できるように DNS レコードを更新する
  • 一つずつマウントを行い、複数同時に NFS マウントしないようにする