VMWare ESXi 6.7 U3 에서 8.0 U2 업그레이드 과정에 대한 내용으로
2단계 높은 메이저 버전 업그레이드 임에도 불구하고 한번에(ESXi 7을 건너뛰고) 쉽게 업그레이드가 가능하다.
(RHV [Ovirt] 솔루션에서는 메이저 업그레이드를 이렇게 쉽게 하는 것은 상상도 못 할 일이다.)
목차
준비물
업그레이드 파일 : VMware-ESXi-8.0U2-22380479-depot.zip
업그레이드 진행 과정
- 다운로드 받은 업그레이드 파일을 datastore에 저장
- ESXi 쉘에 ssh 접속
- esxcli 명령으로 업그레이드 파일을 지정하여 업그레이드 진행
- reboot
업그레이드 커맨드
[root@localhost:~] esxcli software profile update -d /vmfs/volumes/HDD01/VMware-ESXi-8.0U2-22380479-depot.zip -p ESXi-8.0U2-22380479-standard Update Result Message: The update completed successfully, but the system needs to be rebooted for the changes to be effective. Reboot Required: true VIBs Installed: VMW_bootbank_atlantic_1.0.3.0-12vmw.802.0.0.22380479, VMW_bootbank_bcm-mpi3_8.6.1.0.0.0-1vmw.802.0.0.22380479, VMW_bootbank_bfedac-esxio_0.1-1vmw.802.0.0.22380479, VMW_bootbank_bnxtnet_225.0.4.0-8vmw.802.0.0.22380479, VMW_bootbank_bnxtroce_225.0.4.0-8vmw.802.0.0.22380479, ... VIBs Skipped: [root@localhost:~]
업그레이드 진행 중 이슈 해결
[root@localhost:~] esxcli software profile update -d /vmfs/volumes/HDD01/VMware-ESXi-8.0U2-22380479-depot.zip -p ESXi-8.0U2-22380479-standard [ProfileValidationError] In ImageProfile (Updated) ESXi-8.0U2-22380479-standard, the payload(s) in VIB Realtek_bootbank_net55-r8168_8.045a-napi does not have sha-256 gunzip checksum. This will prevent VIB security verification and secure boot from functioning properly. Please remove this VIB or please check with your vendor for a replacement of this VIB Please refer to the log file for more details. [root@localhost:~] esxcli software vib list | grep r8168 net55-r8168 8.045a-napi Realtek CommunitySupported 2018-10-02 [root@localhost:~] esxcli software vib list | grep ne1000 ne1000 0.8.4-2vmw.670.2.48.13006603 VMW VMwareCertified 2019-07-31 [root@localhost:~] esxcli software vib remove --vibname net55-r8168 Removal Result Message: The update completed successfully, but the system needs to be rebooted for the changes to be effective. Reboot Required: true VIBs Installed: VIBs Removed: Realtek_bootbank_net55-r8168_8.045a-napi VIBs Skipped: [root@localhost:~] esxcli software profile update -d /vmfs/volumes/HDD01/VMware-ESXi-8.0U2-22380479-depot.zip -p ESXi-8.0U2-22380479-standard Update Result Message: ... VIBs Skipped:
-> 사용중인 ESXi 서버의 메인보드는 AsRock B360M Pro4 모델로,
NIC은 Intel I219-V(보드 내장)와 Realtek 8111E(PCI-E Slot) 총 2개의 NIC이 존재.
이 중 Realtek 8111E의 드라이버가 지원되지 않아 업그레이드 중 에러가 발생하여 기존 드라이버 제거 후 업그레이드 완료.
업그레이드 이후 이슈
ESXi 부팅 후 webclient 접근에 문제 발생
ID / Password를 제대로 입력해도 로그인 실패 후 'no healthy upstream' 메시지만 브라우저에 출력되는 현상 발생
해결을 위해서는 esxi ssh 로그인 후 services.sh restart 수행 필요
(참조 : services.sh restart 참조 페이지)
workaround 적용
[root@localhost:~] mkdir /vmfs/volumes/HDD03/script/ [root@localhost:~] vi /vmfs/volumes/HDD03/script/services_restart.sh #!/bin/sh EXE_COUNT=$(cat /vmfs/volumes/HDD03/script/exe_flag | grep 1 | wc -l) if [ $EXE_COUNT = 0 ]; then /bin/services.sh restart echo "1" > /vmfs/volumes/HDD03/script/exe_flag fi [root@localhost:~] chmod 744 /vmfs/volumes/HDD03/script/services_restart.sh [root@localhost:~] vi /etc/rc.local.d/local.sh echo "0" > /vmfs/volumes/HDD03/script/exe_flag /bin/echo "* * * * * /vmfs/volumes/HDD03/script/services_restart.sh" >> /var/spool/cron/crontabs/root *설명: 1) 부팅 시 실행되는 local.sh에 0 값이 찍힌 exe_flag 파일이 생성되도록 echo로 출력 2) echo로 찍어 services_restart.sh 스크립트를 cron 스케줄에 넣기 (services_restart.sh는 cron에 의해 1분에 한번씩 무한 반복 실행) 3) services_restart.sh가 실행될 때 exe_flag 값이 0이면 /bin/services.sh restart 실행, 그리고 exe_flag 값을 1로 변경 *주의. exe_flag와 services_restart.sh 파일은 영구 보관을 위해 datastore의 disk에 저장 필요.
처음에는 /etc/rc.local.d/local.sh 파일에 sleep 10; /bin/services.sh restart 구문을 넣어 해결하려 하였지만 실패.
그래서 위와 같이 간단한 스크립트와 cron job을 통해 부팅 후 services.sh가 원하는 타이밍에 restart 될 수 있도록하여 해결.
근본 해결책은 좀 더 찾아봐야 할거 같지만 위와 같이 워크어라운드 적용하여 해결 가능.
unlocker 재 적용
mac os x 사용을 위해 기존에 Unlocker 2.1.1 를 적용 중이었는데, 업그레이드 후 작동(mac os x가 부팅이 안됨)을 하지 않음.
그래서 esxi 8.0 u2에서 작동되는 esxi-unlocker-4.0.6.zip 을 github을 통해 구해 아래와 같이 적용.
** 적당한 datastore 디렉토리에 esxi-unlocker-4.0.6.zip 복사 후 압축 해제 -> 기존 local.sh 파일 복사 (기존 적용된 내용을 참고하기 위해) -> unlock 실행 -> 리부팅
[root@localhost:~] mkdir /vmfs/volumes/HDD02/_apps/unlocker [root@localhost:~] cd /vmfs/volumes/HDD02/_apps/unlocker [root@localhost:~] wget https://github.com/DrDonk/esxi-unlocker/archive/refs/tags/v4.0.6.zip [root@localhost:~] unzip esxi-unlocker-4.0.6.zip [root@localhost:~] cp /etc/rc.local.d/local.sh/vmfs/volumes/HDD02/_apps/unlocker [root@localhost:~] cd esxi-unlocker-4.0.6 [root@localhost:~] ./unlock [root@localhost:~] y를 눌러 rebooting
이제 기존에 설치했던 mac os x vm이 제대로 부팅되고 동작된다.