張天亮 劉小斌 于由美 孫兆寬 鄒金津 宮臣


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