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