vSphere 虛擬機器 快照 效能監控

六招效能調校建議 八大故障排除手法

vSphere 8維運密技公開 確保虛擬機器穩定運行

2024-11-25
對於vSphere的維運,除了需要學會從部署、升級、更新以及各類配置的技巧外,也得不斷地從其他IT先進身上學習到一些寶貴的管理經驗。今日就針對vSphere 8維運經驗,分享六項效能配置上的關鍵建議,以及八大管理員常見故障難題的化解。

對於vSphere維運最困難的地方,並非是熟悉其基本的部署與管理,因為這些都可以從VMware官方文件或坊間的相關書籍學習到,而且大多只能學習到標準的操作配置步驟,缺乏實務經驗的分享。然而,在一個中大型的vSphere架構的維運中,最重要的是經驗的學習與分享,如此才能夠讓各種效能調校與故障排除的難題迅速被解決。今日就一同來學習vSphere六項效能配置上的關鍵建議,以及八大故障難題的化解。

虛擬機器快速運行的六項秘訣

過去筆者曾經實戰細說過有關於vSphere在各個版本的效能調校技巧,其中有一些配置技巧只有在特定的版本中才適用,若想要有一套能夠針對所有版本皆適用的高效能配置方針,建議遵循以下六項重點。

一、虛擬機器存放磁碟的選擇

盡可能地選擇使用高速的固態式硬碟(SSD)而非傳統的機械式硬碟(HDD),主要原因可參考表1的比較說明,其中在讀寫速度方面的比較可從圖1看出兩者的天壤之別,而這些數據的差異將會嚴重影響現今許多應用系統的運行效能,尤其是需要頻繁讀寫資料庫或大量檔案的存放磁碟。

除了實體磁碟類型的選擇外,在選擇虛擬磁碟類型時,建議選擇預先配置好空間的Thick磁碟類型,而非使用自動增長空間的Thin磁碟類型,這樣可以節省掉每次計算磁碟增長時所需耗費的資源與時間,不過相對的缺點是直接占用掉所需的完整磁碟空間。

圖1  SSD與HDD速度比較。

在磁碟陣列控制卡的部分,選擇獨立安裝的專用控制卡,而非使用主機板內建的磁碟陣列功能,或是使用作業系統內建的RAID配置功能。在虛擬機器磁碟的配置上,讓作業系統磁碟與資料磁碟分開在各自獨立的虛擬磁碟。

二、保持VMware Tools在最新版本

無論是vSphere的新手還是老手,相信都知道凡是對於新安裝好Guest OS的虛擬機器,都需要先安裝VMware Tools程式,但卻不知道VMware Tools完整用途的細節。其實它主要的任務就是在主機和Guest OS之間傳遞資訊與執行特定任務,具體包含的功能如下:

‧完整執行電源管理功能,包括正常關閉Guest OS。

‧可在Guest OS中執行特定程式、命令和各種檔案系統任務。

‧驗證Guest OS使用狀態

‧讓ESXi主機或vCenter可定期從Guest OS中收集網路、磁碟、CPU以及記憶體使用量資訊,然後呈現在Web管理介面中。

‧從Guest OS產生活動訊號至ESXi主機,以便讓系統能夠判斷運作在叢集HA架構下的虛擬機器之可用性狀態。

‧讓Guest OS能夠與ESXi主機或是用戶端桌面之間進行時間的同步

‧可結合虛擬機器快照功能,完整快照Guest OS的狀態資訊,包括記憶體中的資料。

‧可讓Guest OS與主機或是用戶端桌面之間,進行文字、圖片以及檔案的複製與張貼。

‧讓某一些支援的Guest OS,可以在虛擬機器啟動與執行的狀態下,進行諸如網卡、硬碟,甚至於是CPU或記憶體的熱新增(Hot-add)。

明白VMware Tools在虛擬機器管理中所關聯的任務如此之多,便可以知道讓它一直維持在最新版本的重要性,尤其是在vCenter Server、ESXi主機初步完成升級或更新後,務必馬上完成所有虛擬機器VMware Tools的更新。想要知道某一台虛擬機器的VMware Tools是否為最新版本,只要在虛擬機器節點的「摘要」頁面中即可查看到。

如果想要快速得知某幾台現行虛擬機器的VMware Tools是否為最新版本,可透過以下PowerCLI命令參數的執行來取得:

$vm=Get-VM -Name VM01,VM02,VM03 $vm.ExtensionData.Guest | FT Host Name,IpAddress,ToolsVersionStatus

三、刪除多餘的快照

每一個虛擬機器快照的執行,系統都會產生額外的Delta VMDK虛擬磁碟檔案(圖2)。當虛擬機器的內容有所變更時便會寫入至此檔案,而另一個相依的父檔案則會保持在唯讀狀態,每當虛擬機器與虛擬磁碟互動時,將會從中讀取所需資料。

圖2  檢視虛擬磁碟。

因此,隨著所建立的快照數量越來越多時,所需要花費在讀取的時間便會越長,進而影響到虛擬機器的運行效能,嚴重時甚至可能會導致虛擬機器無法啟動。因此,當虛擬機器中的應用系統與服務已經正常運行一段時間後,務必養成到虛擬機器所在的「快照」頁面中將所有不需要保存的快照通通刪除。

四、注意網路配置

使用獨立的ESXi管理網路、vMotion網路和儲存網路,以獲得更好的網路傳輸效能,而不是將所有的服務都啟用在相同的VMkernel介面卡(圖3)。如果現有的實體網路頻寬不足以滿足vSphere整體運行要求,請考慮網路升級,例如將現行的1Gbit網路介面卡與網路交換器全部更換成10Gbit的網路設備。

圖3  管理VMkernel介面卡。

五、注意ESXi主機防毒配置

如果因為資訊安全因素而在每一台ESXi主機中安裝防毒軟體,那麼必須記得將虛擬機器檔案所在的資料夾,設定為主動掃描的排除名單,因為掃描這些檔案將可能降低虛擬機器的效能。此外,也務必安排於離峰的時間定期掃描主機與Guest OS,以確保沒有遭受惡意程式或勒索軟體的感染。

六、虛擬機器效能監視

善用vSphere Client網站上所內建的虛擬機器效能監視功能(圖4),而不是直接使用Guest OS中內建的效能監視器,這是因為它是以主機層級的監視方式來取得虛擬機器的整體效能表現,若是使用Guest OS內建的效能監視器,則無法感測到相關虛擬化功能(例如動態資源分配)所影響的相關效能數據,導致收集到不正確的效能數據。

圖4  虛擬機器效能監視。

若想要在Windows的Guest OS中使用效能計數器來正確分析虛擬機器的效能數據,只要安裝VMware Tools相關功能,即可在效能計數器介面中使用VMware所提供的相關計數器。

八大故障問題疑難排解

以下是管理員經常會碰到的八大故障難題,可透過其中介紹的方法加以解決。

難題1:如何排除虛擬機器網路連線問題

虛擬機器的網路一旦無法正常連線,所有相關的應用程式服務與用戶端連線將被迫中斷。然而,造成虛擬機器網路無法正常連線的原因有很多,解決的方法首先應該檢查它所對應的實體網路交換器,以及線路是否有正常連接。

確認實體網路的連線沒有問題後,接下來參考以下的相關步驟說明來檢查虛擬機器的相關配置,並進行各項必要的測試。首先,開啟此虛擬機器的「編輯設定」頁面。如圖5所示,展開「網路介面卡1」選項設定後,檢查是否有勾選「已連線」和「開啟電源時連線」兩個選項。

圖5  檢查虛擬機器設定。

若上述的設定檢查沒有問題,那麼接著便可進入到此虛擬機器的Guest OS進行操作。在此以Windows Server 2022英文版為例,在桌面開始功能表的圖示上按下滑鼠右鍵,然後點選開啟「Device Manager」介面。如圖6所示,在此展開「Network adapters」裝置選項,查看是否有網卡裝置不是在啟用狀態。關於裝置的啟用與停用,可透過上方工具列的圖示來操作。

圖6  檢查裝置管理員。

緊接著,開啟「Network Connections」頁面,並針對所使用的乙太網路連線圖示按下滑鼠右鍵,在其右鍵選單中,除了可以進行關閉(Disable)或啟用(Enable)的功能切換外,還能點選「Status」選項功能來查看完整的網路配置資訊,包括IP的設定方式、IP位址、閘道、子網路遮罩、DNS、MAC地址等等。若發現IP位址是來自DHCP,並且所取得的IP相關位址設定皆是正常,那麼就表示此虛擬機器在目前內網的連線通訊是正常的。

相反地,如果發現透過DHCP的IP位址是不正確的,或是在取得動態IP位址後網路仍無法正常連線,可以嘗試執行「ipconfig /renew」命令來重新取得IP位址配置。在重新獲得動態IP位址配置後,可以立即執行Ping命令進行本機IP位址的回應,若成功收到回應,則再進一步執行Ping命令,測試與閘道的連線是否正常。

說到Ping命令的使用,相信許多IT老手都知道它與ICMP通訊協定有關。以前曾有IT新手發問ICMP是使用哪一個連接埠,其實ICMP(網際網路控制訊息協定)並不使用傳統意義上的連接埠,它運作在IP層而不是TCP/UDP層,所以不會有特定的連接埠編號。換句話說,當使用像是Ping這樣的命令時,它是透過發送ICMP請求及接收ICMP回應來運作的,而不涉及傳輸層的連接埠。

因此,如果透過Ping所測試的目標主機已禁止使用ICMP通訊協定,那麼肯定無法接收到任何的連線回應。接下來,實際以一台Windows電腦為例,從「控制台」開啟「具有進階安全性的Windows Defender防火牆」管理介面,如圖7所示,可以查看到目前已新增一個名為「封鎖ICMPv4連線」的輸入規則。

圖7  Windows防火牆設定。

在這一項輸入規則的配置中,首先在「通訊協定及連接埠」頁面中,如圖8所示選擇「ICMPv4」通訊協定類型,然後連續按下〔下一步〕按鈕。接著,在「動作」頁面中選取「封鎖連線」,並連續按下〔下一步〕按鈕完成設定。

圖8  通訊協定及連接埠。

如圖9所示,在Ping測試範例中可以查看到目標主機,透過Windows防火牆封鎖ICMP通訊協定的前後結果。想想看,若想要測試的目標主機確實已封鎖ICMP通訊協定,那麼該如何確認目前該主機已在開機上線中?答案是善用ARP通訊協定功能。

圖9  防火牆配置前後測試。

當提及網路連線的診斷,就不能不說到ARP(Address Resolution Protocol)通訊協定的快取,因為它對於IPv4網路的正常運作至關重要。所謂ARP快取,便是最近解析的網路層IP位址,到資料連接層的MAC位址對應清單。如果ARP快取中的項目不正確,則IP資料封包可能會傳送到錯誤的電腦,此時就必須清除ARP快取。接下來,說明如何善用這項ARP快取。

在如圖10所示的範例中,先執行「arp -d 192.168.7.52」命令參數,將此目標主機的資料項目清除。再執行「arp -a」,來確定192.168.7.52這台目標主機的資料項目已經不存在。

圖10  刪除選定ARP資料。

緊接著,如圖11所示執行「ping 192.168.7.52」命令,測試一下與此目標主機的連線。在此可以發現儘管目標主機的ICMP沒有正確回應,但依舊可以透過ARP的快取獲得此主機解析後的資料,也就是IP位址與MAC地址的對應。

圖11  測試選定電腦連線。

當虛擬機器的網路配置正確且基本的連線測試也沒有問題,但某一些與網路相關的功能卻無法正常運行,例如vSphere HA、vSphere Replication等等,就必須檢查在虛擬機器的Guest OS中,是否已經安裝最新版本的VMware Tools。如果確認已經安裝,則可在「Apps & features」管理頁面中按下〔Uninstall〕按鈕進行移除,然後再重新開機並重新安裝。

另外,若虛擬機器所要連線的目的地主機,必須通過多個閘道才能到達,那麼可以透過如圖12所示的Tracert命令進行測試,此命令目前所支援的躍點數量上限是30個。

圖12  閘道跳躍點測試。

關於網路目標主機的連線測試,通常還會根據該主機所提供的服務,來測試它相對的連接埠是否有開啟,例如SMTP的TCP 25 Port以及HTTPS的443 Port。至於測試的工具,常見的會是使用Telnet命令工具。然而,Telnet命令不僅只是用來測試選定連接埠的開啟狀態,它主要還能夠讓用戶在成功連線後,可以進行該服務相關命令的執行,像是在SMTP服務中的Email發送測試等等。若只是要快速測試目標連接埠是否有開啟,其實可以改用更好的開源TCPPing命令工具。

將Windows版本下載並解壓縮後,再將tcping.exe複製到「C:\Windows\System32」資料夾中,即可在命令提示視窗使用。

‧TCPPing下載網址:https://github.com/pouriyajamshidi/tcping/releases/latest/download/tcping_Windows.zip

Linux版本目前支援Debian與Ubuntu作業系統,可以透過以下兩道命令參數,完成下載與安裝:

wget https://github.com/ pouriyajamshidi/tcping/releases/ latest/download/tcping_amd64.deb -O /tmp/tcping.deb   sudo apt install -y /tmp/tcping.deb

如圖13所示,便是Windows命令視窗中執行TCPPing命令工具的範例。在此以連線測試www.microsoft.com的TCP 443 Port為例,就能夠立即知道此連接埠是否有開啟以及連線後的回應時間。連線測試的過程中,可以隨時按下〔Ctrl〕+〔C〕鍵來中斷測試,此工具也會立即出現總體的測試報告。

圖13  tcping連線測試。

難題2:如何配置ESXi主機熱備援網卡

虛擬機器網路連線的問題,有些時候可能並非是系統面的配置錯誤所造成,而是主機實體的網卡故障所致。為此,可以預先配置熱備援的網卡,以便當主要網卡故障或線路中斷時,備援網卡能夠自動維持正常運行。

接下來,實際找一台ESXi主機並加裝備援網卡,來嘗試配置網卡的熱備援功能。首先,開啟vSphere Client網站,對於選定的ESXi主機點選至「設定」→「網路」→「實體介面卡」頁面中。

如圖14所示,目前除了有一張現行的vmnic0網卡外,還有另一張尚未連接任何vSwitch的vmnic1網卡,待會兒將要配置此網卡來成為熱備援網卡,先點選「新增網路」繼續。

圖14  ESXi主機實體介面卡。

接著,在「選取連線類型」頁面中選取「實體網路介面卡」,並按下〔NEXT〕按鈕。在「選取目標裝置」頁面中,則選取現有的vSwitch交換器,按下〔NEXT〕按鈕。

如圖15所示,在「新增實體網路介面卡」頁面中,選取「待命介面卡」區域內的vmnic1介面卡,然後按下〔NEXT〕按鈕。最後,在「即將完成」頁面中,確認上述的設定無誤後按下〔FINISH〕按鈕。

圖15  新增實體網路介面卡。

完成熱備援網卡的配置後,接下來找一台虛擬機器進行測試,觀察在ESXi主機的主要網卡線路拔除後,其網路的連線是否能夠繼續維持運行。

上述的作法是透過vSphere Client網站的操作介面來完成,同樣的需求若是改用ESXCLI命令工具來完成,則需要執行以下兩道命令參數,分別完成加入vmnic1網卡成為待命介面卡,以及查看在「Standby Adapters」設定中是否已經出現vmnic1的操作:

esxcli network vswitch standard uplink add -u vmnic1 -v vSwitch0 esxcli network vswitch standard policy failover get -v vSwitch0

難題3:如何解決vSphere Client無法連線問題

vSphere Client是IT人員平日管理vSphere整體架構運行的最重要工具,如果哪天當管理員進行該網站的連線時出現如圖16所示的「no healthy upstream」或「503 Service Unavailable」錯誤訊息,該怎麼辦呢?

圖16  無法連線vSphere Client。

上述的問題除了可能是vCenter Server目前仍在啟動過程中外,還有可能是以下幾種原因造成:

‧vCenter Server正在維護中

‧vCenter Server資源的使用正在滿載狀態

‧有磁碟方面問題發生在vCenter Server的主機中

‧vCenter Server資料庫連線有異常

‧防火牆配置問題

另外,若是vCenter Server服務中的VMware vSphere Client服務雖然在啟動中,但VMware vCenter Server服務卻在已停止狀態,也會出現上述無法開啟vSphere Client網站的問題。關於這兩服務的狀態檢視,可以在開啟vCenter Server管理網站後,如圖17所示再點選至「服務」頁面來檢視即可。

圖17  檢查vCenter Server服務。

當然,也可以透過SSH遠端連線方式,先以root帳號成功登入vCenter Server,接著執行「shell」命令進入到root的命令提示列,再執行「service-control --status --all」命令參數,即可得知哪些服務正在執行與停止。

難題4:如何排除叢集vSphere HA代理程式問題

vSphere HA是虛擬機器基礎的熱備援功能,而它之所以可以達到容錯移轉的機制,除了是結合虛擬機器Guest OS本身的VMware Tools外,更重要的是在叢集中的每一台ESXi主機,在啟用vSphere HA功能的過程中,便已自動安裝vSphere High Availability Agent服務。如圖18所示,這項服務可以從ESXi主機的「設定」→「服務」頁面中找到,換句話說,若此服務在「已停止」狀態下,便會讓vSphere HA的熱備援機制失效。

圖18  檢查ESXi主機服務。

然而,會導致vSphere High Availability Agent服務停止的原因,並非只有人為的手動操作才會發生。接著,看看以下這個案例。在叢集「摘要」頁面中,如圖19所示可以看到此叢集已發生找不到vSphere HA主要代理程式的錯誤訊息。

圖19  叢集摘要頁面。

點選至此叢集下任一ESXi主機的「摘要」頁面,如圖20所示,看到以下三則警示訊息,分別是「無法同步主機esxi01.lab02.com」、「已與主機中斷連線,原因:授權已到期」、「已在此主機上停用vSphere HA代理程式」。其中「授權已到期」肯定是發生此問題的主要原因。

圖20  ESXi主機摘要頁面。

只是這裡所指的「授權已到期」是指ESXi主機,還是vCenter Server或vSAN授權呢?答案是vCenter Server授權已到期,因此只要點選至vCenter Server節點的「設定」→「授權」頁面,如圖21所示便可以查看到在「授權到期」欄位內出現「已到期」的紅色警示。

圖21  檢查vCenter Server授權。

此時,只要點選頁面右上方的〔指派授權〕按鈕,便可以將已取得的合法授權金鑰完成新增設定。一旦成功完成授權設定,系統便會自動在幾分鐘內恢復正常運行,包括vSphere HA代理程式停止的問題也會自動恢復啟動狀態。

難題5:如何擴充Guest OS磁碟空間

在以實體機架構為主的時代,若主機的磁碟配置一開始不是採用磁碟陣列,而僅是安裝多顆獨立運行的磁碟,那麼一旦發生磁碟空間不足而需要擴充時,那便會是一件相當複雜的任務,因為如果發生的磁碟是系統磁碟,可能就需要重新安裝作業系統、應用系統以及重新配置各項設定等等。

同樣的難題如果是發生在虛擬機器,那麼處理的方法就簡化許多。首先,只要在虛擬機器關機的狀態下,開啟「編輯設定」頁面,如圖22所示,再修改所要擴充的硬碟容量大小並完成儲存。

圖22  編輯虛擬機器設定。

緊接著,開啟此虛擬機器電源,進入到Windows作業系統,並開啟「Disk Management」介面。在所要擴充的磁碟分割區上按下滑鼠右鍵,然後點選快速選單中的【Extend Volume】。

如圖23所示,接著在「Extend Volume Wizard」→「Select Disks」頁面中將位於「Available」的可用空間新增至「Selected」,然後按下〔Next〕按鈕繼續完成設定即可。再次回到「Disk Management」主頁面,便可以看到剛剛所選定的磁碟已經完成容量擴增。

圖23  擴充磁碟空間。

難題6:如何關閉沒有回應的虛擬機器

相信許多vSphere的管理員都曾經遭遇過虛擬機器沒有回應的窘境,所謂沒有回應一般是指無法編輯虛擬機器、無法開啟遠端主控台、無法正常關閉虛擬機器等等,彷彿虛擬機器已經成為一具殭屍機器,這時候該如何是好呢?

上述的情境可真是尷尬,因為既無法將虛擬機器正常關機,也無法使用強制關機。此時可以善用SSH Client連線主機來加以解決,當然也可以選擇在主機端,透過Direct Console 使用者介面(DCUI)來開啟命令介面。

進入到虛擬機器所在的ESXi主機命令介面後,如圖24所示執行「esxcli vm process list」命令參數,來查看目前正在執行中的虛擬機器清單。

圖24 查看執行中的虛擬機器。

緊接著,便可以在上一步驟的執行結果中,找到有問題虛擬機器的World ID號碼(例如528323),這時只要如圖25所示再執行「esxcli vm process kill --type=soft -w=528323」命令便可以將該虛擬機器正常關機。其中的--type參數也可以改用hard要求立即關機,若還是無法完成關機,可使用force參數來強制關機。想要確認該虛擬機器是否已經完成關機,再次執行「esxcli vm process list」命令即可得知。

圖25  刪除虛擬機器執行緒。

除了esxcli命令參數外,也可以善用esxtop命令工具。在esxtop命令檢視視窗中,只要先按下〔f〕鍵再按下〔c〕鍵,便可以先將LWID欄位加入檢視中。找到所有刪除的虛擬機器LWID欄位值後,就能夠如圖26所示按下〔k〕鍵再輸入LWID欄位值,來刪除此虛擬機器的執行緒。

圖26  esxtop監視器。

如果已習慣使用PowerCLI的命令參數,則可以在完成與vCenter Server的連線登入後,如圖27所示,先執行「Get-VM」來取得目前所有虛擬機器的狀態,再執行「Stop-VM -kill "ERP" -confirm:$false」命令參數,將選定的虛擬機器(例如ERP)強制關機。

圖27  停止選定虛擬機器。

接著,在使用SSH Client遠端連線登入的狀態下,其實也可以善用vim-cmd命令參數來解決相同的難題。首先,需要先執行「vim-cmd vmsvc/getallvms」命令參數,來查詢目標虛擬機器的代碼(例如4),接著,如圖28所示依序執行「vim-cmd vmsvc/power.getstate 4」與「vim-cmd vmsvc/power.off 4」命令參數,便可以得知選定虛擬機器的電源狀態並將它關閉。

圖28  使用vim-cmd停止虛擬機器。

如果想利用Linux本身內建的命令參數,是否也能夠將運行中的虛擬機器強制關閉呢?答案是可以的,只要如圖29所示先執行「ps | grep "ERP"」命令參數,取得選定虛擬機器的執行緒號碼,接著便可執行「kill -9 536363」來刪除該虛擬機器的執行緒。

圖29  使用Linux命令刪除執行緒。

難題7:如何排除ESXi主機連線無回應問題

虛擬機器會發生無回應的狀況,那麼ESXi主機是否也會發生同樣的問題呢?其實只要是作業系統,無論是安裝在實體主機還是虛擬機器,都有可能會發生無回應的問題,只不過導致無回應的問題原因不同而已。

當發現ESXi主機似乎沒有回應時,首先可使用Ping命令來測試一下這台主機是否有成功顯示Ping回應的時間,如果回應的時間顯示正常,即表示該主機雖然正在運行中,但是某一些服務可能沒有正常啟動。

接著,可以嘗試連線到ESXi Host Client網站,看看是否能夠正常顯示登入頁,若無法正常顯示,則通常會出現「no healthy upstream」訊息。

這時候若透過vSphere Client網站來查看ESXi主機狀態,應該會看到「沒有回應」錯誤訊息,如圖30所示,在這種狀況下所有於此主機中的虛擬機器也會全部顯示為「已中斷連線」。

圖30  檢視ESXi主機狀態。

既然也無法從vSphere Client來進行主機連線,那麼改為使用SSH Client連線。若連線過程中出現「Network error:Connection refused」錯誤,就表示目前此ESXi主機尚未啟用SSH服務。

此外,可以到主機端開啟DCUI介面,並且進入到「Troubleshooting Mode Options」頁面,如圖31所示,接著將SSH設定為Enabled狀態即可離開。

圖31  啟用SSH服務。

確認已啟動ESXi主機的SSH服務後,再一次嘗試以SSH Client連線登入。成功登入後,執行「/etc/init.d/hostd status」命令參數,執行後若出現「hosted is not running」訊息,即表示此主機服務沒有正常啟動,再執行「/etc/init.d/hostd start」命令參數來完成啟動。

最後,執行「/etc/init.d/vpxa status」命令參數來同樣查看其服務狀態,若出現「vpxa is running」訊息即表示該服務已在啟動中,萬一同樣出現「hosted is not running」訊息,則執行「/etc/init.d/vpxa start」命令參數進行啟動。

一旦確認hostd與vpxa兩項服務皆處於已啟動狀態,便可以再一次嘗試連線此主機的ESXi Host Client。圖32所示便是ESXi主機正常可以連線的顯示畫面,可以進一步登入到vSphere Client網站中,查看此主機與它旗下虛擬機器的狀態顯示是否已經同樣恢復正常。

圖32  連線ESXi Host Client成功。

難題8:解決ESXi主機無法正常運行的四大症狀

前面介紹過有關於ESXi Host Client網站無法連線時,除了可能是主機服務(hostd)沒有正常啟動外,也有可能是主機管理代理程式服務(vpxa)沒有啟動所致。其實當主機管理代理程式服務沒有啟動或不正常運行時,不僅可能會造成ESXi Host Client網站無法連線,以及讓ESXi主機無法與vCenter Server建立連線外,也可能會發生以下四種症狀:

‧ESXi主機雖然無法連線,但其中的虛擬機器卻仍然在執行中。

‧無法在vSphere Client中新增虛擬機器至此ESXi主機

‧無法移轉此ESXi主機的虛擬機器

‧當點選至此ESXi主機的節點時,無法從「摘要」頁面看到運行中虛擬機器的CPU與RAM的實際負載狀態。

只要有發生上述任一症狀,便可嘗試重新啟動主機管理代理程式。其中最簡單的方法是,直接在主機端的DCUI介面中,先按下〔F2〕鍵並通過身分驗證,再從「System Customization」選單進入到「Troubleshooting Mode Options」頁面,當點選「Restart Management Agents」,將會開啟「Restart Management Agents:Confirm」頁面,按下〔F11〕鍵即可重新啟動該服務。

關於主機管理代理程式的重新啟動,除了可從DCUI管理介面來完成外,若該主機的ESXi Host Client仍能正常連線登入,便可開啟「主機」→「管理」→「服務」頁面,先選取「vpxa」服務並按下滑鼠右鍵,再點選快速選單中的【重新啟動】。

若是在SSH Client遠端連線的命令模式下,則執行「chkconfig --list」命令參數得知vpxa服務的啟動狀態。若發現其狀態呈現「off」,便執行「/etc/init.d/vpxa start」命令參數進行啟動。

值得注意的是,當發現vpxa服務的狀態呈現「on」,但仍然有前面所述的幾種徵兆時,建議分別執行「/etc/init.d/hostd restart」與「/etc/init.d/vpxa restart」命令參數來嘗試完成這兩個服務的重啟操作,或許就能夠讓主機的運行恢復正常。

關於重新啟動vpxa服務的方法,也可以使用PowerCLI命令工具來完成。首先執行「Get-VMHostService -VMHost 192.168.7.250 -Refresh」命令參數,查看選定主機(例如192.168.7.250)的所有服務狀態。若發現vpxa確實沒有在啟動狀態,便執行以下兩個命令參數來啟動它:

$Service = Get-VMHostService -VMHost 192.168.7.250 -Refresh | Where {$_.Key -eq 'vpxa'} Restart-VMHostService -HostService $Service -Verbose

針對上述有關ESXi主機的四大症狀,除了可以透過重啟管理代理程式方式來解決外,也可嘗試僅重啟主機管理網路的方法來解決。在進入主機端DCUI管理介面中的「System Customization」頁面後,點選「Restart Management Network」來開啟確認訊息頁面,然後按下〔F11〕鍵,即可重新啟動管理網路,而此網路的重新啟動將會造成短暫的遠端無法連線。

以下是透過ESXCLI命令重啟主機管理網路的方法,此命令分成關閉與啟用網路介面的兩個設定,在SSH Client的連線中不可分開執行,否則將會導致網路斷線:

esxcli network ip interface set -e false -i vmk0; esxcli network ip interface set -e true -i vmk0

萬一發生因分開執行這兩道命令而導致主機無法連線的問題,則開啟DCUI的Shell命令來執行「esxcli network ip interface set -e true -i vmk0」命令即可解決。至於在DCUI的管理主控台中如何開啟Shell命令模式?只要按下〔ALT〕+〔1〕鍵便可進入,若按下〔ALT〕+〔2〕鍵則可以離開。

<本文作者:顧武雄, Microsoft MVP 2004-2016、MCITP與MCTS認證專家、台灣微軟Technet、TechDays、Webcast、MVA特約資深顧問講師、VMware vExpert 2016-217、IBM Unified Communications/Notes/Domino/Connections Certified。>


追蹤我們Featrue us

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

我知道了!