一種基于分布式文件系統(tǒng)的數(shù)據(jù)恢復(fù)方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及分布式文件系統(tǒng)領(lǐng)域,尤其涉及一種基于分布式文件系統(tǒng)的數(shù)據(jù)恢復(fù) 方法及裝置。
【背景技術(shù)】
[0002] 隨著因特網(wǎng)的快速發(fā)展,因特網(wǎng)上的數(shù)據(jù)將呈現(xiàn)爆發(fā)式的增長(zhǎng),而存儲(chǔ)這些海量 數(shù)據(jù)的分布式文件系統(tǒng)(DistributedFileSystem,DFS)往往會(huì)因?yàn)榈讓佑布疟P(pán)損壞 以及系統(tǒng)故障等不可預(yù)知的原因造成部分?jǐn)?shù)據(jù)被損壞,進(jìn)而導(dǎo)致部分文件不可讀取。一旦 出現(xiàn)被損壞的文件,DFS會(huì)根據(jù)損壞文件的元數(shù)據(jù)信息重新恢復(fù)被損壞的文件,從而保證在 DFS內(nèi)數(shù)據(jù)的安全性。
[0003] 目前主流的DFS往往采用硬件磁盤(pán)陣列(RedundantArrayofIndependent Disk,RAID)磁盤(pán)的方式或者文件副本的方式進(jìn)行文件的存儲(chǔ)。其中,對(duì)于采用硬件RAID磁 盤(pán)的方式進(jìn)行文件存儲(chǔ)的這種方法,當(dāng)構(gòu)成RAID磁盤(pán)組中的某塊磁盤(pán)損壞后,則存儲(chǔ)在該 損壞磁盤(pán)上的所有文件都將失效,此時(shí)必須人為的手動(dòng)插入一塊磁盤(pán)以重新組成RAID磁 盤(pán)組來(lái)恢復(fù)受損的文件,因此需要人為的干預(yù)。對(duì)于采用文件副本的方式進(jìn)行文件存儲(chǔ)的 這種方法,如果當(dāng)某塊磁盤(pán)被受損后,則該損壞磁盤(pán)上的所有文件都將失效,此時(shí)必須根據(jù) 元數(shù)據(jù)信息從其他某塊單獨(dú)的磁盤(pán)讀取原來(lái)文件的備份信息來(lái)進(jìn)行恢復(fù),但是此種情況恢 復(fù)速度往往受限于單個(gè)磁盤(pán)的讀取和寫(xiě)入速度,顯然,受損文件恢復(fù)過(guò)程比較長(zhǎng),此外如果 系統(tǒng)副本數(shù)據(jù)分布不均衡的話,例如,同一磁盤(pán)的多個(gè)副本集中存儲(chǔ)某個(gè)磁盤(pán),則受損文件 的恢復(fù)過(guò)程會(huì)更長(zhǎng)。
[0004] 總之,現(xiàn)有技術(shù)中采用RAID磁盤(pán)的方式進(jìn)行文件存儲(chǔ)在數(shù)據(jù)恢復(fù)過(guò)程中,需要人 工更換磁盤(pán),會(huì)導(dǎo)致數(shù)據(jù)無(wú)法及時(shí)恢復(fù),采用文件副本的方式進(jìn)行文件存儲(chǔ)在數(shù)據(jù)恢復(fù)過(guò) 程中,由于單個(gè)磁盤(pán)的讀寫(xiě)速度較慢以及系統(tǒng)副本數(shù)據(jù)分布不均衡時(shí),導(dǎo)致數(shù)據(jù)恢復(fù)過(guò)程 耗時(shí)較長(zhǎng),降低了數(shù)據(jù)恢復(fù)效率。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明實(shí)施例提供一種基于分布式文件系統(tǒng)的數(shù)據(jù)恢復(fù)方法及裝置,用以解決現(xiàn) 有技術(shù)中采用RAID磁盤(pán)的方式進(jìn)行文件存儲(chǔ)在數(shù)據(jù)恢復(fù)過(guò)程中,需要人工更換磁盤(pán),導(dǎo)致 的數(shù)據(jù)無(wú)法及時(shí)恢復(fù)的問(wèn)題,以及采用文件副本的方式進(jìn)行文件存儲(chǔ)在數(shù)據(jù)恢復(fù)過(guò)程中, 由于單個(gè)磁盤(pán)的讀寫(xiě)速度較慢以及系統(tǒng)副本數(shù)據(jù)分布不均衡,導(dǎo)致數(shù)據(jù)恢復(fù)過(guò)程耗時(shí)較 長(zhǎng),降低了數(shù)據(jù)恢復(fù)效率的問(wèn)題。
[0006] 本發(fā)明實(shí)施例提供的具體技術(shù)方案如下:
[0007] -種基于分布式文件系統(tǒng)的數(shù)據(jù)恢復(fù)方法,包括:
[0008] 元數(shù)據(jù)服務(wù)器確定存儲(chǔ)于任意一個(gè)數(shù)據(jù)服務(wù)器中的一個(gè)真實(shí)數(shù)據(jù)片發(fā)生異常時(shí), 確定發(fā)生異常的真實(shí)數(shù)據(jù)片所歸屬的數(shù)據(jù)塊中其它所有正常的真實(shí)數(shù)據(jù)片和校驗(yàn)數(shù)據(jù) 片;
[0009] 元數(shù)據(jù)服務(wù)器獲取每一個(gè)數(shù)據(jù)服務(wù)器的負(fù)載信息,并根據(jù)所述每一個(gè)數(shù)據(jù)服務(wù)器 的負(fù)載信息,計(jì)算所述每一個(gè)數(shù)據(jù)服務(wù)器的富于負(fù)載能力;
[0010] 元數(shù)據(jù)服務(wù)器根據(jù)所述每一個(gè)數(shù)據(jù)服務(wù)器的富于負(fù)載能力,在所有數(shù)據(jù)服務(wù)器中 篩選出數(shù)據(jù)片恢復(fù)數(shù)據(jù)服務(wù)器;
[0011] 元數(shù)據(jù)服務(wù)器根據(jù)所述發(fā)生異常的真實(shí)數(shù)據(jù)片所歸屬的數(shù)據(jù)塊中的其它所有正 常的真實(shí)數(shù)據(jù)片和校驗(yàn)數(shù)據(jù)片,在所述數(shù)據(jù)片恢復(fù)數(shù)據(jù)服務(wù)器中恢復(fù)所述發(fā)生異常的真實(shí) 數(shù)據(jù)片。
[0012] 通過(guò)這種方法,綜合考慮各個(gè)數(shù)據(jù)節(jié)點(diǎn)間由于硬件配置的不同造成的承受負(fù)載能 力的不同,并在數(shù)據(jù)恢復(fù)過(guò)程中,通過(guò)從多個(gè)數(shù)據(jù)服務(wù)器讀取數(shù)據(jù)恢復(fù)異常數(shù)據(jù),最大限度 的節(jié)省了數(shù)據(jù)恢復(fù)的時(shí)間,提高了數(shù)據(jù)恢復(fù)的效率。
[0013] 較佳地,該方法進(jìn)一步包括:
[0014] 元數(shù)據(jù)服務(wù)器在存儲(chǔ)一數(shù)據(jù)塊時(shí),根據(jù)預(yù)設(shè)的數(shù)據(jù)大小,將所述數(shù)據(jù)塊分割為第 一設(shè)定數(shù)目的數(shù)據(jù)片,其中,第一設(shè)定數(shù)目的數(shù)據(jù)片中包括第二設(shè)定數(shù)目的真實(shí)數(shù)據(jù)片和 第三設(shè)定數(shù)目的校驗(yàn)數(shù)據(jù)片;
[0015] 分別將所述數(shù)據(jù)塊中的每一個(gè)數(shù)據(jù)片保存至對(duì)應(yīng)的數(shù)據(jù)服務(wù)器。
[0016] 通過(guò)這種方法,將文件分割為數(shù)據(jù)塊后,再將數(shù)據(jù)塊分割為數(shù)據(jù)片,并且每個(gè)數(shù)據(jù) 片分別存儲(chǔ)于不同的數(shù)據(jù)服務(wù)器中,這樣,數(shù)據(jù)片粒度較小,在數(shù)據(jù)恢復(fù)過(guò)程中,是通過(guò)存 儲(chǔ)于其他數(shù)據(jù)服務(wù)器中的數(shù)據(jù)片進(jìn)行恢復(fù)的,可以避免文件副本受限于單個(gè)磁盤(pán)的讀取和 寫(xiě)入的速度,使恢復(fù)速度更快。
[0017] 較佳地,元數(shù)據(jù)服務(wù)器確定存儲(chǔ)于任意一個(gè)數(shù)據(jù)服務(wù)器中的一個(gè)真實(shí)數(shù)據(jù)片發(fā)生 異常,包括:
[0018] 元數(shù)據(jù)服務(wù)器檢測(cè)到所述任意一個(gè)數(shù)據(jù)服務(wù)器發(fā)生異常時(shí),確定存儲(chǔ)于該任意一 個(gè)數(shù)據(jù)服務(wù)器中的全部真實(shí)數(shù)據(jù)片發(fā)生異常;或者
[0019] 元數(shù)據(jù)服務(wù)器接收客戶(hù)端上報(bào)的第一類(lèi)異常消息時(shí),確定存儲(chǔ)于該任意一個(gè)數(shù)據(jù) 服務(wù)器中的一個(gè)真實(shí)數(shù)據(jù)片發(fā)生異常,其中,所述第一類(lèi)異常消息為所述客戶(hù)端在讀寫(xiě)所 述真實(shí)數(shù)據(jù)片所歸屬的數(shù)據(jù)塊,根據(jù)所述數(shù)據(jù)塊中的校驗(yàn)數(shù)據(jù)片確定所述真實(shí)數(shù)據(jù)片發(fā)生 異常時(shí),上報(bào)至元數(shù)據(jù)服務(wù)器的;或者
[0020] 元數(shù)據(jù)服務(wù)器接收所述任一個(gè)數(shù)據(jù)服務(wù)器上報(bào)的第二類(lèi)異常消息時(shí),確定存儲(chǔ)于 該任意一個(gè)數(shù)據(jù)服務(wù)器中的一個(gè)真實(shí)數(shù)據(jù)片發(fā)生異常,其中,所述第二類(lèi)異常消息為所述 任意一個(gè)數(shù)據(jù)服務(wù)器根據(jù)所述真實(shí)數(shù)據(jù)片所歸屬的數(shù)據(jù)塊中的其它真實(shí)數(shù)據(jù)片和校驗(yàn)數(shù) 據(jù)片確定所述真實(shí)數(shù)據(jù)片發(fā)生異常時(shí),上報(bào)至元數(shù)據(jù)服務(wù)器的。
[0021] 通過(guò)這種方法,元數(shù)據(jù)服務(wù)器可以實(shí)時(shí)的確定發(fā)生異常的數(shù)據(jù)片,從而保證了對(duì) 發(fā)生異常的數(shù)據(jù)進(jìn)行恢復(fù)的實(shí)時(shí)性。
[0022] 較佳地,元數(shù)據(jù)服務(wù)器獲取任意一個(gè)數(shù)據(jù)服務(wù)器的負(fù)載信息,包括:
[0023] 元數(shù)據(jù)服務(wù)器按照第一查詢(xún)周期查詢(xún)所述任意一個(gè)數(shù)據(jù)服務(wù)器的負(fù)載信息;或者
[0024] 元數(shù)據(jù)服務(wù)器接收在所述任意一個(gè)數(shù)據(jù)服務(wù)器按照第二判斷周期計(jì)算所述任意 一個(gè)數(shù)據(jù)服務(wù)器的負(fù)載變化率,判定所述負(fù)載變化率超過(guò)設(shè)定負(fù)載變化率閾值時(shí),上報(bào)的 所述任意一個(gè)數(shù)據(jù)服務(wù)器的負(fù)載信息。
[0025] 通過(guò)這種方法,元數(shù)據(jù)服務(wù)器可以在保證計(jì)算壓力的情況下實(shí)時(shí)的獲取每個(gè)數(shù)據(jù) 服務(wù)器的負(fù)載信息變化。
[0026] 較佳地,元數(shù)據(jù)服務(wù)器獲取每一個(gè)數(shù)據(jù)服務(wù)器的負(fù)載信息,包括:
[0027] 元數(shù)據(jù)服務(wù)器獲取每一個(gè)數(shù)據(jù)服務(wù)器的中央處理器CPU剩余使用率、內(nèi)存剩余使 用率、磁盤(pán)剩余容量、網(wǎng)絡(luò)剩余帶寬以及磁盤(pán)讀寫(xiě)速度。
[0028] 通過(guò)這種方法,元數(shù)據(jù)服務(wù)器可以獲取每個(gè)數(shù)據(jù)服務(wù)器的負(fù)載信息的參數(shù)。
[0029] 較佳地,元數(shù)據(jù)服務(wù)器根據(jù)任意一個(gè)數(shù)據(jù)服務(wù)器的負(fù)載信息,計(jì)算所述任意一個(gè) 數(shù)據(jù)服務(wù)器的富于負(fù)載能力,包括:
[0030] 元數(shù)據(jù)服務(wù)器根據(jù)分別針對(duì)負(fù)載信息中的CPU剩余使用率、內(nèi)存剩余使用率、磁 盤(pán)剩余容量、網(wǎng)絡(luò)剩余帶寬、磁盤(pán)讀寫(xiě)速度預(yù)設(shè)的權(quán)重,對(duì)所述任意一個(gè)數(shù)據(jù)服務(wù)器的CPU 剩余使用率、內(nèi)存剩余使用率、磁盤(pán)剩余容量、網(wǎng)絡(luò)剩余帶寬、磁盤(pán)讀寫(xiě)速度進(jìn)行加權(quán)和運(yùn) 算,得到所述任意一個(gè)數(shù)據(jù)服務(wù)器的富于負(fù)載能力。
[0031] 通過(guò)這種方法,可以準(zhǔn)確的得到每一個(gè)數(shù)據(jù)服務(wù)器的富于負(fù)載能力。
[0032] 較佳地,元數(shù)據(jù)服務(wù)器根據(jù)所述每一個(gè)數(shù)據(jù)服務(wù)器的富于負(fù)載能力,在所有數(shù)據(jù) 服務(wù)器中篩選出數(shù)據(jù)片恢復(fù)數(shù)據(jù)服務(wù)器,包括:
[0033] 元數(shù)據(jù)服務(wù)器在所有數(shù)據(jù)服務(wù)器中篩選出不包含所述發(fā)生異常的真實(shí)數(shù)據(jù)片所 歸屬的數(shù)據(jù)塊中的真實(shí)數(shù)據(jù)片和校驗(yàn)數(shù)據(jù)片的數(shù)據(jù)服務(wù)器作為備選數(shù)據(jù)服務(wù)器;
[0034] 元數(shù)據(jù)服務(wù)器在所述備選數(shù)據(jù)服務(wù)器中篩選出富于負(fù)載能力值最大的數(shù)據(jù)服務(wù) 器作為數(shù)據(jù)片恢復(fù)數(shù)據(jù)服務(wù)器。
[0035] 采用這種方法,在不包含異常數(shù)據(jù)片相關(guān)的數(shù)據(jù)片所在的數(shù)據(jù)服務(wù)器中進(jìn)行數(shù)據(jù) 恢復(fù),保證了一個(gè)數(shù)據(jù)塊中的每個(gè)數(shù)據(jù)片均占用不同的數(shù)據(jù)服務(wù)器,可以通過(guò)從多個(gè)數(shù)據(jù) 服務(wù)器讀取數(shù)據(jù)恢復(fù)異常數(shù)據(jù),最大限度的節(jié)省了數(shù)據(jù)恢復(fù)的時(shí)間,提高了數(shù)據(jù)恢復(fù)的效 率。
[0036] -種基于分布式文件系統(tǒng)的數(shù)據(jù)恢復(fù)裝置,包括:
[0037] 確定單元,用于確定存儲(chǔ)于任意一個(gè)數(shù)據(jù)服務(wù)器中的一個(gè)真實(shí)數(shù)據(jù)片發(fā)生異常 時(shí),確定發(fā)生異常的真實(shí)數(shù)據(jù)片所歸屬的數(shù)據(jù)塊中其它所有正常的真實(shí)數(shù)據(jù)片和校驗(yàn)數(shù)據(jù) 片;
[0038] 計(jì)算單元,用于獲取每一個(gè)數(shù)據(jù)服務(wù)器的負(fù)載信息,并根據(jù)所述每一個(gè)數(shù)據(jù)服務(wù) 器的負(fù)載信息,計(jì)算所述每一個(gè)數(shù)據(jù)服務(wù)器的富于負(fù)載能力;
[0039] 篩選單元,用于根據(jù)所述每一個(gè)數(shù)據(jù)服務(wù)器的富于負(fù)載能力,在所有數(shù)據(jù)服務(wù)器 中篩選出數(shù)據(jù)片恢復(fù)數(shù)據(jù)服務(wù)器;
[0040] 恢復(fù)單元,用于根據(jù)所述發(fā)生異常的真實(shí)數(shù)據(jù)片所歸屬的數(shù)據(jù)塊中的其它所有正 常的真實(shí)數(shù)據(jù)片和校驗(yàn)數(shù)據(jù)片,在所述數(shù)據(jù)片恢復(fù)數(shù)據(jù)服務(wù)器中恢復(fù)所述發(fā)生異常的真實(shí) 數(shù)據(jù)片。
[0041] 這樣,綜合考慮各個(gè)數(shù)據(jù)節(jié)點(diǎn)間由于硬件配置的不同造成的承受負(fù)載能力的不 同,并在數(shù)據(jù)恢復(fù)過(guò)程中,通過(guò)從多個(gè)數(shù)據(jù)服務(wù)器讀取數(shù)據(jù)恢復(fù)異常數(shù)據(jù),最大限度的節(jié)省 了數(shù)據(jù)恢復(fù)的時(shí)間,提高了數(shù)據(jù)恢復(fù)的效率。
[0042] 較佳地,該裝置進(jìn)一步包括:
[0043] 分割單元,用于在存儲(chǔ)一數(shù)據(jù)塊時(shí),根據(jù)預(yù)設(shè)的數(shù)據(jù)大小,將所述數(shù)據(jù)塊分割為第 一設(shè)定數(shù)目的數(shù)據(jù)片,其中,第一設(shè)定數(shù)目的數(shù)據(jù)片中包括第二設(shè)定數(shù)目的真實(shí)數(shù)據(jù)片和 第三設(shè)定數(shù)目的校驗(yàn)數(shù)據(jù)片;
[0044] 保存單元,用于分別將所述數(shù)據(jù)塊中的每一個(gè)數(shù)據(jù)片保存至對(duì)應(yīng)的數(shù)據(jù)服務(wù)器。
[0045] 這樣,將文件分割為數(shù)據(jù)塊后,再將數(shù)據(jù)塊分割為數(shù)據(jù)片,并且每個(gè)數(shù)據(jù)片分別存 儲(chǔ)于不同的數(shù)據(jù)服務(wù)器中,數(shù)據(jù)片粒度較小,在數(shù)據(jù)恢復(fù)過(guò)程中,是通過(guò)存儲(chǔ)于其他數(shù)據(jù)服 務(wù)器中的數(shù)據(jù)片進(jìn)行恢復(fù)的,可以避免文件副本受