VMWare ESXi 6.7 U3 에서 8.0 U2 업그레이드 과정에 대한 내용으로

2단계 높은 메이저 버전 업그레이드 임에도 불구하고 한번에(ESXi 7을 건너뛰고) 쉽게 업그레이드가 가능하다.

(RHV [Ovirt] 솔루션에서는 메이저 업그레이드를 이렇게 쉽게 하는 것은 상상도 못 할 일이다.)

 

준비물

업그레이드 파일 : VMware-ESXi-8.0U2-22380479-depot.zip

 

업그레이드 진행 과정

  1. 다운로드 받은 업그레이드 파일을 datastore에 저장
  2. ESXi 쉘에 ssh 접속
  3. esxcli 명령으로 업그레이드 파일을 지정하여 업그레이드 진행
  4. 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이 제대로 부팅되고 동작된다.

Upgrade ESXi 6.7_U3 to 8.0_U2
태그:                                         

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다