一種數(shù)據(jù)塊處理的方法、裝置及設(shè)備的制造方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及數(shù)據(jù)處理技術(shù)領(lǐng)域,特別涉及一種數(shù)據(jù)塊處理的方法、裝置及設(shè)備。
【背景技術(shù)】
[0002] 目前,虛擬機(jī)備份一般是將虛擬機(jī)的一個(gè)磁盤(pán)作為一個(gè)文件,例如VM Ware?的 vmdk文件,將需要備份的文件劃分為固定大小的目標(biāo)數(shù)據(jù)塊,通常情況下,目標(biāo)Block的大 小為4M或8M等,在獲得目標(biāo)數(shù)據(jù)塊后,還可以以子數(shù)據(jù)塊的粒度監(jiān)控目標(biāo)數(shù)據(jù)塊中數(shù)據(jù)的 變化。使用備份軟件對(duì)目標(biāo)數(shù)據(jù)塊進(jìn)行備份,需要對(duì)目標(biāo)數(shù)據(jù)塊進(jìn)行分塊以執(zhí)行重復(fù)數(shù)據(jù) 刪除操作。當(dāng)目標(biāo)數(shù)據(jù)塊完成一次備份后,再有新的數(shù)據(jù)寫(xiě)入目標(biāo)數(shù)據(jù)塊,盡管只有目標(biāo)數(shù) 據(jù)塊中只有少量數(shù)據(jù)被修改,但現(xiàn)有技術(shù)中,仍然需要對(duì)整個(gè)數(shù)據(jù)塊進(jìn)行重新備份,對(duì)修改 后的整個(gè)目標(biāo)數(shù)據(jù)塊進(jìn)行分塊以執(zhí)行重復(fù)數(shù)據(jù)刪除操作。因此,對(duì)修改后的整個(gè)目標(biāo)數(shù)據(jù) 塊進(jìn)行分塊消耗了大量計(jì)算資源。
【發(fā)明內(nèi)容】
[0003] 本發(fā)明實(shí)施例提供了一種數(shù)據(jù)塊處理的方法、裝置及設(shè)備。
[0004] 第一方面,提供了一種數(shù)據(jù)塊處理的方法,包括:
[0005] 接收第一數(shù)據(jù)寫(xiě)請(qǐng)求,所述第一數(shù)據(jù)寫(xiě)請(qǐng)求攜帶第一數(shù)據(jù);
[0006] 將所述第一數(shù)據(jù)寫(xiě)入目標(biāo)數(shù)據(jù)塊,所述目標(biāo)數(shù)據(jù)塊包括η個(gè)地址連續(xù)的子數(shù)據(jù) 塊,其中η為正整數(shù);
[0007] 接收第二數(shù)據(jù)寫(xiě)請(qǐng)求,所述第二數(shù)據(jù)寫(xiě)請(qǐng)求攜帶第二數(shù)據(jù);
[0008] 將所述第二數(shù)據(jù)寫(xiě)入所述目標(biāo)數(shù)據(jù)塊;
[0009] 當(dāng)確定所述目標(biāo)數(shù)據(jù)塊中的第i個(gè)子數(shù)據(jù)塊中未寫(xiě)入所述第二數(shù)據(jù)時(shí),記錄所述 第i個(gè)子數(shù)據(jù)塊的信息,所述子數(shù)據(jù)塊的信息包括所述子數(shù)據(jù)塊的起始地址和所述子數(shù)據(jù) 塊的大??;
[0010] 當(dāng)確定所述目標(biāo)數(shù)據(jù)塊中的第i個(gè)子數(shù)據(jù)塊中寫(xiě)入所述第二數(shù)據(jù)時(shí),則從所述第 i個(gè)子數(shù)據(jù)塊的起始地址開(kāi)始重新確定并記錄新的子數(shù)據(jù)塊的信息,直至第一結(jié)束地址與 所述第二結(jié)束地址重合時(shí)結(jié)束,其中所述第一結(jié)束地址為從所述第i個(gè)子數(shù)據(jù)塊的起始地 址開(kāi)始重新確定的最后一個(gè)新的子數(shù)據(jù)塊的結(jié)束地址,所述第二結(jié)束地址為所述目標(biāo)數(shù)據(jù) 塊中的第r個(gè)子數(shù)據(jù)塊的結(jié)束地址。
[0011] 結(jié)合第一方面,在第一方面的第一種可能的實(shí)現(xiàn)方式中,在從所述第i個(gè)子數(shù)據(jù) 塊的起始地址開(kāi)始重新確定并記錄新的子數(shù)據(jù)塊的信息結(jié)束之后,還包括:
[0012] 確定所述第二結(jié)束地址小于所述目標(biāo)數(shù)據(jù)塊的結(jié)束地址;
[0013] 若確定以所述第二結(jié)束地址作為起始地址的所述目標(biāo)數(shù)據(jù)塊中的第r+Ι個(gè)子數(shù) 據(jù)塊中未寫(xiě)入所述第二數(shù)據(jù)時(shí),記錄所述第r+Ι個(gè)子數(shù)據(jù)塊的信息;
[0014] 若確定所述第r+Ι個(gè)子數(shù)據(jù)塊中寫(xiě)入所述第二數(shù)據(jù)時(shí),從所述第二結(jié)束地址開(kāi)始 重新確定并記錄新的子數(shù)據(jù)塊的信息,直至第三結(jié)束地址與第四結(jié)束地址重合時(shí)結(jié)束,其 中所述第三結(jié)束地址為從所述第二結(jié)束地址開(kāi)始重新確定的最后一個(gè)新的子數(shù)據(jù)塊的結(jié) 束地址,所述第四結(jié)束地址為所述目標(biāo)數(shù)據(jù)塊中的第y個(gè)子數(shù)據(jù)塊的結(jié)束地址。
[0015] 結(jié)合第一方面的第一種可能的實(shí)現(xiàn)方式,在第一方面第二種可能的實(shí)現(xiàn)方式中, 在從所述第二結(jié)束地址開(kāi)始重新確定并記錄新的子數(shù)據(jù)塊的信息結(jié)束之后,還包括:
[0016] 確定所述第四結(jié)束地址等于所述目標(biāo)數(shù)據(jù)塊的結(jié)束地址,結(jié)束記錄在將所述第二 數(shù)據(jù)寫(xiě)入所述目標(biāo)數(shù)據(jù)塊后子數(shù)據(jù)塊的信息。
[0017] 第二方面,提供一種數(shù)據(jù)塊處理裝置,包括:
[0018] 接收單元,用于接收第一數(shù)據(jù)寫(xiě)請(qǐng)求,所述第一數(shù)據(jù)寫(xiě)請(qǐng)求攜帶第一數(shù)據(jù);
[0019] 寫(xiě)入單元,用于將所述第一數(shù)據(jù)寫(xiě)入目標(biāo)數(shù)據(jù)塊,所述目標(biāo)數(shù)據(jù)塊包括η個(gè)地址 連續(xù)的子數(shù)據(jù)塊,其中η為正整數(shù);
[0020] 所述接收單元,還用于接收第二數(shù)據(jù)寫(xiě)請(qǐng)求,所述第二數(shù)據(jù)寫(xiě)請(qǐng)求攜帶第二數(shù) 據(jù);
[0021] 所述寫(xiě)入單元還用于,將所述第二數(shù)據(jù)寫(xiě)入所述目標(biāo)數(shù)據(jù)塊;
[0022] 處理單元,用于在確定所述目標(biāo)數(shù)據(jù)塊中的第i個(gè)子數(shù)據(jù)塊中未寫(xiě)入所述第二數(shù) 據(jù)時(shí),記錄所述第i個(gè)子數(shù)據(jù)塊的信息,所述子數(shù)據(jù)塊的信息包括所述子數(shù)據(jù)塊的起始地 址和所述子數(shù)據(jù)塊的大??;在確定所述目標(biāo)數(shù)據(jù)塊中的第i個(gè)子數(shù)據(jù)塊中寫(xiě)入所述第二數(shù) 據(jù)時(shí),則從所述第i個(gè)子數(shù)據(jù)塊的起始地址開(kāi)始重新確定并記錄新的子數(shù)據(jù)塊的信息,直 至第一結(jié)束地址與所述第二結(jié)束地址重合時(shí)結(jié)束,其中所述第一結(jié)束地址為從所述第i個(gè) 子數(shù)據(jù)塊的起始地址開(kāi)始重新確定的最后一個(gè)新的子數(shù)據(jù)塊的結(jié)束地址,所述第二結(jié)束地 址為所述目標(biāo)數(shù)據(jù)塊中的第r個(gè)子數(shù)據(jù)塊的結(jié)束地址。
[0023] 結(jié)合第二方面,在第二方面的第一種可能的實(shí)現(xiàn)方式中,所述處理單元還用于:
[0024] 在從所述第i個(gè)子數(shù)據(jù)塊的起始地址開(kāi)始重新確定并記錄新的子數(shù)據(jù)塊的信息 結(jié)束之后,確定所述第二結(jié)束地址小于所述目標(biāo)數(shù)據(jù)塊的結(jié)束地址;在確定以所述第二結(jié) 束地址作為起始地址的所述目標(biāo)數(shù)據(jù)塊中的第r+Ι個(gè)子數(shù)據(jù)塊中未寫(xiě)入所述第二數(shù)據(jù)時(shí), 記錄所述第r+Ι個(gè)子數(shù)據(jù)塊的信息;在確定所述第r+Ι個(gè)子數(shù)據(jù)塊中寫(xiě)入所述第二數(shù)據(jù)時(shí), 從所述第二結(jié)束地址開(kāi)始重新確定并記錄新的子數(shù)據(jù)塊的信息,直至第三結(jié)束地址與第四 結(jié)束地址重合時(shí)結(jié)束,其中所述第三結(jié)束地址為從所述第二結(jié)束地址開(kāi)始重新確定的最后 一個(gè)新的子數(shù)據(jù)塊的結(jié)束地址,所述第四結(jié)束地址為所述目標(biāo)數(shù)據(jù)塊中的第y個(gè)子數(shù)據(jù)塊 的結(jié)束地址。
[0025] 結(jié)合第二方面的第一種可能的實(shí)現(xiàn)方式,在第二方面的第二種可能的實(shí)現(xiàn)方式 中,所述處理單元還用于:
[0026] 在從所述第二結(jié)束地址開(kāi)始重新確定并記錄新的子數(shù)據(jù)塊的信息結(jié)束之后,確定 所述第四結(jié)束地址等于所述目標(biāo)數(shù)據(jù)塊的結(jié)束地址,結(jié)束記錄在將所述第二數(shù)據(jù)寫(xiě)入所述 目標(biāo)數(shù)據(jù)塊后子數(shù)據(jù)塊的信息。
[0027] 第三方面,提供了一種數(shù)據(jù)塊處理設(shè)備,包括:處理器、輸入/輸出接口和總線(xiàn),其 中,所述處理器和所述輸入/輸出接口通過(guò)所述總線(xiàn)實(shí)現(xiàn)彼此之間的通信連接;
[0028] 所述輸入/輸出接口用于接收第一數(shù)據(jù)寫(xiě)請(qǐng)求,所述第一數(shù)據(jù)寫(xiě)請(qǐng)求攜帶第一數(shù) 據(jù);
[0029] 所述處理器,用于將所述第一數(shù)據(jù)寫(xiě)入目標(biāo)數(shù)據(jù)塊;所述目標(biāo)數(shù)據(jù)塊包括η個(gè)地 址連續(xù)的子數(shù)據(jù)塊,其中η為正整數(shù);
[0030] 所述輸入/輸出接口還用于接收第二數(shù)據(jù)寫(xiě)請(qǐng)求;所述第二數(shù)據(jù)寫(xiě)請(qǐng)求攜帶第二 數(shù)據(jù);
[0031 ] 所述處理器,還用于將所述第二數(shù)據(jù)寫(xiě)入所述目標(biāo)數(shù)據(jù)塊;在確定所述目標(biāo)數(shù)據(jù) 塊中的第i個(gè)子數(shù)據(jù)塊中未寫(xiě)入所述第二數(shù)據(jù)時(shí),記錄所述第i個(gè)子數(shù)據(jù)塊的信息,所述 子數(shù)據(jù)塊的信息包括所述子數(shù)據(jù)塊的起始地址和所述子數(shù)據(jù)塊的大?。辉诖_定所述目標(biāo)數(shù) 據(jù)塊中的第i個(gè)子數(shù)據(jù)塊中寫(xiě)入所述第二數(shù)據(jù)時(shí),則從所述第i個(gè)子數(shù)據(jù)塊的起始地址開(kāi) 始重新確定并記錄新的子數(shù)據(jù)塊的信息,直至第一結(jié)束地址與所述第二結(jié)束地址重合時(shí)結(jié) 束,其中所述第一結(jié)束地址為從所述第i個(gè)子數(shù)據(jù)塊的起始地址開(kāi)始重新確定的最后一個(gè) 新的子數(shù)據(jù)塊的結(jié)束地址,所述第二結(jié)束地址為所述目標(biāo)數(shù)據(jù)塊中的第r個(gè)子數(shù)據(jù)塊的結(jié) 束地址。
[0032] 結(jié)合第三方面,在第三方面的第一種可能的實(shí)現(xiàn)方式中,所述處理器還用于:
[0033] 在從所述第i個(gè)子數(shù)據(jù)塊的起始地址開(kāi)始重新確定并記錄新的子數(shù)據(jù)塊的信息 結(jié)束之后,確定所述第二結(jié)束地址小于所述目標(biāo)數(shù)據(jù)塊的結(jié)束地址;在確定以所述第二結(jié) 束地址作為起始地址的所述目標(biāo)數(shù)據(jù)塊中的第r+Ι個(gè)子數(shù)據(jù)塊中未寫(xiě)入所述第二數(shù)據(jù)時(shí), 記錄所述第r+Ι個(gè)子數(shù)據(jù)塊的信息;在確定所述第r+Ι個(gè)子數(shù)據(jù)塊中寫(xiě)入所述第二數(shù)據(jù)時(shí), 從所述第二結(jié)束地址開(kāi)始重新確定并記錄新的子數(shù)據(jù)塊的信息,直至第三結(jié)束地址與第四 結(jié)束地址重合時(shí)結(jié)束,其中所述第三結(jié)束地址為從所述第二結(jié)束地址開(kāi)始重新確定的最后 一個(gè)新的子數(shù)據(jù)塊的結(jié)束地址,所述第四結(jié)束地址為所述目標(biāo)數(shù)據(jù)塊中的第y個(gè)子數(shù)據(jù)塊 的結(jié)束地址。
[0034] 結(jié)合第三方面的第一種可能的實(shí)現(xiàn)方式,在第三方面的第二種可能的實(shí)現(xiàn)方式 中,所述處理器還用于:
[0035] 在從所述第二結(jié)束地址開(kāi)始重新確定并記錄新的子數(shù)據(jù)塊的信息結(jié)束之后,確定 所述第四結(jié)束地址等于所述目標(biāo)數(shù)據(jù)塊的結(jié)束地址,結(jié)束記錄在將所述第二數(shù)據(jù)寫(xiě)入所述 目標(biāo)數(shù)據(jù)塊后子數(shù)據(jù)塊的信息。
[0036] 本發(fā)明實(shí)施例由于當(dāng)目標(biāo)數(shù)據(jù)塊中部分?jǐn)?shù)據(jù)發(fā)生變化后,在確定目標(biāo)數(shù)據(jù)塊中的 子數(shù)據(jù)塊中未寫(xiě)入變化數(shù)據(jù)時(shí),將該子數(shù)據(jù)塊的信息作為部分?jǐn)?shù)據(jù)發(fā)生變化的目標(biāo)數(shù)據(jù)塊 中子數(shù)據(jù)塊的信息,避免了在目標(biāo)數(shù)據(jù)塊中部分?jǐn)?shù)據(jù)發(fā)生變化時(shí),對(duì)于目標(biāo)數(shù)據(jù)塊所有數(shù) 據(jù)重新劃分子數(shù)據(jù)塊,節(jié)省了計(jì)算資源。
【附圖說(shuō)明】
[0037] 圖1為本發(fā)明實(shí)施例數(shù)據(jù)塊處理的方法流程示意圖;