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

一種維護(hù)主從式雙控軟Raid6一致性的方法及系統(tǒng)的制作方法

文檔序號:10488691閱讀:350來源:國知局
一種維護(hù)主從式雙控軟Raid6一致性的方法及系統(tǒng)的制作方法
【專利摘要】本發(fā)明提出一種維護(hù)主從式雙控軟Raid6一致性的方法及系統(tǒng),該方法包括主控制器節(jié)點(diǎn)中Raid6設(shè)備獲取數(shù)據(jù)更新請求,主控制器節(jié)點(diǎn)中Raid6設(shè)備計(jì)算數(shù)據(jù)更新請求對應(yīng)的數(shù)據(jù)更新位置,并在內(nèi)存中記錄位圖更新狀態(tài)A,并固化在主控制器節(jié)點(diǎn)的Raid6校驗(yàn)設(shè)備中,Raid6設(shè)備計(jì)算校驗(yàn)值,并對數(shù)據(jù)小盤Data Disk與校驗(yàn)小盤Parity Disk下發(fā)更新請求,寫入快照源,作為新數(shù)據(jù),當(dāng)所有Data Disk與Parity Disk更新完成,在內(nèi)存中記錄位圖更新狀態(tài)B,固化在主控制器節(jié)點(diǎn)的校驗(yàn)設(shè)備中;并同步到從控制器節(jié)點(diǎn)中Raid6設(shè)備,并固化在從控制器節(jié)點(diǎn)的校驗(yàn)設(shè)備中;主控制器節(jié)點(diǎn)中Raid6設(shè)備在內(nèi)存中找到位圖更新狀態(tài)為B的數(shù)據(jù)更新位置,通過對Data Disk與Parity Disk的發(fā)送Remap指令,將新數(shù)據(jù)重映射到快照設(shè)備Data Snapshot與Parity Snapshot。
【專利說明】
一種維護(hù)主從式雙控軟Ra i d6—致性的方法及系統(tǒng)
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及計(jì)算機(jī)網(wǎng)絡(luò)存儲領(lǐng)域,特別涉及一種維護(hù)主從式雙控軟Raide—致性的方法及系統(tǒng)。
【背景技術(shù)】
[0002]RAID(獨(dú)立冗余磁盤陣列)技術(shù)是一種提供增強(qiáng)冗余、容量和存儲性能的存儲方法,有著較強(qiáng)的可管理性、可靠性和可用性。Raid算法根據(jù)實(shí)現(xiàn)原理可分為不同的級別,分別用1^0(10、1^丨(11、1^丨(14、1^丨(15、1^0(16、1^丨(110等表示,其中1^丨(16是可靠性最高的,它具有2個(gè)校驗(yàn)盤,可以容忍2個(gè)磁盤失效,如圖1所示,Parity Disk的數(shù)據(jù)由所有組成Raid6的Data Disk上的數(shù)據(jù)通過校驗(yàn)公式計(jì)算得到。Raid算法可以由硬件Raid卡來實(shí)現(xiàn),也可以由軟件來實(shí)現(xiàn),比如Linux MD Raid算法,由于軟件實(shí)現(xiàn)的Raid算法,更容易部署,下文所述的Ra i d算法都是指軟件實(shí)現(xiàn)的Ra i d算法,簡稱軟Ra i d。
[0003]傳統(tǒng)的Raid6技術(shù)存在控制器單點(diǎn)故障和被稱為“WriteHole”的一致性問題,單點(diǎn)故障是指控制器節(jié)點(diǎn)故障,數(shù)據(jù)訪問就會(huì)中斷;一致性問題是指在寫過程中發(fā)生RAID控制器故障(如系統(tǒng)崩潰或斷電)引起條帶上的數(shù)據(jù)和校驗(yàn)不一致,這會(huì)導(dǎo)致:即使控制器修復(fù),數(shù)據(jù)的一致性已經(jīng)不能保證(校驗(yàn)公式兩側(cè)不相等),如圖2所示,一致性問題的根本原因在于RAID存儲過程涉及多個(gè)磁盤,卻不是一個(gè)原子操作,因而不能避免寫入過程被異常中斷而產(chǎn)生的Write Hole問題,該問題是由收到新數(shù)據(jù)和計(jì)算出的新校驗(yàn)直接寫在舊的位置上所導(dǎo)致的。
[0004]為了避免單控制器故障,可以采用雙控制器的方案,比如AutoRaid,雙控RAID使用2個(gè)RAID控制器,分別放置在2個(gè)不同物理服務(wù)器節(jié)點(diǎn)上,用于容忍控制器單點(diǎn)故障,兩個(gè)RAID控制器分別以DAS(Direct Attached Storage)的方式直接連接到所有磁盤,其中一個(gè)控制器故障,還可以由另外一個(gè)繼續(xù)工作,如圖3所示,根據(jù)工作模式不同,雙控Raid6可以分為雙活和主從兩種,雙活是指兩個(gè)控制器同時(shí)接受相同的數(shù)據(jù)訪問;主從是指兩個(gè)控制器中有一個(gè)為主控制器,接受數(shù)據(jù)訪問,另外一個(gè)備用控制器,只有在主控制器故障時(shí)才接受數(shù)據(jù)訪問,本發(fā)明主要涉及主從模式的雙控制器Raid6,以下簡稱主從式雙控Raid6,但是技術(shù)思想依然適用于主從式硬件Raid6控制器。
[0005]雙控僅解決Rai d6的單點(diǎn)故障問題,而解決一致性問題最直接的方式是可以通過將新數(shù)據(jù)和新校驗(yàn)寫到另一個(gè)新的位置而不是覆蓋舊數(shù)據(jù),這樣即使更新時(shí)出現(xiàn)控制器故障等異常,也不會(huì)影響舊數(shù)據(jù)的一致性,現(xiàn)有技術(shù)中,多采用預(yù)寫日志或者COW機(jī)制來解決一致性問題,比如ZFS中的Raid-Z。預(yù)寫日志,是指數(shù)據(jù)先寫入日志,在更新舊數(shù)據(jù),通過維護(hù)日志提交狀態(tài)來保存數(shù)據(jù)一致性;COW機(jī)制,是指舊數(shù)據(jù)先拷貝在更新,通過重映射保存一致性,因此,預(yù)寫日志和COW機(jī)制都可以保證正在更新的數(shù)據(jù)和校驗(yàn)不覆蓋舊數(shù)據(jù),但是存儲開銷和拷貝開銷會(huì)影響Raid6的性能,如圖4所示,對于主從模式控制器,主控制器需要把相關(guān)信息傳給從控制器,保持二者之間的同步,否則主控制器故障后,從控制器即使工作也無法提供正確的數(shù)據(jù),既然要同步二者的數(shù)據(jù),主從控制器的同步開銷過大必然會(huì)影響 Raid的訪問性能。

【發(fā)明內(nèi)容】

[0006]針對現(xiàn)有技術(shù)的不足,本發(fā)明提出一種維護(hù)主從式雙控軟Raid6—致性的方法及系統(tǒng)。
[0007 ]本發(fā)明提出一種維護(hù)主從式雙控軟Ra i d6—致性的方法,包括:
[0008]步驟I,主控制器節(jié)點(diǎn)中Raid6設(shè)備獲取數(shù)據(jù)更新請求,主控制器節(jié)點(diǎn)中Raid6設(shè)備計(jì)算數(shù)據(jù)更新請求對應(yīng)的數(shù)據(jù)更新位置,并在內(nèi)存中記錄位圖更新狀態(tài)A,并固化在主控制器節(jié)點(diǎn)的Raid6校驗(yàn)設(shè)備中,Raid6設(shè)備計(jì)算校驗(yàn)值,并對數(shù)據(jù)小盤Data Disk與校驗(yàn)小盤Parity Disk下發(fā)更新請求,寫入快照源,作為新數(shù)據(jù);
[0009]步驟2,當(dāng)所有Data Disk與Parity Disk更新完成,在內(nèi)存中記錄位圖更新狀態(tài)B,固化在主控制器節(jié)點(diǎn)的校驗(yàn)設(shè)備中;并同步到從控制器節(jié)點(diǎn)中Raid6設(shè)備,并固化在從控制器節(jié)點(diǎn)的校驗(yàn)設(shè)備中;
[0010]步驟3,主控制器節(jié)點(diǎn)中Raid6設(shè)備在內(nèi)存中找到位圖更新狀態(tài)為B的數(shù)據(jù)更新位置,通過對Data Disk與Parity Disk的發(fā)送Remap指令,將新數(shù)據(jù)重映射到快照設(shè)備DataSnapshot與Parity Snapshot,當(dāng)所有重映射指令完成時(shí),主控制器節(jié)點(diǎn)在內(nèi)存中記錄位圖更新狀態(tài)A,固化在主控制器節(jié)點(diǎn)的校驗(yàn)設(shè)備中,并同步到從控制器節(jié)點(diǎn)中Raid6設(shè)備,并固化在從控制器節(jié)點(diǎn)的校驗(yàn)設(shè)備中。
[0011]如果主控制器節(jié)點(diǎn)在步驟I或者步驟2內(nèi)發(fā)生故障,當(dāng)從控制器節(jié)點(diǎn)接替后,依然看到的是位圖更新狀態(tài)A,表示是舊數(shù)據(jù);如果主控制器節(jié)點(diǎn)在步驟3內(nèi)發(fā)生故障,從控制器節(jié)點(diǎn)接替主控制器節(jié)點(diǎn)后會(huì)看到位圖更新狀態(tài)B,繼續(xù)完成步驟3,從而保證了新數(shù)據(jù)一致性。
[0012]如果主控制器節(jié)點(diǎn)與從控制器節(jié)點(diǎn)同時(shí)發(fā)生故障,則在重啟之后,需要從主控制器節(jié)點(diǎn)的校驗(yàn)設(shè)備中讀取出位圖信息,如果位圖信息中位圖更新狀態(tài)A,不需要任何操作;如果位圖更新狀態(tài)B,則通過Remap指令重映射新數(shù)據(jù)到舊數(shù)據(jù),當(dāng)所有重映射完成時(shí),更新位圖狀態(tài)A,固化在主控制器節(jié)點(diǎn)的校驗(yàn)設(shè)備中,并同步到從控制器節(jié)點(diǎn)中Raid6設(shè)備,并固化在從控制器節(jié)點(diǎn)的校驗(yàn)設(shè)備中。
[0013]對于Raid6設(shè)備的每一個(gè)條帶,固定使用兩個(gè)bit位表示:位圖更新狀態(tài)A為00,位圖更新狀態(tài)B為10。
[0014]本發(fā)明還提出一種維護(hù)主從式雙控軟Raid6—致性的系統(tǒng),包括:
[0015]數(shù)據(jù)模塊,用于主控制器節(jié)點(diǎn)中Raid6設(shè)備獲取數(shù)據(jù)更新請求,主控制器節(jié)點(diǎn)中Raid6設(shè)備計(jì)算數(shù)據(jù)更新請求對應(yīng)的數(shù)據(jù)更新位置,并在內(nèi)存中記錄位圖更新狀態(tài)A,并固化在主控制器節(jié)點(diǎn)的Raid6校驗(yàn)設(shè)備中,Raid6設(shè)備計(jì)算校驗(yàn)值,并對數(shù)據(jù)小盤Data Disk與校驗(yàn)小盤Parity Disk下發(fā)更新請求,寫入快照源,作為新數(shù)據(jù);
[ΟΟ?6] 位圖狀態(tài)模塊,用于當(dāng)所有Data Disk與Parity Disk更新完成,在內(nèi)存中記錄位圖更新狀態(tài)B,固化在主控制器節(jié)點(diǎn)的校驗(yàn)設(shè)備中,并同步到從控制器節(jié)點(diǎn)中Raid6設(shè)備,并固化在從控制器節(jié)點(diǎn)的校驗(yàn)設(shè)備中;
[0017]重映射模塊,用于主控制器節(jié)點(diǎn)中Raid6設(shè)備在內(nèi)存中找到位圖更新狀態(tài)為B的數(shù)據(jù)更新位置,通過對Data Disk與Parity Disk的發(fā)送Remap指令,將新數(shù)據(jù)重映射到快照設(shè)備Data Snapshot與Parity Snapshot,當(dāng)所有重映射指令完成時(shí),主控制器節(jié)點(diǎn)在內(nèi)存中記錄位圖更新狀態(tài)A,固化在主控制器節(jié)點(diǎn)的校驗(yàn)設(shè)備中,并同步到從控制器節(jié)點(diǎn)中Raid6設(shè)備,并固化在從控制器節(jié)點(diǎn)的校驗(yàn)設(shè)備中。
[0018]如果主控制器節(jié)點(diǎn)在所述的數(shù)據(jù)模塊或者所述的位圖狀態(tài)模塊內(nèi)發(fā)生故障,當(dāng)從控制器節(jié)點(diǎn)接替后,依然看到的是位圖更新狀態(tài)A,表示是舊數(shù)據(jù);如果主控制器節(jié)點(diǎn)在所述的重映射模塊內(nèi)發(fā)生故障,從控制器節(jié)點(diǎn)接替主控制器節(jié)點(diǎn)后會(huì)看到位圖更新狀態(tài)B,繼續(xù)完成更新模塊,從而保證了新數(shù)據(jù)一致性。
[0019]如果主控制器節(jié)點(diǎn)與從控制器節(jié)點(diǎn)同時(shí)發(fā)生故障,則在重啟之后,需要從主控制器節(jié)點(diǎn)的校驗(yàn)設(shè)備中讀取出位圖信息,如果位圖信息中位圖更新狀態(tài)A,不需要任何操作;如果位圖更新狀態(tài)B,則通過Remap指令重映射新數(shù)據(jù)到舊數(shù)據(jù),當(dāng)所有重映射完成時(shí),更新位圖狀態(tài)A,固化在主控制器節(jié)點(diǎn)的校驗(yàn)設(shè)備中,并同步到從控制器節(jié)點(diǎn)中Raid6設(shè)備,并固化在從控制器節(jié)點(diǎn)的校驗(yàn)設(shè)備中。
[°02°]對于Raid6設(shè)備的每一個(gè)條帶,固定使用兩個(gè)bit位表示:位圖更新狀態(tài)A為00,位圖更新狀態(tài)B為10。
[0021 ]由以上方案可知,本發(fā)明的優(yōu)點(diǎn)在于:
[0022]本發(fā)明在解決主從式雙控軟Raid6—致性問題時(shí),采用了兩階段更新機(jī)制,將新數(shù)據(jù)和新校驗(yàn)寫入新位置,保證了數(shù)據(jù)一致性,沒有引入額外的存儲開銷和拷貝開銷;并且更新的狀態(tài)會(huì)低開銷地由主控制器傳遞給從控制器,降低對性能的影響。
【附圖說明】
[0023]圖1為Raid6結(jié)構(gòu)示意圖;
[0024]圖2為Raid6的WriteHole問題圖;
[0025]圖3為雙控Raid6的示意圖;
[0026]圖4為預(yù)寫日志、COW機(jī)制解決一致性問題圖;
[0027]圖5為主從式Raid6控制器系統(tǒng)結(jié)構(gòu)圖;
[0028]圖6為本發(fā)明第一階段更新過程圖;
[0029]圖7為本發(fā)明第二階段重映射過程圖;
[0030]圖8為本發(fā)明數(shù)據(jù)訪問流程圖。
【具體實(shí)施方式】
[0031]下面給出本發(fā)明的【具體實(shí)施方式】,結(jié)合附圖對本發(fā)明做出了詳細(xì)描述,本
【發(fā)明內(nèi)容】
包括系統(tǒng)結(jié)構(gòu),數(shù)據(jù)一致性維護(hù)方法,數(shù)據(jù)訪問過程三部分。
[0032](一)系統(tǒng)結(jié)構(gòu)
[0033]系統(tǒng)兩個(gè)控制器,位于不同的服務(wù)器節(jié)點(diǎn),管理同樣的磁盤設(shè)備,其中一個(gè)作為主控制器,另外一個(gè)作為從控制器,備用;只有主控制器故障后,從控制器才能工作,如圖5所示,Raid6控制器、Data Disk和Parity Disk可以分別屬于網(wǎng)絡(luò)存儲的不同節(jié)點(diǎn);為節(jié)省資源,控制器和Parity Disk可以屬于同一節(jié)點(diǎn):主控制器和一個(gè)Parity Disk屬于一個(gè)節(jié)點(diǎn),從控制器和另外一個(gè)Parity Disk屬于另外的節(jié)點(diǎn)。主控制器和從控制器之間的同步機(jī)制,借助于網(wǎng)絡(luò)互聯(lián)協(xié)議實(shí)現(xiàn),比如ISCSI/SCST。以下,稱主控制器所在的節(jié)點(diǎn)為主控制器節(jié)點(diǎn),從控制器所在的節(jié)點(diǎn)為從控制器節(jié)點(diǎn),客服端在使用該系統(tǒng)時(shí),借助與多路徑軟件和兩個(gè)控制器節(jié)點(diǎn)相連,并配置其中切換策略為ALUA(Asymmetric Logical Unit Access)。
[0034]磁盤設(shè)備作為物理存儲單元,負(fù)責(zé)數(shù)據(jù)存儲,其中數(shù)據(jù)有新舊之分,舊數(shù)據(jù)以新數(shù)據(jù)的快照形式存在,新數(shù)據(jù)作為舊數(shù)據(jù)的快照源存在,快照設(shè)備Disk Snapshot和ParitySnapshot保存了邏輯訪問地址和實(shí)際存儲地址的映射關(guān)系,支持重映射命令。
[0035]同一位置的新數(shù)據(jù)和舊數(shù)據(jù)會(huì)存在不同的設(shè)備,當(dāng)新數(shù)據(jù)達(dá)到一致狀態(tài),會(huì)利用數(shù)據(jù)重映射轉(zhuǎn)化為舊數(shù)據(jù),原有的舊數(shù)據(jù)會(huì)刪除,這個(gè)轉(zhuǎn)化過程沒有數(shù)據(jù)移動(dòng)開銷,對性能影響低,數(shù)據(jù)磁盤設(shè)備,負(fù)責(zé)數(shù)據(jù)的存儲和元數(shù)據(jù)的存儲,寫入數(shù)據(jù)磁盤的數(shù)據(jù),會(huì)同時(shí)記錄和數(shù)據(jù)相關(guān)的狀態(tài)。(二)數(shù)據(jù)一致性維護(hù)方法
[0036]Raid6的一致性問題,根本原因是數(shù)據(jù)和校驗(yàn)的更新過程不滿足原子性,為了維護(hù)Raid6的一致性,本發(fā)明設(shè)計(jì)了兩階段的更新協(xié)議:新的數(shù)據(jù)和校驗(yàn)并不直接覆蓋舊的數(shù)據(jù)和校驗(yàn),而是等所有的更新都完成,才算是新一致狀態(tài),否則,還是舊一致狀態(tài),這樣的好處在于:在部分?jǐn)?shù)據(jù)得到更新時(shí)發(fā)生控制器故障,并不影響舊一致狀態(tài);新狀態(tài)在達(dá)到一致之前,數(shù)據(jù)的更新并不對外可見。
[0037]兩個(gè)Raid6控制器在組建Raid6設(shè)備時(shí),會(huì)在內(nèi)存中預(yù)先分配好所有數(shù)據(jù)條帶的狀態(tài)位圖,并初始化。
[0038]由于數(shù)據(jù)讀請求不影響一致性,本發(fā)明以寫請求為主,介紹數(shù)據(jù)一致性維護(hù)方法:兩階段更新,第一階段更新是在用戶請求的路徑上進(jìn)行,第二階段是異步進(jìn)行,其具體步驟如下:
[0039]1.第一階段更新,如圖6所示:
[0040]1.1、用戶數(shù)據(jù)更新請求進(jìn)入主控制器節(jié)點(diǎn)的Raid6設(shè)備;
[0041]1.2、Raid6設(shè)備計(jì)算該請求對應(yīng)的數(shù)據(jù)更新位置,并在內(nèi)存中記錄位圖更新狀態(tài)A,并固化在主控制器節(jié)點(diǎn)的校驗(yàn)設(shè)備中;
[0042]1.3、Raid6設(shè)備計(jì)算校驗(yàn)值,并對數(shù)據(jù)小盤和校驗(yàn)小盤下發(fā)更新請求;對DataD i s I^PPar ity D i s k的1,會(huì)寫入快照源,作為新數(shù)據(jù);
[0043]1.4、所有的Data Disk和Parity Disk更新完成,在內(nèi)存中記錄位圖更新狀態(tài)B,固化在主控制器節(jié)點(diǎn)的校驗(yàn)設(shè)備中;并同步到從控制器節(jié)點(diǎn)中Raid6設(shè)備,并固化在從控制器節(jié)點(diǎn)的校驗(yàn)設(shè)備中;
[0044]1.5、第一階段結(jié)束,用戶數(shù)據(jù)更新請求結(jié)束;
[0045]2.第二階段更新,如圖7所示:
[0046]2.1、主控制器節(jié)點(diǎn)中Raid6設(shè)備在內(nèi)存中找到位圖更新狀態(tài)為B的數(shù)據(jù)位置;
[0047]2.2、通過對Data Disk和Parity Disk的這些位置發(fā)送Remap指令,將快照源上的數(shù)據(jù)重映射到快照設(shè)備Data Snapshot和Parity Snapshot;
[0048]2.3、等所有的重映射指令完成,主控制器節(jié)點(diǎn)中Raid6內(nèi)部記錄位圖更新狀態(tài)為A,固化在主控制器節(jié)點(diǎn)的校驗(yàn)設(shè)備中,并同步到從控制器節(jié)點(diǎn)中Raid6設(shè)備,固化在從控制器節(jié)點(diǎn)的校驗(yàn)設(shè)備中;
[0049]2.4、第二階段結(jié)束;
[0050]在某次數(shù)據(jù)更新時(shí),發(fā)生主控制器故障,多路徑軟件會(huì)切換到從控制器,將當(dāng)時(shí)出錯(cuò)的請求進(jìn)行重發(fā),如果主控制器是在第一階段內(nèi)故障,這些數(shù)據(jù)更新并沒有覆蓋舊數(shù)據(jù),當(dāng)從控制器接替后,依然看到的是位圖更新狀態(tài)A,表示是舊狀態(tài);如果主控制器是在第二階段內(nèi)故障,從控制器接替后會(huì)看到位圖更新狀態(tài)B,可以繼續(xù)完成第二階段,從而保證了新狀態(tài)一致性,需要說明的是,Remap指令是冪等操作:多次執(zhí)行Remap指令的結(jié)果是一樣的。
[0051]在第二階段中,新數(shù)據(jù)是通過Remap指令重映射到舊數(shù)據(jù)狀態(tài),這個(gè)過程只是映射關(guān)系的改變,并沒有數(shù)據(jù)移動(dòng)開銷,同時(shí)為了降低同步的開銷,本發(fā)明采用了位圖來記錄更新狀態(tài):對于Raid6的每一個(gè)條帶,固定使用兩個(gè)bit位表示:更新狀態(tài)A為00,更新狀態(tài)B為10,因此,構(gòu)建Raid6的Data Disk數(shù)量增多也不影響位圖的空間開銷,只維護(hù)位圖就可以維護(hù)一致性,是因?yàn)橐坏└聽顟B(tài)為B,則說明新的數(shù)據(jù)和校驗(yàn)一定都保存在磁盤上;如果更新狀態(tài)為A,那么新數(shù)據(jù)不一定得到了更新,因此只能信任舊的數(shù)據(jù)和校驗(yàn)。
[0052]如果發(fā)送兩個(gè)控制器同時(shí)故障(比如機(jī)房停電),那么在重啟之后,需要從主控制器的校驗(yàn)設(shè)備中先讀取出位圖信息,然后根據(jù)位圖的狀態(tài),進(jìn)行不同的操作:
[0053]I)如果位圖的更新狀態(tài)是A,不需要任何操作;
[0054]2)如果位圖的更新狀態(tài)是B,則先要通過Remap指令重映射新數(shù)據(jù)到舊數(shù)據(jù)狀態(tài),也就是將快照源的數(shù)據(jù)Remap到快照上。
[0055](三)數(shù)據(jù)訪問過程
[0056]在兩階段更新的過程中,如果有其他的數(shù)據(jù)訪問請求,需要根據(jù)當(dāng)前的位圖更新狀態(tài)來判斷數(shù)據(jù)的位置,如圖8所示。
[0057]I)如果此時(shí)是讀請求,并且位圖狀態(tài)為A,那么此時(shí)是舊狀態(tài)一致,則需要從DataSnapshot快照上讀取數(shù)據(jù),如果位圖狀態(tài)為B,那么此時(shí)是新狀態(tài)一致,就首先對Data Disk進(jìn)行一次Remap操作將數(shù)據(jù)重映射到Data Snapshot,然后再從Data Snapshot快照上讀取。
[0058]2)如果此時(shí)是寫請求,操作比較簡單,就是需要等待前面的寫請求完成,并且更新狀態(tài)為變?yōu)锳才可以繼續(xù)進(jìn)行。
[0059]本領(lǐng)域的技術(shù)人員在不脫離權(quán)利要求書確定的本發(fā)明的精神和范圍的條件下,還可以對以上內(nèi)容進(jìn)行各種各樣的修改。因此本發(fā)明的范圍并不僅限于以上的說明,而是由權(quán)利要求書的范圍來確定的。
[0060]本發(fā)明還提出一種維護(hù)主從式雙控軟Raid6—致性的系統(tǒng),包括:
[0061]數(shù)據(jù)模塊,用于主控制器節(jié)點(diǎn)中Raid6設(shè)備獲取數(shù)據(jù)更新請求,主控制器節(jié)點(diǎn)中Raid6設(shè)備計(jì)算數(shù)據(jù)更新請求對應(yīng)的數(shù)據(jù)更新位置,并在內(nèi)存中記錄位圖更新狀態(tài)A,并固化在主控制器節(jié)點(diǎn)的Raid6校驗(yàn)設(shè)備中,Raid6設(shè)備計(jì)算校驗(yàn)值,并對數(shù)據(jù)小盤Data Disk與校驗(yàn)小盤Parity Disk下發(fā)更新請求,寫入快照源,作為新數(shù)據(jù);
[0062]位圖狀態(tài)模塊,用于當(dāng)所有Data Disk與Parity Disk更新完成,在內(nèi)存中記錄位圖更新狀態(tài)B,固化在主控制器節(jié)點(diǎn)的校驗(yàn)設(shè)備中,并同步到從控制器節(jié)點(diǎn)中Raid6設(shè)備,并固化在從控制器節(jié)點(diǎn)的校驗(yàn)設(shè)備中;
[0063]重映射模塊,用于主控制器節(jié)點(diǎn)中Raid6設(shè)備在內(nèi)存中找到位圖更新狀態(tài)為B的數(shù)據(jù)更新位置,通過對Data Disk與Parity Disk的發(fā)送Remap指令,將新數(shù)據(jù)重映射到快照設(shè)備Data Snapshot與Parity Snapshot,當(dāng)所有重映射指令完成時(shí),主控制器節(jié)點(diǎn)在內(nèi)存中記錄位圖更新狀態(tài)A,固化在主控制器節(jié)點(diǎn)的校驗(yàn)設(shè)備中,并同步到從控制器節(jié)點(diǎn)中Raid6設(shè)備,并固化在從控制器節(jié)點(diǎn)的校驗(yàn)設(shè)備中。
[0064]如果主控制器節(jié)點(diǎn)在所述的數(shù)據(jù)模塊或者所述的位圖狀態(tài)模塊內(nèi)發(fā)生故障,當(dāng)從控制器節(jié)點(diǎn)接替后,依然看到的是位圖更新狀態(tài)A,表示是舊數(shù)據(jù);如果主控制器節(jié)點(diǎn)在所述的重映射模塊內(nèi)發(fā)生故障,從控制器節(jié)點(diǎn)接替主控制器節(jié)點(diǎn)后會(huì)看到位圖更新狀態(tài)B,繼續(xù)完成更新模塊,從而保證了新數(shù)據(jù)一致性。
[0065]如果主控制器節(jié)點(diǎn)與從控制器節(jié)點(diǎn)同時(shí)發(fā)生故障,則在重啟之后,需要從主控制器節(jié)點(diǎn)的校驗(yàn)設(shè)備中讀取出位圖信息,如果位圖信息中位圖更新狀態(tài)A,不需要任何操作;如果位圖更新狀態(tài)B,則通過Remap指令重映射新數(shù)據(jù)到舊數(shù)據(jù),當(dāng)所有重映射完成時(shí),更新位圖狀態(tài)A,固化在主控制器節(jié)點(diǎn)的校驗(yàn)設(shè)備中,并同步到從控制器節(jié)點(diǎn)中Raid6設(shè)備,并固化在從控制器節(jié)點(diǎn)的校驗(yàn)設(shè)備中。
[ΟΟ??] 對于Raid6設(shè)備的每一個(gè)條帶,固定使用兩個(gè)bit位表示:位圖更新狀態(tài)A為00,位圖更新狀態(tài)B為10。
【主權(quán)項(xiàng)】
1.一種維護(hù)主從式雙控軟Raid6—致性的方法,其特征在于,包括: 步驟I,主控制器節(jié)點(diǎn)中Raid6設(shè)備獲取數(shù)據(jù)更新請求,主控制器節(jié)點(diǎn)中Raid6設(shè)備計(jì)算數(shù)據(jù)更新請求對應(yīng)的數(shù)據(jù)更新位置,并在內(nèi)存中記錄位圖更新狀態(tài)A,并固化在主控制器節(jié)點(diǎn)的Raid6校驗(yàn)設(shè)備中,Raid6設(shè)備計(jì)算校驗(yàn)值,并對數(shù)據(jù)小盤Data Disk與校驗(yàn)小盤ParityDisk下發(fā)更新請求,寫入快照源,作為新數(shù)據(jù); 步驟2,當(dāng)所有Data Disk與Parity Disk更新完成,在內(nèi)存中記錄位圖更新狀態(tài)B,固化在主控制器節(jié)點(diǎn)的校驗(yàn)設(shè)備中;并同步到從控制器節(jié)點(diǎn)中Raid6設(shè)備,并固化在從控制器節(jié)點(diǎn)的校驗(yàn)設(shè)備中; 步驟3,主控制器節(jié)點(diǎn)中Raid6設(shè)備在內(nèi)存中找到位圖更新狀態(tài)為B的數(shù)據(jù)更新位置,通過對Data Disk與Parity Disk的發(fā)送Remap指令,將新數(shù)據(jù)重映射到快照設(shè)備DataSnapshot與Parity Snapshot,當(dāng)所有重映射指令完成時(shí),主控制器節(jié)點(diǎn)在內(nèi)存中記錄位圖更新狀態(tài)A,固化在主控制器節(jié)點(diǎn)的校驗(yàn)設(shè)備中,并同步到從控制器節(jié)點(diǎn)中Raid6設(shè)備,并固化在從控制器節(jié)點(diǎn)的校驗(yàn)設(shè)備中。2.如權(quán)利要求1所述的維護(hù)主從式雙控軟Raid6—致性的方法,其特征在于,如果主控制器節(jié)點(diǎn)在步驟I或者步驟2內(nèi)發(fā)生故障,當(dāng)從控制器節(jié)點(diǎn)接替后,依然看到的是位圖更新狀態(tài)A,表示是舊數(shù)據(jù);如果主控制器節(jié)點(diǎn)在步驟3內(nèi)發(fā)生故障,從控制器節(jié)點(diǎn)接替主控制器節(jié)點(diǎn)后會(huì)看到位圖更新狀態(tài)B,繼續(xù)完成步驟3,從而保證了新數(shù)據(jù)一致性。3.如權(quán)利要求1所述的維護(hù)主從式雙控軟Raid6—致性的方法,其特征在于,如果主控制器節(jié)點(diǎn)與從控制器節(jié)點(diǎn)同時(shí)發(fā)生故障,則在重啟之后,需要從主控制器節(jié)點(diǎn)的校驗(yàn)設(shè)備中讀取出位圖信息,如果位圖信息中位圖更新狀態(tài)A,不需要任何操作;如果位圖更新狀態(tài)B,則通過Remap指令重映射新數(shù)據(jù)到舊數(shù)據(jù),當(dāng)所有重映射完成時(shí),更新位圖狀態(tài)A,固化在主控制器節(jié)點(diǎn)的校驗(yàn)設(shè)備中,并同步到從控制器節(jié)點(diǎn)中Raid6設(shè)備,并固化在從控制器節(jié)點(diǎn)的校驗(yàn)設(shè)備中。4.如權(quán)利要求1所述的維護(hù)主從式雙控軟Raid6—致性的方法,其特征在于,對于Raid6設(shè)備的每一個(gè)條帶,固定使用兩個(gè)bit位表示:位圖更新狀態(tài)A為00,位圖更新狀態(tài)B為10。5.一種維護(hù)主從式雙控軟Raid6—致性的系統(tǒng),其特征在于,包括: 數(shù)據(jù)模塊,用于主控制器節(jié)點(diǎn)中Raide設(shè)備獲取數(shù)據(jù)更新請求,主控制器節(jié)點(diǎn)中Raide設(shè)備計(jì)算數(shù)據(jù)更新請求對應(yīng)的數(shù)據(jù)更新位置,并在內(nèi)存中記錄位圖更新狀態(tài)A,并固化在主控制器節(jié)點(diǎn)的Raid6校驗(yàn)設(shè)備中,Raid6設(shè)備計(jì)算校驗(yàn)值,并對數(shù)據(jù)小盤Data Disk與校驗(yàn)小盤Parity Disk下發(fā)更新請求,寫入快照源,作為新數(shù)據(jù); 位圖狀態(tài)模塊,用于當(dāng)所有Data Disk與Parity Disk更新完成,在內(nèi)存中記錄位圖更新狀態(tài)B,固化在主控制器節(jié)點(diǎn)的校驗(yàn)設(shè)備中,并同步到從控制器節(jié)點(diǎn)中Raid6設(shè)備,并固化在從控制器節(jié)點(diǎn)的校驗(yàn)設(shè)備中; 重映射模塊,用于主控制器節(jié)點(diǎn)中Raid6設(shè)備在內(nèi)存中找到位圖更新狀態(tài)為B的數(shù)據(jù)更新位置,通過對Data Disk與Parity Disk的發(fā)送Remap指令,將新數(shù)據(jù)重映射到快照設(shè)備Data Snapshot與Parity Snapshot,當(dāng)所有重映射指令完成時(shí),主控制器節(jié)點(diǎn)在內(nèi)存中記錄位圖更新狀態(tài)A,固化在主控制器節(jié)點(diǎn)的校驗(yàn)設(shè)備中,并同步到從控制器節(jié)點(diǎn)中Raid6設(shè)備,并固化在從控制器節(jié)點(diǎn)的校驗(yàn)設(shè)備中。6.如權(quán)利要求5所述的維護(hù)主從式雙控軟Raid6—致性的系統(tǒng),其特征在于,如果主控制器節(jié)點(diǎn)在所述的數(shù)據(jù)模塊或者所述的位圖狀態(tài)模塊內(nèi)發(fā)生故障,當(dāng)從控制器節(jié)點(diǎn)接替后,依然看到的是位圖更新狀態(tài)A,表示是舊數(shù)據(jù);如果主控制器節(jié)點(diǎn)在所述的重映射模塊內(nèi)發(fā)生故障,從控制器節(jié)點(diǎn)接替主控制器節(jié)點(diǎn)后會(huì)看到位圖更新狀態(tài)B,繼續(xù)完成更新模塊,從而保證了新數(shù)據(jù)一致性。7.如權(quán)利要求5所述的維護(hù)主從式雙控軟Raid6—致性的系統(tǒng),其特征在于,如果主控制器節(jié)點(diǎn)與從控制器節(jié)點(diǎn)同時(shí)發(fā)生故障,則在重啟之后,需要從主控制器節(jié)點(diǎn)的校驗(yàn)設(shè)備中讀取出位圖信息,如果位圖信息中位圖更新狀態(tài)A,不需要任何操作;如果位圖更新狀態(tài)B,則通過Remap指令重映射新數(shù)據(jù)到舊數(shù)據(jù),當(dāng)所有重映射完成時(shí),更新位圖狀態(tài)A,固化在主控制器節(jié)點(diǎn)的校驗(yàn)設(shè)備中,并同步到從控制器節(jié)點(diǎn)中Raid6設(shè)備,并固化在從控制器節(jié)點(diǎn)的校驗(yàn)設(shè)備中。8.如權(quán)利要求5所述的維護(hù)主從式雙控軟Raid6—致性的系統(tǒng),其特征在于,對于Raid6設(shè)備的每一個(gè)條帶,固定使用兩個(gè)bit位表示:位圖更新狀態(tài)A為00,位圖更新狀態(tài)B為10。
【文檔編號】G06F3/06GK105843560SQ201610218815
【公開日】2016年8月10日
【申請日】2016年4月8日
【發(fā)明人】劉建亮, 劉振軍, 賈思懿, 方沛, 許魯
【申請人】中國科學(xué)院計(jì)算技術(shù)研究所, 天津中科藍(lán)鯨信息技術(shù)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會(huì)獲得點(diǎn)贊!
1
乐业县| 巴青县| 达尔| 闽侯县| 扬州市| 天镇县| 会泽县| 二连浩特市| 郧西县| 秦皇岛市| 武安市| 通州市| 绥滨县| 吉安县| 巴马| 林芝县| 辉县市| 陈巴尔虎旗| 七台河市| 屏南县| 富平县| 乃东县| 麻城市| 周口市| 湟源县| 三门县| 会泽县| 绵竹市| 正宁县| 新绛县| 蚌埠市| 临猗县| 富平县| 永丰县| 临西县| 遂平县| 常德市| 德州市| 临沧市| 平凉市| 健康|