「Could not initialize AIO handles #########: No free handles」により hostd がクラッシュします
search cancel

「Could not initialize AIO handles #########: No free handles」により hostd がクラッシュします

book

Article ID: 416392

calendar_today

Updated On:

Products

VMware vSphere ESXi

Issue/Introduction

Symptoms:
免責事項:これは英文の記事「hostd crashes due to "Could not initialize AIO handles #########: No free handles"」の日本語訳です。記事はベストエフォートで翻訳を進めているため、ローカライズ化コンテンツは最新情報ではない可能性があります。最新情報は英語版の記事で参照してください。


vGPU が接続された複数の仮想マシンが単一のホスト上で同時に実行されている場合、次の警告メッセージが vmkernel.log ファイルに頻繁に記録されます。

“WARNING: FDS: ###: Could not initialize AIO handles ########: No free handles”

このような状況では、次のような問題が確認されています。

  • Hostdプロセスがクラッシュする
  • ハードウェアヘルスアラームがトリガーされる
  • デバイスファイルを開こうとすると失敗する
  • 仮想マシンがクラッシュし、ブルースクリーン(BSOD)が表示される

Environment

VMware vSphere ESXi 7.0
VMware vSphere ESXi 8.0
VMware ESX 9.0

Cause

ESXiは、システム上のFDSに最大32,768個のAIOハンドルを割り当てることができます。単一のホスト上でvGPUが接続された多数の仮想マシンを実行すると、利用可能なAIO​​ハンドルが枯渇し、空きAIOハンドル不足によりデバイスファイルを開けなくなる可能性があります。

このような状況では、デバイス ファイルを開こうとすると hostd サービスがクラッシュしたり、ESXi サービスが IPMI デバイス ファイルにアクセスできない場合にハードウェア センサーの監視に失敗したり、その他の不安定な症状が見られる場合もあります。

Resolution

Broadcom エンジニアリング チームが修正に取り組んでいます。

回避策:
大量のAIOハンドルを消費している仮想マシンをパワーオフするか、消費量の少ないホストに移行することで、この問題を回避できます。AIOハンドルの使用量を確認するには、ESXiシェルのvmkvsitoolsコマンドを以下のように実行してください。

以下のコマンドラインの出力では、最初の列の値が大きいVMが大量のAIOハンドルを消費していることがわかります。2番目の列は、VMのプロセスID(VMX Cartel ID)を示しています。

# vmkvsitools lsof | awk '$3=="CHAR" {print $0}' | grep vmgfx | awk '$2=="vmx" {print $1}' | sort | uniq -c | sort -k 1 -n

Ex)

# vmkvsitools lsof | awk '$3=="CHAR" {print $0}' | grep vmgfx | awk '$2=="vmx" {print $1}' | sort | uniq -c | sort -k 1 -n
<Value1>  <VMX_Cartel_ID1>
<Value2>  <VMX_Cartel_ID2>
<Value3>  <VMX_Cartel_ID3>
...

VM の VMX Cartel ID は、esxcli vm process list を使用して識別できます

# esxcli vm process list

Ex)

# esxcli vm process list
<VM Name>
   World ID: ########
   Process ID: ###
   VMX Cartel ID: #######
   UUID: ## ## ## ## ## ## ## ##-## ## ## ## ## ## ## ##
   Display Name: ####-########-####-####-####-############
   Config File: ##########################################
...