基于raid1和raid4混合結(jié)構(gòu)轉(zhuǎn)換過(guò)程數(shù)據(jù)可靠性保證方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)存儲(chǔ)領(lǐng)域,尤其涉及基于RAIDl和RAID4混合結(jié)構(gòu)轉(zhuǎn)換過(guò)程數(shù)據(jù)可靠性保證裝置。
【背景技術(shù)】
[0002]RAID(獨(dú)立冗余磁盤陣列)技術(shù)是一種提供增強(qiáng)冗余、容量和存儲(chǔ)性能的存儲(chǔ)方法,有著較強(qiáng)的可管理性、可靠性和可用性。通過(guò)冗余計(jì)算,RAID技術(shù)能夠在滿足可靠性要求的前提下降低系統(tǒng)的容量開(kāi)銷,將RAID技術(shù)應(yīng)用于網(wǎng)絡(luò)存儲(chǔ)系統(tǒng)的研究經(jīng)歷了從集中式控制到分布式控制,從單一 RAID模式到混合RAID模式的發(fā)展過(guò)程,RAIDl技術(shù)具有高可靠性,RAIDl鏡像使得寫操作能有兩份數(shù)據(jù),即使其中一個(gè)節(jié)點(diǎn)故障,副本也能保證有一份正確的數(shù)據(jù),RAID4冗余技術(shù)占用較少的冗余空間存儲(chǔ)校驗(yàn)信息,能夠容忍任意單節(jié)點(diǎn)故障,并可以通過(guò)其他節(jié)點(diǎn)的數(shù)據(jù)和校驗(yàn)信息恢復(fù)丟失的數(shù)據(jù),系統(tǒng)可靠性比較好。
[0003]在大規(guī)模網(wǎng)絡(luò)存儲(chǔ)系統(tǒng)中需要考慮復(fù)雜網(wǎng)絡(luò)環(huán)境對(duì)性能的影響,所以一些存儲(chǔ)系統(tǒng)采用混合RAID模式。AutoRAID將最近使用的數(shù)據(jù)放在以RAIDl存儲(chǔ)的高性能的硬盤中,將不太常用的數(shù)據(jù)放在以RAID5存儲(chǔ)的經(jīng)濟(jì)高效的硬盤中。DPGADR使用了與AutoRAID相似的結(jié)構(gòu),但更適用于分布式網(wǎng)絡(luò)存儲(chǔ)環(huán)境,采用復(fù)制和延遲校驗(yàn)塊生成的方法提高系統(tǒng)性能。專利號(hào)為201410033455.3的中國(guó)專利——《RAID1和RAID4混合結(jié)構(gòu)網(wǎng)絡(luò)存儲(chǔ)系統(tǒng)及方法》提供了在后端的冗余管理節(jié)點(diǎn)對(duì)數(shù)據(jù)節(jié)點(diǎn)進(jìn)行集中冗余管理的方法,將冗余管理節(jié)點(diǎn)從數(shù)據(jù)通道的前端移到存儲(chǔ)設(shè)備的后端,使得讀寫請(qǐng)求可以直接訪問(wèn)存儲(chǔ)節(jié)點(diǎn),減少了冗余計(jì)算對(duì)系統(tǒng)寫性能的影響。
[0004]AutoRAID中RAIDl與RAID5數(shù)據(jù)是分離存儲(chǔ)的,在網(wǎng)絡(luò)環(huán)境下將大批數(shù)據(jù)從RAIDl迀移到RAID5上,會(huì)帶來(lái)巨大的網(wǎng)絡(luò)帶寬和磁盤帶寬消耗,不適合在分布式環(huán)境下使用。而DPGADR中RAID5部分是降級(jí)方式存儲(chǔ),冷數(shù)據(jù)的讀寫性能較差。專利號(hào)為201410033455.3的中國(guó)專利——《RAID1和RAID4混合結(jié)構(gòu)網(wǎng)絡(luò)存儲(chǔ)系統(tǒng)及方法》提出的后端冗余集中管理方式解決了集中式冗余管理方式性能瓶頸的問(wèn)題,但數(shù)據(jù)同步過(guò)程和寫I/o操作會(huì)相互影響,無(wú)法保證RAIDl數(shù)據(jù)轉(zhuǎn)換成RAID4數(shù)據(jù)過(guò)程中數(shù)據(jù)的一致性。
[0005]基于上述分析混合RAID結(jié)構(gòu)網(wǎng)絡(luò)存儲(chǔ)技術(shù)在目前還存在以下局限:數(shù)據(jù)轉(zhuǎn)換過(guò)程影響寫I/O操作,無(wú)法保證數(shù)據(jù)轉(zhuǎn)換的一致性。
[0006]針對(duì)以上考慮,本發(fā)明在中國(guó)專利《RAID1和RAID4混合結(jié)構(gòu)網(wǎng)絡(luò)存儲(chǔ)系統(tǒng)及方法》基礎(chǔ)上(系統(tǒng)結(jié)構(gòu)如圖示I和圖示2),提出一種基于RAIDl和RAID4混合結(jié)構(gòu)的轉(zhuǎn)換過(guò)程數(shù)據(jù)一致性保證方法。
【發(fā)明內(nèi)容】
[0007]針對(duì)現(xiàn)有技術(shù)的不足,本發(fā)明提出一種基于RAIDl和RAID4混合結(jié)構(gòu)轉(zhuǎn)換過(guò)程數(shù)據(jù)可靠性保證裝置。
[0008]本發(fā)明提出一種基于RAIDl和RAID4混合結(jié)構(gòu)轉(zhuǎn)換過(guò)程數(shù)據(jù)可靠性保證方法,包括:
[0009]掛起步驟,獲取校驗(yàn)節(jié)點(diǎn)中BRD的占用空間值,當(dāng)所述占用空間值達(dá)到設(shè)定閾值時(shí),將所述BRD所在的區(qū)域加入suspend_area列表,將所述區(qū)域轉(zhuǎn)換為對(duì)應(yīng)的多個(gè)數(shù)據(jù)節(jié)點(diǎn)的子區(qū)域,并向所述子區(qū)域發(fā)送掛起操作請(qǐng)求,所述數(shù)據(jù)節(jié)點(diǎn)收到所述掛起操作請(qǐng)求后,掛起所述子區(qū)域的寫請(qǐng)求;
[0010]轉(zhuǎn)換步驟,對(duì)所述子區(qū)域的數(shù)據(jù)進(jìn)行RAID4校驗(yàn)計(jì)算,生成的校驗(yàn)數(shù)據(jù)寫入邏輯卷設(shè)備,并向所述數(shù)據(jù)節(jié)點(diǎn)發(fā)送重映射請(qǐng)求,所述數(shù)據(jù)節(jié)點(diǎn)將所述子區(qū)域的所述BRD重映射到ARP,以完成數(shù)據(jù)轉(zhuǎn)換。
[0011 ] 所述的基于RAIDl和RAID4混合結(jié)構(gòu)轉(zhuǎn)換過(guò)程數(shù)據(jù)可靠性保證方法,所述轉(zhuǎn)換步驟包括:對(duì)成功執(zhí)行掛起操作的子區(qū)域進(jìn)行RAID4校驗(yàn)計(jì)算,并向所述成功執(zhí)行掛起操作的子區(qū)域所屬的數(shù)據(jù)節(jié)點(diǎn)發(fā)送重映射請(qǐng)求。
[0012]所述的基于RAIDl和RAID4混合結(jié)構(gòu)轉(zhuǎn)換過(guò)程數(shù)據(jù)可靠性保證方法,所述掛起步驟還包括:通過(guò)多任務(wù)并發(fā)向?qū)?yīng)的數(shù)據(jù)節(jié)點(diǎn)發(fā)送子區(qū)域的掛起操作。
[0013]所述的基于RAIDl和RAID4混合結(jié)構(gòu)轉(zhuǎn)換過(guò)程數(shù)據(jù)可靠性保證方法,所述掛起步驟還包括:若此時(shí)所述子區(qū)域存在寫請(qǐng)求正在執(zhí)行,則等待所有寫請(qǐng)求結(jié)束后,進(jìn)入所述轉(zhuǎn)換步驟。
[0014]所述的基于RAIDl和RAID4混合結(jié)構(gòu)轉(zhuǎn)換過(guò)程數(shù)據(jù)可靠性保證方法,還包括復(fù)位步驟:所述數(shù)據(jù)節(jié)點(diǎn)完成重映射操作后,將所述BRD所在的區(qū)域從所述suspend_area鏈表中移除;將所述數(shù)據(jù)節(jié)點(diǎn)中被掛起的所述子區(qū)域的寫請(qǐng)求進(jìn)行下發(fā)。
[0015]本發(fā)明還提出一種基于RAIDl和RAID4混合結(jié)構(gòu)轉(zhuǎn)換過(guò)程數(shù)據(jù)可靠性保證裝置,包括:
[0016]掛起模塊,用于獲取校驗(yàn)節(jié)點(diǎn)中BRD的占用空間值,當(dāng)所述占用空間值達(dá)到設(shè)定閾值時(shí),將所述BRD所在的區(qū)域加入suspend_area列表,將所述區(qū)域轉(zhuǎn)換為對(duì)應(yīng)的多個(gè)數(shù)據(jù)節(jié)點(diǎn)的子區(qū)域,并向所述子區(qū)域發(fā)送掛起操作請(qǐng)求,所述數(shù)據(jù)節(jié)點(diǎn)收到所述掛起操作請(qǐng)求后,掛起所述子區(qū)域的寫請(qǐng)求;
[0017]轉(zhuǎn)換模塊,用于對(duì)所述子區(qū)域的數(shù)據(jù)進(jìn)行RAID4校驗(yàn)計(jì)算,生成的校驗(yàn)數(shù)據(jù)寫入邏輯卷設(shè)備,并向所述數(shù)據(jù)節(jié)點(diǎn)發(fā)送重映射請(qǐng)求,所述數(shù)據(jù)節(jié)點(diǎn)將所述子區(qū)域的所述BRD重映射到ARP,以完成數(shù)據(jù)轉(zhuǎn)換。
[0018]所述的基于RAIDl和RAID4混合結(jié)構(gòu)轉(zhuǎn)換過(guò)程數(shù)據(jù)可靠性保證裝置,所述掛起模塊還包括:通過(guò)多任務(wù)并發(fā)向?qū)?yīng)的數(shù)據(jù)節(jié)點(diǎn)發(fā)送子區(qū)域的掛起操作。
[0019]所述的基于RAIDl和RAID4混合結(jié)構(gòu)轉(zhuǎn)換過(guò)程數(shù)據(jù)可靠性保證裝置,所述轉(zhuǎn)換模塊包括:對(duì)成功執(zhí)行掛起操作的子區(qū)域進(jìn)行RAID4校驗(yàn)計(jì)算,并向所述成功執(zhí)行掛起操作的子區(qū)域所屬的數(shù)據(jù)節(jié)點(diǎn)發(fā)送重映射請(qǐng)求。
[0020]所述的基于RAIDl和RAID4混合結(jié)構(gòu)轉(zhuǎn)換過(guò)程數(shù)據(jù)可靠性保證裝置,所述掛起模塊還包括:若此時(shí)所述子區(qū)域存在寫請(qǐng)求正在執(zhí)行,則等待所有寫請(qǐng)求結(jié)束后,執(zhí)行所述轉(zhuǎn)換模塊。
[0021]所述的基于RAIDl和RAID4混合結(jié)構(gòu)轉(zhuǎn)換過(guò)程數(shù)據(jù)可靠性保證裝置,還包括復(fù)位模塊,用于所述數(shù)據(jù)節(jié)點(diǎn)完成重映射操作后,將所述BRD所在的區(qū)域從所述suspencLarea鏈表中移除;將所述數(shù)據(jù)節(jié)點(diǎn)中被掛起的所述子區(qū)域的寫請(qǐng)求進(jìn)行下發(fā)。
[0022]由以上發(fā)明可知,本發(fā)明的優(yōu)點(diǎn)在于:
[0023]本發(fā)明降低RAIDl向RAID4轉(zhuǎn)換的過(guò)程與I/O操作在短時(shí)間內(nèi)互相影響的概率,確保轉(zhuǎn)換流程與寫I/O操作的異步化程度;
[0024]在不影響寫I/O性能的前提下,保證了 Rl到R4轉(zhuǎn)換的數(shù)據(jù)一致性。
【附圖說(shuō)明】
[0025]圖1為RAIDl和RAID4混合結(jié)構(gòu)的冗余組示意圖;
[0026]圖2為冗余組內(nèi)混合RAID的系統(tǒng)結(jié)構(gòu)圖;
[0027]圖3為數(shù)據(jù)節(jié)點(diǎn)suspend操作流程示意圖;
[0028]圖4為數(shù)據(jù)節(jié)點(diǎn)resume操作流程示意圖;
[0029]圖5為校驗(yàn)節(jié)點(diǎn)發(fā)送suspend和resume操作流程示意圖;
[0030]圖6為數(shù)據(jù)節(jié)點(diǎn)寫請(qǐng)求下發(fā)查詢流程示意圖;
[0031]圖7為轉(zhuǎn)換流程suspend階段流程示意圖;
[0032]圖8為轉(zhuǎn)換流程轉(zhuǎn)換階段流程示意圖;
[0033]圖9為轉(zhuǎn)換流程resume階段流程示意圖。
【具體實(shí)施方式】
[0034]以下為本發(fā)明方法的具體步驟,如下所示:
[0035]掛起步驟,獲取校驗(yàn)節(jié)點(diǎn)中BRD的占用空間值,當(dāng)所述占用空間值達(dá)到設(shè)定閾值時(shí),將所述BRD所在的區(qū)域加入suspend_area列表,將所述區(qū)域轉(zhuǎn)換為對(duì)應(yīng)的多個(gè)數(shù)據(jù)節(jié)點(diǎn)的子區(qū)域,并向所述子區(qū)域發(fā)送掛起操作請(qǐng)求,所述數(shù)據(jù)節(jié)點(diǎn)收到所述掛起操作請(qǐng)求后,掛起所述子區(qū)域的寫請(qǐng)求;
[0036]轉(zhuǎn)換步驟,對(duì)所述子區(qū)域的數(shù)據(jù)進(jìn)行RAID4校驗(yàn)計(jì)算,生成的校驗(yàn)數(shù)據(jù)寫入邏輯卷設(shè)備,并向所述數(shù)據(jù)節(jié)點(diǎn)發(fā)送重映射請(qǐng)求,所述數(shù)據(jù)節(jié)點(diǎn)將所述子區(qū)域的所述BRD重映射到ARP,以完成數(shù)據(jù)轉(zhuǎn)換。
[0037]所述轉(zhuǎn)換步驟包括:對(duì)成功執(zhí)行掛起操作的子區(qū)域進(jìn)行RAID4校驗(yàn)計(jì)算,并向所述成功執(zhí)行掛起操作的子區(qū)域所屬的數(shù)據(jù)節(jié)點(diǎn)發(fā)送重映射請(qǐng)求。
[0038]所述掛起步驟還包括:通過(guò)多任務(wù)并發(fā)向?qū)?yīng)的數(shù)據(jù)節(jié)點(diǎn)發(fā)送子區(qū)域的掛起操作。
[0039]所述掛起步驟還包括:若此時(shí)所述子區(qū)域存在寫請(qǐng)求正在執(zhí)行,則等待所有寫請(qǐng)求結(jié)束后,進(jìn)入所述轉(zhuǎn)換步驟。
[0040]還包括復(fù)位步驟:所述數(shù)據(jù)節(jié)點(diǎn)完成重映射操作后,將所述BRD所在的區(qū)域從所述suspend_area鏈表中移除;將所述數(shù)據(jù)節(jié)點(diǎn)中被掛起的所述子區(qū)域的寫請(qǐng)求進(jìn)行下發(fā)。
[0041]本發(fā)明裝置包括以下模塊,如下所示:
[0042]掛起模塊,用于獲取校驗(yàn)節(jié)點(diǎn)中BRD的占用空間值,當(dāng)所述占用空間值達(dá)到設(shè)定閾值時(shí),將所述BRD所在的區(qū)域加入suspend_area列表,將所述區(qū)域轉(zhuǎn)換為對(duì)應(yīng)的多個(gè)數(shù)據(jù)節(jié)點(diǎn)的子區(qū)域,并向所述子區(qū)域發(fā)送掛起操作請(qǐng)求,所述數(shù)據(jù)節(jié)點(diǎn)收到所述掛起操作請(qǐng)求后,掛起所述子區(qū)域的寫請(qǐng)求;
[0043]轉(zhuǎn)換模塊,用于對(duì)所述子區(qū)域的數(shù)據(jù)進(jìn)行RAID4校驗(yàn)計(jì)算,生成的校驗(yàn)數(shù)據(jù)寫入邏輯卷設(shè)備,并向所