客戶反饋一台虛擬機器重啟後虛擬機器狀態顯示為錯誤。
檢查雲平台各個元件服務,未發現異常後,首先嘗試重置虛擬機器狀態,然後硬重啟看下
一段時間後,虛擬機器狀態仍然為error。檢查虛擬機器所在計算節點的nova-compute日誌,發現如下錯誤
日誌顯示,終止虛擬機器的qemu-kvm程序時失敗(failed to terminate process 2216397),有資源占用未釋放(device or resource busy)。
嘗試從kvm層面,用virsh destroy 命令關閉虛擬機器
如上圖,virsh destroy也無法終止此qemu-kvm程序(nova的硬重啟其實呼叫的就是destroy介面)
在宿主機上面,檢視此qemu-kvm程序,發現此程序已經變成殭屍程序(z狀態),用kill --9無法kill掉,用lsof 命令嘗試找出程序占用的資源檔案,發現輸出為空。
諮詢客戶重啟虛擬機器之前對虛擬機器有哪些操作,客戶反饋解除安裝了一塊商業儲存型別的雲硬碟(cinder對接的ibm的v7000,走的iscsi協議,使用過程中坑不斷,不細述),懷疑可能儲存資源未釋放。
cinder檢視解除安裝的雲硬碟的狀態,發現為未掛載的**ailable可用狀態。
通過virsh domblklist 命令,發現虛擬機器仍顯示掛載有云硬碟。
通過virsh dumpxml 命令,檢視虛擬機器的執行狀態
如上圖,從路徑名分析,商業儲存雲硬碟,在虛擬機器裡面掛載為vdb。
在宿主機上面,檢視此路徑如下:
如上圖,虛擬機器的vdb對應於宿主機的/dev/dm-8裝置,通過multipath -ll命令,發現dm-8裝置仍存在,說明虛擬機器占用此資源一直未釋放,導致虛擬機器程序無法關閉。
解決辦法:
通過multipath -f命令釋放此路徑
如上圖,multipath -f釋放此路徑後,再次執行multipath -ll,dm-8裝置已經不存在,重啟虛擬機器也正常了。
後續工作:排查解除安裝雲硬碟的過程中,解除安裝已經完成,雲硬碟狀態已經為未掛載可用狀態時,為何multipath路徑仍然占用未釋放的原因,進而從源頭解決此問題。
虛擬機器導致無法上網 VM虛擬機器不能上網的問題解決
說在前面的話 很多看了我的文章後,虛擬機器還是不能上網,就聯絡 我幫忙,結果幫他們給弄好後,都說怪自己太粗心,沒有仔細看文章。我不是 怕麻煩我,我是真誠的希望各位要首先認真仔細地看完文章,一步一步按 照文章操作,一般自己都可以解決問題 確實不行的,歡迎聯絡我!關於vm 虛擬機器上網的問題,有很多求助...
vmware異常關閉後導致虛擬機器無法開啟問題解決
關機過,vmware原來的軟體程序已經沒有了。lck 檔案是vmware軟體的一種磁碟鎖檔案,由於虛擬磁碟 vmdk 本身有乙個磁碟保護機制,為了防止多台虛擬機器同時訪問同乙個虛擬磁碟 vmdk 帶來的資料丟失和效能削減方面的隱患,每次啟動虛擬機器的時候虛擬機會使用擴充套件名為.lck 磁碟鎖 檔案...
Linux 核心超時導致虛擬機器無法正常啟動
當 linux 虛擬機器啟動時,通過串列埠輸出或者啟動日誌,觀察到超時的報錯.導致虛擬機器無法正常啟動和連線.常見的超時報錯範例如下 複製 not tainted 2.6.32 504.8.1.el6.x86 64 1 echo 0 proc sys kernel hung task timeout...