Ошибка VMWare ESXi: Errno 28 — No space left on device

Ошибка VMWare ESXi: Errno 28 — No space left on device

Столкнулся со странной ошибкой 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.

vmware esxi обновление [Errno 28] No space left on device

Ошибка четко указывает на исчерпание места. Но, проверка свободного места на диске показала, что свободного места достаточно:

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

задать swap файл в vmware esxi

Также можно разрешить использовать VMFS хранилище для файла подкачки из ESXi CLI:

# 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

Используйте в командах имя vib файла с версией VMware_locker_tools_light из вашей ошибки.
Полный список доступных версий можно вывести так:
# 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

Виртуализация
Ошибка VMWare ESXi: Errno 28 — No space left on device