亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種文件修復(fù)方法及裝置與流程

文檔序號:12665101閱讀:212來源:國知局
一種文件修復(fù)方法及裝置與流程

本發(fā)明涉及存儲技術(shù)領(lǐng)域,尤其涉及一種文件修復(fù)方法及裝置。



背景技術(shù):

隨著互聯(lián)網(wǎng)和信息技術(shù)的不斷發(fā)展,諸如本地文件系統(tǒng)和分布式文件系統(tǒng)等文件系統(tǒng)中存儲有越來越多的文件。要充分利用文件系統(tǒng)中存儲的文件,首先要保證文件的可靠性。提高文件可靠性除了要對文件進(jìn)行冗余備份外,還需要對損壞的文件進(jìn)行修復(fù)。

現(xiàn)有技術(shù)中對文件進(jìn)行修復(fù)時(shí)需要依靠用戶進(jìn)行手動(dòng)操作。比如,當(dāng)通過容災(zāi)方式對文件系統(tǒng)進(jìn)行冗余備份時(shí),文件修復(fù)的過程可如圖1所示。終端設(shè)備向生產(chǎn)系統(tǒng)發(fā)送讀取指定文件的請求,當(dāng)指定文件中存在壞塊而導(dǎo)致無法讀取指定文件時(shí),生產(chǎn)系統(tǒng)向終端設(shè)備報(bào)錯(cuò),讀取業(yè)務(wù)中斷;終端設(shè)備在接收到生產(chǎn)系統(tǒng)的報(bào)錯(cuò)后,用戶手動(dòng)切換到與生產(chǎn)系統(tǒng)存儲有相同文件的災(zāi)備系統(tǒng),災(zāi)備系統(tǒng)將壞塊對應(yīng)的數(shù)據(jù)塊返回給終端設(shè)備,終端設(shè)備將該數(shù)據(jù)塊發(fā)送給生產(chǎn)系統(tǒng),生產(chǎn)系統(tǒng)可利用該數(shù)據(jù)塊對自身存儲的指定文件進(jìn)行修復(fù)。由此可見,這種文件修復(fù)過程需要用戶手動(dòng)切換文件系統(tǒng),修復(fù)過程會(huì)導(dǎo)致文件系統(tǒng)的業(yè)務(wù)中斷。

綜上,現(xiàn)有技術(shù)中對文件系統(tǒng)中的文件進(jìn)行修復(fù)時(shí)存在文件系統(tǒng)業(yè)務(wù)中斷的問題。



技術(shù)實(shí)現(xiàn)要素:

本發(fā)明實(shí)施例提供一種文件修復(fù)方法及裝置,用以解決現(xiàn)有技術(shù)中對文件系統(tǒng)中的文件進(jìn)行修復(fù)時(shí)存在的文件系統(tǒng)業(yè)務(wù)中斷的問題。

第一方面,本發(fā)明實(shí)施例提供一種文件修復(fù)方法,該方法包括:生產(chǎn)系統(tǒng)接收終端設(shè)備發(fā)送的第一讀取請求,第一讀取請求用于請求讀取生產(chǎn)系統(tǒng)存儲的指定文件;生產(chǎn)系統(tǒng)確定生產(chǎn)系統(tǒng)存儲的指定文件中存在至少一個(gè)壞塊后,向備份系統(tǒng)發(fā)送第二讀取請求,該備份系統(tǒng)與生產(chǎn)系統(tǒng)存儲有相同的文件,該第二讀取請求用于請求讀取備份系統(tǒng)存儲的指定文件中與至少一個(gè)壞塊對應(yīng)的至少一個(gè)數(shù)據(jù)塊;生產(chǎn)系統(tǒng)接收備份系統(tǒng)發(fā)送的至少一個(gè)數(shù)據(jù)塊后,可根據(jù)至少一個(gè)數(shù)據(jù)塊對生產(chǎn)系統(tǒng)存儲的指定文件進(jìn)行修復(fù)。

采用上述方案,由于生產(chǎn)系統(tǒng)在確定自身存儲的指定文件中存在至少一個(gè)壞塊后,根據(jù)備份系統(tǒng)發(fā)送的、與至少一個(gè)壞塊對應(yīng)的至少一個(gè)數(shù)據(jù)塊對自身存儲的指定文件進(jìn)行修復(fù),因而在生產(chǎn)系統(tǒng)存儲的指定文件需要修復(fù)時(shí),不必像現(xiàn)有技術(shù)那樣由生產(chǎn)系統(tǒng)向終端設(shè)備報(bào)錯(cuò),并中斷讀取業(yè)務(wù),然后通過用戶手動(dòng)切換到災(zāi)備系統(tǒng)來對生產(chǎn)系統(tǒng)存儲的指定文件進(jìn)行修復(fù)。采用第一方面提供的文件修復(fù)方法,生產(chǎn)系統(tǒng)可根據(jù)備份系統(tǒng)發(fā)送的至少一個(gè)數(shù)據(jù)塊對自身存儲的指定文件進(jìn)行修復(fù),由于修復(fù)過程是通過生產(chǎn)系統(tǒng)和備份系統(tǒng)的交互實(shí)現(xiàn)的,終端設(shè)備沒有參與修復(fù)過程,也就不會(huì)感知該修復(fù)過程的執(zhí)行,因此,該修復(fù)過程不會(huì)導(dǎo)致終端設(shè)備的讀取業(yè)務(wù)中斷,因而提高了系統(tǒng)為終端設(shè)備提供文件讀寫服務(wù)的效率,避免了系統(tǒng)的業(yè)務(wù)中斷;此外,生產(chǎn)系統(tǒng)對指定文件的修復(fù)過程無需用戶手動(dòng)參與,簡化了修復(fù)過程,提升了用戶體驗(yàn)。

在上述第一方面中,備份系統(tǒng)與生產(chǎn)系統(tǒng)存儲有相同的文件可通過同步復(fù)制、異步復(fù)制和備份三種方式實(shí)現(xiàn)。采用不同的實(shí)現(xiàn)方式,修復(fù)生產(chǎn)系統(tǒng)存儲的指定文件的具體過程會(huì)有所不同。

其中,采用同步復(fù)制方式時(shí),備份系統(tǒng)與生產(chǎn)系統(tǒng)中存儲的文件完全一致;采用異步復(fù)制或備份方式時(shí),備份系統(tǒng)周期性地同步生產(chǎn)系統(tǒng)中存儲的文件,備份系統(tǒng)與生產(chǎn)系統(tǒng)中存儲的文件中包含的數(shù)據(jù)塊不一定完全一致。

當(dāng)備份系統(tǒng)同步復(fù)制有生產(chǎn)系統(tǒng)存儲的文件時(shí),生產(chǎn)系統(tǒng)根據(jù)至少一個(gè)數(shù)據(jù)塊對生產(chǎn)系統(tǒng)存儲的指定文件進(jìn)行修復(fù),可通過如下過程實(shí)現(xiàn):生產(chǎn)系統(tǒng)在接收到至少一個(gè)數(shù)據(jù)塊后,在至少一個(gè)壞塊的存儲地址下寫入該至少一個(gè)數(shù)據(jù)塊,即可完成對生產(chǎn)系統(tǒng)存儲的指定文件的修復(fù)過程。

由于備份系統(tǒng)同步復(fù)制有生產(chǎn)系統(tǒng)存儲的文件,因而備份系統(tǒng)與生產(chǎn)系統(tǒng)中存儲的文件完全一致。生產(chǎn)系統(tǒng)對自身存儲的指定文件進(jìn)行修復(fù)時(shí),可直接在至少一個(gè)壞塊的存儲地址下寫入備份系統(tǒng)發(fā)送的至少一個(gè)數(shù)據(jù)塊。采用上述方案,在備份系統(tǒng)同步復(fù)制有生產(chǎn)系統(tǒng)存儲的文件時(shí),提供了一種修復(fù)生產(chǎn)系統(tǒng)存儲的指定文件的方法。

當(dāng)備份系統(tǒng)異步復(fù)制或備份有生產(chǎn)系統(tǒng)存儲的文件時(shí),生產(chǎn)系統(tǒng)根據(jù)至少一個(gè)數(shù)據(jù)塊對生產(chǎn)系統(tǒng)存儲的指定文件進(jìn)行修復(fù),可通過如下過程實(shí)現(xiàn):生產(chǎn)系統(tǒng)在接收到至少一個(gè)數(shù)據(jù)塊后可基于自身存儲的差異位圖中是否記錄有至少一個(gè)壞塊的情況,使用至少一個(gè)數(shù)據(jù)塊對至少一個(gè)壞塊進(jìn)行修復(fù)。

其中,生產(chǎn)系統(tǒng)基于差異位圖中是否記錄有至少一個(gè)壞塊的情況,使用至少一個(gè)數(shù)據(jù)塊對至少一個(gè)壞塊進(jìn)行修復(fù),具體可通過如下方式實(shí)現(xiàn):當(dāng)差異位圖中未記錄有至少一個(gè)壞塊時(shí),生產(chǎn)系統(tǒng)在至少一個(gè)壞塊的存儲地址下寫入至少一個(gè)數(shù)據(jù)塊;或者當(dāng)差異位圖中記錄有至少一個(gè)壞塊時(shí),生產(chǎn)系統(tǒng)根據(jù)自身存儲的至少一個(gè)壞塊的修改方式,對至少一個(gè)數(shù)據(jù)塊進(jìn)行修改;生產(chǎn)系統(tǒng)在至少一個(gè)壞塊的存儲地址下寫入修改后的至少一個(gè)數(shù)據(jù)塊。

由于備份系統(tǒng)異步復(fù)制或備份有生產(chǎn)系統(tǒng)存儲的文件,因而備份系統(tǒng)與生產(chǎn)系統(tǒng)中存儲的文件所包含的數(shù)據(jù)塊并不一定完全一致。生產(chǎn)系統(tǒng)對自身存儲的指定文件進(jìn)行修復(fù)時(shí),需要基于差異位圖中是否記錄有至少一個(gè)壞塊的情況進(jìn)行修復(fù)。采用上述方案,在備份系統(tǒng)異步復(fù)制或備份有生產(chǎn)系統(tǒng)存儲的文件時(shí),提供了一種修復(fù)生產(chǎn)系統(tǒng)存儲的指定文件的方法。

此外,在生產(chǎn)系統(tǒng)根據(jù)至少一個(gè)數(shù)據(jù)塊對生產(chǎn)系統(tǒng)存儲的指定文件進(jìn)行修復(fù)之后,生產(chǎn)系統(tǒng)可將生產(chǎn)系統(tǒng)存儲的指定文件發(fā)送給終端設(shè)備;或者,在生產(chǎn)系統(tǒng)接收備份系統(tǒng)發(fā)送的至少一個(gè)數(shù)據(jù)塊之前,生產(chǎn)系統(tǒng)還可將指定文件中除至少一個(gè)壞塊之外的其他數(shù)據(jù)塊發(fā)送給終端設(shè)備;在生產(chǎn)系統(tǒng)接收備份系統(tǒng)發(fā)送的至少一個(gè)數(shù)據(jù)塊之后,生產(chǎn)系統(tǒng)將至少一個(gè)數(shù)據(jù)塊發(fā)送給終端設(shè)備。

采用上述方案,生產(chǎn)系統(tǒng)不僅可以修復(fù)自身存儲的指定文件,還可通過上述過程實(shí)現(xiàn)為終端設(shè)備提供讀取指定文件的服務(wù)。

第二方面,本發(fā)明實(shí)施例提供一種文件修復(fù)方法,該方法包括:備份系統(tǒng)接收生產(chǎn)系統(tǒng)發(fā)送的第二讀取請求,該備份系統(tǒng)與生產(chǎn)系統(tǒng)存儲有相同的文件,且生產(chǎn)系統(tǒng)存儲的指定文件中存在至少一個(gè)壞塊,該第二讀取請求用于請求讀取備份系統(tǒng)存儲的指定文件中與至少一個(gè)壞塊對應(yīng)的至少一個(gè)數(shù)據(jù)塊,該至少一個(gè)數(shù)據(jù)塊可用于生產(chǎn)系統(tǒng)根據(jù)該至少一個(gè)數(shù)據(jù)塊對生產(chǎn)系統(tǒng)存儲的指定文件進(jìn)行修復(fù);備份系統(tǒng)將該至少一個(gè)數(shù)據(jù)塊發(fā)送給生產(chǎn)系統(tǒng)。

采用上述方案,在生產(chǎn)系統(tǒng)在確定自身存儲的指定文件中存在至少一個(gè)壞塊后,生產(chǎn)系統(tǒng)可根據(jù)備份系統(tǒng)發(fā)送的、與至少一個(gè)壞塊對應(yīng)的至少一個(gè)數(shù)據(jù)塊對自身存儲的指定文件進(jìn)行修復(fù),因而在生產(chǎn)系統(tǒng)存儲的指定文件需要修復(fù)時(shí),不必像現(xiàn)有技術(shù)那樣由生產(chǎn)系統(tǒng)向終端設(shè)備報(bào)錯(cuò),并中斷讀取業(yè)務(wù),然后通過用戶手動(dòng)切換到災(zāi)備系統(tǒng)來對生產(chǎn)系統(tǒng)存儲的指定文件進(jìn)行修復(fù)。采用第二方面提供的文件修復(fù)方法,生產(chǎn)系統(tǒng)可根據(jù)備份系統(tǒng)發(fā)送的至少一個(gè)數(shù)據(jù)塊對自身存儲的指定文件進(jìn)行修復(fù),由于修復(fù)過程是通過生產(chǎn)系統(tǒng)和備份系統(tǒng)的交互實(shí)現(xiàn)的,終端設(shè)備沒有參與修復(fù)過程,也就不會(huì)感知該修復(fù)過程的執(zhí)行,因此,該修復(fù)過程不會(huì)導(dǎo)致終端設(shè)備的讀取業(yè)務(wù)中斷,因而提高了系統(tǒng)為終端設(shè)備提供文件讀寫服務(wù)的效率,避免了系統(tǒng)的業(yè)務(wù)中斷;此外,生產(chǎn)系統(tǒng)對指定文件的修復(fù)過程無需用戶手動(dòng)參與,簡化了修復(fù)過程,提升了用戶體驗(yàn)。

第三方面,本發(fā)明實(shí)施例提供一種文件修復(fù)裝置,該裝置包括收發(fā)模塊、存儲模塊和修復(fù)模塊。其中,收發(fā)模塊用于接收終端設(shè)備發(fā)送的第一讀取請求,第一讀取請求用于請求讀取指定文件;存儲模塊用于存儲指定文件;修復(fù)模塊用于確定存儲模塊存儲的指定文件中存在至少一個(gè)壞塊;收發(fā)模塊還用于向備份系統(tǒng)發(fā)送第二讀取請求,以及接收備份系統(tǒng)發(fā)送的至少一個(gè)數(shù)據(jù)塊,該備份系統(tǒng)與生產(chǎn)系統(tǒng)存儲有相同的文件,該第二讀取請求用于請求讀取備份系統(tǒng)存儲的指定文件中與至少一個(gè)壞塊對應(yīng)的至少一個(gè)數(shù)據(jù)塊;修復(fù)模塊,還用于根據(jù)備份系統(tǒng)發(fā)送的至少一個(gè)數(shù)據(jù)塊對存儲模塊存儲的指定文件進(jìn)行修復(fù)。

其中,第三方面提供的文件修復(fù)裝置可視為本發(fā)明實(shí)施例中的生產(chǎn)系統(tǒng)中的裝置,該裝置可用于對生產(chǎn)系統(tǒng)存儲的指定文件進(jìn)行修復(fù)。

采用上述方案,由于修復(fù)模塊在確定存儲模塊存儲的指定文件中存在至少一個(gè)壞塊后,根據(jù)備份系統(tǒng)發(fā)送的至少一個(gè)數(shù)據(jù)塊對存儲模塊存儲的指定文件進(jìn)行修復(fù),因而在存儲模塊存儲的指定文件需要修復(fù)時(shí),不必像現(xiàn)有技術(shù)那樣向終端設(shè)備報(bào)錯(cuò),并中斷讀取業(yè)務(wù),然后通過用戶手動(dòng)切換到災(zāi)備系統(tǒng)來對存儲模塊存儲的指定文件進(jìn)行修復(fù)。在第三方面提供的文件修復(fù)裝置中,修復(fù)模塊可根據(jù)備份系統(tǒng)發(fā)送的至少一個(gè)數(shù)據(jù)塊對存儲模塊存儲的指定文件進(jìn)行修復(fù),由于修復(fù)過程是通過第三方面提供的文件修復(fù)裝置和備份系統(tǒng)的交互實(shí)現(xiàn)的,終端設(shè)備沒有參與修復(fù)過程,也就不會(huì)感知該修復(fù)過程的執(zhí)行,因此,該修復(fù)過程不會(huì)導(dǎo)致終端設(shè)備的讀取業(yè)務(wù)中斷,因而提高了文件修復(fù)裝置為終端設(shè)備提供文件讀寫服務(wù)的效率,避免了系統(tǒng)的業(yè)務(wù)中斷;此外,修復(fù)模塊對指定文件的修復(fù)過程無需用戶手動(dòng)參與,簡化了修復(fù)過程,提升了用戶體驗(yàn)。

在上述第三方面中,備份系統(tǒng)與存儲模塊存儲有相同的文件可通過同步復(fù)制、異步復(fù)制和備份三種方式實(shí)現(xiàn)。采用不同的實(shí)現(xiàn)方式,修復(fù)存儲模塊存儲的指定文件的具體過程會(huì)有所不同。

其中,采用同步復(fù)制方式時(shí),備份系統(tǒng)與存儲模塊中存儲的文件完全一致;采用異步復(fù)制或備份方式時(shí),備份系統(tǒng)周期性地同步存儲模塊中存儲的文件,備份系統(tǒng)與存儲模塊中存儲的文件中包含的數(shù)據(jù)塊不一定完全一致。

當(dāng)備份系統(tǒng)同步復(fù)制有存儲模塊存儲的文件時(shí),修復(fù)模塊在根據(jù)至少一個(gè)數(shù)據(jù)塊對存儲模塊存儲的指定文件進(jìn)行修復(fù)時(shí),可在至少一個(gè)壞塊的存儲地址下寫入收發(fā)模塊接收到的至少一個(gè)數(shù)據(jù)塊。

由于備份系統(tǒng)同步復(fù)制有存儲模塊存儲的文件,因而備份系統(tǒng)與存儲模塊中存儲的文件完全一致。修復(fù)模塊對存儲模塊存儲的指定文件進(jìn)行修復(fù)時(shí),可直接在至少一個(gè)壞塊的存儲地址下寫入備份系統(tǒng)發(fā)送的至少一個(gè)數(shù)據(jù)塊。采用上述方案,在備份系統(tǒng)同步復(fù)制有存儲模塊存儲的文件時(shí),提供了一種修復(fù)存儲模塊存儲的指定文件的方法。

當(dāng)備份系統(tǒng)異步復(fù)制或備份有存儲模塊存儲的文件時(shí),修復(fù)模塊在根據(jù)至少一個(gè)數(shù)據(jù)塊對存儲模塊存儲的指定文件進(jìn)行修復(fù)時(shí),可基于存儲模塊存儲的差異位圖中是否記錄有至少一個(gè)壞塊的情況,使用至少一個(gè)數(shù)據(jù)塊對至少一個(gè)壞塊進(jìn)行修復(fù)。其中,差異位圖用于記錄存儲模塊中進(jìn)行過修改、且備份系統(tǒng)未進(jìn)行過相應(yīng)修改的數(shù)據(jù)塊。

修復(fù)模塊在基于差異位圖中是否記錄有至少一個(gè)壞塊的情況,使用至少一個(gè)數(shù)據(jù)塊對至少一個(gè)壞塊進(jìn)行修復(fù)時(shí),具體可通過如下過程實(shí)現(xiàn):當(dāng)差異位圖中未記錄有至少一個(gè)壞塊時(shí),在至少一個(gè)壞塊的存儲地址下寫入至少一個(gè)數(shù)據(jù)塊;或者當(dāng)差異位圖中記錄有至少一個(gè)壞塊時(shí),根據(jù)至少一個(gè)壞塊的修改方式,對至少一個(gè)數(shù)據(jù)塊進(jìn)行修改;在至少一個(gè)壞塊的存儲地址下寫入修改后的至少一個(gè)數(shù)據(jù)塊。其中,至少一個(gè)壞塊的修改方式存儲在存儲模塊中。

由于備份系統(tǒng)異步復(fù)制或備份有存儲模塊存儲的文件,因而備份系統(tǒng)與存儲模塊中存儲的文件所包含的數(shù)據(jù)塊并不一定完全一致。修復(fù)模塊對存儲模塊存儲的指定文件進(jìn)行修復(fù)時(shí),需要基于差異位圖中是否記錄有至少一個(gè)壞塊的情況進(jìn)行修復(fù)。采用上述方案,在備份系統(tǒng)異步復(fù)制或備份有存儲模塊存儲的文件時(shí),提供了一種修復(fù)存儲模塊存儲的指定文件的方法。

此外,收發(fā)模塊還可在修復(fù)模塊根據(jù)至少一個(gè)數(shù)據(jù)塊對存儲模塊存儲的指定文件進(jìn)行修復(fù)之后,將存儲模塊存儲的指定文件發(fā)送給終端設(shè)備;或者收發(fā)模塊還可在接收備份系統(tǒng)發(fā)送的至少一個(gè)數(shù)據(jù)塊之前,將指定文件中除至少一個(gè)壞塊之外的其他數(shù)據(jù)塊發(fā)送給終端設(shè)備,然后在接收備份系統(tǒng)發(fā)送的至少一個(gè)數(shù)據(jù)塊之后,將至少一個(gè)數(shù)據(jù)塊發(fā)送給終端設(shè)備。

采用上述方案,文件修復(fù)裝置不僅可以通過修復(fù)模塊對存儲模塊存儲的指定文件進(jìn)行修復(fù),文件修復(fù)裝置的收發(fā)模塊還可為終端設(shè)備提供讀取指定文件的服務(wù)。

第四方面,本發(fā)明實(shí)施例提供一種文件修復(fù)裝置,該裝置包括存儲模塊和收發(fā)模塊。

存儲模塊用于存儲指定文件;收發(fā)模塊用于接收生產(chǎn)系統(tǒng)發(fā)送的第二讀取請求,以及將至少一個(gè)數(shù)據(jù)塊發(fā)送給生產(chǎn)系統(tǒng)。其中,存儲模塊與生產(chǎn)系統(tǒng)存儲有相同的文件,且生產(chǎn)系統(tǒng)存儲的指定文件中存在至少一個(gè)壞塊,該第二讀取請求用于請求讀取存儲模塊存儲的指定文件中與至少一個(gè)壞塊對應(yīng)的至少一個(gè)數(shù)據(jù)塊,該至少一個(gè)數(shù)據(jù)塊用于生產(chǎn)系統(tǒng)根據(jù)至少一個(gè)數(shù)據(jù)塊對生產(chǎn)系統(tǒng)存儲的指定文件進(jìn)行修復(fù)。

在生產(chǎn)系統(tǒng)在確定自身存儲的指定文件中存在至少一個(gè)壞塊后,生產(chǎn)系統(tǒng)可根據(jù)收發(fā)模塊發(fā)送的、與至少一個(gè)壞塊對應(yīng)的至少一個(gè)數(shù)據(jù)塊對自身存儲的指定文件進(jìn)行修復(fù),因而在生產(chǎn)系統(tǒng)存儲的指定文件需要修復(fù)時(shí),不必像現(xiàn)有技術(shù)那樣由生產(chǎn)系統(tǒng)向終端設(shè)備報(bào)錯(cuò),并中斷讀取業(yè)務(wù),然后通過用戶手動(dòng)切換到災(zāi)備系統(tǒng)來對生產(chǎn)系統(tǒng)存儲的指定文件進(jìn)行修復(fù)。采用第四方面提供的文件修復(fù)裝置,生產(chǎn)系統(tǒng)可根據(jù)收發(fā)模塊發(fā)送的至少一個(gè)數(shù)據(jù)塊對自身存儲的指定文件進(jìn)行修復(fù),由于修復(fù)過程是通過生產(chǎn)系統(tǒng)和第四方面提供的文件修復(fù)裝置的交互實(shí)現(xiàn)的,終端設(shè)備沒有參與修復(fù)過程,也就不會(huì)感知該修復(fù)過程的執(zhí)行,因此,該修復(fù)過程不會(huì)導(dǎo)致終端設(shè)備的讀取業(yè)務(wù)中斷,因而提高了系統(tǒng)為終端設(shè)備提供文件讀寫服務(wù)的效率,避免了系統(tǒng)的業(yè)務(wù)中斷;此外,生產(chǎn)系統(tǒng)對指定文件的修復(fù)過程無需用戶手動(dòng)參與,簡化了修復(fù)過程,提升了用戶體驗(yàn)。

第五方面,本發(fā)明實(shí)施例提供一種計(jì)算機(jī)可讀存儲介質(zhì),計(jì)算機(jī)可讀存儲介質(zhì)中存儲有計(jì)算機(jī)執(zhí)行指令,當(dāng)計(jì)算節(jié)點(diǎn)的至少一個(gè)處理器執(zhí)行該計(jì)算機(jī)執(zhí)行指令時(shí),計(jì)算節(jié)點(diǎn)執(zhí)行上述第一方面或者第一方面的各種可能設(shè)計(jì)提供的方法,或者執(zhí)行上述第二方面或者第二方面的各種可能設(shè)計(jì)提供的方法。

第六方面,本發(fā)明實(shí)施例提供一種計(jì)算機(jī)程序產(chǎn)品,該計(jì)算機(jī)程序產(chǎn)品包括計(jì)算機(jī)執(zhí)行指令,該計(jì)算機(jī)執(zhí)行指令存儲在計(jì)算機(jī)可讀存儲介質(zhì)中。計(jì)算節(jié)點(diǎn)的至少一個(gè)處理器可以從計(jì)算機(jī)可讀存儲介質(zhì)讀取該計(jì)算機(jī)執(zhí)行指令,至少一個(gè)處理器執(zhí)行該計(jì)算機(jī)執(zhí)行指令使得計(jì)算節(jié)點(diǎn)實(shí)施上述第一方面或者第一方面的各種可能設(shè)計(jì)提供的方法,或者實(shí)施上述第二方面或者第二方面的各種可能設(shè)計(jì)提供的方法。

附圖說明

圖1為現(xiàn)有技術(shù)提供的文件修復(fù)的過程的流程示意圖;

圖2為本發(fā)明實(shí)施例提供的第一種文件寫入過程的流程示意圖;

圖3為本發(fā)明實(shí)施例提供的第二種文件寫入過程的流程示意圖;

圖4為本發(fā)明實(shí)施例提供的第三種文件寫入過程的流程示意圖;

圖5為本發(fā)明實(shí)施例提供的一種文件修復(fù)方法的流程示意圖;

圖6為本發(fā)明實(shí)施例提供的第一種文件修復(fù)裝置的結(jié)構(gòu)示意圖;

圖7為本發(fā)明實(shí)施例提供的第二種文件修復(fù)裝置的結(jié)構(gòu)示意圖;

圖8為本發(fā)明實(shí)施例提供的第三種文件修復(fù)裝置的結(jié)構(gòu)示意圖;

圖9為本發(fā)明實(shí)施例提供的第四種文件修復(fù)裝置的結(jié)構(gòu)示意圖;

圖10為本發(fā)明實(shí)施例提供的一種文件系統(tǒng)的結(jié)構(gòu)示意圖。

具體實(shí)施方式

為了更好地理解本發(fā)明實(shí)施例的上述目的、方案和優(yōu)勢,下文提供了詳細(xì)描述。該詳細(xì)描述通過使用框圖、流程圖等附圖和/或示例,闡明了裝置和/或方法的各種實(shí)施方式。在這些框圖、流程圖和/或示例中,包含一個(gè)或多個(gè)功能和/或操作。本領(lǐng)域技術(shù)人員將理解到:這些框圖、流程圖或示例內(nèi)的各個(gè)功能和/或操作,能夠通過各種各樣的硬件、軟件、固件單獨(dú)或共同實(shí)施,或者通過硬件、軟件和固件的任意組合實(shí)施。

本發(fā)明實(shí)施例涉及對指定文件進(jìn)行修復(fù),其中,指定文件為采用本發(fā)明實(shí)施例提供的文件修復(fù)方法進(jìn)行修復(fù)的文件,本發(fā)明實(shí)施例中對指定文件的文件類型不做限制,只要生產(chǎn)系統(tǒng)中的某個(gè)文件可采用本發(fā)明實(shí)施例提供的文件修復(fù)方法進(jìn)行修復(fù),該文件即可視為指定文件。在對指定文件進(jìn)行修復(fù)時(shí)涉及兩個(gè)文件系統(tǒng),即生產(chǎn)系統(tǒng)和備份系統(tǒng)。

其中,生產(chǎn)系統(tǒng)用于為終端設(shè)備提供文件讀寫服務(wù),備份系統(tǒng)與生產(chǎn)系統(tǒng)存儲有相同的文件。也就是說,當(dāng)生產(chǎn)系統(tǒng)中存儲的指定文件未損壞時(shí),生產(chǎn)系統(tǒng)可為終端設(shè)備提供文件讀寫服務(wù);當(dāng)生產(chǎn)系統(tǒng)中存儲的指定文件中部分?jǐn)?shù)據(jù)塊損壞時(shí),生產(chǎn)系統(tǒng)可根據(jù)備份系統(tǒng)中存儲的指定文件對自身存儲的指定文件進(jìn)行修復(fù),修復(fù)完成后,生產(chǎn)系統(tǒng)可繼續(xù)為終端設(shè)備提供文件讀寫服務(wù);當(dāng)生產(chǎn)系統(tǒng)中存儲的文件無法修復(fù)時(shí),用戶可通過終端設(shè)備將備份系統(tǒng)切換為提供文件讀寫服務(wù)的文件系統(tǒng)。

備份系統(tǒng)與生產(chǎn)系統(tǒng)存儲有相同的文件,可通過如下三種方式實(shí)現(xiàn):

第一種方式:同步復(fù)制

備份系統(tǒng)同步復(fù)制有生產(chǎn)系統(tǒng)存儲的文件可通過圖2所示的文件寫入過程實(shí)現(xiàn)。圖2中,假設(shè)終端設(shè)備要向生產(chǎn)系統(tǒng)中寫入的文件1包含A、B、C、D和E這五個(gè)數(shù)據(jù)塊,那么終端設(shè)備向生產(chǎn)系統(tǒng)中寫入文件1時(shí),需要向生產(chǎn)系統(tǒng)分別寫入A、B、C、D和E五個(gè)數(shù)據(jù)塊。以寫入數(shù)據(jù)塊A為例,終端設(shè)備首先在生產(chǎn)系統(tǒng)中寫入數(shù)據(jù)塊A,然后生產(chǎn)系統(tǒng)向備份系統(tǒng)發(fā)送寫入數(shù)據(jù)塊A的指令,在備份系統(tǒng)成功寫入數(shù)據(jù)塊A后,備份系統(tǒng)向生產(chǎn)系統(tǒng)發(fā)送寫入成功的指示消息,生產(chǎn)系統(tǒng)在確認(rèn)備份系統(tǒng)已成功寫入數(shù)據(jù)塊A后,向終端設(shè)備發(fā)送寫入成功的指示消息。數(shù)據(jù)塊B、C、D和E的寫入過程和數(shù)據(jù)塊A的寫入過程相同,此處不再贅述。當(dāng)數(shù)據(jù)塊A、B、C、D和E都完成寫入過程后,即完成文件1的寫入過程。

此外,當(dāng)備份系統(tǒng)同步復(fù)制有生產(chǎn)系統(tǒng)存儲的文件時(shí),若終端設(shè)備要對生產(chǎn)系統(tǒng)中存儲的數(shù)據(jù)塊進(jìn)行修改,也需要同時(shí)對備份系統(tǒng)中存儲的相應(yīng)數(shù)據(jù)塊進(jìn)行修改。

第二種方式:異步復(fù)制

備份系統(tǒng)異步復(fù)制有生產(chǎn)系統(tǒng)存儲的文件可通過圖3所示的文件寫入過程實(shí)現(xiàn)。在圖3中,備份系統(tǒng)和生產(chǎn)系統(tǒng)間需要配置同步周期,在同步周期未到來時(shí),對于終端設(shè)備向生產(chǎn)系統(tǒng)寫入的數(shù)據(jù)塊,生產(chǎn)系統(tǒng)僅需在自身存儲的差異位圖中記錄下該數(shù)據(jù)塊,而無需將該數(shù)據(jù)塊寫入備份系統(tǒng);在同步周期到來時(shí),生產(chǎn)系統(tǒng)將差異位圖中記錄的數(shù)據(jù)塊寫入備份系統(tǒng)。比如,終端設(shè)備要向生產(chǎn)系統(tǒng)中寫入的文件1包含A、B、C、D和E這五個(gè)數(shù)據(jù)塊,假設(shè)在上一個(gè)同步周期結(jié)束時(shí),生產(chǎn)系統(tǒng)和備份系統(tǒng)中均已寫入了A、B、C這三個(gè)數(shù)據(jù)塊。在本次同步周期未到來時(shí),終端設(shè)備向生產(chǎn)系統(tǒng)寫入數(shù)據(jù)塊D,生產(chǎn)系統(tǒng)在差異位圖中記錄下數(shù)據(jù)塊D,然后終端設(shè)備向生產(chǎn)系統(tǒng)寫入數(shù)據(jù)塊E,生產(chǎn)系統(tǒng)在差異位圖中記錄下數(shù)據(jù)塊E;在本次同步周期到來時(shí),生產(chǎn)系統(tǒng)將差異位圖中記錄的數(shù)據(jù)塊D和數(shù)據(jù)塊E寫入備份系統(tǒng)。

此外,當(dāng)備份系統(tǒng)異步復(fù)制有生產(chǎn)系統(tǒng)存儲的文件時(shí),若終端設(shè)備要對生產(chǎn)系統(tǒng)中存儲的數(shù)據(jù)塊進(jìn)行修改,生產(chǎn)系統(tǒng)需在同步周期未到來時(shí)在差異位圖中記錄下進(jìn)行過修改的數(shù)據(jù)塊。當(dāng)同步周期到來時(shí),生產(chǎn)系統(tǒng)將差異位圖中記錄的數(shù)據(jù)塊寫入備份系統(tǒng)。

特別地,當(dāng)備份系統(tǒng)同步復(fù)制或異步復(fù)制有生產(chǎn)系統(tǒng)存儲的文件時(shí),備份系統(tǒng)又可以稱為災(zāi)備系統(tǒng)。生產(chǎn)系統(tǒng)不僅可以根據(jù)災(zāi)備系統(tǒng)中存儲的文件對自身存儲的文件進(jìn)行修復(fù),而且在生產(chǎn)系統(tǒng)因意外(如火災(zāi)、地震等)停止工作時(shí),用戶可通過終端設(shè)備將災(zāi)備系統(tǒng)切換為提供文件讀寫服務(wù)的文件系統(tǒng),災(zāi)備系統(tǒng)可代替生產(chǎn)系統(tǒng)繼續(xù)為終端設(shè)備提供文件讀寫服務(wù)。

第三種方式:備份

備份系統(tǒng)備份有生產(chǎn)系統(tǒng)存儲的文件可通過圖4所示的文件寫入過程實(shí)現(xiàn)。與備份系統(tǒng)異步復(fù)制生產(chǎn)系統(tǒng)中的文件的過程類似,備份系統(tǒng)中備份有生產(chǎn)系統(tǒng)中存儲的文件的過程可通過周期性地將差異位圖中記錄的數(shù)據(jù)塊寫入備份系統(tǒng)來實(shí)現(xiàn)。與異步復(fù)制過程不同的是,針對某個(gè)文件,備份系統(tǒng)中可能會(huì)備份有多個(gè)副本。比如,終端設(shè)備要向生產(chǎn)系統(tǒng)中寫入的文件1包含A、B、C、D和E這五個(gè)數(shù)據(jù)塊,假設(shè)在上一個(gè)同步周期結(jié)束時(shí),生產(chǎn)系統(tǒng)和備份系統(tǒng)中均已寫入了A、B、C這三個(gè)數(shù)據(jù)塊,備份系統(tǒng)中文件1的副本1由數(shù)據(jù)塊A、B、C組成。在本次同步周期未到來時(shí),終端設(shè)備向生產(chǎn)系統(tǒng)寫入數(shù)據(jù)塊D,生產(chǎn)系統(tǒng)在差異位圖中記錄下數(shù)據(jù)塊D,然后終端設(shè)備向生產(chǎn)系統(tǒng)寫入數(shù)據(jù)塊E,生產(chǎn)系統(tǒng)在差異位圖中記錄下數(shù)據(jù)塊E;在本次同步周期到來時(shí),生產(chǎn)系統(tǒng)將差異位圖中記錄的數(shù)據(jù)塊D和數(shù)據(jù)塊E備份到備份系統(tǒng)中,備份系統(tǒng)中文件1的副本2由數(shù)據(jù)塊A、B、C、D、E組成。其中,副本2為最新版本的副本。

此外,當(dāng)備份系統(tǒng)備份有生產(chǎn)系統(tǒng)存儲的文件時(shí),若終端設(shè)備要對生產(chǎn)系統(tǒng)中的數(shù)據(jù)塊進(jìn)行修改,生產(chǎn)系統(tǒng)需在同步周期未到來時(shí)在差異位圖中記錄下進(jìn)行過修改的數(shù)據(jù)塊。當(dāng)同步周期到來時(shí),生產(chǎn)系統(tǒng)將差異位圖中記錄的數(shù)據(jù)塊寫入備份系統(tǒng),形成另一個(gè)副本。

在上述三種方式中,采用同步復(fù)制方式時(shí),備份系統(tǒng)與生產(chǎn)系統(tǒng)中存儲的文件完全一致;采用異步復(fù)制或備份方式時(shí),備份系統(tǒng)周期性地同步生產(chǎn)系統(tǒng)中存儲的文件,備份系統(tǒng)與生產(chǎn)系統(tǒng)中存儲的文件中包含的數(shù)據(jù)塊不一定完全一致。備份系統(tǒng)與生產(chǎn)系統(tǒng)中存儲的文件中包含的數(shù)據(jù)塊不一定完全一致的具體含義是:備份系統(tǒng)與生產(chǎn)系統(tǒng)中存儲的文件相同,但是對于同一文件,在同步周期未到來時(shí),生產(chǎn)系統(tǒng)可能對該文件中的某些數(shù)據(jù)塊做了修改,并將修改的數(shù)據(jù)塊記錄在差異位圖中,但是由于該修改發(fā)生的時(shí)間為同步周期到來之前,因此備份系統(tǒng)中該文件中的數(shù)據(jù)塊并未做相應(yīng)修改。

現(xiàn)有技術(shù)中,對生產(chǎn)系統(tǒng)中存儲的文件進(jìn)行修復(fù)時(shí),需要依靠用戶進(jìn)行手動(dòng)操作。當(dāng)生產(chǎn)系統(tǒng)確定自身存儲的文件中某些數(shù)據(jù)塊已損壞時(shí),生產(chǎn)系統(tǒng)向終端設(shè)備報(bào)錯(cuò),讀取業(yè)務(wù)中斷;終端設(shè)備在接收到生產(chǎn)系統(tǒng)的報(bào)錯(cuò)后,用戶手動(dòng)切換到備份系統(tǒng),備份系統(tǒng)將壞塊對應(yīng)的數(shù)據(jù)塊返回給終端設(shè)備,終端設(shè)備將該數(shù)據(jù)塊發(fā)送給生產(chǎn)系統(tǒng),生產(chǎn)系統(tǒng)可利用該數(shù)據(jù)塊對相應(yīng)文件中損壞的數(shù)據(jù)塊進(jìn)行修復(fù)。這種文件修復(fù)過程需要用戶手動(dòng)切換文件系統(tǒng),修復(fù)過程會(huì)導(dǎo)致生產(chǎn)系統(tǒng)停止為終端設(shè)備提供文件讀寫服務(wù),即導(dǎo)致文件系統(tǒng)的業(yè)務(wù)中斷。

為了解決現(xiàn)有技術(shù)中對文件系統(tǒng)中的文件進(jìn)行修復(fù)時(shí)存在的文件系統(tǒng)業(yè)務(wù)中斷的問題,本發(fā)明實(shí)施例提供一種文件修復(fù)方法。如圖5所示,該方法包括如下步驟:

S501:生產(chǎn)系統(tǒng)接收終端設(shè)備發(fā)送的第一讀取請求。

該第一讀取請求用于請求讀取生產(chǎn)系統(tǒng)存儲的指定文件。

本發(fā)明實(shí)施例中,終端設(shè)備包括但不限于智能手機(jī)、智能手表、平板電腦、虛擬現(xiàn)實(shí)(Virtual Reality,VR)設(shè)備、增強(qiáng)現(xiàn)實(shí)(Augmented Reality,AR)設(shè)備、個(gè)人計(jì)算機(jī)、手持式計(jì)算機(jī)、個(gè)人數(shù)字助理。

S502:生產(chǎn)系統(tǒng)確定生產(chǎn)系統(tǒng)存儲的指定文件中存在至少一個(gè)壞塊。

S503:生產(chǎn)系統(tǒng)向備份系統(tǒng)發(fā)送第二讀取請求。

其中,備份系統(tǒng)與生產(chǎn)系統(tǒng)存儲有相同的文件,第二讀取請求用于請求讀取備份系統(tǒng)存儲的指定文件中與至少一個(gè)壞塊對應(yīng)的至少一個(gè)數(shù)據(jù)塊。

其中,至少一個(gè)數(shù)據(jù)塊為與至少一個(gè)壞塊對應(yīng)的數(shù)據(jù)塊。假設(shè)生產(chǎn)系統(tǒng)中存儲的文件1包含A、B、C、D、E五個(gè)數(shù)據(jù)塊,其中的數(shù)據(jù)塊C和數(shù)據(jù)塊D為兩個(gè)壞塊,那么備份系統(tǒng)中存儲的文件1也包含A、B、C、D、E五個(gè)數(shù)據(jù)塊,與至少上述兩個(gè)壞塊一一對應(yīng)的兩個(gè)數(shù)據(jù)塊即為備份系統(tǒng)中存儲的數(shù)據(jù)塊C和數(shù)據(jù)塊D。

S504:備份系統(tǒng)向生產(chǎn)系統(tǒng)發(fā)送至少一個(gè)數(shù)據(jù)塊。

S505:生產(chǎn)系統(tǒng)根據(jù)至少一個(gè)數(shù)據(jù)塊對生產(chǎn)系統(tǒng)存儲的指定文件進(jìn)行修復(fù)。

本發(fā)明實(shí)施例中,備份系統(tǒng)與生產(chǎn)系統(tǒng)存儲有相同的文件可通過上述三種方式實(shí)現(xiàn),即同步復(fù)制、異步復(fù)制和備份,此處不再贅述。

可選地,生產(chǎn)系統(tǒng)在執(zhí)行S505對自身存儲的指定文件進(jìn)行修復(fù)后,可將修復(fù)后的指定文件發(fā)送給終端設(shè)備,從而在指定文件修復(fù)完成后,實(shí)現(xiàn)生產(chǎn)系統(tǒng)為終端設(shè)備提供讀取指定文件的服務(wù)。

可選地,生產(chǎn)系統(tǒng)在執(zhí)行S504接收至少一個(gè)數(shù)據(jù)塊之前,還可將指定文件中除至少一個(gè)壞塊之外的其他數(shù)據(jù)塊發(fā)送給終端設(shè)備;在執(zhí)行S504接收至少一個(gè)數(shù)據(jù)塊之后,還可將至少一個(gè)數(shù)據(jù)塊發(fā)送給終端設(shè)備,從而,生產(chǎn)系統(tǒng)可在對指定文件進(jìn)行修復(fù)的同時(shí),實(shí)現(xiàn)為終端設(shè)備提供文件讀寫服務(wù)。

備份系統(tǒng)與生產(chǎn)系統(tǒng)存儲有相同的文件通過上述三種方式實(shí)現(xiàn)時(shí),采用不同的實(shí)現(xiàn)方式,修復(fù)生產(chǎn)系統(tǒng)存儲的指定文件的具體實(shí)現(xiàn)方式會(huì)有所不同。

當(dāng)備份系統(tǒng)同步復(fù)制有生產(chǎn)系統(tǒng)存儲的文件時(shí),S505中,生產(chǎn)系統(tǒng)根據(jù)至少一個(gè)數(shù)據(jù)塊對生產(chǎn)系統(tǒng)存儲的指定文件進(jìn)行修復(fù),可通過如下方式實(shí)現(xiàn):生產(chǎn)系統(tǒng)在接收到至少一個(gè)數(shù)據(jù)塊后,在至少一個(gè)壞塊的存儲地址下寫入該至少一個(gè)數(shù)據(jù)塊,即可完成對生產(chǎn)系統(tǒng)存儲的指定文件的修復(fù)過程。

由于備份系統(tǒng)同步復(fù)制有生產(chǎn)系統(tǒng)存儲的文件,因而備份系統(tǒng)與生產(chǎn)系統(tǒng)中存儲的文件完全一致。生產(chǎn)系統(tǒng)對自身存儲的指定文件進(jìn)行修復(fù)時(shí),可直接在至少一個(gè)壞塊的存儲地址下寫入備份系統(tǒng)發(fā)送的至少一個(gè)數(shù)據(jù)塊。采用上述方案,在備份系統(tǒng)同步復(fù)制有生產(chǎn)系統(tǒng)存儲的文件時(shí),提供了一種修復(fù)生產(chǎn)系統(tǒng)存儲的指定文件的方法。

當(dāng)備份系統(tǒng)異步復(fù)制或備份有生產(chǎn)系統(tǒng)存儲的文件時(shí),S505中,生產(chǎn)系統(tǒng)根據(jù)備份系統(tǒng)發(fā)送的至少一個(gè)數(shù)據(jù)塊對生產(chǎn)系統(tǒng)存儲的指定文件進(jìn)行修復(fù),可通過如下方式實(shí)現(xiàn):生產(chǎn)系統(tǒng)在接收到至少一個(gè)數(shù)據(jù)塊后可基于自身存儲的差異位圖中是否記錄有至少一個(gè)壞塊的情況,使用至少一個(gè)數(shù)據(jù)塊對至少一個(gè)壞塊進(jìn)行修復(fù)。其中,差異位圖用于記錄生產(chǎn)系統(tǒng)中進(jìn)行過修改、且備份系統(tǒng)未進(jìn)行過相應(yīng)修改的數(shù)據(jù)塊。

由于備份系統(tǒng)異步復(fù)制或備份有生產(chǎn)系統(tǒng)存儲的文件,因而備份系統(tǒng)與生產(chǎn)系統(tǒng)中存儲的文件所包含的數(shù)據(jù)塊并不一定完全一致。生產(chǎn)系統(tǒng)對自身存儲的指定文件進(jìn)行修復(fù)時(shí),需要基于差異位圖中是否記錄有至少一個(gè)壞塊的情況進(jìn)行修復(fù)。采用上述方案,在備份系統(tǒng)異步復(fù)制或備份有生產(chǎn)系統(tǒng)存儲的文件時(shí),提供了一種修復(fù)生產(chǎn)系統(tǒng)存儲的指定文件的方法。

具體地,生產(chǎn)系統(tǒng)在基于差異位圖中是否記錄有至少一個(gè)壞塊的情況對指定文件進(jìn)行修復(fù)時(shí),有以下兩種情況:

第一種情況

當(dāng)差異位圖中未記錄有至少一個(gè)壞塊時(shí),生產(chǎn)系統(tǒng)在至少一個(gè)壞塊的存儲地址下寫入至少一個(gè)數(shù)據(jù)塊,即可完成對生產(chǎn)系統(tǒng)存儲的指定文件的修復(fù)過程;

第二種情況

當(dāng)差異位圖中記錄有至少一個(gè)壞塊時(shí),生產(chǎn)系統(tǒng)根據(jù)自身存儲的對至少一個(gè)壞塊進(jìn)行修改的修改方式,對至少一個(gè)數(shù)據(jù)塊進(jìn)行相應(yīng)修改,并在修改完成后在至少一個(gè)壞塊的存儲地址下寫入修改后的至少一個(gè)數(shù)據(jù)塊。

當(dāng)備份系統(tǒng)異步復(fù)制或備份有生產(chǎn)系統(tǒng)存儲的指定文件時(shí),由于備份系統(tǒng)僅在同步周期到來時(shí)與生產(chǎn)系統(tǒng)進(jìn)行數(shù)據(jù)塊的同步,因此,生產(chǎn)系統(tǒng)中需存儲有差異位圖,用來記錄哪些數(shù)據(jù)塊為生產(chǎn)系統(tǒng)中進(jìn)行過修改、備份系統(tǒng)中未進(jìn)行過相應(yīng)修改的數(shù)據(jù)塊。此外,生產(chǎn)系統(tǒng)中還可存儲有差異位圖中所記錄的數(shù)據(jù)塊的修改方式,以便生產(chǎn)系統(tǒng)在修復(fù)自身存儲的指定文件時(shí),根據(jù)至少一個(gè)壞塊的修改方式對至少一個(gè)數(shù)據(jù)塊做相應(yīng)修改。

需要說明的是,當(dāng)差異位圖中記錄有至少一個(gè)壞塊中的部分?jǐn)?shù)據(jù)塊時(shí),生產(chǎn)系統(tǒng)在接收到至少一個(gè)數(shù)據(jù)塊后,可根據(jù)自身存儲的部分?jǐn)?shù)據(jù)塊的修改方式,對部分?jǐn)?shù)據(jù)塊進(jìn)行修改,并將修改過部分?jǐn)?shù)據(jù)塊的至少一個(gè)數(shù)據(jù)塊作為修改后的至少一個(gè)數(shù)據(jù)塊,然后將修改后的至少一個(gè)數(shù)據(jù)塊寫在至少一個(gè)壞塊的存儲地址,即可完成對生產(chǎn)系統(tǒng)存儲的指定文件的修復(fù)過程。

比如,生產(chǎn)系統(tǒng)存儲的指定文件中包含四個(gè)壞塊A、B、C、D,那么與四個(gè)壞塊對應(yīng)的四個(gè)數(shù)據(jù)塊為備份系統(tǒng)存儲的指定文件中的A、B、C、D四個(gè)數(shù)據(jù)塊,即生產(chǎn)系統(tǒng)發(fā)送第二讀取請求后,備份系統(tǒng)會(huì)將A、B、C、D四個(gè)數(shù)據(jù)塊發(fā)送給生產(chǎn)系統(tǒng)。若差異位圖中記錄有A和B兩個(gè)數(shù)據(jù)塊,即A和B在生產(chǎn)系統(tǒng)中進(jìn)行過修改、在備份系統(tǒng)中未進(jìn)行過相應(yīng)修改,那么生產(chǎn)系統(tǒng)在接收到備份系統(tǒng)發(fā)送的A、B、C、D四個(gè)數(shù)據(jù)塊后,可根據(jù)自身存儲的A和B的修改方式對備份系統(tǒng)發(fā)送的A、B、C、D四個(gè)數(shù)據(jù)塊中的數(shù)據(jù)塊A和數(shù)據(jù)塊B進(jìn)行修改,并將修改過A和B的四個(gè)數(shù)據(jù)塊作為修改后的四個(gè)數(shù)據(jù)塊,然后將修改后的四個(gè)數(shù)據(jù)塊寫在四個(gè)壞塊的存儲地址。

采用圖5所示的文件修復(fù)方法,由于生產(chǎn)系統(tǒng)在確定自身存儲的指定文件中存在至少一個(gè)壞塊后,根據(jù)備份系統(tǒng)發(fā)送的、與至少一個(gè)壞塊對應(yīng)的至少一個(gè)數(shù)據(jù)塊對自身存儲的指定文件進(jìn)行修復(fù),因而在生產(chǎn)系統(tǒng)存儲的指定文件需要修復(fù)時(shí),不必像現(xiàn)有技術(shù)那樣由生產(chǎn)系統(tǒng)向終端設(shè)備報(bào)錯(cuò),并中斷讀取業(yè)務(wù),然后通過用戶手動(dòng)切換到災(zāi)備系統(tǒng)來對生產(chǎn)系統(tǒng)存儲的指定文件進(jìn)行修復(fù)。采用本發(fā)明實(shí)施例提供的文件修復(fù)方法,生產(chǎn)系統(tǒng)可根據(jù)備份系統(tǒng)發(fā)送的至少一個(gè)數(shù)據(jù)塊對自身存儲的指定文件進(jìn)行修復(fù),由于修復(fù)過程是通過生產(chǎn)系統(tǒng)和備份系統(tǒng)的交互實(shí)現(xiàn)的,終端設(shè)備沒有參與修復(fù)過程,也就不會(huì)感知該修復(fù)過程的執(zhí)行,因此,該修復(fù)過程不會(huì)導(dǎo)致終端設(shè)備的讀取業(yè)務(wù)中斷,因而提高了系統(tǒng)為終端設(shè)備提供文件讀寫服務(wù)的效率,避免了系統(tǒng)的業(yè)務(wù)中斷;此外,生產(chǎn)系統(tǒng)對指定文件的修復(fù)過程無需用戶手動(dòng)參與,簡化了修復(fù)過程,提升了用戶體驗(yàn)。

本發(fā)明實(shí)施例提供一種文件修復(fù)裝置,該裝置可用于執(zhí)行圖5所示的文件修復(fù)方法中生產(chǎn)系統(tǒng)所執(zhí)行的操作。如圖6所示,該裝置600包括收發(fā)模塊601、存儲模塊602和修復(fù)模塊603。

其中,收發(fā)模塊601用于接收終端設(shè)備發(fā)送的第一讀取請求,該第一讀取請求用于請求讀取指定文件;存儲模塊602,用于存儲指定文件;修復(fù)模塊603,用于確定存儲模塊602存儲的指定文件中存在至少一個(gè)壞塊;收發(fā)模塊601還用于向備份系統(tǒng)發(fā)送第二讀取請求,以及接收備份系統(tǒng)發(fā)送的至少一個(gè)數(shù)據(jù)塊,該備份系統(tǒng)與生產(chǎn)系統(tǒng)存儲有相同的文件,該第二讀取請求用于請求讀取備份系統(tǒng)存儲的指定文件中與至少一個(gè)壞塊對應(yīng)的至少一個(gè)數(shù)據(jù)塊;修復(fù)模塊603,還用于根據(jù)備份系統(tǒng)發(fā)送的至少一個(gè)數(shù)據(jù)塊對存儲模塊602存儲的指定文件進(jìn)行修復(fù)。

可選地,備份系統(tǒng)與存儲模塊602存儲有相同的文件,具體為:備份系統(tǒng)同步復(fù)制有存儲模塊602存儲的文件。

可選地,修復(fù)模塊603在根據(jù)備份系統(tǒng)發(fā)送的至少一個(gè)數(shù)據(jù)塊對存儲模塊602存儲的指定文件進(jìn)行修復(fù)時(shí),具體用于:在至少一個(gè)壞塊的存儲地址下寫入至少一個(gè)數(shù)據(jù)塊。

可選地,備份系統(tǒng)與存儲模塊602存儲有相同的文件,具體為:備份系統(tǒng)異步復(fù)制或備份有存儲模塊602存儲的文件。

可選地,存儲模塊602還用于:存儲差異位圖,差異位圖用于記錄存儲模塊602中進(jìn)行過修改、且備份系統(tǒng)未進(jìn)行過相應(yīng)修改的數(shù)據(jù)塊;修復(fù)模塊603在根據(jù)備份系統(tǒng)發(fā)送的至少一個(gè)數(shù)據(jù)塊對存儲模塊602存儲的指定文件進(jìn)行修復(fù)時(shí),具體用于:基于差異位圖中是否記錄有至少一個(gè)壞塊的情況,使用至少一個(gè)數(shù)據(jù)塊對至少一個(gè)壞塊進(jìn)行修復(fù)。

可選地,存儲模塊602還用于存儲至少一個(gè)壞塊的修改方式;修復(fù)模塊603在基于差異位圖中是否記錄有至少一個(gè)壞塊的情況,使用至少一個(gè)數(shù)據(jù)塊對至少一個(gè)壞塊進(jìn)行修復(fù)時(shí),具體用于:當(dāng)差異位圖中未記錄有至少一個(gè)壞塊時(shí),在至少一個(gè)壞塊的存儲地址下寫入至少一個(gè)數(shù)據(jù)塊;或者當(dāng)差異位圖中記錄有至少一個(gè)壞塊時(shí),根據(jù)至少一個(gè)壞塊的修改方式,對至少一個(gè)數(shù)據(jù)塊進(jìn)行修改;在至少一個(gè)壞塊的存儲地址下寫入修改后的至少一個(gè)數(shù)據(jù)塊。

可選地,收發(fā)模塊601還用于在修復(fù)模塊603根據(jù)備份系統(tǒng)發(fā)送的至少一個(gè)數(shù)據(jù)塊對存儲模塊602存儲的指定文件進(jìn)行修復(fù)之后,可將存儲模塊602存儲的指定文件發(fā)送給終端設(shè)備;或者,收發(fā)模塊601在接收備份系統(tǒng)發(fā)送的至少一個(gè)數(shù)據(jù)塊之前,將指定文件中除至少一個(gè)壞塊之外的其他數(shù)據(jù)塊發(fā)送給終端設(shè)備,并在接收備份系統(tǒng)發(fā)送的至少一個(gè)數(shù)據(jù)塊之后,將至少一個(gè)數(shù)據(jù)塊發(fā)送給終端設(shè)備。

在文件修復(fù)裝置600中,由于修復(fù)模塊603在確定存儲模塊602存儲的指定文件中存在至少一個(gè)壞塊后,根據(jù)備份系統(tǒng)發(fā)送的至少一個(gè)數(shù)據(jù)塊對存儲模塊602存儲的指定文件進(jìn)行修復(fù),因而在存儲模塊602存儲的指定文件需要修復(fù)時(shí),不必像現(xiàn)有技術(shù)那樣向終端設(shè)備報(bào)錯(cuò),并中斷讀取業(yè)務(wù),然后通過用戶手動(dòng)切換到災(zāi)備系統(tǒng)來對存儲模塊602存儲的指定文件進(jìn)行修復(fù)。在文件修復(fù)裝置600中,修復(fù)模塊603可根據(jù)備份系統(tǒng)發(fā)送的至少一個(gè)數(shù)據(jù)塊對存儲模塊602存儲的指定文件進(jìn)行修復(fù),由于修復(fù)過程是通過文件修復(fù)裝置600和備份系統(tǒng)的交互實(shí)現(xiàn)的,終端設(shè)備沒有參與修復(fù)過程,也就不會(huì)感知該修復(fù)過程的執(zhí)行,因此,該修復(fù)過程不會(huì)導(dǎo)致終端設(shè)備的讀取業(yè)務(wù)中斷,因而提高了文件修復(fù)裝置為終端設(shè)備提供文件讀寫服務(wù)的效率,避免了系統(tǒng)的業(yè)務(wù)中斷;此外,修復(fù)模塊603對指定文件的修復(fù)過程無需用戶手動(dòng)參與,簡化了修復(fù)過程,提升了用戶體驗(yàn)。

需要說明的是本發(fā)明實(shí)施例提供的文件修復(fù)裝置600可用于執(zhí)行圖5所示的文件修復(fù)方法中生產(chǎn)系統(tǒng)執(zhí)行的操作,文件修復(fù)裝置600未詳細(xì)解釋和描述的實(shí)現(xiàn)方式可參考圖5所示的文件修復(fù)方法中的相關(guān)描述。

需要說明的是,本發(fā)明實(shí)施例中對模塊的劃分是示意性的,僅僅為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可以有另外的劃分方式。另外,在本申請各個(gè)實(shí)施例中的各功能模塊可以集成在一個(gè)處理模塊中,也可以是各個(gè)模塊單獨(dú)物理存在,也可以兩個(gè)或兩個(gè)以上模塊集成在一個(gè)模塊中。上述集成的模塊既可以采用硬件的形式實(shí)現(xiàn),也可以采用軟件功能模塊的形式實(shí)現(xiàn)。

基于以上實(shí)施例,本發(fā)明實(shí)施例還提供了一種文件修復(fù)裝置,該文件修復(fù)裝置可以執(zhí)行圖5對應(yīng)的實(shí)施例提供的方法,可以與圖6所示的文件修復(fù)裝置600相同。

參見圖7,文件修復(fù)裝置700包括至少一個(gè)處理器701、存儲器702和通信接口703;所述至少一個(gè)處理器701、所述存儲器702和所述通信接口703均通過總線704連接;

所述存儲器702,用于存儲計(jì)算機(jī)執(zhí)行指令;

所述至少一個(gè)處理器701,用于執(zhí)行所述存儲器702存儲的計(jì)算機(jī)執(zhí)行指令,使得所述文件修復(fù)裝置700通過所述通信接口703與其它設(shè)備(例如終端設(shè)備和備份系統(tǒng))進(jìn)行數(shù)據(jù)交互來執(zhí)行上述實(shí)施例提供的文件修復(fù)方法。

至少一個(gè)處理器701,可以包括不同類型的處理器701,或者包括相同類型的處理器701;處理器701可以是以下的任一種:中央處理器(Central Processing Unit,簡稱CPU)、ARM處理器、現(xiàn)場可編程門陣列(Field Programmable Gate Array,簡稱FPGA)、專用處理器等具有計(jì)算處理能力的器件。一種可選實(shí)施方式,所述至少一個(gè)處理器701還可以集成為眾核處理器。

存儲器702可以是以下的任一種或任一種組合:隨機(jī)存取存儲器(Random Access Memory,簡稱RAM)、只讀存儲器(read only memory,簡稱ROM)、非易失性存儲器(non-volatile memory,簡稱NVM)、固態(tài)硬盤(Solid State Drives,簡稱SSD)、機(jī)械硬盤、磁盤、磁盤陣列等存儲介質(zhì)。

通信接口703用于文件修復(fù)裝置700與其他設(shè)備(例如終端設(shè)備和備份系統(tǒng))進(jìn)行數(shù)據(jù)交互。通信接口703可以是以下的任一種或任一種組合:網(wǎng)絡(luò)接口(例如以太網(wǎng)接口)、無線網(wǎng)卡等具有網(wǎng)絡(luò)接入功能的器件。

該總線704可以包括地址總線、數(shù)據(jù)總線、控制總線等,為便于表示,圖7用一條粗線表示該總線??偩€704可以是以下的任一種或任一種組合:工業(yè)標(biāo)準(zhǔn)體系結(jié)構(gòu)(Industry Standard Architecture,簡稱ISA)總線、外設(shè)組件互連標(biāo)準(zhǔn)(Peripheral Component Interconnect,簡稱PCI)總線、擴(kuò)展工業(yè)標(biāo)準(zhǔn)結(jié)構(gòu)(Extended Industry Standard Architecture,簡稱EISA)總線等有線數(shù)據(jù)傳輸?shù)钠骷?/p>

本發(fā)明實(shí)施例提供一種文件修復(fù)裝置,該裝置可用于執(zhí)行圖5所示的文件修復(fù)方法中備份系統(tǒng)所執(zhí)行的操作。如圖8所示,該裝置800包括存儲模塊801和收發(fā)模塊802。

存儲模塊801,用于存儲指定文件;

收發(fā)模塊802,用于接收生產(chǎn)系統(tǒng)發(fā)送的第二讀取請求,以及將至少一個(gè)數(shù)據(jù)塊發(fā)送給生產(chǎn)系統(tǒng)。其中,該存儲模塊801與生產(chǎn)系統(tǒng)存儲有相同的文件,生產(chǎn)系統(tǒng)存儲的指定文件中存在至少一個(gè)壞塊,該第二讀取請求用于請求讀取存儲模塊801存儲的指定文件中與至少一個(gè)壞塊對應(yīng)的至少一個(gè)數(shù)據(jù)塊,該至少一個(gè)數(shù)據(jù)塊用于生產(chǎn)系統(tǒng)根據(jù)該至少一個(gè)數(shù)據(jù)塊對生產(chǎn)系統(tǒng)存儲的指定文件進(jìn)行修復(fù)。

在生產(chǎn)系統(tǒng)在確定自身存儲的指定文件中存在至少一個(gè)壞塊后,生產(chǎn)系統(tǒng)可根據(jù)收發(fā)模塊802發(fā)送的、與至少一個(gè)壞塊對應(yīng)的至少一個(gè)數(shù)據(jù)塊對自身存儲的指定文件進(jìn)行修復(fù),因而在生產(chǎn)系統(tǒng)存儲的指定文件需要修復(fù)時(shí),不必像現(xiàn)有技術(shù)那樣由生產(chǎn)系統(tǒng)向終端設(shè)備報(bào)錯(cuò),并中斷讀取業(yè)務(wù),然后通過用戶手動(dòng)切換到災(zāi)備系統(tǒng)來對生產(chǎn)系統(tǒng)存儲的指定文件進(jìn)行修復(fù)。采用第四方面提供的文件修復(fù)裝置,生產(chǎn)系統(tǒng)可根據(jù)收發(fā)模塊802發(fā)送的至少一個(gè)數(shù)據(jù)塊對自身存儲的指定文件進(jìn)行修復(fù),由于修復(fù)過程是通過生產(chǎn)系統(tǒng)和文件修復(fù)裝置800的交互實(shí)現(xiàn)的,終端設(shè)備沒有參與修復(fù)過程,也就不會(huì)感知該修復(fù)過程的執(zhí)行,因此,該修復(fù)過程不會(huì)導(dǎo)致讀取業(yè)務(wù)中斷,因而提高了系統(tǒng)為終端設(shè)備提供文件讀寫服務(wù)的效率,避免了系統(tǒng)的業(yè)務(wù)中斷;此外,生產(chǎn)系統(tǒng)對指定文件的修復(fù)過程無需用戶手動(dòng)參與,簡化了修復(fù)過程,提升了用戶體驗(yàn)。

需要說明的是本發(fā)明實(shí)施例提供的文件修復(fù)裝置800可用于執(zhí)行圖5所示的文件修復(fù)方法中備份系統(tǒng)執(zhí)行的操作,文件修復(fù)裝置800未詳細(xì)解釋和描述的實(shí)現(xiàn)方式可參考圖5所示的文件修復(fù)方法中的相關(guān)描述。

基于以上實(shí)施例,本發(fā)明實(shí)施例還提供了一種文件修復(fù)裝置,該文件修復(fù)裝置可以執(zhí)行圖5對應(yīng)的實(shí)施例提供的方法,可以與圖8所示的文件修復(fù)裝置800相同。

參見圖9,文件修復(fù)裝置900包括至少一個(gè)處理器901、存儲器902和通信接口903;所述至少一個(gè)處理器901、所述存儲器902和所述通信接口903均通過總線904連接;

所述存儲器902,用于存儲計(jì)算機(jī)執(zhí)行指令;

所述至少一個(gè)處理器901,用于執(zhí)行所述存儲器902存儲的計(jì)算機(jī)執(zhí)行指令,使得所述文件修復(fù)裝置900通過所述通信接口903與其它設(shè)備(例如終端設(shè)備和生產(chǎn)系統(tǒng))進(jìn)行數(shù)據(jù)交互來執(zhí)行上述實(shí)施例提供的文件修復(fù)方法。

至少一個(gè)處理器901,可以包括不同類型的處理器901,或者包括相同類型的處理器901;處理器901可以是以下的任一種CPU、ARM處理器、FPGA、專用處理器等具有計(jì)算處理能力的器件。一種可選實(shí)施方式,所述至少一個(gè)處理器901還可以集成為眾核處理器。

存儲器902可以是以下的任一種或任一種組合:RAM、ROM、NVM、SSD、機(jī)械硬盤、磁盤、磁盤陣列等存儲介質(zhì)。

通信接口903用于文件修復(fù)裝置900與其他設(shè)備(例如終端設(shè)備和生產(chǎn)系統(tǒng))進(jìn)行數(shù)據(jù)交互。通信接口903可以是以下的任一種或任一種組合:網(wǎng)絡(luò)接口(例如以太網(wǎng)接口)、無線網(wǎng)卡等具有網(wǎng)絡(luò)接入功能的器件。

該總線904可以包括地址總線、數(shù)據(jù)總線、控制總線等,為便于表示,圖9用一條粗線表示該總線??偩€904可以是以下的任一種或任一種組合:ISA總線、PCI總線、EISA總線等有線數(shù)據(jù)傳輸?shù)钠骷?/p>

本發(fā)明實(shí)施例還提供一種文件系統(tǒng)。如圖10所示,該文件系統(tǒng)1000包含圖6所示的文件修復(fù)裝置600和圖8所示的文件修復(fù)裝置800,該文件系統(tǒng)1000中的文件修復(fù)裝置600和文件修復(fù)裝置800可進(jìn)行交互,從而完成圖5所示的文件修復(fù)方法。

綜上,采用本發(fā)明實(shí)施例提供的文件修復(fù)方法和裝置,生產(chǎn)系統(tǒng)可根據(jù)備份系統(tǒng)發(fā)送的至少一個(gè)數(shù)據(jù)塊對自身存儲的指定文件進(jìn)行修復(fù),由于修復(fù)過程是通過生產(chǎn)系統(tǒng)和備份系統(tǒng)的交互實(shí)現(xiàn)的,終端設(shè)備沒有參與修復(fù)過程,也就不會(huì)感知該修復(fù)過程的執(zhí)行,因此,該修復(fù)過程不會(huì)導(dǎo)致終端設(shè)備的讀取業(yè)務(wù)中斷,因而提高了系統(tǒng)為終端設(shè)備提供文件讀寫服務(wù)的效率,避免了系統(tǒng)的業(yè)務(wù)中斷;此外,生產(chǎn)系統(tǒng)對指定文件的修復(fù)過程無需用戶手動(dòng)參與,簡化了修復(fù)過程,提升了用戶體驗(yàn)。

本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本發(fā)明的實(shí)施例可提供為方法、系統(tǒng)、或計(jì)算機(jī)程序產(chǎn)品。因此,本發(fā)明可采用完全硬件實(shí)施例、完全軟件實(shí)施例、或結(jié)合軟件和硬件方面的實(shí)施例的形式。而且,本發(fā)明可采用在一個(gè)或多個(gè)其中包含有計(jì)算機(jī)可用程序代碼的計(jì)算機(jī)可用存儲介質(zhì)(包括但不限于磁盤存儲器、CD-ROM、光學(xué)存儲器等)上實(shí)施的計(jì)算機(jī)程序產(chǎn)品的形式。

本發(fā)明是參照根據(jù)本發(fā)明實(shí)施例的方法、設(shè)備(系統(tǒng))、和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或方框圖來描述的。應(yīng)理解可由計(jì)算機(jī)程序指令實(shí)現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合。可提供這些計(jì)算機(jī)程序指令到通用計(jì)算機(jī)、專用計(jì)算機(jī)、嵌入式處理機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個(gè)機(jī)器,使得通過計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的裝置。

這些計(jì)算機(jī)程序指令也可存儲在能引導(dǎo)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計(jì)算機(jī)可讀存儲器中,使得存儲在該計(jì)算機(jī)可讀存儲器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能。

這些計(jì)算機(jī)程序指令也可裝載到計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的處理,從而在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的步驟。

盡管已描述了本發(fā)明的優(yōu)選實(shí)施例,但本領(lǐng)域內(nèi)的技術(shù)人員一旦得知了基本創(chuàng)造性概念,則可對這些實(shí)施例做出另外的變更和修改。所以,所附權(quán)利要求意欲解釋為包括優(yōu)選實(shí)施例以及落入本發(fā)明范圍的所有變更和修改。

顯然,本領(lǐng)域的技術(shù)人員可以對本發(fā)明實(shí)施例進(jìn)行各種改動(dòng)和變型而不脫離本發(fā)明實(shí)施例的精神和范圍。這樣,倘若本發(fā)明實(shí)施例的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動(dòng)和變型在內(nèi)。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會(huì)獲得點(diǎn)贊!
1