服務(wù)器數(shù)據(jù)恢復(fù)環(huán)境:
服務(wù)器中有32塊硬盤(pán),組建了3組RAIDZ,部分磁盤(pán)作為熱備盤(pán)。zfs文件系統(tǒng)。
服務(wù)器故障:
服務(wù)器運(yùn)行中突然崩潰,排除斷電、進(jìn)水、異常操作等外部因素。工作人員將服務(wù)器重啟后發(fā)現(xiàn)無(wú)法進(jìn)入操作系統(tǒng)。
將故障服務(wù)器中所有硬盤(pán)編號(hào)后取出,經(jīng)過(guò)硬件工程師檢測(cè)沒(méi)有發(fā)現(xiàn)有硬盤(pán)存在硬件故障。將所有磁盤(pán)以只讀方式進(jìn)行扇區(qū)級(jí)鏡像,鏡像完成后將所有磁盤(pán)按照編號(hào)還原到故障服務(wù)器。基于鏡像文件分析底層數(shù)據(jù),發(fā)現(xiàn)熱備盤(pán)全部啟用。
ZFS文件系統(tǒng)中,池被稱(chēng)為ZPOOL。ZPOOL的子設(shè)備包括:塊設(shè)備、文件、磁盤(pán)等等,本案例中將3組RAIDZ作為子設(shè)備。
經(jīng)過(guò)分析發(fā)現(xiàn),三組RAIDZ中的兩組RAIDZ分別啟用熱備盤(pán)個(gè)數(shù)為1和3。在啟用熱備盤(pán)后,一組RAIDZ仍出現(xiàn)一塊離線(xiàn)盤(pán),另外一組RAIDZ內(nèi)則出現(xiàn)兩塊。
故障現(xiàn)場(chǎng)模擬:三組RAIDZ中的兩組RAIDZ出現(xiàn)離線(xiàn)盤(pán),熱備盤(pán)及時(shí)上線(xiàn)進(jìn)行替換;熱備盤(pán)無(wú)冗余狀態(tài)下一組RAIDZ又出現(xiàn)一塊離線(xiàn)盤(pán),另外一組RAIDZ則又出現(xiàn)兩塊離線(xiàn)盤(pán),ZPOOL進(jìn)入高負(fù)荷狀態(tài)(每次讀取數(shù)據(jù)都需要進(jìn)行校驗(yàn)獲取正確數(shù)據(jù));當(dāng)另外一組RAIDZ出現(xiàn)第三塊離線(xiàn)盤(pán)時(shí),RAIDZ崩潰、ZPOOL下線(xiàn)、服務(wù)器崩潰。
ZFS管理的存儲(chǔ)池與常規(guī)存儲(chǔ)不同,所有磁盤(pán)都由ZFS進(jìn)行管理。常規(guī)RAID存儲(chǔ)數(shù)據(jù)時(shí)按照特定的規(guī)則組建池,不關(guān)心文件在子設(shè)備上的位置。ZFS在存儲(chǔ)數(shù)據(jù)時(shí)會(huì)為每次寫(xiě)入的數(shù)據(jù)分配適當(dāng)大小的空間,并計(jì)算出指向子設(shè)備的數(shù)據(jù)指針。ZFS的這個(gè)特性使得RAIDZ缺盤(pán)時(shí)無(wú)法直接通過(guò)校驗(yàn)獲取數(shù)據(jù),必須將整個(gè)ZPOOL作為一個(gè)整體進(jìn)行解析。
服務(wù)器數(shù)據(jù)恢復(fù)過(guò)程:
1、手工截取事務(wù)塊數(shù)據(jù),北亞企安數(shù)據(jù)恢復(fù)工程師編寫(xiě)程序獲取最大事務(wù)號(hào)入口。
獲取文件系統(tǒng)入口:
北亞企安數(shù)據(jù)恢復(fù)——zfs數(shù)據(jù)恢復(fù)
2、獲取到文件系統(tǒng)入口后,北亞企安數(shù)據(jù)恢復(fù)工程師編寫(xiě)數(shù)據(jù)指針解析程序進(jìn)行地址解析。
解析數(shù)據(jù)指針:
北亞企安數(shù)據(jù)恢復(fù)——zfs數(shù)據(jù)恢復(fù)
3、獲取到文件系統(tǒng)入口點(diǎn)在各磁盤(pán)上的分布情況后,北亞企安數(shù)據(jù)恢復(fù)工程師手工截取&分析文件系統(tǒng)內(nèi)部結(jié)構(gòu)。文件系統(tǒng)入口點(diǎn)所在的磁盤(pán)組無(wú)缺失盤(pán),可直接提取信息。
4、根據(jù)ZFS文件系統(tǒng)的數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)找到映射的LUN名稱(chēng),從而找到其節(jié)點(diǎn)。
5、根據(jù)ZFS版本編寫(xiě)數(shù)據(jù)提取程序提取數(shù)據(jù)。
北亞企安數(shù)據(jù)恢復(fù)——zfs數(shù)據(jù)恢復(fù)
由于磁盤(pán)組內(nèi)缺盤(pán)個(gè)數(shù)較多,每個(gè)IO流都需要通過(guò)校驗(yàn)得到,提取速度緩慢。與用戶(hù)方溝通后得知ZVOL卷映射到XenServer作為存儲(chǔ)設(shè)備,需要恢復(fù)的文件在一個(gè)vhd內(nèi)。
6、提取ZVOL卷頭部信息,按照XenStore卷存儲(chǔ)結(jié)構(gòu)進(jìn)行分析,發(fā)現(xiàn)該vhd在整個(gè)卷的尾部,計(jì)算出其起始位置并從此位置開(kāi)始提取數(shù)據(jù)。
7、Vhd提取完成后,驗(yàn)證其內(nèi)部的壓縮包、圖片、視頻等文件,均可正常打開(kāi)。
8、聯(lián)系用戶(hù)方驗(yàn)證數(shù)據(jù),驗(yàn)證后確認(rèn)文件數(shù)量與系統(tǒng)自動(dòng)記錄的文件個(gè)數(shù)完全一致,文件可正常打開(kāi)。本次服務(wù)器數(shù)據(jù)恢復(fù)工作完成。
審核編輯 黃宇
-
服務(wù)器
+關(guān)注
關(guān)注
14文章
10328瀏覽量
91688 -
RAID
+關(guān)注
關(guān)注
0文章
290瀏覽量
37724 -
數(shù)據(jù)恢復(fù)
+關(guān)注
關(guān)注
10文章
722瀏覽量
19034
發(fā)布評(píng)論請(qǐng)先 登錄
服務(wù)器數(shù)據(jù)恢復(fù)—斷電致虛擬機(jī)不可用,LVM損壞數(shù)據(jù)庫(kù)碎片重組恢復(fù)案例
【服務(wù)器數(shù)據(jù)恢復(fù)】從崩潰到重生:16盤(pán)服務(wù)器RAID與EXT4文件系統(tǒng)深度修復(fù)實(shí)錄
【服務(wù)器數(shù)據(jù)恢復(fù)】多盤(pán)掉線(xiàn)RAID6數(shù)據(jù)恢復(fù):基于Reed-Solomon算法的修復(fù)
【服務(wù)器數(shù)據(jù)恢復(fù)】服務(wù)器raid5陣列raid模塊損壞的數(shù)據(jù)恢復(fù)案例
【服務(wù)器數(shù)據(jù)恢復(fù)】服務(wù)器“泡水”硬盤(pán)掉線(xiàn),數(shù)據(jù)竟這樣恢復(fù)
服務(wù)器數(shù)據(jù)恢復(fù)—一文讀懂服務(wù)器高頻故障排查+標(biāo)準(zhǔn)數(shù)據(jù)恢復(fù)流程
虛擬化數(shù)據(jù)恢復(fù)—Hyper-V服務(wù)癱瘓危機(jī):虛擬機(jī)數(shù)據(jù)文件丟失后的數(shù)據(jù)恢復(fù)案例
服務(wù)器數(shù)據(jù)恢復(fù)—意外斷電!Linux服務(wù)器數(shù)據(jù)恢復(fù)大揭秘
服務(wù)器數(shù)據(jù)恢復(fù)—RAIDZ多塊硬盤(pán)離線(xiàn)導(dǎo)致服務(wù)器崩潰的數(shù)據(jù)恢復(fù)案例
服務(wù)器數(shù)據(jù)恢復(fù)—服務(wù)器斷電導(dǎo)致raid模塊損壞的數(shù)據(jù)恢復(fù)案例
服務(wù)器數(shù)據(jù)恢復(fù)—服務(wù)器上的卷被誤刪數(shù)據(jù)如何恢復(fù)?
服務(wù)器數(shù)據(jù)恢復(fù)—重裝系統(tǒng)導(dǎo)致XFS文件系統(tǒng)分區(qū)丟失的數(shù)據(jù)恢復(fù)案例
服務(wù)器數(shù)據(jù)恢復(fù)—ocfs2文件系統(tǒng)被格式化為Ext4文件系統(tǒng)的數(shù)據(jù)恢復(fù)案例
服務(wù)器數(shù)據(jù)恢復(fù)—Linux系統(tǒng)服務(wù)器崩潰的數(shù)據(jù)恢復(fù)案例
服務(wù)器數(shù)據(jù)恢復(fù)—服務(wù)器重裝系統(tǒng)導(dǎo)致分區(qū)消失的數(shù)據(jù)恢復(fù)案例
【北亞服務(wù)器數(shù)據(jù)恢復(fù)】ZFS文件系統(tǒng)服務(wù)器RAIDZ數(shù)據(jù)恢復(fù)案例
評(píng)論