欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種基于linux系統(tǒng)的COW快照數(shù)據(jù)刷寫方法及其系統(tǒng)與流程

文檔序號(hào):12596756閱讀:539來源:國知局
一種基于linux系統(tǒng)的COW快照數(shù)據(jù)刷寫方法及其系統(tǒng)與流程

本發(fā)明涉及快照技術(shù)領(lǐng)域,特別是涉及一種基于linux系統(tǒng)的COW快照數(shù)據(jù)刷寫方法及其系統(tǒng)。



背景技術(shù):

在linux系統(tǒng)中,當(dāng)IO數(shù)據(jù)第一次寫入到linux系統(tǒng)的源卷內(nèi)的某個(gè)存儲(chǔ)位置時(shí),會(huì)執(zhí)行COW(Copy On Write,寫時(shí)復(fù)制)快照操作,COW快照操作的內(nèi)容為:首先將該位置的原有內(nèi)容讀取出來,復(fù)制到目的卷內(nèi)的某個(gè)位置,然后再將IO數(shù)據(jù)寫入到該位置中;即在新數(shù)據(jù)寫入時(shí),為避免數(shù)據(jù)覆蓋而將舊數(shù)據(jù)存儲(chǔ)至另一位置,而這個(gè)過程中會(huì)產(chǎn)生一個(gè)包含新舊數(shù)據(jù)的位置映射關(guān)系(數(shù)據(jù)塊之間)的例外信息。目前的COW快照操作每執(zhí)行一次,即會(huì)將生成的例外信息刷寫至磁盤內(nèi)。

由于在上述操作中,COW快照操作是針對(duì)數(shù)據(jù)塊進(jìn)行的,若源卷內(nèi)的數(shù)據(jù)塊大小較小(例如為4KB),而寫入的IO數(shù)據(jù)較大(例如為20G),這時(shí)一次IO寫操作會(huì)需要執(zhí)行多次COW快照操作,生成多個(gè)例外信息,故該種情況下訪問磁盤的次數(shù)是非常大的,而頻繁的磁盤訪問會(huì)拖慢IO的處理速度,影響linux系統(tǒng)的性能。

因此,如何提供一種處理速度快且對(duì)系統(tǒng)性能影響小的基于linux系統(tǒng)的COW快照數(shù)據(jù)刷寫方法及其系統(tǒng)是本領(lǐng)域技術(shù)人員目前需要解決的問題。



技術(shù)實(shí)現(xiàn)要素:

本發(fā)明的目的是提供一種基于linux系統(tǒng)的COW快照數(shù)據(jù)刷寫方法及其系統(tǒng),能夠在不影響CPW快照性能的基礎(chǔ)上,大大減少訪問磁盤的次數(shù),提高IO的處理速度,盡可能避免影響linux系統(tǒng)的性能。

為解決上述技術(shù)問題,本發(fā)明提供了一種基于linux系統(tǒng)的COW快照數(shù)據(jù)刷寫方法,包括:

當(dāng)有IO數(shù)據(jù)寫入時(shí),執(zhí)行CPW快照操作,并將生成的例外信息存儲(chǔ)于內(nèi)存中的快照數(shù)據(jù)塊內(nèi);

判斷所述快照數(shù)據(jù)塊是否達(dá)到預(yù)設(shè)刷寫條件,如果是,將所述快照數(shù)據(jù)塊內(nèi)的例外信息統(tǒng)一刷寫至磁盤內(nèi)。

優(yōu)選地,所述預(yù)設(shè)刷寫條件具體包括:

所述快照數(shù)據(jù)塊被判定為臟塊且所述臟塊所處dirty鏈表的容量超出預(yù)設(shè)容量限制范圍和/或所述linux系統(tǒng)出現(xiàn)掉電情況。

優(yōu)選地,所述快照數(shù)據(jù)塊被判定為臟塊的條件具體為:

所述快照數(shù)據(jù)塊超過預(yù)設(shè)時(shí)間未被訪問。

優(yōu)選地,所述預(yù)設(shè)容量限制范圍為緩沖區(qū)固定容量值的75%。

優(yōu)選地,判斷所述linux系統(tǒng)是否出現(xiàn)掉電情況的過程具體為:

實(shí)時(shí)檢測(cè)所述linux系統(tǒng)的電源電壓值;

判斷所述電源電壓值是否低于預(yù)設(shè)電壓閾值,如果是,所述linux系統(tǒng)出現(xiàn)掉電情況。

優(yōu)選地,當(dāng)判斷所述linux系統(tǒng)出現(xiàn)掉電情況后,所述將所述快照數(shù)據(jù)塊內(nèi)的例外信息統(tǒng)一刷寫至磁盤內(nèi)的過程具體為:

控制所述linux系統(tǒng)切換至大電容供電,然后將所述快照數(shù)據(jù)塊內(nèi)的例外信息統(tǒng)一刷寫至所述磁盤內(nèi)。

優(yōu)選地,所述控制所述linux系統(tǒng)切換至大電容供電之后還包括:

發(fā)送截?cái)嘀噶钪罥O棧,控制所述IO棧停止下發(fā)IO數(shù)據(jù);

確定當(dāng)前例外信息的狀態(tài)情況,得到狀態(tài)信息并寫入所述linux系統(tǒng)的超級(jí)塊內(nèi),供所述linux系統(tǒng)上電后按照所述狀態(tài)信息進(jìn)行相應(yīng)的處理。

為解決上述技術(shù)問題,本發(fā)明還提供了一種基于linux系統(tǒng)的COW快照數(shù)據(jù)刷寫系統(tǒng),包括:

快照操作模塊,用于當(dāng)有IO數(shù)據(jù)寫入時(shí),執(zhí)行CPW快照操作,并將生成的例外信息存儲(chǔ)于內(nèi)存中的快照數(shù)據(jù)塊內(nèi);

刷寫判斷模塊,用于判斷所述快照數(shù)據(jù)塊是否達(dá)到預(yù)設(shè)刷寫條件,如果是,將所述快照數(shù)據(jù)塊內(nèi)的例外信息統(tǒng)一刷寫至磁盤內(nèi)。

優(yōu)選地,所述刷寫判斷模塊具體包括:

臟塊判斷單元,用于判斷所述快照數(shù)據(jù)塊是否被判定為臟塊且所述臟塊所處dirty鏈表的容量是否超出預(yù)設(shè)容量限制范圍,如果是,所述快照數(shù)據(jù)塊滿足所述預(yù)設(shè)刷寫條件,觸發(fā)刷寫單元;

掉電判斷單元,用于實(shí)時(shí)檢測(cè)所述linux系統(tǒng)的電源電壓值;判斷所述電源電壓值是否低于預(yù)設(shè)電壓閾值,如果是,所述linux系統(tǒng)出現(xiàn)掉電情況,控制所述linux系統(tǒng)切換至大電容供電,并觸發(fā)所述刷寫單元;

所述刷寫單元,用于將所述快照數(shù)據(jù)塊內(nèi)的例外信息統(tǒng)一刷寫至磁盤內(nèi)。

本發(fā)明提供了一種基于linux系統(tǒng)的COW快照數(shù)據(jù)刷寫方法及其系統(tǒng),本發(fā)明取消了COW快照操作中每次生成例外信息即將其刷寫至磁盤的操作,而是將每次生成的例外信息存儲(chǔ)至內(nèi)存中的快照數(shù)據(jù)塊內(nèi),直達(dá)快照數(shù)據(jù)塊滿足預(yù)設(shè)刷寫條件后,才將快照數(shù)據(jù)塊內(nèi)存儲(chǔ)的若干例外信息一次性刷寫至磁盤內(nèi)。可見,本發(fā)明在不影響CPW快照性能的基礎(chǔ)上,大大減少了訪問磁盤的次數(shù),提高了IO的處理速度,盡可能避免了影響linux系統(tǒng)的性能。

附圖說明

為了更清楚地說明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對(duì)現(xiàn)有技術(shù)和實(shí)施例中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。

圖1為本發(fā)明提供的一種基于linux系統(tǒng)的COW快照數(shù)據(jù)刷寫方法的過程的流程圖;

圖2為本發(fā)明提供的一種基于linux系統(tǒng)的COW快照數(shù)據(jù)刷寫系統(tǒng)的結(jié)構(gòu)示意圖。

具體實(shí)施方式

本發(fā)明的核心是提供一種基于linux系統(tǒng)的COW快照數(shù)據(jù)刷寫方法及其系統(tǒng),能夠在不影響CPW快照性能的基礎(chǔ)上,大大減少訪問磁盤的次數(shù),提高IO的處理速度,盡可能避免影響linux系統(tǒng)的性能。

為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。

本發(fā)明提供了一種基于linux系統(tǒng)的COW快照數(shù)據(jù)刷寫方法,參見圖1所示,圖1為本發(fā)明提供的一種基于linux系統(tǒng)的COW快照數(shù)據(jù)刷寫方法的過程的流程圖;該方法包括:

步驟s101:當(dāng)有IO數(shù)據(jù)寫入時(shí),執(zhí)行CPW快照操作,并將生成的例外信息存儲(chǔ)于內(nèi)存中的快照數(shù)據(jù)塊內(nèi);

步驟s102:判斷快照數(shù)據(jù)塊是否達(dá)到預(yù)設(shè)刷寫條件,如果是,將快照數(shù)據(jù)塊內(nèi)的例外信息統(tǒng)一刷寫至磁盤內(nèi)。

這里的例外信息具體為位圖信息。當(dāng)然,本發(fā)明不限定例外信息的類型。

其中,這里的預(yù)設(shè)刷寫條件具體包括:

快照數(shù)據(jù)塊被判定為臟塊且臟塊所處dirty鏈表的容量超出預(yù)設(shè)容量限制范圍和/或linux系統(tǒng)出現(xiàn)掉電情況。

具體的,快照數(shù)據(jù)塊被判定為臟塊的條件具體為:

快照數(shù)據(jù)塊超過預(yù)設(shè)時(shí)間未被訪問。

可以理解的是,快照數(shù)據(jù)塊是位于緩沖區(qū)內(nèi)的,緩沖區(qū)的固定容量值與緩沖區(qū)內(nèi)數(shù)據(jù)塊的固定容量大小有關(guān),當(dāng)數(shù)據(jù)塊大小小于4M時(shí),分配主內(nèi)存的2%做為緩沖區(qū);當(dāng)數(shù)據(jù)塊大小大于4M時(shí),分配虛擬內(nèi)存的25%做為緩沖區(qū)。其中,每個(gè)緩沖區(qū)內(nèi)包括有兩個(gè)數(shù)據(jù)塊鏈表,分別為放置干凈塊的clean鏈表以及放置臟塊的dirty鏈表,當(dāng)快照數(shù)據(jù)塊超過預(yù)設(shè)時(shí)間未被訪問,該快照數(shù)據(jù)塊會(huì)被標(biāo)記為臟塊并放置于dirty鏈表內(nèi),當(dāng)dirty鏈表的容量超出預(yù)設(shè)容量限制范圍時(shí),則滿足預(yù)設(shè)刷寫條件將dirty鏈表內(nèi)的臟塊統(tǒng)一刷寫至磁盤內(nèi)。

進(jìn)一步的,這里的預(yù)設(shè)容量限制范圍為緩沖區(qū)固定容量值的75%。當(dāng)然,本發(fā)明不限定緩沖區(qū)固定容量值以及預(yù)設(shè)容量限制范圍的具體大小。

其中,判斷l(xiāng)inux系統(tǒng)是否出現(xiàn)掉電情況的過程具體為:

實(shí)時(shí)檢測(cè)linux系統(tǒng)的電源電壓值;

判斷電源電壓值是否低于預(yù)設(shè)電壓閾值,如果是,linux系統(tǒng)出現(xiàn)掉電情況。

具體的,當(dāng)判斷l(xiāng)inux系統(tǒng)出現(xiàn)掉電情況后,將快照數(shù)據(jù)塊內(nèi)的例外信息統(tǒng)一刷寫至磁盤內(nèi)的過程具體為:

控制linux系統(tǒng)切換至大電容供電,然后將快照數(shù)據(jù)塊內(nèi)的例外信息統(tǒng)一刷寫至磁盤內(nèi)。

可以理解的是,linux系統(tǒng)在掉電后會(huì)立即切換至大電容供電,由大電容來進(jìn)行臨時(shí)供電,在臨時(shí)供電期間將全部例外信息刷寫至磁盤,供linux系統(tǒng)在上電后根據(jù)存儲(chǔ)的例外信息進(jìn)行數(shù)據(jù)恢復(fù)操作,從而盡可能保證了在意外斷電的情況下數(shù)據(jù)的完整性。當(dāng)然,這里的預(yù)設(shè)電壓閾值可以自行設(shè)定,本發(fā)明不作限定。

作為優(yōu)選地,控制linux系統(tǒng)切換至大電容供電之后還包括:

發(fā)送截?cái)嘀噶钪罥O棧,控制IO棧停止下發(fā)IO數(shù)據(jù);

確定當(dāng)前例外信息的狀態(tài)情況,得到狀態(tài)信息并寫入linux系統(tǒng)的超級(jí)塊內(nèi),供linux系統(tǒng)上電后按照狀態(tài)信息進(jìn)行相應(yīng)的處理。

其中,這里的狀態(tài)信息包括例外信息處于拷貝狀態(tài)或刪除狀態(tài)等,例如,當(dāng)處于拷貝狀態(tài)時(shí),表明掉電后,例外信息已刷寫至磁盤內(nèi),linux系統(tǒng)上電后可根據(jù)該例外信息進(jìn)行數(shù)據(jù)恢復(fù);當(dāng)處于刪除狀態(tài)時(shí),表明例外信息處于正在刪除的狀態(tài),當(dāng)linux系統(tǒng)上電后,可繼續(xù)對(duì)例外信息進(jìn)行刪除。另外,這里的狀態(tài)信息可以具體包括每條例外信息的狀態(tài),也可以包括某一個(gè)起止范圍內(nèi)的例外信息的狀態(tài),當(dāng)包括某一個(gè)起止范圍內(nèi)的例外信息的狀態(tài)時(shí),狀態(tài)信息內(nèi)還需包括對(duì)應(yīng)的起止范圍信息。

當(dāng)然,這里的狀態(tài)信息還可包括表明其他狀態(tài)的信息,本發(fā)明對(duì)此不作限定。

另外,這里的預(yù)設(shè)刷寫條件還可以包括:接收到手動(dòng)觸發(fā)信號(hào)。即操作人員手動(dòng)觸發(fā)刷寫功能,接收到手動(dòng)觸發(fā)信號(hào)后即判定快照數(shù)據(jù)塊達(dá)到預(yù)設(shè)刷寫條件。當(dāng)然,預(yù)設(shè)刷寫條件可以包括以上三種之和或幾種的組合,或者還可以包括其他條件,本發(fā)明僅給出優(yōu)選實(shí)施例,對(duì)此并不做限定。

本發(fā)明提供了一種基于linux系統(tǒng)的COW快照數(shù)據(jù)刷寫方法,本發(fā)明取消了COW快照操作中每次生成例外信息即將其刷寫至磁盤的操作,而是將每次生成的例外信息存儲(chǔ)至內(nèi)存中的快照數(shù)據(jù)塊內(nèi),直達(dá)快照數(shù)據(jù)塊滿足預(yù)設(shè)刷寫條件后,才將快照數(shù)據(jù)塊內(nèi)存儲(chǔ)的若干例外信息一次性刷寫至磁盤內(nèi)??梢?,本發(fā)明在不影響CPW快照性能的基礎(chǔ)上,大大減少了訪問磁盤的次數(shù),提高了IO的處理速度,盡可能避免了影響linux系統(tǒng)的性能。

本發(fā)明還提供了一種基于linux系統(tǒng)的COW快照數(shù)據(jù)刷寫系統(tǒng),參見圖2所示,圖2為本發(fā)明提供的一種基于linux系統(tǒng)的COW快照數(shù)據(jù)刷寫系統(tǒng)的結(jié)構(gòu)示意圖。該系統(tǒng)包括:

快照操作模塊1,用于當(dāng)有IO數(shù)據(jù)寫入時(shí),執(zhí)行CPW快照操作,并將生成的例外信息存儲(chǔ)于內(nèi)存中的快照數(shù)據(jù)塊內(nèi);

刷寫判斷模塊2,用于判斷快照數(shù)據(jù)塊是否達(dá)到預(yù)設(shè)刷寫條件,如果是,將快照數(shù)據(jù)塊內(nèi)的例外信息統(tǒng)一刷寫至磁盤內(nèi)。

作為優(yōu)選地,刷寫判斷模塊2具體包括:

臟塊判斷單元21,用于判斷快照數(shù)據(jù)塊是否被判定為臟塊且臟塊所處dirty鏈表的容量是否超出預(yù)設(shè)容量限制范圍,如果是,快照數(shù)據(jù)塊滿足預(yù)設(shè)刷寫條件,觸發(fā)刷寫單元23;

掉電判斷單元22,用于實(shí)時(shí)檢測(cè)linux系統(tǒng)的電源電壓值;判斷電源電壓值是否低于預(yù)設(shè)電壓閾值,如果是,linux系統(tǒng)出現(xiàn)掉電情況,控制linux系統(tǒng)切換至大電容供電,并觸發(fā)刷寫單元23;

刷寫單元23,用于將快照數(shù)據(jù)塊內(nèi)的例外信息統(tǒng)一刷寫至磁盤內(nèi)。

其中,掉電判斷單元22包括電壓傳感器,電壓傳感器用于實(shí)時(shí)檢測(cè)linux系統(tǒng)的電源電壓值。

本發(fā)明提供了一種基于linux系統(tǒng)的COW快照數(shù)據(jù)刷寫系統(tǒng),本發(fā)明取消了COW快照操作中每次生成例外信息即將其刷寫至磁盤的操作,而是將每次生成的例外信息存儲(chǔ)至內(nèi)存中的快照數(shù)據(jù)塊內(nèi),直達(dá)快照數(shù)據(jù)塊滿足預(yù)設(shè)刷寫條件后,才將快照數(shù)據(jù)塊內(nèi)存儲(chǔ)的若干例外信息一次性刷寫至磁盤內(nèi)??梢?,本發(fā)明在不影響CPW快照性能的基礎(chǔ)上,大大減少了訪問磁盤的次數(shù),提高了IO的處理速度,盡可能避免了影響linux系統(tǒng)的性能。

需要說明的是,在本說明書中,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個(gè)……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。

對(duì)所公開的實(shí)施例的上述說明,使本領(lǐng)域?qū)I(yè)技術(shù)人員能夠?qū)崿F(xiàn)或使用本發(fā)明。對(duì)這些實(shí)施例的多種修改對(duì)本領(lǐng)域的專業(yè)技術(shù)人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本發(fā)明的精神或范圍的情況下,在其他實(shí)施例中實(shí)現(xiàn)。因此,本發(fā)明將不會(huì)被限制于本文所示的這些實(shí)施例,而是要符合與本文所公開的原理和新穎特點(diǎn)相一致的最寬的范圍。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
深州市| 岳普湖县| 喀什市| 彭泽县| 永宁县| 花莲县| 巴彦县| 炉霍县| 丹巴县| 永昌县| 宁夏| 青铜峡市| 额尔古纳市| 中山市| 廉江市| 郑州市| 依安县| 姜堰市| 泗水县| 阜阳市| 涿州市| 武定县| 合肥市| 闽清县| 杭锦后旗| 屏南县| 曲水县| 荔浦县| 海晏县| 滁州市| 同心县| 渝北区| 温泉县| 乌苏市| 慈利县| 商洛市| 周至县| 黎平县| 汾阳市| 佛教| 中宁县|