本發(fā)明涉及計算機領(lǐng)域,具體來說,涉及一種文件同步的方法和一種文件同步的系統(tǒng)。
背景技術(shù):
在計算機領(lǐng)域中,數(shù)據(jù)是信息的載體,所以對數(shù)據(jù)的保護十分重要。因此如何正確、有效地將數(shù)據(jù)保護起來,是當今較為重要的研究課題。復(fù)制,即是實現(xiàn)數(shù)據(jù)保護的途徑之一。復(fù)制,是指為防止系統(tǒng)出現(xiàn)操作失誤或系統(tǒng)故障導致數(shù)據(jù)丟失,而將全部或部分數(shù)據(jù)集合并復(fù)制到其它的存儲介質(zhì)的過程。按復(fù)制的對象來區(qū)分,現(xiàn)有的復(fù)制可分為文件復(fù)制、數(shù)據(jù)庫復(fù)制、塊級復(fù)制、虛擬化復(fù)制等。其中,文件復(fù)制是所有復(fù)制方式中使用最為廣泛的一種。
現(xiàn)有的一種遠程文件復(fù)制技術(shù),在復(fù)制文件過程中,在父目錄未創(chuàng)建時,會導致文件頻繁創(chuàng)建不成功,文件可能晚于父目錄到達訪問修改文件,引起父目錄元數(shù)據(jù)的變化。
針對相關(guān)技術(shù)中父目錄未創(chuàng)建時文件創(chuàng)建不成功及因此導致的父目錄元數(shù)據(jù)變化的問題,目前尚未提出有效的解決方案。
技術(shù)實現(xiàn)要素:
針對相關(guān)技術(shù)中父目錄未創(chuàng)建時文件創(chuàng)建不成功及其導致的父目錄元數(shù)據(jù)變化的問題,本發(fā)明提出一種文件同步的方法和一種文件同步的系統(tǒng),能夠提高復(fù)制系統(tǒng)的服務(wù)能力,避免父目錄未創(chuàng)建時文件創(chuàng)建不成功及因此導致的父目錄元數(shù)據(jù)變化的問題。
本發(fā)明的技術(shù)方案是這樣實現(xiàn)的:根據(jù)本發(fā)明的一個方面,提供了一種文件同步的方法。
該文件同步的方法包括:獲取用戶設(shè)置的策略并根據(jù)策略獲取已經(jīng)修改的數(shù)據(jù),數(shù)據(jù)包括文件列表;將文件列表分解為復(fù)制子任務(wù),復(fù)制子任務(wù)包括:文件夾子任務(wù)和文件子任務(wù);對文件夾子任務(wù)進行文件夾比對,并完成文件夾子任務(wù)的復(fù)制;以及對文件子任務(wù)進行文件比對,完成文件子任務(wù)的復(fù)制。
優(yōu)選地,數(shù)據(jù)還包括:目錄;以及復(fù)制子任務(wù)還包括:目錄層深子任務(wù)。
優(yōu)選地,在對文件子任務(wù)進行文件比對,完成文件子任務(wù)的復(fù)制之后,還包括:從目錄的最深一層形開始,逐層完成目錄的元數(shù)據(jù)修改。
優(yōu)選地,在對文件夾子任務(wù)進行文件夾比對,并完成文件夾子任務(wù)的復(fù)制之前,還包括:將復(fù)制子任務(wù)下盤保存。
優(yōu)選地,在將復(fù)制子任務(wù)下盤保存之后,還包括:將復(fù)制子任務(wù)添加到策略中。
優(yōu)選地,文件子任務(wù)包括:小文件子任務(wù)和大文件子任務(wù)。
優(yōu)選地,完成文件子任務(wù)的復(fù)制,包括:完成小文件子任務(wù)的復(fù)制;以及完成大文件子任務(wù)的復(fù)制。
優(yōu)選地,大文件子任務(wù)為文件大小在4M以上的文件子任務(wù);以及小文件子任務(wù)為文件大小小于4M的文件子任務(wù)。
根據(jù)本發(fā)明的另一個方面,還提供了一種文件同步的系統(tǒng)。
該文件同步的系統(tǒng)包括:管理節(jié)點,用于獲取用戶設(shè)置的策略;文件復(fù)制控制器,與管理節(jié)點通信連接,用于保存策略并管理策略的執(zhí)行;文件掃描控制器,與文件復(fù)制控制器通信連接,用于根據(jù)策略獲取已經(jīng)修改的數(shù)據(jù);以及文件復(fù)制服務(wù)器,與文件復(fù)制控制器通信連接,用于將數(shù)據(jù)分解為復(fù)制子任務(wù)、進行文件夾比對、進行文件比對、完成復(fù)制子任務(wù)的復(fù)制。
優(yōu)選地,還包括:管理節(jié)點還用于管理文件復(fù)制控制器和文件復(fù)制服務(wù)器;以及文件復(fù)制控制器還用于完成目錄的元數(shù)據(jù)修改。
本發(fā)明通過將文件列表分解為子文件夾子任務(wù)和文件子任務(wù),并通過在進行文件夾子任務(wù)的復(fù)制前進行文件夾比對、在進行文件子任務(wù)的復(fù)制前進行文件比對,避免了父文件目錄未創(chuàng)建時頻繁創(chuàng)建文件不成功的問題。
附圖說明
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1是根據(jù)本發(fā)明實施例的文件同步的方法的流程圖;
圖2是根據(jù)本發(fā)明另一個實施例的文件同步的方法的流程圖;
圖3是根據(jù)本發(fā)明實施例的文件同步的系統(tǒng)的框圖。
具體實施方式
下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
根據(jù)本發(fā)明的實施例,提供了一種文件同步的方法。
如圖1所示,根據(jù)本發(fā)明實施例的文件同步的方法包括:
步驟S101,獲取用戶設(shè)置的策略并根據(jù)策略獲取已經(jīng)修改的數(shù)據(jù),數(shù)據(jù)包括文件列表;
步驟S103,將文件列表分解為復(fù)制子任務(wù),復(fù)制子任務(wù)包括:文件夾子任務(wù)和文件子任務(wù);
步驟S105,對文件夾子任務(wù)進行文件夾比對,并完成文件夾子任務(wù)的復(fù)制;
步驟S107,對文件子任務(wù)進行文件比對,完成文件子任務(wù)的復(fù)制。
本發(fā)明的文件同步的方法,通過將文件列表分解為子文件夾子任務(wù)和文件子任務(wù),并通過在進行文件夾子任務(wù)的復(fù)制前進行文件夾比對、在進行文件子任務(wù)的復(fù)制前進行文件比對,避免了父文件目錄未創(chuàng)建時頻繁創(chuàng)建文件不成功的問題。
在一個實施例中,上述數(shù)據(jù)還包括目錄,相應(yīng)的復(fù)制子任務(wù)還包括目錄層深子任務(wù)。
進一步地,在步驟S107之后,還包括以下步驟:從目錄的最深一層形開始,逐層完成目錄的元數(shù)據(jù)修改。
由于文件可能晚于父目錄到達訪問修改文件將引起父目錄元數(shù)據(jù)的變化,最終影響目錄的元數(shù)據(jù)屬性。通過將目錄按層級關(guān)系,從最深層到根,逐層進行目錄的元數(shù)據(jù)修改,能夠保證目錄元數(shù)據(jù)屬性的一致性、所有文件夾的元數(shù)據(jù)屬性都和源端一致。
在一個實施例中,在步驟S105之前還包括以下步驟:
將復(fù)制子任務(wù)下盤保存;
將復(fù)制子任務(wù)添加到策略中。
在本實施例中,當所有復(fù)制子任務(wù)均處理完成后,更新策略的執(zhí)行信息為已完成。如果策略為周期執(zhí)行,則返回步驟S101。
如圖2所示,根據(jù)本發(fā)明另一個實施例的文件同步的方法,具體包括如下步驟:
在步驟S201中,查看策略調(diào)度時間;
在步驟S202中,判斷執(zhí)行時間是否到來,如果執(zhí)行時間沒有到,則返回步驟S201;
在步驟S203中,當執(zhí)行時間到來后,從文件掃描控制器oScan獲取目錄和文件列表;
在步驟S204中,將目錄和文件列表分解為文件夾子任務(wù)、文件子任務(wù)、和目錄層深子任務(wù);
在步驟S205中,將文件夾子任務(wù)、文件子任務(wù)、和目錄層深子任務(wù)下盤保存;
在步驟S206中,將文件夾子任務(wù)、文件子任務(wù)、和目錄層深子保存在策略鏈表中;
在步驟S207中,檢測正在執(zhí)行的策略數(shù),并將正在執(zhí)行的策略數(shù)與設(shè)定的策略數(shù)進行比較;
在步驟S208中,當正在執(zhí)行的策略數(shù)小于設(shè)定的策略數(shù)時,選取可執(zhí)行任務(wù)的文件復(fù)制控制器oBks;
在步驟S209中,向文件復(fù)制控制器oBks發(fā)送文件夾子任務(wù);
在步驟S210中,判斷文件夾子任務(wù)是否完成;
在步驟S211中,在文件夾子任務(wù)完成的情況下,向文件復(fù)制控制器oBks發(fā)送文件子任務(wù);
在步驟S212中,判斷文件子任務(wù)是否完成;
在步驟S213中,在文件子任務(wù)完成的情況下,向文件復(fù)制控制器oBks發(fā)送目錄層深子任務(wù);
在步驟S214中,等待目錄層深子任務(wù)完成。
在本實施例中,通過將文件列表和目錄分解為文件夾子任務(wù)、文件子任務(wù)、和目錄層深子任務(wù),將文件夾子任務(wù)、文件子任務(wù)、和目錄層深子任務(wù)下盤存儲,并依次完成文件夾子任務(wù)、文件子任務(wù)、目錄層深子任務(wù)的復(fù)制,降低了內(nèi)存使用,提高了復(fù)制系統(tǒng)的服務(wù)能力。
在一個實施例中,文件子任務(wù)包括:小文件子任務(wù)和大文件子任務(wù)。
其中,小文件子任務(wù)和大文件子任務(wù)可以根據(jù)實際需要進行劃分。例如,大文件子任務(wù)為文件大小在4M以上的文件子任務(wù);小文件子任務(wù)為文件大小小于4M的文件子任務(wù)。
進一步地,完成文件子任務(wù)的復(fù)制,包括以下步驟:
完成小文件子任務(wù)的復(fù)制;
完成大文件子任務(wù)的復(fù)制。
根據(jù)本發(fā)明的實施例,還提供了一種文件同步的系統(tǒng)。
根據(jù)本發(fā)明實施例的文件同步的系統(tǒng)包括:
管理節(jié)點模塊:用于獲取用戶設(shè)置的策略;
文件復(fù)制控制器,用于保存策略并管理策略的執(zhí)行;
文件掃描控制器,用于根據(jù)策略獲取已經(jīng)修改的數(shù)據(jù);
文件復(fù)制服務(wù)器,用于將數(shù)據(jù)分解為復(fù)制子任務(wù)、進行文件夾比對、進行文件比對、完成復(fù)制子任務(wù)的復(fù)制。
本發(fā)明的文件同步的系統(tǒng),通過文件復(fù)制服務(wù)器將文件列表分解為子文件夾子任務(wù)和文件子任務(wù)、并在進行文件夾子任務(wù)的復(fù)制前進行文件夾比對、在進行文件子任務(wù)的復(fù)制前進行文件比對,避免了父文件目錄未創(chuàng)建時頻繁創(chuàng)建文件不成功的問題。
在一個實施例中,管理節(jié)點還用于管理文件復(fù)制控制器和文件復(fù)制服務(wù)器;文件復(fù)制控制器還用于完成目錄的元數(shù)據(jù)修改。
具體的,文件復(fù)制控制器控制各個策略的生命周期,保證策略間按照調(diào)度方案有序的執(zhí)行,在策略運行的過程中,觸發(fā)策略進入不同的策略狀態(tài),執(zhí)行文件的同步。文件復(fù)制控制器還可以用于查詢策略,若策略執(zhí)行時間到來,則啟動策略執(zhí)行。
參考圖3,對應(yīng)于源端設(shè)置有第一文件掃描控制器oScan1、與第一文件掃描控制器oScan1通信連接的第一文件復(fù)制控制器oBke1、與第一文件復(fù)制控制器oBke1通信連接的至少一組第一文件復(fù)制服務(wù)器oBks1和第一管理節(jié)點模塊MGR1;對應(yīng)于目標端設(shè)置有第二文件掃描控制器oScan2、與第二文件掃描控制器oScan2通信連接的第二文件復(fù)制控制器oBke2、與第二文件復(fù)制控制器oBke2通信連接的至少一組第二文件復(fù)制服務(wù)器oBks2和第二管理節(jié)點模塊MGR2;其中,源端對應(yīng)的第一文件復(fù)制控制器oBke1與目標端對應(yīng)的第二文件復(fù)制控制器oBke2通信連接,源端對應(yīng)的第一文件復(fù)制服務(wù)器oBks1與目標端對應(yīng)的第二文件復(fù)制服務(wù)器oBks2通信連接。
用戶可以從界面添加復(fù)制的源端和目標端節(jié)點,設(shè)置策略,設(shè)定成功的策略保存在第一文件復(fù)制控制器oBke1和第二文件復(fù)制控制器oBke2;目標端的第二文件復(fù)制控制器oBke2從第二文件掃描控制器oScan2上獲取基于該策略所修改的數(shù)據(jù)并將這些數(shù)據(jù)分解成子任務(wù);在子任務(wù)分解完成后,會向各個第二文件復(fù)制服務(wù)器oBks2推送子任務(wù),第二文件復(fù)制服務(wù)器oBks2接到子任務(wù)后將執(zhí)行,從而將數(shù)據(jù)從源端復(fù)制到目標端,并修改元數(shù)據(jù),同時將子任務(wù)執(zhí)行結(jié)果返回給第二文件復(fù)制控制器oBke2。
綜上所述,借助于本發(fā)明的上述技術(shù)方案,通過將文件列表和目錄分解為文件夾子任務(wù)、文件子任務(wù)、目錄層深子任務(wù)并下盤存儲,依次完成文件夾子任務(wù)、文件子任務(wù)、目錄層深子任務(wù)的復(fù)制,并在進行文件夾子任務(wù)的復(fù)制前進行文件夾比對、在進行文件子任務(wù)的復(fù)制前進行文件比對,避免了父文件目錄未創(chuàng)建時頻繁創(chuàng)建文件不成功的現(xiàn)象,解決了因文件晚于父目錄到達訪問修改文件引起的父目錄元數(shù)據(jù)變化的問題;通過按照層級關(guān)系從最深層到根逐層進行目錄元數(shù)據(jù)的修改,保證了目錄元數(shù)據(jù)屬性與源端的一致性,降低了內(nèi)存使用,提高了復(fù)制系統(tǒng)的服務(wù)能力。
以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。