本技術(shù)涉及數(shù)據(jù)處理,特別是涉及一種io數(shù)據(jù)的容災(zāi)方法、系統(tǒng)、裝置、設(shè)備和存儲(chǔ)介質(zhì)。
背景技術(shù):
1、云計(jì)算可以為企業(yè)提供按需分配的計(jì)算資源,現(xiàn)代企業(yè)it基礎(chǔ)架構(gòu)正逐步的由傳統(tǒng)架構(gòu)向云上遷移,云計(jì)算通過(guò)虛擬化技術(shù)可以充分利用昂貴的硬件資源并且還可以隔離硬件體系結(jié)構(gòu)和軟件系統(tǒng)之間的依賴關(guān)系,改進(jìn)系統(tǒng)的安全性能,進(jìn)行數(shù)據(jù)備份,避免損失,提高計(jì)算資源的利用率。隨著云計(jì)算發(fā)展,云數(shù)據(jù)中心的規(guī)模不斷增大,對(duì)于數(shù)據(jù)的安全性的要求也越來(lái)越高,容災(zāi)系統(tǒng)應(yīng)運(yùn)而生。容災(zāi)技術(shù)就是為計(jì)算機(jī)信息系統(tǒng)提供的一個(gè)能應(yīng)付各種災(zāi)難的環(huán)境。當(dāng)計(jì)算機(jī)系統(tǒng)在遭受不可抗拒的自然災(zāi)難或計(jì)算機(jī)犯罪、計(jì)算機(jī)病毒、掉電、通信失敗、硬件或軟件錯(cuò)誤和人為操作錯(cuò)誤等人為災(zāi)難時(shí),容災(zāi)系統(tǒng)將保證用戶數(shù)據(jù)的安全性(數(shù)據(jù)容災(zāi)),甚至一個(gè)更加完善的容災(zāi)系統(tǒng),還能提供不間斷的應(yīng)用服務(wù)(應(yīng)用容災(zāi))。
2、建立容災(zāi)系統(tǒng)的初衷就是以最合理的代價(jià)保護(hù)應(yīng)用數(shù)據(jù)的完整性與安全性,在災(zāi)難發(fā)生后盡快恢復(fù)系統(tǒng)運(yùn)行,減少業(yè)務(wù)停頓時(shí)間,盡可能不中斷或不影響業(yè)務(wù)的正常進(jìn)行,并讓災(zāi)難對(duì)企業(yè)造成的損失降到最低。也就是說(shuō),無(wú)論兩個(gè)系統(tǒng)相隔多遠(yuǎn),當(dāng)一個(gè)數(shù)據(jù)中心出現(xiàn)問(wèn)題時(shí),另一個(gè)數(shù)據(jù)中心就能迅速接替運(yùn)行,同時(shí)既要保證業(yè)務(wù)數(shù)據(jù)的完整性,又要保證關(guān)鍵業(yè)務(wù)的連續(xù)性。
3、傳統(tǒng)的容災(zāi)方案中,為了保證磁盤空間利用率的同時(shí)還需要兼顧其性能的要求,通常需要將最小存儲(chǔ)單元配置為較大,由于這一配置導(dǎo)致傳統(tǒng)技術(shù)中容易出現(xiàn)寫(xiě)放大的問(wèn)題。
技術(shù)實(shí)現(xiàn)思路
1、基于此,有必要針對(duì)上述技術(shù)問(wèn)題,提供一種能夠?qū)彺嫖募M(jìn)行預(yù)熱,以避免寫(xiě)放大問(wèn)題的io數(shù)據(jù)的容災(zāi)方法、系統(tǒng)、裝置、設(shè)備和存儲(chǔ)介質(zhì)。
2、一種io數(shù)據(jù)的容災(zāi)方法,方法應(yīng)用于源端,源端設(shè)有文件系統(tǒng)和io數(shù)據(jù)存儲(chǔ)區(qū),io數(shù)據(jù)存儲(chǔ)區(qū)創(chuàng)建有緩存文件,文件系統(tǒng)設(shè)有最小存儲(chǔ)單元,io數(shù)據(jù)的容災(zāi)方法包括:
3、響應(yīng)于io數(shù)據(jù)的寫(xiě)請(qǐng)求,提取寫(xiě)請(qǐng)求中的目標(biāo)io數(shù)據(jù)在磁盤中的偏移量以及數(shù)據(jù)長(zhǎng)度;
4、根據(jù)目標(biāo)io數(shù)據(jù)在磁盤中的偏移量以及數(shù)據(jù)長(zhǎng)度將目標(biāo)io數(shù)據(jù)寫(xiě)入緩存文件,以便從緩存文件中獲取目標(biāo)io數(shù)據(jù)傳輸至災(zāi)備端;
5、其中,緩存文件預(yù)先被預(yù)熱,預(yù)熱為根據(jù)最小存儲(chǔ)單元的大小對(duì)緩存文件執(zhí)行寫(xiě)操作的過(guò)程。
6、在其中一個(gè)實(shí)施例中,響應(yīng)于io數(shù)據(jù)的寫(xiě)請(qǐng)求,提取寫(xiě)請(qǐng)求中的目標(biāo)io數(shù)據(jù)在磁盤中的偏移量以及數(shù)據(jù)長(zhǎng)度之前,io數(shù)據(jù)的容災(zāi)方法還包括:
7、根據(jù)最小存儲(chǔ)單元大小的整數(shù)倍對(duì)各個(gè)緩存文件執(zhí)行初次寫(xiě)操作以對(duì)緩存文件進(jìn)行預(yù)熱,最小存儲(chǔ)單元大小為預(yù)先配置的。
8、在其中一個(gè)實(shí)施例中,緩存文件包括多個(gè),io數(shù)據(jù)存儲(chǔ)區(qū)還創(chuàng)建有索引表,索引表記錄了各個(gè)緩存文件的使用狀態(tài),使用狀態(tài)包括已使用和未使用,根據(jù)目標(biāo)io數(shù)據(jù)在磁盤中的偏移量以及數(shù)據(jù)長(zhǎng)度將目標(biāo)io數(shù)據(jù)寫(xiě)入緩存文件,包括:
9、根據(jù)各個(gè)緩存文件的使用狀態(tài)獲取目標(biāo)緩存文件,目標(biāo)緩存文件的使用狀態(tài)為未使用;
10、根據(jù)目標(biāo)io數(shù)據(jù)在磁盤中的偏移量以及數(shù)據(jù)長(zhǎng)度將目標(biāo)io數(shù)據(jù)寫(xiě)入目標(biāo)緩存文件。
11、在其中一個(gè)實(shí)施例中,各個(gè)緩存文件的粒度大小相同,io數(shù)據(jù)的容災(zāi)方法還包括:
12、根據(jù)目標(biāo)io數(shù)據(jù)在磁盤中的偏移量以及緩存文件的粒度大小確定目標(biāo)緩存文件在磁盤中的偏移量;
13、在索引表中為目標(biāo)緩存文件添加屬性信息,屬性信息包括目標(biāo)緩存文件對(duì)應(yīng)的虛擬機(jī)信息、磁盤信息、所存io數(shù)據(jù)對(duì)應(yīng)的時(shí)間周期以及目標(biāo)緩存文件在磁盤中的偏移量。
14、在其中一個(gè)實(shí)施例中,根據(jù)目標(biāo)io數(shù)據(jù)在磁盤中的偏移量以及數(shù)據(jù)長(zhǎng)度將目標(biāo)io數(shù)據(jù)寫(xiě)入為使用的緩存文件之后,io數(shù)據(jù)的容災(zāi)方法還包括:
15、在索引表中將目標(biāo)緩存文件標(biāo)注為已使用;
16、當(dāng)目標(biāo)緩存文件中的io數(shù)據(jù)均傳輸至災(zāi)備端時(shí),將索引表中目標(biāo)緩存文件的標(biāo)注修改為未使用,并刪除對(duì)應(yīng)的屬性信息。
17、在其中一個(gè)實(shí)施例中,io數(shù)據(jù)的容災(zāi)方法還包括:
18、獲取目標(biāo)io數(shù)據(jù)的下發(fā)時(shí)間,并根據(jù)目標(biāo)io數(shù)據(jù)在磁盤中的偏移量和數(shù)據(jù)長(zhǎng)度以及下發(fā)時(shí)間,生成目標(biāo)io數(shù)據(jù)的位圖信息;
19、將位圖信息中的下發(fā)時(shí)間與索引表中的時(shí)間周期進(jìn)行匹配;
20、根據(jù)匹配成功的緩存文件獲取目標(biāo)io數(shù)據(jù)傳輸至災(zāi)備端。
21、在其中一個(gè)實(shí)施例中,io數(shù)據(jù)的容災(zāi)方法還包括:
22、在當(dāng)前時(shí)間周期內(nèi)下發(fā)的io數(shù)據(jù)均寫(xiě)入目標(biāo)緩存文件時(shí),將當(dāng)前時(shí)間周期內(nèi)的io數(shù)據(jù)對(duì)應(yīng)的位圖信息寫(xiě)入預(yù)先創(chuàng)建的位圖文件,并對(duì)位圖文件添加標(biāo)識(shí)信息,標(biāo)識(shí)信息中包括當(dāng)前時(shí)間周期;
23、io數(shù)據(jù)的容災(zāi)方法還包括:
24、獲取目標(biāo)io數(shù)據(jù)的下發(fā)時(shí)間,并根據(jù)目標(biāo)io數(shù)據(jù)在磁盤中的偏移量和數(shù)據(jù)長(zhǎng)度以及下發(fā)時(shí)間,生成目標(biāo)io數(shù)據(jù)的位圖信息;
25、將位圖信息所屬文圖文件對(duì)應(yīng)的時(shí)間周期與索引表中的時(shí)間周期進(jìn)行匹配;
26、根據(jù)匹配成功的緩存文件獲取目標(biāo)io數(shù)據(jù)傳輸至災(zāi)備端。
27、在其中一個(gè)實(shí)施例中,io數(shù)據(jù)的容災(zāi)方法還包括:
28、對(duì)io數(shù)據(jù)存儲(chǔ)區(qū)進(jìn)行劃分,得到數(shù)據(jù)區(qū)、位圖區(qū)以及索引表所在區(qū),緩存文件存儲(chǔ)于數(shù)據(jù)區(qū),位圖文件存儲(chǔ)于位圖區(qū)。
29、在其中一個(gè)實(shí)施例中,根據(jù)目標(biāo)io數(shù)據(jù)在磁盤中的偏移量以及數(shù)據(jù)長(zhǎng)度將目標(biāo)io數(shù)據(jù)寫(xiě)入目標(biāo)緩存文件,包括:
30、根據(jù)目標(biāo)io數(shù)據(jù)在磁盤中的偏移量以及緩存文件的粒度大小確定目標(biāo)io數(shù)據(jù)在目標(biāo)緩存文件中的偏移量;
31、根據(jù)目標(biāo)io數(shù)據(jù)在目標(biāo)緩存文件中的偏移量將目標(biāo)io數(shù)據(jù)寫(xiě)入目標(biāo)緩存文件。
32、在其中一個(gè)實(shí)施例中,io數(shù)據(jù)的容災(zāi)方法還包括:
33、根據(jù)目標(biāo)io數(shù)據(jù)在磁盤中的偏移量以及粒度大小確定目標(biāo)緩存文件的地址范圍;
34、當(dāng)接收到新的io數(shù)據(jù)時(shí),根據(jù)新的io數(shù)據(jù)在磁盤中的偏移量以及數(shù)據(jù)長(zhǎng)度,判斷新的io數(shù)據(jù)是否落入地址范圍內(nèi);
35、當(dāng)新的io數(shù)據(jù)落入地址范圍內(nèi)時(shí),將新的io數(shù)據(jù)寫(xiě)入目標(biāo)緩存文件。
36、在其中一個(gè)實(shí)施例中,io數(shù)據(jù)的容災(zāi)方法還包括:
37、當(dāng)新的io數(shù)據(jù)未落入地址范圍內(nèi)時(shí),獲取新的緩存文件,將新的io數(shù)據(jù)寫(xiě)入新的緩存文件。
38、一種io數(shù)據(jù)的容災(zāi)系統(tǒng),包括源端和災(zāi)備端,源端設(shè)有容災(zāi)模塊、文件系統(tǒng)以及io數(shù)據(jù)存儲(chǔ)區(qū),io數(shù)據(jù)存儲(chǔ)區(qū)創(chuàng)建有緩存文件,其中,
39、容災(zāi)模塊用于對(duì)緩存文件根據(jù)最小存儲(chǔ)單元的大小對(duì)緩存文件執(zhí)行寫(xiě)操作,以進(jìn)行預(yù)熱;
40、容災(zāi)模塊還用于響應(yīng)于io數(shù)據(jù)的寫(xiě)請(qǐng)求,提取寫(xiě)請(qǐng)求中的目標(biāo)io數(shù)據(jù)在磁盤中的偏移量以及數(shù)據(jù)長(zhǎng)度,將目標(biāo)io數(shù)據(jù)在磁盤中的偏移量以及數(shù)據(jù)長(zhǎng)度將目標(biāo)io數(shù)據(jù)發(fā)送至文件系統(tǒng),通過(guò)文件系統(tǒng)寫(xiě)入緩存文件;
41、容災(zāi)模塊還用于根據(jù)目標(biāo)io數(shù)據(jù)在磁盤中的偏移量以及數(shù)據(jù)長(zhǎng)度生成位圖信息,以便根據(jù)位圖信息從緩存文件中獲取目標(biāo)io數(shù)據(jù)傳輸至災(zāi)備端。
42、一種io數(shù)據(jù)的容災(zāi)裝置,裝置應(yīng)用于源端,源端設(shè)有文件系統(tǒng)和io數(shù)據(jù)存儲(chǔ)區(qū),io數(shù)據(jù)存儲(chǔ)區(qū)創(chuàng)建有緩存文件,文件系統(tǒng)設(shè)有最小存儲(chǔ)單元,io數(shù)據(jù)的容災(zāi)裝置包括:
43、提取模塊,用于響應(yīng)于io數(shù)據(jù)的寫(xiě)請(qǐng)求,提取寫(xiě)請(qǐng)求中的目標(biāo)io數(shù)據(jù)在磁盤中的偏移量以及數(shù)據(jù)長(zhǎng)度;
44、寫(xiě)入模塊,用于根據(jù)目標(biāo)io數(shù)據(jù)在磁盤中的偏移量以及數(shù)據(jù)長(zhǎng)度將目標(biāo)io數(shù)據(jù)寫(xiě)入緩存文件,以便從緩存文件中獲取目標(biāo)io數(shù)據(jù)傳輸至災(zāi)備端,其中,緩存文件預(yù)先被預(yù)熱,預(yù)熱為根據(jù)最小存儲(chǔ)單元的大小對(duì)緩存文件執(zhí)行寫(xiě)操作的過(guò)程。
45、一種計(jì)算機(jī)設(shè)備,包括存儲(chǔ)器、處理器及存儲(chǔ)在存儲(chǔ)器上并可在處理器上運(yùn)行的計(jì)算機(jī)程序,處理器執(zhí)行計(jì)算機(jī)程序時(shí)實(shí)現(xiàn)以下步驟:
46、響應(yīng)于io數(shù)據(jù)的寫(xiě)請(qǐng)求,提取寫(xiě)請(qǐng)求中的目標(biāo)io數(shù)據(jù)在磁盤中的偏移量以及數(shù)據(jù)長(zhǎng)度;
47、根據(jù)目標(biāo)io數(shù)據(jù)在磁盤中的偏移量以及數(shù)據(jù)長(zhǎng)度將目標(biāo)io數(shù)據(jù)寫(xiě)入緩存文件,以便從緩存文件中獲取目標(biāo)io數(shù)據(jù)傳輸至災(zāi)備端;
48、其中,緩存文件預(yù)先被預(yù)熱,預(yù)熱為根據(jù)最小存儲(chǔ)單元的大小對(duì)緩存文件執(zhí)行寫(xiě)操作的過(guò)程。
49、一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其上存儲(chǔ)有計(jì)算機(jī)程序,計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)以下步驟:
50、響應(yīng)于io數(shù)據(jù)的寫(xiě)請(qǐng)求,提取寫(xiě)請(qǐng)求中的目標(biāo)io數(shù)據(jù)在磁盤中的偏移量以及數(shù)據(jù)長(zhǎng)度;
51、根據(jù)目標(biāo)io數(shù)據(jù)在磁盤中的偏移量以及數(shù)據(jù)長(zhǎng)度將目標(biāo)io數(shù)據(jù)寫(xiě)入緩存文件,以便從緩存文件中獲取目標(biāo)io數(shù)據(jù)傳輸至災(zāi)備端;
52、其中,緩存文件預(yù)先被預(yù)熱,預(yù)熱為根據(jù)最小存儲(chǔ)單元的大小對(duì)緩存文件執(zhí)行寫(xiě)操作的過(guò)程。
53、上述io數(shù)據(jù)的容災(zāi)方法、系統(tǒng)、裝置、設(shè)備和存儲(chǔ)介質(zhì),通過(guò)根據(jù)最小存儲(chǔ)單元的大小對(duì)緩存文件執(zhí)行初次寫(xiě)操作實(shí)現(xiàn)對(duì)緩存文件的預(yù)熱,使得后續(xù)寫(xiě)io數(shù)據(jù)時(shí)根據(jù)目標(biāo)io數(shù)據(jù)的實(shí)際數(shù)據(jù)長(zhǎng)度進(jìn)行寫(xiě)入,解決了傳統(tǒng)技術(shù)中,沒(méi)有進(jìn)行預(yù)熱操作,導(dǎo)致在第一次寫(xiě)操作時(shí),根據(jù)最小存儲(chǔ)單元的大小執(zhí)行寫(xiě)操作,而當(dāng)目標(biāo)io數(shù)據(jù)小于最小存儲(chǔ)單元的大小時(shí),則會(huì)導(dǎo)致寫(xiě)放大的問(wèn)題。因此,采用本技術(shù)的io數(shù)據(jù)的容災(zāi)方法能夠?qū)彺嫖募M(jìn)行預(yù)熱,避免寫(xiě)放大導(dǎo)致的性能問(wèn)題。