專利名稱:一種磁盤(pán)陣列緩存數(shù)據(jù)的保存方法以及磁盤(pán)陣列的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及磁盤(pán)陣列數(shù)據(jù)處理技術(shù),尤其涉及一種磁盤(pán)陣列緩存數(shù)據(jù)的保存方法 以及磁盤(pán)陣列。
背景技術(shù):
在實(shí)際應(yīng)用中對(duì)大容量存儲(chǔ)的需求促使了磁盤(pán)陣列產(chǎn)品的誕生。隨著互聯(lián)網(wǎng)的普 及以及信息容量需求爆炸性的發(fā)展,磁盤(pán)陣列的需求日益擴(kuò)大,同時(shí)磁盤(pán)陣列也從單控向 多控的方向發(fā)展。在保證正常性能的前提下,磁盤(pán)陣列中多控制器中任一控制器發(fā)生意外 故障時(shí),如何保證控制器的內(nèi)存數(shù)據(jù)的不丟失以及如何保證正常的數(shù)據(jù)處理是需要解決的 問(wèn)題。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問(wèn)題是提供一種磁盤(pán)陣列緩存數(shù)據(jù)的保存方法以及磁盤(pán)陣 列,在磁盤(pán)陣列中控制器意外故障時(shí),保證內(nèi)存的數(shù)據(jù)的安全性。為了解決上述技術(shù)問(wèn)題,本發(fā)明提供了一種磁盤(pán)陣列,包括用于獲取寫(xiě)數(shù)據(jù)的輸 入數(shù)據(jù)截獲模塊,以及多個(gè)控制器,以及連接于輸入數(shù)據(jù)截獲模塊和控制器之間的通信模 塊,每個(gè)控制器與其它控制器均相連(可以通過(guò)IB (InfiniBand)網(wǎng)絡(luò)互聯(lián));所述磁盤(pán)陣列 還包括與各控制器均相連的數(shù)據(jù)刷新模塊;所述數(shù)據(jù)刷新模塊與磁盤(pán)陣列中的磁盤(pán)相連; 所述通信模塊,用于將一控制器的輸入數(shù)據(jù)寫(xiě)入此控制器的緩存模塊,并將此控制器的輸 入數(shù)據(jù)鏡像到此控制器的鏡像控制器的緩存模塊中;所述控制器,用于作為另一控制器稱 為目標(biāo)控制器的鏡像控制器時(shí),檢測(cè)到所述目標(biāo)控制器的狀態(tài)從有效狀態(tài)轉(zhuǎn)換為無(wú)效狀態(tài) 時(shí),向數(shù)據(jù)刷新模塊發(fā)送針對(duì)此目標(biāo)控制器進(jìn)行數(shù)據(jù)保存的指示;所述數(shù)據(jù)刷新模塊,用于 收到所述指示后,將所述鏡像控制器的緩存模塊中緩存的所述目標(biāo)控制器的輸入數(shù)據(jù)刷新 到磁盤(pán)上保存。進(jìn)一步地,上述磁盤(pán)陣列還可以具有以下特點(diǎn)
所述控制器,還用于作為另一控制器稱為目標(biāo)控制器的鏡像控制器時(shí),檢測(cè)到所述目 標(biāo)控制器的狀態(tài)從有效狀態(tài)轉(zhuǎn)換為無(wú)效狀態(tài)時(shí),根據(jù)已緩存的所述目標(biāo)控制器的鏡像數(shù)據(jù) 接管所述目標(biāo)控制器的數(shù)據(jù)處理功能。進(jìn)一步地,上述磁盤(pán)陣列還可以具有以下特點(diǎn)
所述通信模塊,還用于使用遠(yuǎn)程直接數(shù)據(jù)存取方式將控制器的輸入數(shù)據(jù)寫(xiě)入此控制器 的緩存模塊。進(jìn)一步地,上述磁盤(pán)陣列還可以具有以下特點(diǎn)
所述磁盤(pán)陣列還包括與所述數(shù)據(jù)刷新模塊相連的管理模塊,所述管理模塊,用于對(duì)所 述數(shù)據(jù)刷新模塊進(jìn)行將數(shù)據(jù)刷新到所述磁盤(pán)的功能設(shè)置。進(jìn)一步地,上述磁盤(pán)陣列還可以具有以下特點(diǎn)
控制器的鏡像控制器是所述磁盤(pán)陣列中除此控制器之外的任一控制器。
為了解決上述技術(shù)問(wèn)題,本發(fā)明還提供了一種磁盤(pán)陣列緩存數(shù)據(jù)的保存方法,包 括將磁盤(pán)陣列中控制器的輸入數(shù)據(jù)寫(xiě)入相應(yīng)控制器的緩存模塊,并將控制器的輸入數(shù)據(jù) 鏡像到此控制器的鏡像控制器的緩存模塊中,一控制器稱為目標(biāo)控制器的鏡像控制器檢測(cè) 到所述目標(biāo)控制器的狀態(tài)從有效狀態(tài)轉(zhuǎn)換為無(wú)效狀態(tài)時(shí),通過(guò)數(shù)據(jù)刷新模塊將所述鏡像控 制器的緩存模塊中緩存的所述目標(biāo)控制器的輸入數(shù)據(jù)刷新到磁盤(pán)上保存。進(jìn)一步地,上述方法還可以具有以下特點(diǎn)
所述鏡像控制器檢測(cè)到所述目標(biāo)控制器的狀態(tài)從有效狀態(tài)轉(zhuǎn)換為無(wú)效狀態(tài)時(shí),根據(jù)已 緩存的所述目標(biāo)控制器的鏡像數(shù)據(jù)接管所述目標(biāo)控制器的數(shù)據(jù)處理功能。進(jìn)一步地,上述方法還可以具有以下特點(diǎn)
使用遠(yuǎn)程直接數(shù)據(jù)存取方式將控制器的輸入數(shù)據(jù)寫(xiě)入此控制器的鏡像控制器的緩存 模塊。進(jìn)一步地,上述方法還可以具有以下特點(diǎn)
在磁盤(pán)陣列初始化時(shí),對(duì)所述數(shù)據(jù)刷新模塊進(jìn)行將數(shù)據(jù)刷新到所述磁盤(pán)的功能設(shè)置。進(jìn)一步地,上述方法還可以具有以下特點(diǎn)
控制器的鏡像控制器是所述磁盤(pán)陣列中除此控制器之外的任一控制器。本發(fā)明通過(guò)對(duì)控制器的緩存數(shù)據(jù)進(jìn)行鏡像,在磁盤(pán)陣列中控制器意外故障時(shí),保 證內(nèi)存的數(shù)據(jù)的安全性以及正常的數(shù)據(jù)處理功能。
圖1是實(shí)施例中磁盤(pán)陣列的結(jié)構(gòu)示意圖。
具體實(shí)施例方式如圖1所示,磁盤(pán)陣列包括用于獲取寫(xiě)數(shù)據(jù)的輸入數(shù)據(jù)截獲模塊,以及多個(gè)控制 器(圖1中以N個(gè)作為示例),以及連接于輸入數(shù)據(jù)截獲模塊和控制器之間的通信模塊,每個(gè) 控制器與其它控制器均相連。磁盤(pán)陣列還包括與各控制器均相連的數(shù)據(jù)刷新模塊;數(shù)據(jù)刷 新模塊與磁盤(pán)陣列中的磁盤(pán)相連。通信模塊用于將一控制器的輸入數(shù)據(jù)寫(xiě)入此控制器的緩存模塊,并將此控制器的 輸入數(shù)據(jù)鏡像到此控制器的鏡像控制器的緩存模塊中;
控制器用于作為另一控制器稱為目標(biāo)控制器的鏡像控制器時(shí),檢測(cè)到所述目標(biāo)控制器 的狀態(tài)從有效狀態(tài)轉(zhuǎn)換為無(wú)效狀態(tài)時(shí),向數(shù)據(jù)刷新模塊發(fā)送針對(duì)此目標(biāo)控制器進(jìn)行數(shù)據(jù)保 存的指示;
數(shù)據(jù)刷新模塊用于收到所述指示后,將所述鏡像控制器的緩存模塊中緩存的所述目標(biāo) 控制器的輸入數(shù)據(jù)刷新到磁盤(pán)上保存。其中,控制器的鏡像控制器是所述磁盤(pán)陣列中除此控制器之外的任一控制器。其中,輸入數(shù)據(jù)截獲模塊通過(guò)ISCSI協(xié)議、FC協(xié)議等截獲發(fā)起端(initiator)的讀 寫(xiě)數(shù)據(jù)。上述磁盤(pán)陣列可以在磁盤(pán)陣列中控制器意外故障時(shí),保證內(nèi)存的數(shù)據(jù)的安全性??刂破鬟€用于作為另一控制器稱為目標(biāo)控制器的鏡像控制器時(shí),檢測(cè)到所述目標(biāo) 控制器的狀態(tài)從有效狀態(tài)轉(zhuǎn)換為無(wú)效狀態(tài)時(shí),根據(jù)已緩存的所述目標(biāo)控制器的鏡像數(shù)據(jù)接管所述目標(biāo)控制器的數(shù)據(jù)處理功能。鏡像控制器通過(guò)目標(biāo)控制器的鏡像數(shù)據(jù)接管目標(biāo)控制器的數(shù)據(jù)處理功能,可以在 目標(biāo)控制器故障的情況下,提供正常的數(shù)據(jù)處理功能。通信模塊還用于使用遠(yuǎn)程直接數(shù)據(jù)存取(Remote Direct Memory Access,簡(jiǎn)稱 RDMA)方式將控制器的輸入數(shù)據(jù)寫(xiě)入此控制器的緩存模塊。此種方式的寫(xiě)操作在磁盤(pán)陣列 內(nèi)部進(jìn)行處理,無(wú)需占用控制此磁盤(pán)陣列的控制中心(CPU)的處理資源。磁盤(pán)陣列還包括與所述數(shù)據(jù)刷新模塊相連的管理模塊,所述管理模塊用于對(duì)所述 數(shù)據(jù)刷新模塊進(jìn)行將數(shù)據(jù)刷新到所述磁盤(pán)的功能設(shè)置。此管理模塊屬于應(yīng)用層的模塊。控制器還對(duì)緩存的數(shù)據(jù)使用哈希和雙鏈表的方式進(jìn)行快速索引,以便能夠快速查 找相應(yīng)數(shù)據(jù)。對(duì)應(yīng)于上述磁盤(pán)陣列,磁盤(pán)陣列數(shù)據(jù)的保存方法包括將磁盤(pán)陣列中控制器的輸 入數(shù)據(jù)寫(xiě)入相應(yīng)控制器的緩存模塊,并將控制器的輸入數(shù)據(jù)鏡像到此控制器的鏡像控制器 的緩存模塊中,一控制器稱為目標(biāo)控制器的鏡像控制器檢測(cè)到所述目標(biāo)控制器的狀態(tài)從有 效狀態(tài)轉(zhuǎn)換為無(wú)效狀態(tài)時(shí),通過(guò)數(shù)據(jù)刷新模塊將所述鏡像控制器的緩存模塊中緩存的所述 目標(biāo)控制器的輸入數(shù)據(jù)刷新到磁盤(pán)上保存。其中,控制器的鏡像控制器是所述磁盤(pán)陣列中除此控制器之外的任一控制器。上述方法可以在磁盤(pán)陣列中控制器意外故障時(shí),保證內(nèi)存的數(shù)據(jù)的安全性。上述方法還包括鏡像控制器檢測(cè)到所述目標(biāo)控制器的狀態(tài)從有效狀態(tài)轉(zhuǎn)換為 無(wú)效狀態(tài)時(shí),根據(jù)已緩存的所述目標(biāo)控制器的鏡像數(shù)據(jù)接管所述目標(biāo)控制器的數(shù)據(jù)處理功 能。鏡像控制器通過(guò)目標(biāo)控制器的鏡像數(shù)據(jù)接管目標(biāo)控制器的數(shù)據(jù)處理功能,可以在目標(biāo) 控制器故障的情況下,提供正常的數(shù)據(jù)處理功能。上述方法中使用遠(yuǎn)程直接數(shù)據(jù)存取方式將控制器的輸入數(shù)據(jù)寫(xiě)入此控制器的緩 存模塊。上述方法中,在磁盤(pán)陣列初始化時(shí),對(duì)所述數(shù)據(jù)刷新模塊進(jìn)行將數(shù)據(jù)刷新到所述 磁盤(pán)的功能設(shè)置。本發(fā)明可以磁盤(pán)陣列中的數(shù)據(jù)保存的可靠性,從而提高數(shù)據(jù)存儲(chǔ)的安全性,避免 意外故障造成的數(shù)據(jù)丟失,并提高磁盤(pán)陣列整體的抗故障能力。需要說(shuō)明的是,在不沖突的情況下,本申請(qǐng)中的實(shí)施例及實(shí)施例中的特征可以相
互任意組合。當(dāng)然,本發(fā)明還可有其他多種實(shí)施例,在不背離本發(fā)明精神及其實(shí)質(zhì)的情況下,熟 悉本領(lǐng)域的技術(shù)人員可根據(jù)本發(fā)明作出各種相應(yīng)的改變和變形,但這些相應(yīng)的改變和變形 都應(yīng)屬于本發(fā)明所附的權(quán)利要求的保護(hù)范圍。本領(lǐng)域普通技術(shù)人員可以理解上述方法中的全部或部分步驟可通過(guò)程序來(lái)指令 相關(guān)硬件完成,所述程序可以存儲(chǔ)于計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,如只讀存儲(chǔ)器、磁盤(pán)或光盤(pán) 等。可選地,上述實(shí)施例的全部或部分步驟也可以使用一個(gè)或多個(gè)集成電路來(lái)實(shí)現(xiàn)。相應(yīng) 地,上述實(shí)施例中的各模塊/單元可以采用硬件的形式實(shí)現(xiàn),也可以采用軟件功能模塊的 形式實(shí)現(xiàn)。本發(fā)明不限制于任何特定形式的硬件和軟件的結(jié)合。
權(quán)利要求
1.一種磁盤(pán)陣列,包括用于獲取寫(xiě)數(shù)據(jù)的輸入數(shù)據(jù)截獲模塊,以及多個(gè)控制器,以及連 接于輸入數(shù)據(jù)截獲模塊和控制器之間的通信模塊,每個(gè)控制器與其它控制器均相連;其特 征在于,所述磁盤(pán)陣列還包括與各控制器均相連的數(shù)據(jù)刷新模塊;所述數(shù)據(jù)刷新模塊與磁盤(pán)陣 列中的磁盤(pán)相連;所述通信模塊,用于將一控制器的輸入數(shù)據(jù)寫(xiě)入此控制器的緩存模塊,并將此控制器 的輸入數(shù)據(jù)鏡像到此控制器的鏡像控制器的緩存模塊中;所述控制器,用于作為另一控制器稱為目標(biāo)控制器的鏡像控制器時(shí),檢測(cè)到所述目標(biāo) 控制器的狀態(tài)從有效狀態(tài)轉(zhuǎn)換為無(wú)效狀態(tài)時(shí),向數(shù)據(jù)刷新模塊發(fā)送針對(duì)此目標(biāo)控制器進(jìn)行 數(shù)據(jù)保存的指示;所述數(shù)據(jù)刷新模塊,用于收到所述指示后,將所述鏡像控制器的緩存模塊中緩存的所 述目標(biāo)控制器的輸入數(shù)據(jù)刷新到磁盤(pán)上保存。
2.如權(quán)利要求1所述的磁盤(pán)陣列,其特征在于,所述控制器,還用于作為另一控制器稱為目標(biāo)控制器的鏡像控制器時(shí),檢測(cè)到所述目 標(biāo)控制器的狀態(tài)從有效狀態(tài)轉(zhuǎn)換為無(wú)效狀態(tài)時(shí),根據(jù)已緩存的所述目標(biāo)控制器的鏡像數(shù)據(jù) 接管所述目標(biāo)控制器的數(shù)據(jù)處理功能。
3.如權(quán)利要求1所述的磁盤(pán)陣列,其特征在于,所述通信模塊,還用于使用遠(yuǎn)程直接數(shù)據(jù)存取方式將控制器的輸入數(shù)據(jù)寫(xiě)入此控制器 的緩存模塊。
4.如權(quán)利要求1所述的磁盤(pán)陣列,其特征在于,所述磁盤(pán)陣列還包括與所述數(shù)據(jù)刷新模塊相連的管理模塊,所述管理模塊,用于對(duì)所述數(shù)據(jù)刷新模塊進(jìn)行將數(shù)據(jù)刷新到所述磁盤(pán)的功能設(shè)置。
5.如權(quán)利要求1所述的磁盤(pán)陣列,其特征在于,控制器的鏡像控制器是所述磁盤(pán)陣列中除此控制器之外的任一控制器。
6.一種磁盤(pán)陣列緩存數(shù)據(jù)的保存方法,其特征在于,將磁盤(pán)陣列中控制器的輸入數(shù)據(jù)寫(xiě)入相應(yīng)控制器的緩存模塊,并將控制器的輸入數(shù)據(jù) 鏡像到此控制器的鏡像控制器的緩存模塊中,一控制器稱為目標(biāo)控制器的鏡像控制器檢測(cè) 到所述目標(biāo)控制器的狀態(tài)從有效狀態(tài)轉(zhuǎn)換為無(wú)效狀態(tài)時(shí),通過(guò)數(shù)據(jù)刷新模塊將所述鏡像控 制器的緩存模塊中緩存的所述目標(biāo)控制器的輸入數(shù)據(jù)刷新到磁盤(pán)上保存。
7.如權(quán)利要求6所述的方法,其特征在于,所述鏡像控制器檢測(cè)到所述目標(biāo)控制器的狀態(tài)從有效狀態(tài)轉(zhuǎn)換為無(wú)效狀態(tài)時(shí),根據(jù)已 緩存的所述目標(biāo)控制器的鏡像數(shù)據(jù)接管所述目標(biāo)控制器的數(shù)據(jù)處理功能。
8.如權(quán)利要求6所述的方法,其特征在于,使用遠(yuǎn)程直接數(shù)據(jù)存取方式將控制器的輸入數(shù)據(jù)寫(xiě)入此控制器的鏡像控制器的緩存 模塊。
9.如權(quán)利要求6所述的方法,其特征在于,在磁盤(pán)陣列初始化時(shí),對(duì)所述數(shù)據(jù)刷新模塊進(jìn)行將數(shù)據(jù)刷新到所述磁盤(pán)的功能設(shè)置。
10.如權(quán)利要求6所述的方法,其特征在于,控制器的鏡像控制器是所述磁盤(pán)陣列中除此控制器之外的任一控制器。
全文摘要
本發(fā)明公開(kāi)了一種磁盤(pán)陣列緩存數(shù)據(jù)的保存方法以及磁盤(pán)陣列,此方法包括將磁盤(pán)陣列中控制器的輸入數(shù)據(jù)寫(xiě)入相應(yīng)控制器的緩存模塊,并將控制器的輸入數(shù)據(jù)鏡像到此控制器的鏡像控制器的緩存模塊中,一控制器稱為目標(biāo)控制器的鏡像控制器檢測(cè)到所述目標(biāo)控制器的狀態(tài)從有效狀態(tài)轉(zhuǎn)換為無(wú)效狀態(tài)時(shí),通過(guò)數(shù)據(jù)刷新模塊將所述鏡像控制器的緩存模塊中緩存的所述目標(biāo)控制器的輸入數(shù)據(jù)刷新到磁盤(pán)上保存。本發(fā)明通過(guò)對(duì)控制器的緩存數(shù)據(jù)進(jìn)行鏡像,在磁盤(pán)陣列中控制器意外故障時(shí),保證內(nèi)存的數(shù)據(jù)的安全性以及正常的數(shù)據(jù)處理功能。
文檔編號(hào)G06F11/14GK102122257SQ20111005841
公開(kāi)日2011年7月13日 申請(qǐng)日期2011年3月11日 優(yōu)先權(quán)日2011年3月11日
發(fā)明者呂爍 申請(qǐng)人:浪潮(北京)電子信息產(chǎn)業(yè)有限公司