沒有無緣無故的愛,也沒有無緣無故恨,設(shè)備故障的產(chǎn)生也總會(huì)伴隨著一系列的愛恨情愁。事情的經(jīng)過是這樣的。聯(lián)通用戶為了節(jié)流,要將以前不怎么使用的HP小型機(jī)(rx3410)搬遷到一個(gè)相對重要的位置,做為新系統(tǒng)的數(shù)據(jù)庫服務(wù)器。因?yàn)檫@個(gè)重要性僅僅是相對的,所以他們沒有征詢相關(guān)技術(shù)人員的意見,一群粗人就開始斷電、搬運(yùn),場面火暴,干勁實(shí)足。
在新的位置,他們將能插的線都插上,將能打開的電源都打開,系統(tǒng)啟動(dòng)畫面如期而至,似乎大功告成了。但是粗人也有細(xì)膩的一面,系統(tǒng)是啟動(dòng)了,但還是要檢查一下應(yīng)用是否啟動(dòng)正常,如:雙機(jī)熱備程序,數(shù)據(jù)庫服務(wù)進(jìn)程是否啟動(dòng)。他們熟練的敲擊著鍵盤,錯(cuò)誤的提示隨著回車鍵有力的敲擊應(yīng)聲閃爍在液晶屏幕上。粗人們終于為他們的魯莽負(fù)出了代價(jià)。
由于沒有嚴(yán)格按照操作規(guī)范進(jìn)行斷電、加電,造成磁盤陣列數(shù)據(jù)丟失,操作系統(tǒng)無法正確識(shí)別磁盤陣列數(shù)據(jù),導(dǎo)致磁盤無法加載(mount),應(yīng)用也就無法正常啟動(dòng)了。但是磁盤各項(xiàng)指數(shù)均正常,沒有異常的紅燈閃爍。造成故障的原因找到了,但解決問題就沒那么簡單了。就像我們都知道腐敗是體制的問題,但是如何治理腐敗就沒那么簡單了。設(shè)備故障沒有腐敗那么復(fù)雜,但我們還是要了解這些設(shè)備運(yùn)行的機(jī)制是什么,才能找到解決問題的辦法。
首先讓我們了解HP-UX是如何管理硬盤存儲(chǔ)資源的。它主要是采用邏輯卷方式來進(jìn)行管理。要說清整個(gè)機(jī)制,先要介紹幾個(gè)概念:
物理卷Physical Volume,稱為PV:指物理上硬盤,一個(gè)硬盤就是一個(gè)PV。 邏輯卷組 Logical Volume Group,稱為VG:一個(gè)VG包含整數(shù)個(gè)PV,可理解為一個(gè)大硬盤。 邏輯卷 Logical Volume,稱為LV:相當(dāng)于對大硬盤進(jìn)行邏輯分區(qū), 一個(gè)VG里可有若干個(gè)LV。 文件系統(tǒng) File System:在邏輯卷的基礎(chǔ)上,可建立文件系統(tǒng),然后 MOUNT到一個(gè)目錄下,這樣就可以文件存取的方式來使用這塊硬盤了。
當(dāng)然,您也可以不建文件系統(tǒng),而直接把LV當(dāng)作裸設(shè)備(raw device),以TRUNK方式來存取數(shù)據(jù),許多數(shù)據(jù)庫都是用這種方式存取數(shù)據(jù)的。
通過以上概念的解釋,我們可以得到一張以上概念的關(guān)系圖,關(guān)系是很重要的。正所謂:關(guān)鍵不是你懂得什么,而是你認(rèn)識(shí)什么人。我再補(bǔ)充一句,把認(rèn)識(shí)的人織成一張網(wǎng),你就是處理關(guān)系的高手了。
有了這個(gè)關(guān)系圖,這種你中有我,我中有你的關(guān)系也就清晰的呈現(xiàn)在我們面前,即物理卷(PV)即表示一個(gè)磁盤,多個(gè)磁盤可以組成一個(gè)卷組(VG),這個(gè)卷組(VG)又可以被劃分為多個(gè)邏輯卷(LV)。了解了這種關(guān)系,我們解決問題的思路也就確定了,首先從底層開始檢查,首先確定磁盤是正常的,因?yàn)榇疟P狀態(tài)燈均是和諧的綠色,而且通過磁盤管理軟件連接也顯示磁盤工作正常。
確定最底層的硬件沒有問題后,我們懸著的心開始逐漸下浮,因?yàn)榇疟P沒壞,磁盤中保存的數(shù)據(jù)還有救。但這也只是理論上存在挽救的可能,所以那顆脆弱的心還不能沉底,就讓它懸在半空吧。接著通過lvdisplay –v 這個(gè)命令檢查LV的狀態(tài),顯示結(jié)果提示VG無法激活。為了確認(rèn)以上命令是否正確,可以通過vgdisplay –v看檢查VG的狀態(tài),結(jié)果顯示disable,即無法激活。
通過以上關(guān)系圖可知,只要保證VG下的所有磁盤正常,VG即可正常啟動(dòng)。但是我們已經(jīng)檢查了磁盤的狀態(tài),一切正常。為什么呢?VG被那幫粗人折騰的心情不好,罷工了嗎?當(dāng)然不是。首先我們檢查一下VG與磁盤的映射關(guān)系,通過命令strings /etc/lvmtab即可看到VG與磁盤硬件地址的關(guān)系。然后再通過命令ioscan -fnC disk檢查,奇怪的事情發(fā)生了,VG下的磁盤硬件地址里有/dev/dsk/c0t3d0和/dev/dsk/c0t4d0,但是通過ioscan命令檢查的結(jié)果卻沒有這兩個(gè)硬件地址,反而多出來另外兩個(gè)硬件地址/dev/dsk/c4t0d4和 /dev/rdsk/c4t0d4。兩種檢查的結(jié)果出現(xiàn)了不一致,磁盤數(shù)量雖然一樣,但是硬件地址發(fā)生了改變。世界上就是因?yàn)槌霈F(xiàn)了太多的無法解釋的現(xiàn)象,所以就產(chǎn)生了宗教忽悠那些迷茫的人們。但從小接受的唯物主義教育給了我人定勝天的信念,突破迷霧,繼續(xù)前行。
精神的力量是偉大的,回想了從小學(xué)到大學(xué)所學(xué)的思想政治課后,我就像大力水手吃了菠菜一樣,渾身充滿了力量,繼續(xù)揭密。通過管理工具(sam),我發(fā)現(xiàn)硬件地址/dev/dsk/c0t3d0和/dev/dsk/c0t4d0居然變成了光卡的硬件地址。而/dev/dsk/c4t0d4和 /dev/rdsk/c4t0d4是新產(chǎn)生的磁盤硬件地址。迷霧逐漸消散,真相即將大白。客氣(在用戶面前要裝孫子)得詢問了那幫搬家的粗人才知道,磁盤柜太重了,搬不動(dòng),于是他們把磁盤拆下來搬,但是拆的過程中沒有對磁盤進(jìn)行編號(hào),插入磁盤柜后,順序發(fā)生變化了。磁盤陣列重啟后,當(dāng)然要重新分配硬件地址了。但為什么在磁盤加載失敗的情況下,操作系統(tǒng)還可以正常啟動(dòng)呢?這還要感謝那幫粗人沒有把服務(wù)器本地的磁盤拆下來搬運(yùn),僅僅把磁盤柜中的磁盤拆了下來了,操作系統(tǒng)安裝在本地磁盤,所以操作系統(tǒng)可以正常啟動(dòng),但是磁盤柜中的磁盤卻加載失敗。真是不幸中的萬幸啊!否則卷組恢復(fù)將不再如此簡單,欲知詳情,且聽下次分解。
真相找到了,解決問題的關(guān)鍵所在也就清楚了。重新分配VG與磁盤的關(guān)系即可。藥方有了,開始治病吧。其實(shí)治病的藥方不是關(guān)鍵,關(guān)鍵是疹療的過程。老中醫(yī)要望聞問切,而現(xiàn)在的醫(yī)生大筆一揮,藥方就出來了,全是抗生素,一個(gè)病人幾分鐘搞定,悲哀呀!
1、 因?yàn)樵揤G應(yīng)用到了雙機(jī)熱備(Serviceguard)系統(tǒng),因?yàn)槭紫纫ゼ?dòng)該VG。
#vgchange –a n vgsybase
#vgchange –c n vgsybase
2、 備份VG映射關(guān)系/etc/lvmtab(備份很重要,以前玩游戲,打老怪前一定要備份一下,死了還可以取檔重來)
#cp /etc/lvmtab /etc/lvmtab.bak
#vgexport –v –p –s –m /tmp/vgsybase.map /dev/vgsybase //將VG映射復(fù)制到指定文件
3、 刪除原來的VG信息
# vgreduce -f vgsybase
4、 重建/etc/lvmtab
#vgscan –v
5、 激活VG
#vgchange –a y vgsybase
6、 檢查VG狀態(tài)
#vgdisplay –v vgsybase
通過結(jié)果顯示VG一切正常,去激活VG后,在另外一臺(tái)機(jī)器上進(jìn)行同樣的操作,VG也啟動(dòng)正常。此時(shí)再啟動(dòng)雙機(jī)程序和相關(guān)的應(yīng)用,一切都恢復(fù)了,數(shù)據(jù)也沒有丟。藥到病除,那顆懸著的心終于可以落地了。