こんにちは。Snow Peakの折りたたみ傘を見た目装備で購入した西浦です。
先日複数台のサーバでVMware vSphere Hypervisor(以後ESXi)のアップデートを行ったのですが、特定のホストだけ以下のエラーが出力され、アップデートできない問題が起きたので、対処法をまとめてみました。
# esxcli software profile update -p ESXi-6.0.0-20200204001-standard -d https://hostupdate.vmware.com/software/VUM/PRODUCTION/main/vmw-depot-index.xml
※一部抜粋
「[InstallationError]
[Errno 32] Broken pipe
vibs = VMware_locker_tools-light_6.0.0-3.145.15517548
Please refer to the log file for more details.
目次
エラーが発生した環境の情報
ESXi 6.0.0 u2 から u3へアップデート実行時に起きた事象です。
アップデート(Patch適用)はこちらの記事で紹介している方法で行っています。
https://www.denet.ad.jp/technology/2017/10/esxipatch.html
- 仮想マシンは全て別のESXiへ退避済み
- メンテナンスモードにしている
- httpClientのファイアウォール設定を一時的に有効化している
- アップデートファイル一覧取得は事前に行えている
エラー内容を調査
/var/log/esxupdate.log というアップデート関連の情報が出力されるログを確認したところ、以下のようなエラーが出力されていました。
# less /var/log/esxupdate.log
※一部抜粋
2020-06-25T02:58:49Z esxupdate: LockerInstaller: WARNING: There was an error in cleaning up product locker: [Errno 2] No such file or directory: '/locker/packages/var/db/locker'
2020-06-25T02:58:49Z esxupdate: root: ERROR: Traceback (most recent call last):
2020-06-25T02:58:49Z esxupdate: root: ERROR: File "/usr/lib/vmware/esxcli-software", line 462, in <module>
2020-06-25T02:58:49Z esxupdate: root: ERROR: main()
2020-06-25T02:58:49Z esxupdate: root: ERROR: File "/usr/lib/vmware/esxcli-software", line 453, in main
2020-06-25T02:58:49Z esxupdate: root: ERROR: ret = CMDTABLE[command](options)
2020-06-25T02:58:49Z esxupdate: root: ERROR: File "/usr/lib/vmware/esxcli-software", line 219, in ProfileUpdateCmd
2020-06-25T02:58:49Z esxupdate: root: ERROR: allowDowngrades=opts.downgrade)
2020-06-25T02:58:49Z esxupdate: root: ERROR: File "/build/mts/release/bora-3620759/bora/build/esx/release/vmvisor/sys-boot/lib/python2.7/site-packages/vmware/esximage/Transaction.py", line 622, in InstallVibsFromProfile
2020-06-25T02:58:49Z esxupdate: root: ERROR: File "/build/mts/release/bora-3620759/bora/build/esx/release/vmvisor/sys-boot/lib/python2.7/site-packages/vmware/esximage/Transaction.py", line 356, in _installVibs
2020-06-25T02:58:49Z esxupdate: root: ERROR: File "/build/mts/release/bora-3620759/bora/build/esx/release/vmvisor/sys-boot/lib/python2.7/site-packages/vmware/esximage/Transaction.py", line 399, in _validateAndInstallProfile
2020-06-25T02:58:49Z esxupdate: root: ERROR: File "/build/mts/release/bora-3620759/bora/build/esx/release/vmvisor/sys-boot/lib/python2.7/site-packages/vmware/esximage/HostImage.py", line 710, in Stage
2020-06-25T02:58:49Z esxupdate: root: ERROR: File "/build/mts/release/bora-3620759/bora/build/esx/release/vmvisor/sys-boot/lib/python2.7/site-packages/vmware/esximage/HostImage.py", line 483, in _download_and_stage
2020-06-25T02:58:49Z esxupdate: root: ERROR: InstallationError: ('VMware_locker_tools-light_6.0.0-3.145.15517548', '[Errno 32] Broken pipe')
出力されたエラー内容を調査し、ネットで調べたところ、以下のような情報が見つかりました。
- /locker領域が破損している可能性があるので再作成
- /locker/packages/version フォルダを再作成
- 正常に動作しているESXiから/locker/packages をscpしてくる
といった記事があり、エラーログからも起きている事象と近しい内容でしたが、最初からディレクトリ再生成を試すのもなということで、まずは問題なかったホストと見比べてみることにしました。
すると/locker領域のDisk残容量が0%に達しており、アップデートファイルの
ダウンロード自体が途中で止まっていることが判明。
問題の起きたホストだけ/locker/var/core/vpxa-worker-zdump.000 というファイルがあり、大きく容量を使ってたことが原因でした。
対処(Disk容量確保)
先程のdumpファイルは不要なものだったので、対象のファイルを削除してDiskに空き容量を確保しました。
# rm /locker/var/core/vpxa-worker-zdump.000
まとめ
今回はESXi 6.0.0 u2 から u3へアップデート時に発生したエラーと、対処方法について記載しました。
アップデートファイル一覧を取得し、バージョン指定を行ってアップデートする方法は非常に簡単ですが、
予想以上にアップデートファイルの容量が大きなサイズになるので、Disk残容量には注意しながら実行しましょう。
参考記事
https://kb.vmware.com/s/article/2030665?lang=ja
https://www.provirtualzone.com/esxi-6-0-reports-error-code-15-during-remediate-update-in-vum-operation/
https://virtualhackey.wordpress.com/2020/02/04/vmware-esxi-patching-error-errno-32-broken-pipe-vibs-vmware_locker_tools-light-databaseioerror-error-in-purging-old-directory-permanent-fix/
岡山のとある田舎村から大阪にやってきて早14年。24365のチームでサーバの運用を経て、自社のデータセンターや基幹系システム、共有系サービスの維持管理をメインでやっております。
最近スプラトゥーン3を購入したのでバンカラマッチ漬けの日々を送っています。
クラウドベリージャム:プロフィールページ