Столкнулся со странной ошибкой Errno 28 “No space left on device” при ручном обновлении версии VMWare ESXi на отдельностоящем сервер:
# esxcli software profile update -p ESXi-7.0.0-xxxx-standard -d https://hostupdate.vmware.com/software/VUM/PRODUCTION/main/vmw-depot-index.xml
[InstallationError] [Errno 28] No space left on device vibs = VMware_bootbank_esx-base_7.0.0-xxxx Please refer to the log file for more details.
Ошибка четко указывает на исчерпание места. Но, проверка свободного места на диске показала, что свободного места достаточно:
df -h
У VMWare есть KB 1007638 (ESXi/ESX error: No free space left on device). В статье они говорят о том, что вы не можете создать новые файлы, потому что достигли максимального количество инод (inodes) на файловой системе. Проверяется это командой:
stat -f / | grep Inodes | awk '{ print $NF }'
В моем случае значение Free довольно большое, поэтому это не должно быть причиной проблемы.
Другая возможная проблема – на хосте недостаточно свободной памяти для выполнения апгрейда. В этом случае нужно разрешить хосту ESXi размешать свой файл подкачки ESXi на любом из доступных VMFS хранилищ.
Указать дополнительное местоположение swap файла можно из графического интерфейса vSphere Client:
Host -> Configure -> System Swap -> Edit -> Can use datastore (выберите доступное хранилище).
Убедитесь, что включены опции
- Can use host cache
- Can use datastore specified by host for wasp files
# esxcli sched swap system set -n myDataStoreName1 -d y
Сохраните изменения, попробуйте выполнить обновление.
После добавления файла подкачки у появилась немного другая ошибка, указывающая на невозможность обновить vmware tools light:
[InstallationError] [Errno 28] No space left on device vibs = VMware_locker_tools_light_11.2.5.xxxxxxxxxxxx
Попробуйте скачать и установить этот файл vib вручную:
cd /tmp
wget http://hostupdate.vmware.com/software/VUM/PRODUCTION/main/esx/vmw/vib20/tools-light/VMware_locker_tools_light_11.2.5.xxxxxxxxxxxx.vib
esxcli software vib install -f -v /tmp/ VMware_locker_tools_light_11.2.5.xxxxxxxxxxxx
rm /tmp/VMware_locker_tools_light_11.2.5.xxxxxxxxxxxx
Полный список доступных версий можно вывести так:
# esxcli software sources vib list --depot=https://hostupdate.vmware.com/software/VUM/PRODUCTION/main/vmw-depot-index.xml | grep tools-light | sort
Запустите обновление билда командой
# esxcli software profile update .....
Если ручное обновление vmware tools light заканчивается с ошибкой, попробуйте обновить образ ESXi, пропустив обновление vib файла с vmtools:
# esxcli software profile update -p ESXi-version-build -no-tools -d https://hostupdate.vmware.com/software/VUM/PRODUCTION/main/vm-depot -index.xml
Перезагрузите хост и обновите VMware_locker_tools:
# esxcli software vib install -v https://hostupdate.vmware.com/software/VUM/PRODUCTION/main/esx/vmw/vib20/tools-light/VMware_locker_tools-light-version-build.vib
Если совсем ничего не помогает, скачайте ZIP файл с новой версией ESXi и загрузите ее на любое подключенное хранилище.
Выполните обновление из локального ZIP файла
# esxcli software vib update -d /vmfs/volumes/YourVMFS/ESXi700-xxxxxx.zip