Netapp存儲(chǔ)數(shù)據(jù)恢復(fù)環(huán)境&故障情況:
某單位一臺(tái)Netapp存儲(chǔ),該Netapp存儲(chǔ)內(nèi)共有數(shù)十塊SAS硬盤(pán)。
工作人員誤操作刪除了Netapp存儲(chǔ)中12個(gè)lun,刪除的數(shù)據(jù)包括客戶(hù)信息和其他重要數(shù)據(jù)。
Netapp存儲(chǔ)數(shù)據(jù)恢復(fù)過(guò)程:
1、將故障存儲(chǔ)中所有磁盤(pán)編號(hào)后取出,硬件工程師經(jīng)過(guò)檢測(cè)沒(méi)有發(fā)現(xiàn)存在硬件故障。以只讀方式將所有磁盤(pán)進(jìn)行扇區(qū)級(jí)全盤(pán)鏡像。鏡像完成后將所有磁盤(pán)按照編號(hào)還原到原存儲(chǔ)中,后續(xù)的數(shù)據(jù)分析和數(shù)據(jù)恢復(fù)操作都基于鏡像文件進(jìn)行。避免對(duì)原始磁盤(pán)數(shù)據(jù)造成二次破壞。
2、基于鏡像文件分析底層數(shù)據(jù),找到盤(pán)頭位置的超級(jí)塊。
3、通過(guò)分析超級(jí)塊獲取磁盤(pán)組的起始?jí)K信息、磁盤(pán)組名稱(chēng)、邏輯組起始?jí)K號(hào)、raid編號(hào)等信息。
分析超級(jí)塊:
北亞企安數(shù)據(jù)恢復(fù)——Netapp數(shù)據(jù)恢復(fù)
校驗(yàn)塊描述信息樣例:
北亞企安數(shù)據(jù)恢復(fù)——Netapp數(shù)據(jù)恢復(fù)
分析盤(pán)序表:
北亞企安數(shù)據(jù)恢復(fù)——Netapp數(shù)據(jù)恢復(fù)
Netapp的節(jié)點(diǎn)分布在數(shù)量眾多的數(shù)據(jù)塊內(nèi),在數(shù)據(jù)塊內(nèi)又被統(tǒng)一組織為節(jié)點(diǎn)組。每個(gè)節(jié)點(diǎn)組的前64字節(jié)記錄一些系統(tǒng)數(shù)據(jù),用192字節(jié)為一項(xiàng)來(lái)記錄各個(gè)文件節(jié)點(diǎn)。根據(jù)用戶(hù)級(jí)別分為兩類(lèi):“MBFP”系統(tǒng)文件節(jié)點(diǎn)和“MBFI”用戶(hù)文件節(jié)點(diǎn)。
節(jié)點(diǎn)樣例圖:
北亞企安數(shù)據(jù)恢復(fù)——Netapp數(shù)據(jù)恢復(fù)
4、根據(jù)更新序列值獲取到最新節(jié)點(diǎn)。解析節(jié)點(diǎn)中節(jié)點(diǎn)類(lèi)型、邏輯塊號(hào)、文件數(shù)量、文件大小、所占?jí)K數(shù)量、數(shù)據(jù)指針,獲取節(jié)點(diǎn)在節(jié)點(diǎn)文件中的邏輯塊號(hào)。
5、獲取目錄項(xiàng),并根據(jù)節(jié)點(diǎn)編號(hào)找到對(duì)應(yīng)節(jié)點(diǎn)。
獲取Netapp內(nèi)對(duì)應(yīng)節(jié)點(diǎn):
北亞企安數(shù)據(jù)恢復(fù)——Netapp數(shù)據(jù)恢復(fù)
6、使用北亞企安自主研發(fā)程序掃描節(jié)點(diǎn)信息。
掃描服務(wù)器節(jié)點(diǎn)信息:
北亞企安數(shù)據(jù)恢復(fù)——Netapp數(shù)據(jù)恢復(fù)
節(jié)點(diǎn)掃描類(lèi):
北亞企安數(shù)據(jù)恢復(fù)——Netapp數(shù)據(jù)恢復(fù)
節(jié)點(diǎn)掃描程序完整流程:
北亞企安數(shù)據(jù)恢復(fù)——Netapp數(shù)據(jù)恢復(fù)
在循環(huán)掃描完畢之后將所有掃描到的MBFP、MBFI和DOC數(shù)據(jù)塊分別寫(xiě)入到三個(gè)文件內(nèi)。
7、將ScanNode掃描得到的MBFI和MBFP、Dir存入數(shù)據(jù)庫(kù)。
MBFI導(dǎo)入數(shù)據(jù)庫(kù)整體流程:
北亞企安數(shù)據(jù)恢復(fù)——Netapp數(shù)據(jù)恢復(fù)
函數(shù)執(zhí)行完畢后,查看數(shù)據(jù)庫(kù)。
節(jié)點(diǎn)導(dǎo)入信息:
北亞企安數(shù)據(jù)恢復(fù)——Netapp數(shù)據(jù)恢復(fù)
Netapp在更改inode節(jié)點(diǎn)時(shí)不會(huì)直接覆蓋而是重新分配inode進(jìn)行寫(xiě)入。單個(gè)文件的節(jié)點(diǎn)node_uid唯一不變,mbfi_usn會(huì)隨著節(jié)點(diǎn)的變化而增大(正常情況下提取某個(gè)文件時(shí)使用usn值最大的節(jié)點(diǎn))。一般情況下存儲(chǔ)劃分出的單個(gè)節(jié)點(diǎn)會(huì)作為L(zhǎng)UN映射到服務(wù)器使用,根據(jù)file_size可以確定這個(gè)文件的大小,按照文件大小分組后再選取usn值最大的節(jié)點(diǎn),跳轉(zhuǎn)到MBFI文件的offset值偏移位置,取出節(jié)點(diǎn)。
節(jié)點(diǎn)樣例圖示:
北亞企安數(shù)據(jù)恢復(fù)——Netapp數(shù)據(jù)恢復(fù)
8、在獲取到要提取的文件的Node之后,開(kāi)始提取塊設(shè)備文件。
提取塊設(shè)備文件:
北亞企安數(shù)據(jù)恢復(fù)——Netapp數(shù)據(jù)恢復(fù)
初始化完畢后,開(kāi)始提取文件的各級(jí)MAP。由于本次提取的文件大小均大于1T且MAP層級(jí)為4,所以需要提取4次。第一級(jí)MAP默認(rèn)只占用1個(gè)塊,所以在程序內(nèi)直接提取,后三級(jí)MAP在GetAllMap函數(shù)內(nèi)進(jìn)行提取。通過(guò)塊號(hào)計(jì)算數(shù)據(jù)塊位置時(shí),由于NetApp使用JBOD組織LVM,直接用塊號(hào)除以每塊磁盤(pán)上的塊數(shù)可得到當(dāng)前塊所在的磁盤(pán)序號(hào);再使用塊號(hào)取余塊數(shù),得到數(shù)據(jù)塊在此磁盤(pán)上的物理塊號(hào),物理塊號(hào)乘以塊大小,得到數(shù)據(jù)塊偏移位置。
9、塊設(shè)備lun使用的是aix小機(jī)的jfs2文件系統(tǒng),解析jfs2文件系統(tǒng)并提取里面的數(shù)據(jù)庫(kù)備份文件。
10、解析lvm。找到記錄lvm描述信息的扇區(qū),獲取pv大小和pv序號(hào);找到vg描述區(qū),獲取lv數(shù)和pv數(shù);找到pv描述區(qū),解析pp序號(hào)和pp數(shù)。
解析文件系統(tǒng)塊信息:
北亞企安數(shù)據(jù)恢復(fù)——Netapp數(shù)據(jù)恢復(fù)
LV類(lèi)型及LV掛載信息區(qū)域:
北亞企安數(shù)據(jù)恢復(fù)——Netapp數(shù)據(jù)恢復(fù)
11、解析8個(gè)1Tlun組成oralce ASM文件系統(tǒng),提取其中的數(shù)據(jù)庫(kù)文件。
添加8個(gè)lTlun:
北亞企安數(shù)據(jù)恢復(fù)——Netapp數(shù)據(jù)恢復(fù)
解析asm文件系統(tǒng),提取出數(shù)據(jù)庫(kù)文件。
北亞企安數(shù)據(jù)恢復(fù)——Netapp數(shù)據(jù)恢復(fù)
Netapp存儲(chǔ)數(shù)據(jù)驗(yàn)證及數(shù)據(jù)移交:
北亞企安數(shù)據(jù)恢復(fù)工程師對(duì)恢復(fù)出來(lái)的數(shù)據(jù)進(jìn)行檢測(cè)后沒(méi)有發(fā)現(xiàn)異常情況。用戶(hù)方對(duì)恢復(fù)出來(lái)的數(shù)據(jù)進(jìn)行驗(yàn)證后,確認(rèn)恢復(fù)出來(lái)的數(shù)據(jù)完整有效。本次Netapp存儲(chǔ)數(shù)據(jù)恢復(fù)工作完成。
審核編輯 黃宇
-
存儲(chǔ)
+關(guān)注
關(guān)注
13文章
4314瀏覽量
85851 -
數(shù)據(jù)恢復(fù)
+關(guān)注
關(guān)注
10文章
573瀏覽量
17458
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論