文件備份方法和主存儲設(shè)備的制作方法
【專利摘要】本發(fā)明實施例提供一種文件備份方法和主存儲設(shè)備,所述方法中,主存儲設(shè)備通過將主文件的存儲空間劃分為N個子數(shù)據(jù)塊,在增量備份的每個備份時刻,將上一備份時刻到本次備份時刻之間的被更新的子數(shù)據(jù)塊中的數(shù)據(jù)拷貝到本地備份緩沖區(qū)中,在差量備份的每個備份時刻,將初始備份時刻到本次備份時刻之間被更新的子數(shù)據(jù)塊中數(shù)據(jù)拷貝到本地備份緩沖區(qū)中,主存儲設(shè)備只需要同步本地備份緩沖區(qū)中存儲的被更新的子數(shù)據(jù)塊中的數(shù)據(jù),沒有被更新的子數(shù)據(jù)塊的數(shù)據(jù)不需要同步,從而能夠減少文件備份的數(shù)據(jù)量,提高文件備份效率,節(jié)省備份數(shù)據(jù)的存儲空間。
【專利說明】文件備份方法和主存儲設(shè)備
【技術(shù)領(lǐng)域】
[0001]本發(fā)明實施例涉及數(shù)據(jù)通信技術(shù),尤其涉及一種文件備份方法和主存儲設(shè)備。
【背景技術(shù)】
[0002]數(shù)據(jù)備份是保護(hù)企業(yè)核心數(shù)據(jù)的一種常見方法,在很多企業(yè)應(yīng)用中,存在大量的文件,諸如IBM lotus Motes MSF文件和虛擬機(jī)虛擬磁盤文件VMDK/VHD)這類文件,文件大而且經(jīng)常變化,如果每次備份都將所有文件進(jìn)行一次全備份,將會消耗非常大的存儲空間,無疑加大了企業(yè)的IT投資。
[0003]針對上述問題,現(xiàn)有技術(shù)中通常采用差量備份和增量備份,增量備份需要備份上一次全備份或上一次增量備份后增加或者被修改的文件,差量備份需要備份上一次全備份之后增加或者被修改的文件。在增量備份和差量備份中,會將增加或者被修改的整個文件都備份,例如I個1G的文件被修改了,但是該1G的文件中只有IKB數(shù)據(jù)變化了,按照現(xiàn)有的增量備份和差量備份方法,需要將該1G的文件全部備份,導(dǎo)致大量存儲空間被浪費。
【發(fā)明內(nèi)容】
[0004]本發(fā)明實施例提供一種文件備份方法和主存儲設(shè)備,能夠節(jié)約備份文件占用的存儲空間。
[0005]本發(fā)明第一方面提供一種文件備份方法,包括:
[0006]主存儲設(shè)備將主文件的存儲空間劃分為N個子數(shù)據(jù)塊,N為大于等于2的正整數(shù);
[0007]在初始備份時刻,所述主存儲設(shè)備將所述主文件中的初始數(shù)據(jù)同步到備份存儲設(shè)備的備份文件中;
[0008]在第M個備份時刻,所述主存儲設(shè)備將第M-1個備份時刻到所述第M個備份時刻之間被更新的子數(shù)據(jù)塊中的數(shù)據(jù)拷貝到本地備份緩沖區(qū),所述第M-1個備份時刻為所述第M個備份時刻的上一備份時刻,M為大于等于2的正整數(shù);
[0009]所述主存儲設(shè)備將所述本地備份緩沖區(qū)中的所述第M-1個備份時刻到所述第M個備份時刻之間被更新的子數(shù)據(jù)塊中的數(shù)據(jù)同步到所述備份存儲設(shè)備的快照資源池中,所述快照資源池用于存儲所述備份文件的增量數(shù)據(jù)。
[0010]結(jié)合本發(fā)明第一方面,在本發(fā)明第一方面的第一種可能的實現(xiàn)方式中,所述主存儲設(shè)備將第M-ι個備份時刻到所述第M個備份時刻之間被更新的子數(shù)據(jù)塊中的數(shù)據(jù)拷貝到本地備份緩沖區(qū),包括:
[0011 ] 所述主存儲設(shè)備根據(jù)所述N個子數(shù)據(jù)塊中的數(shù)據(jù)分別生成所述N個子數(shù)據(jù)塊對應(yīng)的第M個備份時刻的哈希值;
[0012]所述主存儲設(shè)備依次判斷所述N個子數(shù)據(jù)塊的第M個備份時刻的哈希值與第M-1個備份時刻的哈希值是否相同;
[0013]若所述N個子數(shù)據(jù)塊中的第i個子數(shù)據(jù)塊的第M個備份時刻的哈希值與第M-1個備份時刻的哈希值相同,則所述主存儲設(shè)備確定所述第i個子數(shù)據(jù)塊中的數(shù)據(jù)沒有被更新;
[0014]若所述N個子數(shù)據(jù)塊中的第i個子數(shù)據(jù)塊的每個子數(shù)據(jù)塊的第M個備份時刻的哈希值與第M-1個備份時刻的哈希值不相同,則所述主存儲設(shè)備確定所述第i個子數(shù)據(jù)塊中的數(shù)據(jù)被更新了;
[0015]所述主存儲設(shè)備將所述N個子數(shù)據(jù)塊中被更新的子數(shù)據(jù)塊中的數(shù)據(jù)拷貝到所述本地備份緩沖區(qū)。
[0016]結(jié)合本發(fā)明第一方面的第一種可能的實現(xiàn)方式,在本發(fā)明第一方面的第二種可能的實現(xiàn)方式中,所述主存儲設(shè)備將所述本地備份緩沖區(qū)中的所述第M-1個備份時刻到所述第M個備份時刻之間被更新的子數(shù)據(jù)塊中的數(shù)據(jù)同步到所述備份存儲設(shè)備的快照資源池中之后,所述方法還包括:
[0017]所述主存儲設(shè)備將所述N個子數(shù)據(jù)塊的第M個備份時刻的哈希值發(fā)送給所述備份存儲設(shè)備,以使所述備份存儲設(shè)備根據(jù)所述N個子數(shù)據(jù)塊的第M個備份時刻的哈希值和所述第M個備份時刻之前的所有備份時刻的哈希值恢復(fù)所述主文件的數(shù)據(jù)。
[0018]結(jié)合本發(fā)明第一方面的第一種可能的實現(xiàn)方式,在本發(fā)明第一方面的第三種可能的實現(xiàn)方式中,所述主存儲設(shè)備將所述本地備份緩沖區(qū)中的所述第M-1個備份時刻到所述第M個備份時刻之間被更新的子數(shù)據(jù)塊中的數(shù)據(jù)同步到所述備份存儲設(shè)備的快照資源池中之后,所述方法還包括:
[0019]若所述N個子數(shù)據(jù)塊中的第i個子數(shù)據(jù)塊中的數(shù)據(jù)沒有被更新,則所述主存儲設(shè)備將第M個備份時刻的位圖中所述第i個子數(shù)據(jù)塊對應(yīng)位上的值設(shè)置為初始值,若所述N個子數(shù)據(jù)塊中的第i個子數(shù)據(jù)塊中的數(shù)據(jù)被更新了,則所述主存儲設(shè)備將所述第M個備份時刻的位圖中所述第i個子數(shù)據(jù)塊對應(yīng)位上的值設(shè)置為非初始值,所述第M個備份時刻的位圖的每一位與所述主文件的N個子數(shù)據(jù)塊--對應(yīng);
[0020]所述主存儲設(shè)備將所述第M個備份時刻的位圖發(fā)送給所述備份存儲設(shè)備,以使所述備份存儲設(shè)備根據(jù)所述第M個備份時刻的位圖和所述第M個備份時刻之前的所有備份時刻的位圖恢復(fù)所述主文件的數(shù)據(jù)。
[0021]結(jié)合本發(fā)明第一方面以及本發(fā)明第一方面的第一種至第三種可能的實現(xiàn)方式,在本發(fā)明第一方面的第四種可能的實現(xiàn)方式中,在所述主存儲設(shè)備將所述本地備份緩沖區(qū)中的所述第M-1個備份時刻到所述第M個備份時刻之間被更新的子數(shù)據(jù)塊中的數(shù)據(jù)同步到所述備份存儲設(shè)備的快照資源池之后,所述方法還包括:
[0022]所述主存儲設(shè)備刪除所述本地備份緩沖區(qū)中的所述第M-1個備份時刻到所述第M個備份時刻之間被更新的子數(shù)據(jù)塊中的數(shù)據(jù)。
[0023]結(jié)合本發(fā)明第一方面,在本發(fā)明第一方面的第五種可能的實現(xiàn)方式中,所述主存儲設(shè)備將本地備份緩沖區(qū)中的所述第M-1個備份時刻到所述第M個備份時刻之間被更新的子數(shù)據(jù)塊中的數(shù)據(jù)同步到所述備份存儲設(shè)備的快照資源池之前,所述方法還包括:
[0024]所述主存儲設(shè)備判斷自己當(dāng)前的服務(wù)質(zhì)量QoS條件是否滿足要求;
[0025]若所述QoS條件滿足要求,則所述主存儲設(shè)備將所述本地備份緩沖區(qū)中的所述第M-1個備份時刻到所述第M個備份時刻之間被更新的子數(shù)據(jù)塊中的數(shù)據(jù)同步到所述備份存儲設(shè)備的快照資源池中。
[0026]結(jié)合本發(fā)明第一方面的第五種可能的實現(xiàn)方式,在本發(fā)明第一方面的第六種可能的實現(xiàn)方式中,所述QoS條件包括以下條件中的任意一個或其組合:所述主存儲設(shè)備的中央處理器CPU利用率、內(nèi)存利用率、磁盤利用率以及所述主存儲設(shè)備和所述備份存儲設(shè)備之間的網(wǎng)絡(luò)帶寬。
[0027]結(jié)合本發(fā)明第一方面,在本發(fā)明第一方面的第七種可能的實現(xiàn)方式中,所述主存儲設(shè)備將本地備份緩沖區(qū)中的所述第M-1個備份時刻到所述第M個備份時刻之間被更新的子數(shù)據(jù)塊中的數(shù)據(jù)同步到所述備份存儲設(shè)備的快照資源池之前,所述方法還包括:
[0028]所述主存儲設(shè)備判斷所述本地備份緩沖區(qū)中的所述第M-1個備份時刻到所述第M個備份時刻之間被更新的子數(shù)據(jù)塊中的數(shù)據(jù)的大小是否大于預(yù)先設(shè)置的數(shù)據(jù)量閾值;
[0029]若所述本地備份緩沖區(qū)中的所述第M-1個備份時刻到所述第M個備份時刻之間被更新的子數(shù)據(jù)塊中的數(shù)據(jù)的大小大于所述數(shù)據(jù)量閾值,則所述主存儲設(shè)備將本地備份緩沖區(qū)中的所述第M-1個備份時刻到所述第M個備份時刻之間被更新的子數(shù)據(jù)塊中的數(shù)據(jù)同步到所述備份存儲設(shè)備的快照資源池。
[0030]結(jié)合本發(fā)明第一方面,在本發(fā)明第一方面的第八種可能的實現(xiàn)方式中,所述主存儲設(shè)備將主文件的存儲空間劃分為N個子數(shù)據(jù)塊之前,所述方法還包括:
[0031]所述主存儲設(shè)備配置所述本地備份緩沖區(qū)的大小和所述快照資源池的大小。
[0032]本發(fā)明第二方面提供一種文件備份方法,包括:
[0033]主存儲設(shè)備將主文件的存儲空間劃分為N個子數(shù)據(jù)塊,N為大于等于2的正整數(shù);
[0034]在初始備份時刻,所述主存儲設(shè)備將所述主文件中的初始數(shù)據(jù)同步到備份存儲設(shè)備的備份文件中;
[0035]在第M個備份時刻,所述主存儲設(shè)備將所述初始備份時刻到所述第M個備份時刻之間被更新的子數(shù)據(jù)塊中的數(shù)據(jù)拷貝到本地備份緩沖區(qū),M為大于等于2的正整數(shù);
[0036]所述主存儲設(shè)備將所述本地備份緩沖區(qū)中的所述初始備份時刻到所述第M個備份時刻之間被更新的子數(shù)據(jù)塊中的數(shù)據(jù)同步到所述備份存儲設(shè)備的快照資源池中,所述快照資源池用于存儲所述備份文件的增量數(shù)據(jù)。
[0037]結(jié)合本發(fā)明第二方面,在本發(fā)明第二方面的第一種可能的實現(xiàn)方式中,所述主存儲設(shè)備將所述初始備份時刻到所述第M個備份時刻之間被更新的子數(shù)據(jù)塊中的數(shù)據(jù)拷貝到本地備份緩沖區(qū),包括:
[0038]所述主存儲設(shè)備根據(jù)所述N個子數(shù)據(jù)塊中的數(shù)據(jù)生成每個子數(shù)據(jù)塊對應(yīng)的第M個備份時刻的哈希值;
[0039]所述主存儲設(shè)備依次判斷所述N個子數(shù)據(jù)塊的第M個備份時刻哈希值與初始備份時刻的哈希值是否相同;
[0040]若所述N個子數(shù)據(jù)塊中的第i個子數(shù)據(jù)塊的第M個備份時刻哈希值與初始備份時刻的哈希值相同,則所述主存儲設(shè)備確定所述第i個子數(shù)據(jù)塊中的數(shù)據(jù)沒有被更新;
[0041]若所述N個子數(shù)據(jù)塊中的第i個子數(shù)據(jù)塊的第M個備份時刻哈希值與初始備份時刻的哈希值不相同,則所述主存儲設(shè)備確定所述第i個子數(shù)據(jù)塊中的數(shù)據(jù)被更新了 ;
[0042]所述主存儲設(shè)備將所述N個子數(shù)據(jù)塊中被更新的子數(shù)據(jù)塊中的數(shù)據(jù)拷貝到所述本地備份緩沖區(qū)。
[0043]結(jié)合本發(fā)明第二方面的第一種可能的實現(xiàn)方式,在本發(fā)明第二方面的第二種可能的實現(xiàn)方式中,所述主存儲設(shè)備將所述本地備份緩沖區(qū)中的所述初始備份時刻到所述第M個備份時刻之間被更新的子數(shù)據(jù)塊中的數(shù)據(jù)同步到所述備份存儲設(shè)備的快照資源池中之后,所述方法還包括:
[0044]所述主存儲設(shè)備將所述N個子數(shù)據(jù)塊對應(yīng)的第M個備份時刻的哈希值發(fā)送給所述備份存儲設(shè)備,以使所述備份存儲設(shè)備根據(jù)所述N個子數(shù)據(jù)塊對應(yīng)的第M個備份時刻的哈希值和所述初始備份時刻的哈希值恢復(fù)所述主文件的數(shù)據(jù)。
[0045]結(jié)合本發(fā)明第二方面的第一種可能的實現(xiàn)方式,在本發(fā)明第二方面的第三種可能的實現(xiàn)方式中,所述主存儲設(shè)備將所述被更新的子數(shù)據(jù)塊中的數(shù)據(jù)拷貝到所述本地備份緩沖區(qū)之后,所述方法還包括:
[0046]若所述N個子數(shù)據(jù)塊中的第i個子數(shù)據(jù)塊中的數(shù)據(jù)沒有被更新,則所述主存儲設(shè)備將第M個備份時刻的位圖中所述第i個子數(shù)據(jù)塊對應(yīng)位上的值設(shè)置為初始值,若所述N個子數(shù)據(jù)塊中的第i個子數(shù)據(jù)塊中的數(shù)據(jù)被更新了,則所述主存儲設(shè)備將所述第M個備份時刻的位圖中所述第i個子數(shù)據(jù)塊對應(yīng)位上的值設(shè)置為非初始值,所述第M個備份時刻的位圖的每一位與所述主文件的N個子數(shù)據(jù)塊--對應(yīng);
[0047]所述主存儲設(shè)備將所述第M個備份時刻的位圖發(fā)送給所述備份存儲設(shè)備,以使所述備份存儲設(shè)備根據(jù)所述第M個備份時刻的位圖和所述初始備份時刻的位圖恢復(fù)所述主文件的數(shù)據(jù)。
[0048]結(jié)合本發(fā)明第二方面以及第二方面的第一種至第三種可能的實現(xiàn)方式,在本發(fā)明第二方面的第四種可能的實現(xiàn)方式中,在所述主存儲設(shè)備將所述本地備份緩沖區(qū)中的所述初始備份時刻到所述第M個備份時刻之間被更新的子數(shù)據(jù)塊中的數(shù)據(jù)同步到所述備份存儲設(shè)備的快照資源池之后,所述方法還包括:
[0049]所述主存儲設(shè)備刪除所述本地備份緩沖區(qū)中的所述初始備份時刻到所述第M個備份時刻之間被更新的子數(shù)據(jù)塊中的數(shù)據(jù)。
[0050]結(jié)合本發(fā)明第二方面,在本發(fā)明第二方面的第五種可能的實現(xiàn)方式中,所述主存儲設(shè)備將本地備份緩沖區(qū)中的所述初始備份時刻到所述第M個備份時刻之間被更新的子數(shù)據(jù)塊中的數(shù)據(jù)同步到所述備份存儲設(shè)備的快照資源池之前,所述方法還包括:
[0051]所述主存儲設(shè)備判斷自己當(dāng)前的服務(wù)質(zhì)量QoS條件是否滿足要求;
[0052]若所述QoS條件滿足要求,則所述主存儲設(shè)備將本地備份緩沖區(qū)中的所述初始備份時刻到所述第M個備份時刻之間被更新的子數(shù)據(jù)塊中的數(shù)據(jù)同步到所述備份存儲設(shè)備的快照資源池。
[0053]本發(fā)明第三方面提供一種主存儲設(shè)備,包括:
[0054]分塊模塊,用于將主文件的存儲空間劃分為N個子數(shù)據(jù)塊,N為大于等于2的正整數(shù);
[0055]備份模塊,用于在初始備份時刻,將所述主文件中的初始數(shù)據(jù)同步到備份存儲設(shè)備的備份文件中;
[0056]拷貝模塊,用于在第M個備份時刻,將第M-1個備份時刻到所述第M個備份時刻之間被更新的子數(shù)據(jù)塊中的數(shù)據(jù)拷貝到本地備份緩沖區(qū),所述第M-1個備份時刻為所述第M個備份時刻的上一備份時刻,M為大于等于2的正整數(shù);
[0057]所述備份模塊還用于,將所述本地備份緩沖區(qū)中的所述第M-1個備份時刻到所述第M個備份時刻之間被更新的子數(shù)據(jù)塊中的數(shù)據(jù)同步到所述備份存儲設(shè)備的快照資源池中,所述快照資源池用于存儲所述備份文件的增量數(shù)據(jù)。
[0058]結(jié)合本發(fā)明第三方面,在本發(fā)明第三方面的第一種可能的實現(xiàn)方式中,所述拷貝模塊包括:
[0059]生成單元,用于根據(jù)所述N個子數(shù)據(jù)塊中的數(shù)據(jù)分別生成所述N個子數(shù)據(jù)塊對應(yīng)的第M個備份時刻的哈希值;
[0060]判斷單元,用于依次判斷所述N個子數(shù)據(jù)塊的第M個備份時刻的哈希值與第M-1個備份時刻的哈希值是否相同,若所述N個子數(shù)據(jù)塊中的第i個子數(shù)據(jù)塊的第M個備份時刻的哈希值與第M-1個備份時刻的哈希值相同,則確定所述第i個子數(shù)據(jù)塊中的數(shù)據(jù)沒有被更新,若所述N個子數(shù)據(jù)塊中的第i個子數(shù)據(jù)塊的每個子數(shù)據(jù)塊的第M個備份時刻的哈希值與第M-1個備份時刻的哈希值不相同,則確定所述第i個子數(shù)據(jù)塊中的數(shù)據(jù)被更新了 ;
[0061]拷貝單元,用于將所述N個子數(shù)據(jù)塊中被更新的子數(shù)據(jù)塊中的數(shù)據(jù)拷貝到所述本地備份緩沖區(qū)。
[0062]結(jié)合本發(fā)明第三方面的第一種可能的實現(xiàn)方式,在本發(fā)明第三方面的第二種可能的實現(xiàn)方式中,所述備份模塊還用于:
[0063]將所述N個子數(shù)據(jù)塊的第M個備份時刻的哈希值發(fā)送給所述備份存儲設(shè)備,以使所述備份存儲設(shè)備根據(jù)所述N個子數(shù)據(jù)塊的第M個備份時刻的哈希值和所述第M個備份時刻之前的所有備份時刻的哈希值恢復(fù)所述主文件的數(shù)據(jù)。
[0064]結(jié)合本發(fā)明第三方面的第一種可能的實現(xiàn)方式,在本發(fā)明第三方面的第三種可能的實現(xiàn)方式中,所述備份模塊還用于:
[0065]若所述N個子數(shù)據(jù)塊中的第i個子數(shù)據(jù)塊中的數(shù)據(jù)沒有被更新,則將第M個備份時刻的位圖中所述第i個子數(shù)據(jù)塊對應(yīng)位上的值設(shè)置為初始值,若所述N個子數(shù)據(jù)塊中的第i個子數(shù)據(jù)塊中的數(shù)據(jù)被更新了,則將所述第M個備份時刻的位圖中所述第i個子數(shù)據(jù)塊對應(yīng)位上的值設(shè)置為非初始值,所述第M個備份時刻的位圖的每一位與所述主文件的N個子數(shù)據(jù)塊對應(yīng);
[0066]將所述第M個備份時刻的位圖發(fā)送給所述備份存儲設(shè)備,以使所述備份存儲設(shè)備根據(jù)所述第M個備份時刻的位圖和所述第M個備份時刻之前的所有備份時刻的位圖恢復(fù)所述主文件的數(shù)據(jù)。
[0067]結(jié)合本發(fā)明第三方面以及本發(fā)明第三方面的第一種至第三種可能的實現(xiàn)方式,在本發(fā)明第三方面的第四種可能的實現(xiàn)方式中,所述設(shè)備還包括::
[0068]刪除模塊,用于刪除所述本地備份緩沖區(qū)中的所述第M-1個備份時刻到所述第M個備份時刻之間被更新的子數(shù)據(jù)塊中的數(shù)據(jù)。
[0069]結(jié)合本發(fā)明第三方面,在本發(fā)明第三方面的第五種可能的實現(xiàn)方式中,所述備份模塊還用于:
[0070]判斷所述主存儲設(shè)備的當(dāng)前的服務(wù)質(zhì)量QoS條件是否滿足要求;
[0071]若所述QoS條件滿足要求,則將所述本地備份緩沖區(qū)中的所述第M-1個備份時刻到所述第M個備份時刻之間被更新的子數(shù)據(jù)塊中的數(shù)據(jù)同步到所述備份存儲設(shè)備的快照資源池中。
[0072]結(jié)合本發(fā)明第三方面的第五種可能的實現(xiàn)方式,在本發(fā)明第三方面的第六種可能的實現(xiàn)方式中,所述QoS條件包括以下條件中的任意一個或其組合:所述主存儲設(shè)備的中央處理器CPU利用率、內(nèi)存利用率、磁盤利用率以及所述主存儲設(shè)備和所述備份存儲設(shè)備之間的網(wǎng)絡(luò)帶寬。
[0073]結(jié)合本發(fā)明第三方面,在本發(fā)明第三方面的第七種可能的實現(xiàn)方式中,所述備份模塊還用于:
[0074]判斷所述本地備份緩沖區(qū)中的所述第M-1個備份時刻到所述第M個備份時刻之間被更新的子數(shù)據(jù)塊中的數(shù)據(jù)的大小是否大于預(yù)先設(shè)置的數(shù)據(jù)量閾值;
[0075]若所述本地備份緩沖區(qū)中的所述第M-1個備份時刻到所述第M個備份時刻之間被更新的子數(shù)據(jù)塊中的數(shù)據(jù)的大小大于所述數(shù)據(jù)量閾值,則將本地備份緩沖區(qū)中的所述第M-1個備份時刻到所述第M個備份時刻之間被更新的子數(shù)據(jù)塊中的數(shù)據(jù)同步到所述備份存儲設(shè)備的快照資源池。
[0076]結(jié)合本發(fā)明第三方面,在本發(fā)明第三方面的第八種可能的實現(xiàn)方式中,所述設(shè)備還包括:
[0077]配置模塊,用于配置所述本地備份緩沖區(qū)的大小和所述快照資源池的大小。
[0078]本發(fā)明第四方面提供一種主存儲設(shè)備,包括:
[0079]分塊模塊,用于將主文件的存儲空間劃分為N個子數(shù)據(jù)塊,N為大于等于2的正整數(shù);
[0080]備份模塊,用于在初始備份時刻,將所述主文件中的初始數(shù)據(jù)同步到備份存儲設(shè)備的備份文件中;
[0081]拷貝模塊,用于在第M個備份時刻,將所述初始備份時刻到所述第M個備份時刻之間被更新的子數(shù)據(jù)塊中的數(shù)據(jù)拷貝到本地備份緩沖區(qū),M為大于等于2的正整數(shù);
[0082]所述備份模塊還用于,將所述本地備份緩沖區(qū)中的所述初始備份時刻到所述第M個備份時刻之間被更新的子數(shù)據(jù)塊中的數(shù)據(jù)同步到所述備份存儲設(shè)備的快照資源池中,所述快照資源池用于存儲所述備份文件的增量數(shù)據(jù)。
[0083]結(jié)合本發(fā)明第四方面,在本發(fā)明第四方面的第一種可能的實現(xiàn)方式中,所述拷貝模塊包括:
[0084]生成單元,用于根據(jù)所述N個子數(shù)據(jù)塊中的數(shù)據(jù)生成每個子數(shù)據(jù)塊對應(yīng)的第M個備份時刻的哈希值;
[0085]判斷單元,用于依次判斷所述N個子數(shù)據(jù)塊的第M個備份時刻哈希值與初始備份時刻的哈希值是否相同,若所述N個子數(shù)據(jù)塊中的第i個子數(shù)據(jù)塊的第M個備份時刻哈希值與初始備份時刻的哈希值相同,則確定所述第i個子數(shù)據(jù)塊中的數(shù)據(jù)沒有被更新,若所述N個子數(shù)據(jù)塊中的第i個子數(shù)據(jù)塊的第M個備份時刻哈希值與初始備份時刻的哈希值不相同,則確定所述第i個子數(shù)據(jù)塊中的數(shù)據(jù)被更新了 ;
[0086]拷貝單元,用于將所述N個子數(shù)據(jù)塊中被更新的子數(shù)據(jù)塊中的數(shù)據(jù)拷貝到所述本地備份緩沖區(qū)。
[0087]結(jié)合本發(fā)明第四方面的第一種可能的實現(xiàn)方式,在本發(fā)明第四方面的第二種可能的實現(xiàn)方式中,所述備份模塊還用于:
[0088]將所述N個子數(shù)據(jù)塊對應(yīng)的第M個備份時刻的哈希值發(fā)送給所述備份存儲設(shè)備,以使所述備份存儲設(shè)備根據(jù)所述N個子數(shù)據(jù)塊對應(yīng)的第M個備份時刻的哈希值和所述初始備份時刻的哈希值恢復(fù)所述主文件的數(shù)據(jù)。
[0089]結(jié)合本發(fā)明第四方面的第一種可能的實現(xiàn)方式,在本發(fā)明第四方面的第三種可能的實現(xiàn)方式中,所述備份模塊還用于:
[0090]若所述N個子數(shù)據(jù)塊中的第i個子數(shù)據(jù)塊中的數(shù)據(jù)沒有被更新,則將第M個備份時刻的位圖中所述第i個子數(shù)據(jù)塊對應(yīng)位上的值設(shè)置為初始值,若所述N個子數(shù)據(jù)塊中的第i個子數(shù)據(jù)塊中的數(shù)據(jù)被更新了,則將所述第M個備份時刻的位圖中所述第i個子數(shù)據(jù)塊對應(yīng)位上的值設(shè)置為非初始值,所述第M個備份時刻的位圖的每一位與所述主文件的N個子數(shù)據(jù)塊對應(yīng);
[0091]將所述第M個備份時刻的位圖發(fā)送給所述備份存儲設(shè)備,以使所述備份存儲設(shè)備根據(jù)所述第M個備份時刻的位圖和所述初始備份時刻的位圖恢復(fù)所述主文件的數(shù)據(jù)。
[0092]結(jié)合本發(fā)明第四方面以及第四方面的第一種至第三種可能的實現(xiàn)方式,在本發(fā)明第四方面的第四種可能的實現(xiàn)方式中,所述設(shè)備還包括:
[0093]刪除模塊,用于刪除所述本地備份緩沖區(qū)中的所述初始備份時刻到所述第M個備份時刻之間被更新的子數(shù)據(jù)塊中的數(shù)據(jù)。
[0094]結(jié)合本發(fā)明第四方面,在本發(fā)明第四方面的第五種可能的實現(xiàn)方式中,所述備份模塊還用于:
[0095]判斷所述主存儲設(shè)備的當(dāng)前的服務(wù)質(zhì)量QoS條件是否滿足要求;
[0096]若所述QoS條件滿足要求,則將本地備份緩沖區(qū)中的所述初始備份時刻到所述第M個備份時刻之間被更新的子數(shù)據(jù)塊中的數(shù)據(jù)同步到所述備份存儲設(shè)備的快照資源池。
[0097]本發(fā)明實施例提供一種文件備份方法和主存儲設(shè)備,主存儲設(shè)備通過將主文件的存儲空間劃分為N個子數(shù)據(jù)塊,在增量備份的每個備份時刻,將上一備份時刻到本次備份時刻之間的被更新的子數(shù)據(jù)塊中的數(shù)據(jù)拷貝到本地備份緩沖區(qū)中,在差量備份的備份時亥IJ,將初始備份時刻到本次備份時刻之間被更新的子數(shù)據(jù)塊中數(shù)據(jù)拷貝到本地備份緩沖區(qū)中,主存儲設(shè)備只需要同步本地備份緩沖區(qū)中存儲的被更新的子數(shù)據(jù)塊中的數(shù)據(jù),沒有被更新的子數(shù)據(jù)塊的數(shù)據(jù)不需要同步,從而能夠減少文件備份的數(shù)據(jù)量,提高文件備份效率,節(jié)省備份數(shù)據(jù)的存儲空間。
【專利附圖】
【附圖說明】
[0098]為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作一簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0099]圖1為本發(fā)明各實施例所適用的文件存儲系統(tǒng)的結(jié)構(gòu)示意圖;
[0100]圖2為本發(fā)明實施例一提供的文件備份方法的流程圖;
[0101]圖3為主文件的存儲空間的分塊示意圖;
[0102]圖4為本發(fā)明實施例二提供的確定被更新子數(shù)據(jù)塊的流程圖;
[0103]圖5為備份時刻的位圖的一種示意圖;
[0104]圖6為備份時刻的位圖合并的示意圖;
[0105]圖7為本發(fā)明實施例三提供的文件備份方法的完整流程圖;
[0106]圖8為本發(fā)明實施例四提供的文件備份方法的流程圖;
[0107]圖9為本發(fā)明實施例五提供的確定被更新子數(shù)據(jù)塊的流程圖;
[0108]圖10為本發(fā)明實施例六提供的主存儲設(shè)備的結(jié)構(gòu)示意圖;
[0109]圖11為本發(fā)明實施例七提供的主存儲設(shè)備的結(jié)構(gòu)示意圖;
[0110]圖12為本發(fā)明實施例八提供的主存儲設(shè)備的結(jié)構(gòu)示意圖;
[0111]圖13為本發(fā)明實施例九提供的主存儲設(shè)備的結(jié)構(gòu)示意圖;
[0112]圖14為本發(fā)明實施例十提供的主存儲設(shè)備的結(jié)構(gòu)示意圖;
[0113]圖15為本發(fā)明實施例十一提供的主存儲設(shè)備的結(jié)構(gòu)示意圖。
【具體實施方式】
[0114]為使本發(fā)明實施例的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護(hù)的范圍。
[0115]圖1為本發(fā)明各實施例所適用的文件存儲系統(tǒng)的結(jié)構(gòu)示意圖,如圖1所示,該文件存儲系統(tǒng)中包括一個主存儲設(shè)備和一個備份存儲設(shè)備。主存儲設(shè)備中包括主文件的存儲空間和本地備份緩沖區(qū),主文件的存儲空間用于存儲主文件,主文件是相對于備份文件而言的,本發(fā)明實施例的方法中,主文件的存儲空間被劃分為了 N個子數(shù)據(jù)塊。在采用增量備份時,本地備份緩沖區(qū)用于存儲第M-1個備份時刻到第M個備份時刻之間被更新的子數(shù)據(jù)塊中的數(shù)據(jù),第M-1個備份時刻為第M個備份時刻的上一備份時刻。當(dāng)采用增量備份時,本地備份緩沖區(qū)中用于存儲初始備份時刻到第M個備份時刻之間被更新的子數(shù)據(jù)塊中的數(shù)據(jù)。主存儲設(shè)備可以在對主文件的存儲空間分塊之前配置本地備份緩沖區(qū)的大小,例如,將本地備份緩沖區(qū)的大小設(shè)置為主文件大小的5%?10%,本地備份緩沖區(qū)的大小可以根據(jù)需要靈活配置,本地備份緩沖區(qū)支持?jǐn)U容策略。
[0116]備份存儲設(shè)備包括備份文件的存儲空間和快照資源池,備份文件的存儲空間用于存儲主文件的初始數(shù)據(jù),快照資源池用于存儲備份文件的增量數(shù)據(jù),在初始備份之后,后續(xù)備份時刻同步的數(shù)據(jù)都稱為備份文件的增量數(shù)據(jù),快照資源池可以按照時間點來記錄增量數(shù)據(jù)。主存儲設(shè)備可以在對主文件的存儲空間分塊之前對快照資源池進(jìn)行配置,例如,將快照資源池的初始大小設(shè)置為主文件大小的10%?20%,快照資源池的大小可以根據(jù)需要靈活配置,并且快照資源池也支持?jǐn)U容策略,例如,當(dāng)快照資源池中數(shù)據(jù)達(dá)到80 %,則對快照資源池擴(kuò)容20%。圖1所示的文件存儲系統(tǒng)只是舉例說明,在實際的應(yīng)用中,文件存儲系統(tǒng)中可以包括多個主存儲設(shè)備,每個主存儲設(shè)備具有一個或多個備份存儲設(shè)備,并且還還可以包括一個管理設(shè)備,該管理設(shè)備用于管理文件存儲系統(tǒng)中的所有存儲設(shè)備。
[0117]圖2為本發(fā)明實施例一提供的文件備份方法的流程圖,請參照圖1和圖2所示,本實施例中以增量備份方法為例對文件備份方法進(jìn)行詳細(xì)說明,本實施例的方法可以包括以下步驟:
[0118]步驟101、主存儲設(shè)備將主文件的存儲空間劃分為N個子數(shù)據(jù)塊,N為大于等于2的正整數(shù)。
[0119]本實施例中,主存儲設(shè)備在對主文件的存儲空間進(jìn)行分塊時,每個子數(shù)據(jù)塊的大小可以相同也可以不同,子數(shù)據(jù)塊的大小和分塊個數(shù)可以根據(jù)主文件的存儲空間的大小確定,例如,當(dāng)主文件的存儲空間較大時,每個子數(shù)據(jù)塊的大小也可以相應(yīng)大一些,當(dāng)主文件的存儲空間較小時,每個子數(shù)據(jù)塊的大小相應(yīng)也小一些。對主文件的存儲空間分塊的目的是為了精確識別被改變的數(shù)據(jù)所在的位置,因此,子數(shù)據(jù)塊的大小要合適,子數(shù)據(jù)塊太小會影響分塊效率,子數(shù)據(jù)塊太大會導(dǎo)致每次同步的數(shù)據(jù)量大。需說明的是,本發(fā)明實施例中的主文件是相對于備份文件說的。
[0120]主存儲設(shè)備對主文件的存儲空間進(jìn)行分塊時,具體為:首先,讀取主文件的存儲空間的邏輯區(qū)塊地址(Logical Block Address,簡稱LBA),然后,根據(jù)每個子數(shù)據(jù)塊的大小對LBA地址進(jìn)行分段,記錄每個子數(shù)據(jù)塊的LBA地址,每個子數(shù)據(jù)塊的LBA地址包括:開始LBA地址和結(jié)束LBA地址,將所有子數(shù)據(jù)塊的LBA地址記錄在一張地址表中,該地址表的格式如表I所示:
[0121]表I
[0122]
子數(shù)據(jù)塊的編號I開始地址 I結(jié)束地址
110000011 10001111
2XXXXXXXX
~ XXXX XXXX
N XXXX XXXX
[0123]對于一個子數(shù)據(jù)塊來說,該子數(shù)據(jù)塊的LBA地址可能不連續(xù),那么一個子數(shù)據(jù)塊的LBA地址可能需要多個LBA地址串聯(lián)起來,類似于指針一樣,該地址表可以保存在主存儲設(shè)備的本地備份緩沖區(qū)中。
[0124]步驟102、在初始備份時刻,主存儲設(shè)備將主文件中的初始數(shù)據(jù)同步到備份存儲設(shè)備的備份文件中。
[0125]在對主文件的存儲空間分塊之后,主存儲設(shè)備對主文件進(jìn)行初始備份,即將主文件中的初始數(shù)據(jù)同步到備份存儲設(shè)備的備份文件中。在對主文件進(jìn)行初始備份時,主文件的存儲空間可能沒有存滿數(shù)據(jù),只有部分子數(shù)據(jù)塊中存滿數(shù)據(jù),因此,在初始備份時,只對存儲有數(shù)據(jù)的子數(shù)據(jù)塊進(jìn)行備份。
[0126]在分塊時對各個子數(shù)據(jù)塊進(jìn)行了編號,因此,可以按照編號的順序依次將各子數(shù)據(jù)塊存儲滿數(shù)據(jù)。如圖3所示,圖3為主文件的存儲空間的分塊示意圖,主文件的存儲空間被分成了 N個子數(shù)據(jù)塊,前K-1個子數(shù)據(jù)塊中存滿數(shù)據(jù),第K個子數(shù)據(jù)塊中沒有存儲滿數(shù)據(jù),第K個子數(shù)據(jù)塊虛線左側(cè)的存儲空間存滿數(shù)據(jù),虛線右側(cè)的存儲空間為未使用的存儲空間,第K個子數(shù)據(jù)塊至第N個子數(shù)據(jù)塊為未使用的存儲空間,第K個子數(shù)據(jù)塊為當(dāng)前存儲子數(shù)據(jù)塊,當(dāng)前存儲子數(shù)據(jù)塊中還未存滿數(shù)據(jù),新寫入的數(shù)據(jù)會被存儲在當(dāng)前存儲子數(shù)據(jù)塊,在第K個子數(shù)據(jù)塊存儲滿后,新寫入的數(shù)據(jù)會存儲在第K+1個子數(shù)據(jù)塊中。當(dāng)然,主存儲設(shè)置在存儲數(shù)據(jù)時也可以不按照子數(shù)據(jù)塊的順序進(jìn)行存儲。本實施例中,主存儲設(shè)備將所述主文件中的初始數(shù)據(jù)同步到備份存儲設(shè)備的備份文件中,具體為:主存儲設(shè)備將主文件的前K-1個子數(shù)據(jù)塊中的數(shù)據(jù)以及第K個子數(shù)據(jù)塊中的數(shù)據(jù)同步到備份存儲設(shè)備的備份文件中。
[0127]步驟103、在第M個備份時刻,主存儲設(shè)備將第M-1個備份時刻到第M個備份時刻之間被更新的子數(shù)據(jù)塊中的數(shù)據(jù)拷貝到本地備份緩沖區(qū),第M-1個備份時刻為第M個備份時刻的上一備份時刻,M為大于等于2的正整數(shù)。
[0128]本實施例中按照時間點觸發(fā)備份操作,例如為每半個小時觸發(fā)一次備份操作,具體的觸發(fā)間隔可以根據(jù)實際情況需要進(jìn)行設(shè)置,例如,主存儲設(shè)備中的數(shù)據(jù)經(jīng)常變化,那么可以將觸發(fā)間隔設(shè)置的短一些。
[0129]增量備份只備份上次備份以后有變化的子數(shù)據(jù)中的數(shù)據(jù),因此,在第M個備份時亥|J,主存儲設(shè)備只將第M-1個備份時刻到第M個備份時刻之間被更新的子數(shù)據(jù)塊中的數(shù)據(jù)拷貝到本地備份緩沖區(qū)中,第M-1個備份時刻為第M個備份時刻的上一備份時刻,即將上一備份時刻到本次備份時刻之間被更新的子數(shù)據(jù)塊中的數(shù)據(jù)拷貝到本地備份緩沖區(qū)中。本實施例中,第M-1個備份時刻到第M個備份時刻之間被更新的子數(shù)據(jù)塊包括以下三種數(shù)據(jù)塊:(I)在第M-1個備份時刻已經(jīng)存儲滿數(shù)據(jù),并且在第M個備份時刻之前該子數(shù)據(jù)塊中的數(shù)據(jù)被修改了 ;(2)在第M-1個備份時刻沒有存儲數(shù)據(jù)的子數(shù)據(jù)塊,并且在第M個備份時刻之前被存儲滿或正在寫的子數(shù)據(jù)塊;(3)在第M-1個備份時刻沒有存儲滿數(shù)據(jù),并且在第M各備份時刻存儲滿數(shù)據(jù)的子數(shù)據(jù)塊。
[0130]步驟104、主存儲設(shè)備將本地備份緩沖區(qū)中的第M-1個備份時刻到第M個備份時刻之間被更新的子數(shù)據(jù)塊中的數(shù)據(jù)同步到備份存儲設(shè)備的快照資源池中,快照資源池用于存儲所述備份文件的增量數(shù)據(jù)。
[0131]在將被更新的子數(shù)據(jù)塊中的數(shù)據(jù)拷貝到本地備份緩沖區(qū)后,主存儲設(shè)備進(jìn)行數(shù)據(jù)同步,將本地備份緩沖區(qū)中的第M-1個備份時刻到第M個備份時刻之間被更新的子數(shù)據(jù)塊中的數(shù)據(jù)發(fā)送到備份存儲設(shè)備的快照資源池中,完成數(shù)據(jù)備份。在每次數(shù)據(jù)備份完成之后,主存儲設(shè)備刪除本地備份緩沖區(qū)中的第M-1個備份時刻到第M個備份時刻之間被更新的子數(shù)據(jù)塊中的數(shù)據(jù)。
[0132]本實施例中,主存儲設(shè)備通過將主文件的存儲空間劃分為N個子數(shù)據(jù)塊,在每個備份時刻,將上一備份時刻到本次備份時刻之間的被更新的子數(shù)據(jù)塊中的數(shù)據(jù)拷貝到本地備份緩沖區(qū)中,主存儲設(shè)備只需要同步本地備份緩沖區(qū)中存儲的被更新的子數(shù)據(jù)塊中的數(shù)據(jù),沒有被更新的子數(shù)據(jù)塊的數(shù)據(jù)不需要同步,從而能夠減少文件備份的數(shù)據(jù)量,提高文件備份效率,節(jié)省備份數(shù)據(jù)的存儲空間。
[0133]在對文件進(jìn)行備份時,當(dāng)備份的數(shù)據(jù)量較大時,會對服務(wù)器上已經(jīng)運(yùn)行的應(yīng)用的性能產(chǎn)生影響,并且對網(wǎng)絡(luò)帶寬也是一個極大的沖擊。因此,在本發(fā)明可行的實現(xiàn)方式中,在步驟104之前,可選地,所述方法還可以包括以下步驟:主存儲設(shè)備判斷自己當(dāng)前的服務(wù)質(zhì)量QoS條件是否滿足要求;若該QoS條件滿足要求,則主存儲設(shè)備執(zhí)行步驟104,將本地備份緩沖區(qū)中的第M-1個備份時刻到第M個備份時刻之間被更新的子數(shù)據(jù)塊的數(shù)據(jù)同步到備份存儲設(shè)備的快照資源池中。若該QoS條件不滿足要求,則主存儲設(shè)備不執(zhí)行數(shù)據(jù)同步操作。
[0134]該QoS條件包括以下條件中的任意一個或其組合:主存儲設(shè)備的中央處理器(Central Processing Unit,簡稱CPU)利用率、內(nèi)存利用率、磁盤利用率以及主存儲設(shè)備和備份存儲設(shè)備之間的網(wǎng)絡(luò)帶寬。例如,設(shè)置主存儲設(shè)備的CPU利用率、內(nèi)存利用率、磁盤利用率均低于60%才允許數(shù)據(jù)同步,當(dāng)上述三個條件中的任意一個不滿足時不進(jìn)行數(shù)據(jù)同步?;蛘撸?dāng)網(wǎng)絡(luò)帶寬利用率低于70%允許進(jìn)行數(shù)據(jù)同步,當(dāng)網(wǎng)絡(luò)帶寬的利用率高于70%暫停數(shù)據(jù)同步??梢岳斫獾氖?,主存儲設(shè)備在進(jìn)行數(shù)據(jù)同步的同時,可能還在接收客戶端發(fā)送的數(shù)據(jù)存儲請求,或者執(zhí)行其他操作,這些操作也會占用主存儲設(shè)備的CPU、內(nèi)存、磁盤等物理資源。當(dāng)主存儲設(shè)備的CPU利用率、內(nèi)存利用率和磁盤利用率高于60%時,如果主存儲設(shè)備執(zhí)行數(shù)據(jù)同步操作,該數(shù)據(jù)同步操作也會占用CPU、內(nèi)存、磁盤資源,那么就會對主存儲設(shè)備中已經(jīng)存在的應(yīng)用的性能產(chǎn)生影響,例如,由于數(shù)據(jù)同步操作占用了 CPU資源,使得主存儲設(shè)備對客戶端的數(shù)據(jù)存儲請求響應(yīng)慢。另外,當(dāng)備份的數(shù)據(jù)大時,會對網(wǎng)絡(luò)帶寬造成影響,因此,本實施例中,在備份時刻,若當(dāng)前網(wǎng)絡(luò)帶寬大于帶寬閾值,則不進(jìn)行數(shù)據(jù)備份,從而減少數(shù)據(jù)備份對網(wǎng)絡(luò)帶寬的影響。
[0135]在實施例一的基礎(chǔ)上,可選地,在步驟104之前還可以包括以下步驟:主存儲設(shè)備判斷本地備份緩沖區(qū)中的第M-1個備份時刻到第M個備份時刻之間被更新的子數(shù)據(jù)塊中的數(shù)據(jù)的大小是否大于預(yù)先設(shè)置的數(shù)據(jù)量閾值;若該被更新的子數(shù)據(jù)塊中的數(shù)據(jù)的大小大于所述數(shù)據(jù)量閾值,則主存儲設(shè)備將該被更新的子數(shù)據(jù)塊中的數(shù)據(jù)同步到備份存儲設(shè)備的快照資源池。
[0136]本發(fā)明實施例二是對實施例一中步驟103的詳細(xì)描述,圖4為本發(fā)明實施例二提供的確定被更新子數(shù)據(jù)塊的流程圖,如圖4所示,本實施例提供的方法可以包括以下步驟:
[0137]步驟201、主存儲設(shè)備根據(jù)N個子數(shù)據(jù)塊中的數(shù)據(jù)分別生成N個子數(shù)據(jù)塊對應(yīng)的第M個備份時刻的哈希值。
[0138]步驟202、主存儲設(shè)備依次判斷N個子數(shù)據(jù)塊的每個子數(shù)據(jù)塊的第M個備份時刻的哈希值與第M-1個備份時刻的哈希值是否相同,若N個子數(shù)據(jù)塊中的第i個子數(shù)據(jù)塊的第M個備份時刻的哈希值與第M-1個備份時刻的哈希值相同,則主存儲設(shè)備確定第i個子數(shù)據(jù)塊中的數(shù)據(jù)沒有被更新,若N個子數(shù)據(jù)塊中的第i個子數(shù)據(jù)塊的第M個備份時刻的哈希值與第M-1個備份時刻的哈希值不相同,則主存儲設(shè)備確定第i個子數(shù)據(jù)塊中的數(shù)據(jù)被更新了。
[0139]步驟203、主存儲設(shè)備將N個子數(shù)據(jù)塊中被更新的子數(shù)據(jù)塊中的數(shù)據(jù)拷貝到本地備份緩沖區(qū)。
[0140]主存儲設(shè)備讀取每個子數(shù)據(jù)塊中的數(shù)據(jù),然后,計算每個子數(shù)據(jù)塊中數(shù)據(jù)的哈希值,現(xiàn)有技術(shù)中有多種哈希算法,例如MD5、MD2、MD4等,本實施例中,可以采用現(xiàn)有的任意一種哈希算法計算子數(shù)據(jù)塊的哈希值。本實施例的方法中,在每個備份時刻,主存儲設(shè)備都會計算每個子數(shù)據(jù)塊在當(dāng)前備份時刻的哈希值,然后,將每個子數(shù)據(jù)塊在當(dāng)前備份時刻的哈希值與上一備份時刻的哈希值進(jìn)行比較,若某一子數(shù)據(jù)塊在當(dāng)前備份時刻的哈希值與上一備份時刻的哈希值相同,則說明該子數(shù)據(jù)塊中的數(shù)據(jù)沒有被更新,若某一子數(shù)據(jù)塊在當(dāng)前備份時刻的哈希值與上一備份時刻的哈希值不相同,則說明該子數(shù)據(jù)塊中的數(shù)據(jù)被更新了。主存儲設(shè)備將N個子數(shù)據(jù)塊中被更新的所有子數(shù)據(jù)塊中的數(shù)據(jù)拷貝到本地備份緩沖區(qū)中。
[0141]本實施例中,主存儲設(shè)備將本地備份緩沖區(qū)中的第M-1個備份時刻到第M個備份時刻之間被更新的子數(shù)據(jù)塊中的數(shù)據(jù)同步到備份存儲設(shè)備的快照資源池中之后,所述方法還包括以下步驟:主存儲設(shè)備將N個子數(shù)據(jù)塊的第M個備份時刻的哈希值發(fā)送給備份存儲設(shè)備,以使備份存儲設(shè)備根據(jù)N個子數(shù)據(jù)塊對應(yīng)的第M個備份時刻的哈希值和第M個備份時刻之前的所有備份時刻的哈希值恢復(fù)主文件的數(shù)據(jù)。
[0142]上述方法中,在每次數(shù)據(jù)備份完成之后,主存儲設(shè)備都會將本次備份時刻生成的各子數(shù)據(jù)塊在本次備份時刻的哈希值發(fā)送給備份存儲設(shè)備,以使備份存儲設(shè)備根據(jù)每個備份時刻的哈希值恢復(fù)主文件的數(shù)據(jù)。在另一種可行的實現(xiàn)方式中,備份存儲設(shè)備也可以根據(jù)每個備份時刻的位圖進(jìn)行數(shù)據(jù)恢復(fù),位圖的每一位與主文件的N個子數(shù)據(jù)塊--對應(yīng)。
位圖中的每一位有兩種可能的取值:非初始值和初始值,非初始值表示該位對應(yīng)的子數(shù)據(jù)塊中的數(shù)據(jù)相對于上一備份時刻更新了,初始值表示該位對應(yīng)的子數(shù)據(jù)塊中的數(shù)據(jù)相對于上一備份時刻沒有更新。
[0143]圖5為備份時刻的位圖的一種不意圖,圖5中非初始值用I表不,初始值用O表示。當(dāng)備份存儲設(shè)備采用備份時刻位圖進(jìn)行數(shù)據(jù)恢復(fù)時,相應(yīng)地,在主存儲設(shè)備完成數(shù)據(jù)備份之后,所述方法還包括以下步驟:若N個子數(shù)據(jù)塊中的第i個子數(shù)據(jù)塊沒有被更新,則主存儲設(shè)備將第M個備份時刻的位圖中所述第i個子數(shù)據(jù)塊對應(yīng)位上的值設(shè)置為初始值,若N個子數(shù)據(jù)塊中的第i個子數(shù)據(jù)塊被更新了,則主存儲設(shè)備將第M個備份時刻的位圖中第i個子數(shù)據(jù)塊對應(yīng)位上的值設(shè)置為非初始值。并將第M個備份時刻的位圖發(fā)送給備份存儲設(shè)備,以使備份存儲設(shè)備根據(jù)第M個備份時刻的位圖和第M個備份時刻之前的所有備份時刻的位圖恢復(fù)主文件的數(shù)據(jù)。
[0144]當(dāng)主文件故障(比如文件損壞)或數(shù)據(jù)丟失后,可以使用備份文件和快照資源池中存儲的備份文件的增量數(shù)據(jù)對主文件的數(shù)據(jù)進(jìn)行恢復(fù)。當(dāng)采用增量備份時,可以根據(jù)初始備份時刻位圖和恢復(fù)時刻之前的所有備份時刻位圖恢復(fù)主文件的數(shù)據(jù)。備份存儲設(shè)備在進(jìn)行數(shù)據(jù)恢復(fù)時,可以根據(jù)每個子數(shù)據(jù)塊在各備份時刻的哈希值進(jìn)行恢復(fù),也可以根據(jù)每個備份時刻的位圖進(jìn)行數(shù)據(jù)恢復(fù)。
[0145]以備份存儲設(shè)備根據(jù)每個備份時刻的位圖進(jìn)行數(shù)據(jù)恢復(fù)為了進(jìn)行說明,假設(shè),共有M個增量備份點,M個增量備份點的備份時刻分別為Tl、T2……Tm,若需要恢復(fù)Tm時刻時主文件的數(shù)據(jù),首先需要合并初始備份時刻的位圖和Tl時刻的位圖得到Tl時刻的合并位圖和數(shù)據(jù),然后,合并Tl時刻的合并位圖和T2時刻的位圖得到T2時刻的合并位圖和數(shù)據(jù),依次類推得到Tm時刻的合并位圖和數(shù)據(jù)。圖6為備份時刻的位圖合并的示意圖,如圖6所示,O表示對應(yīng)的子數(shù)據(jù)塊中數(shù)據(jù)沒有更新,I表示對應(yīng)子數(shù)據(jù)塊中的數(shù)據(jù)被更新,ABCDEFG表示對應(yīng)子數(shù)據(jù)塊中的數(shù)據(jù),初始備份時刻的位圖為10101100,初始備份時刻子數(shù)據(jù)塊2、4、7、8中沒有存儲數(shù)據(jù),子數(shù)據(jù)1、3、5、6中分別存儲數(shù)據(jù)A、B、C、D。Tl時刻的位圖為00110010,可知,Tl時刻子數(shù)據(jù)塊3、4、7中的數(shù)據(jù)被更新了,Tl時刻子數(shù)據(jù)塊3、4、7中的數(shù)據(jù)被更新為E、F、G。合并后Tl時刻的合并位圖為10111110,合并后的各子數(shù)據(jù)塊對應(yīng)的合并數(shù)據(jù)如圖所示。
[0146]同理,當(dāng)備份存儲設(shè)備根據(jù)各子數(shù)據(jù)塊在每個備份時刻的哈希值進(jìn)行數(shù)據(jù)恢復(fù)時,備份存儲設(shè)備將各子數(shù)據(jù)塊第M個備份時刻的哈希值與第M-1個備份時刻的哈希值進(jìn)行比較,確定哪些子數(shù)據(jù)塊被更新了,在合并時被更新了的子數(shù)據(jù)塊中的數(shù)據(jù)以第N個備份時刻的數(shù)據(jù)為準(zhǔn),依次類推,得到Tm時刻的合并數(shù)據(jù)。
[0147]圖7為本發(fā)明實施例三提供的文件備份方法的完整流程圖,如圖7所示,本實施例的方法可以包括以下步驟:
[0148]步驟301、主存儲設(shè)備配置本地備份緩沖區(qū)的大小和快照資源池的大小。
[0149]主存儲設(shè)備根據(jù)主文件的存儲空間的大小確定本地緩沖區(qū)的大小和快照資源池的大小,例如,配置本地緩沖區(qū)的大小為主文件的存儲空間的10%,快照資源池的大小為主文件的存儲空間的20%。然后,主存儲設(shè)備為備份緩沖區(qū)在本地分配相應(yīng)大小的存儲空間,并將快照資源池的大小發(fā)送給備份存儲設(shè)備,由備份存儲設(shè)備為快照資源池分配相應(yīng)大小的存儲空間。主存儲設(shè)備還可以為本地備份緩沖區(qū)和快照資源池設(shè)置擴(kuò)容策略,例如,當(dāng)快照資源池中的數(shù)據(jù)達(dá)到了快照資源池大小的80%,那么擴(kuò)容20%。
[0150]步驟302、主存儲設(shè)備將主文件的存儲空間劃分為N個子數(shù)據(jù)塊,N為大于等于2的正整數(shù)。
[0151]主文件的存儲空間的大小和N的取值由人為預(yù)先設(shè)定好,在設(shè)定N的取值時,可以根據(jù)主文件的存儲空間的大小確定N的取值,通常可以將子數(shù)據(jù)塊的大小設(shè)置為60K左右,那么當(dāng)主文件的存儲空間大時,N取值也大,當(dāng)主文件的存儲空間小時,N取值也相應(yīng)的小。
[0152]步驟303、在初始備份時刻,主存儲設(shè)備將主文件中的初始數(shù)據(jù)同步到備份存儲設(shè)備的備份文件中。
[0153]步驟304、在第M個備份時刻,主存儲設(shè)備將第M-1個備份時刻到第M個備份時刻之間被更新的子數(shù)據(jù)塊中的數(shù)據(jù)拷貝到本地備份緩沖區(qū),M的初始值為2。
[0154]本實施例中,初始備份時刻為第I個備份時刻。
[0155]步驟305、當(dāng)主存儲設(shè)備的QoS條件滿足要求時,主存儲設(shè)備將本地備份緩沖區(qū)中的被更新的子數(shù)據(jù)塊中的數(shù)據(jù)同步到備份存儲設(shè)備的快照資源池中,生成第M個備份時刻的位圖,并將第M個備份時刻的位圖發(fā)送給備份存儲設(shè)備。
[0156]步驟306、主存儲設(shè)備刪除本地備份緩沖區(qū)中存儲的被更新的子數(shù)據(jù)塊中的數(shù)據(jù)。
[0157]步驟307、主存儲設(shè)備檢查快照資源池的大小,若快照資源池的使用率達(dá)到閾值,則對快照資源池進(jìn)行擴(kuò)容。
[0158]在步驟307執(zhí)行完成后,當(dāng)下一備份時刻到達(dá)時,循環(huán)執(zhí)行步驟304-307。
[0159]本實施例中,主存儲設(shè)備通過將主文件劃分為N個子數(shù)據(jù)塊,在備份時刻,主存儲設(shè)備只同步上次備份時刻到本次備份時刻被更新的子數(shù)據(jù)塊中的數(shù)據(jù),沒有被更新的子數(shù)據(jù)塊中的數(shù)據(jù)不需要同步,從而能夠減少文件備份的數(shù)據(jù)量,提高文件備份效率,節(jié)省備份數(shù)據(jù)的存儲空間。另外,主存儲設(shè)備在對主文件進(jìn)行備份時,通過判斷自己當(dāng)前的QoS條件是否滿足要求,只有在QoS滿足條件時才進(jìn)行數(shù)據(jù)備份,能夠減少數(shù)據(jù)備份對主存儲設(shè)備中已經(jīng)存在的應(yīng)用的性能和網(wǎng)絡(luò)帶寬的影響。
[0160]圖8為本發(fā)明實施例四提供的文件備份方法的流程圖,請參照圖1和圖8所示,和實施例一的方法相比,本實施例中以差量備份方法為例對文件備份方法進(jìn)行詳細(xì)說明,本實施例的方法可以包括以下步驟:
[0161]步驟401、主存儲設(shè)備將主文件的存儲空間劃分為N個子數(shù)據(jù)塊,N為大于等于2的正整數(shù);
[0162]步驟402、在初始備份時刻,主存儲設(shè)備將主文件中的初始數(shù)據(jù)同步到備份存儲設(shè)備的備份文件中。
[0163]步驟403、在第M個備份時刻,主存儲設(shè)備將初始備份時刻到第M個備份時刻之間被更新的子數(shù)據(jù)塊中的數(shù)據(jù)拷貝到本地備份緩沖區(qū),M為大于等于2的正整數(shù)。
[0164]步驟404、主存儲設(shè)備將本地備份緩沖區(qū)中的初始備份時刻到第M個備份時刻之間被更新的子數(shù)據(jù)塊中的數(shù)據(jù)同步到備份存儲設(shè)備的快照資源池中,快照資源池用于存儲備份文件的增量數(shù)據(jù)。
[0165]步驟401和步驟402的具體實現(xiàn)方式可參照實施例一中的步驟101和102的相關(guān)描述,這里不再贅述。
[0166]增量備份和差量備份的主要區(qū)別在于:差量備份中,本次備份時刻備份的數(shù)據(jù)是本次備份時刻相對于初始備份時刻被更新的數(shù)據(jù);而增量備份中,本次備份時刻備份的數(shù)據(jù)是本次備份時刻相對于上一備份時刻被更新的數(shù)據(jù)。因此,本實施例中只有步驟403,在第M個備份時刻,主存儲設(shè)備將初始備份時刻到第M個備份時刻之間被更新的子數(shù)據(jù)塊中的數(shù)據(jù)拷貝到本地備份緩沖區(qū)。然后,將被更新的子數(shù)據(jù)塊中的數(shù)據(jù)同步到快照資源池中。在數(shù)據(jù)備份完成后,主存儲設(shè)備刪除本地備份緩沖區(qū)中被更新的子數(shù)據(jù)塊中的數(shù)據(jù)。
[0167]本實施例中,主存儲設(shè)備通過將主文件的存儲空間劃分為N個子數(shù)據(jù)塊,在每個備份時刻,將初始備份時刻到本次備份時刻之間的被更新的子數(shù)據(jù)塊中的數(shù)據(jù)拷貝到本地備份緩沖區(qū)中,主存儲設(shè)備只需要同步本地備份緩沖區(qū)中存儲的被更新的子數(shù)據(jù)塊中的數(shù)據(jù),沒有被更新的子數(shù)據(jù)塊的數(shù)據(jù)不需要同步,從而能夠減少文件備份的數(shù)據(jù)量,提高文件備份效率,節(jié)省備份數(shù)據(jù)的存儲空間。
[0168]在上述實施例四的基礎(chǔ)上,可選地,在步驟104之前,所述方法還可以包括以下步驟:主存儲設(shè)備判斷自己當(dāng)前的服務(wù)質(zhì)量QoS條件是否滿足要求;若QoS條件滿足要求,則主存儲設(shè)備將本地備份緩沖區(qū)中的所述初始備份時刻到所述第M個備份時刻之間被更新的子數(shù)據(jù)塊中的數(shù)據(jù)同步到所述備份存儲設(shè)備的快照資源池,若QoS條件不滿足要求,則主存儲設(shè)備不執(zhí)行數(shù)據(jù)備份操作?;蛘?,主存儲設(shè)備判斷本地備份緩沖區(qū)中的所述初始備份時刻到第M個備份時刻之間被更新的子數(shù)據(jù)塊中的數(shù)據(jù)的大小是否大于預(yù)先設(shè)置的數(shù)據(jù)量閾值;若本地備份緩沖區(qū)中的所述初始備份時刻到第M個備份時刻之間被更新的子數(shù)據(jù)塊中的數(shù)據(jù)的大小大于數(shù)據(jù)量閾值,則主存儲設(shè)備將本地備份緩沖區(qū)中的初始備份時刻到第M個備份時刻之間被更新的子數(shù)據(jù)塊中的數(shù)據(jù)同步到備份存儲設(shè)備的快照資源池。
[0169]本發(fā)明實施例五是對實施例四中步驟403的詳細(xì)描述,圖9為本發(fā)明實施例五提供的確定被更新子數(shù)據(jù)塊的流程圖,如圖9所示,本實施例提供的方法可以包括以下步驟:
[0170]步驟501、主存儲設(shè)備根據(jù)所述N個子數(shù)據(jù)塊中的數(shù)據(jù)生成每個子數(shù)據(jù)塊對應(yīng)的第M個備份時刻的哈希值。
[0171]步驟502、主存儲設(shè)備依次判斷N個子數(shù)據(jù)塊的第M個備份時刻哈希值與初始備份時刻的哈希值是否相同,若N個子數(shù)據(jù)塊中的第i個子數(shù)據(jù)塊的第M個備份時刻哈希值與初始備份時刻的哈希值相同,則主存儲設(shè)備確定第i個子數(shù)據(jù)塊中的數(shù)據(jù)沒有被更新,若N個子數(shù)據(jù)塊中的第i個子數(shù)據(jù)塊的第M個備份時刻哈希值與初始備份時刻的哈希值不相同,則主存儲設(shè)備確定第i個子數(shù)據(jù)塊中的數(shù)據(jù)被更新了。
[0172]步驟503、主存儲設(shè)備將N個子數(shù)據(jù)塊中被更新的子數(shù)據(jù)塊中的數(shù)據(jù)拷貝到本地備份緩沖區(qū)。
[0173]本實施例和實施例二的區(qū)別在于:本實施例中,主存儲設(shè)備是將N個子數(shù)據(jù)塊的第M個備份時刻哈希值與初始備份時刻的哈希值進(jìn)行比價,以確定被更新的子數(shù)據(jù)塊。
[0174]在實施例五的基礎(chǔ)上,主存儲設(shè)備在本次數(shù)據(jù)備份完成之后,還執(zhí)行以下步驟:主存儲設(shè)備將N個子數(shù)據(jù)塊對應(yīng)的第M個備份時刻的哈希值發(fā)送給備份存儲設(shè)備,以使備份存儲設(shè)備根據(jù)N個子數(shù)據(jù)塊對應(yīng)的第M個備份時刻的哈希值和初始備份時刻的哈希值恢復(fù)主文件的數(shù)據(jù)。
[0175]或者,主存儲設(shè)備生成第N個備份時刻的位圖,將第N個備份時刻的位圖發(fā)送給備份存儲設(shè)備,以使備份存儲設(shè)備根據(jù)初始備份時刻的位圖和第N個備份時刻的位圖恢復(fù)出主文件在第N個備份時刻的數(shù)據(jù)。具體地:若N個子數(shù)據(jù)塊中的第i個子數(shù)據(jù)塊中的數(shù)據(jù)沒有被更新,則主存儲設(shè)備將第M個備份時刻的位圖中第i個子數(shù)據(jù)塊對應(yīng)位上的值設(shè)置為初始值,若N個子數(shù)據(jù)塊中的第i個子數(shù)據(jù)塊中的數(shù)據(jù)被更新了,則主存儲設(shè)備將第M個備份時刻的位圖中第i個子數(shù)據(jù)塊對應(yīng)位上的值設(shè)置為非初始值,第M個備份時刻的位圖的每一位與主文件的N個子數(shù)據(jù)塊--對應(yīng)。
[0176]差量備份的數(shù)據(jù)恢復(fù)過程比增量備份的數(shù)據(jù)恢復(fù)過程更加簡單,增量備份在數(shù)據(jù)恢復(fù)時需要經(jīng)過多個數(shù)據(jù)合并才能恢復(fù)完整數(shù)據(jù),而在差量備份中,只需要進(jìn)行一次數(shù)據(jù)合并就可以恢復(fù)完整數(shù)據(jù)。例如,若要恢復(fù)第N個備份時刻的數(shù)據(jù),那么備份存儲設(shè)備只根據(jù)各子數(shù)據(jù)塊在第N個備份時刻的哈希值和初始備份時刻的哈希值進(jìn)行數(shù)據(jù)恢復(fù),或者,只根據(jù)各子數(shù)據(jù)塊在第N個備份時刻的位圖和初始備份時刻的位圖進(jìn)行數(shù)據(jù)恢復(fù)。差量備份中,備份存儲設(shè)備進(jìn)行數(shù)據(jù)合并過程和增量備份相同,因此,這里不再贅述,具體實現(xiàn)方式可參照增量備份的數(shù)據(jù)恢復(fù)過程。
[0177]圖10為本發(fā)明實施例六提供的主存儲設(shè)備的結(jié)構(gòu)示意圖,如圖10所示,本實施例的主存儲設(shè)備可以包括:分塊模塊11、備份模塊12和拷貝模塊13。
[0178]其中,分塊模塊11,用于將主文件的存儲空間劃分為N個子數(shù)據(jù)塊,N為大于等于2的正整數(shù);
[0179]備份模塊12,用于在初始備份時刻,將所述主文件中的初始數(shù)據(jù)同步到備份存儲設(shè)備的備份文件中;
[0180]拷貝模塊13,用于在第M個備份時刻,將第M-1個備份時刻到所述第M個備份時刻之間被更新的子數(shù)據(jù)塊中的數(shù)據(jù)拷貝到本地備份緩沖區(qū),所述第M-1個備份時刻為所述第M個備份時刻的上一備份時刻,M為大于等于2的正整數(shù);
[0181]所述備份模塊12還用于,在拷貝模塊13將第M-1個備份時刻到所述第M個備份時刻之間被更新的子數(shù)據(jù)塊中的數(shù)據(jù)拷貝到本地備份緩沖區(qū)之后,將所述本地備份緩沖區(qū)中的所述第M-1個備份時刻到所述第M個備份時刻之間被更新的子數(shù)據(jù)塊中的數(shù)據(jù)同步到所述備份存儲設(shè)備的快照資源池中,所述快照資源池用于存儲所述備份文件的增量數(shù)據(jù)。
[0182]本實施例的主存儲設(shè)備,可以用于執(zhí)行實施例一的技術(shù)方案,其實現(xiàn)原理和技術(shù)效果類似,此處不再贅述。
[0183]圖11為本發(fā)明實施例七提供的主存儲設(shè)備的結(jié)構(gòu)示意圖,如圖11所示,本實施例的主存儲設(shè)備在圖10所示的主存儲設(shè)備的結(jié)構(gòu)的基礎(chǔ)上,進(jìn)一步地,還可以包括:刪除模塊14和配置模塊15,該刪除模塊14用于,在備份模塊12將所述本地備份緩沖區(qū)中的所述第M-1個備份時刻到所述第M個備份時刻之間被更新的子數(shù)據(jù)塊中的數(shù)據(jù)同步到所述備份存儲設(shè)備的快照資源池之后,刪除所述本地備份緩沖區(qū)中的所述第M-1個備份時刻到所述第M個備份時刻之間被更新的子數(shù)據(jù)塊中的數(shù)據(jù)。配置模塊15,用于配置所述本地備份緩沖區(qū)的大小和所述快照資源池的大小。
[0184]本實施例中,所述拷貝模塊13具體包括:生成單元131,判斷單元132和拷貝單元133。生成單元131,用于根據(jù)所述N個子數(shù)據(jù)塊中的數(shù)據(jù)分別生成所述N個子數(shù)據(jù)塊對應(yīng)的第M個備份時刻的哈希值;判斷單元132,用于依次判斷所述N個子數(shù)據(jù)塊的第M個備份時刻的哈希值與第M-1個備份時刻的哈希值是否相同,若所述N個子數(shù)據(jù)塊中的第i個子數(shù)據(jù)塊的第M個備份時刻的哈希值與第M-1個備份時刻的哈希值相同,則確定所述第i個子數(shù)據(jù)塊中的數(shù)據(jù)沒有被更新,若所述N個子數(shù)據(jù)塊中的第i個子數(shù)據(jù)塊的每個子數(shù)據(jù)塊的第M個備份時刻的哈希值與第M-1個備份時刻的哈希值不相同,則確定所述第i個子數(shù)據(jù)塊中的數(shù)據(jù)被更新了 ;拷貝單元133,用于將所述N個子數(shù)據(jù)塊中被更新的子數(shù)據(jù)塊中的數(shù)據(jù)拷貝到所述本地備份緩沖區(qū)。
[0185]進(jìn)一步地,所述備份模塊12還用于:將所述N個子數(shù)據(jù)塊的第M個備份時刻的哈希值發(fā)送給所述備份存儲設(shè)備,以使所述備份存儲設(shè)備根據(jù)所述N個子數(shù)據(jù)塊的第M個備份時刻的哈希值和所述第M個備份時刻之前的所有備份時刻的哈希值恢復(fù)所述主文件的數(shù)據(jù)。
[0186]或者,所述備份模塊12還用于:若所述N個子數(shù)據(jù)塊中的第i個子數(shù)據(jù)塊中的數(shù)據(jù)沒有被更新,則將第M個備份時刻的位圖中所述第i個子數(shù)據(jù)塊對應(yīng)位上的值設(shè)置為初始值,若所述N個子數(shù)據(jù)塊中的第i個子數(shù)據(jù)塊中的數(shù)據(jù)被更新了,則將所述第M個備份時刻的位圖中所述第i個子數(shù)據(jù)塊對應(yīng)位上的值設(shè)置為非初始值,所述第M個備份時刻的位圖的每一位與所述主文件的N個子數(shù)據(jù)塊一一對應(yīng);并將所述第M個備份時刻的位圖發(fā)送給所述備份存儲設(shè)備,以使所述備份存儲設(shè)備根據(jù)所述第M個備份時刻的位圖和所述第M個備份時刻之前的所有備份時刻的位圖恢復(fù)所述主文件的數(shù)據(jù)。
[0187]可選地,所述備份模塊12還用于:在將所述本地備份緩沖區(qū)中的所述第M-1個備份時刻到所述第M個備份時刻之間被更新的子數(shù)據(jù)塊中的數(shù)據(jù)同步到所述備份存儲設(shè)備的快照資源池之前,判斷所述主存儲設(shè)備的當(dāng)前的服務(wù)質(zhì)量QoS條件是否滿足要求;若所述QoS條件滿足要求,則所述備份模塊12將所述本地備份緩沖區(qū)中的所述第M-1個備份時刻到所述第M個備份時刻之間被更新的子數(shù)據(jù)塊中的數(shù)據(jù)同步到所述備份存儲設(shè)備的快照資源池中。其中,所述QoS條件包括以下條件中的任意一個或其組合:所述主存儲設(shè)備的中央處理器CPU利用率、內(nèi)存利用率、磁盤利用率以及所述主存儲設(shè)備和所述備份存儲設(shè)備之間的網(wǎng)絡(luò)帶寬。
[0188]可選地,所述備份模塊12還用于:在將所述本地備份緩沖區(qū)中的所述第M-1個備份時刻到所述第M個備份時刻之間被更新的子數(shù)據(jù)塊中的數(shù)據(jù)同步到所述備份存儲設(shè)備的快照資源池之前,判斷所述本地備份緩沖區(qū)中的所述第M-1個備份時刻到所述第M個備份時刻之間被更新的子數(shù)據(jù)塊中的數(shù)據(jù)的大小是否大于預(yù)先設(shè)置的數(shù)據(jù)量閾值;若所述本地備份緩沖區(qū)中的所述第M-1個備份時刻到所述第M個備份時刻之間被更新的子數(shù)據(jù)塊中的數(shù)據(jù)的大小大于所述數(shù)據(jù)量閾值,則所述備份模塊12將本地備份緩沖區(qū)中的所述第M-1個備份時刻到所述第M個備份時刻之間被更新的子數(shù)據(jù)塊中的數(shù)據(jù)同步到所述備份存儲設(shè)備的快照資源池。
[0189]本實施例的主存儲設(shè)備,可以用于執(zhí)行實施例一至實施例三的技術(shù)方案,其實現(xiàn)原理和技術(shù)效果類似,此處不再贅述。
[0190]圖12為本發(fā)明實施例八提供的主存儲設(shè)備的結(jié)構(gòu)示意圖,如圖12所示,本實施例的主存儲設(shè)備可以包括:分塊模塊21、備份模塊22和拷貝模塊23。
[0191]分塊模塊21,用于將主文件的存儲空間劃分為N個子數(shù)據(jù)塊,N為大于等于2的正整數(shù);
[0192]備份模塊22,用于在初始備份時刻,將所述主文件中的初始數(shù)據(jù)同步到備份存儲設(shè)備的備份文件中;
[0193]拷貝模塊23,用于在第M個備份時刻,將所述初始備份時刻到所述第M個備份時刻之間被更新的子數(shù)據(jù)塊中的數(shù)據(jù)拷貝到本地備份緩沖區(qū),M為大于等于2的正整數(shù);
[0194]所述備份模塊還用于22,在所述拷貝模塊23將所述初始備份時刻到所述第M個備份時刻之間被更新的子數(shù)據(jù)塊中的數(shù)據(jù)拷貝到本地備份緩沖區(qū)之后,將所述本地備份緩沖區(qū)中的所述初始備份時刻到所述第M個備份時刻之間被更新的子數(shù)據(jù)塊中的數(shù)據(jù)同步到所述備份存儲設(shè)備的快照資源池中,所述快照資源池用于存儲所述備份文件的增量數(shù)據(jù)。
[0195]本實施例的主存儲設(shè)備可以用于執(zhí)行實施例四提供的技術(shù)方案,其實現(xiàn)原理和技術(shù)效果類似,此處不再贅述。
[0196]圖13為本發(fā)明實施例九提供的主存儲設(shè)備的結(jié)構(gòu)示意圖,如圖13所示,本實施例的主存儲設(shè)備在圖12所示的主存儲設(shè)備的結(jié)構(gòu)的基礎(chǔ)上,進(jìn)一步地,還可以包括:刪除模塊24,所述刪除模塊24,用于在所述備份模塊22將所述本地備份緩沖區(qū)中的所述初始備份時刻到所述第M個備份時刻之間被更新的子數(shù)據(jù)塊中的數(shù)據(jù)同步到所述備份存儲設(shè)備的快照資源池之后,刪除所述本地備份緩沖區(qū)中的所述初始備份時刻到所述第M個備份時刻之間被更新的子數(shù)據(jù)塊中的數(shù)據(jù)。
[0197]本實施例中,所述拷貝模塊23具體包括:生成單元231、判斷單元232和拷貝單元233,其中,生成單元231,用于根據(jù)所述N個子數(shù)據(jù)塊中的數(shù)據(jù)生成每個子數(shù)據(jù)塊對應(yīng)的第M個備份時刻的哈希值;判斷單元232,用于依次判斷所述N個子數(shù)據(jù)塊的第M個備份時刻哈希值與初始備份時刻的哈希值是否相同,若所述N個子數(shù)據(jù)塊中的第i個子數(shù)據(jù)塊的第M個備份時刻哈希值與初始備份時刻的哈希值相同,則確定所述第i個子數(shù)據(jù)塊中的數(shù)據(jù)沒有被更新,若所述N個子數(shù)據(jù)塊中的第i個子數(shù)據(jù)塊的第M個備份時刻哈希值與初始備份時刻的哈希值不相同,則確定所述第i個子數(shù)據(jù)塊中的數(shù)據(jù)被更新了 ;拷貝單元233,用于將所述N個子數(shù)據(jù)塊中被更新的子數(shù)據(jù)塊中的數(shù)據(jù)拷貝到所述本地備份緩沖區(qū)。
[0198]進(jìn)一步地,所述備份模塊22還用于:將所述N個子數(shù)據(jù)塊對應(yīng)的第M個備份時刻的哈希值發(fā)送給所述備份存儲設(shè)備,以使所述備份存儲設(shè)備根據(jù)所述N個子數(shù)據(jù)塊對應(yīng)的第M個備份時刻的哈希值和所述初始備份時刻的哈希值恢復(fù)所述主文件的數(shù)據(jù)。
[0199]或者,所述備份模塊22還用于:若所述N個子數(shù)據(jù)塊中的第i個子數(shù)據(jù)塊中的數(shù)據(jù)沒有被更新,則將第M個備份時刻的位圖中所述第i個子數(shù)據(jù)塊對應(yīng)位上的值設(shè)置為初始值,若所述N個子數(shù)據(jù)塊中的第i個子數(shù)據(jù)塊中的數(shù)據(jù)被更新了,則將所述第M個備份時刻的位圖中所述第i個子數(shù)據(jù)塊對應(yīng)位上的值設(shè)置為非初始值,所述第M個備份時刻的位圖的每一位與所述主文件的N個子數(shù)據(jù)塊--對應(yīng);并將生成的所述第M個備份時刻的位圖發(fā)送給所述備份存儲設(shè)備,以使所述備份存儲設(shè)備根據(jù)所述第M個備份時刻的位圖和所述初始備份時刻的位圖恢復(fù)所述主文件的數(shù)據(jù)。
[0200]可選地,所述備份模塊22還用于,在將所述本地備份緩沖區(qū)中的所述初始備份時刻到所述第M個備份時刻之間被更新的子數(shù)據(jù)塊中的數(shù)據(jù)同步到所述備份存儲設(shè)備的快照資源池中之前,判斷所述主存儲設(shè)備的當(dāng)前的服務(wù)質(zhì)量QoS條件是否滿足要求;若所述QoS條件滿足要求,則將本地備份緩沖區(qū)中的所述初始備份時刻到所述第M個備份時刻之間被更新的子數(shù)據(jù)塊中的數(shù)據(jù)同步到所述備份存儲設(shè)備的快照資源池。
[0201]本實施例的主存儲設(shè)備,可以用于執(zhí)行實施例四和實施例五提供的技術(shù)方案,其實現(xiàn)原理和技術(shù)效果類似,此處不再贅述。
[0202]圖14為本發(fā)明實施例十提供的主存儲設(shè)備的結(jié)構(gòu)示意圖,如圖14所示,本實施例的主存儲設(shè)備300包括:處理器31、存儲器32、通信接口 33以及系統(tǒng)總線34,存儲器32和通信接口 33通過系統(tǒng)總線34與處理器31連接并通信,通信接口 33用于和其他設(shè)備進(jìn)行通信,存儲器32中存儲有計算機(jī)執(zhí)行指令321 ;所述處理器31,用于運(yùn)行所述計算機(jī)執(zhí)行指令321,執(zhí)行如下所述的方法:
[0203]將主文件的存儲空間劃分為N個子數(shù)據(jù)塊,N為大于等于2的正整數(shù);
[0204]在初始備份時刻,將所述主文件中的初始數(shù)據(jù)同步到備份存儲設(shè)備的備份文件中;
[0205]在第M個備份時刻,將第M-1個備份時刻到所述第M個備份時刻之間被更新的子數(shù)據(jù)塊中的數(shù)據(jù)拷貝到本地備份緩沖區(qū),所述第M-1個備份時刻為所述第M個備份時刻的上一備份時刻,M為大于等于2的正整數(shù);
[0206]將所述本地備份緩沖區(qū)中的所述第M-1個備份時刻到所述第M個備份時刻之間被更新的子數(shù)據(jù)塊中的數(shù)據(jù)同步到所述備份存儲設(shè)備的快照資源池中,所述快照資源池用于存儲所述備份文件的增量數(shù)據(jù)。
[0207]所述處理器31在執(zhí)行上述方法之前還用于:配置所述本地備份緩沖區(qū)的大小和所述快照資源池的大小。
[0208]所述處理器31在將第M-1個備份時刻到所述第M個備份時刻之間被更新的子數(shù)據(jù)塊中的數(shù)據(jù)拷貝到本地備份緩沖區(qū)時,具體用于:首先,根據(jù)所述N個子數(shù)據(jù)塊中的數(shù)據(jù)分別生成所述N個子數(shù)據(jù)塊對應(yīng)的第M個備份時刻的哈希值。然后,依次判斷所述N個子數(shù)據(jù)塊的第M個備份時刻的哈希值與第M-1個備份時刻的哈希值是否相同;若所述N個子數(shù)據(jù)塊中的第i個子數(shù)據(jù)塊的第M個備份時刻的哈希值與第M-1個備份時刻的哈希值相同,則所述主存儲設(shè)備確定所述第i個子數(shù)據(jù)塊中的數(shù)據(jù)沒有被更新;若所述N個子數(shù)據(jù)塊中的第i個子數(shù)據(jù)塊的每個子數(shù)據(jù)塊的第M個備份時刻的哈希值與第M-1個備份時刻的哈希值不相同,則所述主存儲設(shè)備確定所述第i個子數(shù)據(jù)塊中的數(shù)據(jù)被更新了。最后,將所述N個子數(shù)據(jù)塊中被更新的子數(shù)據(jù)塊中的數(shù)據(jù)拷貝到所述本地備份緩沖區(qū)。
[0209]所述處理器31在將所述本地備份緩沖區(qū)中的所述第M-1個備份時刻到所述第M個備份時刻之間被更新的子數(shù)據(jù)塊中的數(shù)據(jù)同步到所述備份存儲設(shè)備的快照資源池中之后,還用于執(zhí)行如下操作:將所述N個子數(shù)據(jù)塊的第M個備份時刻的哈希值發(fā)送給所述備份存儲設(shè)備,以使所述備份存儲設(shè)備根據(jù)所述N個子數(shù)據(jù)塊的第M個備份時刻的哈希值和所述第M個備份時刻之前的所有備份時刻的哈希值恢復(fù)所述主文件的數(shù)據(jù)?;蛘撸羲鯪個子數(shù)據(jù)塊中的第i個子數(shù)據(jù)塊中的數(shù)據(jù)沒有被更新,則所述主存儲設(shè)備將第M個備份時刻的位圖中所述第i個子數(shù)據(jù)塊對應(yīng)位上的值設(shè)置為初始值,若所述N個子數(shù)據(jù)塊中的第i個子數(shù)據(jù)塊中的數(shù)據(jù)被更新了,則所述主存儲設(shè)備將所述第M個備份時刻的位圖中所述第i個子數(shù)據(jù)塊對應(yīng)位上的值設(shè)置為非初始值,所述第M個備份時刻的位圖的每一位與所述主文件的N個子數(shù)據(jù)塊一一對應(yīng);并將所述第M個備份時刻的位圖發(fā)送給所述備份存儲設(shè)備,以使所述備份存儲設(shè)備根據(jù)所述第M個備份時刻的位圖和所述第M個備份時刻之前的所有備份時刻的位圖恢復(fù)所述主文件的數(shù)據(jù)。
[0210]進(jìn)一步地,在所述處理器31將所述本地備份緩沖區(qū)中的所述第M-1個備份時刻到所述第M個備份時刻之間被更新的子數(shù)據(jù)塊中的數(shù)據(jù)同步到所述備份存儲設(shè)備的快照資源池之后,所述處理器31還用于:刪除所述本地備份緩沖區(qū)中的所述第M-1個備份時刻到所述第M個備份時刻之間被更新的子數(shù)據(jù)塊中的數(shù)據(jù)。
[0211]可選地,所述處理器31在將本地備份緩沖區(qū)中的所述第M-1個備份時刻到所述第M個備份時刻之間被更新的子數(shù)據(jù)塊中的數(shù)據(jù)同步到所述備份存儲設(shè)備的快照資源池之前,還用于:判斷主存儲設(shè)備300的當(dāng)前的服務(wù)質(zhì)量QoS條件是否滿足要求;若所述QoS條件滿足要求,則所述處理器31將所述本地備份緩沖區(qū)中的所述第M-1個備份時刻到所述第M個備份時刻之間被更新的子數(shù)據(jù)塊中的數(shù)據(jù)同步到所述備份存儲設(shè)備的快照資源池中。其中,所述QoS條件包括以下條件中的任意一個或其組合:所述主存儲設(shè)備300的處理器31的利用率、內(nèi)存利用率、磁盤利用率以及所述主存儲設(shè)備300和所述備份存儲設(shè)備之間的網(wǎng)絡(luò)帶寬。
[0212]可選地,所述處理器31在將本地備份緩沖區(qū)中的所述第M-1個備份時刻到所述第M個備份時刻之間被更新的子數(shù)據(jù)塊中的數(shù)據(jù)同步到所述備份存儲設(shè)備的快照資源池之前,還用于:判斷所述本地備份緩沖區(qū)中的所述第M-1個備份時刻到所述第M個備份時刻之間被更新的子數(shù)據(jù)塊中的數(shù)據(jù)的大小是否大于預(yù)先設(shè)置的數(shù)據(jù)量閾值;若所述本地備份緩沖區(qū)中的所述第M-1個備份時刻到所述第M個備份時刻之間被更新的子數(shù)據(jù)塊中的數(shù)據(jù)的大小大于所述數(shù)據(jù)量閾值,則所述處理器31將本地備份緩沖區(qū)中的所述第M-1個備份時刻到所述第M個備份時刻之間被更新的子數(shù)據(jù)塊中的數(shù)據(jù)同步到所述備份存儲設(shè)備的快照資源池。
[0213]本實施例的主存儲設(shè)備,可以用于執(zhí)行實施例一至實施例三提供的技術(shù)方案,其實現(xiàn)原理和技術(shù)效果類似,此處不再贅述。
[0214]圖15為本發(fā)明實施例十一提供的主存儲設(shè)備的結(jié)構(gòu)示意圖,如圖15所示,本實施例的主存儲設(shè)備400包括:處理器41、存儲器42、通信接口 43以及系統(tǒng)總線44,存儲器42和通信接口 43通過系統(tǒng)總線44與處理器41連接并通信,通信接口 43用于和其他設(shè)備進(jìn)行通信,存儲器42中存儲有計算機(jī)執(zhí)行指令421 ;所述處理器41,用于運(yùn)行所述計算機(jī)執(zhí)行指令421,執(zhí)行如下所述的方法:
[0215]將主文件的存儲空間劃分為N個子數(shù)據(jù)塊,N為大于等于2的正整數(shù);
[0216]在初始備份時刻,將所述主文件中的初始數(shù)據(jù)同步到備份存儲設(shè)備的備份文件中;
[0217]在第M個備份時刻,將所述初始備份時刻到所述第M個備份時刻之間被更新的子數(shù)據(jù)塊中的數(shù)據(jù)拷貝到本地備份緩沖區(qū),M為大于等于2的正整數(shù);
[0218]將所述本地備份緩沖區(qū)中的所述初始備份時刻到所述第M個備份時刻之間被更新的子數(shù)據(jù)塊中的數(shù)據(jù)同步到所述備份存儲設(shè)備的快照資源池中,所述快照資源池用于存儲所述備份文件的增量數(shù)據(jù)。
[0219]所述處理器41在將所述初始備份時刻到所述第M個備份時刻之間被更新的子數(shù)據(jù)塊中的數(shù)據(jù)拷貝到本地備份緩沖區(qū)時,具體用于:首先,根據(jù)所述N個子數(shù)據(jù)塊中的數(shù)據(jù)生成每個子數(shù)據(jù)塊對應(yīng)的第M個備份時刻的哈希值。然后,依次判斷所述N個子數(shù)據(jù)塊的第M個備份時刻哈希值與初始備份時刻的哈希值是否相同,若所述N個子數(shù)據(jù)塊中的第i個子數(shù)據(jù)塊的第M個備份時刻哈希值與初始備份時刻的哈希值相同,則確定所述第i個子數(shù)據(jù)塊中的數(shù)據(jù)沒有被更新;若所述N個子數(shù)據(jù)塊中的第i個子數(shù)據(jù)塊的第M個備份時刻哈希值與初始備份時刻的哈希值不相同,則確定所述第i個子數(shù)據(jù)塊中的數(shù)據(jù)被更新了。最后,將所述N個子數(shù)據(jù)塊中被更新的子數(shù)據(jù)塊中的數(shù)據(jù)拷貝到所述本地備份緩沖區(qū)。
[0220]所述處理器41在將所述本地備份緩沖區(qū)中的所述初始備份時刻到所述第M個備份時刻之間被更新的子數(shù)據(jù)塊中的數(shù)據(jù)同步到所述備份存儲設(shè)備的快照資源池中之后,還用于:將所述N個子數(shù)據(jù)塊對應(yīng)的第M個備份時刻的哈希值發(fā)送給所述備份存儲設(shè)備,以使所述備份存儲設(shè)備根據(jù)所述N個子數(shù)據(jù)塊對應(yīng)的第M個備份時刻的哈希值和所述初始備份時刻的哈希值恢復(fù)所述主文件的數(shù)據(jù)?;蛘?,若所述N個子數(shù)據(jù)塊中的第i個子數(shù)據(jù)塊中的數(shù)據(jù)沒有被更新,則所述處理器41將第M個備份時刻的位圖中所述第i個子數(shù)據(jù)塊對應(yīng)位上的值設(shè)置為初始值,若所述N個子數(shù)據(jù)塊中的第i個子數(shù)據(jù)塊中的數(shù)據(jù)被更新了,則所述處理器41將所述第M個備份時刻的位圖中所述第i個子數(shù)據(jù)塊對應(yīng)位上的值設(shè)置為非初始值,所述第M個備份時刻的位圖的每一位與所述主文件的N個子數(shù)據(jù)塊一一對應(yīng);并將所述第M個備份時刻的位圖發(fā)送給所述備份存儲設(shè)備,以使所述備份存儲設(shè)備根據(jù)所述第M個備份時刻的位圖和所述初始備份時刻的位圖恢復(fù)所述主文件的數(shù)據(jù)。
[0221]進(jìn)一步,所述處理器41在將所述本地備份緩沖區(qū)中的所述初始備份時刻到所述第M個備份時刻之間被更新的子數(shù)據(jù)塊中的數(shù)據(jù)同步到所述備份存儲設(shè)備的快照資源池之后,還用于:刪除所述本地備份緩沖區(qū)中的所述初始備份時刻到所述第M個備份時刻之間被更新的子數(shù)據(jù)塊中的數(shù)據(jù)。
[0222]可選地,所述處理器41在將本地備份緩沖區(qū)中的所述初始備份時刻到所述第M個備份時刻之間被更新的子數(shù)據(jù)塊中的數(shù)據(jù)同步到所述備份存儲設(shè)備的快照資源池之前,還用于:判斷自己當(dāng)前的服務(wù)質(zhì)量QoS條件是否滿足要求;若所述QoS條件滿足要求,則所述處理器41將本地備份緩沖區(qū)中的所述初始備份時刻到所述第M個備份時刻之間被更新的子數(shù)據(jù)塊中的數(shù)據(jù)同步到所述備份存儲設(shè)備的快照資源池。
[0223]本實施例的主存儲設(shè)備,可以用于執(zhí)行實施例四和實施例五提供的技術(shù)方案,其實現(xiàn)原理和技術(shù)效果類似,此處不再贅述。
[0224]本領(lǐng)域普通技術(shù)人員可以理解:實現(xiàn)上述各方法實施例的全部或部分步驟可以通過程序指令相關(guān)的硬件來完成。前述的程序可以存儲于一計算機(jī)可讀取存儲介質(zhì)中。該程序在執(zhí)行時,執(zhí)行包括上述各方法實施例的步驟;而前述的存儲介質(zhì)包括:R0M、RAM、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
[0225]最后應(yīng)說明的是:以上各實施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡管參照前述各實施例對本發(fā)明進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對前述各實施例所記載的技術(shù)方案進(jìn)行修改,或者對其中部分或者全部技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實施例技術(shù)方案的范圍。
【權(quán)利要求】
1.一種文件備份方法,其特征在于,包括: 主存儲設(shè)備將主文件的存儲空間劃分為N個子數(shù)據(jù)塊,N為大于等于2的正整數(shù); 在初始備份時刻,所述主存儲設(shè)備將所述主文件中的初始數(shù)據(jù)同步到備份存儲設(shè)備的備份文件中; 在第M個備份時刻,所述主存儲設(shè)備將第M-1個備份時刻到所述第M個備份時刻之間被更新的子數(shù)據(jù)塊中的數(shù)據(jù)拷貝到本地備份緩沖區(qū),所述第M-1個備份時刻為所述第M個備份時刻的上一備份時刻,M為大于等于2的正整數(shù); 所述主存儲設(shè)備將所述本地備份緩沖區(qū)中的所述第M-1個備份時刻到所述第M個備份時刻之間被更新的子數(shù)據(jù)塊中的數(shù)據(jù)同步到所述備份存儲設(shè)備的快照資源池中,所述快照資源池用于存儲所述備份文件的增量數(shù)據(jù)。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述主存儲設(shè)備將第M-1個備份時刻到所述第M個備份時刻之間被更新的子數(shù)據(jù)塊中的數(shù)據(jù)拷貝到本地備份緩沖區(qū),包括: 所述主存儲設(shè)備根據(jù)所述N個子數(shù)據(jù)塊中的數(shù)據(jù)分別生成所述N個子數(shù)據(jù)塊對應(yīng)的第M個備份時刻的哈希值; 所述主存儲設(shè)備依次判斷所述N個子數(shù)據(jù)塊的第M個備份時刻的哈希值與第M-1個備份時刻的哈希值是否相同; 若所述N個子數(shù)據(jù)塊中的第i個子數(shù)據(jù)塊的第M個備份時刻的哈希值與第M-1個備份時刻的哈希值相同,則所述主存儲設(shè)備確定所述第i個子數(shù)據(jù)塊中的數(shù)據(jù)沒有被更新; 若所述N個子數(shù)據(jù)塊中的第i個子數(shù)據(jù)塊的每個子數(shù)據(jù)塊的第M個備份時刻的哈希值與第M-1個備份時刻的哈希值不相同,則所述主存儲設(shè)備確定所述第i個子數(shù)據(jù)塊中的數(shù)據(jù)被更新了; 所述主存儲設(shè)備將所述N個子數(shù)據(jù)塊中被更新的子數(shù)據(jù)塊中的數(shù)據(jù)拷貝到所述本地備份緩沖區(qū)。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述主存儲設(shè)備將所述本地備份緩沖區(qū)中的所述第M-1個備份時刻到所述第M個備份時刻之間被更新的子數(shù)據(jù)塊中的數(shù)據(jù)同步到所述備份存儲設(shè)備的快照資源池中之后,所述方法還包括: 所述主存儲設(shè)備將所述N個子數(shù)據(jù)塊的第M個備份時刻的哈希值發(fā)送給所述備份存儲設(shè)備,以使所述備份存儲設(shè)備根據(jù)所述N個子數(shù)據(jù)塊的第M個備份時刻的哈希值和所述第M個備份時刻之前的所有備份時刻的哈希值恢復(fù)所述主文件的數(shù)據(jù)。
4.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述主存儲設(shè)備將所述本地備份緩沖區(qū)中的所述第M-1個備份時刻到所述第M個備份時刻之間被更新的子數(shù)據(jù)塊中的數(shù)據(jù)同步到所述備份存儲設(shè)備的快照資源池中之后,所述方法還包括: 若所述N個子數(shù)據(jù)塊中的第i個子數(shù)據(jù)塊中的數(shù)據(jù)沒有被更新,則所述主存儲設(shè)備將第M個備份時刻的位圖中所述第i個子數(shù)據(jù)塊對應(yīng)位上的值設(shè)置為初始值,若所述N個子數(shù)據(jù)塊中的第i個子數(shù)據(jù)塊中的數(shù)據(jù)被更新了,則所述主存儲設(shè)備將所述第M個備份時刻的位圖中所述第i個子數(shù)據(jù)塊對應(yīng)位上的值設(shè)置為非初始值,所述第M個備份時刻的位圖的每一位與所述主文件的N個子數(shù)據(jù)塊--對應(yīng); 所述主存儲設(shè)備將所述第M個備份時刻的位圖發(fā)送給所述備份存儲設(shè)備,以使所述備份存儲設(shè)備根據(jù)所述第M個備份時刻的位圖和所述第M個備份時刻之前的所有備份時刻的位圖恢復(fù)所述主文件的數(shù)據(jù)。
5.根據(jù)權(quán)利要求1-4中任一項所述的方法,其特征在于,在所述主存儲設(shè)備將所述本地備份緩沖區(qū)中的所述第M-1個備份時刻到所述第M個備份時刻之間被更新的子數(shù)據(jù)塊中的數(shù)據(jù)同步到所述備份存儲設(shè)備的快照資源池之后,所述方法還包括: 所述主存儲設(shè)備刪除所述本地備份緩沖區(qū)中的所述第M-1個備份時刻到所述第M個備份時刻之間被更新的子數(shù)據(jù)塊中的數(shù)據(jù)。
6.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述主存儲設(shè)備將本地備份緩沖區(qū)中的所述第M-1個備份時刻到所述第M個備份時刻之間被更新的子數(shù)據(jù)塊中的數(shù)據(jù)同步到所述備份存儲設(shè)備的快照資源池之前,所述方法還包括: 所述主存儲設(shè)備判斷自己當(dāng)前的服務(wù)質(zhì)量QoS條件是否滿足要求; 若所述QoS條件滿足要求,則所述主存儲設(shè)備將所述本地備份緩沖區(qū)中的所述第M-1個備份時刻到所述第M個備份時刻之間被更新的子數(shù)據(jù)塊中的數(shù)據(jù)同步到所述備份存儲設(shè)備的快照資源池中。
7.根據(jù)權(quán)利要求6所述的方法,其特征在于,所述QoS條件包括以下條件中的任意一個或其組合:所述主存儲設(shè)備的中央處理器CPU利用率、內(nèi)存利用率、磁盤利用率以及所述主存儲設(shè)備和所述備份存儲設(shè)備之間的網(wǎng)絡(luò)帶寬。
8.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述主存儲設(shè)備將本地備份緩沖區(qū)中的所述第M-1個備份時刻到所述第M個備份時刻之間被更新的子數(shù)據(jù)塊中的數(shù)據(jù)同步到所述備份存儲設(shè)備的快照資源池之前,所述方法還包括: 所述主存儲設(shè)備判斷所述本地備份緩沖區(qū)中的所述第M-1個備份時刻到所述第M個備份時刻之間被更新的子數(shù)據(jù)塊中的數(shù)據(jù)的大小是否大于預(yù)先設(shè)置的數(shù)據(jù)量閾值; 若所述本地備份緩沖區(qū)中的所述第M-1個備份時刻到所述第M個備份時刻之間被更新的子數(shù)據(jù)塊中的數(shù)據(jù)的大小大于所述數(shù)據(jù)量閾值,則所述主存儲設(shè)備將本地備份緩沖區(qū)中的所述第M-1個備份時刻到所述第M個備份時刻之間被更新的子數(shù)據(jù)塊中的數(shù)據(jù)同步到所述備份存儲設(shè)備的快照資源池。
9.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述主存儲設(shè)備將主文件的存儲空間劃分為N個子數(shù)據(jù)塊之前,所述方法還包括: 所述主存儲設(shè)備配置所述本地備份緩沖區(qū)的大小和所述快照資源池的大小。
10.一種文件備份方法,其特征在于,包括: 主存儲設(shè)備將主文件的存儲空間劃分為N個子數(shù)據(jù)塊,N為大于等于2的正整數(shù); 在初始備份時刻,所述主存儲設(shè)備將所述主文件中的初始數(shù)據(jù)同步到備份存儲設(shè)備的備份文件中; 在第M個備份時刻,所述主存儲設(shè)備將所述初始備份時刻到所述第M個備份時刻之間被更新的子數(shù)據(jù)塊中的數(shù)據(jù)拷貝到本地備份緩沖區(qū),M為大于等于2的正整數(shù); 所述主存儲設(shè)備將所述本地備份緩沖區(qū)中的所述初始備份時刻到所述第M個備份時刻之間被更新的子數(shù)據(jù)塊中的數(shù)據(jù)同步到所述備份存儲設(shè)備的快照資源池中,所述快照資源池用于存儲所述備份文件的增量數(shù)據(jù)。
11.根據(jù)權(quán)利要求10所述的方法,其特征在于,所述主存儲設(shè)備將所述初始備份時刻到所述第M個備份時刻之間被更新的子數(shù)據(jù)塊中的數(shù)據(jù)拷貝到本地備份緩沖區(qū),包括: 所述主存儲設(shè)備根據(jù)所述N個子數(shù)據(jù)塊中的數(shù)據(jù)生成每個子數(shù)據(jù)塊對應(yīng)的第M個備份時刻的哈希值; 所述主存儲設(shè)備依次判斷所述N個子數(shù)據(jù)塊的第M個備份時刻哈希值與初始備份時刻的哈希值是否相同; 若所述N個子數(shù)據(jù)塊中的第i個子數(shù)據(jù)塊的第M個備份時刻哈希值與初始備份時刻的哈希值相同,則所述主存儲設(shè)備確定所述第i個子數(shù)據(jù)塊中的數(shù)據(jù)沒有被更新; 若所述N個子數(shù)據(jù)塊中的第i個子數(shù)據(jù)塊的第M個備份時刻哈希值與初始備份時刻的哈希值不相同,則所述主存儲設(shè)備確定所述第i個子數(shù)據(jù)塊中的數(shù)據(jù)被更新了 ; 所述主存儲設(shè)備將所述N個子數(shù)據(jù)塊中被更新的子數(shù)據(jù)塊中的數(shù)據(jù)拷貝到所述本地備份緩沖區(qū)。
12.根據(jù)權(quán)利要求11所述的方法,其特征在于,所述主存儲設(shè)備將所述本地備份緩沖區(qū)中的所述初始備份時刻到所述第M個備份時刻之間被更新的子數(shù)據(jù)塊中的數(shù)據(jù)同步到所述備份存儲設(shè)備的快照資源池中之后,所述方法還包括: 所述主存儲設(shè)備將所述N個子數(shù)據(jù)塊對應(yīng)的第M個備份時刻的哈希值發(fā)送給所述備份存儲設(shè)備,以使所述備份存儲設(shè)備根據(jù)所述N個子數(shù)據(jù)塊對應(yīng)的第M個備份時刻的哈希值和所述初始備份時刻的哈希值恢復(fù)所述主文件的數(shù)據(jù)。
13.根據(jù)權(quán)利要求11所述的方法,其特征在于,所述主存儲設(shè)備將所述被更新的子數(shù)據(jù)塊中的數(shù)據(jù)拷貝到所述本地備份緩沖區(qū)之后,所述方法還包括: 若所述N個子數(shù)據(jù)塊中的第i個子數(shù)據(jù)塊中的數(shù)據(jù)沒有被更新,則所述主存儲設(shè)備將第M個備份時刻的位圖中所述第i個子數(shù)據(jù)塊對應(yīng)位上的值設(shè)置為初始值,若所述N個子數(shù)據(jù)塊中的第i個子數(shù)據(jù)塊中的數(shù)據(jù)被更新了,則所述主存儲設(shè)備將所述第M個備份時刻的位圖中所述第i個子數(shù)據(jù)塊對應(yīng)位上的值設(shè)置為非初始值,所述第M個備份時刻的位圖的每一位與所述主文件的N個子數(shù)據(jù)塊--對應(yīng); 所述主存儲設(shè)備將所述第M個備份時刻的位圖發(fā)送給所述備份存儲設(shè)備,以使所述備份存儲設(shè)備根據(jù)所述第M個備份時刻的位圖和所述初始備份時刻的位圖恢復(fù)所述主文件的數(shù)據(jù)。
14.根據(jù)權(quán)利要求11-13中任一項所述的方法,其特征在于,在所述主存儲設(shè)備將所述本地備份緩沖區(qū)中的所述初始備份時刻到所述第M個備份時刻之間被更新的子數(shù)據(jù)塊中的數(shù)據(jù)同步到所述備份存儲設(shè)備的快照資源池之后,所述方法還包括: 所述主存儲設(shè)備刪除所述本地備份緩沖區(qū)中的所述初始備份時刻到所述第M個備份時刻之間被更新的子數(shù)據(jù)塊中的數(shù)據(jù)。
15.根據(jù)權(quán)利要求10所述的方法,其特征在于,所述主存儲設(shè)備將本地備份緩沖區(qū)中的所述初始備份時刻到所述第M個備份時刻之間被更新的子數(shù)據(jù)塊中的數(shù)據(jù)同步到所述備份存儲設(shè)備的快照資源池之前,所述方法還包括: 所述主存儲設(shè)備判斷自己當(dāng)前的服務(wù)質(zhì)量QoS條件是否滿足要求; 若所述QoS條件滿足要求,則所述主存儲設(shè)備將本地備份緩沖區(qū)中的所述初始備份時刻到所述第M個備份時刻之間被更新的子數(shù)據(jù)塊中的數(shù)據(jù)同步到所述備份存儲設(shè)備的快照資源池。
16.一種主存儲設(shè)備,其特征在于,包括: 分塊模塊,用于將主文件的存儲空間劃分為N個子數(shù)據(jù)塊,N為大于等于2的正整數(shù); 備份模塊,用于在初始備份時刻,將所述主文件中的初始數(shù)據(jù)同步到備份存儲設(shè)備的備份文件中; 拷貝模塊,用于在第M個備份時刻,將第M-1個備份時刻到所述第M個備份時刻之間被更新的子數(shù)據(jù)塊中的數(shù)據(jù)拷貝到本地備份緩沖區(qū),所述第M-1個備份時刻為所述第M個備份時刻的上一備份時刻,M為大于等于2的正整數(shù); 所述備份模塊還用于,將所述本地備份緩沖區(qū)中的所述第M-1個備份時刻到所述第M個備份時刻之間被更新的子數(shù)據(jù)塊中的數(shù)據(jù)同步到所述備份存儲設(shè)備的快照資源池中,所述快照資源池用于存儲所述備份文件的增量數(shù)據(jù)。
17.根據(jù)權(quán)利要求16所述的設(shè)備,其特征在于,所述拷貝模塊包括: 生成單元,用于根據(jù)所述N個子數(shù)據(jù)塊中的數(shù)據(jù)分別生成所述N個子數(shù)據(jù)塊對應(yīng)的第M個備份時刻的哈希值; 判斷單元,用于依次判斷所述N個子數(shù)據(jù)塊的第M個備份時刻的哈希值與第M-1個備份時刻的哈希值是否相同,若所述N個子數(shù)據(jù)塊中的第i個子數(shù)據(jù)塊的第M個備份時刻的哈希值與第M-1個備份時刻的哈希值相同,則確定所述第i個子數(shù)據(jù)塊中的數(shù)據(jù)沒有被更新,若所述N個子數(shù)據(jù)塊中的第i個子數(shù)據(jù)塊的每個子數(shù)據(jù)塊的第M個備份時刻的哈希值與第M-1個備份時刻的哈希值不相同,則確定所述第i個子數(shù)據(jù)塊中的數(shù)據(jù)被更新了 ; 拷貝單元,用于將所述N個子數(shù)據(jù)塊中被更新的子數(shù)據(jù)塊中的數(shù)據(jù)拷貝到所述本地備份緩沖區(qū)。
18.根據(jù)權(quán)利要求17所述的設(shè)備,其特征在于,所述備份模塊還用于: 將所述N個子數(shù)據(jù)塊的第M個備份時刻的哈希值發(fā)送給所述備份存儲設(shè)備,以使所述備份存儲設(shè)備根據(jù)所述N個子數(shù)據(jù)塊的第M個備份時刻的哈希值和所述第M個備份時刻之前的所有備份時刻的哈希值恢復(fù)所述主文件的數(shù)據(jù)。
19.根據(jù)權(quán)利要求17所述的設(shè)備,其特征在于,所述備份模塊還用于: 若所述N個子數(shù)據(jù)塊中的第i個子數(shù)據(jù)塊中的數(shù)據(jù)沒有被更新,則將第M個備份時刻的位圖中所述第i個子數(shù)據(jù)塊對應(yīng)位上的值設(shè)置為初始值,若所述N個子數(shù)據(jù)塊中的第i個子數(shù)據(jù)塊中的數(shù)據(jù)被更新了,則將所述第M個備份時刻的位圖中所述第i個子數(shù)據(jù)塊對應(yīng)位上的值設(shè)置為非初始值,所述第M個備份時刻的位圖的每一位與所述主文件的N個子數(shù)據(jù)塊--對應(yīng); 將所述第M個備份時刻的位圖發(fā)送給所述備份存儲設(shè)備,以使所述備份存儲設(shè)備根據(jù)所述第M個備份時刻的位圖和所述第M個備份時刻之前的所有備份時刻的位圖恢復(fù)所述主文件的數(shù)據(jù)。
20.根據(jù)權(quán)利要求16-19中任一項所述的設(shè)備,其特征在于,所述設(shè)備還包括: 刪除模塊,用于刪除所述本地備份緩沖區(qū)中的所述第M-1個備份時刻到所述第M個備份時刻之間被更新的子數(shù)據(jù)塊中的數(shù)據(jù)。
21.根據(jù)權(quán)利要求16所述的設(shè)備,其特征在于,所述備份模塊還用于: 判斷所述主存儲設(shè)備的當(dāng)前的服務(wù)質(zhì)量QoS條件是否滿足要求; 若所述QoS條件滿足要求,則將所述本地備份緩沖區(qū)中的所述第M-1個備份時刻到所述第M個備份時刻之間被更新的子數(shù)據(jù)塊中的數(shù)據(jù)同步到所述備份存儲設(shè)備的快照資源池中。
22.根據(jù)權(quán)利要求21所述的設(shè)備,其特征在于,所述QoS條件包括以下條件中的任意一個或其組合:所述主存儲設(shè)備的中央處理器CPU利用率、內(nèi)存利用率、磁盤利用率以及所述主存儲設(shè)備和所述備份存儲設(shè)備之間的網(wǎng)絡(luò)帶寬。
23.根據(jù)權(quán)利要求16所述的設(shè)備,其特征在于,所述備份模塊還用于: 判斷所述本地備份緩沖區(qū)中的所述第M-1個備份時刻到所述第M個備份時刻之間被更新的子數(shù)據(jù)塊中的數(shù)據(jù)的大小是否大于預(yù)先設(shè)置的數(shù)據(jù)量閾值; 若所述本地備份緩沖區(qū)中的所述第M-1個備份時刻到所述第M個備份時刻之間被更新的子數(shù)據(jù)塊中的數(shù)據(jù)的大小大于所述數(shù)據(jù)量閾值,則將本地備份緩沖區(qū)中的所述第M-1個備份時刻到所述第M個備份時刻之間被更新的子數(shù)據(jù)塊中的數(shù)據(jù)同步到所述備份存儲設(shè)備的快照資源池。
24.根據(jù)權(quán)利要求16所述的設(shè)備,其特征在于,所述設(shè)備還包括: 配置模塊,用于配置所述本地備份緩沖區(qū)的大小和所述快照資源池的大小。
25.一種主存儲設(shè)備,其特征在于,包括: 分塊模塊,用于將主文件的存儲空間劃分為N個子數(shù)據(jù)塊,N為大于等于2的正整數(shù); 備份模塊,用于在初始備份時刻,將所述主文件中的初始數(shù)據(jù)同步到備份存儲設(shè)備的備份文件中; 拷貝模塊,用于在第M個備份時刻,將所述初始備份時刻到所述第M個備份時刻之間被更新的子數(shù)據(jù)塊中的數(shù)據(jù)拷貝到本地備份緩沖區(qū),M為大于等于2的正整數(shù); 所述備份模塊還用于,將所述本地備份緩沖區(qū)中的所述初始備份時刻到所述第M個備份時刻之間被更新的子數(shù)據(jù)塊中的數(shù)據(jù)同步到所述備份存儲設(shè)備的快照資源池中,所述快照資源池用于存儲所述備份文件的增量數(shù)據(jù)。
26.根據(jù)權(quán)利要求25所述的設(shè)備,其特征在于,所述拷貝模塊包括: 生成單元,用于根據(jù)所述N個子數(shù)據(jù)塊中的數(shù)據(jù)生成每個子數(shù)據(jù)塊對應(yīng)的第M個備份時刻的哈希值; 判斷單元,用于依次判斷所述N個子數(shù)據(jù)塊的第M個備份時刻哈希值與初始備份時刻的哈希值是否相同,若所述N個子數(shù)據(jù)塊中的第i個子數(shù)據(jù)塊的第M個備份時刻哈希值與初始備份時刻的哈希值相同,則確定所述第i個子數(shù)據(jù)塊中的數(shù)據(jù)沒有被更新,若所述N個子數(shù)據(jù)塊中的第i個子數(shù)據(jù)塊的第M個備份時刻哈希值與初始備份時刻的哈希值不相同,則確定所述第i個子數(shù)據(jù)塊中的數(shù)據(jù)被更新了 ; 拷貝單元,用于將所述N個子數(shù)據(jù)塊中被更新的子數(shù)據(jù)塊中的數(shù)據(jù)拷貝到所述本地備份緩沖區(qū)。
27.根據(jù)權(quán)利要求26所述的設(shè)備,其特征在于,所述備份模塊還用于: 將所述N個子數(shù)據(jù)塊對應(yīng)的第M個備份時刻的哈希值發(fā)送給所述備份存儲設(shè)備,以使所述備份存儲設(shè)備根據(jù)所述N個子數(shù)據(jù)塊對應(yīng)的第M個備份時刻的哈希值和所述初始備份時刻的哈希值恢復(fù)所述主文件的數(shù)據(jù)。
28.根據(jù)權(quán)利要求26所述的設(shè)備,其特征在于,所述備份模塊還用于: 若所述N個子數(shù)據(jù)塊中的第i個子數(shù)據(jù)塊中的數(shù)據(jù)沒有被更新,則將第M個備份時刻的位圖中所述第i個子數(shù)據(jù)塊對應(yīng)位上的值設(shè)置為初始值,若所述N個子數(shù)據(jù)塊中的第i個子數(shù)據(jù)塊中的數(shù)據(jù)被更新了,則將所述第M個備份時刻的位圖中所述第i個子數(shù)據(jù)塊對應(yīng)位上的值設(shè)置為非初始值,所述第M個備份時刻的位圖的每一位與所述主文件的N個子數(shù)據(jù)塊--對應(yīng); 將所述第M個備份時刻的位圖發(fā)送給所述備份存儲設(shè)備,以使所述備份存儲設(shè)備根據(jù)所述第M個備份時刻的位圖和所述初始備份時刻的位圖恢復(fù)所述主文件的數(shù)據(jù)。
29.根據(jù)權(quán)利要求25-28中任一項所述的設(shè)備,其特征在于,所述設(shè)備還包括: 刪除模塊,用于刪除所述本地備份緩沖區(qū)中的所述初始備份時刻到所述第M個備份時刻之間被更新的子數(shù)據(jù)塊中的數(shù)據(jù)。
30.根據(jù)權(quán)利要求25所述的設(shè)備,其特征在于,所述備份模塊還用于: 判斷所述主存儲設(shè)備的當(dāng)前的服務(wù)質(zhì)量QoS條件是否滿足要求; 若所述QoS條件滿足要求,則將本地備份緩沖區(qū)中的所述初始備份時刻到所述第M個備份時刻之間被更新的子數(shù)據(jù)塊中的數(shù)據(jù)同步到所述備份存儲設(shè)備的快照資源池。
【文檔編號】G06F11/14GK104166606SQ201410436375
【公開日】2014年11月26日 申請日期:2014年8月29日 優(yōu)先權(quán)日:2014年8月29日
【發(fā)明者】秦祖福 申請人:華為技術(shù)有限公司