筆者所述項目比較簡單:2臺聯(lián)想3650 M5的 主 機(每主機配置1個CPU、128GB 內(nèi)存、單口8GB FC HBA接 口 卡)、1臺IBM V3500存儲,每臺主機安裝了VMware ESXi 6.0.0 U2的版本,有6個業(yè)務(wù)虛擬機、1個vCenter Server虛擬機用于管理。拓撲結(jié)構(gòu)如圖1所示。
圖1 某單位虛擬化拓撲圖
在項目的初期,安裝配置ESXi主機、劃分IBM V3500存儲、創(chuàng)建虛擬機后,各個業(yè)務(wù)虛擬機對外提供服務(wù),系統(tǒng)一切正常。在全部業(yè)務(wù)虛擬機正常運行兩天后,觀察到主機內(nèi)存使用率超過60%接近70%時,對客戶建議將每臺服務(wù)器的內(nèi)存擴充到256GB,甲方技術(shù)主管在匯報領(lǐng)導(dǎo)后,同意了擴充內(nèi)存的要求。但是,就是這個擴充內(nèi)存,引起了后續(xù)一系列的故障。
說明:使用vSphere Client登錄vCenter Server,在左側(cè)導(dǎo)航器中選中群集,在右側(cè)“主機”選項卡中,可以看每個主機配置的內(nèi)存、已經(jīng)使用內(nèi)存的百分比。圖2是每臺主機配置到256GB之后的截圖,當(dāng)時128GB截圖沒有保存。這是項目正常之后的截圖,從圖中可以看出,系統(tǒng)中所有虛擬機使用內(nèi)存大約170GB,在每臺主機只有128GB的情況下,使用內(nèi)存是66%,在每臺主機擴充到256GB后,使用內(nèi)存33%。
聯(lián)想3650 M5服務(wù)器,支持 2個 CPU,每個 CPU有12個內(nèi)存插槽,每個內(nèi)存插槽最大支持單條64GB內(nèi)存。故每個CPU最大支持64×12=768GB內(nèi)存。
在這個項目中,每臺聯(lián)想3650 M5配置了8條16GB的內(nèi)存,只剩余4個插槽(當(dāng)前主機只配置了一個CPU),如果要擴充到256GB內(nèi)存,可以再購買4條32GB或2條64GB內(nèi)存,進行“混插”。但這樣客戶后期將不能繼續(xù)進行內(nèi)存擴充,這樣不是好的升級方案。筆者給出的方案是,建議為每臺服務(wù)器配置4條64GB的內(nèi)存,拆下來的內(nèi)存折舊或內(nèi)存置換。聯(lián)系了長期為我們提供內(nèi)存的公司,對方答應(yīng)可以4條16GB換成1條64GB的內(nèi)存,這樣對三方都有利。
8條64GB的內(nèi)存到位之后,為每臺服務(wù)器更換內(nèi)存。內(nèi)存更換過程中,可以將所有虛擬機暫時遷移到另一臺主機,這樣業(yè)務(wù)不會中斷。
圖2 主機內(nèi)存、CPU使用率
圖3 聯(lián)想3650 M5內(nèi)存安裝順序
圖4 當(dāng)前安裝了8條16GB內(nèi)存截圖
服務(wù)器安裝內(nèi)存是有“講究”的,必須按照指定的位置進行安裝。每臺服務(wù)器的蓋板上都有內(nèi)存的安裝順序,例如聯(lián)想3650 M5內(nèi)存安裝順序如圖3所示。
單個CPU的內(nèi)存安裝順序是 1,4,9,12,2,5,8,11,3,6,7,10 ;雙 CPU 的安裝順序依次是 1,13,4,16,9,21,12,24,2,14,5,17,8,20,11,23,3,15,6,18,7,19,10,22。 例如當(dāng)前主機安裝了8條16GB內(nèi)存,則需要安裝在 1,4,9,12,2,5,8,11 位置。安裝之后,在開機之前可以在IMM中看到安裝的內(nèi)存信息、內(nèi)存是否正常,如圖4所示。
但是,將4條64GB的內(nèi)存插上之后,服務(wù)器開機無顯示,在IMM中也沒有檢測到內(nèi)存。
后來一條一條內(nèi)存安裝,服務(wù)器也是檢測不到內(nèi)存。沒有辦法,將原來的8條16GB內(nèi)存插回主機。
聯(lián)系內(nèi)存經(jīng)銷商之后,更換了鎂光的單條64GB的內(nèi)存,安裝成功(內(nèi)存往返又是三、五天的時間)。說明,此次不能用的單條64GB內(nèi)存,筆者在DELL R720XD主機上使用是沒有問題的。
但是,關(guān)鍵問題是這個“但是”。在為第一臺主機順利的安裝更換了內(nèi)存之后,為第二臺主機安裝內(nèi)存的時候出了大問題。在插上這4條64GB內(nèi)存之后,主機無法開機,在IMM檢測,提示系統(tǒng)出現(xiàn)嚴重故障(System Critical)(如圖5)。
經(jīng)過聯(lián)系聯(lián)想的售后,工程師說主板壞了,這下我們就“暈”了,這服務(wù)器也太不“結(jié)實”了吧?沒辦法,只能等售后工程師上門更換主板了。
所幸我們離北京較近,售后第二天上門更換新的主板之后,故障依舊。還是工程師有經(jīng)驗,換上原來的16GB內(nèi)存之后,服務(wù)器可以開機,一切正常。但換上這4條內(nèi)存之后還是出現(xiàn)如圖5所示的故障。之后,工程師采用一條一條安裝64GB內(nèi)存,檢測到其中的一條有問題,后來安裝了3條64GB內(nèi)存。
這樣我們就更郁悶了,一條內(nèi)存故障就能讓服務(wù)器開不了機,以后如果內(nèi)存萬一壞了一條是不是也會出同樣的故障呢?這些問題我們就先不考慮了。之后又等了幾天,廠商發(fā)來了新內(nèi)存,插上之后4條內(nèi)存全部認到。
本以為項目進行到這就完成了(當(dāng)時是9月30號),但是(該死的“但是”又來了)上班之后問題又來了……
10月5號該單位第一天上班,客戶反映虛擬機ERP系統(tǒng)慢。
更換內(nèi)存時筆者不在現(xiàn)場,是公司其他工程師實施的。筆者遠程登錄,在檢查的過程中,發(fā)現(xiàn)其中一臺ESXi12主機(IP地址172.16.6.12)的存儲連接斷開,在“清單”中有一個虛擬機變灰(如圖6),但此時使用遠程桌面是可以登錄這個虛擬機的。
圖5 System故障
圖6 沒有檢測到共享存儲
圖7 第二臺主機存儲變灰
此時在左側(cè)選中172.16.6.12這臺主機(ESXi12),“配置→存儲”中共享存儲已經(jīng)變灰不可訪問(如圖7)。
另一個主機ESXi11(IP地址為172.16.6.11)存儲正常,但fc-data02顯示的可用容量為0。
登錄IBM V3500存儲,在存儲中檢查到一切正常。
在重新掃描存儲沒有反應(yīng)之后,我重新啟動故障主機。正常情況下,主機在5~8分鐘之后會上線,但等了有30分鐘,這臺重新啟動的主機也沒有上線,Ping這臺主機的IP地址也不通。這時候我就有點著急了,這臺沒出現(xiàn)問題的服務(wù)器也出問題了(換主板的是另一臺服務(wù)器)。馬上聯(lián)系公司的人、聯(lián)系客戶,說服務(wù)器出了問題,需要馬上趕過去。
趕到現(xiàn)場之后,發(fā)現(xiàn)我遠程重新啟動、出問題的那臺那臺服務(wù)器已經(jīng)“正?!绷耍杏X虛擬機系統(tǒng)還是有點慢。之后重新啟動這臺主機,終于發(fā)現(xiàn)了問題,就是這臺服務(wù)器啟動特別慢。BIOS自檢到系統(tǒng)啟動這一環(huán)節(jié)還算正常,但從出現(xiàn)ESXi的界面之后到進入系統(tǒng),時間非常的長。
在進入ESXi界面之后,分別在“nfs41client loaded successfully”(如圖8)、“Running sfcbdwatchdog start”(如圖9)各停留大約30多分鐘。
因為另一臺主機更換過主板與內(nèi)存,這臺主機只更換過內(nèi)存,而在換內(nèi)存之前系統(tǒng)正常,初步判斷可能是更換單條64GB內(nèi)存引起的。但網(wǎng)絡(luò)中另一臺服務(wù)器也是安裝了4條64GB的內(nèi)存,這臺主機正常,忘記說了,另一臺正常的主機更換過主板。檢查這兩個主機,發(fā)現(xiàn)正常運行的主機的固件比較新(ESXi11的主機),因為這臺主機換了一塊新主板。之后我為出故障的主機(ESXi12)刷新固件到同版本,系統(tǒng)啟動變快了一點,但仍然沒有解決問題(還是在圖8、圖9停留很長時間)。這時已經(jīng)是晚上8點多了,先暫時不解決了,回去想想換個思路。
第二天一早來到客戶現(xiàn)場,參考聯(lián)想工程師的方法,一條一條地“試”內(nèi)存。在一條一條“試”內(nèi)存的過程中,插上每條內(nèi)存啟動速度都很快,從出現(xiàn)圖8、圖9所示的ESXi的啟動界面,幾分鐘就進入系統(tǒng)出現(xiàn)ESXi的控制臺頁面(出現(xiàn)IP地址等信息),但試過內(nèi)存沒問題之后,將所有內(nèi)存都插上,系統(tǒng)啟動就又變慢了。
圖8 在此停留半小時
圖9 在此停留半小時
之后,換上原來拆下來的單條16GB的內(nèi)存(當(dāng)時內(nèi)存還沒有發(fā)回廠家),ESXi啟動時間變?yōu)榘胄r,但ESXi主機反應(yīng)仍然較慢。
這樣時間就又過去了2個多小時,問題還沒有解決,能想的都想過了,能嘗試的都嘗試過了,那么問題出在那呢?
為什么插上單條64GB內(nèi)存很快,內(nèi)存全部插上就變慢呢?這時我注意到了一個“細節(jié)”,在插單條64GB內(nèi)存的時候,為了加快測試速度,我沒有插網(wǎng)線和存儲光纖(每次關(guān)機拔內(nèi)存都要斷電,要把服務(wù)器從機柜中拉出來,后面的網(wǎng)線、光纖也是拔下的)。然后我思考,網(wǎng)絡(luò)問題不會引起ESXi啟動慢,那么問題就可能出在服務(wù)器與存儲的連接光纖上!因為每臺服務(wù)器只配了一塊單口的FC-HBA接口卡,服務(wù)器與存儲只有一條光纖連接,沒有冗余。將出問題的這臺服務(wù)器更換光纖之后,重新啟動服務(wù)器,啟動速度正常(大約不到5分鐘就進入了ESXi的控制臺界面),至此問題解決。
事后分析,因為前幾天反復(fù)更換內(nèi)存、為服務(wù)器更換主板,反復(fù)為服務(wù)器加電、斷開、從機柜中拉出服務(wù)器,可能碰到了ESXi12這臺服務(wù)器的光纖,導(dǎo)致光纖出故障,但光纖又沒有完全斷,可能處于“時通時斷”的狀況,這樣服務(wù)器在連接到存儲時,會反復(fù)嘗試,或者有錯誤的數(shù)據(jù)包需要糾錯。如果光纖完全斷開,服務(wù)器檢測不到就會跳過連接存儲,反而是這種“時通時斷”的連接,導(dǎo)致服務(wù)器反復(fù)嘗試,增加了服務(wù)器的啟動時間。