vSphere 6.7 虛擬化環境 VMware

優化BIOS/ESXi主機網路組態 活用最新SCAv2調度選項

實作vSphere 6.7最佳化 高效與高安全性兼備

2019-11-04
若要讓vSphere虛擬化資料中心擁有高安全性環境並同時保有極佳的運作效能,必須最佳化組態設定,本文將示範正確的設定順序。先從硬體伺服器的BIOS組態設定開始,接著是ESXi主機網路組態最佳化,然後採用最新的SCAv2調度選項,就能夠看到顯著成效。

 

雖然企業和組織已經將內部資料中心上雲,並且採取搭配多個雲端供應商的策略,為企業營運服務提供最佳的可用性。

然而,在企業內部的資料中心內,或多或少仍有工作負載運作在虛擬環境上,或是尚未上雲的企業在內部的工作負載大多運作在虛擬化環境中。

根據Flexera最新的2019 State of the Cloud Report市調結果顯示,企業和組織已經有高達94%的比例使用相關雲端技術,其中高達91%的比例為採用公有雲,而採用私有雲的企業和組織也仍然有72%比例之多,如圖1所示。

圖1  企業和組織使用公有雲、私有雲、混合雲的比例統計。(圖片來源:RightScale 2019 – State of the Cloud Report)

從調查結果可知,仍然有許多企業和組織在內部資料中心,透過虛擬化技術運作各種營運服務的工作負載。然而,虛擬化環境是否最佳化,將會大大影響運作於其上的VM虛擬主機,以及VM虛擬主機內執行的應用程式效能和回應速度。

因此,本文將針對目前企業組織中主流使用的VMware虛擬化環境,提供多種最佳化使用技巧,除了確保營運服務能夠提供高效能外,更能因此在虛擬化環境中運作更多的工作負載。

BIOS組態設定最佳化

首先,在硬體伺服器的BIOS組態設定方面,建議依照下列組態設定值,以確保安裝ESXi虛擬化平台的硬體伺服器,在運作效能方面能夠保持最佳化。舉例來說,在硬體伺服器的BIOS層級上,便將C States和C1E等節省電源的組態設定停用,避免無謂的省電措施影響屆時VM虛擬主機的運作效能和回應速度。

‧Power Management:建議調整為OS Controlled或High Performance。

‧Hyperthreading:建議調整為Enabled。

‧Turbo Boost:建議調整為Enabled。

‧C States:建議調整為Disabled。

‧C1E:建議調整為Disabled。

‧Intel VT Technology:建議調整為Enabled。

‧QPI Power Management:建議調整為Disabled。

‧Execute Disable Bit:建議調整為Enabled。

‧Node Interleaving:建議調整為Disabled。

ESXi主機網路組態設定最佳化

針對ESXi主機網路組態設定,將會採用esxcli(vSphere Command-line Interface)管理指令,進行ESXi主機網路組態設定最佳化的工作任務。

首先,透過「esxcli network nic list」指令,確認目前ESXi主機中實體網路卡數量以及相關資訊,例如MTU為標準的1500或是已開啟Jumbo Frame的9000。接著,執行「esxcli network nic get -n vmnic0」指令,查詢指定實體網路卡名稱的詳細組態設定內容,如圖2所示。

圖2  查詢ESXi主機中實體網路卡數量和詳細組態設定內容。

啟用TSO卸載功能

啟用實體網路卡卸載功能,除了最大化網路傳輸效能外,也能避免ESXi主機的CPU運算資源無謂的開銷,確保屆時營運服務能夠獲得最充足的CPU運算資源。

首先,為ESXi主機的VMkernel啟用TSO(TCP Segmentation Offload)網路卸載功能,確保網路卡能夠以較大的網路封包(最大至64KB)進行傳送,以減少ESXi主機處理TCP/IP網路封包的CPU工作負載。

然後,執行「esxcli network nic tso get」指令,確認ESXi主機的實體網路卡支援TSO卸載功能,接著執行「esxcli system settings advanced set -o /Net/UseHwTSO -i 1」指令,在ESXi kernel進階組態設定中將TSO卸載功能組態設定為啟用,隨後執行「esxcli system settings advanced list -o /Net/UseHwTSO」指令,如圖3所示,確保Int Value欄位值為「1」,這表示啟用TSO卸載成功。

圖3  為ESXi主機的VMkernel啟用TSO網路卸載功能。

啟用CSO總和檢查碼卸載功能

在網路封包TCP Header中包含16位元(bit)的總和檢查碼機制,以便驗證網路封包的完整性,透過啟用CSO(Checksum Segment Offload)網路卸載機制,可以讓計算和驗證網路封包完整性的工作任務,由實體網路卡處理以減少ESXi主機的CPU工作負載。

使用「esxcli network nic cso set -n vmnic0 -e 1」指令,為ESXi主機的實體網路卡啟用CSO網路卸載機制。然後,如圖4所示執行「esxcli network nic cso get」指令,以確保指定的實體網路卡是否已經啟用CSO網路卸載機制。

圖4  為ESXi主機的實體網路卡啟用CSO網路卸載機制。

停用LRO大型接收卸載功能

雖然透過LRO(Large Receive Offload)網路卸載機制,可以先將接收的網路封包重新組合為更大的緩衝區,再把大型且數量較少的網路封包進行傳送,以達到減少ESXi主機CPU工作負載的好處。然而,對於「網路延遲敏感」(Network Latency-Sensitive)的營運服務來說,會有回應速度變慢的情況,針對這類型的營運服務,建議停用LRO網路卸載機制。

先透過「esxcli system settings advanced set -o /Net/TcpipDefLROEnabled -i 0」指令,為ESXi主機的實體網路卡停用LRO網路卸載機制,再執行「esxcli system settings advanced list -o /Net/TcpipDefLROEnabled」指令,確認指定的實體網路卡是否已經停用LRO網路卸載機制,如圖5所示。

圖5  為ESXi主機的實體網路卡停用LRO網路卸載機制。

新增SCAv2調度選項 有效改善執行效能

在最新VMware vSphere 6.7 U2版本中,新增不同的「調度選項」(Scheduler Options),除了能夠保護VM虛擬主機免於遭受採用Intel處理器的L1TF漏洞攻擊之外,新的工作負載調度選項能夠針對不同的工作負載,在避免安全性攻擊的同時,維持過往高運作效能的表現。

主要原因在於,在新的調度選項尚未發佈之前,依照VMware安全建議內的修補程序進行調整後,將會採用「SCAv1」(Side-Channel Aware Scheduler)調度機制,避免VM虛擬主機受到L1TF漏洞的影響產生安全性疑慮。

然而,啟用SCAv1運作機制後,每個CPU處理器的實體核心將僅能處理「一個執行緒」而已,雖然能夠解決L1TF漏洞產生的安全性疑慮,卻導致vSphere ESXi虛擬化平台的運作效能「下降30%」。因此,在最新VMware vSphere 6.7 U2版本中,推出新的「SCAv2」調度選項,允許同時處理多個執行緒,讓VM虛擬主機的工作負載效能提升。

如圖6所示,在上半部圖中可以看到當單台VM虛擬主機運作時,無論採用舊有SCAv1或新式SCAv2調度選項,都會在分配單一vCPU至底層CPU處理器的實體核心上。

圖6  預設調度程序和SCAv1及新式SCAv2調度程序運作示意圖。(圖片來源:VMware白皮書 – Performance of vSphere 6.7 Scheduling Options)

然而,在下半部圖中可以看到,當多台VM虛擬主機同時運作的情況下,採用預設未修補的調度選項,可能會讓同一個底層CPU處理器的實體核心,運作來自不同台VM虛擬主機的vCPU,而遭受L1TF漏洞攻擊。採用「舊式的SCAv1」調度選項時,雖然可以確保同一個底層CPU處理器的實體核心,僅會運作來自同一個VM虛擬主機的vCPU,但是只能處理「一個執行緒」。而採用「新式的SCAv2」調度選項時,除了兼顧VM虛擬主機安全性之外,更可以處理多個執行緒有效提升VM虛擬主機運作效能。

那麼舊式的SCAv1和新式的SCAv2工作負載調度選項,在各種不同的工作負載中效能表現的差異究竟有多少?從VMware的測試結果中可以看到,以SQL Server on Windows with HammerDB項目來說,相較於舊式的SCAv1工作負載調度選項,新式的SCAv2提升了32%~54%的運作效能,如表1所示。

阻擋L1TG漏洞的安全性邊界防護機制

事實上,由於L1TF漏洞是落在底層的CPU處理器層級,因此在vSphere虛擬化平台以及其上運作的VM虛擬主機,必須針對不同的層級進行防護,才能有效確保VM虛擬主機的機敏資料不會外洩。整體來說,針對L1TF漏洞的防護層級有三個安全性邊界的部分,分別是ESXi主機、VM虛擬主機、vCPU處理器。

首先,針對vSphere ESXi虛擬化平台提供「主機安全性邊界」(Host Security Boundary)防護機制,如圖7所示,可以針對ESXi虛擬化平台和其上運作的VM虛擬主機,視為整個安全性邊界進行防護。

圖7  主機安全性邊界運作架構示意圖。(圖片來源:VMware白皮書 – Performance of vSphere 6.7 Scheduling Options)

然而,僅採用主機安全性邊界防護機制時,倘若ESXi主機被感染而遭受L1TF漏洞時,那麼攻擊者將可以透過被感染的ESXi主機,獲得其上運作所有VM虛擬主機的機敏資訊,包括網域憑證、加密金鑰等等。

接著,針對VM虛擬主機提供「VM虛擬主機安全性邊界」(VM Security Boundary)防護機制,如圖8所示,可以針對同一台ESXi虛擬化平台上,不同的兩台VM虛擬主機之間提供攻擊防護。當ESXi主機的工作負載調度選項,組態設定為「hyperthreadingMitigation=TRUE」和「hyperthreadingMitigationIntraVM=FALSE」時,便是啟用VM虛擬主機安全性邊界防護機制。簡單來說,採用VM虛擬主機安全性邊界防護機制後,除了獲得主要的安全性防護功能外,更兼顧運作效能。

圖8  VM虛擬主機安全性邊界運作架構示意圖。(圖片來源:VMware白皮書 – Performance of vSphere 6.7 Scheduling Options)

最後,管理人員可以針對VM虛擬主機中,運作的執行程序提供「執行程序安全性邊界」(VM Security Boundary)防護機制,如圖9所示,當ESXi主機的工作負載調度選項,組態設定為「hyperthreadingMitigation=TRUE」以及「hyperthreadingMitigationIntraVM= TRUE」時,便會啟用執行程序安全性邊界防護機制。換言之,採用執行程序安全性邊界防護機制後,可以為VM虛擬主機提供最高的安全性等級,但必須犧牲VM虛擬主機大量的運作效能來換取最佳安全性。

圖9  執行程序安全性邊界運作架構示意圖。(圖片來源:VMware白皮書 – Performance of vSphere 6.7 Scheduling Options)

採用新式SCAv2調度程序

那麼管理人員應該如何組態設定ESXi主機的工作負載調度機制?採用新版vSphere 6.7 U2才開始支援的SCAv2工作負載調度選項,以便兼顧VM虛擬主機的安全性和運作效能。在表2中,整理了工作負載調度機制組態設定一覽表。

管理人員可以登入vCenter Server管理介面,再依序點選「Datacenter > Cluster > ESXi Host > Configure > System > Advanced System Settings」項目,組態設定「VMkernel.Boot.hyperthreadingMitigation=true」和「VMkernel.Boot.hyperthreadingMitigationIntraVM=false」,如圖10所示,重新啟動該台ESXi主機以便套用生效,採用新式的SCAv2工作負載調度選項。

圖10  組態設定ESXi主機採用新式的SCAv2工作負載調度選項。

如果管理人員習慣使用指令管理ESXi主機組態設定,則採用類似的「esxcli system settings kernel 」指令,如圖11所示,組態設定ESXi主機採用新式的SCAv2工作負載調度選項,並在確認組態設定值無誤之後,重新啟動以便套用生效。

圖11  採用esxcli指令組態設定ESXi主機採用新式的SCAv2工作負載調度選項。

增強DRS調度工作負載

事實上,從新版的vSphere 6.7開始,在DRS(Distributed Resource Scheduler)部分便增強了原有的機制,讓DRS在調度VM虛擬主機工作負載方面能夠更具彈性更靈活。

增強初始化放置機制

在過去的vSphere版本中,當vSphere Cluster啟動DRS分佈式資源調度機制之後,除了可能耗用更多的vCenter Server硬體資源外,如圖12所示,在某些情況下也無法快速地啟動和放置VM虛擬主機。例如,在多個同時併發的高工作負載運作環境下,新版vSphere 6.7的DRS運作環境將能更快地啟動VM虛擬主機,並且更平均地擺放VM虛擬主機至每台ESXi叢集節點主機中。

圖12  新版DRS分佈式資源調度機制有效節省vCenter Server硬體資源的耗用。(圖片來源:VMware白皮書 – DRS Performance in VMware vSphere 6.5)

增強主機維護模式

在vSphere虛擬化環境中,當管理人員透過vUM更新管理機制結合DRS進行版本升級作業時,必須依靠DRS智慧演算法,建議可以進入維護模式的ESXi節點主機,並且將其上運作的VM虛擬主機,透過vMotion線上遷移機制進行工作負載疏散的動作。

在過去的DRS版本中,會「同時」對所有運作中的VM虛擬主機進行vMotion線上遷移作業,而造成大量併發的vMotion網路流量,有可能產生無法預期的錯誤和隱憂。現在,DRS透過增強的主機維護模式,會針對VM虛擬主機進行分批遷移的動作(每次僅遷移8台VM虛擬主機),同時受惠於分批遷移機制讓遷移後的VM虛擬主機,能夠更平均地分佈於Cluster當中的每台ESXi叢集主機上繼續運作。

支援採用vPMem和vPMemDisk的虛擬主機

新一代的NVM(Non-Volatile Memory)持續性記憶體儲存裝置,由於提供類似DRAM的超低延遲時間和極大傳輸頻寬,而被企業組織開始應用於關鍵性的營運服務中。

當ESXi虛擬化平台配置PMEM(Persistent Memory)儲存裝置時,支援下列兩種VM虛擬主機掛載應用方式,如圖13所示:

圖13  vSphere PEME運作架構示意圖。(圖片來源:VMware白皮書 – Persistent Memory Performance in vSphere 6.7)

‧vPMemDisk:透過此種運作模式,可以將PEME儲存資源掛載至VM虛擬主機成為vDisk虛擬磁碟。因此,VM虛擬主機內的作業系統和應用程式無須進行任何的修改,即可使用PMEM儲存資源。

‧vPMem:將PMEM儲存資源以NVDIMM儲存裝置提供給VM虛擬主機,大部分新版的作業系統,例如Windows Server 2016、RHEL 7.4等等,皆支援NVDIMM儲存裝置。

值得注意的是,當管理人員為VM虛擬主機掛載使用vPMemDisk時,在VM虛擬主機組態設定上,確保該vDisk虛擬磁碟中的VM Storage Policy必須設定為「Host-local PMem Default Storage Policy」,當VM虛擬主機掛載使用vPMem時,則必須先新增NVDIMM儲存控制器,再新增「NVDIMM儲存裝置」,如圖14所示。

圖14  為VM虛擬主機新增vPMemDisk或vPMem儲存裝置。(圖片來源:VMware Docs – Persistent Memory – Configuration)

了解vMotion線上遷移機制的管理人員應該了解,當VM虛擬主機採用標示為本地端的儲存資源時,必須搭配採用Storage vMotion機制才能夠遷移VM虛擬主機。而新版DRS分佈式資源調度機制,已經直接支援掛載使用這些新式儲存裝置的VM虛擬主機,因此無論是VM虛擬主機的自動化vMotion線上遷移,進行ESXi節點主機工作負載平衡,或是VM虛擬主機啟動時的自動放置作業等,都能夠完全支援,如圖15所示。

圖15  新版DRS分佈式資源調度機制,已完全支援使用新式儲存裝置的VM虛擬主機。(圖片來源:VMware Blogs - Live Migration of SAP HANA 2.0 SP3 Deployed on Persistent Memory on vSphere 6.7)

增強資源集區預留機制

在新版DRS分佈式資源調度機制中,採用新的「兩階段演算法」(Two-Pass Algorithm),來處理「資源集區」(Resource Pool)分配資源給VM虛擬主機的部分。

簡單來說,新的演算法在第一階段時,先在資源集區中根據VM虛擬主機的需求分配資源,在第二階段則依據預留和限制等組態設定值,分配相對應的資源給VM虛擬主機。

舉例來說,在新舊版本的DRS分佈式資源調度機制中,建立一個資源集區並指派4台VM虛擬主機於其中,同時,如圖16所示在資源集區中記憶體的部分組態設定預留10GB。

圖16  建立資源集區並組態設定記憶體預留10GB。

舊版的DRS分佈式資源調度機制,因為會根據需求將資源集區預留給子項目,所以VM虛擬主機能夠從資源集區中獲得的資源較少,而新式DRS分佈式資源調度機制中的VM虛擬主機,則能夠充分獲得資源集區中所有分配的硬體資源,如圖17所示。

圖17  新舊DRS分佈式資源調度機制VM虛擬主機獲得硬體資源比例示意圖。(圖片來源:VMware白皮書 – DRS Enhancements in vSphere 6.7)

結語

透過本文的深入剖析和實際進行最佳化組態設定,相信大家已經了解從一開始硬體伺服器的BIOS組態設定,到ESXi主機網路組態設定最佳化,並且採用新版vSphere 6.7 U2才支援的SCAv2調度選項,為何能夠確保企業和組織的vSphere虛擬化資料中心,在擁有高安全性環境的同時仍然保有極佳的運作效能。

<本文作者:王偉任,Microsoft MVP及VMware vExpert。早期主要研究Linux/FreeBSD各項整合應用,目前則專注於Microsoft及VMware虛擬化技術及混合雲運作架構,部落格weithenn.org。>

 


追蹤我們Featrue us

本站使用cookie及相關技術分析來改善使用者體驗。瞭解更多

我知道了!