站長新書 站長開講 首頁 最新文章 站長著作及審校 FreeBSD 筆記 Linux 筆記 Windows 筆記 虛擬化筆記 網管人雜誌 遊山玩水 關於本站
站長新書 VMware vSphere ICM 團購開跑了!!

ESXi 5.0 修正補強運作更穩定

網管人雜誌

本文刊載於網管人雜誌第 82 期 - 2012 年 11 月 1 日出刊,[NetAdmin 網管人雜誌] 為一本介紹 Trend Learning 趨勢觀念、Solution Learning 解決方案、Technology Learning 技術應用的雜誌,下列筆記為本站投稿網管人雜誌獲得刊登的文章,網管人雜誌於每月份 1 日出刊您可於各大書店中看到它或透過下列圖示連結至博客來網路書店訂閱它。

訂閱: 網管人雜誌

前言

雖然虛擬化技術的 Hypervisor 非常精簡,然而只要是程式開發所撰寫出來的軟體產物,就或多或少會有 臭蟲(Bugs)、安全性更新(Security)、重大修補(Critical)…等更新需要修正或修補,並且在最新VMware vSphere ESXi 5.0 虛擬化技術平台當中,VMware 官方也正式宣佈將含有 COS(Console OS)也就是採用 Redhat Enterprise Linux 5.2 作業系統(Kernel 2.6.x)所開發改寫而成的 Hypervisor,宣佈使其正式走入歷史(也就是日後僅會發佈 ESXi Hypervisor)。

採用 ESXi Hypervisor 虛擬化平台之後,除了因為將 COS(Console OS)移除使得整體空間佔用降低之外(ESX 約 2GB、ESXi 約 150MB),以及在相關安全性更新數量也減少許多的同時,在功能性上也增加不少,如圖 1 所示您可以看到舊版 ESX/ESXi 4.1 與新版 ESXi 5.0 的功能性比較表(詳細功能比較資訊請參考 VMware KB-2005377),ESX 作得到的功能 ESXi 都可以達成甚至更多。

圖1、VMware vSphere ESX/ESXi 4.1 與 ESXi 5.0 功能比較表 圖片來源: [VMware 官網 – VMware ESXi and ESX Info Center]

實作環境

安全性更新方式

本篇實作將會採用二種更新方式來為 ESXi 5.0 Host 安裝安全性更新檔案,首先為最簡單的方式也就是下載最新版本的 ISO 映象檔,插入至 ESXi 5.0 主機光碟機後在 Console 端直接進行更新,或者您也可以採用 ESXi Shell(esxcli)指令方式(已不支援舊版的 esxupdate 指令),將更新檔進行下載後手動上傳到 ESXi Host 的儲存資源中,確定相關資訊無誤便可進行安裝,以下為這二種更新方式整體更新流程運作說明:

更新方式一、ESXi Console(Console 互動更新)

  1. 下載最新版本 ISO 映象檔並燒錄成安裝光碟。
  2. 將運作中的 VM 虛擬主機關機或遷移至別台 ESXi Host 上。
  3. 採用管理者帳號及密碼登入 ESXi Host Console之後重新啟動主機。
  4. 在 ESXi Console 端採用更新光碟進行互動式更新作業,完成後再次重新啟動主機。
  5. 檢查 ESXi Host 的 Build Number 號碼確認是否更新成功。
  6. ESXi Host 離開維護模式後將 VM 虛擬主機啟動上線運作。

更新方式二、ESXi Shell(本機更新)

  1. 透過 vSphere Client 手動上傳更新檔案(.zip 不需解壓縮)至 ESXi Host 儲存資源。
  2. 使用 vSphere Client 或 esxcli 指令設定 ESXi Host 進入維護模式。
  3. 使用 ESXi Host Shell 或 SSH 遠端連線檢查 Depot 更新檔案資訊。
  4. 手動安裝 Depot 更新檔案之後將 ESXi Host 重新啟動以套用生效。
  5. 開啟 ESXi Host Shell 或 SSH 遠端連線,檢查 ESXi Host 的 Build Number 號碼及相關資訊確認更新是否成功。
  6. ESXi Host 離開維護模式後將 VM 虛擬主機啟動上線運作。

ESXi Console(Console 互動更新)

請至 VMware 官網(http://0rz.tw/ouwUY)下載最新版本更新,目前最新版本更新為 Update01(類似於 Windows 的 Service Pack),請將該 ISO 映象檔下載後燒錄成更新光碟。

在進行更新以前請記得將其上所運作的 VM 虛擬主機進行關機,或者遷移到其它台 ESXi Host 上繼續運作,因為執行 Console 互動更新前會重新啟動主機一次,並且在執行互動更新完成之後也將會重新啟動主機一次。

請將含有 Update01 的更新光碟插入至欲更新的 ESXi 5.0 Host 光碟機中,接著於 DCUI(Direct Console User Interface)畫面中按下「F12」鍵後輸入管理者帳號及密碼,然後按下「F11」鍵重新啟動主機(如圖 2 所示)。

圖2、於 ESXi DCUI 畫面按下 F11 鍵重新啟動主機

請確認 BIOS 已設定採用 CD/DVD 光碟機開機,接著在更新程序當中依畫面指示進行互動更新操作,您會看到更新程序偵測到目前光碟片中的版本相較於 ESXi Host 硬碟中的版本較新,因此便會出現詢問視窗,詢問您是否要更新(升級)或重新安裝,請選擇「Upgrade ESXi, preserve VMFS datastore」項目即可(如圖 3 所示),當更新程序執行完畢後系統會提示您必須要重新啟動主機以套用生效(請記得退出更新光碟片)。

圖3、選擇 Upgrade ESXi, preserve VMFS datastore 項目進行更新

當 ESXi 虛擬化平台重新啟動之後,您可以在 DCUI 畫面中輕易看到 VMKernel Release Build 號碼已經更新升級了,由原本的 469512 更新升級至 623860(如圖 4 所示)。

圖4、重新啟動後可發現 VMKernel Release Build 號碼已經更新升級了

了解何謂 VIB 及 Depot

在介紹另外另一種更新方式為 ESXi Host 安裝安全性更新以前,先了解一下關於虛擬化平台更新的二個技術名詞「VIB」及「Depot」:

簡單來說,您可以將 VIB 軟體或應用程式,視為是幫 ESXi Host 虛擬化平台所安裝的 驅動程式、應用程式、硬體監控…等套件包,VMware 官方將 VIB 軟體規劃為四種驗證等級,您其實可以把 VIB 套件視同 Microsoft 為了 Windows 作業系統的驅動程式進行認證一樣的道理,這樣的軟體驗證等級措施都是為了要保持運作平台的穩定性而設計的。

在預設的情況下 VIB 以及 ESXi Host 都有其驗證等級,要將 VIB 安裝至 ESXi Host 則二者的驗證等級至少必須相同才行,例如 ESXi Host 驗證等級為 PartnerSupported 時,則無法安裝驗證等級為 CommunitySupported 的 VIB 軟體,當然您可以手動設定變更 ESXi Host 的驗證等級(VIB 套件則無法變更),以便手動安裝所取得的 VIB 軟體,不過若因此而導致 ESXi Host 平台運作不穩定時則必須自行負責(不在 VMware 原廠的保固範圍內),因此VMware 官方也不建議您輕易變更 ESXi Host 的驗證等級,以下為四種驗證等級及說明:(等級由最高至最低)

下載最新發佈安全性更新檔案

請至 VMware 官方網站下載相關更新,您可以依照虛擬化平台類型(by Product)或是依照發行名稱(Release Name)及建立號碼(Build Number)進行搜尋的動作,本篇實作中以採用虛擬化平台類型進行搜尋,請於「Search by Product」區塊中先選擇虛擬化平台類型為「ESXi(Embedded and Installable)」版本為「5.0.0」,後續欄位中第一個下拉式選單為針對種類進行下載共三種項目可供選擇分別是 安全性更新(Security)、臭蟲修正(Bug Fix)、增強功能(Enhancement),而第二個下拉式選單則是該種類的等級,一共有四種可供選擇分別是 緊急(Critical)、重要(Important)、中等(Moderate)、低(Low),選擇完成後即可按下「搜尋(Search)」鍵,此時網頁便會顯示適合您平台版本以及剛才所選擇的相關更新項目。

圖5、選擇欲下載更新的類型及重要性

目前 ESXi 5.0 虛擬化平台中所發佈的安全性更新(Security Patch)中,距離目前最近的大版本更新為 Update01(類似 Windows 的 Service Pack),其它則是各別的更新項目,由於安裝方式是相同的因此本文將以 VMware 官方所發佈的最新更新 Update01 為例進行實作,請勾選需要下載的更新項目,在此頁面中您可以看到有關於此更新的說明,例如 針對此更新的描述(Description)、詳細說明內容(VMware KB)、類別(Category)、重要程度(Severity),本文中 VMware 官方所發佈最新的更新資訊如下:

圖6、下載最新發佈的大版本安全性更新 Update01

ESXi Shell 本機更新

請使用 vSphere Client 登入至 ESXi 5.0 主機(目前 Build Number 為 469512),依序點選「Summary >> Resources >> Storage >> datastore1」項目之後,接著按下滑鼠右鍵選擇「Browse Datastore」項目,以進入 ESXi Host 的儲存資源 Datastore 管理視窗。

接著於 Datastore Browser 視窗中點擊上傳圖示(綠色向上箭頭圖示),點選「Upload File」項目後選擇存放於 vSphere Client主機中的更新檔案「update-from-esxi5.0-5.0_update01.zip」,確定後將會開始上傳更新檔案至 ESXi Host 平台儲存資源中。

圖7、上傳 Update01 更新檔案至 ESXi Host Datastore

若您要在 ESXi Host 的 Console 上以指令執行稍後的資訊檢查以及安裝更新動作的話,則請確定已經啟動 ESXi Shell 服務(如圖 8 所示),若是欲採用 putty 工具遠端連線至 ESXi Host 執行安裝動作的話則請確定已經啟動 SSH 遠端管理服務(如圖 9 所示)。

圖8、於 DCUI 介面啟動 ESXi Shell 功能 圖9、於 DCUI 介面啟動 SSH 遠端管理功能

接著使用查詢指令「esxcli software sources vib list --depot」配合剛才上傳的更新檔案路徑,即可查詢此軟體更新組合包內所有 VIB 的驗證等級,接著使用指令「esxcli software acceptance get」來查詢 ESXi Host 的驗證等級,便可以看到此最新發佈的更新檔案中 VIB 的驗證等級為 VMwareCertified,其驗證等級大於 ESXi Host 預設的 PartnerSupported 等級,因此後續您將可以放心能夠安全無誤的進行安裝作業。

 #esxcli software sources vib list --depot=/vmfs/volumes/datastore1/update-from-esxi5.0-5.0_update01.zip
   Name                  Version                             Vendor  Release Date  Acceptance Level  Status
   --------------------  ----------------------------------  ------  ------------  ----------------  ---------
   net-ixgbe             2.0.84.8.2-10vmw.500.0.0.469512     VMware  2011-08-19    VMwareCertified   Installed
   net-nx-nic            4.0.557-3vmw.500.1.11.623860        VMware  2012-02-17    VMwareCertified   Update
   scsi-rste             2.0.2.0088-1vmw.500.1.11.623860     VMware  2012-02-17    VMwareCertified   New
   net-e1000             8.0.3.1-2vmw.500.0.7.515841         VMware  2011-12-15    VMwareCertified   Update
   ehci-ehci-hcd         1.0-3vmw.500.0.0.469512             VMware  2011-08-19    VMwareCertified   Installed
 #esxcli software acceptance get   //查看預設的驗證等級
   PartnerSupported

接著查詢 Depot 中 VIB 於安裝前 ESXi Host 主機是否需要進入維護模式(通常都需要!),以及安裝 VIB 套件之後是否需要重新啟動 ESXi 主機。請使用指令「esxcli software sources vib get --depot」進行查詢,即可看到每個 VIB 套件的詳細資訊,可以看到安裝 Intel Oplin 10G 網路卡驅動時 ESXi Host 必須進入維護模式才行(Maintenance Mode Required: True)。

 #esxcli software sources vib get --depot=/vmfs/volumes/datastore1/update-from-esxi5.0-5.0_update01.zip 
  VMware_bootbank_net-ixgbe_2.0.84.8.2-10vmw.500.0.0.469512
    Name: net-ixgbe
    Version: 2.0.84.8.2-10vmw.500.0.0.469512
    Type: bootbank
    Vendor: VMware
    Acceptance Level: VMwareCertified
    Summary: ixgbe: net driver for VMware ESX
    Description: Intel Oplin 10GigE Network Driver
    Release Date: 2011-08-19
    Depends: vmkapi_2_0_0_0, com.vmware.driverAPI-9.2.0.0
    Conflicts:
    Replaces:
    Provides:
    Maintenance Mode Required: True    //需進入維護模式才能安裝
    Hardware Platforms Required:
    Live Install Allowed: False
    ...略...

設定 ESXi Host 進入維護模式

其實安裝大部份的 Depot 時通常 ESXi Host 皆需要進入維護模式,因此請將 ESXi Host 上運作的 VM 虛擬主機關機,或者遷移到別台 ESXi Host 之上,並且設定 ESXi Host 進入維護模式,請使用 vSphere Client 登入 ESXi Host 後設定為「進入維護模式(Enter Maintenance Mode)」項目,使 ESXi Host 進入維護模式。或是直接透過 SSH 遠端管理服務,利用類似 putty的 SSH Client 工具以 SSH 協定登入 ESXi Host 後,執行指令使 ESXi Host 進入維護模式,執行指令後確認維護模式的欄位是否為 true(false 則為未進入維護模式)。

 # vim-cmd hostsvc/maintenance_mode_enter          //進入維護模式
  'vim.Task:haTask-ha-host-vim.HostSystem.enterMaintenanceMode-266378953'
 # vim-cmd hostsvc/hostsummary | grep Maintenance  //確認進入維護模式
       inMaintenanceMode = true,

ESXi Host 更新前版本檢查

您可以由 vSphere Client 或 Console 畫面查看目前 ESXi Host 平台的 Build Number(目前為 469512),或者於 Shell 端執行「vmware -lv」 及 「esxcli software vib list」指令,以查看目前 ESXi Host 上版本資訊以及已經安裝了哪些 VIB 套件,以便等一下安裝之後用於比對更新或新安裝哪些 VIB 套件。

 #vmware -lv               //查看系統版本資訊
   VMware ESXi 5.0.0 build-469512
   VMware ESXi 5.0.0 GA
 #esxcli software vib list //查看安裝清單
   Name                  Version                             Vendor  Acceptance Level  Install Date
   --------------------  ----------------------------------  ------  ----------------  ------------
   ata-pata-amd          0.3.10-3vmw.500.0.0.469512          VMware  VMwareCertified   2012-08-13
   ata-pata-atiixp       0.4.6-3vmw.500.0.0.469512           VMware  VMwareCertified   2012-08-13
   ata-pata-cmd64x       0.2.5-3vmw.500.0.0.469512           VMware  VMwareCertified   2012-08-13
   ...略...

執行 ESXi Host 更新作業

相關資訊及事宜確認無誤之後,接著便可以放心使用指令「esxcli software vib update --depot」來為 ESXi 虛擬化平台安裝更新檔案,安裝之後您將會得到相關更新資訊例如 安裝後是否需要重新啟動 ESXi 主機,以及 安裝/移除/略過 哪些 VIBs 檔案後確認相關資訊完成之後,您可以於 Console 直接執行指令「reboot」以命令 ESXi Host 立刻重新啟動。

 #esxcli software vib update --depot=/vmfs/volumes/datastore1/update-from-esxi5.0-5.0_update01.zip
  Installation Result
    Message: The update completed successfully, 
             but the system needs to be rebooted for the changes to be effective.
    Reboot Required: true
    VIBs Installed: VMware_bootbank_ehci-ehci-hcd_1.0-3vmw.500.1.11.623860, 
                    VMware_bootbank_esx-base_5.0.0-1.11.623860, 
                    VMware_bootbank_misc-drivers_5.0.0-1.11.623860,
                    ...略...
 #reboot    //重新啟動

當 ESXi Host 重新啟動完成之後,其實於 Console 畫面便可看到 Build Number 已經更新為 623860(更新前為 469512),當然使用 vSphere Client 登入之後也能明顯看到版本號碼已經更新升級了,若無法登入 ESXi Host 的話則表示您的 vSphere Client 版本太舊,也請執行重新安裝 vSphere Client 以更新版本之後重新管理 ESXi Host。

圖10、ESXi Host 更新後即可看到 Build Number 已經更新

接著再次使用 ESXi Shell 或 SSH 遠端登入後,執行「vmware -lv、esxcli software vib list」相關指令,來查詢 ESXi Host 及更新的 VIB 資訊,以及查詢「/var/log/esxupdate.log」日誌檔內容,以了解 ESXi patch 及 update 的詳細資訊。

確認系統版本資訊已更新

 #vmware -lv   
   VMware ESXi 5.0.0 build-623860
   VMware ESXi 5.0.0 Update 1

查看安裝項目資訊

 #esxcli software vib list
   Name                  Version                             Vendor  Acceptance Level  Install Date
   --------------------  ----------------------------------  ------  ----------------  ------------
   ata-pata-amd          0.3.10-3vmw.500.0.0.469512          VMware  VMwareCertified   2012-08-13
   ata-pata-atiixp       0.4.6-3vmw.500.0.0.469512           VMware  VMwareCertified   2012-08-13
   ata-pata-cmd64x       0.2.5-3vmw.500.0.0.469512           VMware  VMwareCertified   2012-08-13
   ...略...

查看日誌內容

 #tail /var/log/esxupdate.log
   2012-08-13T15:08:56Z esxupdate: vmware.runcommand: INFO: runcommand called with: args = '['/sbin/esxcfg-advcfg'
   2012-08-13T15:09:00Z esxupdate: esxupdate: WARNING: Timeout waiting for input on stdin.
   2012-08-13T15:09:00Z esxupdate: esxupdate: DEBUG: <<<
   2012-08-13T15:09:09Z esxupdate: vmware.runcommand: INFO: runcommand called with: args = '['/sbin/esxcfg-advcfg'
   2012-08-13T15:09:12Z esxupdate: esxupdate: WARNING: Timeout waiting for input on stdin.
   ...略...

確定 ESXi Host 更新 VIB 套件完成且 Build Number 也更新之後,請使用 vSphere Client 登入ESXi Host選擇「Exit Maintenance Mode」項目,或者使用「vim-cmd hostsvc/maintenance_mode_exit」指令,使 ESXi Host 離開維護模式。最後則建議您在將 VM 虛擬主機啟動(Power On)以前,或者將 VM 虛擬主機遷移至此台 ESXi Host 運作前,先將剛才為了執行本機安裝所啟用的 ESXi Shell、SSH 遠端管理服務都關閉,以提升 ESXi Host 主機整體安全性。

 #vim-cmd hostsvc/maintenance_mode_exit             //離開維護模式
  'vim.Task:haTask-ha-host-vim.HostSystem.exitMaintenanceMode-141602462'
 #vim-cmd hostsvc/hostsummary | grep Maintenance    //確認離開維護模式
       inMaintenanceMode = false,

結語

虛擬化技術近幾年在企業環境中不斷發酵與成長,雖然虛擬化技術所採用的 Hypervisor 體積精簡核心穩定,但是仍然會有需要進行安全性修補或臭蟲修正的更新動作,不過虛擬化平台上承載著為數眾多的 VM 虛擬主機,並且運作著企業營運所需的相關服務,因此虛擬化平台的運作穩定與否關系重大。

筆者透過這二篇文章實作及討論如何為 VMware vSphere 舊版的 ESX/ESXi 4.1,以及最新發行的 ESXi 5.0 虛擬化平台進行更新作業,並且都採用內建的 esxupdate 及 esxcli 指令來簡單完成安裝作業,而不用透過額外安裝的 vSphere Update Manager 整合工具,或者是額外安裝指令工具集 vSphere CLI、PowerCLI,因此您也可以使用此更新方式針對免費版本的 VMware vSphere Hypervisor 進行更新作業。

Go To Oddmuse OrgGo To FreeBSD OrgCreative Commons 2.5 Taiwansitestates.com