VMware ESX服務器常見問題診斷和解決
在這個系列里,我提供了通常由VMware ESX主機服務器、VirtualCenter、和虛擬機中出現的許多常見問題的解決方法。我們先開始處理在VMware ESX服務器常見問題診斷和解決。
Windows服務器的管理員早已熟悉了可怕的藍屏死機(BSOD),這就意味著服務器完全地終止。VMware ESX也有類似的狀況,叫做紫屏死機(PSOD),典型的是由于硬件問題和VMware 代碼中的bug造成的。
VMware ESX服務器常見問題之解決紫屏死機問題
當一個PSOD出現時,你需要做的***件事情就是記錄下屏幕上顯示的信息,我建議用數碼相機或者手機拍一個快照。PSOD信息包括ESX的版本和構建、異常類型、寄存器轉儲、在崩潰時每一個CPU在運行什么、跟蹤信息、服務器正常運行時間、錯誤信息和內存核心轉儲信息。這些信息對你沒用,但是VMware 技術支持人員可以解碼上述信息,幫助測定崩潰的原因。
不幸的是,當遭遇到PSOD,除了記錄屏幕上的信息,你唯一的選擇是關閉服務器重啟。一旦服務器重啟起來,你將在服務器的/root目錄下發現mkernel-zdump-*文件,這個文件對定位問題很有價值。你可以用vmkdump工具從該文件中提取vmkernel日志文件(vmkdump –l),然后定位引起PSOD的原因。VMware支持一般也需要這個文件。出現PSOD常見的原因是服務器內存不足,那個轉儲文件將有助于識別導致問題的內存模塊并替換這個模塊。
VMware ESX服務器常見問題之檢查你的RAM
如果你懷疑你系統的RAM可能有問題,可以用一個內置的工具在后臺檢查你的RAM而不影響你正在運行的虛擬機。該RAM檢查工具運行在VMkernel里,通過登錄到服務器控制臺,輸入Service Ramcheck Start開啟。
當正在運行RAM檢測時,它把所有的活動和任何錯誤信息記錄到/var/log/vmware目錄下的文件ramcheck.log和ramcheck-err.log中。然而,它的一個缺陷是如果你有虛擬機正在運行,用這個工具不能檢測所有的RAM,只能檢測在ESX系統中未用的RAM。一個比較徹底的檢測你的服務器中RAM的方法是關閉ESX,從CD引導,然后運行Memtest86+程序。
VMware ESX服務器常見問題之使用vm-support工具
如果你聯系VMware技術支持人員,他們一般會要求你運行vm-support工具,它將把所有的ESX server的日志和配置文件打包成一個文件。通過root權限登錄到服務控制臺,然后不需要設置任何選項,輸入“vm-support” 就可以運行這個工具。這個工具將創建一個Tar文件,以"esx---..tgz"格式命名。你可以通過FTP把它發送給VMware技術支持人員。確保把該Tar文件從ESX服務器上刪除,這樣做可以節省磁盤空間,或者,你可以通過VI client生成同樣的文件。選擇Administration,然后選擇Export Diagnostic Data,選擇你的主機(VirtualCenter 數據選項)和一個本地PC目錄來存儲將要創建的文件。
VMware ESX服務器常見問題之用日志文件排除故障
日志文件一般是排除各種類型問題的***工具。ESX有許多的日志文件,你需要檢查哪個日志文件取決于你所遇到的問題。以下是ESX日志文件的列表,你通常可以用來定位ESX服務器的問題。VMkernel和主機日志文件一般都是你需要首先檢查的。
VMkernel - /var/log/vmkernel——與虛擬機和ESX服務器相關的活動的記錄。帶擴展名以數字循環,當前的日志沒有擴展,最近的日志帶有“.1”擴展。
VMkernel Warnings -/var/log/vmkwarning——記錄虛擬機的活動,VMkernel日志的子集,用同樣的循環模式。
VMkernel Summary - /var/log/vmksummary——用于確定ESX服務器正常運行的時間和可用性統計,可讀性的總結在/var/log/vmksummary.txt中。
ESX Server host agent log - /var/log/vmware/hostd.log——包含管理和配置ESX服務器主機和它的虛擬機代理信息。(查找文件的date/time戳來找到最近輸出的日志文件,或者打開hostd.log,該文件連接到當前的日志文件)。
ESX Firewall log - /var/log/vmware/esxcfg-firewall.log——記錄所有的防火墻規則事件。
ESX Update log - /var/log/vmware/esxupdate.log——記錄所有的通過esxupdate統計所在的更新。
Service Console - /var/log/messages——包括所有的用于排除虛擬機和ESX服務器故障的一般日志信息。
Web Access - /var/log/vmware/webAccess——記錄通過基于web訪問ESX服務器的信息。
Authentication log - /var/log/secure——包含所有的需要認證的連接信息,例如VMware守護進程和由xinetd守護進程發起的動作。
Vpxa log - /var/log/vmware/vpx——記錄和VirtualCenter通訊的代理的信息,通過查找文件的date/time戳來找到最近輸出的文件或者打開hostd.log,該文件連接到當前的日志文件。
做為解決故障過程的一部分,你經常需要找出各種ESX組件的版本和使用的補丁,下面是一些命令,你可以從服務臺運行來完成:
輸入vmware -v來檢查ESX服務器的版本,例如VMware ESX Server 3.0.1 build-32039
輸入esxupdate –l query來查看安裝的補丁
輸入vpxa –v來檢查ESX服務器的管理版本,例如VMware VirtualCenter Agent Daemon 2.0.1 build-40644
輸入rpm –qa | grep VMware-esx-tools來檢查ESX服務器VMware Tools安裝的版本,例如VMware-esx-tools-3.0.1-32039
如果所有可能失敗,重啟Vmwate主機代理服務
許多的ESX問題可以通過重啟VMware主機代理服務(vmware-hostd)解決,該服務負責管理大部分ESX主機的操作,通過登陸服務控制臺,輸入service mgmt-vmware restart來實現。
注意:ESX 3.0.1有一個bug,如果你的ESX服務器為你的VM配置了auto-startups選項,它將重啟你所有的VM。這個bug在3.0.1 和 3.0.2中用一個補丁修復,但是在ESX 3.5中用另一個發布的補丁修復。在運行此命令時***臨時禁止auto-startups選項。
在某些情況下,當你重啟主機代理服務,重啟vmware-vpxa服務可以定位發生在ESX和VI Client之間以及ESX和VirtualCenter之間的問題。該服務是管理代理,處理ESX和它的客戶端的所有通訊。通過登陸ESX主機,輸入service vmware-vpxa restart就可以完成。需要注意的是重啟哪種服務都不會影響你的虛擬機操作(除了上述提到的bug)。
VMware ESX服務器常見問題之修復凍結的服務控制臺
另一個會發生的問題是你的服務控制臺掛起,不允許你本地登入。硬件鎖定或者一個死鎖狀態都會導致這樣。當發生這種狀況時,你的VM可以繼續正常運行,但是重啟ESX是通常恢復的唯一的方法。在你重啟之前,試著關閉你的客戶VM,或者用VMotion把它們遷移到另一個ESX主機上。通過SSH遠程連接的VI Client或者alternate/emergency控制臺的其中之一來完成,可以先按Alt-F6,然后按Alt-F2鍵。你也可以按Alt-F12在控制臺的屏幕上顯示內核信息。如果你可以關閉或者遷移你的VM,你就可以通過VI Client或者alternate控制臺發出重新引導的命令來試圖重啟服務器。如果不行,冷啟動服務器就是你唯一的選擇了。
VMware ESX服務器常見問題之網絡配置丟失
可能出現的問題是你也許丟失了部分或所有的網絡配置。如果發生這種情況,由于你不能通過VI Client連接,你必須用ESX本地服務控制臺來重新構建網絡。VMware已經發布了相關知識的文章:如何使用esxcfg-*服務控制臺命令來重建你的網絡和如何驗證你的網絡配置。
結論
在這篇文章里,我已經敘述了一些發生在VMware ESX服務器常見問題,在這個系列文章的下一部分,我將描述在VirtualCenter的故障排除問題。
【編輯推薦】