私の環境特有なのだろうか。VMware vSphere Hypervisor (ESXi) 6.7を50日以上連続稼働するとなぜかCPU使用率が高騰する現象が発生している。
高騰といっても、全体が100%に張り付くような深刻な問題ではなく、十数%程度の使用率が延々と続くというものなので致命的ではないのだが、余計な電力を使うので気になっていた。
過去2回ほど同じ現象が発生していたが、今日も稼働時間が50日を過ぎたあたりで同様の現象が発生。
仮想マシンをすべてシャットダウンしてメンテナンスモードに入れても高騰したまま。
ESXiのホスト自身がCPUを消費しているようなのだが、何が原因なのかはよくわからない。おそらく、製品の不具合なのだろうと思う。
結局、毎回ホストの再起動をかけているのだが、少々面倒。
パッチを適用すれば解消できるかもしれないと思いつつ、無償の製品なので入手できないのだろうと思い込んでいたのだが、my vmwareにログインしてパッチを検索してみたところ、普通にダウンロードできることが分かった。
ちなみに、公開されているパッチはすべて累積パッチなので、最新のものを適用するだけでよいらしい。今回は2020/01/28時点で最新の、「ESXi670-201912001」を適用することにした。
パッチ適用手順
パッチはzipファイルで提供されているので、これをデータストアに格納したあとSSHでホストに接続してアップデート用のコマンドを実行するという流れ。
ググれば先人の知恵がたくさんあるので、自分が実行した手順だけメモしておく。
パッチのzipファイルをデータストアに転送
ISOファイルをアップロードするのと同じ要領で、データストアの適当な場所にアップロードする。
今回は、「datastore2」というデータストアの直下に配置した。
メンテナンスモードに移行
これもいつも通り。Webのホスト管理画面から、[アクション] → [メンテナンスモードへの切り替え]。
ESXiホストにSSH接続
デフォルトではSSH接続は無効になっているので、Webのホスト管理画面から [アクション] → [サービス] → [SSHの有効化]を選択する。
後はrootユーザでSSH接続。パスワードはWebの管理画面にログインするときと同じもの。
パッチの内容を確認
格納したデータストアとzipファイルを指定して、以下のようなコマンドを実行する。
esxcli software sources profile list -d /vmfs/volumes/datastore2/ESXi670-201912001.zip
すると、こんな出力がされる。
Name Vendor Acceptance Level Creation Time Modification Time -------------------------------- ------------ ---------------- ------------------- ------------------- ESXi-6.7.0-20191204001-no-tools VMware, Inc. PartnerSupported 2019-11-25T11:43:03 2019-11-25T11:43:03 ESXi-6.7.0-20191201001s-standard VMware, Inc. PartnerSupported 2019-11-25T11:43:03 2019-11-25T11:43:03 ESXi-6.7.0-20191201001s-no-tools VMware, Inc. PartnerSupported 2019-11-25T11:43:03 2019-11-25T11:43:03 ESXi-6.7.0-20191204001-standard VMware, Inc. PartnerSupported 2019-11-25T11:43:03 2019-11-25T11:43:03
パッチのzipファイルの中には、「プロファイル」と呼ばれる適用可能な構成が複数含まれているらしい。通常は末尾が「-standard」のものを適用すればよいので、今回は一番下の「ESXi-6.7.0-20191204001-standard」を適用する。
プロファイルの詳細は、以下のコマンドで確認できる。
esxcli software sources profile get -p ESXi-6.7.0-20191204001-standard -d /vmfs/volumes/datastore2/ESXi670-201912001.zip
ESXi-6.7.0-20191204001-standard
Acceptance Level: PartnerSupported
Name: ESXi-6.7.0-20191204001-standard
Vendor: VMware, Inc.
Creation Time: 2019-11-25T11:43:03
Modification Time: 2019-11-25T11:43:03
Stateless Ready: True
Description:
Updates ESXi 6.7 Image Profile-ESXi-6.7.0-20191204001-standard
VIBs: ata-libata-92 3.00.9.2-16vmw.670.0.0.8169922,(以下略)
パッチ適用とホストの再起動
おもむろに、以下のようにコマンドを実行。
esxcli software profile update -d /vmfs/volumes/datastore2/ESXi670-201912001.zip -p ESXi-6.7.0-20191204001-standard
それほど時間もかからず(正確には測っていないが1分程度?)、適用が完了したのには驚いた。単にファイルを置き換えているだけなのかもしれない。
適用結果として以下のような出力がある。
Update Result Message: The update completed successfully, but the system needs to be rebooted for the changes to be effective. Reboot Required: true
再起動しろと書かれているので、いったんホストを再起動する。
適用結果の確認
後は、Webのホスト管理画面から、プロファイルのバージョンが更新されていることを確認する。
VMware Toolsの更新
パッチを適用するとVMware Toolsのバージョンも上がるので、 特にWindowsの仮想マシンはアップデートしておいた方がいいかもしれない。
仮想マシンの管理画面から、[アクション] → [ゲストOS] → [VMware Tools のアップブレード]を選択すればよい。
ただし、WindowsのゲストOSにこの操作を実行すると、バックグラウンドで自動的にVMware Toolsの更新が走って、ゲストOSが勝手に再起動するので注意が必要。
Linuxの場合、私はOpen VM Toolsを使っているので明示的なアップデートは行わなかったが、もしかするとaptやyumでupdateしたタイミングで更新されたりするのかもしれない。
ともかく、これでCPU高騰の問題が収まってくれることを期待。結果がわかるのは50日後。
その後…
パッチ適用後、50日連続稼働してもCPUが高騰しないことが確認できた。
余談
ホストOSを停止するタイミングで、マシンの清掃を行った。前に掃除したのはいつだったか…相当ほこりがたまっていた。リアファンの周りですらこの状態なので、吸気部分は推して知るべし…自宅サーバはメンテナンスを怠ると最悪火災の原因にもなるので注意しなければならない。
コメント