如何使用Direct Console User Interface解決棘手問(wèn)題
對(duì)于管理員來(lái)說(shuō),很少會(huì)遇到不能使用vCenter Server管理主機(jī)的情況,但是即便真的出現(xiàn)這種問(wèn)題,也能夠使用其他方式進(jìn)行解決。
最近我遇到了一種vSphere管理員在設(shè)計(jì)良好的網(wǎng)絡(luò)環(huán)境當(dāng)中通常不會(huì)遇到的問(wèn)題:vCenter Server無(wú)法管理ESXi主機(jī)。
如果不想使用vCenter Server或者vSphere client管理ESXi主機(jī),那么需要提前完成一些準(zhǔn)備工作。在這種情況下,像Dell DRAC和HP ILO這些遠(yuǎn)程控制工具能夠發(fā)揮重要作用。使用DCUI(Direct Console User Interface)——簡(jiǎn)單來(lái)說(shuō)就是ESXi console——來(lái)管理網(wǎng)絡(luò)可能會(huì)有些復(fù)雜,但確是一種最為直接的方式。下面介紹一些我所了解的主機(jī)管理方式,不需要使用vSphere client——甚至是SSH。
在一個(gè)設(shè)計(jì)良好的網(wǎng)絡(luò)環(huán)境當(dāng)中,虛擬機(jī)(VM)網(wǎng)絡(luò)應(yīng)該和主機(jī)管理網(wǎng)絡(luò)相互分離,并且需要正確配置多塊物理網(wǎng)卡連接到不同交換機(jī)。虛擬機(jī)和管理網(wǎng)絡(luò)之間的流量不能相互影響。在將要分析的案例當(dāng)中,虛擬機(jī)仍然能夠正常運(yùn)行。如果能夠通過(guò)遠(yuǎn)程桌面或者SSH協(xié)議登陸到虛擬機(jī),那么管理員應(yīng)該嘗試將其安全關(guān)閉。
檢查網(wǎng)絡(luò)基礎(chǔ)架構(gòu)之后,發(fā)現(xiàn)這個(gè)問(wèn)題和硬件或者交換機(jī)沒有關(guān)系,進(jìn)一步排查顯示軟件驅(qū)動(dòng)也不是引發(fā)問(wèn)題的根本原因。
將虛擬機(jī)遷移到另外一臺(tái)主機(jī)
為了盡量減少對(duì)于業(yè)務(wù)的影響,應(yīng)該首先將受影響的虛擬機(jī)轉(zhuǎn)移到另外一臺(tái)正常工作的主機(jī)當(dāng)中并且重新啟動(dòng),這樣能夠保證在修復(fù)故障主機(jī)的同時(shí)依然能夠管理業(yè)務(wù)虛擬機(jī)。但是需要注意的是這臺(tái)主機(jī)服務(wù)器可能位于幾千公里之外,因此我們必須使用帶外管理系統(tǒng)。
DCUI或者任何遠(yuǎn)程管理功能都不適合作為日常管理方式,但是卻能夠用來(lái)處理緊急情況。管理員可以通過(guò)這種方式關(guān)閉不能執(zhí)行命令的虛擬機(jī)。在vSphere 6.0之前的版本當(dāng)中,同時(shí)按下Ctrl+F1,輸入root賬戶密碼 ,就可以使用其列出幾種console功能了。但是正如之前所說(shuō)的那樣,應(yīng)該使用其他方式來(lái)安全關(guān)閉虛擬機(jī)。這篇文章討論的僅僅是***的應(yīng)急方案,比如,虛擬機(jī)網(wǎng)絡(luò)和管理網(wǎng)絡(luò)之間出現(xiàn)嚴(yán)重故障。
在vSphere 6當(dāng)中,如果管理員使用DCUI關(guān)閉當(dāng)前主機(jī),那么系統(tǒng)會(huì)提示管理員強(qiáng)制關(guān)閉所有未遷移虛擬機(jī)的電源。這是一項(xiàng)非常有用的功能,但是管理員在使用這種功能的時(shí)候需要特別小心,因?yàn)殄e(cuò)誤使用可能會(huì)導(dǎo)致大量虛擬機(jī)無(wú)法訪問(wèn)。
對(duì)于vSphere 5當(dāng)中的虛擬機(jī)來(lái)說(shuō),可以使用下面的命令進(jìn)行定位和關(guān)閉:
可以使用下面的命令列出所有虛擬機(jī)。(注意需要關(guān)閉的虛擬機(jī)的進(jìn)程ID)
esxcli vm process list
使用如下命令關(guān)閉虛擬機(jī):
esxcli vm process kill
在關(guān)閉所有虛擬機(jī)之后,可以使用下面的命令將虛擬機(jī)置于維護(hù)模式:
esxcli system maintenanceMode set --enable true
盡管這個(gè)過(guò)程不是必須的,但是確保所有虛擬機(jī)已經(jīng)被正常關(guān)閉,能夠隨時(shí)切斷主機(jī)電源是一種很好的操作流程。
結(jié)束主機(jī)維護(hù)模式
到這個(gè)階段為止,虛擬機(jī)應(yīng)該已經(jīng)完全獨(dú)立于之前的主機(jī),可以在另外一臺(tái)主機(jī)上接通電源之后手動(dòng)重啟。在這個(gè)案例當(dāng)中,由于某種原因我必須在之前的主機(jī)上重新啟動(dòng)這些虛擬機(jī)。這的確不是一種***的解決方案,但是完全能夠?qū)崿F(xiàn)。和之前的操作類似,從結(jié)束服務(wù)器的維護(hù)模式開始,使用下面的命令:
esxcli system maintenanceMode set --enable false
之后,手動(dòng)開啟虛擬機(jī)電源。所有的虛擬機(jī)文件都將位于自己的文件夾、也就是主機(jī)的\mvfs\volumes當(dāng)中。使用cd命令進(jìn)入目標(biāo)文件夾,還可以使用tab實(shí)現(xiàn)名稱自動(dòng)補(bǔ)全,這種特性可以起到很大幫助作用。每個(gè)文件夾都代表了一個(gè)data store,所以可以在對(duì)應(yīng)的文件夾當(dāng)中尋找虛擬機(jī)。
唯一的問(wèn)題在于某些虛擬機(jī)會(huì)因?yàn)橐粋€(gè)某些罕見錯(cuò)誤而無(wú)法啟動(dòng)或者最終超時(shí)。對(duì)于這種情況來(lái)說(shuō),需要檢查問(wèn)題虛擬機(jī)當(dāng)中的vmware.log(位于虛擬機(jī)文件夾當(dāng)中)文件以查明具體錯(cuò)誤信息,
這邊文章不可能列舉出管理員可能遇到的所有錯(cuò)誤和復(fù)雜問(wèn)題,但是為管理員提供了一種良好的排錯(cuò)思路。
這種問(wèn)題通常不會(huì)經(jīng)常發(fā)生。如果虛擬機(jī)被劃分到單獨(dú)的網(wǎng)絡(luò)端口組和鏈路當(dāng)中,并且能夠響應(yīng)遠(yuǎn)程客戶端請(qǐng)求,那么就更像是管理問(wèn)題,可以在非工作時(shí)間使用一種更為安全的方式進(jìn)行修復(fù),降低可能造成的影響。幸運(yùn)的情況下,還有可能是網(wǎng)路連接問(wèn)題,可以在不導(dǎo)致任何故障時(shí)間的情況下將問(wèn)題解決。