張?zhí)炝? 劉小斌 于由美 孫兆寬 鄒金津 宮臣
[摘 ? ?要] 遼河油田勘探開發(fā)研究環(huán)境支撐著勘探開發(fā)地震解釋、儲層反演等地質(zhì)綜合研究工作。這些軟件運行在Linux操作系統(tǒng)的服務(wù)器上,采用SAN或NAS架構(gòu)的存儲來保存成果數(shù)據(jù)。本文提供了一種Linux系統(tǒng)下磁盤陣列分區(qū)信息恢復(fù)的方法,通過比對不同的磁盤使用格式,找到分區(qū)表差異。通過多次試驗分析,探尋得出LV卷分區(qū)信息損壞后,恢復(fù)邏輯卷的方法。
[關(guān)鍵詞] SAN存儲;LVM卷管理;數(shù)據(jù)恢復(fù)
doi : 10 . 3969 / j . issn . 1673 - 0194 . 2020. 21. 066
[中圖分類號] TP393 ? [文獻標(biāo)識碼] ?A ? ? ?[文章編號] ?1673 - 0194(2020)21- 0149- 02
0 ? ? ?引 ? ?言
在能源、銀行等部門常常使用Linux/Unix操作系統(tǒng)的服務(wù)器,產(chǎn)生的數(shù)據(jù)往往存儲在磁盤陣列中,采用雙機備份或者異地備份的方式,保證數(shù)據(jù)安全。服務(wù)器與磁盤陣列采用SAN或NAS等常用架構(gòu)模式連接,有時因為異常操作或感染病毒,會影響磁盤,導(dǎo)致磁盤的某個分區(qū)消失,嚴重時會導(dǎo)致操作系統(tǒng)無法啟動甚至損壞。究其原因,就是硬盤分區(qū)表受損。一旦分區(qū)表遭到破壞,就會導(dǎo)致磁盤丟失等硬盤故障,硬盤的分區(qū)表可以說是支撐硬盤正常讀取等操作的基礎(chǔ)。操作系統(tǒng)正是通過它把硬盤劃分為若干個分區(qū),然后再在每個分區(qū)里面創(chuàng)建文件系統(tǒng),最后寫入需要存儲的數(shù)據(jù)文件[1]。
1 ? ? ?LVM邏輯卷管理介紹
隨著數(shù)據(jù)量的增加,磁盤存儲空間的需求會增加很多,每一次需求的增加就意味著需要重新分配一次磁盤,這種方式很麻煩,也很費時間。我們可以用LVM邏輯卷管理來解決這類的磁盤管理問題,LVM(Logic Volume Manager)被稱為邏輯卷管理,它是Linux環(huán)境下對磁盤分區(qū)進行操作并管理的一種機制。由于LVM的邏輯卷的大小更改可以動態(tài)調(diào)整,且不會出現(xiàn)丟失數(shù)據(jù)等情況。
LVM管理的方式很簡單,就是通過將底層的裸設(shè)備抽象并封裝起來,然后以邏輯的方式呈現(xiàn)給上層來應(yīng)用。
1.1 ? LVM邏輯卷管理的5個基本概念
PV(Physical Volume)物理卷,處于LVM最底層,是LVM最基本的物理組成部分。
VG(Volume Group)卷組,就是我們使用的磁盤,可以進行分區(qū),對于LVM上面的文件系統(tǒng)而言,VG就是一個大磁盤,可以由多個PV構(gòu)成。
LG(Logical Volume)邏輯卷,LV就是VG分隔成的類似分區(qū)的磁盤空間,可以格式化后建立文件系統(tǒng)并掛載使用。
PE(Physical Extent):物理區(qū)域是用于分配的最小物理存儲單元,物理區(qū)域在建立卷組時指定其大小,默認的大小為4MB。一旦確立后就不能更改,相同卷組內(nèi)全部物理卷的物理區(qū)域大小一致,且有唯一編號,PE是LVM尋址的最小單元。
LE(Logical Extent):邏輯區(qū)域是邏輯卷的最小存儲單元,可用于分配,邏輯區(qū)域的大小取決于其所在的邏輯卷對應(yīng)卷組中物理區(qū)域的大小。在同一個卷組中,LE和PE的大小是相同的并一一對應(yīng)。圖1為LVM管理示意。
1.2 ? ?LVM的創(chuàng)建步驟
① 掛載物理磁盤或者識別新分配的磁盤;
② 物理磁盤初始化為一個物理卷PV:
pvcreate /dev/sdb1
pvcreate /dev/sdb2
pvcreate /dev/sdb3
③ 將一個或多個的物理卷PV組合成一個或多個卷組VG;
vgcreate VolGroup /dev/sdb1 /dev/sdb2 /dev/sdb3
④從VG中創(chuàng)建邏輯卷LV;
lvcreate -L 5.5T -n lv_data VolGroup
⑤根據(jù)實際需要將邏輯卷掛載使用;
mkfs.ext3 /dev/VolGroup/lv_data,再掛載
⑥可以通過pvdisplay、vgdisplay、lvdisplay等命令查看物理卷、卷組和邏輯卷,并可根據(jù)需要對磁盤或邏輯卷進行擴展vgextend lvextend和縮減lvreduce。
LVM邏輯卷管理在做刪除操作時,需要按照與創(chuàng)建LVM操作的相反進行,即刪除LV,刪除VG,刪除PV。
每次新建一個LV卷后,系統(tǒng)會在LVM的backup文件夾記錄相應(yīng)的PV、VG、LV的信息和VG的歸檔日志,這些資料可用于文件系統(tǒng)或者磁盤故障時邏輯卷的恢復(fù)。
2 ? ? ?恢復(fù)LVM方法
遼河油田勘探開發(fā)研究環(huán)境支撐著勘探開發(fā)的地震解釋、儲層反演、地質(zhì)綜合研究等工作,這些研究需要大量的存儲空間,每個應(yīng)用的存儲空間在容量、數(shù)量上都不相同,因此采用了LVM邏輯卷管理,方便對存儲空間進行擴充或縮減。通過將用戶數(shù)據(jù)及用戶目錄建立在LVM上,可以隨時按要求增大縮小,或根據(jù)使用情況對各邏輯卷進行擴充等調(diào)整。當(dāng)系統(tǒng)空間不足而加入新的硬盤時,不必把用戶的數(shù)據(jù)從原硬盤遷移到新硬盤,而只須把新的分區(qū)加入卷組并擴充邏輯卷即可。同樣,使用LVM可以在不中斷應(yīng)用服務(wù)的情況下,把用戶數(shù)據(jù)從舊硬盤空間遷移到新硬盤空間中去。后臺存儲采用SAN架構(gòu),有利于數(shù)據(jù)的安全傳輸。
一次定時重啟,造成了信息不同步的小概率事件,使系統(tǒng)不能正常重啟。在修復(fù)過程中,發(fā)現(xiàn)部分LV卷的頭部信息自動更改為GPT分區(qū)格式,導(dǎo)致了此次故障發(fā)生。
通過大量測試研究,掌握了此類問題的解決方法。首先,通過dd命令完整備份物理設(shè)備,保證數(shù)據(jù)不會因為誤操作而丟失。然后按照圖2所示步驟,進行恢復(fù)操作。
①通過fdisk或者dd命令將出錯LV卷的物理設(shè)備磁盤前34個扇區(qū)清零處理;
②按照備份的PV信息恢復(fù)PV卷;
③按照備份的VG信息恢復(fù)VG卷組;
④激活VG卷組;
⑤掛載LV卷,并驗證數(shù)據(jù)。
3 ? ? ?結(jié) ? ?語
本文通過一個生產(chǎn)過程中實際的案例,結(jié)合LVM自身存儲特性,試驗得出一種Linux系統(tǒng)下磁盤分區(qū)文件修復(fù)方法。通過試驗分析磁盤設(shè)備頭部分區(qū)表信息,找到一種在保證原有LV卷數(shù)據(jù)不丟失的情況下,恢復(fù)LV的頭部信息的解決辦法,達到了預(yù)期效果。分區(qū)表的恢復(fù)是一種十分危險的操作,并不是每一次的操作都能達到預(yù)期效果?;謴?fù)時,首先要細心謹慎,任何一點錯誤都有可能導(dǎo)致數(shù)據(jù)的永久丟失;其次,要做好系統(tǒng)的數(shù)據(jù)備份及分區(qū)表備份工作。
主要參考文獻
[1]翟常亮,賈東,藍朝祥,等.Windows下LVM被刪除邏輯卷的數(shù)據(jù)恢復(fù)[J].電腦知識與技術(shù),2014.6,10(18):4338-4340.