發(fā)生故障的服務(wù)器存儲為常見存儲模式,物理存儲為一臺Dell服務(wù)器,虛擬化系統(tǒng)為esxi5.0。上層采用iSCSI方式實現(xiàn)FCSAN功能,上層的iSCSI是使用FreeNAS構(gòu)建的。
·
服務(wù)器的FreeNAS層采用了UFS2文件系統(tǒng),虛擬化系統(tǒng)里有3臺虛擬機,本次服務(wù)器數(shù)據(jù)恢復(fù)的重點就是這三臺虛擬機。其中一臺虛擬機采用的是FreeBSD 系統(tǒng),存儲的是數(shù)據(jù)庫文件,另外兩臺分別存儲了網(wǎng)站數(shù)據(jù)和Windows2003服務(wù)器,存儲的是數(shù)據(jù)庫數(shù)據(jù)和工作程序代碼。
·
成都創(chuàng)新互聯(lián)是一家企業(yè)級云計算解決方案提供商,超15年IDC數(shù)據(jù)中心運營經(jīng)驗。主營GPU顯卡服務(wù)器,站群服務(wù)器,雅安服務(wù)器托管,海外高防服務(wù)器,大帶寬服務(wù)器,動態(tài)撥號VPS,海外云手機,海外云服務(wù)器,海外服務(wù)器租用托管等。
客戶機房供電系統(tǒng)不穩(wěn)定導(dǎo)致服務(wù)器存儲非正常關(guān)機,重啟后ESXI系統(tǒng)無法連接存儲。機房管理員對服務(wù)器進行故障排查,發(fā)現(xiàn)FreeNAS的UFS2文件系統(tǒng)由于非正常關(guān)機出現(xiàn)故障,于是對文件系統(tǒng)進行fsck修復(fù)并將ESXI系統(tǒng)連接到服務(wù)器存儲上。
·
管理員對上層文件系統(tǒng)及數(shù)據(jù)進行檢查,發(fā)現(xiàn)原服務(wù)器上的文件系統(tǒng)和存儲數(shù)據(jù)都無法被識別,把vmfs進行了格式化等操作,最終導(dǎo)致數(shù)據(jù)丟失。
·
數(shù)據(jù)恢復(fù)中心接到客戶的服務(wù)器硬盤后首先對FreeNAS層進行鏡像,然后進行底層數(shù)據(jù)分析。服務(wù)器數(shù)據(jù)恢復(fù)工程師在存儲內(nèi)發(fā)現(xiàn)了一個被命名為iscsidata的大文件,文件的容量有900G左右。服務(wù)器數(shù)據(jù)恢復(fù)工程師繼續(xù)分析文件系統(tǒng)結(jié)構(gòu),根據(jù)UFS2文件系統(tǒng)的存儲結(jié)構(gòu)定位到這個大文件的iNode數(shù)據(jù)進行下一步查看。
·
通過查看發(fā)現(xiàn)iscsidata文件此前被重建過,iNode指針?biāo)赶虻臄?shù)據(jù)量非常少,在這種情況下,想要進入到vmfs文件系統(tǒng)層進行數(shù)據(jù)分析和恢復(fù)首先要分析出FreeNAS層面的必要信息和數(shù)據(jù)。服務(wù)器數(shù)據(jù)恢復(fù)工程師通過分析得到如下信息。
·
UFS2文件系統(tǒng)塊大小為16kb,segment大小為2kb,柱面組大小為188176kb,每數(shù)據(jù)指針大小為8字節(jié),每個塊可容納數(shù)據(jù)指針數(shù)量為2048個。
·
由此信息可以計算出,一個二級指針塊可存儲的數(shù)據(jù)量=2048204816KB=64GB。三級指針塊可存儲的數(shù)據(jù)量=64GB*2048=128TB。
·
服務(wù)器數(shù)據(jù)恢復(fù)工程師計劃通過iscsidata文件的三級指針塊來恢復(fù)FreeNAS層的數(shù)據(jù),但由于該文件曾經(jīng)被重建,導(dǎo)致了部分指針被重建的數(shù)據(jù)所覆蓋,原文件的iNode和重建后的文件iNode所在的位置完全一致,也沒有其他可用于數(shù)據(jù)恢復(fù)iNode數(shù)據(jù)。
·
服務(wù)器數(shù)據(jù)恢復(fù)工程師根據(jù)服務(wù)器的實際數(shù)據(jù)情況編寫了比以往數(shù)據(jù)恢復(fù)時條件更寬泛的小程序收集有用的指針塊,并收集到了大量二級指針塊和三級指針塊。
·
服務(wù)器數(shù)據(jù)恢復(fù)工程師首先分析三級指針塊,但遺憾的是這些指針塊經(jīng)過檢查都是無效的,于本次服務(wù)器數(shù)據(jù)恢復(fù)而言無用(估計是重建時被覆蓋了,新的iscsidata文件在掛載到ESXi5.0后有個VMFS格式化過程,而 ESXi5.0 使用GPT分區(qū),GPT分區(qū)會在磁盤最后寫入冗余的GPT頭和分區(qū)表信息數(shù)據(jù),這樣會使用iscsidata文件的三級指針塊)。
·
繼續(xù)分析二級指針塊,對有大量的二級指針塊的指向數(shù)據(jù)進行DUMP,然后再從磁盤中的數(shù)據(jù)定位到二級指針。這樣得到大量DUMP的數(shù)據(jù)
·
服務(wù)器數(shù)據(jù)恢復(fù)工程師運用以往研究到的NTFS和UFS2文件系統(tǒng)結(jié)構(gòu)想想定位到vmfs層,繼而定位到DUMP出的單個64GB文件,進行數(shù)據(jù)組合。
·
經(jīng)過復(fù)雜的查詢和重組操作,最終服務(wù)器數(shù)據(jù)恢復(fù)工程師成功恢復(fù)出了客戶服務(wù)器存儲內(nèi)的3臺虛擬機及虛擬機內(nèi)的全部數(shù)據(jù)。
·
服務(wù)器數(shù)據(jù)恢復(fù)工程師將恢復(fù)出來的數(shù)據(jù)上傳到新構(gòu)建出來的系統(tǒng)中進行驗證,經(jīng)客戶管理員進行驗證,所有數(shù)據(jù)恢復(fù)成功,本次數(shù)據(jù)恢復(fù)的成功率為100%。