專利名稱:硬盤數(shù)據(jù)恢復方法、服務器及分布式存儲系統(tǒng)的制作方法
技術領域:
本發(fā)明涉及計算機領域,特別涉及一種硬盤數(shù)據(jù)恢復方法、服務器及分布式存儲系統(tǒng)。
背景技術:
硬盤作為數(shù)據(jù)存儲器,是計算機構成中所必不可少的物理設備。一般地,硬盤主要包括磁頭和磁盤盤片等。硬盤工作時,磁頭通過感應旋轉的盤片上磁場的變化來讀取數(shù)據(jù);通過改變盤片上的磁場來寫入數(shù)據(jù)。盤片表面被磁頭劃出許多圓形軌跡,而每個圓形軌跡被等分為若干個弧段,這些弧段稱為扇區(qū)。硬盤上的數(shù)據(jù)便是以扇區(qū)為單位存儲在盤片上。若磁頭出現(xiàn)故障或硬盤工作時斷電等,將會導致硬盤上一個或多個扇區(qū)發(fā)生損壞。為了在扇區(qū)損壞時提供相應的數(shù)據(jù)保護,現(xiàn)有的數(shù)據(jù)存儲系統(tǒng)采用分布式存儲系統(tǒng)。在分布式存儲系統(tǒng)中,數(shù)據(jù)同時備份到至少兩臺服務器的硬盤上;該至少兩臺服務器互為對方的對等服務器。當一臺服務器中某硬盤數(shù)據(jù)所處的扇區(qū)不能讀時,需要對該硬盤數(shù)據(jù)進行恢復?,F(xiàn)有硬盤數(shù)據(jù)恢復方法為,更換不能讀扇區(qū)所在硬盤;具體地,首先從對等服務器復制數(shù)據(jù)備份到新硬盤;然后將新硬盤替換原先的硬盤。在實現(xiàn)本發(fā)明的過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術至少存在以下問題:現(xiàn)有的硬盤數(shù)據(jù)恢復方法,第一,通過復制備份數(shù)據(jù)來恢復數(shù)據(jù),恢復效率較低。假設硬盤容量是ITB ;在千兆網(wǎng)絡環(huán)境中,網(wǎng)絡最大流量理論值是125MB/s(0.125GB/s);那么,復制ITB(1000GB)的數(shù)據(jù)理論上至少需要1000/0.125 = 8000秒=133分鐘。第二,由于硬盤的價格較高,若更換的硬盤并無其他的硬盤故障,更換后將增加企業(yè)運營成本。
發(fā)明內容
為了快速恢復硬盤數(shù)據(jù),并減少企業(yè)運營成本,本發(fā)明實施例提供了 一種硬盤數(shù)據(jù)恢復方法、服務器及分布式存儲系統(tǒng)。所述技術方案如下:—種服務器中硬盤數(shù)據(jù)恢復方法,所述方法包括:接收數(shù)據(jù)恢復請求,所述請求包括至少一個待恢復數(shù)據(jù)扇區(qū)標識,根據(jù)所述至少一個待恢復數(shù)據(jù)扇區(qū)標識找到至少一個待恢復數(shù)據(jù)扇區(qū);獲取所述至少一個待恢復數(shù)據(jù)扇區(qū)標識對應的至少一個備用扇區(qū)標識及文件備份,根據(jù)所述至少一個備用扇區(qū)標識找到至少一個備用扇區(qū);將所述文件備份中與所述至少一個待恢復數(shù)據(jù)扇區(qū)存儲的相同的數(shù)據(jù),寫入到所述至少一個備用扇區(qū)。其中,所述獲取至少一個所述待恢復數(shù)據(jù)扇區(qū)標識對應的文件備份,具體包括:根據(jù)所述至少一個待恢復數(shù)據(jù)扇區(qū)標識,獲取所述至少一個待恢復數(shù)據(jù)扇區(qū)標識對應的文件標識;根據(jù)所述文件標識,從所述服務器的鏡像服務器中獲取所述文件備份。其中,所述將所述文件備份中與所述至少一個待恢復數(shù)據(jù)扇區(qū)存儲的相同的數(shù)據(jù),寫入到所述至少一個備用扇區(qū),具體包括:獲取所述文件備份對應的所有扇區(qū),所述所有扇區(qū)包括所述至少一個待恢復數(shù)據(jù)扇區(qū);將所述至少一個待恢復數(shù)據(jù)扇區(qū)用所述至少一個備用扇區(qū)替代;從所述文件備份中獲取與所述至少一個待恢復數(shù)據(jù)扇區(qū)存儲的相同的數(shù)據(jù),并將所述數(shù)據(jù)寫入到所述至少一個備用扇區(qū)中。其中,所述接收數(shù)據(jù)恢復請求之后,還包括:判斷所述硬盤的所述備用扇區(qū)是否有剩余;若無剩余,則提示更換所述硬盤。其中,接收數(shù)據(jù)恢復請求之前,還包括:在線或離線掃描所述硬盤。一種服務器,所述服務器包括:接收模塊,用于接收數(shù)據(jù)恢復請求,所述請求包括至少一個待恢復數(shù)據(jù)扇區(qū)標識,根據(jù)所述至少一個待恢復數(shù)據(jù)扇區(qū)標識找到至少一個待恢復數(shù)據(jù)扇區(qū);獲取模塊,用于獲取所述至少一個待恢復數(shù)據(jù)扇區(qū)標識對應的至少一個備用扇區(qū)標識及文件備份,根據(jù)所述至少一個備用扇區(qū)標識找到至少一個備用扇區(qū);寫入模塊,用于將所述文件備份中與所述至少一個待恢復數(shù)據(jù)扇區(qū)存儲的相同的數(shù)據(jù),寫入到所述至少一個備用扇區(qū)。其中,所述獲取模塊包括:第一獲取單元,用于獲取所述至少一個待恢復數(shù)據(jù)扇區(qū)標識對應的至少一個備用扇區(qū)標識,根據(jù)所述至少一個備用扇區(qū)標識找到至少一個備用扇區(qū);第二獲取單元,用于根據(jù)所述至少一個待恢復數(shù)據(jù)扇區(qū)標識,獲取所述至少一個待恢復數(shù)據(jù)扇區(qū)標識對應的文件標識;第三獲取單元,用于根據(jù)所述文件標識,從所述服務器的鏡像服務器中獲取所述文件備份。其中,所述寫入模塊包括:第四獲取單元,用于獲取所述文件備份對應的所有扇區(qū),所述所有扇區(qū)包括所述至少一個待恢復數(shù)據(jù)扇區(qū);替代單元,用于將所述至少一個待恢復數(shù)據(jù)扇區(qū)用所述至少一個備用扇區(qū)替代;寫入單元,用于從所述文件備份中獲取與所述至少一個待恢復數(shù)據(jù)扇區(qū)存儲的相同的數(shù)據(jù),并將所述數(shù)據(jù)寫入到所述至少一個備用扇區(qū)中。其中,所述服務器還包括:判斷模塊,用于判斷所述硬盤的所述備用扇區(qū)是否有剩余;若無剩余,則提示更換所述硬盤。其中,所述服務器還包括:掃描模塊,用于在線或離線掃描所述硬盤。一種分布式存儲系統(tǒng),所述系統(tǒng)包括至少兩臺服務器,其中至少一臺服務器為另一臺服務器的鏡像服務器,所述另一臺服務器為前述的服務器。本發(fā)明實施例提供的技術方案帶來的有益效果是:通過接收數(shù)據(jù)恢復請求,所述請求包括至少一個待恢復數(shù)據(jù)扇區(qū)標識,根據(jù)所述至少一個待恢復數(shù)據(jù)扇區(qū)標識找到至少一個待恢復數(shù)據(jù)扇區(qū);獲取所述至少一個待恢復數(shù)據(jù)扇區(qū)標識對應的至少一個備用扇區(qū)標識及文件備份,根據(jù)所述至少一個備用扇區(qū)標識找到至少一個備用扇區(qū);由于相對于整個硬盤數(shù)據(jù),文件備份的體積比較小,獲取文件備份的速度非??欤粚⑺鑫募浞葜信c所述至少一個待恢復數(shù)據(jù)扇區(qū)存儲的相同的數(shù)據(jù),寫入到所述至少一個備用扇區(qū);能夠通過硬盤的備用扇區(qū),使待恢復數(shù)據(jù)扇區(qū)存儲的數(shù)據(jù)得到快速恢復;而不用更換整個硬盤,減少了企業(yè)運營成本。
為了更清楚地說明本發(fā)明實施例中的技術方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1是本發(fā)明實施例1中提供的一種服務器中硬盤數(shù)據(jù)恢復方法的流程圖;圖2是本發(fā)明實施例2中數(shù)據(jù)塊、文件和扇區(qū)三者的對應關系示意圖;圖3是本發(fā)明實施例2中提供的一種服務器中硬盤數(shù)據(jù)恢復方法的流程圖;圖4是本發(fā)明實施例2中提供的一種服務器中硬盤數(shù)據(jù)在線恢復方法的流程圖;圖5是本發(fā)明實施例2中提供的一種服務器中硬盤數(shù)據(jù)離線恢復方法的流程圖;圖6是本發(fā)明實施例3中提供的一種服務器的結構示意圖;圖7是本發(fā)明實施例4中提供的一種服務器的結構示意圖。
具體實施例方式為使本發(fā)明的目的、技術方案和優(yōu)點更加清楚,下面將結合附圖對本發(fā)明實施方式作進一步地詳細描述。實施例1參見圖1,本發(fā)明實施例1提供了一種服務器中硬盤數(shù)據(jù)恢復方法,具體包括:101:接收數(shù)據(jù)恢復請求,該請求包括至少一個待恢復數(shù)據(jù)扇區(qū)ID (Identity,標識),根據(jù)至少一個待恢復數(shù)據(jù)扇區(qū)ID找到至少一個待恢復數(shù)據(jù)扇區(qū)。102:獲取該至少一個待恢復數(shù)據(jù)扇區(qū)ID對應的至少一個備用扇區(qū)ID及文件備份,根據(jù)至少一個備用扇區(qū)ID找到至少一個備用扇區(qū)。103:將文件備份中與該至少一個待恢復數(shù)據(jù)扇區(qū)存儲的相同的數(shù)據(jù),寫入到至少一個備用扇區(qū)。本發(fā)明實施例提供的技術方案帶來的有益效果是:通過接收數(shù)據(jù)恢復請求,該請求包括至少一個待恢復數(shù)據(jù)扇區(qū)ID,根據(jù)至少一個待恢復數(shù)據(jù)扇區(qū)ID找到至少一個待恢復數(shù)據(jù)扇區(qū);獲取至少一個待恢復數(shù)據(jù)扇區(qū)ID對應的至少一個備用扇區(qū)ID及文件備份,根據(jù)至少一個備用扇區(qū)ID找到至少一個備用扇區(qū);由于相對于整個硬盤數(shù)據(jù),文件備份的體積比較小,獲取文件備份的速度非??欤粚⑽募浞葜信c至少一個待恢復數(shù)據(jù)扇區(qū)存儲的相同的數(shù)據(jù),寫入到至少一個備用扇區(qū);能夠通過硬盤的備用扇區(qū),使待恢復數(shù)據(jù)扇區(qū)存儲的數(shù)據(jù)得到快速恢復;而不用更換整個硬盤,減少了企業(yè)運營成本。
實施例2為便于描述本發(fā)明實施例2中的技術方案,首先對Chunk Server (數(shù)據(jù)塊服務器)進行說明。在分布式存儲系統(tǒng)中,Chunk Server用于存儲海量的用戶數(shù)據(jù)。為了提供數(shù)據(jù)保護,通常將相同的內容存儲在至少兩臺Chunk Server上,且該至少兩臺Chunk Server上的內容同步更新。該至少兩臺Chunk Server中,一臺Chunk Server被稱為主服務器,其余的Chunk Server被稱為鏡像服務器。其中,Chunk(數(shù)據(jù)塊)是Chunk Server定義的數(shù)據(jù)存儲單位。參見圖2, —方面,一個Chunk至少包括一個文件,即Chunk與存儲在本地硬盤的多個文件對應;另一方面,一個文件存儲在本地硬盤上一個扇區(qū)或至少兩個連續(xù)的扇區(qū),即一個Chunk包括許多連續(xù)的扇區(qū)?;诖耍瑓⒁妶D3 圖5,本發(fā)明實施例2提供了一種服務器中硬盤數(shù)據(jù)恢復方法,具體包括:201:在線或離線掃描硬盤。其中,在線或離線掃描硬盤,以查詢硬盤中是否存在待恢復數(shù)據(jù)的扇區(qū)。若存在待恢復數(shù)據(jù)的扇區(qū),則觸發(fā)數(shù)據(jù)恢復請求,該請求包括至少一個待恢復數(shù)據(jù)扇ID。扇區(qū)ID為扇區(qū)的邏輯地址。顯然,該邏輯地址通過計算機地址轉換后,將轉換為物理地址。其中,在線掃描硬盤具體為,Chunk Server工作時所發(fā)生的硬盤讀寫。硬盤讀寫主要是由于Chunk Server將實時與上層應用進行數(shù)據(jù)輸入/輸出。上層應用為實現(xiàn)用戶要求的某些功能,需拉取Chunk Server存儲的數(shù)據(jù)。具體地,上層引用向Chunk Server發(fā)送讀操作(數(shù)據(jù)輸出)請求,該請求包括至少一個數(shù)據(jù)存儲的扇區(qū)ID。Chunk Server收到該讀操作請求后,將根據(jù)扇區(qū)ID從扇區(qū)獲取相應的數(shù)據(jù),并將該數(shù)據(jù)返回給上層應用。當該數(shù)據(jù)存儲的扇區(qū)不能讀時,Chunk Server不能獲取相應的數(shù)據(jù),將觸發(fā)數(shù)據(jù)恢復請求,該請求包括至少一個待恢復數(shù)據(jù)扇區(qū)ID,即前述數(shù)據(jù)存儲的扇區(qū)ID。其中,離線掃描硬盤具體為硬盤的自我檢測功能。硬盤工作時,能夠自我監(jiān)測硬盤各部件的運行狀態(tài),當有異常發(fā)生的時候還能通過計算機上相應軟件發(fā)出警告。其中,硬盤的自我監(jiān)測功能是采用了相關的硬盤數(shù)據(jù)安全技術。目前普遍運用的硬盤數(shù)據(jù)安全技術為S.M.A.R.T (Self-Monitoring Analysis and Reporting Technology,自我監(jiān)測、分析及報告技術)。S.M.A.R.T提供了一種掃描功能。該掃描功能能夠對各扇區(qū)進行掃描,當發(fā)現(xiàn)不能讀寫的扇區(qū)時,能夠對這些不能讀寫的扇區(qū)進行標注和屏蔽。當Chunk Server主機硬盤空閑時,可以啟動硬盤的S.M.A.R.T的掃描功能。S.M.A.R.T發(fā)現(xiàn)不能讀的扇區(qū)時,記錄該不能讀的扇區(qū)ID ;并觸發(fā)數(shù)據(jù)恢復請求,該請求包括所有不能讀的扇區(qū)ID,即待恢復數(shù)據(jù)扇區(qū)ID。具體地,以SATA(SerialAdvanced Technology Attachment,串行高級技術附件)硬盤為例,Chunk Server啟動S.M.A.R.T 的掃描功能可使用 ATA 命令,SMART (BOH);子命令,SMART EXECUTE OFF-LINEIMMEDIATE(D4H)。202:接收數(shù)據(jù)恢復請求,該請求包括至少一個待恢復數(shù)據(jù)扇區(qū)ID,根據(jù)至少一個待恢復數(shù)據(jù)扇區(qū)ID找到至少一個待恢復數(shù)據(jù)扇區(qū)。其中,接收數(shù)據(jù)恢復請求,并獲取該請求中包括的至少一個待恢復數(shù)據(jù)扇區(qū)ID。由于一個待恢復數(shù)據(jù)扇區(qū)ID唯一標識一個待恢復數(shù)據(jù)扇區(qū),因此,根據(jù)至少一個待恢復數(shù)據(jù)扇區(qū)ID能對應找到至少一個待恢復數(shù)據(jù)扇區(qū)。203:判斷硬盤的備用扇區(qū)是否有剩余。
若有剩余,則執(zhí)行204 ;若無剩余,則執(zhí)行207。一般地,在出廠前,硬盤內部會預置一些備用扇區(qū)。該備用扇區(qū)是硬盤為損壞的扇區(qū)預留的替換扇區(qū)。容易知道,一個硬盤中備用扇區(qū)的數(shù)量是有限的。判斷硬盤的備用扇區(qū)是否有剩余,具體是檢測硬盤中備用扇區(qū)是否已被消耗完全。具體地,可為備用扇區(qū)的剩余量設定一個閾值,當備用扇區(qū)的實際剩余量大于這個閾值,則判定備用扇區(qū)有剩余,執(zhí)行204。當備用扇區(qū)的實際剩余量小于或等于這個閾值,則判定備用扇區(qū)無剩余,執(zhí)行207。進一步地,S.M.A.R.T具有管理備用扇區(qū)的功能,當備用扇區(qū)剩余量小于或等于閾值時,S.M.A.R.T能通過相應的軟件進行預警。因此,本步驟可以調用S.M.A.R.T執(zhí)行。例如,啟動一個守護進程實時檢測S.M.A.R.T警告信息;若沒有警告信息,則判定為備用扇區(qū)有剩余。204:獲取該至少一個待恢復數(shù)據(jù)扇區(qū)ID對應的至少一個備用扇區(qū)ID,根據(jù)至少一個備用扇區(qū)ID找到至少一個備用扇區(qū)。其中,若硬盤的備用扇區(qū)有剩余,則請求硬盤從剩余的備用扇區(qū)中分配與待恢復數(shù)據(jù)扇區(qū)數(shù)量相同且對應的備用扇區(qū)。硬盤根據(jù)該請求,將為該至少一個待恢復數(shù)據(jù)扇區(qū)ID分配對應的至少一個備用扇區(qū)。相應地,根據(jù)硬盤分配的至少一個備用扇區(qū),獲取該至少一個備用扇區(qū)ID,以根據(jù)至少一個備用扇區(qū)ID找到至少一個備用扇區(qū);并執(zhí)行205。205:根據(jù)該至少一個待恢復數(shù)據(jù)扇區(qū)ID,獲取該至少一個待恢復數(shù)據(jù)扇區(qū)ID對應的文件備份。其中,完成本步驟后,執(zhí)行206。進一步地,該步驟包括:2051:根據(jù)該至少一個待恢復數(shù)據(jù)扇區(qū)ID,獲取該至少一個待恢復數(shù)據(jù)扇區(qū)ID對應的文件ID。2051a:根據(jù)該至少一個待恢復數(shù)據(jù)扇區(qū)ID,獲取該至少一個待恢復數(shù)據(jù)扇區(qū)ID對應的Chunk ID。其中,待恢復數(shù)據(jù)扇區(qū)ID與Chunk ID成對應關系。Chunk Server中,每一個Chunk包括許多連續(xù)的扇區(qū);每一個Chunk與其包括的每一個扇區(qū)成對應關系。獲取至少一個待恢復數(shù)據(jù)扇區(qū)ID后,能夠根據(jù)兩者的對應關系,進一步獲取該至少一個待恢復數(shù)據(jù)扇區(qū)ID對應的Chunk ID。具體地,每一個Chunk與其包括的每一個扇區(qū)的對應關系存儲在Chunk Server中,由Chunk inode進行管理。2051b:根據(jù)該Chunk ID和該至少一個待恢復數(shù)據(jù)扇區(qū)ID,獲取該至少一個待恢復數(shù)據(jù)扇區(qū)ID對應的文件ID。其中,Chunk ID和待恢復數(shù)據(jù)扇區(qū)ID,與文件ID成對應關系。Chunk Server中,一個文件至少存儲在一個扇區(qū)上;而一個chunk包括至少一個文件。這三者的對應關系為,Chunk ID和待恢復數(shù)據(jù)扇區(qū)ID,與文件ID成對應關系。這三者的對應關系存儲在Chunk Server中,由Chunk manager進行管理。獲取該Chunk ID和待恢復數(shù)據(jù)扇區(qū)ID后,能夠根據(jù)三者的對應關系,獲取該待恢復數(shù)據(jù)扇區(qū)對應的文件ID。具體地,根據(jù)該Chunk ID,能夠獲取該Chunk包括的所有文件ID ;根據(jù)該至少一個待恢復數(shù)據(jù)扇區(qū)ID,能夠從所有文件ID中篩選出該至少一個待恢復數(shù)據(jù)扇區(qū)ID對應的文件ID。2052:根據(jù)該文件ID,從服務器的鏡像服務器中獲取該文件備份。
2052a:根據(jù)該文件ID,從服務器的鏡像服務器中獲取該文件備份對應的ChunkID。其中,該文件備份為至少一個待恢復數(shù)據(jù)扇區(qū)相對應的文件備份。其中,鏡像服務器為該文件存儲的Chunk Server對應的鏡像服務器。文件備份即存儲在鏡像服務器的Chunk中。因此,獲取文件備份之前,需首先獲取文件備份對應的Chunk ID0具體地,首先,讀取Chunk Server ID,并通過Chunk Server Master (數(shù)據(jù)塊管理服務器)獲取鏡像服務器ID。在分布式存儲系統(tǒng)中,Chunk Server Master用于管理所有的Chunk Server的運行情況,包括Chunk Server、及對應的鏡像服務器的對應關系。其次,根據(jù)該文件ID,從鏡像服務器中獲取文件備份對應的Chunk ID。2052b:根據(jù)該文件備份對應的Chunk ID,獲取該文件備份。其中,獲取文件備份對應的Chunk ID后,將根據(jù)該文件ID,從Chunk中獲取該文件對應的文件備份。具體地,可從Chunk中復制該文件備份。206:將文件備份中與該至少一個待恢復數(shù)據(jù)扇區(qū)存儲的相同的數(shù)據(jù),寫入到備用扇區(qū)。進一步地,本步驟具體包括:2061:獲取該文件備份對應的所有扇區(qū)。其中,該所有扇區(qū)包括該至少一個待恢復數(shù)據(jù)扇區(qū)。其中,文件備份對應的所有扇區(qū),即為該文件備份的原文件對應的所有扇區(qū)。獲取原文件對應的所有扇區(qū),具體地,根據(jù)2051獲取的文件ID,能夠在文件-扇區(qū)對應表中,獲取該文件對應的所有扇區(qū)的ID ;所有扇區(qū)的ID包括該至少一個待恢復數(shù)據(jù)扇區(qū)ID。文件-扇區(qū)對應表,包括每一個文件與存儲的所有扇區(qū)的對應關系。進一步地,文件-扇區(qū)對應表中,還存儲有該文件對應的所有扇區(qū)之間的存儲與讀取數(shù)據(jù)的先后關系。該對應表存儲在Chunk Server中。容易知道,當有文件寫入硬盤時,硬盤將根據(jù)文件的體積分配相應的扇區(qū)數(shù)量。并且,文件與存儲的所有扇區(qū)的對應關系將增加到文件-扇區(qū)對應表中。值得說明的是,本步驟可在2051后執(zhí)行。2062:將該至少一個待恢復數(shù)據(jù)扇區(qū)用至少一個備用扇區(qū)替代。其中,獲取該文件對應的所有扇區(qū)后,將所有扇區(qū)中至少一個待恢復數(shù)據(jù)扇區(qū)用至少一個備用扇區(qū)替代。即,將該文件與至少一個待恢復數(shù)據(jù)扇區(qū)的對應關系,重新分配為該文件與至少一個備用扇區(qū)的對應關系。具體地,在前述文件-扇區(qū)對應表中,將待恢復數(shù)據(jù)扇區(qū)ID更新為備用扇區(qū)ID。2063:從文件備份中獲取與至少一個待恢復數(shù)據(jù)扇區(qū)存儲的相同的數(shù)據(jù),并將該數(shù)據(jù)寫入到至少一個備用扇區(qū)中。其中,將文件備份寫入到替代后的所有扇區(qū)中,即用文件備份覆蓋原文件;使文件備份中與至少一個待恢復數(shù)據(jù)扇區(qū)相對應的數(shù)據(jù)寫入到至少一個備用扇區(qū)。顯然,當后續(xù)需要讀取待恢復數(shù)據(jù)扇區(qū)對應的數(shù)據(jù)時,從備用扇區(qū)中讀取該數(shù)據(jù)。其中,由于僅重寫受壞扇區(qū)影響的文件,不需要恢復整個硬盤數(shù)據(jù),恢復過程取決于文件大小。按照互聯(lián)網(wǎng)圖片的典型大小200KB計算,僅需要不到I秒即可完成修復,提高了硬盤數(shù)據(jù)恢復效率。值得說明的是,205的內容可以由S.M.A.R.T的重映射功能實現(xiàn)。因此,本步驟可以調用S.M.A.R.T執(zhí)行,在此不再詳述。207:提示更換硬盤。其中,若硬盤上的預留扇區(qū)已經消耗完畢,這時硬盤不能分配預留扇區(qū),將退出數(shù)據(jù)恢復流程,并提示管理員更換Chunk Server的硬盤。本發(fā)明實施例提供的技術方案帶來的有益效果是:通過接收數(shù)據(jù)恢復請求,該請求包括至少一個待恢復數(shù)據(jù)扇區(qū)ID,根據(jù)至少一個待恢復數(shù)據(jù)扇區(qū)ID找到至少一個待恢復數(shù)據(jù)扇區(qū);獲取至少一個待恢復數(shù)據(jù)扇區(qū)ID對應的至少一個備用扇區(qū)ID及文件備份,根據(jù)至少一個備用扇區(qū)ID找到至少一個備用扇區(qū);由于相對于整個硬盤數(shù)據(jù),文件備份的體積比較小,獲取文件備份的速度非??欤粚⑽募浞葜信c至少一個待恢復數(shù)據(jù)扇區(qū)存儲的相同的數(shù)據(jù),寫入到至少一個備用扇區(qū);能夠通過硬盤的備用扇區(qū),使待恢復數(shù)據(jù)扇區(qū)存儲的數(shù)據(jù)得到快速恢復;而不用更換整個硬盤,減少了企業(yè)運營成本。實施例3參見圖6,本發(fā)明實施例3提供了一種服務器,具體包括:接收模塊301,用于接收數(shù)據(jù)恢復請求,該請求包括至少一個待恢復數(shù)據(jù)扇區(qū)ID,根據(jù)至少一個待恢復數(shù)據(jù)扇區(qū)ID找到至少一個待恢復數(shù)據(jù)扇區(qū)。獲取模塊302,用于獲取至少一個待恢復數(shù)據(jù)扇區(qū)ID對應的至少一個備用扇區(qū)ID及文件備份,根據(jù)至少一個備用扇區(qū)ID找到至少一個備用扇區(qū)。寫入模塊303,用于將文件備份中與至少一個待恢復數(shù)據(jù)扇區(qū)相對應的數(shù)據(jù),寫入到至少一個備用扇區(qū)。本發(fā)明實施例提供的技術方案帶來的有益效果是:通過接收數(shù)據(jù)恢復請求,該請求包括至少一個待恢復數(shù)據(jù)扇區(qū)ID,根據(jù)至少一個待恢復數(shù)據(jù)扇區(qū)ID找到至少一個待恢復數(shù)據(jù)扇區(qū);獲取至少一個待恢復數(shù)據(jù)扇區(qū)ID對應的至少一個備用扇區(qū)ID及文件備份,根據(jù)至少一個備用扇區(qū)ID找到至少一個備用扇區(qū);由于相對于整個硬盤數(shù)據(jù),文件備份的體積比較小,獲取文件備份的速度非??欤粚⑽募浞葜信c至少一個待恢復數(shù)據(jù)扇區(qū)存儲的相同的數(shù)據(jù),寫入到至少一個備用扇區(qū);能夠通過硬盤的備用扇區(qū),使待恢復數(shù)據(jù)扇區(qū)存儲的數(shù)據(jù)得到快速恢復;而不用更換整個硬盤,減少了企業(yè)運營成本。實施例4參見圖7,本發(fā)明實施例4提供了一種服務器,具體包括:接收模塊401,用于接收數(shù)據(jù)恢復請求,該請求包括至少一個待恢復數(shù)據(jù)扇區(qū)ID,根據(jù)至少一個待恢復數(shù)據(jù)扇區(qū)ID找到至少一個待恢復數(shù)據(jù)扇區(qū)。獲取模塊402,用于獲取至少一個待恢復數(shù)據(jù)扇區(qū)ID對應的至少一個備用扇區(qū)ID及文件備份,根據(jù)至少一個備用扇區(qū)ID找到至少一個備用扇區(qū)。其中,獲取模塊402包括:第一獲取單元4021,用于獲取至少一個待恢復數(shù)據(jù)扇區(qū)ID對應的至少一個備用扇區(qū)ID,根據(jù)至少一個備用扇區(qū)ID找到至少一個備用扇區(qū)。第二獲取單元4022,用于根據(jù)至少一個待恢復數(shù)據(jù)扇區(qū)ID,獲取至少一個待恢復數(shù)據(jù)扇區(qū)ID對應的文件ID。第三獲取單元4023,用于根據(jù)文件ID,從服務器的鏡像服務器中獲取文件備份。寫入模塊403,用于將文件備份中與至少一個待恢復數(shù)據(jù)扇區(qū)存儲的相同的數(shù)據(jù),寫入到備用扇區(qū)。其中,寫入模塊403包括:第四獲取單元4031,用于獲取文件備份對應的所有扇區(qū);該所有扇區(qū)的包括至少一個待恢復數(shù)據(jù)扇區(qū)。替代單元4032,用于將至少一個待恢復數(shù)據(jù)扇區(qū)用至少一個備用扇區(qū)替代。寫入單元4033,用于從文件備份中獲取與至少一個待恢復數(shù)據(jù)扇區(qū)存儲的相同的數(shù)據(jù),并將該數(shù)據(jù)寫入到至少一個備用扇區(qū)中。其中,該服務器還包括:判斷模塊404,用于判斷硬盤的備用扇區(qū)是否有剩余;若無剩余,則提示更換該硬盤。相應地,第一獲取單元4021還用于,若有剩余,則獲取至少一個待恢復數(shù)據(jù)扇區(qū)ID對應的至少一個備用扇區(qū)ID。其中,該服務器還包括:掃描模塊405,用于在線或離線掃描硬盤。本發(fā)明實施例提供的技術方案帶來的有益效果是:通過接收數(shù)據(jù)恢復請求,該請求包括至少一個待恢復數(shù)據(jù)扇區(qū)ID,根據(jù)至少一個待恢復數(shù)據(jù)扇區(qū)ID找到至少一個待恢復數(shù)據(jù)扇區(qū);獲取至少一個待恢復數(shù)據(jù)扇區(qū)ID對應的至少一個備用扇區(qū)ID及文件備份,根據(jù)至少一個備用扇區(qū)ID找到至少一個備用扇區(qū);由于相對于整個硬盤數(shù)據(jù),文件備份的體積比較小,獲取文件備份的速度非常快;將文件備份中與至少一個待恢復數(shù)據(jù)扇區(qū)存儲的相同的數(shù)據(jù),寫入到至少一個備用扇區(qū);能夠通過硬盤的備用扇區(qū),使待恢復數(shù)據(jù)扇區(qū)存儲的數(shù)據(jù)得到快速恢復;而不用更換整個硬盤,減少了企業(yè)運營成本。實施例5本發(fā)明實施例5提供了一種分布式存儲系統(tǒng),該系統(tǒng)具體包括至少兩臺服務器,其中至少一臺服務器為另一臺服務器的鏡像服務器;該另一臺服務器為本發(fā)明實施例3或實施例4中的服務器。本發(fā)明實施例提供的技術方案帶來的有益效果是:通過接收數(shù)據(jù)恢復請求,該請求包括至少一個待恢復數(shù)據(jù)扇區(qū)ID,根據(jù)至少一個待恢復數(shù)據(jù)扇區(qū)ID找到至少一個待恢復數(shù)據(jù)扇區(qū);獲取至少一個待恢復數(shù)據(jù)扇區(qū)ID對應的至少一個備用扇區(qū)ID及文件備份,根據(jù)至少一個備用扇區(qū)ID找到至少一個備用扇區(qū);由于相對于整個硬盤數(shù)據(jù),文件備份的體積比較小,獲取文件備份的速度非常快;將文件備份中與至少一個待恢復數(shù)據(jù)扇區(qū)存儲的相同的數(shù)據(jù),寫入到至少一個備用扇區(qū);能夠通過硬盤的備用扇區(qū),使待恢復數(shù)據(jù)扇區(qū)存儲的數(shù)據(jù)得到快速恢復;而不用更換整個硬盤,減少了企業(yè)運營成本。本領域普通技術人員可以理解實現(xiàn)上述實施例的全部或部分步驟可以通過硬件來完成,也可以通過程序來指令相關的硬件完成,所述的程序可以存儲于一種計算機可讀存儲介質中,上述提到的存儲介質可以是只讀存儲器,磁盤或光盤等。以上所述僅為本發(fā)明的較佳實施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內。
權利要求
1.一種服務器中硬盤數(shù)據(jù)恢復方法,其特征在于,所述方法包括:接收數(shù)據(jù)恢復請求,所述請求包括至少一個待恢復數(shù)據(jù)扇區(qū)標識,根據(jù)所述至少一個待恢復數(shù)據(jù)扇區(qū)標識找到至少一個待恢復數(shù)據(jù)扇區(qū);獲取所述至少一個待恢復數(shù)據(jù)扇區(qū)標識對應的至少一個備用扇區(qū)標識及文件備份,根據(jù)所述至少一個備用扇區(qū)標識找到至少一個備用扇區(qū);將所述文件備份中與所述至少一個待恢復數(shù)據(jù)扇區(qū)存儲的相同的數(shù)據(jù),寫入到所述至少一個備用扇區(qū)。
2.如權利要求1所述的方法,其特征在于,所述獲取至少一個所述待恢復數(shù)據(jù)扇區(qū)標識對應的文件備份,具體包括:根據(jù)所述至少一個待恢復數(shù)據(jù)扇區(qū)標識,獲取所述至少一個待恢復數(shù)據(jù)扇區(qū)標識對應的文件標識;根據(jù)所述文件標識,從所述服務器的鏡像服務器中獲取所述文件備份。
3.如權利要求1所述的方法,其特征在于,所述將所述文件備份中與所述至少一個待恢復數(shù)據(jù)扇區(qū)存儲的相同的數(shù)據(jù),寫入到所述至少一個備用扇區(qū),具體包括:獲取所述文件備份對應的所有扇區(qū),所述所有扇區(qū)包括所述至少一個待恢復數(shù)據(jù)扇區(qū);將所述至少一個待恢復數(shù)據(jù)扇區(qū)用所述至少一個備用扇區(qū)替代;從所述文件備份中獲取與所述至少一個待恢復數(shù)據(jù)扇區(qū)存儲的相同的數(shù)據(jù),并將所述數(shù)據(jù)寫入到所述至少一個備用扇區(qū)中。
4.如權利要求1所述的方法,其特征在于,所述接收數(shù)據(jù)恢復請求之后,還包括: 判斷所述硬盤的所述備用扇區(qū)是否有剩余; 若無剩余,則提示更換所述硬盤。
5.如權利要求1所述的方法,其特征在于,接收數(shù)據(jù)恢復請求之前,還包括:在線或離線掃描所述硬盤。
6.一種服務器,其特征在于,所述服務器包括:接收模塊,用于接收數(shù)據(jù)恢復請求,所述請求包括至少一個待恢復數(shù)據(jù)扇區(qū)標識,根據(jù)所述至少一個待恢復數(shù)據(jù)扇區(qū)標識找到至少一個待恢復數(shù)據(jù)扇區(qū);獲取模塊,用于獲取所述至少一個待恢復數(shù)據(jù)扇區(qū)標識對應的至少一個備用扇區(qū)標識及文件備份,根據(jù)所述至少一個備用扇區(qū)標識找到至少一個備用扇區(qū);寫入模塊,用于將所述文件備份中與所述至少一個待恢復數(shù)據(jù)扇區(qū)存儲的相同的數(shù)據(jù),寫入到所述至少一個備用扇區(qū)。
7.如權利要求6所述的服務器,其特征在于,所述獲取模塊包括:第一獲取單元,用于獲取所述至少一個待恢復數(shù)據(jù)扇區(qū)標識對應的至少一個備用扇區(qū)標識,根據(jù)所述至少一個備用扇區(qū)標識找到至少一個備用扇區(qū);第二獲取單元,用于根據(jù)所述至少一個待恢復數(shù)據(jù)扇區(qū)標識,獲取所述至少一個待恢復數(shù)據(jù)扇區(qū)標識對應的文件標識;第三獲取單元,用于根據(jù)所述文件標識,從所述服務器的鏡像服務器中獲取所述文件備份。
8.如權利要求6所述的服務器,其特征在于,所述寫入模塊包括:第四獲取單元,用于獲取所述文件備份對應的所有扇區(qū),所述所有扇區(qū)包括所述至少一個待恢復數(shù)據(jù)扇區(qū);替代單元,用于將所述至少一個待恢復數(shù)據(jù)扇區(qū)用所述至少一個備用扇區(qū)替代;寫入單元,用于從所述文件備份中獲取與所述至少一個待恢復數(shù)據(jù)扇區(qū)存儲的相同的數(shù)據(jù),并將所述數(shù)據(jù)寫入到所述至少一個備用扇區(qū)中。
9.如權利要求6所述的服務器,其特征在于,所述服務器還包括:判斷模塊,用于判斷所述硬盤的所述備用扇區(qū)是否有剩余;若無剩余,則提示更換所述硬盤。
10.如權利要求6所述的服務器,其特征在于,所述服務器還包括:掃描模塊,用于在線或離線掃描所述硬盤。
11.一種分布式存儲系統(tǒng),其特征在于,所述系統(tǒng)包括至少兩臺服務器,其中至少一臺服務器為另一臺服務器的鏡像服務器,所述另一臺服務器 為權利要求6 10任一項所述的服務器。
全文摘要
本發(fā)明公開了一種硬盤數(shù)據(jù)恢復方法、服務器及分布式存儲系統(tǒng),屬于計算機領域。方法包括接收數(shù)據(jù)恢復請求,請求包括至少一個待恢復數(shù)據(jù)扇區(qū)ID,根據(jù)至少一個待恢復數(shù)據(jù)扇區(qū)標識找到至少一個待恢復數(shù)據(jù)扇區(qū);獲取至少一個待恢復數(shù)據(jù)扇區(qū)ID對應的至少一個備用扇區(qū)ID及文件備份,根據(jù)至少一個備用扇區(qū)標識找到至少一個備用扇區(qū);將文件備份中與至少一個待恢復數(shù)據(jù)扇區(qū)存儲的相同的數(shù)據(jù),寫入到至少一個備用扇區(qū)。服務器包括接收模塊、獲取模塊和寫入模塊。系統(tǒng)包括至少兩臺服務器,其中至少一臺服務器為另一臺服務器的鏡像服務器;另一臺服務器為前述服務器。通過本發(fā)明的技術方案,能夠快速恢復硬盤數(shù)據(jù),并減少企業(yè)運營成本。
文檔編號G06F11/14GK103218273SQ20121001885
公開日2013年7月24日 申請日期2012年1月20日 優(yōu)先權日2012年1月20日
發(fā)明者黃海兵, 婁繼冰, 陳杰 申請人:深圳市騰訊計算機系統(tǒng)有限公司