ESXi主機是vSphere整體運行的基礎,因此平日就該做好ESXi主機運行的監視,並且在必要時升級選定的硬體裝置規格以改善應用系統效能。在ESXi主機正式上線前預先做好系統層面的相關優化配置,那麼當主機一上線運作就能夠全速前進。
相信許多人都有這樣的經驗,那就是全新的手機或電腦使用一年半載後,它的執行速度大不如前。此時,只要將手機重置或電腦的作業系統整個清除重灌,便會發現以往的速度感又回來了。透過手機重置或電腦作業系統重灌的做法,雖然可以迅速恢復本來的執行速度,但是原本已安裝好的軟體、防毒程式、驅動程式、網路配置,以及作業環境與各種軟體的設定通通都得重來一遍,而且萬一事前的備份不夠周全的話,可能還會導致重要資料因此遺失。
對於進階的用戶來說,當明顯感受到手機或電腦變慢時,肯定不會選擇重置或重灌的做法來解決,而是會優先查看目前已安裝的軟體清單,以及透過一些工具來查詢究竟是哪些程式占用了大多數的資源,接著再手動移除這些不必要的軟體或常駐程式,以便將可用的硬體資源釋放出來。
vSphere管理員所面臨的情境與上述的進階用戶其實是差不多的,差別只在於所管理的是整間公司在使用的主機,而不是一台僅給個人使用的手機或電腦。由於有許多相當重要的應用系統與服務在vSphere的虛擬機器中執行,因此除了必須有完善的備援與備份機制外,維持高效能的運行速度更是重要。
想要讓vSphere整體運行速度達到令人滿意的結果,除了同樣需要有高速的CPU、記憶體、磁碟以及網路設備為基礎外,懂得善用工具來持續監視系統的運行,並且根據不同的情境需求來調校出適合的配置,更是身為一位vSphere頂尖管理人員所不可或缺的技能。接下來,就從vSphere架構中最關鍵的ESXi主機出發,一同學習如何做好它的運行監視與配置優化。
VMware Host Client主機運行監視
想要讓ESXi主機的運行持續在最佳狀態,就必須善用內建的效能監視工具,而這些工具在vSphere Client、VMware Host Client以及Shell命令操作介面中皆有提供。首先,以獨立運行的ESXi主機而言,登入使用VMware Host Client網站來監視運行的效能是最簡單的做法。
登入VMware Host Client網站後,在預設所開啟的「主機」首頁中,如圖1所示,便會發現一個用以呈現「過去一小時的效能摘要」的小工具,可以分別檢視到CPU與記憶體在最近一小時內所耗用的資源曲線。一般而言,無論是CPU還是記憶體,只要持續一小時耗用的資源維持在80%左右,即表示可能需要升級主機的CPU或增加記憶體容量。
若要進一步進行完整的效能監視,可以點選至「監控」→「效能」頁面。如圖2所示,在目標的選單中分別有CPU、記憶體、網路以及磁碟的選項。以「磁碟」選項為例,可以從曲線圖檢視到包含總磁碟使用量、總讀取速率、總寫入速率、最大延長時間等數據。若想知道某一個時間點的數據,只須將滑鼠游標移動到該時間點的曲線位置即可得知。
此外,在「效能」頁面中,還可發現一個「選取虛擬機器」超連結。點選之後,如圖3所示,在「選取虛擬機器」頁面中,便能夠挑選所要一併監視的虛擬機器,然後按下〔儲存〕按鈕。一旦成功加入虛擬機器後,便可以在效能曲線圖中檢視各個虛擬機器在CPU、記憶體、網路以及磁碟的資源耗用數據。
vSphere Client主機運行監視
若ESXi主機並非獨立運行且有加入vCenter Server管控中,那麼選擇使用vSphere Client網站內建所提供的效能監視工具,肯定會是最佳的選擇,因為可以監視到更完整的效能數據,以及更具彈性的時間區間設定。
登入vSphere Client網站後,點選至ESXi主機節點中的「監控」→「效能」→「概觀」頁面。如圖4所示,在「效能概觀」頁面中,預設可以檢視關於CPU、記憶體、記憶體速率以及磁碟等效能數據圖,並且同樣能夠透過移動滑鼠游標的方式,來查看選定時間點的效能數據。在「期間」選單設定部分,預設除了有「即時」選項外,還有最近一天、最近一周、最近一個月以及過去一年可選擇。
接下來,點選至「監控」→「效能」→「進階」頁面,在此除了可以透過「期間」的選擇來查看選定期間內的效能數據外,還能如圖5所示進一步從「檢視」頁面中選擇所要檢視的效能物件,包括CPU使用率(%)、資料存放區、記憶體、磁碟、網路、電源、儲存區介面卡、儲存區路徑、系統以及vSphere Replication,其中vSphere Replication的效能數據圖,必須在有額外安裝和使用vSphere Replication的情況下才會產生相關的效能數據。
這裡還有一項更棒的功能,那就是位於「期間」選單旁的「圖選項」功能,點選後將會開啟設定頁面,如圖6所示,除了可以針對不同的「圖度量」來多重選取所要監視的計數器外,還能自訂時間範圍、目標物件以及圖類型,可以說功能配置設計得相當彈性。
確認完成圖選項的設定後點選「將選項另存為」,將開啟如圖7所示的頁面以完成自訂的圖選項命名,然後按下〔確定〕。
如圖8所示,便是完成自訂圖選項的設定後所開啟的進階效能頁面。在曲線圖的下方,可以查看所有已加入的計數器,而每一個計數器除了有各項欄位的數據外,也會呈現相對應的目標物件。
舉例來說,針對在此的第一項目標物件esxi01.lab02.com,可以查看到它在選定的期間內,磁碟使用量的最大值、最小值以及平均值。
esxtop命令工具監視
在vSphere架構管理的esxtop與resxtop命令工具,都是用來監視ESXi主機即時運行的效能,可以透過它們來監視CPU、記憶體、磁碟空間以及網路資源的使用狀況。resxtop雖然提供了與esxtop相同功能,但是它還可以讓管理員透過相關參數的設定,來監視遠端的其他ESXi主機。不過,resxtop不像esxtop直接內建於ESXi主機的系統中,必須自行下載與安裝在Linux系列的電腦中來使用。接下來,實戰一下有關這兩個命令工具的使用技巧。
當管理員已預先在ESXi主機的設定中,完成了Shell與SSH服務的啟用,後續便可以很方便地經由SSH Client的遠端連線方式,登入至ESXi主機的系統來執行esxtop命令(表1),以開啟如圖9所示的即時監視工具,它就好像是一個Windows作業系統中的純文字版本「工作管理員」。
開啟esxtop監視工具後,若要查看操作按鍵說明只要按下〔h〕鍵即可,若要離開esxtop監視工具按下〔q〕鍵。其他常用的按鍵功能,包括了〔c〕鍵檢視CPU、〔i〕鍵檢視中斷程式、〔m〕鍵檢視記憶體、〔n〕鍵檢視網路、〔d〕鍵檢視磁碟配接卡、〔u〕鍵檢視磁碟裝置、〔v〕鍵檢視虛擬機器磁碟以及〔p〕鍵檢視電源管理。
resxtop命令工具監視
說明過esxtop命令工具在即時效能監視的使用技巧後,接下來學習另一個類似的命令工具resxtop。resxtop和esxtop命令工具之間的主要差異,在於resxtop可以安裝在Linux電腦中進行遠端連線使用,而esxtop則只能在ESXi本機的ESXi Shell命令介面中啟動。一旦進入到互動式操作頁面,相關的快捷鍵使用方式都是相同的。
先準備好一台Linux作業系統的電腦,在此以Ubuntu 20版本為例。接著開啟網頁瀏覽器,連結至VMware vSphere Resxtop命令工具下載網頁(https://developer.vmware.com/web/tool/7.0/resxtop)下載resxtop命令工具,目前最新版本為7.0(resxtop-7.0.0-15992393-lin64.tgz)。
完成下載resxtop命令工具及解開壓縮後,開啟Terminal命令視窗並切換到解壓縮後的路徑下,如圖10所示,執行「ls -l」命令查看是否有resxtop相關的檔案清單。確認沒問題後,執行「sudo ./install.sh」命令。在執行安裝程式的過程中,僅需要同意版權聲明即可完成安裝。緊接著,執行以下兩道命令參數來安裝缺少的libncurses.so.5套件:
sudo add-apt-repository universe sudo apt-get install libncurses5 libncurses5:i386
完成所缺少的libncurses.so.5套件後,如圖11所示只要再執行以下的命令參數,設定好系統程式庫路徑的變數,就可以開始使用resxtop命令工具:
export LD_LIBRARY_PATH=$LD_LIBRARY_ PATH:/usr/lib/vmware/resxtop
現在可以在任何路徑下執行resxtop命令,即可如圖12所示查看到此命令的基本用法,也就是搭配--server參數設定,就能夠連線到選定的ESXi主機,但實際上可以再添加--username參數設定來選定帳號,例如執行「resxtop --server 192.168.7.251 --username root」命令參數,再完成此帳號的密碼輸入,便可開始遠端監視。另外,也可以透過與vCenter Server的連線來監視選定的遠端ESXi主機,例如執行「resxtop --server vcsa01.lab02.com --vihost 192.168.7.251」命令,表示透過與vcsa01.lab02.com的vCenter Server連線驗證後,再連線監視選定的旗下192.168.7.251主機。
成功以resxtop連線選定的ESXi主機後,就可以先按下〔h〕鍵來查看基本的操作說明。如圖13所示,將發現各項功能的按鍵操作都與esxtop相同,包括像是按下〔q〕鍵離開操作介面,以及從〔c〕鍵到〔x〕鍵的各項效能物件的監視選擇。但必須特別留意的是,這裡的各項功能按鍵是有區分大小寫。
接著來看看實際的操作範例,如圖14所示,這是按下大寫的〔V〕按鍵之後所查看到的各個虛擬機器的運行狀態,以及有關於CPU、記憶體、交換檔案的使用情形。
若是選擇按下小寫的〔v〕鍵,如圖15所示,則會查看到所有虛擬磁碟的運作狀態,例如每秒讀寫的即時效能。值得注意的是,在大多數情況下可以把CMDS/s看作是IOPS來監視。
主機警示定義
對於vSphere管理員而言,想要做好ESXi主機的效能監視與優化,肯定不是隨時開著電腦螢幕來進行肉眼的二十四小時監視,而是搭配警示工具來觸發可能的效能問題通知,如此一來,就能夠達到預警的目的,讓管理員有足夠的緩衝時間進行主機資源的調配或升級。
如何管理ESXi主機的事件警示功能呢?首先開啟主機節點中的「設定」→「警示定義」頁面,在此可檢視到現行的所有警示定義清單,每一項警示設定都可以看到它的名稱以及啟用狀態。例如選定「主機硬體電壓」並將它設定為「停用」,如此一來有關這類的事件便不會再出現警示通知。
接下來,嘗試點選「新增」超連結,將開啟如圖16所示的「新增警示定義」頁面,來自定義一個自己所關心的事件警示規則。
在警示規則1的範例中,筆者設定了當主機記憶體使用量持續30分鐘皆高於30%時,自動觸發警示以及傳送Email通知給選定的人員信箱,然後自動將此主機完成重新開機的操作。
值得注意的是,在動作的下拉選單中,除了有「將主機重新開機」選項外,還可以分別選擇進入維護模式、進入待命、結束維護模式、結束待命、關閉主機以及選取進階動作等選項。在警示規則管理的部分,可以根據實際監視需求來新增多個規則設定,並且能夠使用複製規則的方式來產生更多新的規則設定。
BIOS與電源優化配置
在一般情況下,通常拿到新的伺服器主機後,就會透過原廠內建的配置工具,來完成磁碟陣列(RAID)的配置與遠端控制的IP設定,然後開始進行作業系統的安裝與使用。
然而,對於準備運行ESXi系統的主機而言,其實應該進一步了解硬體的BIOS設定,因為某一些功能的啟用或關閉,對於ESXi系統後續運行的效能是有一定程度的影響。
建議除了必須讓BIOS的韌體版本維持在最新之外,還可以進入到主機硬體的BIOS管理介面中,完成以下功能的啟用或關閉:
‧關閉不需要的裝置:在BIOS中確實查看哪些裝置功能不會使用到並將它關閉,例如序列埠、USB插槽、網路等等,這將有助於BIOS配置的優化。
‧啟用Turbo Boost:只要是CPU支援此功能,務必啟用它,因為它是一個內建的軟體加速器,可自動根據系統的工作負載狀態來加速CPU的運行,也就是可以動態地將CPU加速到技術規範中所允許的極限。
‧啟用CPU所有的核心:確認已經將所有CPU與所有的核心全部開啟。
‧啟用超線程(Hyperthreading):此項功能允許在CPU的每個核心上運行多個線程,以一個核心可以執行2個線程而言,若有12個核心便可以運行24個線程,這意味著能夠並行完成更多應用系統所賦予的工作負載。
‧啟用VT-x、AMD-V、EPT、RVI:根據主機CPU的品牌類型來確認已啟用此功能,如此才能無礙運行虛擬化平台。
‧記憶體清理選項:如果BIOS提供了記憶體清理功能,VMware官方建議將其保留為製造商的預設配置即可。此功能可透過錯誤校正碼(Error-Correcting Code,ECC)功能,將已校正後的正確資料回寫到記憶體的原來位置,如此將可增加主機系統運行的可靠度,但也會耗用掉更多的電力。
‧Node Interleaving:停用此功能,將能夠在NUMA節點上獲得最佳效能。
‧Execute Disable Bit:強烈建議啟用此功能,以增強對緩衝區溢位攻擊的保護,而這些攻擊可能來自於病毒、蠕蟲、木馬等惡意程式。
除了上述幾個有關於BIOS效能的重點配置外,有關於省電功能的設定也必須留意。首先是C States與C1E的省電功能,它們會允許CPU在空閒時進入睡眠模式以達到省電的機制,像這樣的省電功能看似不錯,但卻可能導致虛擬機器運行的效能受到影響,因此建議關閉所有相似的功能設定。另一項有關於電源管理的功能是P States,它能夠在系統運行過程中需要額外的效能時,即時提供加速模式(Turbo Mode)且不需要使用CPU的所有核心。
電源的管理除了在主機硬體的BIOS中進行配置外,也可以透過ESXi主機的設定來完成。當使用的是vSphere Client網站進行管理時,可以在點選至選定的ESXi主機後,如圖17所示再展開至「設定」→「硬體」→「概觀」頁面中,並按下〔編輯電源原則〕按鈕。
如圖18所示,在「編輯電源原則設定」頁面中,共有四個選項可以選擇,分別說明如下:
‧高效能(High Performance):可設定讓CPU運行的效能全速前進,並停用所有與CPU相關的節能功能,但也將耗損較高的電力。在ESXi主機的高效能配置需求中,建議將設定改為此選項。
‧平衡(Balanced):此選項為系統預設值,是屬於效能與電力耗損各占一半的配置,也就是啟用C States或P States的節能機制,如此可讓系統在較少的工作負載狀態下相對使用較少的電力。此選項對於專門運行較不需要高效能虛擬機器的主機而言,可以採用此預設選項即可。
‧低功率(Low Power):一旦啟用了此選項,即表示將使用所有與CPU相關的節能功能,以達到最佳的節能運行需求。
‧自訂(Custom):若選擇此選項設定,即表示將進一步採用自訂的進階配置。
針對ESXi主機的自訂電源管理,必須透過VMware Host Client登入後,開啟「Manage」節點下的「Hardware」→「Power Management」頁面,這裡可以查看到所有與電源管理有關的設定項,以及每一個設定項的說明與預設值,包括前面所介紹過的C States和P States。若需要進行修改,只要在選定設定項後點選「Edit option」即可。圖19所示是已修改Power.UseC States設定項的範例。完成修改後,再按下〔Save〕按鈕,便可以立即生效。
透過vSphere Client或VMware Host Client操作介面,雖然可以方便檢視ESXi主機的電源配置,但若要一次檢視位於vCenter Server旗下所有主機的電源配置,則可以善用以下的PowerShell命令:
Get-VMHost | Sort | Select Name, @{ N="當前原則"; E={$_.ExtensionData. config.PowerSystemInfo.CurrentPolicy. ShortName}}, @{ N="當前原則金鑰"; E={$_.Extension Data.config.PowerSystemInfo. CurrentPolicy.Key}}, @{ N="可用的原則"; E={$_.Extension Data.config.PowerSystemCapability. AvailablePolicy.ShortName}}, @{ N='硬體支援';E={$_.ExtensionData. Hardware.CpuPowerManagementInfo. HardwareSupport}}
主機快取組態
在VMware vSphere架構環境中,可以善用實體Flash裝置於各種特殊存取功能,來提升虛擬機器的整體運行效能,這包括了Virtual SAN、VMFS資料存放區、虛擬Flash資源等等。其中結合ESXi主機的VMFS資料存放區類型,可將部分Flash裝置的儲存區空間,用來作為所有虛擬機器共用的交換快取,以提升虛擬機器的執行效能。
建議準備一個獨立專用的小容量實體Flash裝置,來作為主機快取組態的連接使用,而不是使用已安裝作業系統或正在運行其他虛擬機器的Flash裝置。可以在ESXi主機節點的「設定」→「儲存區」→「儲存裝置」頁面中,查看到目前已選定一個全新100GB容量的Flash裝置,準備用它來做為主機快取的儲存空間。
接下來,在主機的「動作」選單中,點選「儲存區」→「新增資料存放區」,開啟「類型」設定頁面,如圖20所示,選取「VMFS」並按下〔下一頁〕按鈕。
接著,在「名稱和裝置選取」頁面中為這個新的資料存放區命名,本例命名為FlashDatastore1,最後按下〔下一頁〕按鈕。在「VMFS版本」頁面中,則選擇預設的VMFS 6,此版本將會支援512e的進階格式以及自動空間回收的存取機制。再按下〔下一頁〕按鈕,繼續後面的設定。
在「磁碟分割組態」頁面中,可自行決定所要配置給此資料存放區的實際空間大小。由於建議主機快取採用專用的Flash裝置,因此這裡選擇「使用所有可用的磁碟分割」設定。至於區塊大小、空間回收細微度、空間回收優先順序設定,皆採用預設即可,最後按下〔下一頁〕按鈕。
最後,在「即將完成」頁面中確認上述設定是否正確,如果設定無誤,即可按下〔完成〕按鈕。
回到主機的「資料存放區」頁面中,便可查看到剛剛所建立的新資料存放區。後續對於它的基本管理,只要在選取後按下滑鼠右鍵,就能夠執行瀏覽檔案、重新整理容量資訊、卸載資料存放區、編輯空間回收、刪除資料存放區等功能。
完成Flash資料存放區的新增後,接下來開啟同一台主機節點中的「設定」→「主機快取組態」頁面。如圖21所示,在此便可以查看到剛剛所建立的資料存放區,接著在選定的資料存放區點選「編輯」。
最後,在「主機快取組態」頁面中,如圖22所示,便可自訂快取空間的大小,然後按下〔確定〕。完成設定後回到上一個頁面,點選「重新掃描儲存區」連結,即可取得最新的容量與主機快取空間資訊。
虛擬Flash主機交換快取
善用在ESXi主機中所額外安裝的Flash裝置,可以提升虛擬機器的運行效能,因為可以當成虛擬Flash主機交換快取的用途,而由於它所採用的儲存區類型是VFFS(Virtual Flash File System),而非一般用來儲存虛擬機器檔案的VMFS,簡單來說,它就是一個可由多個Flash裝置所組合而成的快取資源集區,能夠更有效率地處理主機交換快取的任務。
當需要設定虛擬Flash資源時,有以下幾點注意事項必須留意:
‧每一台ESXi主機上只能有一個虛擬Flash資源,但是資源的空間可以由多個Flash裝置組合而成,且無論是SATA、SAS或PCI Express的儲存介面都可支援,每一部ESXi主機則可以最多安裝8顆Flash裝置。
‧虛擬Flash資源的裝置僅能夠選擇本機的Flash裝置。
‧無法使用Flash資源的裝置來存放虛擬機器,因為它僅作為快取層的用途。
‧Flash資源和vSAN不能夠使用相同的Flash裝置,因為這兩類的配置皆會獨占專用的Flash裝置。
接著,示範虛擬Flash主機交換快取的配置。開始前先準備所需的Flash裝置,在所選定的ESXi主機節點中,點選至「設定」→「儲存區」→「儲存裝置」頁面,確認已經準備好一顆尚未使用的Flash裝置。
接著,點選至「設定」→「虛擬Flash」→「虛擬Flash資源管理」頁面,在此可以看到目前尚未有任何支援的裝置,所以也就不會有容量與空間方面的資訊,接著按下〔新增容量〕按鈕繼續。
如圖23所示,在「新增虛擬Flash資源容量」頁面中,可以查看到筆者於前面步驟中所準備好的一顆200GB的Flash儲存裝置。當然,也可以準備多顆的Flash裝置,來批量選取同時作為主機交換快取的用途。必須特別注意的是,所有被選取的Flash儲存裝置,在按下〔確定〕按鈕後將會被格式化,如果裝置中已有存放任何資料將會被一併清除。
完成虛擬Flash資源裝置的新增後,除了可以在「虛擬Flash資源管理」頁面中查看到這一些裝置外,也能夠選擇從ESXi主機的Shell命令介面中,執行「esxcli storage vflash device list」命令進行查看。如圖24所示,在命令結果的範例中,可以發現現行的兩顆本機Flash儲存裝置,其中一顆已被標示作為vflash的用途。
在確認完成了虛擬Flash資源裝置的設定之後,先點選至「設定」→「虛擬Flash」→「虛擬Flash主機交換快取」頁面,再繼續設定。
緊接著,如圖25所示,可以發現目前的「虛擬Flash主機交換快取」項目由於尚未設定,因此顯示為0.00GB。
至於可用的虛擬機器的預設虛擬Flash模組,現階段僅有vfc可以選擇。按下〔編輯〕按鈕,開始設定。
如圖26所示,在「虛擬Flash交換快取」頁面中輸入所要配置的虛擬Flash主機交換快取的大小值,設定值必須小於或等於頁面中所提示的上限,最後按下〔確定〕。完成設定後,這項功能便會正式啟用。
如果目前ESXi主機處於維護模式,則無法新增或修改主機的交換快取設定,必須在結束維護模式後才能繼續此設定。
關於虛擬Flash資源的管理,實際上還有進階的配置可以讓管理員進行設定。只要連線登入ESXi主機的VMware Host Client網站,然後點選至「管理」節點中的「系統」→「進階設定」頁面,即可如圖27所示找到七大項有關VFLASH的設定項,分別說明如表2所示。
如圖28所示,便是修改VFLASH.MaxDiskFilesSizeGB的設定範例。系統預設值是16,384GB,未來若運行的虛擬機器數量相當多時,除了可以考慮向上調整此設定值外,也可以考慮連同VFLASH.MaxResourceGBForVmCache設定值一併向上調整。
根據上述的介紹可以發現,當虛擬Flash資源使用率超過預設的80%臨界值時,系統會自動觸發主機vFlash資源使用率警示,讓管理員有足夠的緩衝時間添加更多的虛擬Flash資源空間。
若想修改此臨界值,除了從VMware Host Client網站來完成外,也能從vSphere Client網站中開啟至ESXi主機,再點選「設定」→「系統」→「進階系統設定」頁面中的〔編輯〕,便可調整VFLASH.ResourceUsageThreshold的設定值。
CBRC進階快取配置
除了以上所介紹的,還有一項能夠增強在主機I/O讀取效能的功能,那就是簡稱為CBRC(Content-Based Read Cache)的內容讀取快取配置。
這項功能同樣也是一項系統預設沒有被啟用的功能,主要原因是它藉由一塊指定的實體記憶大小空間來作為進行內容讀取時的快取空間,換句話說,ESXi主機必須有更多的記憶體。
可以從vSphere Client的網站中,點選至「設定」→「系統」→「進階系統設定」介面中找到相關設定。如圖29所示,在相關頁面中按下〔編輯〕按鈕。
在此,必須將CBRC.Enable的設定值修改成true(預設值=false),以確認此功能已啟用完成。如圖30所示,接著會發現CBRC.DCacheMemReserved欄位的大小值預設為400MB,建議將它調整為2,048MB的上限設定,表示要保留2GB的實體記憶體給資料快取使用,以達到增強I/O讀取效能的目標。完成上述設定後,按下〔確定〕按鈕即可。
<本文作者:顧武雄,Microsoft MVP 2004-2016、MCITP與MCTS認證專家、台灣微軟Technet、TechDays、Webcast、MVA特約資深顧問講師、VMware vExpert 2016-217、IBM Unified Communications/Notes/Domino/Connections Certified。>