【科普Isilon的存儲結(jié)構(gòu)】
Isilon內(nèi)部使用的是分布式文件系統(tǒng)OneFS。在Isilon存儲集群里面每個節(jié)點(diǎn)均為單一OneFS文件系統(tǒng),所以Isilon在支持橫向擴(kuò)展的同時并不會影響數(shù)據(jù)正常使用。在存儲集群工作時,所有節(jié)點(diǎn)提供相同的功能,節(jié)點(diǎn)與節(jié)點(diǎn)之前沒有主備之分。當(dāng)用戶往存儲集群中存儲文件時,OneFS層會將文件分成128K的片段分別存到不同的節(jié)點(diǎn)中,而在節(jié)點(diǎn)層又會將128K的片段分成8K的小片段分別存到該節(jié)點(diǎn)的不同硬盤中。而用戶文件的Indoe信息、目錄項(xiàng)及數(shù)據(jù)MAP則會分別存儲在所有節(jié)點(diǎn)中,這樣可以確保用戶不管從那個節(jié)點(diǎn)都可以訪問到所有數(shù)據(jù)。Isilon在初始化時會讓用戶選擇相應(yīng)的存儲冗余模式,不同的冗余模式所提供的數(shù)據(jù)安全級別也不一樣(默認(rèn)3個節(jié)點(diǎn)采用N+2:1模式)。
【存儲數(shù)據(jù)恢復(fù)故障描述】
某公司管理員由于誤操作將服務(wù)器中包括MSSQL數(shù)據(jù)庫,以及大量的MP4、ASF和TS類型的視頻文件等重要數(shù)據(jù)刪除。需要進(jìn)行數(shù)據(jù)恢復(fù)的這臺服務(wù)器整體存儲架構(gòu)采用EMC高端網(wǎng)絡(luò)NAS(Isilon S200),節(jié)點(diǎn)數(shù)量為3個,每個節(jié)點(diǎn)配置12塊3T STAT硬盤,無SSD。需要進(jìn)行數(shù)據(jù)恢復(fù)的數(shù)據(jù)包括vmware虛擬機(jī)(WEB服務(wù)器)和視頻文件,虛擬機(jī)通過NFS協(xié)議共享到ESX主機(jī),視頻文件通過CIFS協(xié)議共享給虛擬機(jī)(WEB服務(wù)器)。NFS共享的所有數(shù)據(jù)(也就是所有虛擬機(jī))被刪除而CIFS共享的數(shù)據(jù)則沒有被刪除。
【備份服務(wù)器數(shù)據(jù)】
因考慮到數(shù)據(jù)安全性,避免對數(shù)據(jù)造成二次破壞,需對所有硬盤進(jìn)行全部備份。但是由于磁盤數(shù)量太多(單節(jié)點(diǎn)12塊盤,3個節(jié)點(diǎn)36塊盤),且單盤容量太大(單盤3TB,一共108TB),因此備份周期會較長。最終客戶決定,只對存儲中現(xiàn)有數(shù)據(jù)進(jìn)行備份,由數(shù)據(jù)恢復(fù)公司備份一次,客戶再備份一次,以確?,F(xiàn)有數(shù)據(jù)安全。
【服務(wù)器數(shù)據(jù)分析】
服務(wù)器數(shù)據(jù)備份完成后在Isilon的web管理界面中將Isilon正常關(guān)機(jī)。再將所有節(jié)點(diǎn)上的所有硬盤貼上標(biāo)簽,并依次取出再放到數(shù)據(jù)恢復(fù)平臺中,開始分析所有硬盤中的數(shù)據(jù)。
由于客戶數(shù)據(jù)是被刪除了,因此不用過多考慮存儲的冗余級別,重點(diǎn)需要分析文件刪除后,文件Indoe及數(shù)據(jù)MAP是否發(fā)生變化。刪除的虛擬磁盤文件都在64G或以上,并且存儲中沒有其他類型的大文件。編寫掃描所有文件Indoe的程序,將文件大小符合64G或以上的Indoe都掃描出來。再仔細(xì)分析掃描出來的Indoe,發(fā)現(xiàn)Indoe中記錄的數(shù)據(jù)MAP位置,其index指向的內(nèi)容已不再是正常數(shù)據(jù),并且所有節(jié)點(diǎn)上的Indoe均是同樣的情況。再仔細(xì)分析Inode,發(fā)現(xiàn)大文件的數(shù)據(jù)MAP會有多層(樹結(jié)構(gòu)),并且數(shù)據(jù)MAP中會記錄文件的唯一ID,因此可以嘗試找到文件最底層的數(shù)據(jù)MAP。抱著僥幸心理對文件最底層的數(shù)據(jù)MAP做遍歷跟蹤操作,發(fā)現(xiàn)最低層的數(shù)據(jù)MAP果然還在。
【數(shù)據(jù)恢復(fù)過程】
從文件的Inode中取出文件的唯一ID,然后對所有符合該ID的數(shù)據(jù)MAP做聚合。并根據(jù)數(shù)據(jù)MAP中的VCN號做排序,發(fā)現(xiàn)每個文件的前17088項(xiàng)數(shù)據(jù)MAP都不存在。
·
仔細(xì)換算了一下發(fā)現(xiàn)丟失的數(shù)據(jù)MAP項(xiàng)總共才包含不到1G的數(shù)據(jù),而刪除的文件全是虛擬機(jī)的vmdk文件,里面都是NTFS的文件系統(tǒng),而NTFS文件系統(tǒng)的MFT基本都在3G的位置,也就是只需要在每個vmdk文件的頭部手動偽造一個MBR和DBR就可以解釋vmdk里面的數(shù)據(jù)了(真不知到是巧合呢!還是巧合呢?。?。對掃描到的數(shù)據(jù)MAP做解釋,并根據(jù)VCN號的順序?qū)С鰯?shù)據(jù),沒有MAP的情況保留為零。
·
經(jīng)過不斷的測試,先導(dǎo)出一個vmdk文件來看看。結(jié)果令我大吃一驚,導(dǎo)出的vmdk文件比實(shí)際情況要小,并且vmdk中MFT的位置也與自身描述不符。手動隨機(jī)驗(yàn)證了幾個MPA發(fā)現(xiàn)都能指向數(shù)據(jù)區(qū),而程序解釋MAP的方式也都沒有問題。所以猜測到可能為文件稀疏!
將代碼進(jìn)行部分調(diào)整后重新導(dǎo)出剛才的vmdk,這次vmdk大小符合實(shí)際大小,且MFT的位置也在相應(yīng)位置。手工偽造一個MBR,分區(qū)表以及DBR,再用文件系統(tǒng)解釋工具(自用工具)成功解釋其文件系統(tǒng),導(dǎo)出vmdk里面的數(shù)據(jù)庫及視頻文件。
在驗(yàn)證了此vmdk中的數(shù)據(jù)庫及視頻文件沒問題后,批量導(dǎo)出所有重要的vmdk文件,再手工一個一個的去修改每個vmdk文件。
【數(shù)據(jù)驗(yàn)收】
將客戶所有重要的數(shù)據(jù)恢復(fù)完成后,由客戶方安排工程師對恢復(fù)的所有數(shù)據(jù)做完整性及準(zhǔn)確性檢測,數(shù)據(jù)最終確定完全沒有問題,數(shù)據(jù)恢復(fù)成功。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。