vsphere 故障排查

vsphere 故障排查

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 虛擬機的故障排查

??排查方向:

  1. 快照
  2. 能不能開機
  3. 能不能連接
  4. 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不匹配問題

  1. 備份好磁盤描述文件
  2. 用文本編輯器打開文件,修改CID
  3. 使用 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)致問題

  1. 查看tasks頁標(biāo)簽
  2. 檢查orphaned虛擬機被注冊到的源或目標(biāo) ESXi Host

??如果有找到虛擬機被注冊到 ESXi Host

  1. 重啟 ESXi Host 的管理服務(wù)

??如果沒有找到虛擬機被注冊的信息,則執(zhí)行

  1. 注冊虛擬機到 ESXi 或者 vcenter
  2. 利用orphaned虛擬機的vmdk創(chuàng)建新的虛擬機

2.4.2 沒有通過vcenter刪除導(dǎo)致故障

??使用ls命令查看虛擬機文件是否存在
??如果配置文件被刪除,則使用vmdk重建虛擬機
??如果虛擬機的磁盤文件被刪除,則執(zhí)行備份恢復(fù)

2.4.3 vmx 文件被破壞導(dǎo)致故障

  1. 利用文本編輯器編輯vmx文件,去掉不當(dāng) 的部分重試
  2. 從備份信息里恢復(fù)vmx文件
  3. 直接移除虛擬機,然后使用vmdk重建虛擬機

2.4.4 ESXi 根文件系統(tǒng)空間不足導(dǎo)致故障

  1. 當(dāng)ESXi的根文件系統(tǒng)空間不足時,系統(tǒng)可能會嘗試刪除除掉虛擬機
  2. 清除掉根文件系統(tǒng)里的不必要內(nèi)容
  3. 從inventory移除掉vm,再重新添加

2.5 vm snapshot故障

  1. 確認(rèn)虛擬機的磁盤是否支持snapshot,因為RDM的physical mode,independent disk 狀態(tài)下是無法做快照的
  2. 由于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ò)之間有故障

??可能故障原因:

  1. ESXi主機
  • ESXi的管理網(wǎng)絡(luò)配置不正確
  • port group的VLAN ID不對
  • 網(wǎng)絡(luò)卡的雙工速率與P switch不匹配
  • 網(wǎng)絡(luò)連接中斷
  • NIC teaming的policy配置不當(dāng)
  1. 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)備

??可能故障原因:

  1. windows版防火墻block了UDP 902 端口
  2. vcenter 沒使用902端口來發(fā)送和接收心跳,且ESXi block 了這個端口(vcenter的心跳端口配置可以在/etc/vmware/vpxa/vpxa.cfg中查看,ESXi的heartbeat端口在heartbeat.xml文件中)
  3. ESXi與vcenter之間的通訊擁塞

4 storage 的故障排查

??故障類型:

  1. 存儲連接故障
  2. 多路徑故障

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 硬件問題檢查

  1. iSCSI HBA卡或者iSCSI storage 陣列不被ESXi支持:可以在vmware的HCL里查看型號
  2. 確認(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
  1. 存儲設(shè)備故障:利用硬件工具診斷存儲故障
  2. 存儲性能檢查: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ā)情況

  1. 當(dāng)存儲永久性無法被ESXi訪問時,存儲可能回出現(xiàn)PDL狀態(tài)
  2. 可能導(dǎo)致PDL的因素大致有如下方面
  • 設(shè)備無意中被誤刪除了
  • 設(shè)備的unique ID被手動更改了
  • 設(shè)備發(fā)生了知名硬件故障
  • 設(shè)備空間爆掉導(dǎo)致無法訪問
  1. vsphere web client里體現(xiàn)形式
  • 在設(shè)備的操作狀態(tài)變成了lost communication
  • 所有鏈路都變成了dead狀態(tài)
  • 設(shè)備上的datastore不可用

4.2.3 PDL修復(fù)

  1. 如果LUN在PDL發(fā)生時沒有使用,可能回發(fā)生如下情況:PDL發(fā)生后LUN會消失
  2. 如果LUN在PDL發(fā)生時在使用,則需要從ESXi上手動detach和remove
  3. 執(zhí)行完對存儲的重新配置后需要:1.重新attach存儲設(shè)備;2.重新mount datasore;3.重啟虛擬機

4.2.4 APD觸發(fā)情況

  1. 當(dāng)存儲在一定時間內(nèi)無法被ESXi訪問時APD就可能發(fā)生:比較短暫,設(shè)備很快重新可用
  2. 可能導(dǎo)致APD的情況如下:
  • 存儲設(shè)備從ESXi的一重動作并非計劃內(nèi)的
  • VMkernel無法檢測到存儲設(shè)備導(dǎo)致
  • IP storage 的前提下,網(wǎng)絡(luò)連接中斷導(dǎo)致所有的iSCSI路徑中斷
  • iSCSi HBA卡本身的固件版本故障
  1. vsphere web client里體現(xiàn)形式
  • 設(shè)備變成了desd或者error狀態(tài)
  • 所有存儲路徑變成了dead
  • 設(shè)備上所有的datastore不可用
  • vm無法使用

4.2.5 APD修復(fù)

  1. 當(dāng)主機到存儲連接出現(xiàn)APD時,想要在存儲陣列或者區(qū)域網(wǎng)絡(luò)里修復(fù),需要:所有的ESXi重啟
  2. 在APD情況下無法執(zhí)行vmotion操作
  3. 針對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ù)無法啟動

  1. 在操作系統(tǒng)層面查看服務(wù)是否真的沒有啟動
  2. 檢查數(shù)據(jù)庫,是否正常

??可能存在的問題:

  1. ODBC數(shù)據(jù)源配置故障(windows vcenter)
  2. 檢查902、80、443端口是否被占用

5.3 vcenter: 服務(wù)啟動緩慢

  1. 數(shù)據(jù)庫異??赡軐?dǎo)致服務(wù)無法啟動
  2. 檢查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ù)資源開銷等記錄
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容