本發(fā)明涉及一種在控制器之間數(shù)據(jù)傳輸?shù)募夹g(shù),尤其是涉及一種雙控制器存儲系統(tǒng)緩存鏡像的數(shù)據(jù)傳輸系統(tǒng)。
背景技術(shù):
基于對可用性、可靠性的考慮,當前國內(nèi)存儲設(shè)備廠商在設(shè)計和實現(xiàn)存儲系統(tǒng)時越來越多的采用雙控制器架構(gòu)。該架構(gòu)的最大優(yōu)勢是,當其中一個控制器作為服務器,即主服務器正在提供服務時,使用另一個控制器作為此主服務器的鏡像備份服務器。因此,當其中一個控制器出現(xiàn)宕機等異常,另一個控制器可以馬上接管故障控制器,繼續(xù)對用戶提供服務,進而保障數(shù)據(jù)的完整性和服務的連續(xù)性。
緩存鏡像(cachemirroring)是在雙控制器存儲系統(tǒng)中普遍使用的一種cache保護技術(shù),它是針對存儲系統(tǒng)出現(xiàn)故障時可能產(chǎn)生的緩存中的數(shù)據(jù)丟失現(xiàn)象而制定的解決方案。緩存鏡像的一般實現(xiàn)方式是當一個控制器進行寫操作時,不僅將數(shù)據(jù)寫入本地緩存中,同時將這部分數(shù)據(jù)發(fā)送到對端控制器上建立數(shù)據(jù)鏡像,只有當對端控制器完成數(shù)據(jù)鏡像并通知本地控制器數(shù)據(jù)鏡像已完成時,本地控制器的此次數(shù)據(jù)寫入才算完成。這就要求兩個控制器之間存在一條高效、可靠的連接,需要一種穩(wěn)定、高速的通信系統(tǒng)及方法。這時一般的通信系統(tǒng)及方法大都基于tcp/ip網(wǎng)絡(luò),兩個控制器之間通過socket建立鏈接和發(fā)送數(shù)據(jù),實現(xiàn)本地控制器緩存與對端控制器鏡像之間的數(shù)據(jù)備份。然而在某些應用環(huán)境下,比如視頻存儲應用環(huán)境(順序?qū)懕容^多),本地控制器緩存與對端數(shù)據(jù)鏡像之間需要大量的數(shù)據(jù)備份通信,受限于tcp/ip網(wǎng)絡(luò)帶寬,緩存鏡像的數(shù)據(jù)傳輸?shù)男軙艿胶艽笥绊憽?/p>
技術(shù)實現(xiàn)要素:
本發(fā)明的目的在于提供一種雙控制器存儲系統(tǒng)緩存鏡像的數(shù)據(jù)傳輸系統(tǒng),以解決數(shù)據(jù)傳輸?shù)膁ma通信鏈路傳輸效能低的問題。
本發(fā)明一種雙控制器存儲系統(tǒng)緩存鏡像的數(shù)據(jù)傳輸系統(tǒng),其中,包括:第一控制器和第二控制器;第一控制器包括:第一dma通道接口層、第一dma通道驅(qū)動層以及第一硬件層;第一dma通道接口層中包括多個第一dma通道接口,第一dma通道驅(qū)動層包括多個第一dma通道驅(qū)動部,第一硬件層包括多個第一dma通道引擎和第一pcie非透明橋;第一dma通道包括相互連接的第一dma通道引擎、第一dma通道驅(qū)動部以及第一dma通道接口;第一控制器的第一數(shù)據(jù)路由層接收系統(tǒng)內(nèi)部的數(shù)據(jù)請求,并依據(jù)當前各個第一dma通道數(shù)據(jù)傳輸負荷情況,將請求分配至第一dma通道接口層中數(shù)據(jù)傳輸負荷最輕的第一dma通道接口;第一數(shù)據(jù)路由層接收來自第一dma通道接口層傳輸?shù)臄?shù)據(jù)請求,并發(fā)往系統(tǒng)內(nèi)部,以執(zhí)行對應的數(shù)據(jù)請求傳輸;第一dma通道接口層的多個第一dma通道接口與第一dma通道驅(qū)動層的各個第一dma通道驅(qū)動部對應連接,各個第一dma通道引擎與第一dma通道驅(qū)動層中的對應第一dma通道驅(qū)動部連接,第一pcie非透明橋與第二控制器連接;第一dma通道接口層接收第一數(shù)據(jù)路由層發(fā)送的數(shù)據(jù)請求,并轉(zhuǎn)換此數(shù)據(jù)請求為兼容相應第一dma通道的數(shù)據(jù)格式,以發(fā)往第一dma通道驅(qū)動層中與選擇的第一dma通道接口連接的第一dma通道驅(qū)動部;第一dma通道接口層接收來自相應第一dma通道驅(qū)動部傳輸?shù)臄?shù)據(jù)請求,并提取其中的有效數(shù)據(jù),發(fā)往第一數(shù)據(jù)路由層;第一數(shù)據(jù)路由層獲得各個第一dma通道負荷,選擇最輕的負荷對應的第一dma通道。
根據(jù)本發(fā)明的雙控制器存儲系統(tǒng)緩存鏡像的數(shù)據(jù)傳輸系統(tǒng)的系統(tǒng)的一實施例,其中,第二控制器包括:第二dma通道接口層、第二dma通道驅(qū)動層以及第二硬件層;第二dma通道接口層中包括多個第二dma通道接口,第二dma通道驅(qū)動層包括多個第二dma通道驅(qū)動部,第二硬件層包括多個第二dma通道引擎和第二pcie非透明橋;第二dma通道包括相互連接的第二dma通道引擎、第二dma通道驅(qū)動部以及第二dma通道接口;第二控制器的第二數(shù)據(jù)路由層接收系統(tǒng)內(nèi)部的數(shù)據(jù)請求,并依據(jù)當前各個第二dma通道數(shù)據(jù)傳輸負荷情況,將請求分配至第二dma通道接口層中數(shù)據(jù)傳輸負荷最輕的第二dma通道接口;第二數(shù)據(jù)路由層接收來自第二dma通道接口層傳輸?shù)臄?shù)據(jù)請求,并發(fā)往系統(tǒng)內(nèi)部,以執(zhí)行對應的數(shù)據(jù)請求傳輸;第二dma通道接口層的多個第二dma通道接口與第二dma通道驅(qū)動層的各個第二dma通道驅(qū)動部對應連接,各個第二dma通道引擎與第二dma通道驅(qū)動層中的對應第二dma通道驅(qū)動部連接,第二pcie非透明橋與第一pcie非透明橋連接;第二dma通道接口層接收第二數(shù)據(jù)路由層發(fā)送的數(shù)據(jù)請求,并轉(zhuǎn)換此數(shù)據(jù)請求為兼容相應第二dma通道的數(shù)據(jù)格式,以發(fā)往第二dma通道驅(qū)動層中與選擇的第二dma通道接口連接的第二dma通道驅(qū)動部;第二dma通道接口層接收來自相應第二dma通道驅(qū)動部傳輸?shù)臄?shù)據(jù)請求,并提取其中的有效數(shù)據(jù),發(fā)往第二數(shù)據(jù)路由層;第二數(shù)據(jù)路由層獲得各個第二dma通道負荷,選擇最輕的負荷對應的第二dma通道。
根據(jù)本發(fā)明的雙控制器存儲系統(tǒng)緩存鏡像的數(shù)據(jù)傳輸系統(tǒng)的系統(tǒng)的一實施例,其中,第二控制器將將第一控制器的數(shù)據(jù),通過第二pcie非透明橋,第二dma通道引擎,傳輸至對應連接的第二dma通道驅(qū)動部,第二dma通道驅(qū)動部發(fā)送數(shù)據(jù)請求至對應連接的第二dma通道接口,以提取其中的有效數(shù)據(jù),第二控制器的相應第二dma通道接口將有效數(shù)據(jù)發(fā)往第二控制器中的系統(tǒng)通信軟件。
根據(jù)本發(fā)明的雙控制器存儲系統(tǒng)緩存鏡像的數(shù)據(jù)傳輸系統(tǒng)的系統(tǒng)的一實施例,該負荷為數(shù)據(jù)請求隊列的長度。
根據(jù)本發(fā)明的雙控制器存儲系統(tǒng)緩存鏡像的數(shù)據(jù)傳輸系統(tǒng)的系統(tǒng)的一實施例,當多個第一dma通道數(shù)據(jù)請求隊列的長度相近或相同時,第一數(shù)據(jù)路由層選擇其中數(shù)據(jù)請求隊列的字節(jié)數(shù)最少的第一dma通道作為傳輸通道;當多個第二dma通道數(shù)據(jù)請求隊列的長度相近或相同時,第二數(shù)據(jù)路由層選擇其中數(shù)據(jù)請求隊列的字節(jié)數(shù)最少的第一dma通道作為傳輸通道。
本發(fā)明的雙控制器存儲系統(tǒng)緩存鏡像的數(shù)據(jù)傳輸系統(tǒng)的系統(tǒng),以選擇數(shù)據(jù)傳輸?shù)呢摵勺畹偷膁ma通信鏈路,提供數(shù)據(jù)傳輸效能。
附圖說明
圖1所示為本發(fā)明雙控制器存儲系統(tǒng)緩存鏡像的數(shù)據(jù)傳輸系統(tǒng)的系統(tǒng)方塊圖;
圖2所示為本發(fā)明雙控制器存儲系統(tǒng)緩存鏡像的數(shù)據(jù)傳輸方法的步驟流程圖;
其中,附圖標記說明如下:
80控制器a;81系統(tǒng)內(nèi)部通信軟件;
82數(shù)據(jù)路由層;83dma通道接口層;
84dma通道驅(qū)動層;85硬件層;
90控制器a;91系統(tǒng)內(nèi)部通信軟件;
92數(shù)據(jù)路由層;93dma通道接口層;
94dma通道驅(qū)動層;95硬件層。
具體實施方式
為使本發(fā)明的目的、內(nèi)容、和優(yōu)點更加清楚,下面結(jié)合附圖和實施例,對本發(fā)明的具體實施方式作進一步詳細描述。
圖1所示為本發(fā)明雙控制器存儲系統(tǒng)緩存鏡像的數(shù)據(jù)傳輸系統(tǒng)的系統(tǒng)方塊圖,參考圖1,該圖表示本發(fā)明的雙控制器存儲系統(tǒng)緩存鏡像的數(shù)據(jù)傳輸系統(tǒng)的系統(tǒng)示意圖。由此圖可知,所述雙控制器存儲系統(tǒng)包括控制器80和控制器90,其中控制器80與控制器90分別包括有數(shù)據(jù)路由層和dma通道接口層。
如圖1所示,控制器80的數(shù)據(jù)路由層82接收系統(tǒng)內(nèi)部通信軟件81發(fā)出的數(shù)據(jù)請求,并依據(jù)當前各個dma通道數(shù)據(jù)傳輸負荷情況,將請求分配至dma通道接口層83中數(shù)據(jù)傳輸負荷最輕的dma通道接口;另一方面,數(shù)據(jù)路由層82接收來自dma通道接口層83傳輸?shù)臄?shù)據(jù)請求,并發(fā)往系統(tǒng)內(nèi)部通信軟件81,以執(zhí)行對應的數(shù)據(jù)請求傳輸。
如圖1所示,dma通道接口層83中包括多個dma通道接口,并與dma通道驅(qū)動層84的各個dma通道驅(qū)動部隊應連接。硬件層85包括各個dma通道引擎和pcie非透明橋,各個dma通道引擎與dma通道驅(qū)動層84中的對應dma通道驅(qū)動部連接,pcie非透明橋與控制器80的硬件層95中的pcie非透明橋連接??刂破?0的dma通道驅(qū)動層94、dma通道接口層93、數(shù)據(jù)路由層92及系統(tǒng)內(nèi)部通信軟件91之間的連接關(guān)系類似于控制器80中的對應組件,這里不再贅述。
如圖1所示,dma通道接口層83一方面接收數(shù)據(jù)路由層82發(fā)送的數(shù)據(jù)請求,并轉(zhuǎn)換此數(shù)據(jù)請求為兼容相應dma通道的數(shù)據(jù)格式,以發(fā)往dma通道驅(qū)動層84中與選擇的dma通道接口連接的dma通道驅(qū)動部;另一方面,dma通道接口層83接收來自相應dma通道驅(qū)動部傳輸?shù)臄?shù)據(jù)請求,并提取其中的有效數(shù)據(jù),發(fā)往數(shù)據(jù)路由層82。
如圖1所示,數(shù)據(jù)路由層82獲得各個dma通道數(shù)據(jù)請求隊列的長度,選擇長度最短的數(shù)據(jù)請求隊列對應的dma通道,因而選擇數(shù)據(jù)傳輸負荷最輕的dma通道接口,以得到最佳的傳輸路徑。
當多個dma通道數(shù)據(jù)請求隊列的長度相近或相同時,數(shù)據(jù)路由層82則選擇其中數(shù)據(jù)請求隊列總字節(jié)數(shù)最少的dma通道作為傳輸通道,以盡量實現(xiàn)各個dma通道之間的負載均衡,從而提升系統(tǒng)的整體效能。
同理,控制器90的數(shù)據(jù)路由層92及dma通道接口層93的功能類似于控制器80的數(shù)據(jù)路由層82及dma通道接口層83。
圖2所示為本發(fā)明雙控制器存儲系統(tǒng)緩存鏡像的數(shù)據(jù)傳輸方法的步驟流程圖,參考圖2,此圖為本發(fā)明實施例雙控制器存儲系統(tǒng)緩存鏡像的數(shù)據(jù)傳輸方法的步驟流程圖,圖中所示的數(shù)據(jù)傳輸實施例涉及數(shù)據(jù)由控制器a發(fā)送至控制器b,反之流程亦然。
依照本實施例,本發(fā)明的數(shù)據(jù)傳輸方法包括以下步驟:
步驟802、接收控制器a系統(tǒng)內(nèi)部發(fā)出的數(shù)據(jù)傳輸請求;
步驟803、獲取當前各個dma通道數(shù)據(jù)請求隊列的長度;
步驟804、選擇請求隊列長度最短的dma通道所對應的dma通道接口;
步驟805、將該數(shù)據(jù)請求轉(zhuǎn)換為dma通道接口兼容的數(shù)據(jù)格式,以發(fā)送至對應的dma通道驅(qū)動部;
步驟806、然后,控制器a的對應dma通道驅(qū)動部接收該數(shù)據(jù)請求,將其加入請求隊列隊尾,從請求隊列對頭依次取出數(shù)據(jù)請求,并控制相應dma通道引擎發(fā)送數(shù)據(jù)請求至控制器b;
步驟807、控制器b中與控制器a的dma通道引擎通過pcie非透明橋連接的dma通道引擎接收請求,并傳輸至對應連接的dma通道驅(qū)動部。
步驟808、dma通道驅(qū)動部發(fā)送數(shù)據(jù)請求至對應連接的dma通道接口,以提取其中的有效數(shù)據(jù)。
步驟809、控制器b的相應dma通道接口將有效數(shù)據(jù)發(fā)往控制器b中的系統(tǒng)通信軟件。
本發(fā)明所提供的雙控制器存儲系統(tǒng)的數(shù)據(jù)傳輸系統(tǒng),應用于雙控制器存儲系統(tǒng)的控制器a中緩存鏡像與控制器b中緩存鏡像之間的通信,所述數(shù)據(jù)傳輸系統(tǒng)包括:內(nèi)部通信模塊、數(shù)據(jù)路由層、dma通道接口層以及dma通道驅(qū)動層。其中,該內(nèi)部通信模塊發(fā)出相應的控制器a中緩存鏡像或控制器b中的緩存鏡像的數(shù)據(jù)請求,以傳輸數(shù)據(jù)至控制器b中緩存鏡像或控制器a中緩存鏡像;該數(shù)據(jù)路由層接收該內(nèi)部通信模塊發(fā)出的數(shù)據(jù)請求,并獲得當前各個dma通道的請求隊列長度,選擇長度最短的請求隊列對應的dma通道;該dma通道接口層包括多個dma通道接口,該dma通道接口層接收該數(shù)據(jù)請求分配至與選擇的dma通道對用的dma通道接口,并轉(zhuǎn)換數(shù)據(jù)請求為dma通道接口兼容的數(shù)據(jù)格式,以發(fā)送至相應dma通道驅(qū)動部;該dma通道驅(qū)動層包括多個dma通道驅(qū)動部,其相應dma通道驅(qū)動部接收數(shù)據(jù)請求,并將數(shù)據(jù)請求加入其請求隊列隊尾,并依次從請求隊列隊頭取出數(shù)據(jù)請求,通過相應dma通道引擎發(fā)送該數(shù)據(jù)請求至控制器b中緩存鏡像或控制器a中緩存鏡像。
本發(fā)明所提供的雙控制器存儲系統(tǒng)緩存鏡像的數(shù)據(jù)傳輸方法,應用于雙控制器存儲系統(tǒng)的控制器a中緩存鏡像與控制器b中緩存鏡像之間的數(shù)據(jù)傳輸,所述方法包括如下步驟:接收控制a或控制器b的通信系統(tǒng)發(fā)出的數(shù)據(jù)請求,獲得當前各個dma通道數(shù)據(jù)請求隊列的長度,選擇長度最短的數(shù)據(jù)請求隊列所對應的dma通道;轉(zhuǎn)換該數(shù)據(jù)請求為與選擇dma通道對應的dma接口兼容的數(shù)據(jù)格式,以發(fā)送至與該dma通道接口連接的一個對應dma通道驅(qū)動部;該dma驅(qū)動部將該數(shù)據(jù)請求加入其請求隊列的隊尾,依次從請求隊列隊頭取出數(shù)據(jù)請求,并通過控制與其連接的一個對應dma通道引擎,以發(fā)送數(shù)據(jù)請求至控制器b或控制器a中的與dma通道引擎對應的dma通道引擎;通過控制器b或控制器a的dma通道引擎,發(fā)送數(shù)據(jù)請求至與其連接的對應dma通道驅(qū)動部;通過該dma通道驅(qū)動部接收數(shù)據(jù)請求并發(fā)送至與其連接的對應dma通道接口;以及該dma通道接口提取接受的數(shù)據(jù)請求中的數(shù)據(jù),并傳輸數(shù)據(jù)至控制器b或控制器a的通信系統(tǒng)。
本發(fā)明依據(jù)當前各個dma通道負荷情況,選擇當前負荷最低的dma通道傳輸數(shù)據(jù),進而選擇傳輸效能最高的路徑。因此,不但可以充分調(diào)度多個dma通道資源,而且保障數(shù)據(jù)請求以最短的時間得到傳輸。
以上所述僅是本發(fā)明的優(yōu)選實施方式,應當指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明技術(shù)原理的前提下,還可以做出若干改進和變形,這些改進和變形也應視為本發(fā)明的保護范圍。