1.一種基于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)。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述預(yù)設(shè)刷寫條件具體包括:
所述快照數(shù)據(jù)塊被判定為臟塊且所述臟塊所處dirty鏈表的容量超出預(yù)設(shè)容量限制范圍和/或所述linux系統(tǒng)出現(xiàn)掉電情況。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述快照數(shù)據(jù)塊被判定為臟塊的條件具體為:
所述快照數(shù)據(jù)塊超過預(yù)設(shè)時(shí)間未被訪問。
4.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述預(yù)設(shè)容量限制范圍為緩沖區(qū)固定容量值的75%。
5.根據(jù)權(quán)利要求2所述的方法,其特征在于,判斷所述linux系統(tǒng)是否出現(xiàn)掉電情況的過程具體為:
實(shí)時(shí)檢測(cè)所述linux系統(tǒng)的電源電壓值;
判斷所述電源電壓值是否低于預(yù)設(shè)電壓閾值,如果是,所述linux系統(tǒng)出現(xiàn)掉電情況。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,當(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)。
7.根據(jù)權(quán)利要求6所述的方法,其特征在于,所述控制所述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)的處理。
8.一種基于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)。
9.根據(jù)權(quán)利要求8所述的系統(tǒng),其特征在于,所述刷寫判斷模塊具體包括:
臟塊判斷單元,用于判斷所述快照數(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)。