︿
Top

網管人雜誌

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





文章目錄

1、前言
2、實作環境
3、安全性更新方式及工具
4、更新前注意事項
5、下載安全性更新
6、啟動 SSH 遠端管理功能
7、ESXi 進入維護模式
8、更新作業前相關資訊檢查
9、執行更新作業
10、更新後檢查相關資訊
11、結語





1、前言

          雖然 VMware vSphere ESX/ESXi 虛擬化技術平台的 Hypervisor 非常精簡,然而只要是程序開發所撰寫的軟體產物,或多或少就會有 臭蟲(Bugs)、安全性更新(Security)、重大修補(Critical)…等更新需要安裝,其中若是您採用 ESX Hypervisor 虛擬化平台,由於其含有 COS(Console OS)也就是採用 Redhat Enterprise Linux 5.2 作業系統(Kernel 2.6.x)所開發改寫而成,您將會發現其需要進行更新的數量相對於 ESXi Hypervisor 虛擬化平台更多。

          若是您採用的是 ESXi Hypervisor 虛擬化平台,由於 ESXi 已經將 COS(Console OS)完全移除,並且讓所有的 VMware Agent 都直接改為運作在 VMKernel 之上(而非如同 ESX Hypervisor 將其運作於 COS 之上),因此 ESXi 便不在需要幫 COS 以及相關套件進行安全性更新的動作,因此除了虛擬化主機被攻擊面減少以及提升主機整體安全性之外,主機整體運作效率大大提升並且需要更新的數量也大為減少。在圖1當中您可以看到將同樣版本的 ESX/ESXi Hypervisor 虛擬化平台,其更新數量進行比較的話可以發現 ESXi Hypervisor 所需要的更新數量非常少。

圖1、VMware vSphere ESX/ESXi 更新數量比較表





2、實作環境






3、安裝更新的方式及工具

          本篇文章當中,將會討論及實作如何手動更新 ESX/ESXi 4.x 相關安全性更新,執行安裝更新的方式有分為 Online Patch 以及 Offline bundle 二種,而執行更新的工具則有三種分別是 vCenter Update Manager 整合工具以及 CLI(vCLI、PowerCLI)、esxupdate 指令。

Online Patch 以及 Offline Bundle 更新方式的差異說明
  • Online patch: 使用 vSphere Update Manager(VUM)整合工具是以 patch baseline 方式,來進行 VMware 官網與 ESX/ESXi Host 版本比較的方式來進行更新的動作。
  • Offline bundle: 至 VMware 官網自行下載相關的更新套件包(.zip)之後,手動自行進行更新作業。

三種更新工具的差異說明
  • vSphere Update Manager: 為 vCenter Server 的 Plug-ins 整合工具功能,因此在您的虛擬化環境當中必須要有建置 vCenter Server 才能使用此整合工具(因為它需要連結 vCenter Server 的資料庫),您可以透過它更新 vSphere 相關元件例如 Virtual Machine Kernel(VMKernel)、Console OS(COS)、Virtual Machine Hardware、VMware Tools…等。
  • CLI: 您可以額外安裝相關的工具指令集後手動執行更新作業,例如 安裝 vSphere CLI 指令集之後採用 vihostupdate 指令,或者安裝 PowerCLI 指令集之後採用 InstallVMHostPatch 指令進行更新。
  • esxupdate: 此工具指令集內建於 ESX/ESXi 4.x 虛擬化平台當中(新版 ESXi 5.0 中已不支援此指令),配合相關參數後便可手動安裝更新檔案。

了解上述更新方式以及更新工具之間的差異之後,如下整理了哪種更新方式需要配合使用哪種更新工具進行更新:
  • Update-from-esx(i)-版本號.zip: Offline bundle,可採用 vSphere Update Manager、CLI(vCLI、PowerCLI)、esxupdate 方式進行更新。
  • ESX(i)-版本號: Online patch,可採用 vSphere Update Manager 方式進行更新。
圖2、VMware vSphere Update Manager 運作示意圖





4、執行更新作業前的注意事項

建議 ESX/ESXi Host 採用固定 IP 位址
          VMware 官方建議您欲執行更新(或升級版本)的 ESX/ESXi Host,應該要採用固定 IP 位址(Static IP Address)較為適當,如果您採用動態 IP 位址也就是由 DHCP 伺服器所配發的 IP 位址,那麼在執行更新或升級版本的過程當中,可能會因為 Renew 租約 IP 位址的動作而導致更新流程失敗(若採用 vSphere Update Manager 更新時則會失去連線)。

          雖然也有可能實際執行更新時會更新成功,但是更新的工具可能會顯示更新失敗或其它錯誤,因此請避免 ESX/ESXi Host 採用動態 IP 位址時進行更新作業。

ESX/ESXi 4.x 升級後需注意事項
          ESX Hypervisor因為其含有 COS(Console OS)所以更新前要注意的部份比較多一點,雖然執行更新後相關的虛擬網路設定、安全性設定、儲存設定…等仍會保留,並且仍然會保留既有的 /boot 掛載點及啟動檔案(boot files),以及 /etc 下相關系統設定檔(例如 localtime、ntp.conf、syslog.conf、passswd、groups…等),除此之外當更新或升級之後有可能要執行相關指令來對 LUN Masking 設定格式進行轉換,另外如果您有安裝第三方代理程式(3rd-party agnet)的話預設也將會被停用(Disable),您可以使用 vihostupdate 指令重新安裝它們。

          而 ESXi Hypervisor 的更新或升級版本作業則相對簡單許多,在更新或升級作業過程中所有相關設定都會保留(包括 虛擬網路設定、安全性設定、儲存設定…等),其中需要注意的是如果您是從 ESXi 3.5 跨大版本升級到 ESXi 4.1 的話,那麼授權金鑰(License Key)是不會保留的,您必須要於升級過程後輸入新的 ESXi 4.1 授權金鑰資訊,因為升級作業之後會將授權轉換成 60 天全功能評估版本(60 days Evaluation Mode)。

          最後要注意的是執行更新或升級之後,除了查看版本號碼(Build Number)是否更新之外,建議您也要查看升級日誌(upgrade logs)檔案內容,其中 ESX 虛擬化虛平台請查看 「/var/log/vmware」,若是 ESXi 虛擬化虛平台則請查看 「/locker/db/esxupdate.log」 內容(詳細資訊請參考 VMware KB-1034329),或者您也可以使用 vSphere Client 匯出日誌檔案後,檢查日誌檔案內容以確認更新升級作業運作無誤。





5、下載安全性更新

          您可以在安裝 vSphere Client 的電腦中,先行將相關的安全性更新檔案進行下載,之後再透過 Datastore Browser 上傳更新檔案的方式進行上傳,此下載更新的方式適合於 ESXi 虛擬化平台無法接觸網際網路時(虛擬化平台安全性考量)。

          請開啟瀏覽器連結至 VMware Download Patches 網站,在 Search by Product 區塊中依序選擇 虛擬化平台類型(ESXi)、版本號碼(4.1.0)、發行日期(Release Date),最後在選擇是否要分類下載相關更新或者選擇 All Classifications 下載所有類型的更新(如圖 3 所示)。

圖3、至 VMware Download Patches 網站搜尋及下載更新

          在搜尋結果當中您可以看到可供下載的安全性更新以及相關資訊,首先尋找距離目前 ESXi 虛擬化平台最接近的 Update 版本更新(類似 Windows 的 Service Pack),目前在 ESXi 4.1 更新當中最新為 Update02(Build Number 502767),其餘則為小版本更新此實作中我們先下載 Update02,在下載以前您可以概略查看相關資訊(如圖 4 所示):
  • 發行名稱(Release Name): 您可以看到下載的 檔案名稱、檔案校驗碼、檔案大小、版本號碼、發行日期以及對於系統的整體影響(VM 虛擬主機需要關機或遷移,Host 主機是否需要重新啟動)。
  • 公告資訊及描述(Bulletin & Description): 您可以看到此更新中是針對哪些項目所進行的(例如 針對 Firmware、VMwar Tools),以及詳細資訊所相對應的 VMware KB 號碼。
  • 更新類別(classification): 此更新的類別屬於哪一種例如 安全性更新(Security)、重大修補(Critical)、一般(General)。
圖4、在 VMware Download Patches 網站中下載更新

          接著請開啟 vSphere Client 連線至 ESXi Host,並且依照如下步驟透過 Datastore Browser 將剛才下載的安全性更新檔案,上傳至此台 ESXi Host 當中。

          由 vSphere Client 登入 ESXi Host 切換至Summary頁籤後,在 Datastore 區塊中選擇此台 ESXi Host 的硬碟 datastore1 後,按下滑鼠右鍵選擇「Browse Datastore」項目便會開啟 Datastore Browser 視窗,接著按下「Upload File」圖示選擇剛才下載的安全性更新檔案「update-from-esxi4.1-4.1_update02.zip」進行檔案上傳的動作(如圖 5 所示)。

圖5、上傳安全性更新檔案至 ESXi 虛擬化平台中

          如果您的 ESXi 虛擬化平台可以接觸到網際網路的話(主機安全性較低),那麼您可以如圖 6 所示直接在指令模式情況下透過指令切換至 Datastore 路徑後,接著使用 wget 指令配合安全性更新檔案的 URL 下載網址進行下載(請注意 ! 此指令僅支援 http 及 ftp 協定,並不支援 https)。

圖6、直接在 ESXi 虛擬化平台上以指令下載安全性更新檔案





6、啟動 SSH 遠端管理功能

          由於所管理的 ESXi 虛擬化平台其實體主機通常位於機房當中,並且通常都是採用 vSphere Client 或 vCenter Server 進行遠端連線管理,所以預設情況下 ESXi Host 並不會啟用 SSH 遠端管理機制以提升主機安全性,而本篇實作環境中因為是採用 Standalone ESXi Host,並且使用 Offline bundle 方式更新以及沒有建置 VMware vCenter Server,所以請開啟 ESXi Host 的 SSH 遠端管理服務,以利後續使用 esxupdate 指令進行更新作業。

          開啟 ESXi Host 的 SSH 遠端管理服務方式有二種,您可以在 DCUI(Direct Console User Interface)中,或者在 vSphere Client 操作介面中啟動SSH 遠端管理服務:

方式一、ESXi DCUI (Direct Console User Interface)啟用 SSH
          於 ESXi 4.1 Console 畫面中按下鍵盤上的 「F2 鍵」之後,接著於彈出視窗輸入 ESXi Host 的管理者帳號及密碼,順利登入後選擇「Troubleshooting Options」項目下的「Enable Remote Tech Support(SSH)」子項目後按下 Enter 鍵,此時您將會看到 Console 右邊視窗字體顯示為「Remote TSM(SSH)is Enabled」,便表示 SSH 遠端管理服務啟動完成(如圖 7 所示)。

圖7、在 ESXi DCUI 啟動 SSH 遠端管理服務

方式二、vSphere Client 啟用 SSH
          您也可以透過 vSphere Client 操作介面中完成 SSH 遠端管理服務的啟動作業,請使用 vSphere Client 登入 ESXi Host,首先點選「Configuration」頁籤後於 Software 區塊中點選「Security Profile」項目,然後點選「Properties」項目準備進行設定 SSH 服務(如圖 8 所示)。

圖8、準備設定 ESXi Host 的 SSH 遠端管理服務

          在彈出的 Services Properties 視窗中您會看到「Remote Tech Support(SSH)」項目,其 Daemon 欄位也就是服務狀態目前為「未啟動(Stopped)」,請點選該項目後接著按下 Options 鍵後先在 Service Commands 區塊按下「Start」鍵啟動服務,接著在 Startup Policy 區塊中選擇「Start automatically」項目後即可(如圖 9 所示),之後您便會看到 Daemon 欄位轉變為「啟動中(Running)」的狀態。

圖9、啟動 ESXi Host 的 SSH 遠端管理服務





7、設定 ESXi 進入維護模式

          在準備進行安全性更新作業之前,由於 ESXi 虛擬化平台在更新作業完成後通常會需要「重新啟動主機」,因此為了影響其上的 VM 虛擬主機運作,請先將 VM 虛擬主機遷移到別台 ESXi Host 上,或者將 VM 虛擬主機進行關機的動作。

          將 VM 虛擬主機的部份處理完畢後,便可以著手設定將 ESXi 虛擬化平台進入「維護模式(Maintenance Mode)」,否則屆時執行 Offline bundle 更新動作時將會得到如下錯誤訊息回應,表示因為 ESXi Host 沒有處於維護模式中因此無法進行更新作業(如圖 10 所示)。

圖10、ESXi Host 沒有處於維護模式中因此無法進行更新作業

使 ESXi Host 進入維護模式的方法有二種,您可以使用 vSphere Client 進行操作或者使用 vim-cmd 指令:

方式一、以 vSphere Client 設定進入維護模式
          在 vSphere Client 設定 ESXi Host 進入維護模式的方式很簡單,只要選擇該 ESXi Host 之後按下滑鼠右鍵,於彈出視窗中選擇「Enter Maintenance Mode」項目即可(如圖 11 所示)。

圖11、vSphere Client 設定 ESXi Host 進入維護模式

方式二、以 vim-cmd 指令設定進入維護模式
          或者您可以直接透過剛才所開啟的 SSH 遠端管理服務,利用類似 putty 工具以 SSH 登入 ESXi Host 後,執行指令「vim-cmd hostsvc/maintenance_mode_enter」使 ESXi Host 進入維護模式,接著使用指令「vim-cmd hostsvc/hostsummary | grep Maintenance」進行確認,確認維護模式的欄位值是否為 true(false 則為未進入維護模式)。

圖12、使用 vim-cmd 指令設定 ESXi Host 進入維護模式





8、更新作業前相關資訊檢查

          相關環境及組態設定準備完畢之後,在更新動作執行以前我們先確認目前的 ESXi Host 版本號碼以及相關資訊,接著查看一下更新檔案的內容資訊以便再次確認是否有需要注意的訊息,畢竟 ESXi Host 上面承載許多 VM 虛擬主機,其運作穩定與否影響重大。

          請先執行「vmware -lv」指令,由指令執行結果可知目前 Build Number 為「260247」,而發行版本資訊為 「GA」,接著切換路徑到剛才上傳到 ESXi Host Datastore 中安全性更新檔案儲存位置「/vmfs/volumes/datastore1」,確定更新檔案存在(如圖 13 所示)。

圖13、查看 ESXi Host 系統資訊及切至更新檔案儲存位置

          接著利用「esxupdate check」指令來查看及檢查此更新檔案中(如圖 14 所示),相關的 公告 ID、發行日期、概要資訊,以及屆時執行更新時的暫存路徑及 ESXi Host 需要多少剩餘空間,避免因為 ESXi Host 剩餘空間不足造成更新作業失敗。

圖14、查看及檢查此更新檔案中概要資訊

          最後利用「esxupdate info」指令來查看及檢查此更新檔案中(如圖 15 所示),詳細的 發行單位、更新分類、KB 網址、連絡資訊,以及稍後正式執行此更新動作之前 ESXi Host 是否需要進入維護模式,還有更新之後 ESXi Host 是否需要重新啟動等詳細資訊。

圖15、查看及檢查此更新檔案中詳細資訊





9、執行更新作業

          所有條件都準備完畢相關資訊也都確認無誤之後,我們可以放心的執行更新作業了,請執行「esxupdate update」指令配合「--bundle」參數以及安全性更新檔案名稱,便立即進行更新作業(需要將更新檔案 .zip 進行解壓縮的動作)。

圖16、執行安裝安全性更新作業

          安全性更新作業執行完畢之後,您可以在最後二行訊息中看到提示,說明整個安裝程序成功完成但是您必須要重新啟動 ESXi Host 才能套用生效。





10、更新後檢查相關資訊

          將 ESXi Host 重新啟動之後,首先在 ESXi DCUI 的 Console 畫面中,您就可以看到其 Build Number 由先前的 260247 升級為 Update02 的「502767」(如圖 17 所示)。

圖17、重新啟動後在 Console 畫面中可知 ESXi Host 其 Build Number 已更新

          不過當您嘗試要使用 vSphere Client 連接至 ESXi Host 時,您將會發現 vSphere Client 無法連線成功(Build Number 258902),因為 ESXi Host 已經更新了所以 vSphere Client 版本也必須要跟著更新版本才行,因此當您重新連接升級後的 ESXi 4.1 時,請按下「Run the installer」鍵以重新安裝也就是升級 vSphere Client 版本(Build Number 491557),之後才能繼續進行管理 ESXi Host 的動作(如圖 18 所示)。

圖18、重新安裝 vSphere Client(升級版本為 491557)

          順利升級 vSphere Client 版本登入 ESXi Host 之後,您也可以再次確認 ESXi Host 的 Build Number 已經升級,並且相關的設定也都運作無誤,不過您應該會發現 ESXi Host 仍然處於維護模式當中,因此同樣的您可以在 vSphere Client 操作介面中,點選該台 ESXi Host 之後選擇「Exit Maintenance Mode」項目,或者使用「vim-cmd hostsvc/maintenance_mode_exit」指令,使 ESXi Host 離開維護模式。

圖19、使用 vim-cmd 指令設定 ESXi Host 離開維護模式

          如果您想要進一步了解更新過程內容以及更新後的版本資訊,請您以 SSH Client 登入 ESXi Host,之後再次以「vmware -lv」指令查看發行版本資訊,以及使用「esxupdate query」指令查看已經安裝的更新列表,同時可以查看更新日誌檔案(/locker/db/esxupdate.log)內容以詳細了解更新情況,最後如果相關資訊皆確定無誤之後,建議您將先前為了執行 Offline bundle 安裝更新方式,所啟用的 SSH 遠端管理服務關閉,以提升 ESXi Host 主機安全性(避免遭受暴力密碼猜測攻擊)。

圖20、查看系統版本資訊、更新清單、更新日誌檔內容





11、結語

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

          因此本篇文章從一開頭的安全性更新安裝方式以及適用工具開始切入主題,同時提醒讀者在進行更新作業以前有哪些部份需要注意的,並且在更新作業執行前以及更新作業執行後,又該如何確認更新是否成功或失敗的相關檢查,以避免更新動作失當影響  ESXi 虛擬化平台的運作穩定性。

          在下一篇文章當中將會實作及討論 VMware vSphere 最新的 ESXi 5.0 虛擬化平台,因為已經不在發行含有 COS 的 ESX 虛擬化平台(ESX Hypervisor 正式走入歷史),並且在 ESXi 5.0 中已無法使用本章所介紹的 esxupdate 指令,將會說明如何使用新一代的指令 esxcli 進行安全性更新的動作。
文章標籤: