# ESXi Bug Fix & Upgrade

升級或更新 ESX 主機步驟

#### 用 SSH 方式

以 SSH Client 登入 vSphere 主機進行軟體修正程序。

> NOTE: vSphere 主機必須事先**手動**啟用 SSH 服務。

##### 上傳更新/升級檔至主機

從官網下載的更新/升級檔 `esxi6.5uX-mgmt-bundle-3.4.5-8.zip` 上傳到 vSphere 主機的任一個 datastore。

- 更新檔：修正 Bug，檔名 \*-bundle-\*.zip
- 升級檔：ESXi 版本升級，檔名 \*-depot.zip

> NOTE:   
> \- 不同的 vSphere 版本會有相對應的特定更新/升級檔，必須下載正確的版本。  
> \- zip 檔案**不需要**解壓縮。  
> \- 升級 ESX 軟體時，不能使用 \*.iso 安裝檔

##### 檢查系統版本資訊

vSphere 軟體版本

```
[root@tpeitpesx-a02:~] esxcli system version get
   Product: VMware ESXi
   Version: 6.5.0
   Build: Releasebuild-10719125
   Update: 2
   Patch: 67
```

vSphere 安裝紀錄

```
[root@tpeitpesx-a02:~] esxcli software profile get
(Updated) HPE-ESXi-6.5.0-Update1-iso-650.U1.10.1.3.3
   Name: (Updated) HPE-ESXi-6.5.0-Update1-iso-650.U1.10.1.3.3
   Vendor: Hewlett Packard Enterprise
   Creation Time: 2019-06-14T03:16:25
   Modification Time: 2019-06-14T03:16:35
   Stateless Ready: True
   Description:

      2019-06-14T03:16:25.647136+00:00: The following VIBs are
      installed:
        ilo   650.10.3.0.2-1OEM.650.0.0.4240417
        nmlx4-rdma    3.16.11.6-1OEM.650.0.0.4598673
        scsi-iscsi-linux-92   1.0.0.2-3vmw.650.0.0.4564106
        sata-sata-sil 2.3-4vmw.650.0.0.4564106
        shim-libata-9-2-2-0   6.5.0-0.0.4564106
...
...
      ----------
      HPE Custom Image Profile for ESXi 6.5.0 ISO

   VIBs: amsd 650.11.4.0-18.4240417, ata-libata-92 3.00.9.2-16vmw.650.0.0.4564106, ...
```

> TIP:   
> \- 列出最開始 ISO 的安裝與之後做過的所有更新記錄。  
> \- 如有執行升級，這裡 profile 的版本資訊並不會更新。

##### 檢查更新/升級檔的資訊

上傳目錄: `/vmfs/volumes/{your-datastore-name}/{path-to-the-file}`

```
[root@tpeitpesx-a02:~] esxcli software sources vib list -d /vmfs/volumes/LocalDisk/Patches/esxi6.5uX-mgmt-bundle-3.4.
5-8.zip
Name           Version                            Vendor  Creation Date  Acceptance Level  Status
-------------  ---------------------------------  ------  -------------  ----------------  ---------
amsd           650.11.4.5-18.4240417              HPE     2019-07-19     PartnerSupported  Update
fc-enablement  650.3.4.0.10-4240417               HPE     2019-03-12     PartnerSupported  Installed
cru            650.6.5.10.4-1OEM.650.0.0.4240417  HPE     2018-04-04     PartnerSupported  Installed
ilo            650.10.3.0.2-1OEM.650.0.0.4240417  HPE     2018-03-29     PartnerSupported  Installed
smx-provider   650.03.15.00.4-4240417             HPE     2018-08-29     VMwareAccepted    Installed
```

> TIP: 透過這指令可以在\*\*安裝前\*\*，列出那些套件將會被更新。以本次為例，這次更新主要是針對 amsd 套件的 bug 重要修正。  
> Before: **amsd 650.11.4.0-18.4240417**  
> After: **amsd 650.11.4.5-18.4240417**

##### 安裝更新/升級檔

1. **關閉或遷移**主機上所有的 VMs
2. **啟用**主機的 Maintenance Mode
3. 開始安裝更新/升級檔
4. 重啟主機
5. **關閉**主機的 Maintenance Mode
6. 開啟所有 VMs

啟用/關閉 **Maintenance Mode** (也可以改用 GUI 操作)

```shell
# 啟用
vim-cmd hostsvc/maintenance_mode_enter

# 關閉
vim-cmd hostsvc/maintenance_mode_exit
```

安裝更新/升級檔

> 應該要用哪種方式升級，這很難有個絕對答案。比較安全的方式，是用 update；而 install 才會安裝完整最新的套件。對於某些情況下也有可能這兩種方式沒有差異。官方說明參閱 [“esxcli software vib” commands to patch an ESXi 6.x/7.x host (2008939) (vmware.com)](https://kb.vmware.com/s/article/2008939?lang=en_us)

- install : 安裝、升級/降級套件
- update : 僅更新既有套件
- -d : *.zip* 檔
- -v : *.vib* 檔

```shell
esxcli software vib update --dry-run -d "/vmfs/volumes/LocalDisk/Patches/esxi6.5uX-mgmt-bundle-3.4.5-8.zip"
esxcli software vib update -d "/vmfs/volumes/LocalDisk/Patches/esxi6.5uX-mgmt-bundle-3.4.5-8.zip"

esxcli software vib install --dry-run -d "/vmfs/volumes/LocalDisk/Patches/ESXi670U3-18828794-HPE-Gen9plus-depot.zip"
esxcli software vib install -d "/vmfs/volumes/LocalDisk/Patches/ESXi670U3-18828794-HPE-Gen9plus-depot.zip"
```

##### 更新後的檢查

確認 `amsd` 更新後的版本號

```shell
esxcli software vib list | grep amsd
```