在這里,我們記錄一些在ESX主機上發生的、相當常見的問題。通常,可以采取一些簡單的步驟去解決這些問題,但有的問題就需要較深入的解決方法。
紫屏死機(PSoDs, Purple Screen of Death)
有一種在ESX和ESXi主機上都可能發生的故障,叫做紫屏死機(可以說是臭名昭著的微軟藍屏死機的VMware版)。紫屏死機會導致ESX/或ESXi主機突然崩潰、變得無法操作。紫屏死機現象如圖10.6所示,你一定不希望在自己的主機上發生這種現象。
圖10.6 ESX主機上的紫屏死機現象
當PSoDs發生時,ESX會完全死機,沒有任何反應。硬件問題(壞有問題的內存是最常見的原因)或ESX中的BUG是導致PSoDs的典型原因。當PSoDs發生時,你只能關閉并重啟主機。屏幕上的提示信息非常有用,應該嘗試記錄它:可以使用帶有拍照功能的手機給它照相,或者,如果存在的話,可以從一個遠程管理面板上截圖。你或許看不明白這些捕獲下來的信息,但是,這些信息對VMware的技術支持來說非常有用。屏幕上顯示的信息包括ESX的版本和build號、異常類型、寄存器轉儲(register dump)、崩潰時每個CPU正在跑什么、回溯追蹤(back-trace)、服務器運行時間、錯誤日志、內存硬件信息等。
當你遇到PSoDs并重啟主機之后,在ESX主機或/root文件夾下,會有一個以vmkernel-zdump開頭(命名)的文件。這個文件對 VMware技術支持非常有用,同時,你也可以使用該文件,通過vmkdump工具提取 VMkernel日志信息、尋找與PSoDs有關的線索,從而判斷PSoDs發生的原因。要使用這個命令,輸入vmkdump –l dump <文件名>。如前所述,壞有問題的內存是PSoDs中常見的原因。 你可以使用dump 文件識別引起問題的內存模塊,從而將其替換掉。
如果懷疑是壞內存引起PSoDs,可以使用一些內存壓力測試工具來檢測主機的內存。這些工具需要你關閉主機并從CD啟動以進行內存測試。一個常用的工具是Memtest86+,它可以進行廣泛的內存測試,比如,檢測鄰近內存單元的相互影響,以確保要寫某單元時不會覆蓋鄰近的單元。你可以在www.memtest.org下載這個工具。
當你在某個主機上首次部署ESX的時候,進行一次內存測試是個好主意,這樣可以避免在以后某個時候內存故障引起麻煩。許多的內存問題都是不明顯的,簡單的內存測試,比如POST過程中的內存校驗可能都發現不了問題。你可以下載Memtest86+測試工具,一個2MB大小的ISO文件,將這個文件刻錄成CD,讓主機從該CD啟動,然后運行該工具至少24小時以完成多種內存測試。主機中的內存越大,完成一次測試的時間越長,一個擁有32GB內存的主機完成一次測試大概需要1天的時間。除了系統內存,Memtest86+還檢測CPU的L1和L2 cache。Memtest86+的運行時間不確定,當所有的測試都完成時,通過的計數器會增加。(Memtest86+ will run indefinitely, and the pass counter will increment as all the tests are run.)
服務器控制臺問題
有時候,你可能會遇到服務器控制臺問題,表現為:服務器控制臺掛起,同時,不允許在本地登錄。這種狀況可能是由硬件鎖定或僵尸狀態引起,但是,通常這種問題不會影響在ESX主機上運行的虛擬機(VM)。重啟是解決這種問題的常用方法,但是,在重啟之前,你應該關閉VM,或者將VM VMmotion到其他的ESX。可以使用各種可用的途徑來操作VM,完成關閉或遷移。比如,使用VI client、通過SSH登錄到服務控制臺或者使用可替代的/緊急的控制臺(通過按Alt+F2到F6)。當VM被遷移或者關閉之后,你可以使用 reboot命令重啟ESX,如果所有的控制臺都沒有響應,你就只能去按主機上的電源按鈕,冷啟動主機。
網絡問題
有時,你也會遇到某種故障導致丟失了所有或者部分的網絡配置,或者網絡配置改變導致服務控制臺丟失網絡連接。當服務控制臺的網絡連接丟失時,你將無法使用遠程的方法來連接ESX主機,包括VI client和SSH。你只能在本地的服務控制臺上使用esxcfg-命令行工具恢復/修正網絡配置,以下是一些命令,你可以從ESX CLI上使用它們配置網絡:
esxcfg-nics
這個命令顯示物理網卡列表,除去每個網卡的驅動信息、PCI設備、鏈接狀態,你可以使用這個命令控制物理網卡的速度、雙工模式等。esxcfg-nics –l顯示網卡信息、esxcfg-nics –h顯示該命令可用的選項,以下是一些例子:
o設置物理網卡vmnic2的速度和雙工模式為100/Full:
esxcfg-nics -s 100 -d full vmnic2
o設置物理網卡vmnic2的速度和雙工模式為自適應模式:
esxcfg-nics -a vmnic2
esxcfg-vswif
創建或者更新服務控制臺網絡,包括IP地址和端口組,esxcfg-vswif –l顯示當前設置、esxcfg-vswif –h顯示可用的選項,以下是一些例子:
o更改服務控制臺(vswif0)IP地址和子網掩碼:
esxcfg-vswif -i 172.20.20.5 -n 255.255.255.0 vswif0
o添加服務控制臺(vswif0):
esxcfg-vswif -a vswif0 -p "Service Console" -i 172.20.20.40 -n 255.255.255.0
esxcfg-vswitch
創建或者更新虛擬機網絡(vSwitch) ,包括上行鏈路、端口組和VLAN ID. 輸入esxcfg-vswitch –l顯示當前的vSwitch、 esxcfg-vswitch –h顯示所有可用的選項. 以下是一些例子:
o將物理網卡(vmnic2) 添加到vSwitch (vSwitch1):
esxcfg-vswitch -L vmnic2 vswitch1
o將物理網卡(vmnic3)從一個vSwitch (vSwitch0)上移除:
esxcfg-vswitch -U vmnic3 vswitch0
o在vSwitch (vSwitch1)上添加一個端口組(VM Network3):
esxcfg-vswitch -A "VM Network 3" vSwitch1
o在vSwitch (vSwitch1)上給端口組(VM Network 3)分配一個VLAN ID(3):
esxcfg-vswitch -v 3 -p "VM Network 3" vSwitch1
esxcfg-route
設置或提取缺省的VMkernel網關路由。輸入esxcfg-route –l當前的路由信息、esxcfg-route -h顯示所有可用的選項. 以下是一些例子:
o設置缺省的VMkernel網關路由:
esxcfg-route 172.20.20.1
o添加一個路由到VMkernel:
esxcfg-route -a default 255.255.255.0 172.20.20.1
esxcfg-vmknic
為VMotion、NAS和iSCSI創建或者更新VMkernel TCP/IP設置。輸入esxcfg-vmknic –l顯示VMkernel NICs、esxcfg-vmknic -h顯示所有可用的選項. 以下是一些例子:
o添加一個VMkernel NIC并設定IP和子網掩碼:
esxcfg-vmknic -a "VM Kernel" -i 172.20.20.19 -n 255.255.255.0
另外,你可以通過service network restart命令重啟服務控制臺網絡。
其他問題
有時,重啟某些ESX服務既可解決問題且不影響VM的運行。兩個可以被重啟、并可經常解決問題的服務是hostd和vpxa。運行在服務控制臺中的 Hostd服務負責管理ESX上的大部分操作,要重啟hostd服務,登入服務控制臺,輸入service mgmt-vmware restart。
vpxa服務是管理代理,用于處理主機和客戶端之間的通訊,客戶端包括vCenter Server和任何連接到ESX的VI client。如果在vCenter Server上看到某個主機顯示disconnected但沒有顯示當前信息,或者,任何其他的涉及到vCenter Server和一個主機的奇怪的問題,都可以通過重啟vpxa服務來解決。要啟動該服務,登入服務控制臺,輸入service vmware-vpxa restart。當你遇到問題時,推薦你重啟這兩個服務,因為,重啟它們經常可以解決很多問題。
來自:http://virtual.51cto.com/art/200907/134341.htm