作者:admin 日期:2023-10-10 瀏覽: 次
「北亞服務(wù)器數(shù)據(jù)恢復(fù)」ORACLE
服務(wù)器數(shù)據(jù)恢復(fù)環(huán)境:
ORACLE-SUN-ZFS存儲(chǔ)服務(wù)器;
Windows操作系統(tǒng);
zfs文件系統(tǒng);
4個(gè)組,每組8塊硬盤;
熱備盤全部啟用。
北亞數(shù)據(jù)恢復(fù)——ZFS文件系統(tǒng)數(shù)據(jù)恢復(fù)
服務(wù)器數(shù)據(jù)恢復(fù)故障:
服務(wù)器正常運(yùn)行時(shí)突發(fā)故障無法正常工作,服務(wù)器管理員重啟服務(wù)器無法進(jìn)入系統(tǒng),聯(lián)系北亞數(shù)據(jù)恢復(fù)中心對(duì)服務(wù)器內(nèi)的數(shù)據(jù)進(jìn)行數(shù)據(jù)恢復(fù)。
北亞數(shù)據(jù)恢復(fù)工程師拿到服務(wù)器后,和服務(wù)器管理員溝通后,確定服務(wù)器故障不是因?yàn)閿嚯?、進(jìn)水、異常操作或者其他外部因素造成的。
服務(wù)器數(shù)據(jù)恢復(fù)過程:
1、服務(wù)器故障分析。
在ZFS文件系統(tǒng)中,池被稱為ZPOOL。ZPOOL的子設(shè)備可以有很多種類,包括塊設(shè)備、文件、磁盤等,故障服務(wù)器中的ZFS文件系統(tǒng)采用的是三組RAIDZ作為子設(shè)備。
經(jīng)過分析發(fā)現(xiàn),三組RAIDZ內(nèi)有兩組啟用熱備盤,個(gè)數(shù)分別為1和3。在啟用熱備盤后,第一組內(nèi)出現(xiàn)一塊離線盤,第二組內(nèi)出現(xiàn)兩塊離線盤。以此進(jìn)行故障現(xiàn)場(chǎng)模擬:三組RAIDZ內(nèi)第一二組分別出現(xiàn)離線盤,熱備盤及時(shí)進(jìn)行替換;熱備盤無冗余狀態(tài)下第一組出現(xiàn)一塊離線盤,第二組出現(xiàn)兩塊離線盤,ZPOOL進(jìn)入高負(fù)荷狀態(tài)(每次讀取數(shù)據(jù)都需要進(jìn)行校驗(yàn)得到正確數(shù)據(jù));第二組內(nèi)出現(xiàn)第三塊離線盤,RAIDZ崩潰、ZPOOL下線、服務(wù)器崩潰。
宿遷數(shù)據(jù)恢復(fù)
2、重組ZPOOL,追蹤數(shù)據(jù)入口。
ZFS管理的存儲(chǔ)池與常規(guī)存儲(chǔ)不同,所有磁盤都由ZFS進(jìn)行管理。常規(guī)RAID在存儲(chǔ)數(shù)據(jù)時(shí),只按照特定的規(guī)則組建池,不關(guān)心文件在子設(shè)備上的位置。而ZFS在數(shù)據(jù)存儲(chǔ)時(shí)會(huì)為每次寫入的數(shù)據(jù)分配適當(dāng)大小的空間,并計(jì)算得到指向子設(shè)備的數(shù)據(jù)指針。這種特性使得RAIDZ缺盤時(shí)無法直接進(jìn)行校驗(yàn)得到數(shù)據(jù),必須將整個(gè)ZPOOL作為一個(gè)整體進(jìn)行解析。
北亞數(shù)據(jù)恢復(fù)工程師手工截取事務(wù)塊數(shù)據(jù),編寫程序獲取最大事務(wù)號(hào)入口:
北亞數(shù)據(jù)恢復(fù)——ZFS文件系統(tǒng)數(shù)據(jù)恢復(fù)
獲取文件系統(tǒng)入口
獲取到文件系統(tǒng)入口后,北亞數(shù)據(jù)恢復(fù)工程師編寫數(shù)據(jù)指針解析程序進(jìn)行地址解析:
北亞數(shù)據(jù)恢復(fù)——ZFS文件系統(tǒng)數(shù)據(jù)恢復(fù)
解析數(shù)據(jù)指針
獲取到文件系統(tǒng)入口點(diǎn)在各磁盤分布情況后,北亞數(shù)據(jù)恢復(fù)工程師手工截取并分析文件系統(tǒng)內(nèi)部結(jié)構(gòu)。由于入口分布所在的磁盤組無缺失盤,可直接提取信息。根據(jù)ZFS文件系統(tǒng)的數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)順利找到原服務(wù)器映射的LUN名稱,進(jìn)而找到其節(jié)點(diǎn)。
3、編寫數(shù)據(jù)提取程序并運(yùn)行。
經(jīng)過仔細(xì)分析,北亞數(shù)據(jù)恢復(fù)工程師發(fā)現(xiàn)故障服務(wù)器中的ZFS版本與開源版本有較大差別,無法使用北亞數(shù)據(jù)恢復(fù)中心以前開發(fā)的解析程序進(jìn)行解析,所以重新編寫了數(shù)據(jù)提取程序。
北亞數(shù)據(jù)恢復(fù)——ZFS文件系統(tǒng)數(shù)據(jù)恢復(fù)
由于磁盤組內(nèi)缺盤個(gè)數(shù)較多,每個(gè)IO流都需要通過校驗(yàn)得到,提取進(jìn)度極為緩慢。與服務(wù)器管理員溝通后得知ZVOL卷映射到XenServer作為存儲(chǔ)設(shè)備,所需恢復(fù)的文件在其中一個(gè)大小約為2T的vhd內(nèi)。北亞數(shù)據(jù)恢復(fù)工程師提取ZVOL卷頭部信息,按照XenStore卷存儲(chǔ)結(jié)構(gòu)進(jìn)行分析,發(fā)現(xiàn)2T vhd在整個(gè)卷的尾部,計(jì)算得到其起始位置后從此位置開始提取數(shù)據(jù)。
4、驗(yàn)證恢復(fù)數(shù)據(jù)。
Vhd提取完畢后,北亞數(shù)據(jù)恢復(fù)工程師對(duì)其內(nèi)部的壓縮包及圖片、視頻等文件進(jìn)行驗(yàn)證,文件都可以正常打開使用。
聯(lián)系服務(wù)器管理員驗(yàn)證數(shù)據(jù),確定文件數(shù)量與系統(tǒng)自動(dòng)記錄的文件個(gè)數(shù)一致,文件都可正常打開,服務(wù)器數(shù)據(jù)恢復(fù)成功。