專利名稱:快照擴(kuò)容系統(tǒng)及方法
技術(shù)領(lǐng)域:
本發(fā)明是關(guān)于一種邏輯卷管理器(Logical Volume Manager,LVM)的快照擴(kuò)容方法。
背景技術(shù):
邏輯卷管理器(Logical Volume Manager,LVM)是一種把硬盤空間劃分成″彈性″邏輯卷的方法,它是Linux環(huán)境下對(duì)磁盤分區(qū)進(jìn)行管理的一種機(jī)制,LVM是建立在硬盤和分區(qū)之上的一個(gè)邏輯層,來提高磁盤分區(qū)管理的靈活性。使用LVM技術(shù),硬盤不必重新分區(qū)也能夠被簡單地重新劃分大小。LVM給我們帶來了磁盤管理的靈活性。LVM的靈活性還體現(xiàn)在可以將若干個(gè)不同類型、不同大小的物理磁盤、分區(qū)組成多個(gè)邏輯卷(Logical Volumes,LV),也即虛擬分區(qū)來管理。
LVM的一個(gè)非常好的特性是快照(Snapshots)??煺諡橐环N針對(duì)邏輯卷(LV)的備份方式,可以從邏輯卷創(chuàng)建,目的是保留原始磁盤備份的只讀數(shù)據(jù)或保存在線數(shù)據(jù)的幾個(gè)版本??煺罩患o(jì)錄對(duì)應(yīng)邏輯卷中變化位置上的原始值,以次實(shí)現(xiàn)高速備份的功能,這一方式稱為寫前拷貝(Copy On Write,COW)。當(dāng)邏輯卷中某個(gè)地址上有寫入數(shù)據(jù)的請(qǐng)求時(shí),預(yù)先將此地址上的原始邏輯數(shù)據(jù)備份下來,以此實(shí)現(xiàn)高速備份的功能。
建立快照時(shí),需要首先在邏輯卷中劃分一快照空間,以存放所有在本快照生存期間改變的數(shù)據(jù)。一般來說快照可大可小,但必須有足夠的快照空間。在創(chuàng)建快照之前,邏輯卷必須分配有快照儲(chǔ)存空間。在創(chuàng)建邏輯卷時(shí)如果未分配足夠的快照儲(chǔ)存空間,則在完成快照之前,可能會(huì)面臨用完存儲(chǔ)空間的危險(xiǎn)。例如在有些情況下,如果原始邏輯卷上改變的地址增多時(shí),使得備份數(shù)據(jù)量逐步增加,并超過了快照的尺度后,快照就無法保存多出的資料,而發(fā)生了備份數(shù)據(jù)與原始數(shù)據(jù)無法比對(duì)的問題,進(jìn)而導(dǎo)致快照的失效。此外,在邏輯卷為區(qū)塊設(shè)備時(shí),上述情況出現(xiàn)的可能性會(huì)更高。如果發(fā)生這種情況,則會(huì)破壞快照數(shù)據(jù)致使以前的快照不可用。
發(fā)明內(nèi)容鑒于以上的問題,本發(fā)明的主要目的在于提供一種邏輯卷管理器的快照擴(kuò)容系統(tǒng)及方法,是應(yīng)用于邏輯卷管理器中,能夠在快照空間的剩余容量減少到某一大小的情況下對(duì)其容量自動(dòng)進(jìn)行擴(kuò)展,通過以解決現(xiàn)有技術(shù)所存在的問題及缺陷。
因此,為達(dá)上述目的,本發(fā)明所揭露的快照擴(kuò)容系統(tǒng)包含有一分配模塊,一偵測(cè)模塊以及一擴(kuò)容模塊。于此,分配模塊在邏輯卷一卷組空間中分配一快照空間,以創(chuàng)建快照;偵測(cè)模塊用以比對(duì)快照空間的總?cè)萘颗c快照空間的當(dāng)前保存數(shù)據(jù)量,以得到表示快照空間的剩余容量大小的差值,并將差值與一默認(rèn)值進(jìn)行比較;擴(kuò)容模塊以從卷組空間中劃分一容量空間,并通過由標(biāo)準(zhǔn)擴(kuò)容算法對(duì)快照空間進(jìn)行容量擴(kuò)展。
依據(jù)本發(fā)明的快照擴(kuò)容系統(tǒng),當(dāng)快照空間的容量擴(kuò)展失敗時(shí),偵測(cè)模塊標(biāo)記快照為一失效快照。
依據(jù)本發(fā)明的快照擴(kuò)容系統(tǒng),更包含有一快照模塊,是用以當(dāng)快照空間的容量擴(kuò)展成功時(shí),對(duì)數(shù)據(jù)寫入請(qǐng)求對(duì)應(yīng)的數(shù)據(jù)執(zhí)行寫前拷貝,以備份數(shù)據(jù)至快照中。
此外,本發(fā)明所揭露的快照擴(kuò)容方法,是應(yīng)用于邏輯卷管理器中,此方法包含有下列步驟在邏輯卷的卷組空間中分配一快照空間,以創(chuàng)建一快照;在對(duì)邏輯卷有一數(shù)據(jù)寫入請(qǐng)求時(shí),比對(duì)快照空間的總?cè)萘颗c快照空間的一當(dāng)前保存數(shù)據(jù)量,以得到表示快照空間的剩余容量大小的差值;檢查差值是否小于一默認(rèn)值;以及當(dāng)差值小于默認(rèn)值時(shí),從卷組空間中劃分一容量空間,以通過由標(biāo)準(zhǔn)擴(kuò)容算法對(duì)快照空間進(jìn)行容量擴(kuò)展。
依據(jù)本發(fā)明的快照擴(kuò)容方法,所分配的快照空間為卷組空間的10%~20%。
依據(jù)本發(fā)明的快照擴(kuò)容方法,當(dāng)快照空間的容量擴(kuò)展失敗時(shí),更包含有標(biāo)記快照為失效的步驟;當(dāng)快照空間的容量擴(kuò)展成功時(shí),更包含有在邏輯卷進(jìn)行數(shù)據(jù)寫入前將數(shù)據(jù)寫入請(qǐng)求對(duì)應(yīng)的數(shù)據(jù)拷貝至快照中的步驟。
本發(fā)明的快照擴(kuò)容系統(tǒng)及方法通過由在執(zhí)行快照寫入拷貝之前,對(duì)快照剩余空間大小進(jìn)行偵測(cè),并在剩余空間小于一默認(rèn)值時(shí)執(zhí)行快照空間的自動(dòng)擴(kuò)容,進(jìn)而本發(fā)明保證了足夠的空間容納快照的備份數(shù)據(jù),保護(hù)快照不會(huì)失效,確保其可用性。
以下結(jié)合附圖和具體實(shí)施例對(duì)本發(fā)明進(jìn)行詳細(xì)描述,但不作為對(duì)本發(fā)明的限定。
圖1為現(xiàn)有快照管理方法的步驟流程圖;圖2至圖3為本發(fā)明的快照擴(kuò)容方法的步驟流程圖;以及圖4為本發(fā)明的快照擴(kuò)容系統(tǒng)的系統(tǒng)方塊圖。
其中,附圖標(biāo)記10 快照擴(kuò)容系統(tǒng)12 分配模塊14 快照模塊16 偵測(cè)模塊18 擴(kuò)容模塊步驟101 對(duì)邏輯卷有寫入請(qǐng)求步驟102 對(duì)快照?qǐng)?zhí)行寫前拷貝操作步驟103 寫前拷貝是否成功?步驟104 寫前拷貝數(shù)據(jù)量超出快照的空間容量,標(biāo)記快照為失效步驟105 執(zhí)行對(duì)邏輯卷的寫入步驟201 在邏輯卷的卷組空間中分配一快照空間,以創(chuàng)建一快照步驟202 對(duì)邏輯卷發(fā)出一寫入請(qǐng)求步驟203 比對(duì)快照空間的總?cè)萘颗c快照空間的當(dāng)前保存數(shù)據(jù)量步驟204 得到表示快照空間剩余容量大小的差值步驟205 依照差值判斷快照空間剩余容量是否小于一默認(rèn)值步驟206 從卷組空間中劃分一容量空間,并通過一標(biāo)準(zhǔn)擴(kuò)容算法對(duì)快照空間進(jìn)行容量擴(kuò)展步驟207 擴(kuò)容是否成功?步驟208 對(duì)快照?qǐng)?zhí)行寫前拷貝操作步驟209 寫前拷貝是否成功?
步驟210 執(zhí)行對(duì)邏輯卷的數(shù)據(jù)寫入步驟211 拒絕對(duì)快照寫入數(shù)據(jù)步驟212 標(biāo)記快照為失效具體實(shí)施方式
有關(guān)本發(fā)明的特征與實(shí)作,茲配合圖式作最佳實(shí)施例詳細(xì)說明如下。
在對(duì)本發(fā)明的快照擴(kuò)容方法進(jìn)行說明之前,先參考一下現(xiàn)有的快照管理技術(shù),圖1為現(xiàn)有技術(shù)的快照管理方法。從圖中可以看出,當(dāng)系統(tǒng)對(duì)邏輯卷數(shù)據(jù)發(fā)出一寫入請(qǐng)求后(步驟101),LVM管理模塊檢查到對(duì)應(yīng)請(qǐng)求的的快照存在后,則對(duì)快照?qǐng)?zhí)行寫前拷貝操作(步驟102),以將邏輯卷即將寫入數(shù)據(jù)的地址上數(shù)據(jù)進(jìn)行備份。然后詢問上述快照的寫前拷貝是否成功(步驟103),若是成功,則前進(jìn)至步驟105,執(zhí)行對(duì)邏輯卷的地址下的數(shù)據(jù)進(jìn)行寫入操作;否則表示表示寫前拷貝的數(shù)據(jù)量已經(jīng)超出快照空間的空間容量,則標(biāo)記此快照為失效(步驟104),因此棄之不再使用。然后直接對(duì)邏輯卷執(zhí)行寫入操作(步驟105)。從現(xiàn)有快照管理方法可知,假若預(yù)先設(shè)定的快照空間較小,而針對(duì)邏輯卷上各個(gè)地址執(zhí)行的多次修改執(zhí)行多次的寫前拷貝操作,則快照中記錄的數(shù)據(jù)總量也隨之增加,當(dāng)邏輯卷上的數(shù)據(jù)修該超出所建快照的剩余空間容量后,快照則會(huì)由于無法保存多出的數(shù)據(jù)而導(dǎo)致失效。假若預(yù)先設(shè)定的快照空間較大,則可能由于不能充分利用而導(dǎo)致浪費(fèi)。
下面結(jié)合圖2與圖3對(duì)本發(fā)明的快照擴(kuò)容方法進(jìn)行說明,上述兩圖為本發(fā)明的快照擴(kuò)容方法的步驟流程圖。由圖可知,首先在邏輯卷的卷組空間中分配一快照空間,以創(chuàng)建一快照(步驟201)。在第一次創(chuàng)建邏輯卷或第一次有快照請(qǐng)求時(shí),在創(chuàng)建快照之前,邏輯卷必須有快照空間,系統(tǒng)將快照存儲(chǔ)在此快照空間區(qū)域。在創(chuàng)建邏輯卷時(shí)分配快照空間的好處在于可以確??煺沼凶銐虻目捎每臻g。一般而言,快照空間可大可小,但必須有足夠的空間存放所有在此快照生存期間改變的數(shù)據(jù),如分配的快照空間不夠,快照將不能使用。如果過大,則會(huì)造成可能的空間浪費(fèi)。由于原始邏輯卷中并非所有地址的的數(shù)據(jù)都會(huì)改變,而往往是集中在某些地址,因此,這里設(shè)定分配的快照空間大小只為對(duì)應(yīng)邏輯卷的10%到20%。
在分配好快照空間后,則可以在對(duì)邏輯卷存在有寫入請(qǐng)求時(shí),依據(jù)寫前拷貝技術(shù)對(duì)邏輯卷有數(shù)據(jù)寫入的地址上的數(shù)據(jù)進(jìn)行備份(步驟202),并儲(chǔ)存到開始創(chuàng)建的空的快照中。在創(chuàng)建快照之后,對(duì)原始邏輯卷數(shù)據(jù)的后續(xù)更改會(huì)保存快照空間中。隨著備份數(shù)據(jù)的增加,快照中剩余的空間也隨之減小,此外,快照保留的時(shí)間越長,所需的快照空間就越大。因此在對(duì)邏輯卷再存在數(shù)據(jù)寫入時(shí),則需要比對(duì)快照空間的總?cè)萘颗c快照空間當(dāng)前保存的數(shù)據(jù)量(步驟203),以檢查快照是否還有剩余空間可用以繼續(xù)數(shù)據(jù)備份。透過比對(duì)得到一差值,即表示快照空間剩余容量大小的值(步驟204)。然后依照差值的大小與一默認(rèn)值進(jìn)行比較,判斷快照當(dāng)前的剩余空間容量是否小于默認(rèn)值(步驟205),這里默認(rèn)值為事先設(shè)定的表示空間容量的值,以提前判斷是否會(huì)由于空間太小而導(dǎo)致快照失效。依照上面快照分配的空間為10%至20%來看,可設(shè)定默認(rèn)值為5%至8%,或者結(jié)合實(shí)際情況,例如邏輯卷需要寫入的數(shù)據(jù)大小等,選擇其它默認(rèn)值。經(jīng)過判斷,如果差值小于默認(rèn)值,則表明快照當(dāng)前剩余空間可能不足以儲(chǔ)存當(dāng)前寫入請(qǐng)求對(duì)應(yīng)的數(shù)據(jù),因此需要從邏輯卷的卷組空間再劃分出一容量空間,并通過由標(biāo)準(zhǔn)擴(kuò)容算法對(duì)當(dāng)前的快照空間進(jìn)行擴(kuò)展(步驟206)。劃分的容量空間大小可以與初始分配的快照空間相同,或者依照實(shí)際情況進(jìn)行設(shè)定。標(biāo)準(zhǔn)擴(kuò)容算法為現(xiàn)有的擴(kuò)容技術(shù)。如果差值不小于默認(rèn)值,則前進(jìn)至步驟208。圖中符號(hào)A表示本發(fā)明的快照擴(kuò)容方法的后續(xù)步驟。
在進(jìn)行快照擴(kuò)容之后,需要判斷擴(kuò)容是否成功(步驟207),如果擴(kuò)容失敗,說明邏輯卷中已經(jīng)沒有剩余空間用以劃分到當(dāng)前快照中,因此拒絕對(duì)快照中寫入數(shù)據(jù)(步驟211),并標(biāo)記快照為失效(步驟212),快照失效即表示此快照已不能用以得到邏輯卷的原始狀態(tài),也不能用以執(zhí)行對(duì)邏輯卷的寫前拷貝,因此,邏輯卷直接進(jìn)行對(duì)數(shù)據(jù)的寫入(步驟210)。如果快照擴(kuò)容成功,則對(duì)快照?qǐng)?zhí)行寫前拷貝操作,以將邏輯卷的寫入請(qǐng)求對(duì)應(yīng)地址上的數(shù)據(jù)拷貝到擴(kuò)容后的快照中(步驟208)。步驟209可進(jìn)一步對(duì)寫前拷貝操作進(jìn)行判斷,如果成功,則執(zhí)行對(duì)邏輯卷的數(shù)據(jù)寫入(步驟210);否則標(biāo)記快照為失效,即從此快照也不能得到邏輯卷的原始狀態(tài)(步驟212)。至此,完成了本發(fā)明的快照擴(kuò)容方法的全部步驟。
下面將結(jié)合圖4對(duì)本發(fā)明的快照擴(kuò)容系統(tǒng)進(jìn)行說明,此圖為本發(fā)明的快照擴(kuò)容系統(tǒng)的系統(tǒng)方塊圖。
請(qǐng)參考圖4,從圖中可知,本發(fā)明的快照擴(kuò)容系統(tǒng)10包含有分配模塊12,偵測(cè)模塊16以及擴(kuò)容模塊18。分配模塊12用以在邏輯卷的卷組空間中分配一快照空間,以創(chuàng)建一快照。由于原始邏輯卷中并非所有地址的的數(shù)據(jù)都會(huì)改變,而往往是集中在某些地址,因此,這里設(shè)定分配的快照空間大小只為對(duì)應(yīng)邏輯卷的10%到20%。
偵測(cè)模塊14用以比對(duì)快照空間的總?cè)萘颗c快照空間的當(dāng)前保存數(shù)據(jù)量,以得到表示快照空間的剩余容量大小的差值,并將差值與一默認(rèn)值進(jìn)行比較。默認(rèn)值為事先設(shè)定的表示空間容量的值,以在向快照空間寫入數(shù)據(jù)前,偵測(cè)模塊16判斷是否會(huì)由于空間太小而導(dǎo)致快照失效。可依照快照分配的初始空間,經(jīng)驗(yàn)值或者實(shí)際情況等確定默認(rèn)值的大小。如果偵測(cè)模塊16判斷差值小于默認(rèn)值,則表明快照當(dāng)前剩余空間可能不足以儲(chǔ)存當(dāng)前寫入請(qǐng)求對(duì)應(yīng)的數(shù)據(jù),這時(shí)則需要啟動(dòng)擴(kuò)容模塊18。
擴(kuò)容模塊18用以從邏輯卷的卷組空間中劃分一容量空間,并通過由標(biāo)準(zhǔn)擴(kuò)容算法對(duì)快照空間進(jìn)行容量擴(kuò)展。從虛空間所劃分的容量空間可與初始分配的快照空間相同,為對(duì)應(yīng)邏輯卷的10%到20%,或者依照經(jīng)驗(yàn)值進(jìn)行設(shè)定。當(dāng)快照空間的容量擴(kuò)展失敗時(shí),偵測(cè)模塊16將快照標(biāo)記為一失效快照,即表示快照已不能用以得到邏輯卷的原始狀態(tài),也不能用以執(zhí)行對(duì)邏輯卷的寫前拷貝。
此外,從圖中可知,本發(fā)明的快照擴(kuò)容系統(tǒng)更包含有快照模塊14,用以對(duì)數(shù)據(jù)寫入請(qǐng)求對(duì)應(yīng)的數(shù)據(jù)執(zhí)行寫前拷貝,以備份數(shù)據(jù)至快照中。當(dāng)快照空間的容量擴(kuò)展成功時(shí),偵測(cè)模塊16啟動(dòng)快照模塊14對(duì)邏輯卷執(zhí)行寫前拷貝,在邏輯卷進(jìn)行數(shù)據(jù)寫入前將數(shù)據(jù)寫入請(qǐng)求對(duì)應(yīng)的數(shù)據(jù)拷貝至快照中。然后,再進(jìn)行對(duì)邏輯卷的數(shù)據(jù)寫入。進(jìn)而本發(fā)明不僅可避免由于所設(shè)快照空間過大所導(dǎo)致的浪費(fèi),又使得快照不會(huì)因?yàn)閭浞輸?shù)據(jù)的增加、缺少足夠的數(shù)據(jù)空間而致使快照中的數(shù)據(jù)失效。
當(dāng)然,本發(fā)明還可有其它多種實(shí)施例,在不背離本發(fā)明精神及其實(shí)質(zhì)的情況下,熟悉本領(lǐng)域的技術(shù)人員當(dāng)可根據(jù)本發(fā)明作出各種相應(yīng)的改變和變形,但這些相應(yīng)的改變和變形都應(yīng)屬于本發(fā)明所附的權(quán)利要求
的保護(hù)范圍。
權(quán)利要求
1.一種快照擴(kuò)容方法,是應(yīng)用于一邏輯卷管理器中,該方法包含有下列步驟在一邏輯卷的一卷組空間中分配一快照空間,以創(chuàng)建一快照;在對(duì)該邏輯卷有一數(shù)據(jù)寫入請(qǐng)求時(shí),比對(duì)該快照空間的總?cè)萘颗c該快照空間的一當(dāng)前保存數(shù)據(jù)量,以得到表示該快照空間的剩余容量大小的一差值;檢查該差值是否小于一默認(rèn)值;以及當(dāng)該差值小于該默認(rèn)值時(shí),從該卷組空間中劃分一容量空間,以通過由一標(biāo)準(zhǔn)擴(kuò)容算法對(duì)該快照空間進(jìn)行容量擴(kuò)展。
2.如權(quán)利要求
1所述的快照擴(kuò)容方法,其特征在于,該快照空間為該卷組空間的10%~20%。
3.如權(quán)利要求
1所述的快照擴(kuò)容方法,其特征在于,當(dāng)該快照空間的容量擴(kuò)展失敗時(shí),更包含有標(biāo)記該快照為失效的步驟。
4.如權(quán)利要求
1所述的快照擴(kuò)容方法,其特征在于,當(dāng)該快照空間的容量擴(kuò)展成功時(shí),更包含有在該邏輯卷進(jìn)行數(shù)據(jù)寫入前將該數(shù)據(jù)寫入請(qǐng)求對(duì)應(yīng)的數(shù)據(jù)拷貝至該快照中的步驟。
5.一種快照擴(kuò)容系統(tǒng),是應(yīng)用于一邏輯卷管理器中,該系統(tǒng)包含有一分配模塊,是用以在一邏輯卷的一卷組空間中分配一快照空間,以創(chuàng)建一快照;一偵測(cè)模塊,是用以比對(duì)該快照空間的總?cè)萘颗c該快照空間的當(dāng)前保存數(shù)據(jù)量,以得到表示該快照空間的剩余容量大小的一差值,并將該差值與一默認(rèn)值進(jìn)行比較;以及一擴(kuò)容模塊,是用以從該卷組空間中劃分一容量空間,并通過由一標(biāo)準(zhǔn)擴(kuò)容算法對(duì)該快照空間進(jìn)行容量擴(kuò)展。
6.如權(quán)利要求
5所述的快照擴(kuò)容系統(tǒng),其特征在于,當(dāng)該快照空間的容量擴(kuò)展失敗時(shí),該偵測(cè)模塊標(biāo)記該快照為一失效快照。
7.如權(quán)利要求
5所述的快照擴(kuò)容系統(tǒng),其特征在于,該快照空間為該卷組空間的10%~20%。
8.如權(quán)利要求
5所述的快照擴(kuò)容系統(tǒng),更包含有一快照模塊,是用以當(dāng)該快照空間的容量擴(kuò)展成功時(shí),對(duì)該數(shù)據(jù)寫入請(qǐng)求對(duì)應(yīng)的數(shù)據(jù)執(zhí)行寫前拷貝,以備份該數(shù)據(jù)至該快照中。
專利摘要
一種快照擴(kuò)容系統(tǒng)及方法,是應(yīng)用于邏輯卷管理器中,首先在邏輯卷的卷組空間中分配一快照空間,以創(chuàng)建快照,并且在對(duì)邏輯卷有數(shù)據(jù)寫入請(qǐng)求時(shí),比對(duì)快照空間的總?cè)萘颗c快照空間的當(dāng)前保存數(shù)據(jù)量,以得到表示快照空間的剩余容量大小的差值,檢查差值是否小于一默認(rèn)值,當(dāng)差值小于默認(rèn)值時(shí),從卷組空間中劃分一容量空間,以通過由標(biāo)準(zhǔn)擴(kuò)容算法對(duì)快照空間進(jìn)行容量擴(kuò)展。本發(fā)明可保證足夠的快照空間容納備份數(shù)據(jù),并避免快照失效,進(jìn)而保證了快照的可用性。
文檔編號(hào)G06F11/14GK1991778SQ200510135277
公開日2007年7月4日 申請(qǐng)日期2005年12月29日
發(fā)明者陳蘊(yùn)弘, 陳玄同, 劉文涵 申請(qǐng)人:英業(yè)達(dá)股份有限公司導(dǎo)出引文BiBTeX, EndNote, RefMan