:depot包詳解與避坑指南)
簡(jiǎn)介面向虛擬化運(yùn)維與管理人員提供 ESXi 8.0 Update 2 的離線 Depot 升級(jí)包版本號(hào)為 22380479適用于無外網(wǎng)或網(wǎng)絡(luò)受限環(huán)境下的補(bǔ)丁安裝、主機(jī)升級(jí)及集群批量維護(hù)。壓縮包共包含 124 個(gè)文件主體為 121 個(gè) VIB 驅(qū)動(dòng)與功能組件覆蓋基礎(chǔ)內(nèi)核、虛擬化底層、vSAN 分布式存儲(chǔ)、vSAN 健康檢查、集群存儲(chǔ)、傳輸通信、加密驅(qū)動(dòng)等模塊另有 2 個(gè) XML 描述文件用于元數(shù)據(jù)解析以及 1 個(gè) ZIP 內(nèi)層離線倉庫文件可通過 vSphere Lifecycle Manager 或 ESXCLI 命令直接離線導(dǎo)入與部署。資源整體約 587.17 MB已有 845 人學(xué)習(xí)下載。該離線包可幫助管理員獲得官方 8.0U2 補(bǔ)丁基線搭建內(nèi)部軟件源以批量升級(jí)多臺(tái)主機(jī)避免外網(wǎng)下載超時(shí)或合規(guī)風(fēng)險(xiǎn)也適合在隔離測(cè)試環(huán)境驗(yàn)證新版本特性、演練升級(jí)回退為生產(chǎn)環(huán)境補(bǔ)丁維護(hù)提供可靠保障。1. 拿到 VMware ESXi 8.0U2 離線包先搞清楚它到底是干什么的很多剛接觸虛擬機(jī)管理的同行一看到VMware-ESXi-8.0U2-22380479-depot.zip這種文件就以為是 ESXi 的安裝鏡像直接拿它去裝系統(tǒng)結(jié)果折騰半天裝不上。這個(gè)文件確實(shí)是 ESXi 8.0 U2 的東西但它的定位是離線升級(jí)包不是安裝盤。它的真實(shí)用途是讓你在沒有外網(wǎng)、沒有 VMware 官方源的情況下把一臺(tái)已經(jīng)運(yùn)行的 ESXi 主機(jī)從舊版本升級(jí)到 8.0U2 build 22380479。只要你有這個(gè) zip再配合esxcli software命令就能在隔離網(wǎng)絡(luò)里完成整臺(tái)宿主機(jī)內(nèi)核、驅(qū)動(dòng)、VMware Tools 的一體化更新。適合機(jī)房在內(nèi)網(wǎng)、無法訪問官方倉庫的虛擬化運(yùn)維場(chǎng)景也適合離線批量給多臺(tái)主機(jī)打補(bǔ)丁的團(tuán)隊(duì)。2. 選型之前先理解 depot 包它和 ISO 鏡像、在線倉庫到底差在哪2.1 depot 包的文件形態(tài)zip 里裝的是 VIB 和 profile這個(gè) zip 不是普通壓縮包它的內(nèi)部結(jié)構(gòu)是 VMware 定制的 depot 倉庫格式。解開之后里面是 metadata 文件、一堆.vib文件VMware Installation Bundle也就是驅(qū)動(dòng)、內(nèi)核模塊、工具集的小安裝包以及描述整個(gè)版本面貌的 profile 文件。用unzip -l看文件列表會(huì)看到類似這樣的結(jié)構(gòu)unzip -l VMware-ESXi-8.0U2-22380479-depot.zip | head -40 # 輸出里會(huì)有一堆 vmw-* 開頭的 .vib 文件 # 以及 metadata.xml 這樣的包描述文件為什么要理解這個(gè)結(jié)構(gòu)因?yàn)樯?jí)時(shí)你執(zhí)行的是esxcli software profile install -d depot路徑 -p profile名這里的-p參數(shù)指向的就是 depot 包里的 profile 名稱而不是 zip 文件名本身。很多人第一次升級(jí)時(shí)隨便寫了一個(gè) profile 名結(jié)果提示找不到就是因?yàn)闆]先列出 depot 里的 profile 列表。profile 相當(dāng)于一個(gè)「版本快照」它定義了安裝這個(gè)版本時(shí)默認(rèn)選哪些 VIB、不選哪些。同一個(gè) depot 包里可能有多個(gè) profile比如標(biāo)準(zhǔn)版、帶定制驅(qū)動(dòng)的版本升級(jí)前必須確認(rèn)目標(biāo) profile 的名稱和你的授權(quán)模式一致。然后要注意一點(diǎn)depot 包是用于esxcli命令的升級(jí)場(chǎng)景而 ESXi ISO 鏡像用于全新安裝installer.sh也能用 ISO 做升級(jí)但那是走 Installer 的安裝引導(dǎo)程序適用面比esxcli窄尤其是在已有大量配置和 VM 運(yùn)行的-production 環(huán)境中操作起來很別扭。所以我一般只在裸機(jī)裝機(jī)時(shí)用 ISO生產(chǎn)環(huán)境升級(jí)一律用 depot 包。2.2 離線升級(jí)與在線升級(jí)的取舍為什么非要用離線包在線升級(jí)走的是esxcli software profile update -d https://host/vmware-depot這種形式也就是說主機(jī)要能直接訪問 VMware 官方在線倉庫。但實(shí)際運(yùn)維環(huán)境里真正允許 ESXi 管理網(wǎng)絡(luò)直連公網(wǎng)的機(jī)房少之又少——要么是等保要求隔離要么是客戶網(wǎng)絡(luò)策略禁止主機(jī)出外網(wǎng)要么是跨地域的網(wǎng)絡(luò)延遲實(shí)在無法接受。這個(gè)時(shí)候離線包就成了唯一能走通的路。離線升級(jí)還有個(gè)隱含好處版本可控。在線升級(jí)每次拉到的 profile 狀態(tài)是動(dòng)態(tài)的如果倉庫端點(diǎn)調(diào)整了可能這回升級(jí)的內(nèi)容和上回不一樣出了問題不好復(fù)現(xiàn)。depot 文件一旦下載下來就固定了測(cè)試環(huán)境和生產(chǎn)環(huán)境用同一個(gè)文件、同一個(gè) profile升級(jí)行為可以完全一致。所以選型結(jié)論很簡(jiǎn)單內(nèi)網(wǎng)隔離環(huán)境、批量多主機(jī)升級(jí)、要求版本可復(fù)現(xiàn)就選離線 depot 包方案單臺(tái)實(shí)驗(yàn)機(jī)器且網(wǎng)絡(luò)可達(dá)官方源在線升級(jí)更省事但生產(chǎn)環(huán)境我建議還是走離線路線穩(wěn)。3. 升級(jí)前必須做足的功課版本確認(rèn)、兼容性檢查和配置備份3.1 先確認(rèn)當(dāng)前版本和 profile別拿錯(cuò)升級(jí)路徑拿到離線包之后第一件事不是上傳而是確認(rèn)當(dāng)前主機(jī)的版本基線。這一步?jīng)Q定了你是原地升級(jí)、跨版本升級(jí)還是需要先升到中間版本。ESXi 8.0U2 之前還有 8.0、8.0U1理論上 7.0U3 可以直接升 8.0U2但如果你是 6.x 的老版本就必須要先升級(jí)到 7.0U3再升到 8.0U2。這個(gè)坑在實(shí)際項(xiàng)目里踩過不少次有一次某個(gè)機(jī)房的幾臺(tái)舊機(jī)器還在 6.7同事直接拷 8.0U2 的包過去升級(jí)結(jié)果esxcli報(bào)了一堆 VIB 依賴錯(cuò)誤最后老老實(shí)實(shí)先升 7.0U3 再升 8.0。# 查看詳細(xì)版本信息包含 build 號(hào)和更新級(jí)別 vmware -vl # 查看當(dāng)前激活的 profile 名稱這個(gè)要和升級(jí)后的目標(biāo)對(duì)比 esxcli software profile get執(zhí)行vmware -vl會(huì)輸出類似VMware ESXi 8.0U1 build 21495797這樣一行字重點(diǎn)看 build 號(hào)。esxcli software profile get則展示當(dāng)前主機(jī)應(yīng)用的 profile 名稱和對(duì)應(yīng)的 VIB 數(shù)量這個(gè)就是舊版本的全家桶清單。參數(shù)說明vmware -vl沒有參數(shù)就是個(gè)版本打印工具esxcli software profile get的核心意義是告訴你當(dāng)前這臺(tái)機(jī)器處于什么「軟件組合狀態(tài)」升級(jí)完成后可以拿輸出和升級(jí)前做對(duì)比快速確認(rèn)有哪些 VIB 更新了。3.2 硬件兼容性這是升級(jí)翻車的頭號(hào)原因別省這一步ESXi 8.0 的一大特點(diǎn)是網(wǎng)絡(luò)驅(qū)動(dòng)變化巨大。8.0 開始 vmnic 的命名規(guī)則變了很多老網(wǎng)卡驅(qū)動(dòng)被移除部分只在 ESXi 7.0 時(shí)代還正常跑的板載網(wǎng)卡升級(jí)到 8.0 之后直接識(shí)別不出來導(dǎo)致主機(jī)重啟之后管理 IP 消失、失聯(lián)。所以升級(jí)前必須做兩件事一是對(duì)照兼容性列表HCL核對(duì)服務(wù)器型號(hào)、網(wǎng)卡型號(hào)、存儲(chǔ)控制器型號(hào)二是檢查當(dāng)前主機(jī)上的網(wǎng)卡驅(qū)動(dòng) VIB 情況。# 列出當(dāng)前主機(jī)所有 VIB 中跟網(wǎng)卡相關(guān)的驅(qū)動(dòng) esxcli software vib list | grep -i net # 列出存儲(chǔ)控制器驅(qū)動(dòng) esxcli software vib list | grep -i sata esxcli software vib list | grep -i nvme這里解釋一下grep -i net的作用把 VIB 名稱里包含 net 字樣的驅(qū)動(dòng)都篩查出來比如net50、net-e1000e、net-ixgbe等。如果目標(biāo)主機(jī)用的是比較老的 e1000e 驅(qū)動(dòng)而 8.0U2 的 depot 包里已經(jīng)把它移出默認(rèn) profile你就需要額外確認(rèn)自己的網(wǎng)卡是否還能被新版本支持或者考慮打定制驅(qū)動(dòng)。別在這上面想當(dāng)然很多「升級(jí)完主機(jī)失聯(lián)」的血淚教訓(xùn)本質(zhì)上就是驅(qū)動(dòng)兼容性問題不是升級(jí)過程的問題。還有一個(gè)細(xì)節(jié)存儲(chǔ)控制器。如果服務(wù)器用的是老款 SAS 控制器或非主流廠商的 RAID 卡升級(jí)前一定要核對(duì) HCL。ESXi 7.0 還能靠兼容模式驅(qū)動(dòng)跑起來的8.0 里可能直接不加載。升級(jí)完成后主機(jī)無法從本地存儲(chǔ)引導(dǎo)就只能進(jìn)維護(hù)模式重新分區(qū)非常痛苦。3.3 配置備份花五分鐘做一次備份給自己留張后悔藥升級(jí)本質(zhì)上是替換系統(tǒng)分區(qū)里的軟件組合。雖然 ESXi 的設(shè)計(jì)是升級(jí)不會(huì)動(dòng)配置和 VM 文件但實(shí)際操作中因?yàn)橐馔鈹嚯?、?qū)動(dòng)異常導(dǎo)致的引導(dǎo)失敗并不少見。所以備份配置是升級(jí)前必須走的一步而且這一步成本極低。# 將當(dāng)前主機(jī)的配置備份打包到指定目錄 vim-cmd hostsvc/firmware/backup_config # 或者備份到遠(yuǎn)程位置 mkdir -p /vmfs/volumes/datastore1/backup # 將生成的備份文件拷貝到共享存儲(chǔ)防止本機(jī)磁盤損壞時(shí)丟失 cp /tmp/configBundle-*.tgz /vmfs/volumes/datastore1/backup/vim-cmd hostsvc/firmware/backup_config會(huì)把主機(jī)的網(wǎng)絡(luò)配置、存儲(chǔ)配置、用戶權(quán)限、vSwitch 設(shè)置打包成一個(gè) tgz 文件輸出路徑會(huì)直接顯示在命令回顯里。這個(gè)備份是回滾配置的基礎(chǔ)萬一升級(jí)后需要恢復(fù)到升級(jí)前的網(wǎng)絡(luò)狀態(tài)用vim-cmd hostsvc/firmware/restore_config就能還原。參數(shù)說明backup_config沒有額外參數(shù)但它生成的文件名里帶主機(jī)名和時(shí)間戳。注意備份文件默認(rèn)生成在/tmp而/tmp是內(nèi)存盤重啟后內(nèi)容會(huì)丟所以必須立刻拷貝到持久化存儲(chǔ)里。這一點(diǎn)很多人不知道備份完就放那里了結(jié)果主機(jī)一重啟備份也沒了。4. 核心動(dòng)手環(huán)節(jié)上傳 depot 包、校驗(yàn) profile、執(zhí)行升級(jí)4.1 把 depot 包傳到數(shù)據(jù)存儲(chǔ)并驗(yàn)證文件完整性先把 zip 包上傳到 ESXi 主機(jī)的 datastore 里。一般是傳到本地 VMFS 卷也可以傳到共享存儲(chǔ)。上傳方式很多我常用的是 WinSCP 或 SCP路徑放在/vmfs/volumes/datastore1/下面建一個(gè)upgrade目錄單獨(dú)存放避免和數(shù)據(jù)文件混在一起。# 先看 datastore 名稱和可用空間確認(rèn)空間足夠 df -h /vmfs/volumes/datastore1 # 創(chuàng)建一個(gè)專門存放升級(jí)包的目錄 mkdir -p /vmfs/volumes/datastore1/upgrade # 用 scp 從管理機(jī)推送到 ESXi在管理機(jī)上執(zhí)行 scp /local/path/VMware-ESXi-8.0U2-22380479-depot.zip rootesxi-ip:/vmfs/volumes/datastore1/upgrade/文件傳完之后最好做一次 MD5 校驗(yàn)防止傳輸過程中文件損壞。有些離線包體積在 3GB 左右大文件長時(shí)間傳輸難免出錯(cuò)。校驗(yàn)方法是在 ESXi 端用esxcli自帶的校驗(yàn)或者依賴 depot 包安裝時(shí)的內(nèi)部元數(shù)據(jù)完整性檢查如果包損壞esxcli會(huì)直接報(bào)錯(cuò)不會(huì)動(dòng)到系統(tǒng)。4.2 列出 depot 包內(nèi)可用 profile確認(rèn)升級(jí)目標(biāo)這一步是升級(jí)操作前的最后一道檢查。執(zhí)行下面的命令depot 包里的所有 profile 名稱會(huì)列出來。需要重點(diǎn)關(guān)注的是 profile 名稱末尾是standard、s-standard還是別的定制串這決定了命令怎么寫。# 列出 depot 包里的所有 profile 版本 esxcli software sources profile list -d /vmfs/volumes/datastore1/upgrade/VMware-ESXi-8.0U2-22380479-depot.zip這個(gè)命令輸出比我們?nèi)庋蹚奈募碌降囊唷M粋€(gè) depot 包往往會(huì)包含多個(gè)類似但不完全相同的 profile比如ESXi-8.0U2-22380479-standard和ESXi-8.0U2-22380479-no-tools。-d參數(shù)指定 depot 路徑路徑必須是絕對(duì)路徑且要能被當(dāng)前 ESXi 直接讀取。確認(rèn)好你要的 profile 名稱之后再執(zhí)行正式的升級(jí)安裝。4.3 執(zhí)行升級(jí)安裝install 命令的完整參數(shù)解讀這里有一個(gè)關(guān)鍵概念——esxcli software profile install和update的區(qū)別install是強(qiáng)制將當(dāng)前主機(jī)切換到指定 profile 的狀態(tài)無論舊版本是什么它會(huì)升級(jí)、降級(jí)或刪除所有不一致的 VIB把主機(jī)最終校準(zhǔn)到目標(biāo) profileupdate則只升級(jí)版本號(hào)更高的 VIB不會(huì)處理降級(jí)或刪除。我們離線升級(jí)的場(chǎng)景下通常用install因?yàn)樗芴幚砜缧“姹镜囊蕾囎兓鼜氐住? 將主機(jī)升級(jí)到 ESXi 8.0U2 目標(biāo) profile并允許自動(dòng)移除沖突的舊 VIB esxcli software profile install \ -d /vmfs/volumes/datastore1/upgrade/VMware-ESXi-8.0U2-22380479-depot.zip \ -p ESXi-8.0U2-22380479-standard \ --ok-to-remove參數(shù)拆解-d指向 depot 包完整絕對(duì)路徑位置不能寫錯(cuò)。-p指定目標(biāo) profile 名稱必須來自上一步profile list的輸出不能自己憑記憶寫。--ok-to-remove允許升級(jí)過程移除不再被依賴的舊 VIB。不加這個(gè)參數(shù)時(shí)如果系統(tǒng)檢測(cè)到有舊 VIB 會(huì)被新 profile 替換掉會(huì)直接中止。建議加上但要注意它會(huì)刪除可能影響其他軟件的功能如果是特殊定制驅(qū)動(dòng)環(huán)境要謹(jǐn)慎。執(zhí)行完成后系統(tǒng)會(huì)提示你是否需要重啟。升級(jí)命令執(zhí)行完畢輸出類似Installation Result的消息里面會(huì)列出每個(gè) VIB 的狀態(tài)VIBs Installed、VIBs Updated、VIBs Removed??吹竭@些字段后主機(jī)的軟件組合就已經(jīng)變成 8.0U2 了但生效必須重啟。# 確認(rèn)沒有報(bào)錯(cuò)后重啟主機(jī) reboot這里提醒一個(gè)細(xì)節(jié)如果這臺(tái)主機(jī)是被 vCenter 納管的重啟前最好先把主機(jī)置于維護(hù)模式然后在 vCenter 里把該主機(jī)斷開再重啟否則 vCenter 那邊會(huì)有連接告警雖然不影響最終升級(jí)但會(huì)給監(jiān)控帶來噪音。我自己習(xí)慣的操作是在 vCenter 里通過「進(jìn)入維護(hù)模式」把主機(jī)負(fù)載遷走再通過 SSH 執(zhí)行升級(jí)命令最后讓 vCenter 自動(dòng)處理主機(jī)的重連。4.4 升級(jí)命令失敗時(shí)先從日志里找原因執(zhí)行升級(jí)過程中如果輸出報(bào)錯(cuò)信息不要慌著反復(fù)重試先去翻日志。ESXi 會(huì)把升級(jí)過程的詳細(xì)日志寫在/var/log/esxupdate.log和/var/log/hostd.log里。最常見的失敗原因是 VIB 依賴不滿足、空間不足、depot 包損壞這幾類。# 查看升級(jí)日志的最后 100 行 tail -100 /var/log/esxupdate.log空間不足是離線升級(jí)里比較容易翻車的點(diǎn)ESXi 系統(tǒng)分區(qū)預(yù)留空間很小部分老版本升級(jí) 8.0U2 時(shí)需要的臨時(shí)空間比較大如果系統(tǒng)分區(qū)可用空間不足會(huì)在初始校驗(yàn)階段就報(bào)Not enough space on filesystem。遇到這種情況要先清理/bootbank和/altbootbank下不再需要的舊 VIB 文件或者用esxcli software vib remove清理冗余驅(qū)動(dòng)。不過這個(gè)操作要小心別把還在用的驅(qū)動(dòng)刪了。5. 避坑指南離線升級(jí) ESXi 8.0U2 最容易踩的六個(gè)坑5.1 網(wǎng)卡驅(qū)動(dòng)兼容性導(dǎo)致升級(jí)后失聯(lián)現(xiàn)象主機(jī)升級(jí)完成后重啟管理 IP ping 不通主機(jī)直接黑了需要物理接顯示器或者通過 iLO/IPMI 才能看到系統(tǒng)已經(jīng)起來了但網(wǎng)卡狀態(tài)是 down。原因ESXi 8.0 默認(rèn)移除了部分老舊網(wǎng)卡驅(qū)動(dòng)的支持尤其是部分舊版板載 Realtek、Intel I219 系列網(wǎng)卡原本在 7.0 下用的驅(qū)動(dòng)在 8.0U2 的默認(rèn) profile 里直接不存在了。解決升級(jí)前往/etc/vmware/esx.conf和esxcli software vib list里確認(rèn)網(wǎng)卡驅(qū)動(dòng)名提前去廠商官網(wǎng)下載對(duì)應(yīng) ESXi 8.0 驅(qū)動(dòng) VIB打進(jìn) depot 包生成新 profile或者在升級(jí)命令中額外指定-d多個(gè) depot 源讓它一起安裝。有人說「升級(jí)后加驅(qū)動(dòng)不就行了」但那是馬后炮主機(jī)都失聯(lián)了你還怎么加驅(qū)動(dòng)所以驅(qū)動(dòng)檢查必須前置。5.2 vCenter 納管的主機(jī)升級(jí)后在 vCenter 里顯示連接不上現(xiàn)象升級(jí)完成并重啟后主機(jī)本身正常、虛擬機(jī)也正常跑但 vCenter 里這臺(tái)主機(jī)顯示「未響應(yīng)」或「已斷開連接」。原因升級(jí)期間主機(jī)和 vCenter 之間的 agent 通信中斷并且軟件組合變化后 vCenter 需要重新識(shí)別。正常流程應(yīng)該先在 vCenter 里把主機(jī)置于維護(hù)模式再升級(jí)重啟后 vCenter 會(huì)自動(dòng)重連如果跳過了這些步驟重連偶爾會(huì)失敗。解決在 vCenter 里對(duì)這臺(tái)主機(jī)執(zhí)行「斷開連接」再「重新連接」一般就能恢復(fù)。如果還是不行重啟 hostd 服務(wù)/etc/init.d/hostd restart和/etc/init.d/vpxa restart注意 vpxa 是從 vCenter 安裝后才有的服務(wù)檢查別遺漏。5.3 profile 名寫錯(cuò)導(dǎo)致命令直接報(bào)錯(cuò)現(xiàn)象執(zhí)行esxcli software profile install后報(bào)Profile not found或No such profile。原因-p參數(shù)要求的是 depot 包 metadata 里的 profile 名稱不是 zip 文件名。很多文檔里寫的一定要確認(rèn)但總有人圖省事自己猜一個(gè)。解決嚴(yán)格執(zhí)行「先 list 再 install」兩步走把esxcli software sources profile list的輸出復(fù)制粘貼進(jìn)-p參數(shù)不要手打。這條看起來很簡(jiǎn)單但確實(shí)是高頻翻車點(diǎn)。5.4 VIB 依賴報(bào)錯(cuò)提示需要其他驅(qū)動(dòng)才能繼續(xù)現(xiàn)象升級(jí)執(zhí)行到一半報(bào)某個(gè) VIB 需要依賴另一個(gè)不存在的 VIB 從而中止。原因環(huán)境里有第三方定制驅(qū)動(dòng)、舊版驅(qū)動(dòng)和新版 depot 包的 VIB 形成依賴循環(huán)或缺口。離線包只是官方標(biāo)準(zhǔn) VIB 集如果宿主機(jī)有額外安裝的 OEM 驅(qū)動(dòng)這個(gè)矛盾就會(huì)暴露。解決先執(zhí)行esxcli software vib list把所有非官方 VIB 名稱找出來確認(rèn)升級(jí)過程中是否會(huì)被移除。需要保留的驅(qū)動(dòng)必須找到對(duì)應(yīng) 8.0 版本重新封裝進(jìn) depot再執(zhí)行升級(jí)。這個(gè)過程比較繁瑣建議在測(cè)試機(jī)先做一遍。5.5 升級(jí)后提示無法引導(dǎo)或引導(dǎo)卡死現(xiàn)象重啟后狀態(tài)停留在引導(dǎo)加載器界面或者反復(fù)重啟。原因ESXi 雙引導(dǎo)分區(qū)的機(jī)制導(dǎo)致升級(jí)時(shí)/bootbank寫入了新內(nèi)核但/altbootbank里還是舊內(nèi)核校驗(yàn)不一致時(shí)引導(dǎo)器無法找到可用的內(nèi)核。這個(gè)原因相對(duì)少見多發(fā)生在磁盤異常或升級(jí)中途斷電。解決在引導(dǎo)菜單選擇「舊版本」先進(jìn)入系統(tǒng)然后重新執(zhí)行一次升級(jí)命令讓它重寫兩個(gè)引導(dǎo)分區(qū)。如果兩個(gè)分區(qū)都進(jìn)不去就得用 ESXi 安裝 ISO 啟動(dòng)進(jìn)入救援模式從備份恢復(fù)。這正是升級(jí)前備份配置的價(jià)值所在。5.6 磁盤空間滿導(dǎo)致升級(jí)中途中斷現(xiàn)象升級(jí)初始階段報(bào)Not enough space或者是升級(jí)到一半提示寫入失敗。原因ESXi 系統(tǒng)分區(qū)容量很小舊版系統(tǒng)上可能堆積了多輪補(bǔ)丁留下的臨時(shí)文件。離線包體積大解壓和寫入需要臨時(shí)空間翻倍。解決升級(jí)前用df -h /bootbank和df -h /altbootbank查看余量。如果空間不足在/bootbank里清理以vmtb-或vmw-開頭的臨時(shí) VIB 文件。保守做法是先把當(dāng)前正常運(yùn)行的配置做好備份刪除/var/log里超過一個(gè)月的日志再重試升級(jí)。這里尤其注意不要手動(dòng)刪除/bootbank里的.vib文件只清除臨時(shí)文件。6. 升級(jí)完成后的驗(yàn)證清單與回滾技巧主機(jī)重啟之后先別急著跑業(yè)務(wù)驗(yàn)證按順序走一遍下面的檢查。先是版本確認(rèn)登錄 ESXi 后執(zhí)行# 確認(rèn)版本號(hào)和 build 號(hào)已經(jīng)更新到目標(biāo)版本 vmware -vl # 確認(rèn)當(dāng)前激活的 profile 是 ESXi-8.0U2-22380479-standard esxcli software profile get如果版本和 build 號(hào)和 depot 包對(duì)應(yīng)上了說明系統(tǒng)層面升級(jí)成功。接下來要驗(yàn)證的是網(wǎng)絡(luò)和虛擬機(jī)狀態(tài)。esxcli network ip interface list確認(rèn)管理 IP 正常esxcli vm process list確認(rèn)所有虛擬機(jī)都在運(yùn)行列表中。有些時(shí)候升級(jí)后 host 正常但虛擬機(jī)沒自動(dòng)拉起來這通常是因?yàn)橹鳈C(jī)在維護(hù)模式下重啟。驅(qū)動(dòng)驗(yàn)證別只看vmware -vl要確認(rèn)具體的關(guān)鍵驅(qū)動(dòng)版本確實(shí)變了# 查看所有網(wǎng)卡驅(qū)動(dòng)當(dāng)前版本和升級(jí)前的輸出做對(duì)比 esxcli network nic list # 查看存儲(chǔ)適配器是否正常識(shí)別 esxcli storage core adapter list最后一步是功能冒煙測(cè)試登錄虛擬機(jī)內(nèi)部看網(wǎng)絡(luò)和存儲(chǔ)正常在 vCenter 里確認(rèn)主機(jī)連接正常、屬性和告警全部清除。到這里整個(gè)升級(jí)流程才算真正走完。回滾這件事很多人以為能像軟件升級(jí)那樣「一鍵還原」但 ESXi 的情況特殊。如果你升級(jí)后發(fā)現(xiàn)問題第一時(shí)間執(zhí)行# 將主機(jī)恢復(fù)到升級(jí)前的 profile前提是你還留著舊版本 depot 包 esxcli software profile install \ -d /vmfs/volumes/datastore1/upgrade/VMware-ESXi-8.0U2-22380479-depot.zip \ -p 舊profile名 \ --ok-to-remove注意這套回滾方法只適用軟件組合層面的異常比如某個(gè)驅(qū)動(dòng)在 8.0U2 有 bug、某些 VM 出現(xiàn)兼容性問題之類。如果升級(jí)中引導(dǎo)分區(qū)已經(jīng)損壞回滾就只能靠配置備份和 ISO 安裝盤。所以升級(jí)前那一份configBundle備份就是整個(gè)操作真正的兜底保障。給新手的建議是第一次做 ESXi 8.0U2 離線升級(jí)時(shí)先在測(cè)試機(jī)上完整走一遍上面這套流程記錄升級(jí)過程各階段命令的輸出特別是 VIB 變化量和報(bào)錯(cuò)信息。再把正式升級(jí)時(shí)的差異點(diǎn)寫下來晾在一邊對(duì)照著執(zhí)行。從那以后我每次做升級(jí)都強(qiáng)制走一遍「?jìng)浞菖渲?→ 檢查驅(qū)動(dòng) → list profile → install → 驗(yàn)證版本通知」哪怕操作過 N 次也同步做這臺(tái)機(jī)器升級(jí)前和升級(jí)后的所有狀態(tài)都留有記錄出了問題能在五分鐘內(nèi)判定要不要回滾。希望這些踩坑記錄能幫你在離線升級(jí) ESXi 的路上少走幾次彎路。本文還有配套的精品資源點(diǎn)擊獲取