生產(chǎn)環(huán)境實(shí)施 VMware 虛擬化基礎(chǔ)架構(gòu),千萬(wàn)不要犯4個(gè)錯(cuò)誤
對(duì)于VMware虛擬化技術(shù),大家可能或多或少都接觸過(guò),***印象都是上手簡(jiǎn)單。但是真正在生產(chǎn)環(huán)境實(shí)施VMware虛擬化基礎(chǔ)架構(gòu)的時(shí)候,前人通過(guò)寶貴的經(jīng)驗(yàn)和血淚的教訓(xùn)告誡我們,千萬(wàn)不要犯以下4個(gè)錯(cuò)誤:
1想當(dāng)然,不按流程走
案例:操作失誤導(dǎo)致的寫(xiě)入失敗
問(wèn)題描述:
有一個(gè)DataStore始終寫(xiě)入失敗,報(bào)錯(cuò)很簡(jiǎn)單,就是寫(xiě)入失敗。
解決過(guò)程:
***反應(yīng),先確定是宿主機(jī)問(wèn)題還是存儲(chǔ)問(wèn)題。測(cè)試其他DataStore,完全正常。那就把問(wèn)題縮小到這個(gè)DataStore上來(lái)??赡苁菕燧d或者格式化的時(shí)候出現(xiàn)了問(wèn)題,重新來(lái)唄,結(jié)果還是一樣。
第二反應(yīng),重新掛,從存儲(chǔ)上把Lun抽回去然后再分配給主機(jī)。還是一個(gè)熊樣。
第三反應(yīng),查看Vmware底層日志,看似有鎖信息。
第四反應(yīng),誰(shuí)加的鎖呢?為什么不釋放呢?
第五反應(yīng),仔細(xì)詢(xún)問(wèn)實(shí)施工程師,原來(lái)這個(gè)DataStore并沒(méi)有從Vmwware層面進(jìn)行卸載就通知存儲(chǔ)工程師將其重新分配了。他說(shuō)這么干過(guò)很多次了,重來(lái)沒(méi)沒(méi)有出過(guò)問(wèn)題。
第六反應(yīng),不用想了,Vmare對(duì)這個(gè)Datastore加了scsi鎖,這個(gè)鎖加在了Lun的盤(pán)頭。在非正常釋放Datastore的場(chǎng)合下,及時(shí)存儲(chǔ)回收了,當(dāng)它再次給到Vmware的時(shí)候,盤(pán)頭信息并沒(méi)有消除。鎖依然存在,所以無(wú)法寫(xiě)入。
第七反應(yīng),存儲(chǔ)上講該存儲(chǔ)回收再次分配。問(wèn)題消除。
問(wèn)題總結(jié):
試想,如果當(dāng)時(shí)工程師按照正常的流程,把磁盤(pán)從Vmware層面進(jìn)行卸載,然后存儲(chǔ)再回收,那就不會(huì)有這個(gè)問(wèn)題了。
999的成功不等于1000一定成功,因?yàn)槲覀兠鎸?duì)的外在環(huán)境不一定相同或者相似,所以一切操作請(qǐng)按照正確的流程去做。
2只關(guān)注自己的一畝三分地
案例:防火墻導(dǎo)致的宿主機(jī)失聯(lián)
環(huán)境介紹:
多套vmware虛擬化集群組成一個(gè)VDC,分別位于不同的安全隔離區(qū)內(nèi),VC處于一個(gè)獨(dú)立的安全隔離區(qū)內(nèi),每套虛擬化集群當(dāng)中有若干宿主機(jī)。也就是說(shuō)宿主機(jī)和VC分別屬于不同的安全隔離區(qū),分屬不同的網(wǎng)段。
問(wèn)題描述:
虛擬化基礎(chǔ)架構(gòu)部署全部完畢,運(yùn)行一致良好。突然間有一天發(fā)現(xiàn)其中一個(gè)安全隔離區(qū)內(nèi)的宿主機(jī)有一個(gè)掉線了。還沒(méi)等我來(lái)的及區(qū)調(diào)查原因,這個(gè)宿主機(jī)又恢復(fù)正常了。
解決過(guò)程:
***反應(yīng),別的先別說(shuō),不可再現(xiàn)的問(wèn)題,先看日志吧。結(jié)果發(fā)現(xiàn)其中一個(gè)宿主機(jī)掉線非常頻繁,其他幾個(gè)宿主機(jī)偶爾都會(huì)發(fā)生掉線現(xiàn)象。而且現(xiàn)象只發(fā)生在其中一個(gè)安全隔離區(qū)內(nèi),其他隔離區(qū)內(nèi)沒(méi)有此現(xiàn)象。
第二反應(yīng),問(wèn)問(wèn)應(yīng)用那邊,看看有沒(méi)有察覺(jué)到異常。結(jié)果沒(méi)有。
第三反應(yīng),那不用多想了,這個(gè)離線一定是宿主機(jī)跟VC之間的通訊斷掉了,沒(méi)有影響到正常的業(yè)務(wù)系統(tǒng)。
第四反應(yīng),看看日志,***感覺(jué)沒(méi)啥有價(jià)值的線索。為啥其他集群沒(méi)事兒呢,想想這個(gè)區(qū)和其他區(qū)的區(qū)別在哪里?同一個(gè)VC,只不過(guò)分屬不同的安全隔離區(qū)而已,只不過(guò)這個(gè)區(qū)屬于互聯(lián)網(wǎng)區(qū),網(wǎng)絡(luò)層多了幾層隔離而已。
第五反應(yīng),一方面,收集日志發(fā)給廠商。另外一方面,交叉測(cè)試,于是乎,交叉換網(wǎng)卡,還是一個(gè)德行。
交換換交換機(jī),好像好一點(diǎn),但是還會(huì)出現(xiàn)類(lèi)似問(wèn)題。
第六反應(yīng),那剩下的區(qū)別就在防火墻上了,防火墻這個(gè)區(qū)用的是莫某家的,跟其他不一樣。不至于吧,雖然國(guó)產(chǎn),但是也經(jīng)得起推敲啊。于是把網(wǎng)絡(luò)的運(yùn)維工程師以及廠商叫過(guò)來(lái)抓包,抓了好幾天,問(wèn)題沒(méi)有重現(xiàn)。等吧,Vmware那邊終于給回復(fù)了,說(shuō)是VC和宿主機(jī)的通訊被周期性阻斷了。
第七反應(yīng),多半是防火墻上的設(shè)置,找吧。對(duì)比兩家廠商的防火墻設(shè)置,終于發(fā)現(xiàn)了一個(gè)配置“Keep Alive”,問(wèn)網(wǎng)絡(luò)廠商是不是可以像別人家的防火墻把這個(gè)開(kāi)關(guān)關(guān)掉。回答說(shuō)不能。靠,為什么?回答說(shuō),產(chǎn)品默認(rèn)設(shè)置。問(wèn)曰,你們有沒(méi)有在別家跟虛擬化產(chǎn)品配合過(guò)?回答曰,配合過(guò),沒(méi)這個(gè)問(wèn)題啊。啥也別說(shuō)了,升級(jí)給網(wǎng)絡(luò)后線吧。過(guò)了幾天,回復(fù)了,“Keep Alive”在防火墻上可以吧UDP的關(guān)掉,TCP的不能關(guān)掉。OK,要的就是這句話,把UDP關(guān)掉之后,觀察了N天,一切OK。
問(wèn)題總結(jié):
對(duì)于這個(gè)案例來(lái)講,更多的關(guān)注點(diǎn)是在虛擬化架構(gòu)與其他廠商設(shè)備配合過(guò)程中的問(wèn)題。一個(gè)很不經(jīng)意的配置可能會(huì)引起很?chē)?yán)重的問(wèn)題。
大家多多交流,上下游交流,同游交流,不僅僅知道自己的一畝三分地,也同時(shí)知道他人的一畝三分地,對(duì)于實(shí)施來(lái)講就會(huì)帶來(lái)更大的專(zhuān)家價(jià)值。
3實(shí)施后不重視檢驗(yàn)過(guò)程
案例:網(wǎng)卡綁定失誤導(dǎo)致的業(yè)務(wù)中斷案例
環(huán)境介紹:
宿主機(jī)四臺(tái),每臺(tái)配置兩塊雙口萬(wàn)兆網(wǎng)卡;接入交換機(jī)兩臺(tái)。
網(wǎng)絡(luò)分管理網(wǎng)段和業(yè)務(wù)網(wǎng)段,每一個(gè)網(wǎng)卡上的雙口分別上聯(lián)兩個(gè)不同交換機(jī),交換機(jī)對(duì)端口設(shè)置Trunk模式,允許任何網(wǎng)段通過(guò),不需要做綁定。網(wǎng)卡側(cè)需要按照交叉方式綁定四個(gè)端口為兩組,分別走業(yè)務(wù)和管理,交換機(jī)不需要綁定。
問(wèn)題描述:
所有虛擬化環(huán)境部署完畢,在結(jié)合業(yè)務(wù)做切換測(cè)試的過(guò)程中,開(kāi)發(fā)人員報(bào)告部分業(yè)務(wù)系統(tǒng)不可訪問(wèn)。
解決過(guò)程:
***反應(yīng),先做客戶端到應(yīng)用系統(tǒng)的Ping測(cè)試。DNS解析沒(méi)有問(wèn)題,但是網(wǎng)絡(luò)不可達(dá)。
第二反應(yīng),網(wǎng)絡(luò)可能有問(wèn)題,檢查客戶端到目標(biāo)網(wǎng)段的網(wǎng)關(guān)可達(dá)性。網(wǎng)關(guān)全部可達(dá)。
第三反應(yīng),問(wèn)題出在接入交換機(jī)和宿主機(jī)鏈接上,難道發(fā)生了雙點(diǎn)故障?于是詢(xún)問(wèn)運(yùn)維人員設(shè)備監(jiān)控情況如何?運(yùn)維人員說(shuō)一切正常,沒(méi)有發(fā)現(xiàn)異常。
第四反應(yīng),什么情況?監(jiān)控一點(diǎn)直覺(jué)沒(méi)有么?再問(wèn)。
問(wèn):某某機(jī)柜某某交換機(jī)有沒(méi)有問(wèn)題?某某機(jī)柜某某服務(wù)器有沒(méi)有報(bào)警?
答:回答說(shuō),沒(méi)有報(bào)警,不過(guò)....不過(guò)什么?有一個(gè)交換機(jī)在升級(jí)firmware,屬于正常停機(jī),不在異常范圍之內(nèi)。
問(wèn):就一個(gè)?
答:對(duì),就一個(gè)。
第五反應(yīng),不對(duì)啊,任何單點(diǎn)都不可能影響到架構(gòu)的高可用啊。VC登錄上去查具體的機(jī)器狀態(tài),結(jié)果所有機(jī)器處于運(yùn)行狀態(tài)。再次確認(rèn)問(wèn)題出在接入交換機(jī)和宿主機(jī)之間的鏈接上。于是讓運(yùn)維人員進(jìn)入機(jī)房再查網(wǎng)卡以及交換機(jī)狀態(tài)。報(bào)告說(shuō)有一臺(tái)機(jī)器的其中一個(gè)網(wǎng)卡的兩個(gè)口全部沒(méi)有上聯(lián)信號(hào)。
第六反應(yīng),網(wǎng)卡幫錯(cuò)了。再查,網(wǎng)卡綁定順序與其他同類(lèi)型的機(jī)器順序一樣啊。查MAC對(duì)應(yīng)關(guān)系,結(jié)果發(fā)現(xiàn)這臺(tái)機(jī)器的Vmware顯示的網(wǎng)卡順序確實(shí)與其他機(jī)器識(shí)別達(dá)到的網(wǎng)卡設(shè)備名順序不一樣。當(dāng)初實(shí)施工程師僅僅靠著一個(gè)樣本機(jī)的網(wǎng)卡設(shè)備文件名與物理網(wǎng)口的對(duì)應(yīng)關(guān)系就按照一個(gè)標(biāo)準(zhǔn)實(shí)施了。
問(wèn)題總結(jié):
對(duì)于這個(gè)案例來(lái)講,其實(shí)高可用的設(shè)計(jì)也好,網(wǎng)卡綁定技術(shù)也好都不是問(wèn)題。問(wèn)題的關(guān)鍵是工程師想當(dāng)然認(rèn)為一種型號(hào)的機(jī)器對(duì)于IO設(shè)備文件名的識(shí)別順序是完全一致的。其實(shí)不然,不同場(chǎng)合下可能設(shè)備文件名的順序會(huì)產(chǎn)生不一致。幸虧這個(gè)問(wèn)題是在測(cè)試階段發(fā)生。
***個(gè)案例已經(jīng)說(shuō)過(guò)不要想當(dāng)然,此處更要強(qiáng)調(diào)實(shí)施后的檢驗(yàn)過(guò)程非常重要,可以救你一條命。
4不能未雨綢繆、防微杜漸
案例:VMware虛擬機(jī)響應(yīng)異常故障排查案例
問(wèn)題描述:
某日,根據(jù)運(yùn)維同事反映,在VMware虛擬化平臺(tái)上的某系統(tǒng)出現(xiàn)嚴(yán)重的延遲現(xiàn)象,在通過(guò)操作系統(tǒng)登陸后,進(jìn)行操作的響應(yīng)時(shí)間特別長(zhǎng),且較之前有明顯的卡頓現(xiàn)象。針對(duì)此問(wèn)題,針對(duì)該虛擬機(jī)的運(yùn)行情況進(jìn)行了分析。
解決過(guò)程:
首先,想到的是排查該虛擬機(jī)所在的Esxi主機(jī)的性能,發(fā)現(xiàn)該主機(jī)CPU利用率在20%左右,內(nèi)存利用率在40%左右,IO讀寫(xiě)延遲不超過(guò)1ms,且該Esxi主機(jī)上面的其他虛擬機(jī)都運(yùn)行正常,所以基本排除了該物理主機(jī)的問(wèn)題。
接著,便在Vcenter中重點(diǎn)對(duì)該虛擬機(jī)的配置及日志進(jìn)行檢查,通過(guò)登陸Vcenter管理控制臺(tái)查看該虛擬機(jī)的配置,發(fā)現(xiàn)該虛擬機(jī)的磁盤(pán)文件下面存在大量的-delta.vmdk文件,不同于其他普通的.vmdk文件。初步將該問(wèn)題定位于此,并將該問(wèn)題發(fā)送給VMware工程師,經(jīng)過(guò)分析,確認(rèn)是過(guò)多的delta文件直接導(dǎo)致了系統(tǒng)響應(yīng)異常。
那么為什么會(huì)產(chǎn)生這么多delta文件?一般而言,虛擬機(jī)快照會(huì)產(chǎn)生delta文件,VDP備份軟件也會(huì)在備份之前進(jìn)行虛擬機(jī)快照從而產(chǎn)生delta文件。而當(dāng)客戶操作系統(tǒng)內(nèi)執(zhí)行一個(gè)磁盤(pán)操作時(shí),磁盤(pán)I / O重新解析磁盤(pán)文件鏈中的每個(gè)delta文件。這將產(chǎn)生額外的主機(jī)磁盤(pán)開(kāi)銷(xiāo),從而導(dǎo)致性能問(wèn)題。而該虛擬機(jī)的應(yīng)用系統(tǒng)因平時(shí)變更頻繁,所以運(yùn)維同時(shí)在變更前都要執(zhí)行快照,且長(zhǎng)時(shí)間沒(méi)有將快照刪除。
問(wèn)題總結(jié):
經(jīng)過(guò)該問(wèn)題的出現(xiàn),日后在VMware化平臺(tái)的維護(hù)中特別注意將重復(fù)快照的刪除,否則時(shí)間久了,且存在大量的快照會(huì)影響虛擬機(jī)的性能。同時(shí),要定期通過(guò)SSH登陸到ESXi服務(wù)器,查找是否有delta文件產(chǎn)生。如果文件數(shù)量過(guò)多的話可能導(dǎo)致更為嚴(yán)重的無(wú)法連接的錯(cuò)誤,需要及時(shí)解決。
本例中分享者做到了一旦發(fā)現(xiàn)問(wèn)題,就要考慮將來(lái)要未雨綢繆、防微杜漸,及時(shí)和定期操作。
本文結(jié)合生產(chǎn)環(huán)境實(shí)施 VMware 虛擬化基礎(chǔ)架構(gòu)實(shí)例分析,但其實(shí)以上錯(cuò)誤,在任何項(xiàng)目實(shí)施中都不應(yīng)該犯。