단독(standalone) ESXi 호스트의 버전을 수동으로 업데이트하려던 중 Errno 28 "No space left on device"(장치에 남은 공간 없음)라는 의외의 오류를 만났습니다.
실행한 명령어는 다음과 같습니다:
# 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
자세한 내용은 로그 파일을 참조하세요.
1. 디스크 여유 공간 확인
오류 메시지는 명백히 여유 공간 부족을 가리키지만, 실제로 디스크 여유 공간을 확인해 보면 저장소에 충분한 공간이 남아 있는 경우가 많습니다.
df -h
2. 아이노드(Inode) 수 확인
VMware는 별도의 기술 자료 문서 KB 1007638 "ESXi/ESX error: No free space left on device"를 제공합니다. 해당 문서에 따르면 파일 시스템에서 최대 아이노드(inode) 수에 도달하면 새 파일을 생성할 수 없다고 합니다. 다음 명령으로 확인할 수 있습니다:
stat -f / | grep Inodes | awk '{ print $NF }'
제 경우에는 Free 값이 상당히 컸기 때문에 이것이 원인은 아니었습니다.
3. 스왑 파일 위치 변경
또 다른 가능한 원인은 호스트에 업그레이드를 수행할 여유 메모리가 부족한 것입니다. 이 경우 ESXi 호스트가 사용 가능한 VMFS 데이터스토어에 스왑 파일을 배치할 수 있도록 설정해야 합니다.
vSphere Client의 그래픽 인터페이스를 통해 스왑 파일 위치를 변경할 수 있습니다: 호스트(Host) → 구성(Configure) → 시스템 스왑(System Swap) → 편집(Edit) → Can use datastore (사용 가능한 데이터스토어 선택).
다음 옵션들이 활성화되어 있는지 확인하세요:
- Can use host cache (호스트 캐시 사용 허용)
- Can use datastore specified by host for swap files (호스트가 지정한 데이터스토어를 스왑 파일로 사용 허용)
ESXi CLI에서도 VMFS 데이터스토어를 스왑 파일 용도로 활성화할 수 있습니다:
# esxcli sched swap system set -n VMFSDataStoreName1 -d y
변경 사항을 저장한 후 호스트 업데이트를 다시 실행해 보세요.
4. VMware Tools Light 수동 설치
스왑 파일을 추가한 후 이번에는 vmware tools light를 업데이트할 수 없다는 또 다른 오류가 발생했습니다:
[InstallationError]
[Errno 28] No space left on device
vibs = VMware_locker_tools_light_11.2.5.xxxxxxxxxxxx
이 경우 VIB 파일을 직접 다운로드하여 설치해 보세요:
cd /tmp
wget https://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
명령어에는 오류 메시지에 표시된 VMware_locker_tools_light 버전이 포함된 VIB 파일 이름을 사용하세요. 사용 가능한 전체 버전 목록은 다음과 같이 확인할 수 있습니다:
# esxcli software sources vib list --depot=https://hostupdate.vmware.com/software/VUM/PRODUCTION/main/vmw-depot-index.xml | grep tools-light | sort
이후 ESXi 빌드 업데이트를 다시 실행합니다:
# esxcli software profile update .....
5. vmtools VIB 건너뛰고 업데이트하기
수동 VMware tools light 업데이트가 실패한다면, vmtools VIB 파일의 업데이트를 건너뛰고 ESXi 이미지만 업데이트하는 방법을 시도해 보세요:
# 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
6. 로컬 ZIP 파일로 업데이트
위 방법 모두 효과가 없다면, 새 ESXi 버전의 ZIP 파일을 다운로드하여 연결된 데이터스토어에 업로드하세요.
로컬 ZIP 파일에서 호스트를 업데이트합니다:
# esxcli software vib update -d /vmfs/volumes/YourVMFSDatastore/ESXi700-xxxxxx.zip