一種多控磁盤陣列緩存鏡像方法及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計算機(jī)存儲系統(tǒng)技術(shù)領(lǐng)域,特別涉及一種多控磁盤陣列緩存鏡像方法及系統(tǒng)。
【背景技術(shù)】
[0002]磁盤陣列(RAID,RedundantArray of Inexpensive Disk,獨立磁盤冗余陣列,簡稱磁盤陣列)是1987年由美國加州大學(xué)伯克利分校提出計算機(jī)存儲技術(shù),該技術(shù)可通過將許多小容量磁盤,采用不同級別的冗余算法以實現(xiàn)更高的可靠性及讀寫性能。
[0003]磁盤陣列可劃分為JB0D、雙控制器、多控制器三種,如今JBOD已基本不見蹤跡,取而代之的是單控制器架構(gòu),單控制器架構(gòu)就是通過將服務(wù)器與JBOD相結(jié)合,整體作為一個存儲系統(tǒng)提供存儲服務(wù)。
[0004]多控磁盤陣列技術(shù)是提高磁盤陣列可靠性最為有效的手段之一,為保證各磁盤陣列控制器中緩存數(shù)據(jù)的一致性,需要將各控制器中的緩存之間建立鏡像關(guān)系,將控制器上產(chǎn)生的緩存數(shù)據(jù)同步鏡像到互為備份的其它控制器上,在緩存鏡像模型中,所有陣列控制器處于同等地位,即其中任何控制器對緩存的更改都會同步更新到其它控制器上。
[0005]當(dāng)前技術(shù)在實現(xiàn)多控磁盤陣列方面,由于控制器之間數(shù)據(jù)的并發(fā)訪問,很難同時保證高效的1并發(fā)處理和控制器數(shù)據(jù)高可靠性之間的統(tǒng)一。本發(fā)明通過設(shè)計的緩存鏡像方法及系統(tǒng),可有效保證各控制器緩存數(shù)據(jù)一致性,從而提供高效的并發(fā)1訪問速度。
【發(fā)明內(nèi)容】
[0006]本發(fā)明提出了一種多控磁盤陣列緩存鏡像方法及系統(tǒng),目的在于多控磁盤陣列中解決緩存數(shù)據(jù)一致性問題,為滿足平臺一致性的要求,選擇在SCST (SmalI ComputerSystem interface Target,小型計算機(jī)系統(tǒng)接口目標(biāo)器,簡稱SCST,用于提供統(tǒng)一的內(nèi)核與存儲后端連接接口子系統(tǒng))設(shè)備驅(qū)動中間層加入緩存鏡像模塊,緩存數(shù)據(jù)通過IBdnfiniBand,無限帶寬,簡稱IB,是一種新的I/O體系結(jié)構(gòu),它將I/O系統(tǒng)與復(fù)雜的CPU/Mem分開,采用基于通道的高速串行鏈路和可擴(kuò)展的光纖交換網(wǎng)絡(luò)替代共享總線結(jié)構(gòu),最高理論帶寬可達(dá)到120Gb/s,提供了高帶寬、低延遲、可擴(kuò)展的I/O互連,可來完成多個控制設(shè)備之間的緩沖通信,完成多個控制器之間緩存的高速同步)通道與鏡像緩存進(jìn)行高速同步,傳輸使用RDMA(Remote Direct Memory Access,全稱遠(yuǎn)程直接數(shù)據(jù)存取,可實現(xiàn)緩存鏡像數(shù)據(jù)的零拷貝,從而避免實時鏡像對鏡像端控制器性能造成的不利影響)協(xié)議以減少數(shù)據(jù)拷貝次數(shù),降低對系統(tǒng)性能的影響。
[0007]針對現(xiàn)有技術(shù)的不足,本發(fā)明提出一種多控磁盤陣列緩存鏡像方法,包括:
[0008]建立鏡像對步驟,初始化控制器,控制器包括本地緩存區(qū)與鏡像緩存區(qū),源控制器的本地緩存區(qū)與鏡像控制器的鏡像緩存區(qū)建立鏡像對;
[0009]寫入數(shù)據(jù)步驟,當(dāng)執(zhí)行數(shù)據(jù)寫入操作時,將數(shù)據(jù)寫入到本地緩存區(qū),同時將數(shù)據(jù)同步到與本地緩存區(qū)建立鏡像對的鏡像緩存區(qū)中;
[0010]讀取數(shù)據(jù)步驟,當(dāng)執(zhí)行數(shù)據(jù)讀取操作時,從本地緩存區(qū)讀取數(shù)據(jù)。
[0011]所述的多控磁盤陣列緩存鏡像方法,所述建立鏡像對步驟包括:
[0012]為每個控制器生成標(biāo)識ID,獲取所述鏡像控制器的標(biāo)識ID和鏡像對狀態(tài)信息;
[0013]檢查所述鏡像對狀態(tài)信息,若所述鏡像控制器存在空間鏡像緩存區(qū),則所述源控制器向所述鏡像控制器申請建立鏡像對,否則從所有控制器中選擇最先響應(yīng)的控制器,作為鏡像控制器,發(fā)送建立鏡像對請求;
[0014]解除最先響應(yīng)的控制器原有的鏡像對,并與所述源控制器建立鏡像對。
[0015]所述的并行多控磁盤陣列緩存鏡像方法,所述寫入數(shù)據(jù)步驟還包括:
[0016]更新所述鏡像控制器鏡像緩存區(qū)的鏡像緩存差異位圖;
[0017]若所述鏡像控制器的鏡像緩存區(qū)發(fā)生故障,則將所述鏡像控制器的鏡像緩存區(qū)的數(shù)據(jù)存儲到共享存儲設(shè)備中。
[0018]所述的多控磁盤陣列緩存鏡像方法,所述讀取數(shù)據(jù)步驟還包括:
[0019]若未能從所述源控制器的本地緩存區(qū)讀取數(shù)據(jù),則從所述共享存儲設(shè)備中讀取數(shù)據(jù),并更新所述鏡像緩存差異位圖。
[0020]所述的多控磁盤陣列緩存鏡像方法,還包括:
[0021]故障檢測處理步驟,所述源控制器向所述鏡像控制器發(fā)送狀態(tài)檢測命令;
[0022]若所述源控制器在檢測超時窗口內(nèi)獲取所述鏡像控制器的狀態(tài)正常響應(yīng),則所述鏡像控制器狀態(tài)正常,等待規(guī)定周期后,重新發(fā)送狀態(tài)檢測命令,否則設(shè)置所述鏡像控制器的狀態(tài)為鏡像丟失,并暫停緩存1操作流程,解除與所述源控制器的鏡像對,所述源控制器與其他控制器建立鏡像對;
[0023]恢復(fù)1操作流程,并將源控制器的狀態(tài)設(shè)置為鏡像正常;
[0024]將所述鏡像控制器的鏡像緩存區(qū)的數(shù)據(jù)存儲到共享存儲設(shè)備中,并將所述鏡像控制器的鏡像緩存區(qū)設(shè)置為空閑狀態(tài)。
[0025]本發(fā)明還提出一種多控磁盤陣列緩存鏡像系統(tǒng),包括:
[0026]建立鏡像對模塊,用于初始化控制器,控制器包括本地緩存區(qū)與鏡像緩存區(qū),源控制器的本地緩存區(qū)與鏡像控制器的鏡像緩存區(qū)建立鏡像對;
[0027]寫入數(shù)據(jù)模塊,用于當(dāng)執(zhí)行數(shù)據(jù)寫入操作時,將數(shù)據(jù)寫入到本地緩存區(qū),同時將數(shù)據(jù)同步到與本地緩存區(qū)建立鏡像對的鏡像緩存區(qū)中;
[0028]讀取數(shù)據(jù)模塊,用于當(dāng)執(zhí)行數(shù)據(jù)讀取操作時,從本地緩存區(qū)讀取數(shù)據(jù)。
[0029]所述的多控磁盤陣列緩存鏡像系統(tǒng),所述建立鏡像對模塊包括:
[0030]為每個控制器生成標(biāo)識ID,獲取所述鏡像控制器的標(biāo)識ID和鏡像對狀態(tài)信息;
[0031]檢查所述鏡像對狀態(tài)信息,若所述鏡像控制器存在空間鏡像緩存區(qū),則所述源控制器向所述鏡像控制器申請建立鏡像對,否則從所有控制器中選擇最先響應(yīng)的控制器,作為鏡像控制器,發(fā)送建立鏡像對請求;
[0032]解除最先響應(yīng)的控制器原有的鏡像對,并與所述源控制器建立鏡像對。
[0033]所述的多控磁盤陣列緩存鏡像系統(tǒng),所述寫入數(shù)據(jù)模塊還包括:用于更新所述鏡像控制器鏡像緩存區(qū)的鏡像緩存差異位圖;若所述鏡像控制器的鏡像緩存區(qū)發(fā)生故障,則將所述鏡像控制器的鏡像緩存區(qū)的數(shù)據(jù)存儲到共享存儲設(shè)備中。
[0034]所述的多控磁盤陣列緩存鏡像系統(tǒng),所述讀取數(shù)據(jù)模塊還包括:用于若未能從所述源控制器的本地緩存區(qū)讀取數(shù)據(jù),則從所述共享存儲設(shè)備中讀取數(shù)據(jù),并更新所述鏡像緩存差異位圖。
[0035]所述的多控磁盤陣列緩存鏡像系統(tǒng),還包括:
[0036]故障檢測處理模塊,用于所述源控制器向所述鏡像控制器發(fā)送狀態(tài)檢測命令;若所述源控制器在檢測超時窗口內(nèi)獲取所述鏡像控制器的狀態(tài)正常響應(yīng),則所述鏡像控制器狀態(tài)正常,等待規(guī)定周期后,重新發(fā)送狀態(tài)檢測命令,否則設(shè)置所述鏡像控制器的狀態(tài)為鏡像丟失,并暫停緩存1操作流程,解除與所述源控制器的鏡像對,所述源控制器與其他控制器建立鏡像對;恢復(fù)1操作流程,并將源控制器的狀態(tài)設(shè)置為鏡像正常;將所述鏡像控制器的鏡像緩存區(qū)的數(shù)據(jù)存儲到共享存儲設(shè)備中,并將所述鏡像控制器的鏡像緩存區(qū)設(shè)置為空閑狀態(tài)。
[0037]由以上方案可知,本發(fā)明的優(yōu)點在于:
[0038]通過在SCST設(shè)備驅(qū)動中間層加入緩存鏡像模塊,并在結(jié)合使用RDMA的零拷貝功能實現(xiàn)多控磁盤陣列緩存的鏡像實時同步,保證多控磁盤陣列數(shù)據(jù)的高可靠性,同時提高了多控磁盤陣列系統(tǒng)并發(fā)1性能。
【附圖說明】
[0039]圖1為本發(fā)明的流程圖;
[0040]圖2為本發(fā)明的緩存鏡像技術(shù)總體方案圖;
[0041]圖3為本發(fā)明的緩存鏡像關(guān)系圖;
[0042]圖4為本發(fā)明的控制器動態(tài)加入前圖;
[0043]圖5為本發(fā)明的控制器動態(tài)加入后圖;
[0044]圖6為本發(fā)明的寫操作流程圖;
[0045