如何解決虛擬機(jī)vSphere存儲(chǔ)訪問(wèn)故障?
在生產(chǎn)環(huán)境中VM訪問(wèn)共享存儲(chǔ)時(shí)常會(huì)發(fā)生故障,本文結(jié)合案例,簡(jiǎn)要介紹如何解決vSphere存儲(chǔ)訪問(wèn)故障。
本文引用地址:http://www.ex-cimer.com/article/153767.htm在虛擬環(huán)境中,數(shù)據(jù)不再分散存放在服務(wù)器的本地硬盤而是集中存放在共享數(shù)據(jù)存儲(chǔ)中。由于在共享存儲(chǔ)中存放了眾多虛擬機(jī)的業(yè)務(wù)數(shù)據(jù),因此一旦數(shù)據(jù)存儲(chǔ)訪問(wèn)發(fā)生故障,其帶來(lái)的破壞性影響要比傳統(tǒng)的物理環(huán)境大得多。
為了滿足虛擬機(jī)訪問(wèn)共享存儲(chǔ)時(shí)對(duì)性能的需求,企業(yè)環(huán)境中大多采用FC SAN存儲(chǔ)。本文結(jié)合在生產(chǎn)環(huán)境中虛擬機(jī)訪問(wèn)共享存儲(chǔ)發(fā)生故障的案例,簡(jiǎn)要介紹一下如何快速定位并消除故障。
vSphere問(wèn)題初現(xiàn)
接到用戶反應(yīng)眾多虛擬機(jī)無(wú)法使用的故障報(bào)告后,使用vSphere Client登錄到vCenter Server中,在ESXi主機(jī)配置選項(xiàng)卡下的存儲(chǔ)適配器選項(xiàng),發(fā)現(xiàn)有一個(gè)數(shù)據(jù)存儲(chǔ)處于“非活動(dòng)”狀態(tài),嘗試執(zhí)行“全部重新掃描”鏈接,在彈出的重新掃描窗口,勾選默認(rèn)的“掃描新的存儲(chǔ)設(shè)備”以及“掃描新的VMFS卷”,然后點(diǎn)擊確認(rèn)。掃描完成后,發(fā)現(xiàn)原來(lái)狀態(tài)為“非活動(dòng)”的數(shù)據(jù)存儲(chǔ)仍舊不可訪問(wèn)。
圖1. 重新掃描存儲(chǔ)
依次點(diǎn)擊“主頁(yè)”->“清單”->“數(shù)據(jù)存儲(chǔ)和數(shù)據(jù)存儲(chǔ)集群”選項(xiàng),進(jìn)入到數(shù)據(jù)存儲(chǔ)列表,選中狀態(tài)為“非活動(dòng)”的數(shù)據(jù)存儲(chǔ)。如下圖所示,選中“任務(wù)與事件”選項(xiàng)卡,查看與該數(shù)據(jù)存儲(chǔ)相關(guān)的事件。發(fā)現(xiàn)大量的錯(cuò)誤信息:“與存儲(chǔ)設(shè)備…連接丟失,路徑…已斷開”.
圖2. 查看數(shù)據(jù)存儲(chǔ)近期事件
vSphere問(wèn)題分析
從上述故障可以初步判斷,由于ESXi主機(jī)無(wú)法訪問(wèn)數(shù)據(jù)存儲(chǔ)導(dǎo)致存放在該數(shù)據(jù)存儲(chǔ)上的所有虛擬機(jī)都無(wú)法訪問(wèn)。在設(shè)計(jì)SAN網(wǎng)絡(luò)時(shí),為避免單條鏈路發(fā)生故障,SAN網(wǎng)絡(luò)中的存儲(chǔ)、光纖交換機(jī)、主機(jī)HBA卡通常采用交叉連接方式,達(dá)到通過(guò)多條路徑訪問(wèn)同一個(gè)共享存儲(chǔ)的效果。按照通常的思路,我們首先需要判斷是否是由于ESXi主機(jī)訪問(wèn)存儲(chǔ)的某條鏈路發(fā)生故障導(dǎo)致無(wú)法訪問(wèn)共享存儲(chǔ)。vSphere 5.0支持三種存儲(chǔ)路徑選擇策略固定 (VMware)、最近使用 (VMware)、循環(huán) (VMware),其含義如下表所示。
表1. vSphere 5.0 存儲(chǔ)路徑選擇策略
從上表可以看出,無(wú)論選擇哪種存儲(chǔ)策略,只要有一條路徑可用,那么ESXi主機(jī)仍舊可以訪問(wèn)共享存儲(chǔ)。為了實(shí)現(xiàn)更好的負(fù)載均衡,建議用戶修改默認(rèn)的存儲(chǔ)訪問(wèn)策略,使用“循環(huán) (VMware)”策略。如果是由于鏈路發(fā)生故障導(dǎo)致無(wú)法訪問(wèn)共享存儲(chǔ),那么可能的原因就是所有鏈路同時(shí)發(fā)生故障。通過(guò)檢查SAN交換機(jī)鏈路狀態(tài)沒有發(fā)現(xiàn)異常,那么故障點(diǎn)可能發(fā)生在存儲(chǔ)上。
vSphere存儲(chǔ)問(wèn)題定位及故障解決
在vSphere Client中每個(gè)數(shù)據(jù)存儲(chǔ)對(duì)應(yīng)著磁盤陣列上的一個(gè)LUN,登錄到NetApp存儲(chǔ)LUN所在的控制器后,執(zhí)行l(wèi)un show命令查看當(dāng)前控制器上的所有LUN,發(fā)現(xiàn)/vol/vol2/lun0的狀態(tài)為offline.初步判斷是由于lun狀態(tài)不正常導(dǎo)致訪問(wèn)故障的出現(xiàn),嘗試執(zhí)行l(wèi)un online /vol/vol2/lun0命令嘗試將該lun的狀態(tài)修改為online.
完成lun狀態(tài)的修改后,需要在ESXi主機(jī)上重新掃描數(shù)據(jù)存儲(chǔ)。本文介紹在命令行下重新掃描數(shù)據(jù)存儲(chǔ)的操作。
(1) 登錄到ESXi主機(jī)控制臺(tái),按ALT+F1切換到ESXi Shell下。
(2) 執(zhí)行如下命令掃描主機(jī)的所有HBA卡:
esxcli storage core adapter rescan --all.
(3) 如果只想掃描特定的HBA卡,首先需要依次執(zhí)行如下命令:
esxcli storage core adapter list #列出所有的HBA卡
圖3. 查看ESXi主機(jī)HBA卡信息
esxcli storage core adapter rescan --adapter #掃描特定的HBA卡。
(4) 查看當(dāng)前掛載的數(shù)據(jù)存儲(chǔ):df -h
(5) 查找新的VMFS數(shù)據(jù)存儲(chǔ):vmkfstools -V,如果發(fā)現(xiàn)了新的數(shù)據(jù)存儲(chǔ),那么將會(huì)自動(dòng)掛載到/vmfs/volumes/目錄下的子目錄中,目錄名為UUID或者我們預(yù)先指定的標(biāo)簽。
(6) 再次查看當(dāng)前掛載的數(shù)據(jù)存儲(chǔ):df -h
(7) 如果之前狀態(tài)為“不可用”的數(shù)據(jù)存儲(chǔ)仍舊無(wú)法訪問(wèn),那么可能需要重啟ESXi主機(jī),對(duì)存儲(chǔ)進(jìn)行重新識(shí)別。
總之,ESXi主機(jī)訪問(wèn)SAN數(shù)據(jù)存儲(chǔ)發(fā)生故障將會(huì)造成大量虛擬機(jī)的訪問(wèn)中斷。在問(wèn)題發(fā)生時(shí)作為虛擬化管理員要快速對(duì)問(wèn)題進(jìn)行分析,準(zhǔn)確定位問(wèn)題并進(jìn)行排除,將存儲(chǔ)訪問(wèn)中斷造成的破壞性影響降至最低,本文結(jié)合實(shí)際案例為用戶解決類似故障提供處理問(wèn)題的思路及建議。
評(píng)論