Обновление VMware ESXi
Когда наступает время для обновления программного обеспечения, начинаешь прокачивать свои знания заново. Вот и мне предстояло узнать почему обновление для VMware ESXi отказываются устанавливаться, ссылаясь на ошибку 28 — отсутствие места. При условии, что диски практически были свободные, но давайте по порядку.
Чтобы произвести обновление нам необходим доступ по ssh и требуется разрешить web трафик на встроенном фаерволе.
1 |
esxcli network firewall ruleset set -e true -r httpClient |
После нам нужно запустить команду для проверки обновления в режиме online:
1 |
esxcli software sources profile list -d https://hostupdate.vmware.com/software/VUM/PRODUCTION/main/vmw-depot-index.xml | grep -i ESXi-6 |
Так как сервер у меня достаточно древний и установленная версия на момент работы была 6, то обновляться будем до 6.5.
1 |
esxcli software profile update -p ESXi-6.5.0-20170702001-standard -d https://hostupdate.vmware.com/software/VUM/PRODUCTION/main/vmw-depot-index.xml |
И тут меня ждал сюрприз, сообщение об ошибке 28.
[InstallationError]
[Errno 28] No space left on device
vibs = VMware_locker_tools-light_6.5.0-0.23.5969300
Please refer to the log file for more details.
Вычитал, что возможная проблема кроется в невозможности обновить VMware tools light. Но после я осознал, что у меня не активирован файл подкачки, про который я вообще не вспомнил.
1 |
esxcli sched swap system set -n datastore1 -d y |
После активации файла подкачки и размещение его на хранилище datastore1 появилась возможность произвести обновление.
Строчка Reboot Required true означает, что обновление прошло успешно.
Один комментарий
petrov.ivan
Еще вариант:
https://communities.vmware.com/t5/ESXi-Discussions/OSError-Errno-28-No-space-left-on-device-even-SWAP-is-enabled/td-p/2807332
Если сотрут, цитата:
Hey,
Oh yes this problem also caused me to go nuts before!
Even if you enable swap the ESXi busybox space which is used for cli is limited to around 200MB space, which is not enough for running the update.
The solution is simple:
Manually download the update package from https://my.vmware.com/group/vmware/patch#search on your computer then upload it on your server datastore, let’s say in /datastore1/update/ESXi670-202011001.zip for example
Then on the SSH cli use these commands:
esxcli software profile update —dry-run -p ESXi-6.7.0-20201103001-standard -d /vmfs/volumes/datastore1/update/ESXi670-202011001.zip
If the dry run is successful, do the update with
esxcli software profile update -p ESXi-6.7.0-20201103001-standard -d /vmfs/volumes/datastore1/update/ESXi670-202011001.zip
Reboot and the update is done :slightly_smiling_face: