服務(wù)器數(shù)據(jù)恢復(fù)環(huán)境&故障:
北京某公司一臺(tái)配有72塊SAS硬盤的服務(wù)器,管理員誤操作刪除了該服務(wù)器中的12個(gè)lun,這12個(gè)lun中包含了該公司的客戶信息以及其他重要數(shù)據(jù),急需恢復(fù)服務(wù)器數(shù)據(jù)。
服務(wù)器數(shù)據(jù)恢復(fù)過(guò)程:
1、將故障服務(wù)器所有硬盤以只讀方式做扇區(qū)級(jí)別的鏡像備份。后續(xù)的數(shù)據(jù)分析和數(shù)據(jù)恢復(fù)操作都基于鏡像文件進(jìn)行,避免對(duì)原始數(shù)據(jù)造成二次破壞。
2、北亞企安數(shù)據(jù)恢復(fù)工程師基于鏡像文件分析服務(wù)器底層數(shù)據(jù),找到盤頭位置的超級(jí)塊,通過(guò)分析超級(jí)塊信息獲取到磁盤組的起始?jí)K信息、磁盤組名稱、邏輯組起始?jí)K號(hào)、raid編號(hào)等基本信息。
分析超級(jí)塊:
北亞企安數(shù)據(jù)恢復(fù)——Netapp數(shù)據(jù)恢復(fù)
3、通過(guò)分析得知每個(gè)數(shù)據(jù)塊占8個(gè)扇區(qū),數(shù)據(jù)塊后附加64字節(jié)數(shù)據(jù)塊描述信息,根據(jù)這些信息判斷出作為校驗(yàn)盤的磁盤并在數(shù)據(jù)恢復(fù)過(guò)程中將這些磁盤剔除。
0x10:6字節(jié)為aggr_data塊號(hào)
如果0x10處為FFFF表示校驗(yàn)塊
校驗(yàn)塊描述信息樣例:
北亞企安數(shù)據(jù)恢復(fù)——Netapp數(shù)據(jù)恢復(fù)
4、在進(jìn)行盤序分析時(shí)可以根據(jù)每塊磁盤8號(hào)扇區(qū)的磁盤信息和磁盤末尾的RAID盤序表來(lái)確定盤序。
a、確定各個(gè)磁盤所屬aggr組。
b、判斷組內(nèi)盤序。數(shù)據(jù)指針跳轉(zhuǎn)時(shí)不考慮校驗(yàn)盤,只需要取得數(shù)據(jù)盤的盤序即可。
aggr_raid(磁盤靠近尾部) 根據(jù)10H處的VCN塊號(hào)判斷磁盤組內(nèi)各盤的順序
分析盤序表:
北亞企安數(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)。文件節(jié)點(diǎn)根據(jù)用戶級(jí)別分為兩類:“MBFP”系統(tǒng)文件節(jié)點(diǎn)和“MBFI”用戶文件節(jié)點(diǎn),數(shù)據(jù)恢復(fù)一般只需要MBFI節(jié)點(diǎn)組。
服務(wù)器節(jié)點(diǎn)樣例圖:
北亞企安數(shù)據(jù)恢復(fù)——Netapp數(shù)據(jù)恢復(fù)
說(shuō)明:
頭部信息64字節(jié)(此頭部為數(shù)據(jù)文件的節(jié)點(diǎn)文件塊頭部,大小為64字節(jié))
標(biāo)志,常量(“MBFP”為元文件的節(jié)點(diǎn)標(biāo)志,“MBFI”為用戶文件的節(jié)點(diǎn)標(biāo)志)
5、根據(jù)更新序列值獲取到最新節(jié)點(diǎn)。解析節(jié)點(diǎn)中節(jié)點(diǎn)類型、邏輯塊號(hào)、文件數(shù)量、文件大小、所占?jí)K數(shù)量及數(shù)據(jù)指針,獲取節(jié)點(diǎn)在節(jié)點(diǎn)文件中的邏輯塊號(hào),從0開(kāi)始計(jì)數(shù)。
6、獲取目錄項(xiàng),并根據(jù)其節(jié)點(diǎn)編號(hào),找到對(duì)應(yīng)節(jié)點(diǎn)。
獲取服務(wù)器內(nèi)對(duì)應(yīng)節(jié)點(diǎn)截圖:
北亞企安數(shù)據(jù)恢復(fù)——Netapp數(shù)據(jù)恢復(fù)
7、提取服務(wù)器數(shù)據(jù)。
a、掃描節(jié)點(diǎn)信息。
掃描服務(wù)器節(jié)點(diǎn)信息:
北亞企安數(shù)據(jù)恢復(fù)——Netapp數(shù)據(jù)恢復(fù)
節(jié)點(diǎn)掃描類:
北亞企安數(shù)據(jù)恢復(fù)——Netapp數(shù)據(jù)恢復(fù)
節(jié)點(diǎn)掃描程序完整流程:
北亞企安數(shù)據(jù)恢復(fù)——Netapp數(shù)據(jù)恢復(fù)
在循環(huán)掃描完畢之后會(huì)將所有掃描到的MBFP、MBFI和DOC數(shù)據(jù)塊分別寫(xiě)入到三個(gè)文件內(nèi),用于后續(xù)處理。
b、將節(jié)點(diǎn)信息導(dǎo)入到數(shù)據(jù)庫(kù)。
將ScanNode掃描得到的MBFI和MBFP、Dir存入數(shù)據(jù)庫(kù)以備后續(xù)使用。
MBFI導(dǎo)入數(shù)據(jù)庫(kù)整體流程:
北亞企安數(shù)據(jù)恢復(fù)——Netapp數(shù)據(jù)恢復(fù)
函數(shù)執(zhí)行完畢后查看數(shù)據(jù)庫(kù)得到如下信息:
北亞企安數(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ù)
c、提取文件
在獲取到要提取的文件的Node之后,開(kāi)始提取塊設(shè)備文件。
提取塊設(shè)備文件:
北亞企安數(shù)據(jù)恢復(fù)——Netapp數(shù)據(jù)恢復(fù)
初始化完畢后,開(kāi)始提取文件的各級(jí)MAP,在本次提取過(guò)程中文件大小均大于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)除以每塊磁盤上的塊數(shù)可得到當(dāng)前塊所在的磁盤序號(hào)(計(jì)算機(jī)整數(shù)除法,丟棄小數(shù)邠);再使用塊號(hào)取余塊數(shù),得到數(shù)據(jù)塊在此磁盤上的物理塊號(hào),物理塊號(hào)乘以塊大小,得到數(shù)據(jù)塊偏移位置。
8、塊設(shè)備文件系統(tǒng)解析。
該案例的塊設(shè)備5T lun用的是aix小機(jī)的jfs2文件系統(tǒng)。因此需要解析jfs2文件系統(tǒng),提取里面的數(shù)據(jù)庫(kù)備份文件。
7扇區(qū)記錄lvm描述信息,獲取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類型及率掛在信息區(qū)域:
北亞企安數(shù)據(jù)恢復(fù)——Netapp數(shù)據(jù)恢復(fù)
解析8個(gè)由大小1T的lun組成的oralce ASM文件系統(tǒng),提取其中的數(shù)據(jù)庫(kù)文件。
添加8個(gè)lT的lun:
北亞企安數(shù)據(jù)恢復(fù)——Netapp數(shù)據(jù)恢復(fù)
解析asm文件系統(tǒng),提取出數(shù)據(jù)庫(kù)文件:
北亞企安數(shù)據(jù)恢復(fù)——Netapp數(shù)據(jù)恢復(fù)
數(shù)據(jù)驗(yàn)證:
北亞企安工程師對(duì)提取出來(lái)的數(shù)據(jù)進(jìn)行檢測(cè)后沒(méi)有發(fā)現(xiàn)異常,聯(lián)系用戶方工程師親自進(jìn)行驗(yàn)證,經(jīng)反復(fù)驗(yàn)證,確認(rèn)本次恢復(fù)出來(lái)的數(shù)據(jù)完整可用。
審核編輯黃宇
-
數(shù)據(jù)恢復(fù)
+關(guān)注
關(guān)注
10文章
650瀏覽量
18155
發(fā)布評(píng)論請(qǐng)先 登錄
服務(wù)器數(shù)據(jù)恢復(fù)—Linux系統(tǒng)服務(wù)器崩潰的數(shù)據(jù)恢復(fù)案例
服務(wù)器數(shù)據(jù)恢復(fù)—AIX小型機(jī)誤刪數(shù)據(jù)如何恢復(fù)!

虛擬化數(shù)據(jù)恢復(fù)—VMware虛擬化環(huán)境下重裝系統(tǒng)導(dǎo)致服務(wù)器數(shù)據(jù)丟失的數(shù)據(jù)恢復(fù)

服務(wù)器數(shù)據(jù)恢復(fù)—如何預(yù)防服務(wù)器故障與恢復(fù)服務(wù)器數(shù)據(jù)!
數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)——MySQL數(shù)據(jù)庫(kù)誤刪除表記錄的數(shù)據(jù)恢復(fù)案例

服務(wù)器數(shù)據(jù)恢復(fù)—Zfs文件系統(tǒng)服務(wù)器數(shù)據(jù)恢復(fù)案例
Netapp數(shù)據(jù)恢復(fù)—Netapp存儲(chǔ)誤刪除lun如何恢復(fù)數(shù)據(jù)?

服務(wù)器數(shù)據(jù)恢復(fù)—ZFS文件系統(tǒng)下RAIDZ數(shù)據(jù)恢復(fù)案例

服務(wù)器數(shù)據(jù)恢復(fù)—raid5陣列崩潰導(dǎo)致上層lun無(wú)法正常使用的數(shù)據(jù)恢復(fù)案例

服務(wù)器數(shù)據(jù)恢復(fù)—EVA存儲(chǔ)誤刪除VDISK的數(shù)據(jù)恢復(fù)案例

服務(wù)器數(shù)據(jù)恢復(fù)—SAN LUN Mapping出錯(cuò)導(dǎo)致文件系統(tǒng)共享沖突的數(shù)據(jù)恢復(fù)案例
服務(wù)器數(shù)據(jù)恢復(fù)—EXT3文件系統(tǒng)下誤刪除數(shù)據(jù)的恢復(fù)案例

評(píng)論