VMware vSphere仮想化プラットフォームの一部であるHypervisorであるVMware ESXiには、いくつかの問題が発生する可能性があります。例えば、vSphereでは、ESXiに接続できない場合や、ESXiホストをvCenterに接続できない場合、またはvCenterでエラーメッセージが表示され、仮想マシンを作成できない場合があります。ESXiホストを再起動することで、一部の場合に問題が解決される可能性がありますが、その場合、仮想マシン(VM)をシャットダウンするか、別のホストに移行する必要があり、これは本番環境では問題です。まずESXi管理エージェントを再起動する方が良いです。ESXiホスト上の管理エージェントを再起動すると、問題が解決される可能性が非常に高いです。
症状
サーバーのESXi管理エージェントを再起動する必要がある一般的な症状をリストアップすることから始めましょう:
- ESXiホストに直接接続したり、このホストをvCenterで管理したりすることができない。
- ESXiホストがvCenterから切断されているが、VMはESXiホストで実行され続ける。
- vCenterで仮想マシン(VM)を作成しようとすると、次のエラーが表示される:
エージェントがホストからVM作成オプションを取得できないため、仮想マシンの作成に失敗することがあります。
- ESXiホスト間でVMの移行が行われず、次のエラーが返される:
仮想マシンを移動
ホストの現在の接続状態では操作が許可されていません
- 実行中のVMの情報が、VMを選択した際の概要タブに表示されない:
CPU使用量 – 0 MHz
メモリ使用量 – 0.00 MB
ESXi管理エージェントの役割
ESXi管理エージェントは、VMwareコンポーネントを同期させ、vCenter ServerからESXiホストにアクセス可能にするために使用されます。VMwareエージェントはデフォルトの構成に含まれており、ESXiをインストールする際にインストールされます。ESXiホストで接続の問題が発生した場合に再起動する必要がある主要な2つのエージェントがあります- hostdおよびvpxa。
hostdは、ESXiホスト上のほとんどの操作とVM、表示されるLUN、およびVMFSボリュームの登録を管理するホストエージェントです。hostdは、VMの起動と停止などの主要なタスクを担当しています。VMwarehostdは、ESXiとvmkernelの間の通信に使用されます。
vpxaは、ESXiホストがvCenter Serverに参加するときにアクティブ化されるVMwareエージェントです。また、vCenter ServerのvpxdがESXiホストのvpxaと通信するインスタンスもあります(vpxaはESXi側で実行されるVMwareエージェントであり、vpxdはvCenter側で実行されるデーモンです)。vpxaはESXiホスト上のhostdと通信します。VMwarevpxaは、vCenterとhostdの間の通信の中間サービスとして使用されます。
vSphere ClientとvCenterを使用してESXiホストを管理する場合、vCenterはESXiホスト上で実行されているvpxaプロセスを介してコマンドをESXiホストに渡します。ホストを管理するために直接ESXiホストに接続する場合、通信はホスト上のhostdプロセスに直接確立されます。
VMはどのように影響を受けますか?
ESXiの管理エージェントを再起動すると、仮想マシンは再起動や電源オフされません(仮想マシンの再起動は不要です)。仮想マシンが影響を受けないようにするには、ESXiホスト上で実行されている仮想マシンのうち1つにpingを試し、このESXiホストでVMwareエージェントを再起動してください。ESXiホスト上で実行中のタスクに影響が出る可能性があります。ESXiホストのESXi管理エージェントを再起動する際に、現在ESXiホストで実行中のVMware VMバックアップジョブがないことを確認してください。
ESXiホストとそのホスト上の仮想マシンは、ESXi管理エージェントがESXiホストで再起動される間、一時的に切断されます。数秒後にVMware vSphere Clientのページを更新し、ESXiホストと仮想マシンのステータスが正常になるはずです。
問題を避けるために、vSAN、NSX、またはVMware仮想環境で共有グラフィックスを使用している場合は、ESXiを使用してVMwareエージェントを再起動する前に、ブログ投稿の最後に記載されている注意事項を読んでください。
Direct Console UIでエージェントを再起動する
ESXi マネジメントエージェントを再起動する最も信頼性の高い方法は、ESXi Direct Console User Interface(DCUI)を使用することです。キーボードとモニターがサーバーに接続された ESXi サーバーに物理的にアクセスする必要があります。ESXi ネットワーク管理に使用されるサービスは責任を持たない場合があり、例えば、SSH 経由でホストをリモートで管理できない場合があります。
- DCUI でシステム設定をカスタマイズするには、F2 を押します。
- 管理者アカウントのユーザー名とパスワードを入力します(ESXi で管理者権限を持つデフォルトアカウントは root です)。
注意: 忍耐強くお待ちください。時々、かなりの遅延が発生することがあります。資格情報を入力してからサーバーがこのアクションに対する反応を示すまでの遅延には数分かかる場合があります。タイムアウトは、再起動する必要があるハング管理サービスからの応答を待っている間に発生する可能性があります。
- 資格情報を受け入れた後、システムのカスタマイズ メニューが表示されます。
- Troubleshooting Options を選択し、Enter を押します。DCUI の右ペインで、メニューのオプションを選択した後に有用なヒントが表示されます。
- Troubleshooting Mode Options の中で Restart Management Agents を選択し、Enter を押します。
- 管理エージェントを再起動するための構成メッセージが表示されます。追加のトラブルシューティング情報を収集するには(オプション)、Space を押します。管理エージェントを今すぐ確認して再起動するには、F11 を押します。
- ESXiの管理エージェントが再起動するのを待って、問題が解決されているかどうかを確認してください。
- DCUIで管理エージェントを再起動しても問題が解決しない場合、システムログを表示し、ESXiシェルに直接アクセスするか、SSH経由でESXiコマンドラインを実行する必要があります。DCUIでESXiシェルとSSHを有効にできます。SSHアクセスとESXiシェルはデフォルトでは無効になっています。
- ESXiシェルを有効にするには、トラブルシューティングオプションに移動し、ESXiシェルを有効にするを選択し、Enterを押します。
- リモートSSHアクセスを有効にするには、トラブルシューティングオプションに移動し、SSHを有効にするを選択し、Enterを押します。
VMwareホストクライアントを使用する
VMwareホストクライアントを使用すると、ESXiホストとvCenter間の接続に使用されるVMware vCenterエージェント、vpxaを再起動するのが便利です。
- WebブラウザのアドレスバーにESXiホストのIPアドレスを入力してください。次に、VMware Host Clientに管理者アカウントの資格情報を入力してログインします。
- ナビゲーションペインで、ホスト>管理に移動し、サービスタブを選択します。
- vpxaサービスを右クリックし、コンテキストメニューで再起動を選択します。
VMware Host Clientを開けない場合は、ESXi管理エージェントを再起動する他の方法を使用してください。 TSM-SSHサービスを起動して、ESXiホストへのリモートSSHアクセスを有効にできます。
ESXi Shell(SSH)でVMwareエージェントを再起動する
ESXiコマンドラインインターフェース(CLI)は、ESXiホストの管理やトラブルシューティングに強力なツールです。リモート管理のためにESXiホストへのSSHアクセスを有効にする必要があります。 SSHクライアントを使用してリモートでESXiホストに接続し、コマンドラインインターフェースを使用します。 WindowsマシンでPuTTYをSSHクライアントとして使用できます。 ESXiサーバーのIPアドレスまたはホスト名を定義し、ポート(デフォルトで22)を選択し、SSHクライアントで管理資格情報を入力します。その後、SSH経由でコンソール(ターミナル)セッションを表示できます。
リモートアクセスなしでESXiシェルを直接使用する場合は、ESXiシェルを有効にし、ESXiサーバーに物理的にキーボードとモニターを接続します。 ESXiコマンドラインオプションについては、ESXCLIのブログ記事を読んで詳細を学ぶことができます。
注意: このブログ投稿で使用されるコマンドは、ESXi 6.x および ESXi 7.x と互換性があります。
- ESXi ホストで利用可能なすべてのサービスをリストアップする(オプション)コマンド:
chkconfig –list - コンソール出力で hostd と vpxa サービスを見つけ、その状態を確認します。
- hostd と vpxa サービス(管理エージェント)を再起動するコマンド:
/etc/init.d/hostd restart
/etc/init.d/vpxa restart
- このコマンドを使用して、ESXi ホスト上のすべての管理エージェントを再起動します。
services.sh restart &tail -f /var/log/jumpstart-stdout.log
VMware エージェントの再起動の進行状況がコンソール出力に表示されます。
- また、VMkernel インターフェースで管理ネットワークをリセットすることもできます:
esxcli network ip interface set -e false -i vmk0; esxcli network ip interface set -e true -i vmk0
vmk0 インターフェースは ESXi でデフォルトで使用されます。管理ネットワークインターフェースの名前が異なる場合は、適切なインターフェース名をコマンドで使用してください。
この複雑なコマンドは、;(セミコロン)で区切られた 2 つの基本コマンドで構成されています。最初の部分のコマンドで vmk0 管理ネットワークインターフェースが無効になります。この部分が正常に実行され、vmk0 がダウンしている場合、コマンドの 2 番目の部分が実行されて vmk0 インターフェースが有効になります。その結果、ESXi 管理ネットワークインターフェースが再起動されます。
SSH 経由で DCUI を使用
ESXiホストへのSSHアクセスがある場合、SSHセッションでDCUIを開くことができます。この方法を使用すると、より便利にコンソールでDCUIの擬似グラフィカルユーザーインターフェースを使用できます。
- コンソール/ターミナルでDCUIを開くコマンドを実行します:
dcui - F2を押してシステムをカスタマイズします。
- DCUIの説明が行われているセクションで説明されているように、VMware管理エージェントを再起動するために必要なオプションを選択します。
PowerCLIを使用してVMware管理エージェントを再起動する
VMware PowerCLIは、Windows PowerShellベースの別のツールであり、コマンドラインインターフェイスでvCenterとESXiホストを管理します。
- ESXiホスト上で利用可能なサービスのリストを取得します:
Get-VMHostService -VMHost 192.168.101.208 -Refresh- -Refreshパラメータは、このデータをコンソールに表示する前にデータを更新するために使用されます。
- 192.168.101.208は、この例で使用されているESXiホストのIPアドレスです。
- 構成に応じて、ESXiホストの名前またはIPアドレスを定義します。出力に表示されるサービスのリストは、ESXiコマンドラインに表示されるサービスのリストではなく、VMware Host Clientに表示されるサービスのリストと類似しています。
- $VMHostService変数に値を追加するためのホストとサービスを指定します。
$VMHostService = Get-VMHostService -VMHost 192.168.101.208 -Refresh | Where {$_.Key -eq ‘vpxa’}
ここでvpxaは必要なESXi管理サービスの名前です。他にも、開始、停止、または再起動したい別のサービスを定義することができます。例えば、TSM-SSH(ESXiホスト上のSSHサーバーサービス)を指定できます。 - vpxaサービスを$VMHostService変数を使用して再起動します。
Restart-VMHostService -HostService $VMHostService -Verbose
- また、サービスを手動で停止および開始することもできます。
Stop-VMHostService -HostService $VMHostService
Start-VMHostService -HostService $VMHostService
- vpxaを再起動する代替コマンドも試すことができます。
Get-VMHostService -VMHost 192.168.101.208 | where {$_.Key -eq “vpxa”} | Restart-VMHostService -Confirm:$false -ErrorAction SilentlyContinue
注意事項
- ESXiホストがvSANクラスターのメンバーでLink Aggregation Control Protocol(LACP)が使用されている場合、services.shコマンドでESXi管理エージェントを再起動しないでください。
独立したサービスを再起動するには、/etc/init.d/module restartを使用してください。 - NSXがVMware仮想環境で構成されている場合、/sbin/services.sh再起動コマンドを使用しないでください。このコマンドはESXiホスト上のすべてのサービスを再起動し、ネットワーク接続が一時的に中断されます。この場合、ホスト上のESXi管理エージェントを個別に再起動する必要があります。vpxa、hostd、およびfdmを個別に再起動します。個別にエージェントを再起動しても解決しない場合は、/sbin/services.sh再起動を実行する必要がある場合は、現在のESXiホストからVMを移行してホストをメンテナンスモードにします。
- ESXiホストにNSXがインストールされているかどうかわからない場合は、次のコマンドを使用して確認できます:
/sbin/services.sh restartesxcli software vib list –rebooting-image | grep esx-* - 出力にvsip-esxおよびesx-vxlan VIBが表示されている場合、ESXiホストにNSX for vSphereがインストールされています。
- VMware View環境で共有グラフィックスが使用されている場合(VGPU、vSGA、vDGA)、services.shを使用してESXiエージェントを再起動しないでください。services.shコマンドで管理エージェントを再起動すると、ゲストオペレーティングシステムのグラフィックスを担当するxorgサービスが停止します。ゲストオペレーティングシステムでグラフィックスを無効にすると、共有グラフィックスが使用されている場所で仮想デスクトップインフラストラクチャ(VDI)がクラッシュします。共有グラフィックスを使用しており、ESXiホストがメンテナンスモードに入っていない場合は、hostdおよびvpxaを手動で再起動できます。
Conclusion
ESXi マネジメント エージェントを再起動することで、vCenter で ESXi ホストの切断状態に関連する問題、ESXi ホストに直接接続する際に発生するエラー、VM のアクションに関する問題などを解決できます。このブログ記事では、DCUI、ESXi コマンドライン、VMware Host Client、および VMware PowerCLI を使用して ESXi マネジメント エージェントを再起動する一般的な方法について説明しています。一般的に、仮想マシンにはエージェントを再起動しても影響はありませんが、vSAN、NSX、または vSphere 仮想環境で VDI 用の共有グラフィックスを使用している場合は、より注意が必要です。
定期的に VMware VM を vSphere でバックアップしてデータを保護し、データを迅速に復旧してワークロードを復元できる能力を確保しましょう。NAKIVO Backup & Replication は、VMware vSphere での VM のバックアップをサポートするオールインワンのデータ保護ソリューションです。この製品は、Windows、Linux、NAS デバイス、および VMware 仮想アプライアンスとしてインストールできます。
Source:
https://www.nakivo.com/blog/how-to-restart-management-agents-on-a-vmware-esxi-host/