Private & Public Cloud/VMware vSphere

[vSphere] - ESXi software vib & software profile(esxcli), ESXi 호스트 Patch & Upgrade(CLI, GUI)

TwoJun 2025. 4. 15. 09:33

(1) ESXi 호스트 Patch

- ESXi 호스트의 보안 취약점, 버그, 성능 향상 및 업데이트 등의 기능을 제공하기 위해 수행하는 작업, 이를 통해 최신 보안 취약점 문제를 해결하거나 운영 중 발생할 수 있는 부분을 최소화한다.

 

(2) ESXi 호스트 Upgrade

- 호스트의 Major version을 업데이트하는 작업으로, 보통 ESXi의 새로운 기능 추가 및 개선, 특정 하드웨어 지원, 성능 향상을 위해 수행하는 작업이다.

 

 

 

 

1. ESXi VIB(VMware Installation Bundle) / Software Profile, Source Profile

1-1. ESXi vib

(1) VIB(VMware Installation Bundle)란, ESXi 호스트에서 드라이버, 패치, 추가 소프트웨어 등을 설치하거나 업데이트하는 데 사용되는 개별적인 소프트웨어 패키지를 의미한다.

 

(2) VIB는 Software Dopot에서 사용 가능하고 VIB를 통해 ISO 이미지를 생성하고 VIB를 설치하여 호스트를 패치하거나 업그레이드할 수 있다.

 

 

 

 

1-2. Depot

(1) DepotESXi 호스트에 설치할 수 있는 패키지를 포함하는 ZIP 파일이다. 해당 파일에는 ESXi 운영 체제의 설치에 필요한 여러 소프트웨어 패키지나 VIB (VMware Installation Bundle) 파일들이 포함되어 있다.

 

(2) VIB 및 Software Profile의 모음으로 파일 및 폴더 Hierarchical 구조로 구성되어 있으며 .zip(오프라인 파일) 또는 HTTP URL(온라인 Depot) 파일을 통해 사용할 수 있다.

 

(3) Software Profile이란, ESXi 호스트의 전체적인 시스템 정보, 패키지, 드라이버, 각종 설정 정보 등이 포함된 일종의 시스템 프로파일이다.

 

 

 

 

1-3. Source Profile

(1) Source Profile이란 ESXi 호스트에서 사용 가능한 Software Profile 목록을 의미한다. ESXi의 시스템 이미지로, VMware에서 제공하는 호스트의 구성 및 Software Profile을 의미한다.

 

 

 

 

1-4. Image Profile

(1) ESXi 호스트 ISO 이미지 파일을 정의하는 파일이며, VIB로 구성되어 있다. 이미지 프로파일에는 기본 VIB가 임베디드되어 있고 ESXi Image Builder를 통해 검사되고 정의된다.

 

 

 

 

 

 

 

 

 

2. ESXi 호스트 Patch : CLI (esxcli software profile)

- 기본적으로 Offline Depot .zip 파일은 CLI 환경에서 패치를 위한 파일

- GUI 환경에서 패치할 경우 ISO 파일이 필요

  > GUI로 패치하는 경우 서버 벤더별로 커스텀된 ISO를 통해 LCM Baseline 등록 후 패치

    > 만약 대상 버전 커스텀 ISO가 없는 경우 직전 버전의 커스텀 ISO로 패치 후 Depot 파일 통해 헤당 버전으로 추가 패치

 

 

 

 

2-1. ESXi 호스트 데이터스토어에 Patch 파일 다운로드 &  호스트 유지 보수 모드 전환 

(1) 호스트 데이터스토어에 패치 파일을 다운로드받아 놓는다.

 

(2) 유지보수 모드 활성화

- esxcli system maintenanceMode set --enable true

 

(3) 유지보수 모드 비활성화

- esxcli system maintenanceMode set --enable false

 

 

 

 

2-2. esxcli software profile update로 패치 진행 

(1) software vib update, software profile update 두 가지 방법이 있다.

 

(2) software vib update는 호스트에 Install된 VIB만 업데이트하지만, software profile update의 경우 VIB를 업데이트하며 호스트에 없는 VIB는 추가 설치한다.

 

(3) 동일 Major Version은 vib/software profile update 둘 다 가능하지만 6.x → 7.x 업데이트의 경우 software profile update를 사용해야 한다.

 

(4) 또한 8.0u2 → 8.0u2d 과정에서 vib는 더 이상 지원되지 않고 software profile update로 패치해야 하는 과정이 있었다. 아래 공식문서 참조

https://knowledge.broadcom.com/external/article/380215/esxi-version-change-is-not-allowed-using.html

 

(5) 위와 같은 상황을 본다면, vib는 더 이상 지원되지 않고 software profile 커맨드가 활발하게 사용될 것으로 추측된다. 

 

(6) update, install 커맨드 차이

- update : 기존의 vib를 모두 profile의 vib로 업데이트하고, 시스템에 없는 vib를 추가로 설치한다.

- install : 기존 vib를 profile의 vib에 맞춰 전체 재설치한다.(vib 다운그레이드 발생할 수 있음.)

 

 

 

 

2-3. CLI 실제 패치 진행

(1) 현재 호스트 버전 확인

- esxcli software vib lsit | grep esx-base 또는 vmware -v

 

 

(2) 실습 환경의 경우 아래와 같이 7.0Un > 7.0Uo으로 패치를 진행했다.

 

 

(3) 패치를 진행할 ESXi 호스트 클라이언트로 접속해서 Depot .zip 파일을 아래와 같이 특정 Path에 다운로드 받는다.

 

 

 

(4) 패치 이전 호스트 유지 보수 모드 전환

- esxcli system maintenanceMode set --enable true

 

- 작업 해제 후 유지보수 모드 해제 시

esxcli system maintenanceMode set --enable false

 

 

- 호스트 유지보수 모드 Enabled / Disabled Status 확인

 esxcli system maintenanceMode get

 

 

(5) 만약 CLI상에서 유지 보수 모드를 걸었음에도 불구하고 수행이 되지 않는다면, vCenter로 접속하거나 호스트로 접속해서 vCLS 전원을 종료해 보고 진행해 본다.

 

 

(6) 업데이트 이전 위와 같이 Patch 파일 절대 경로를 확인하고, Patch 파일의 패키지명까지 확인한다.

- 패치 파일 패키지명 확인 Command

esxcli software sources profile list -d "패치 파일 절대 경로" 

 

 

(6) 패치 depot .zip이 저장된 데이터스토어 path로 이동하고 software profile update로 호스트를 패치한다.

- esxcli software profile update -p "패치 파일 패키지명" -d "패치 .zip 파일 절대 경로"

 

(7) 만약 패치 결과 예상값만 알고 싶다면 아래와 같이 --dry-run 옵션을 적용한다.

- esxcli software profile update -p "패치 파일 패키지명" -d "패치 .zip 파일 절대 경로" --dry-run

 

 

(7) 위와 같이 호스트 패치 내역이 출력된다. 성공 문구를 확인하고 호스트를 Rebooting 한다.

 

 

(8) ESXi 부팅 과정에서 패치 빌드번호가 7.0U3o(21930508) → 7.0U3n(22348816)로 변경된 것을 알 수 있다.

 

 

(9) 작업 종료 후 유지보수 모드를 해제한다.

 

 

(10) ESXi 버전을 위와 같이 확인할 수 있고 호스트 유지 보수 모드가 해제된 것을 확인할 수 있다.

 

 

 

 

 

 

 

 

 

3. ESXi 호스트 Patch : GUI (Lifecycle-Manager에서 Baseline 등록 후 Patch)

- LCM에서 ISO 파일 사용해서 Baseline 등록 후 Patch 작업

 

 

 

3-1. ESXi 호스트 패치 : GUI 환경에서 진행 : vSphere Auto Deploy, Lifecycle Manager

(1) vSphere Lifecycle Manager란 ESXi 호스트의 생명 주기를 중앙에서 제어할 수 있는 기능으로 여러 호스트를 병렬로 업데이트하는 등의 작업을 수행하여 작업 시간을 단축시킬 수 있다.

 

(2) GUI 환경에서 패치를 위해 vSphere 메뉴 > Lifecycle Manager로 접속한다.

 

 

 

 

3-2. Auto Deploy 메뉴에서 세부 패치 버전 depot에 대한 이미지 프로파일 추출도 가능

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(1) 이미지 빌더를 통해 해당 depot 파일 기준으로 부팅 가능한 ISO 이미지가 생성된다.

 

 

(2) 이전과는 다르게 이미지 프로파일 리스트에서 내보내기가 다운로드로 변경되어 있다. 이미지 파일을 다운로드받는다.

 

 

(3) 패치 대상 이미지 파일을 Lifecycle-Manager에 등록한다.

 

 

 

 

 

3-3. 이미지 프로파일을 기준으로 Lifecycle-Manager에서 패치를 위한 기준선 등록

(1) 위와 같이 라이프 사이클 매니저에 이미지 파일이 등록된다.

 

 

(2) 기준선을 생성하고 컨텐츠를 업그레이드로 잡는다.

 

 

 

 

 

 

3-4. 호스트에 기준선을 바탕으로 패치 진행

(1) 인벤토리 > 클러스터 > 호스트 > 업데이트 항목에서 연결된 기준선을 찾고 원하는 기준선이 없는 상황이기 때문에 "연결"을 통해 앞서 라이프사이클 매니저에서 추가한 기준선을 연결시킨다.

 

(2) 테스트 시 이미지 프로파일을 추출해 패치했지만 Broadcom에서 ISO 파일을 별도로 다운받고,  베이스라인을 등록한 뒤 패치한다.

 

 

(3) 생성한 베이스라인을 호스트에 연결한다.

 

 

(4) 해당 베이스라인을 바탕으로 업데이트를 적용시킨다.

 

 

(5) 패치 이전 ESXi 하이퍼바이저 빌드 버전을 확인한다

- 현재 7.0U3n(Build-21930508) 상태

 

 

(6) 업데이트를 위한 최종 라이센스 계약에 동의한다.

 

 

(7) 선택한 기준선이 맞는지 확인 후 업데이트를 적용한다.

- 호스트 업데이트 작업이니 유지보수 모드를 걸고 진행해야 한다.

 

 

(8) 호스트 업데이트(패치)가 진행된다.

 

 

(9) 패치 과정에서 유지보수 모드가 설정되어 있어야 한다. 만약 설정되어 있지 않다면 클러스터가 자체적으로 대상 호스트에 유지 보수 모드를 설정한다. 이후 DRS가 활성화되어 있다면 위와 같이 Running VM을 마이그레이션해야 한다. (테스트 환경에서 수동 옵션으로 설정되었으므로 자체적으로 vMotion을 진행했다)

 

 

(10) 정상적으로 호스트 패치가 진행된 것을 확인할 수 있다.

- 패치 확인 이후 유지보수 모드 해제

 

 

 

 

 

 

 

 

 

4. ESXi 호스트 업그레이드 : CLI (Offline Bundle)

- CLI 환경 업그레이드의 경우 서버 벤더별 Offline Bundle로 업그레이드 진행

  > 만약 대상 버전 커스텀 이미지가 없는 경우, 가장 최근 버전의 Bundle 파일로 업그레이드, 이후 대상 버전의 depot 파일로 추가 패치 진행

 

 

 

4-1. 테스트 환경

(1) 업그레이드 이전 : 7.0u3o(Build - 22348816)

(2) 업그레이드 이후 : 8.0u1(Build - 21495797)

 

 

 

 

4-2. 호스트 Datastore에 Bundle 파일 업로드

(1) 호스트 클라이언트 DS에서 Offline Bundle 파일을 특정 Path에 업로드한다.

 

 

 

 

4-3. ESXi CLI에서 업그레이드 진행

(1) vmware -v로 호스트 버전 및 빌드번호 확인

 

 

(2) 호스트 유지 보수 모드 활성화 

 

 

(3) 업그레이드를 위한 Bundle 파일 패키지 이름 조회

> esxcli software sources profile list -d <Offline bundle 파일 path>

 

 

(5) --dry-run 옵션으로 업그레이드 전 테스트 진행 가능

> esxcli software proflie update -d<Offline bundle 파일 path> -p <패키지 이름> --dry-run

 

 

(6) 실제 업그레이드 진행 & 위와 같이 Successfully가 뜨면 업데이트 성공이고 호스트 재부팅이 필요하다. 

> esxcli software profile update -d <offline bundle 파일 path> -p <패키지 이름>

 

 

 

 

4-4. 업그레이드 결과 확인

(1) 재부팅 후 유지 보수 모드를 해제한다.

 

(2) 8.0U1(Build-21495797) 버전으로 업그레이드가 완료되었다.

 

 

 

 

 

 

 

 

 

 

5. ESXi 호스트 업그레이드 : GUI(Life-Cycle Manager)

- LCM에서 커스텀된 .ISO 파일 사용해서 Baseline 등록 후 호스트 업그레이드 진행

 

 

 

5-1. Life-cycle Manager에서 Baseline 등록을 위한 업데이트 ISO 등록 및 기준선 연결

(1) 베이스라인 등록을 위해 ISO 파일을 LCM에 업로드한다.

 

 

(2) 해당 ISO 이미지를 바탕으로 업그레이드를 위한 베이스라인을 생성한다.

 

 

(3) 생성 과정에서 이름과 설명을 적어주고 베이스라인 컨텐츠 유형은 "업그레이드"를 체크한다.

 

 

(4) 업로드한 이미지 파일을 선택한다.

 

 

(5) 업데이트할 호스트의 업데이트 > 기준선 항목으로 접속한다.

 

 

(6) 하단으로 이동해서 "연결된 기준선 및 기준선 그룹" > "연결" > "기준선 또는 기준선 그룹 연결" 옵션을 클릭한다.

 

 

(7) 위와 같이 업그레이드를 위해 생성했던 베이스라인을 연결하도록 설정한다.

 

 

(8) 이후에 확인해 보면, 연결된 기준선 그룹에서 이전에 설정했던 새로운 베이스라인이 확인된다. 체크하고 "업데이트 적용"을 클릭하면 호스트 업그레이드가 vSphere Web Client GUI 상에서 진행된다.

 

 

 

 

5-2. 호스트 업그레이드 진행

(1) 업그레이드 이전 호스트 내부에 존재하는 VM은 모두 마이그레이션하고 호스트 유지 보수 모드를 활성화해야 한다. 

 

 

(1) 약관에 동의하고 다음으로 넘어간다.

 

 

(2) 업그레이드할 호스트인지 확인하고 "업데이트 적용"을 클릭한다.

 

 

(3) 작업 내역에서 보면 호스트 업그레이드가 진행되는 것을 확인할 수 있다. (시간이 다소 소요될 수 있다.)