vsphere 故障排查
- vsphere 故障排查
- 1 vSphere 排錯思想
- 2 虛擬機的故障排查
- 3 networking 子系統(tǒng)故障查詢
- 4 storage 的故障排查
- 5 vcenter&ESXi 故障排查
- 6 常用故障排查工具
1 vSphere 排錯思想
??確認(rèn)問題狀況:
- 確認(rèn)問題所在
- 收集故障相應(yīng)日志或者資料
??確認(rèn)導(dǎo)致故障的原因:
- 確認(rèn)什么原因?qū)е碌膯栴}
- 診斷問題的根本原因是什么
??解決問題:
- 制定可嫩的解決方案
- 評估數(shù)據(jù)安全風(fēng)險
- 執(zhí)行最佳解決方案
1.1 故障排查邏輯
![故障排查邏輯][故障排查邏輯]
1.2 常規(guī)故障分層
編號 | 故障 | 說明 |
---|---|---|
5 | 應(yīng)用程序 | |
4 | 虛擬機操作系統(tǒng)故障 | |
3 | 虛擬機故障 | |
2 | ESXi Host 故障 | |
1 | 物理設(shè)備硬件故障 |
2 虛擬機的故障排查
??排查方向:
- 快照
- 能不能開機
- 能不能連接
- vmware tools 是不是有問題
2.1 快照問題修復(fù)
??虛擬機文件架構(gòu):
![VM文件架構(gòu)][VM文件架構(gòu)]
??CID(content ID),位于VM的磁盤描述文件里面負(fù)責(zé)磁盤相關(guān)整合狀態(tài)跟蹤
- 如果沒有做快照,則原始的parentCID=ffffffff
- 如果做了快照,母盤的CID是第一個快照盤的parentCID
- 第二級快照的parentCID是第一級快照的CID,依次類推
- 第二級快照和原始盤沒有關(guān)系,快照層級出問題一般為CID無法對應(yīng)
2.1.1 解決CID不匹配問題
- 備份好磁盤描述文件
- 用文本編輯器打開文件,修改CID
- 使用
vmkfstools -q ******.vmdk -v10
驗證CID是否修改成功,如果提示失敗,則修改沒有成功
2.1.2 vss導(dǎo)致snapshot失敗
??執(zhí)行snapshot時,提示I/O靜默調(diào)用失敗
- 虛擬機由大量的I/O負(fù)載導(dǎo)致在執(zhí)行snapshot時I/O Quiescing失敗
- 通常通過以下兩個技術(shù)來執(zhí)行I/O Quisescing
Microsoft Volume Shadow Copy Service(vss)
VMware Tools SYNC driver
- 初始化檢查:檢查是否可以手動創(chuàng)建一個不調(diào)用I/O Quiescing的快照
??解決過程:
- 如果利用vss執(zhí)行I/O Quiescing,則需要確認(rèn)下列條件滿足:
vss要求滿足
相關(guān)服務(wù)是正常運行狀態(tài)
Microsoft Volume Shadow Copy Service正常
vss writer沒報錯
- 如果利用SYNC Driver執(zhí)行I/O Quiescing,則需要確認(rèn)下列條件滿足:
禁止掉SYNC Driver
在執(zhí)行snapshot之前,先將I/O密集業(yè)務(wù)停掉
- 老版本的windows os沒包含SYNC Driver在Microsoft vss里面
2.2 開啟虛擬機失敗
??在 vmware.log 文件里可以看到虛擬機開啟失敗的原因
??虛擬機層面:部分文件丟失,或者部分文件處于鎖定狀態(tài)
??ESXi host層面:是否由足夠的資源,ESXi主機是否有響應(yīng)
ls /vmfs/volumes/Shared/VMname ##查看虛機文件
??解決方案:
- 利用之前的備份來恢復(fù)
- 如果 descriptor 文件丟失,手動重建這個文件
??分析虛機是否被鎖定:
- 嘗試開機,如果失敗,則可能有鎖定
- 執(zhí)行
touch filename
命令查看是否有文件被鎖定 - 執(zhí)行
vmkfstools -D /vmfs/volumes/Shared/vmname/****-flat.vmdk
查看哪臺ESXi主機鎖定了該文件 - 執(zhí)行
lsof | grep <被鎖定文件名>
- 殺掉相應(yīng)的進(jìn)程
2.3 vm tools 無法安裝
- 檢查 guest os 類型選擇是否正確
- vmware tools iso 的匹配錯誤
- vmware tools iso 無法找到
- vmware tools iso 鏡像故障
2.4 vm orphaned
- 檢查vcenter Server是否在VM執(zhí)行遷移時重啟過,因為在虛擬機被重啟時,會臨時性的無法使用,狀態(tài)就會顯示為orphaned
編號 | 檢查層級 | 可能存在的問題 |
---|---|---|
1 | vcenter | vmotion 或者 DRS 導(dǎo)致問題 |
2 | vm | 沒通過vcenter執(zhí)行了對vm的刪除動作 |
3 | vm | *.vmx 文件有故障 |
4 | ESXi 主機 | 當(dāng) ESXi 的根文件系統(tǒng)空間不足時可能會嘗試刪除動作 |
2.4.1 vmotion 或者 DRS 導(dǎo)致問題
- 查看tasks頁標(biāo)簽
- 檢查orphaned虛擬機被注冊到的源或目標(biāo) ESXi Host
??如果有找到虛擬機被注冊到 ESXi Host
- 重啟 ESXi Host 的管理服務(wù)
??如果沒有找到虛擬機被注冊的信息,則執(zhí)行
- 注冊虛擬機到 ESXi 或者 vcenter
- 利用orphaned虛擬機的vmdk創(chuàng)建新的虛擬機
2.4.2 沒有通過vcenter刪除導(dǎo)致故障
??使用ls命令查看虛擬機文件是否存在
??如果配置文件被刪除,則使用vmdk重建虛擬機
??如果虛擬機的磁盤文件被刪除,則執(zhí)行備份恢復(fù)
2.4.3 vmx 文件被破壞導(dǎo)致故障
- 利用文本編輯器編輯vmx文件,去掉不當(dāng) 的部分重試
- 從備份信息里恢復(fù)vmx文件
- 直接移除虛擬機,然后使用vmdk重建虛擬機
2.4.4 ESXi 根文件系統(tǒng)空間不足導(dǎo)致故障
- 當(dāng)ESXi的根文件系統(tǒng)空間不足時,系統(tǒng)可能會嘗試刪除除掉虛擬機
- 清除掉根文件系統(tǒng)里的不必要內(nèi)容
- 從inventory移除掉vm,再重新添加
2.5 vm snapshot故障
- 確認(rèn)虛擬機的磁盤是否支持snapshot,因為RDM的physical mode,independent disk 狀態(tài)下是無法做快照的
- 由于snapshot最多支持32級,因此,超過后會無法執(zhí)行
故障原因分析:
- vcenter 用戶沒權(quán)限執(zhí)行快照
- vm 虛擬機的-delta.vmdk 文件在描述信息里錯亂
- ESXi 快照文件超過datastore的上線,datastore剩余空間不足以支撐所有的快照處理
3 networking 子系統(tǒng)故障查詢
層級 | 查看內(nèi)容 |
---|---|
物理環(huán)境 | 交換機、VLAN、策略 |
虛擬環(huán)境 | vswitch、portgroup、teaming、policy |
虛擬機 | vmOS、vNIC |
3.1 ESXi主機網(wǎng)絡(luò)連接不穩(wěn)定或者瞬斷
3.1.1 檢查過程
- DCUI界面 ping 外部地址(如果可以ping通則表明沒有問題)
原理解析:ESXi 通過VMkernel 再通過 物理網(wǎng)卡連接外部網(wǎng)絡(luò),若ping不通,則說明vmkernel到物理網(wǎng)卡或者外部網(wǎng)絡(luò)之間有故障
??可能故障原因:
- ESXi主機
- ESXi的管理網(wǎng)絡(luò)配置不正確
- port group的VLAN ID不對
- 網(wǎng)絡(luò)卡的雙工速率與P switch不匹配
- 網(wǎng)絡(luò)連接中斷
- NIC teaming的policy配置不當(dāng)
- hardware
- 物理網(wǎng)絡(luò)卡不在兼容列表范疇
- 物理設(shè)備本身故障
- 網(wǎng)絡(luò)性能低下
3.1.2 ESXi網(wǎng)絡(luò)配置驗證(檢查)
??配置驗證(ESXi SHELL)
??檢查vSS、vmnics和port groups
esxcfg-vswitch -l
??檢查port groups的VLAN ID:
esxcli network vswitch standard portgroup list
??檢查速率和雙工模式:
esxcfg-nics -l
??檢查網(wǎng)絡(luò)連接狀態(tài):
esxcffg-nics -l
3.1.3 ESXi 配置問題修復(fù)
??針對vSS、vmnics和port groups的修復(fù)
下表中帶有#符號的設(shè)備皆為設(shè)備編號
操作 | 命令 | 說明 |
---|---|---|
添加vSS | esxcfg-vswitch -a <vswitch#> | |
添加port group | esxcfg-vswitch -A <pg_name> vswitch# | |
添加上行鏈路 | esxcfg-vswitch -L <vmnic#> vswitch# |
??port group VLAN 設(shè)定調(diào)整:
esxcli network vswitch standard portgroup set -p <pg_name> -v <vlan_id>
??速率和雙工模式調(diào)整:
esxcfg-nics -d <duplex> -s <speed> vmnic#
3.1.4 硬件功能驗證
??查看硬件信息,然后在官網(wǎng)的HCL查詢設(shè)備是否在兼容列表中
esxcfg-nics -l
lspci -p ###查看是否由硬件故障導(dǎo)致
3.1.5 查看是否網(wǎng)絡(luò)性能低下
??esxtop
或者resxtop
3.2 虛擬機網(wǎng)絡(luò)中斷
從虛擬及ping其他vm或者ESXi主機失敗,同時從其他設(shè)備ping虛擬機也失敗
編號 | 層級 | 可能的原因 | 備注 |
---|---|---|---|
1 | 操作系統(tǒng) | IP配置錯誤 | |
2 | 操作系統(tǒng) | 防火墻策略配置錯誤 | |
3 | 操作系統(tǒng) | 網(wǎng)絡(luò)卡型號選擇錯誤 | |
4 | VM | 虛擬機的port group不存在 | |
5 | VM | 虛擬機的網(wǎng)絡(luò)卡配置異常 | |
6 | ESXi | 網(wǎng)絡(luò)連接故障 | |
7 | ESXi | 存在存儲或資源爭用 | 處理辦法:遷移 |
8 | ESXi | vSS的port數(shù)量不足以支撐vm的連接數(shù)量 | 可以修改數(shù)量,但是需要重啟ESXi |
3.3 ESXi 頻繁從 vcenter 斷開
ESXi 可以成功添加到vcenter 但是每隔30-90秒會自動斷開
Dropped、blocked或丟失heartbeat包在vcenter與ESXi之間頻繁發(fā)生
??vcenter與ESXi之間的通訊結(jié)構(gòu)
??ESXi會發(fā)送心跳到vcenter(UDP 902斷口),目的:確定連接是否正常,HA做備用的準(zhǔn)備
??可能故障原因:
- windows版防火墻block了UDP 902 端口
- vcenter 沒使用902端口來發(fā)送和接收心跳,且ESXi block 了這個端口(vcenter的心跳端口配置可以在
/etc/vmware/vpxa/vpxa.cfg
中查看,ESXi的heartbeat端口在heartbeat.xml
文件中) - ESXi與vcenter之間的通訊擁塞
4 storage 的故障排查
??故障類型:
- 存儲連接故障
- 多路徑故障
4.1 IP storage無法被ESXi主機訪問
??存儲信息驗證:
excli storage core path list ///確認(rèn)ESXi主機能夠看到存儲(能夠看到說明硬件層面沒問題)
esxcli storage core adapter rescan -A <vmhba##> ///執(zhí)行后一般能夠恢復(fù)(target到initiator之間的重新握手)
4.1.1 故障原因分析
如果ESXi過去訪問IP storage正常,在沒有做任何變更的情況下出現(xiàn)故障,則可以參考如下流程,進(jìn)行故障解決嘗試
編號 | 層級 | 故障原因 | 備注 |
---|---|---|---|
1 | ESXi | VMkernel接口配置丟失 | |
2 | ESXi | IP storage 訪問ESXi的配置異常 | |
3 | ESXi | iSCSI TCP 端口 3260 不可達(dá) | |
4 | ESXi | 防火墻干擾了iSCSI通訊流量 | |
5 | ESXi | NFS存儲配置異常 | |
6 | ESXi | VMFS Datastore 存儲 Metadata 被破壞 | |
7 | 硬件 | iSCSI存儲陣列不被支持 | |
8 | 硬件 | LUN沒有被正確的映射到適當(dāng)?shù)腅SXi | |
9 | 硬件 | 物理硬件故障 | |
10 | 硬件 | iSCSI storage 性能不足 |
4.1.2 硬件問題檢查
- iSCSI HBA卡或者iSCSI storage 陣列不被ESXi支持:可以在vmware的HCL里查看型號
- 確認(rèn)LUN被正確的映射到適當(dāng)?shù)腅SXi上
- 同一個存儲組里的LUN是否被映射到所有ESXi上
- LUN的構(gòu)建是否符合ESXi的使用標(biāo)準(zhǔn)
- LUN是否被設(shè)定為R/O
- 陣列上For ESXi的HOST ID是否小于255
- 存儲設(shè)備故障:利用硬件工具診斷存儲故障
- 存儲性能檢查:esxtop/resxtop后輸入d查看
4.2 多路徑故障
excli storage core path list ///確認(rèn)ESXi主機能夠看到存儲(能夠看到說明硬件層面沒問題)
excli storage nmp device list ///LUN的多路徑配置信息
esxcli storage core adapter rescan -A <vmhba##> ///執(zhí)行后一般能夠恢復(fù)(target到initiator之間的重新握手)
4.2.1 故障原因分析
如果在 /var/log/vmkernel.log 文件里看到關(guān)于 permanent data loss (PDL) 或 all paths down (APD) 之類的信息時,可以執(zhí)行如下的故障排查流程
編號 | 層級 | 故障原因 | 備注 |
---|---|---|---|
1 | ESXi | iSCSI storage 需要去檢查是否NIC teaming 配置異常 | |
2 | ESXi | 檢查存儲設(shè)備的路徑選擇策略(PSP)是否異常 | |
3 | 硬件 | 檢查是否發(fā)生了PDL | |
4 | 硬件 | 檢查是否發(fā)生了APD |
4.2.2 PDL觸發(fā)情況
- 當(dāng)存儲永久性無法被ESXi訪問時,存儲可能回出現(xiàn)PDL狀態(tài)
- 可能導(dǎo)致PDL的因素大致有如下方面
- 設(shè)備無意中被誤刪除了
- 設(shè)備的unique ID被手動更改了
- 設(shè)備發(fā)生了知名硬件故障
- 設(shè)備空間爆掉導(dǎo)致無法訪問
- vsphere web client里體現(xiàn)形式
- 在設(shè)備的操作狀態(tài)變成了lost communication
- 所有鏈路都變成了dead狀態(tài)
- 設(shè)備上的datastore不可用
4.2.3 PDL修復(fù)
- 如果LUN在PDL發(fā)生時沒有使用,可能回發(fā)生如下情況:PDL發(fā)生后LUN會消失
- 如果LUN在PDL發(fā)生時在使用,則需要從ESXi上手動detach和remove
- 執(zhí)行完對存儲的重新配置后需要:1.重新attach存儲設(shè)備;2.重新mount datasore;3.重啟虛擬機
4.2.4 APD觸發(fā)情況
- 當(dāng)存儲在一定時間內(nèi)無法被ESXi訪問時APD就可能發(fā)生:比較短暫,設(shè)備很快重新可用
- 可能導(dǎo)致APD的情況如下:
- 存儲設(shè)備從ESXi的一重動作并非計劃內(nèi)的
- VMkernel無法檢測到存儲設(shè)備導(dǎo)致
- IP storage 的前提下,網(wǎng)絡(luò)連接中斷導(dǎo)致所有的iSCSI路徑中斷
- iSCSi HBA卡本身的固件版本故障
- vsphere web client里體現(xiàn)形式
- 設(shè)備變成了desd或者error狀態(tài)
- 所有存儲路徑變成了dead
- 設(shè)備上所有的datastore不可用
- vm無法使用
4.2.5 APD修復(fù)
- 當(dāng)主機到存儲連接出現(xiàn)APD時,想要在存儲陣列或者區(qū)域網(wǎng)絡(luò)里修復(fù),需要:所有的ESXi重啟
- 在APD情況下無法執(zhí)行vmotion操作
- 針對APD的故障,ESXi提供了一些缺省組件
- 全局設(shè)定里,找到Misc.APDHandlingEnable:缺省為1,表示激活存儲的APD處理機制
- Timeout設(shè)定,找到Misc.APDTimeout:缺省為140,這個數(shù)據(jù)表示APD故障的允許時間間隔
5 vcenter&ESXi 故障排查
5.1 SSO故障
??SSO無法發(fā)現(xiàn)信任域(先加域,再安裝,養(yǎng)成良好的操作習(xí)慣):
- 通常實在先安裝SSO后加域的情況下會出現(xiàn)這種情況
- 安裝完之后嘗試使用命令來恢復(fù):在SSO安裝目錄的utils目錄
ssocli configure-riat verbose -a discover-is -u admin -p <password>
5.2 vcenter: VMware VirtualCenter Server 服務(wù)無法啟動
- 在操作系統(tǒng)層面查看服務(wù)是否真的沒有啟動
- 檢查數(shù)據(jù)庫,是否正常
??可能存在的問題:
- ODBC數(shù)據(jù)源配置故障(windows vcenter)
- 檢查902、80、443端口是否被占用
5.3 vcenter: 服務(wù)啟動緩慢
- 數(shù)據(jù)庫異??赡軐?dǎo)致服務(wù)無法啟動
- 檢查vcenter server對應(yīng)數(shù)據(jù)庫配置是否滿足下列要求:
- 磁盤空間滿了
- 數(shù)據(jù)庫增長情況
- vcenter到數(shù)據(jù)庫的受信有效性
5.4 ESXi: 奔潰,出現(xiàn)紫屏
??可能原因:
- CPU 爭用
- 正版軟件檢測機制
- 驅(qū)動或者模塊 panic
- MCE 自檢失敗
- 硬件故障
5.5 ESXi: hang死
??可能原因:
- VMkernel繁忙或者deadlocked了
- 硬件層面故障
??表現(xiàn)形式:
- 整個系統(tǒng)無響應(yīng)
- 系統(tǒng)在重啟后可能沒有恢復(fù)正常
??驗證主機狀態(tài):
- ping vmkernel 網(wǎng)絡(luò)配置
- 確認(rèn)是否可以使用web client 去查詢界面
- 監(jiān)控ESXi與vm之間是否有網(wǎng)絡(luò)通訊
- 以上都成功,則沒有hang死
6 常用故障排查工具
編號 | 工具 | 備注 |
---|---|---|
1 | vMA | 統(tǒng)一管理ESXi(作為排錯工具價值比較小,排錯基本沒有網(wǎng)絡(luò)環(huán)境) |
2 | esxcli | 隨著VMware的版本升級,功能越來越多 |
3 | vim-cmd | 主要對ESXi和虛擬機操作(不建議對vcenter進(jìn)行操作,而且操作有限,風(fēng)險較高) |
6.1 vcenter核心日志列表
日志文件 | 用途 |
---|---|
vpxd.log | 存放了vsphere client、vsphere web services SDK連接、 Tasks、Events已及與vpxa通訊記錄 |
vpxd-profiler.log、profiler.log、scoreboard.log | vcenter的配置相關(guān)信息 |
cim-diag.log(vws.log) | CIM監(jiān)控信息,vcenter與ESXi的CIM通訊信息記錄 |
6.2 ESXi核心日志列表
日志文件 | 用途 |
---|---|
hostd.log | ESXi Host的管理服務(wù) |
syslog.log | 記錄管理服務(wù)的初始化、watchdogs、計劃任務(wù)和DCUI的使用記錄和信息 |
vmkernel.log | vmkernel日志,包含設(shè)備發(fā)現(xiàn)、存儲、網(wǎng)絡(luò)設(shè)備、驅(qū)動和虛擬機啟動的信息 |
vmkwarning.log | vmkernel日志當(dāng)中關(guān)于警告、事件等日志信息 |
vmksummary.log | 記錄ESXi啟動、關(guān)閉、心跳時間、虛擬機運行、服務(wù)資源開銷等記錄 |