服務(wù)器數(shù)據(jù)恢復(fù)環(huán)境:
SUN ZFS系列某型號(hào)存儲(chǔ)陣列;
40塊磁盤組建的存儲(chǔ)池(其中4塊磁盤用作全局熱備盤),池內(nèi)劃分出若干空間映射到服務(wù)器使用;
服務(wù)器使用Windows操作系統(tǒng)。
服務(wù)器故障:
服務(wù)器在工作時(shí)由于未知原因崩潰,排除斷電、進(jìn)水或者誤操作等外部因素。管理員重啟服務(wù)器后發(fā)現(xiàn)無(wú)法進(jìn)入系統(tǒng),需要恢復(fù)該存儲(chǔ)內(nèi)的所有數(shù)據(jù)。
服務(wù)器數(shù)據(jù)恢復(fù)過(guò)程:
1、對(duì)故障存儲(chǔ)中所有硬盤以只讀方式做鏡像備份,后續(xù)的數(shù)據(jù)分析和數(shù)據(jù)恢復(fù)操作都基于鏡像文件進(jìn)行,避免對(duì)原始數(shù)據(jù)造成二次破壞。
2、分析磁盤鏡像,發(fā)現(xiàn)故障設(shè)備是通過(guò)ZFS文件系統(tǒng)來(lái)管理所有磁盤。磁盤內(nèi)記錄系統(tǒng)元信息的NVLIST較為混亂,只能粗略得知以下信息:故障存儲(chǔ)中的磁盤被分為三組,每組12塊;每個(gè)組使用ZFS文件系統(tǒng)獨(dú)有的RAIDZ管理磁盤。RAIDZ級(jí)別為2,即每個(gè)組最多可缺失2塊磁盤;故障存儲(chǔ)內(nèi)的4塊全局熱備全部啟用。
Tips:ZFS文件系統(tǒng)中的池被稱為ZPOOL。ZPOOL的子設(shè)備可以有很多類型:塊設(shè)備、文件、磁盤等等。本案例中所采用三組RAIDZ作為子設(shè)備。
3、經(jīng)過(guò)進(jìn)一步分析,發(fā)現(xiàn)三組RAIDZ內(nèi)有兩組分別啟用的熱備盤個(gè)數(shù)為1和3。在熱備盤啟用后,第一組內(nèi)又出現(xiàn)一塊離線盤,第二組內(nèi)則又出現(xiàn)兩塊離線盤。通過(guò)上面分析得到的結(jié)論可以模擬故障現(xiàn)場(chǎng):三組RAIDZ中的第一組和第二組分別出現(xiàn)離線盤,熱備盤及時(shí)進(jìn)行替換;在熱備盤無(wú)冗余的狀態(tài)下第一組RAIDZ又出現(xiàn)一塊離線盤,第二組RAIDZ則又出現(xiàn)兩塊離線盤,ZPOOL進(jìn)入高負(fù)荷狀態(tài)(每次讀取數(shù)據(jù)都需要經(jīng)過(guò)校驗(yàn)才能得到正確數(shù)據(jù))。當(dāng)?shù)诙MRAIDZ出現(xiàn)了第三塊離線盤時(shí)候,RAIDZ崩潰、ZPOOL下線、服務(wù)器崩潰。
4、由于ZFS文件系統(tǒng)管理的存儲(chǔ)池與常規(guī)存儲(chǔ)不同。常規(guī)RAID在存儲(chǔ)數(shù)據(jù)時(shí)只會(huì)按照特定的規(guī)則組建池,不關(guān)心文件在子設(shè)備上的位置。而ZFS文件系統(tǒng)在存儲(chǔ)數(shù)據(jù)時(shí)會(huì)為每次寫入的數(shù)據(jù)分配適當(dāng)大小的空間,并計(jì)算出指向子設(shè)備的數(shù)據(jù)指針。ZFS文件系統(tǒng)的這種特性決定了RAIDZ缺盤時(shí)無(wú)法直接通過(guò)校驗(yàn)得到數(shù)據(jù),必須將整個(gè)ZPOOL作為一個(gè)整體進(jìn)行解析。于是,北亞企安數(shù)據(jù)恢復(fù)工程師手工截取事務(wù)塊數(shù)據(jù),并編寫程序獲取最大事務(wù)號(hào)入口。
獲取文件系統(tǒng)入口:
北亞企安數(shù)據(jù)恢復(fù)——ZFS文件系統(tǒng)數(shù)據(jù)恢復(fù)
獲取到文件系統(tǒng)入口后,北亞企安數(shù)據(jù)恢復(fù)工程師編寫數(shù)據(jù)指針解析程序進(jìn)行地址解析。
解析數(shù)據(jù)指針:
北亞企安數(shù)據(jù)恢復(fù)——ZFS文件系統(tǒng)數(shù)據(jù)恢復(fù)
獲取到文件系統(tǒng)入口點(diǎn)在各磁盤的分布情況后,數(shù)據(jù)恢復(fù)工程師開始手工截取并分析文件系統(tǒng)內(nèi)部結(jié)構(gòu)。由于入口分布所在的磁盤組無(wú)缺失盤,可直接提取信息。根據(jù)ZFS文件系統(tǒng)的數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)找到用戶映射的LUN名稱,進(jìn)而找到其節(jié)點(diǎn)。
5、經(jīng)過(guò)分析發(fā)現(xiàn)故障存儲(chǔ)中的ZFS文件系統(tǒng)版本與開源版本有很大差別,無(wú)法使用之前開發(fā)的解析程序進(jìn)行解析,所以北亞企安數(shù)據(jù)恢復(fù)工程師重新編寫了數(shù)據(jù)提取程序提取數(shù)據(jù)。
北亞企安數(shù)據(jù)恢復(fù)——ZFS文件系統(tǒng)數(shù)據(jù)恢復(fù)
6、由于磁盤組內(nèi)缺盤個(gè)數(shù)較多,每個(gè)IO流都需要通過(guò)校驗(yàn)得到,所以提取進(jìn)度極為緩慢。與用戶溝通后得知,此ZVOL卷映射到XenServer作為存儲(chǔ)設(shè)備,用戶所需的文件在其中一個(gè)大小約為2T的vhd內(nèi)。提取ZVOL卷頭部信息,按照XenStore卷存儲(chǔ)結(jié)構(gòu)進(jìn)行分析,發(fā)現(xiàn)這個(gè)2T的vhd在整個(gè)卷的尾部,計(jì)算其起始位置后從此位置開始提取數(shù)據(jù)。
7、Vhd提取完畢后,驗(yàn)證其內(nèi)部的壓縮包、圖片和視頻等文件,均可正常打開。聯(lián)系用戶親自驗(yàn)證數(shù)據(jù),經(jīng)過(guò)反復(fù)驗(yàn)證后確定文件數(shù)量與系統(tǒng)自動(dòng)記錄的文件數(shù)量相差無(wú)幾,缺失的那部分極少數(shù)量的文件可能因?yàn)槭亲钚律蛇€未刷新到磁盤。驗(yàn)證文件可用性,文件全部可正常打開,本次數(shù)據(jù)恢復(fù)工作完成。
審核編輯黃宇
-
存儲(chǔ)
+關(guān)注
關(guān)注
13文章
4505瀏覽量
87076 -
數(shù)據(jù)恢復(fù)
+關(guān)注
關(guān)注
10文章
637瀏覽量
18014 -
VHD
+關(guān)注
關(guān)注
0文章
7瀏覽量
13296 -
zfs
+關(guān)注
關(guān)注
0文章
7瀏覽量
2692
發(fā)布評(píng)論請(qǐng)先 登錄
服務(wù)器數(shù)據(jù)恢復(fù)—Linux系統(tǒng)服務(wù)器崩潰的數(shù)據(jù)恢復(fù)案例
服務(wù)器數(shù)據(jù)恢復(fù)—服務(wù)器重裝系統(tǒng)導(dǎo)致分區(qū)消失的數(shù)據(jù)恢復(fù)案例

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

服務(wù)器數(shù)據(jù)恢復(fù)—Zfs文件系統(tǒng)服務(wù)器數(shù)據(jù)恢復(fù)案例
服務(wù)器數(shù)據(jù)恢復(fù)—服務(wù)器硬盤燈閃黃燈的數(shù)據(jù)恢復(fù)案例
服務(wù)器數(shù)據(jù)恢復(fù)—如何讓ZFS文件系統(tǒng)數(shù)據(jù)“起死回生”?

服務(wù)器數(shù)據(jù)恢復(fù)—Lustre分布式文件系統(tǒng)數(shù)據(jù)恢復(fù)案例

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

服務(wù)器數(shù)據(jù)恢復(fù)—raid5陣列+reiserfs文件系統(tǒng)數(shù)據(jù)恢復(fù)案例
服務(wù)器數(shù)據(jù)恢復(fù)—異常斷電導(dǎo)致linux系統(tǒng)無(wú)法啟動(dòng)的數(shù)據(jù)恢復(fù)案例
服務(wù)器數(shù)據(jù)恢復(fù)—EXT3文件系統(tǒng)下誤刪除數(shù)據(jù)的恢復(fù)案例

服務(wù)器數(shù)據(jù)恢復(fù)—V7000存儲(chǔ)NTFS文件系統(tǒng)數(shù)據(jù)恢復(fù)案例

評(píng)論