專利名稱:雙控制器系統的數據傳輸系統及方法及通信路徑選擇方法
技術領域:
本發明涉及一種在控制器之間數據傳輸的方法,尤其涉及一種在雙控制 器系統的兩個控制器之間傳輸數據的系統及方法。
背景技術:
通常,雙控制器系統應用于對數據完整性及服務連續性要求較高的環境中,例如儲存器局域網絡(SAN, Storage Area Network)。雙控制器系統的 作用是,當其中一控制器作為服務器,即主服務器正在提供服務時,使用另 一控制器作為此主服務器的鏡像備份服務器。因此,當主服務器發生故障而 無法繼續提供服務時,備份服務器則接管主服務器的服務,進而保障數據的 完整性和服務的連續性。
因此,需要在雙控制器系統的兩控制器之間建立內部通信鏈路,例如以 太網絡卡對連等,用以傳輸數據,保持兩控制器的同步狀態。有時,在雙控 制器系統中可以同時存在多條提供這種內部通信機制的鏈路,例如光纖接 口、以太網絡接口等。但是,各個鏈路由于其傳輸介質以及協議規范的差異, 因而在傳輸不同類型數據封包時的效能也不盡相同。例如,某些通信鏈路的 傳輸頻率較高,但是最大傳輸單元較小,因此適合傳輸小規模的數據封包; 或者,有些通信鏈路傳輸頻率較低,而最大傳輸單元較大,只有在傳輸較大 區塊數據時才能體現其效能。
因此,傳統的單一路徑內部通信鏈路受傳輸介質的限制,往往只對一定 數據封包規模范圍內的數據較為適合, 一旦傳輸超出此范圍的數據封包,則 存在效能降低的問題。并且,當傳輸數據的規模不斷出現變化時,傳輸效能 也會相應地產生很大波動。
發明內容
為了解決上述公知技術中的問題與缺陷,本發明的目的在于提供一種雙控制器系統的數據傳輸系統及方法以及通信路徑選擇方法,以選擇數據傳輸 的適合內部通信鏈路,提高數據傳輸效能。
本發明所提供的雙控制器系統的數據傳輸系統,應用于雙控制器系統的 第一控制器與第二控制器之間的通信,所述數據傳輸系統包括內部通信模 塊、數據路由層、介質接口層以及介質驅動層。其中,該內部通信模塊發出 相應的該第一控制器/該第二控制器的數據請求,以傳輸一定大小的數據封包 至該第二控制器/該第一控制器,該數據路由層接收該內部通信模塊發出的數 據請求,并依照該數據請求傳輸的數據封包的大小特征選擇傳輸介質;該介 質接口層包括多個介質接口 ,該介質接口層接收該數據請求分配至與選擇的 傳輸介質對應的介質接口,并轉換數據請求為介質接口兼容的數據格式,以 發送至相應介質驅動部;該介質驅動層包括多個介質驅動部,其相應介質驅 動部接收該數據請求,并通過相應介質控制器發送該數據請求至該第二控制 器/該第一控制器。
依照本發明的雙控制器系統的數據傳輸系統,其中該數據路由層通過傳 輸介質傳輸數據封包的流通量(Throughput)來選擇傳輸介質。并且選擇其 中傳輸此種尺寸數據封包時具有較高流通量的傳輸介質來進行傳輸,當多個 傳輸介質對所傳輸的數據封包具有相同或相近的流通量時,則選擇多個傳輸 介質中具有較低中央處理器占有率的傳輸介質。
本發明所提供的雙控制器系統的數據傳輸方法,應用于雙控制器系統的 第一控制器與第二控制器之間的數據傳輸,所述方法包括以下步驟接收該 第一控制器/該第二控制器的通信系統發出的數據請求,并依照該數據請求傳 輸的數據封包的大小特征選擇對應傳輸介質;轉換該數據請求為與選擇傳輸 介質對應的介質接口兼容的數據格式,以發送至與該介質接口連接的一對應 介質驅動部;通過該介質驅動部控制與其連接的一對應介質控制器,以發送 數據請求至該第二控制器/該第一控制器中的與介質控制器連接的一對應介 質控制器;通過該第二控制器/該第一控制器的介質控制器,發送數據請求至 與其連接的一對應介質驅動部;通過該介質驅動部接收數據請求并發送至與 其連接的一對應介質接口;以及該介質接口提取接收的數據請求中數據,并 傳輸數據至該第二控制器/該第一控制器的通信系統。
依照本發明所提供的雙控制器系統的數據傳輸方法,其中選擇多個傳輸介質中傳輸數據封包的流通量較高的介質作為傳輸介質。當多個傳輸介質傳 輸此數據封包的流通量相近或相同時,則選擇多個傳輸介質中具有較低中央 處理器占有率的傳輸介質作為傳輸數據封包的傳輸介質,其中所述中央處理器占有率為多個傳輸介質滿負荷傳輸時的占有率。
此外,本發明還提供了一種雙控制器系統的通信路徑選擇方法,應用于 雙控制器系統的兩個控制器的內部通信,此通信路徑選擇方法系包括以下步 驟依照雙控制器系統中的一控制器發出的數據請求,獲得該數據請求的傳 輸數據封包大小;根據該數據封包大小計算控制器中不同傳輸介質在傳輸該 數據封包時的流通量;自所述不同傳輸介質中選擇具有最高流通量的傳輸介 質;以及發送該數據請求的傳輸數據封包至所述選擇的傳輸介質,以傳輸該 數據請求用以兩個控制器的內部通信。
本發明依據系統傳輸請求的數據特點,即傳輸數據封包的大小,通過路 由算法比較系統中不同介質在傳輸此種尺寸的數據封包時的流通量,進而選 擇傳輸效能最高的路徑。因此,可以將系統中存在的多條通信鏈路互補利用, 針對不同大小的數據封包選擇適當的通信鏈路,達到并穩定傳輸效能的最大 化。
圖1為本發明雙控制器系統的數據傳輸系統的系統方塊圖2為本發明的雙控制器系統的數據傳輸方法的步驟流程圖;以及
圖3為本發明的數據封包傳輸路徑選擇算法的步驟流程圖。
其中,附圖標記說明如下-
10第一控制器 12數據路由層 14介質驅動層 20第二控制器 22數據路由層 24介質驅動層
11系統內部通信軟件 13介質接口層 15硬件層
21系統內部通信軟件 23介質接口層 25硬件層
102、 104、 106、 108、 110、 112、 114、 116步驟 202、 204、 206、 208、 210、 212步驟
具體實施例方式
有關本發明的特征與實例,現配合附圖對優選實施例詳細說明如下。
參考圖1,該圖表示本發明的雙控制器系統的數據傳輸系統的系統方塊圖。由圖1可知,所述雙控制器系統包括第一控制器10與第二控制器20, 與傳統的雙控制器系統的單一路徑內部通信鏈路不同,其中第一控制器10 與第二控制器20分別包括有數據路由層及介質接口層,下面結合圖1詳細 說明本發明的數據傳輸系統的結構。
第一控制器10的數據路由層12接收系統內部通信軟件11發出的數據 請求,并依據請求的特點將請求分派至介質接口層13中適合的介質接口; 另一方面,數據路由層12接收來自介質接口層13傳輸的數據請求,并發往 系統內部通信軟件H,以執行對應的數據請求傳輸。
介質接口層13中具有多個不同介質接口,并與介質驅動層14的各個介 質驅動部對應連接。硬件層15中各個不同介質的控制器的一端與介質驅動 層14中的對應介質驅動部連接,另一端通過相應鏈路與第二控制器20的硬 件層25中對應的介質控制器連接。第二控制器20的介質驅動層24、介質接 口層23、數據路由層22及系統內部通信軟件21之間的連接關系類似于第一 控制器10中的對應組件,這里不再贅述。
介質接口層13 —方面接收數據路由層12發送的數據請求,并轉換此數 據請求為兼容相應介質的'數據格式,以發往介質驅動層14中與選擇的介質 接口連接的介質驅動部;另一方面,介質接口層13接收來自相應介質驅動 部傳輸的數據請求,并提取其中的有效數據,發往數據路由層12。
數據路由層12依照請求傳輸的數據封包的大小特征來選擇合適介質接 口,具體是比較系統中不同介質在傳輸該尺寸大小的數據封包時的流通量, 流通量大的介質在傳輸這種尺寸的數據封包時效能最高,因而選擇較大流通 量的傳輸介質對應的介質接口,以得到最佳的傳輸路徑。
下面結合一些參數來確定介質流通量的計算公式CTP為不同介質傳輸 數據封包的流通量,MTP為不同介質的最大流通量,即單位時間介質可以傳 輸的數據總量,單位為字節每秒(Bps),對于全雙工介質,流通量為同種 單工介質的2倍。IOPS為介質的傳輸頻率,即單位時間介質上可以完成的輸 入輸出次數,單位為輸入輸出次數每秒(IOps),此參數與介質的實體特性
相關,可通過測試方法取得。例如,在系統不運行其它軟件及服務的情況下, 連續傳輸尺寸為介質最大傳輸單元的數據封包,并在一小時候后獲取此時間
內的輸入輸出次數,除以3600即可獲得介質的傳輸頻率。此外,PS為數據 封包的大小,以字節為單位;MTU為介質的最大傳輸單元,單位為字節。
當在某個介質上傳輸某尺寸大小的數據封包時,受介質最大傳輸單元的 影響,此數據封包將被分割成(PS-1)/MTU+1個輸入輸出單元(此處除法為 整除);又因介質傳輸頻率為IOPS,每秒傳輸尺寸為PS的數據封包的個數 即IOPS/((PS-l)/MTU+l);于是,當前流通量即IOPSxPS/((PS-l)/MTU+l)。 但是,計算出的流通量可能會超過MTP,而實際上受介質傳輸率的影響,當 前流通量最高只能達到MTP。因此,關于介質傳輸流通量的計算公式如下 CTP=min(MTP, IOPSxPS/((PS-1 )/MTU+1))。
此外,當計算多個傳輸介質針對某一尺寸的數據封包的流通量相近或相 同時,即計算出的介質傳輸流通量相差小于64KB (千字節)時,數據路由 層13則選擇其中具有較低中央處理器占有率(CPU Rate)的介質作為傳輸 介質,以降低中央處理器的占有率,提升系統整體效能,其中所述中央處理 器占有率為介質滿負荷傳輸時的占有率。
同樣地,第二控制器20的數據路由層22及介質接口層23的功能類似 于第一控制器10的數據路由層12及介質接口層13。
現在參考圖2,此圖為本發明實施例的雙控制器系統的數據傳輸方法的 步驟流程圖,圖中所示的數據傳輸實施例涉及數據由雙控制器的第一控制器 發送至第二控制器,反之流程亦同。
依照本實施例,本發明的數據傳輸方法包括以下步驟接收第一控制器 系統內部發出的數據傳輸請求(步驟102),自該請求中獲得傳輸數據封包 大小(步驟104),然后依照數據封包大小特征選擇適合的傳輸介質,并將 數據請求發往選擇的介質相應的介質接口 (步驟106)。相應介質接口接收 此數據請求,并轉換請求為介質接口兼容的數據格式,發送至相應的介質驅 動部(步驟108)。然后,第一控制器的介質驅動部在接收請求后,控制相 應的介質控制器發送請求至第二控制器(步驟110)。第二控制器中與第一 控制器的介質控制器連接的介質控制器接收請求,并傳輸至對應連接的介質 驅動部(步驟112)。然后,介質驅動部發送數據請求至對應連接的介質接口,以提取其中的有效數據(步驟114)。最后,第二控制器的相應介質接口將請求中提取的有效數據發往第二控制器相應的系統通信軟件(步驟116)。
關于步驟106中依照傳輸數據封包大小選擇適合傳輸介質的算法,詳細 步驟如圖3所示,此圖為本發明的數據封包傳輸路徑選擇算法的步驟流程圖。 首先,根據數據封包大小計算第一控制器中不同傳輸介質在傳輸此數據封包 時的流通量(步驟202)。關于流通量的計算公式如下CTP=min(MTP, IOPSxPS/((PS-l)/MTU+l)),其中CTP為不同傳輸介質傳輸此數據封包的流 通量,MTP為不同傳輸介質的最大流通量,IOPS為傳輸介質的傳輸頻率, PS為數據封包的大小,MTU為傳輸介質的最大傳輸單元。
然后,依照計算的流通量判斷不同介質關于此數據封包的傳輸流通量是 否相同或相近(步驟204),其中可規定介質傳輸流通量相差小于64KB (千 字節)時為相近。當相同或相近時,選擇不同傳輸介質中具有較低中央處理 器占有率的介質作為傳輸介質(步驟208);否則選擇其中具有最高流通量 的介質為此數據封包的傳輸介質(步驟206)。在選擇合適的傳輸介質之后, 發送數據請求的傳輸數據封包至選擇的傳輸介質(步驟210),并通過傳輸 介質的對應接口傳輸數據請求用以兩控制器的內部通信(步驟212)。
雖然本發明以前述的優選實施方式說明,然而并非用以限定本發明。本 領域的技術人員應當意識到,在不脫離本發明所附的權利要求書所限定的本 發明的范圍和精神情況下,所進行的更改與潤飾,均屬本發明的專利保護范 圍。關于本發明所限定的保護范圍請參考所附的權利要求書。
權利要求
1.一種雙控制器系統的數據傳輸系統,應用于該雙控制器系統的第一控制器與第二控制器之間的通信,其中所述系統包括內部通信模塊,發出相應的該第一控制器/該第二控制器的數據請求,以傳輸一定大小的數據封包至該第二控制器/該第一控制器;數據路由層,接收該內部通信模塊發出的該數據請求,并依照該數據請求傳輸的數據封包的大小特征選擇傳輸介質;介質接口層,包括多個介質接口,該介質接口層接收該數據請求分配至與該選擇的傳輸介質相應的介質接口,并轉換該數據請求為該介質接口兼容的數據格式,以發送至相應介質驅動部;以及介質驅動層,包括多個介質驅動部,該介質驅動層的相應介質驅動部接收該數據請求,并通過相應介質控制器發送該數據請求至該第二控制器/該第一控制器。
2. 如權利要求1所述的數據傳輸系統,其中該數據路由層通過該傳輸 介質傳輸該數據封包的流通量來選擇該傳輸介質。
3. 如權利要求2所述的數據傳輸系統,其中該數據路由層選擇多個該 傳輸介質中具有較高流通量的傳輸介質作為傳輸該數據封包的傳輸介質。
4. 如權利要求3所述的數據傳輸系統,其中當所述多個傳輸介質傳輸 該數據封包的流通量相近或相同時,該數據路由層選擇所述多個傳輸介質中 具有較低中央處理器占有率的傳輸介質作為傳輸數據封包的傳輸介質,其中 該中央處理器占有率為所述多個傳輸介質滿負荷傳輸時的占有率。
5. 如權利要求4所述的數據傳輸系統,其中該傳輸介質傳輸該數據封 包的流通量計算公式為CTP=min(MTP, IOPSxPS/((PS-l)/MTU+l)),其中CTP為該傳輸介質傳 輸該數據封包的流通量,MTP為該傳輸介質的最大流通量,IOPS為該傳輸 介質的傳輸頻率,PS為該數據封包的大小,MTU為該傳輸介質的最大傳輸 單元。
6. —種雙控制器系統的數據傳輸方法,應用于該雙控制器系統的第一控制器與第二控制器之間的數據傳輸,該方法包括以下步驟 接收該第一控制器/該第二控制器的通信系統發出的數據請求,并依照該數據請求傳輸的數據封包的大小特征選擇對應傳輸介質;轉換該數據請求為該傳輸介質的對應介質接口兼容的數據格式,以發送 至與該介質接口連接的一對應介質驅動部;經由該介質驅動部控制與其連接的對應介質控制器,以發送該數據請求 至該第二控制器/該第一控制器中與該介質控制器連接的一對應介質控制器;經由該第二控制器/該第一控制器的該介質控制器,發送該數據請求至與 其連接的一對應介質驅動部;通過該介質驅動部接收該數據請求并發送至與其連接的一對應介質接 口;以及該介質接口提取接收的該數據請求中的數據,并傳輸該數據至該第二控 制器/該第一控制器的通信系統。
7. 如權利要求6所述的數據傳輸方法,其中所述選擇該對應傳輸介質 的步驟是通過該傳輸介質傳輸該數據封包的流通量來選擇該傳輸介質。
8. 如權利要求7所述的數據傳輸方法,其中選擇多個傳輸介質中具有 較高流通量的傳輸介質作為傳輸該數據封包的傳輸介質。
9. 如權利要求8所述的數據傳輸方法,其中當多個傳輸介質傳輸該數據封包的流通量相近或相同時,選擇所述多個傳輸介質中具有較低中央處理器占有率的傳輸介質作為傳輸該數據封包的傳輸介質,其中該中央處理器占 有率為所述多個傳輸介質滿負荷傳輸時的占有率。
10. 如權利要求9所述的數據傳輸方法,其中該傳輸介質傳輸該數據封包的流通量計算公式為CTP=min(MTP, IOPSxPS/((PS-l)/MTU+l)),其中CTP為該傳輸介質傳輸該數據封包的流通量,MTP為該傳輸介質的最大流通量,IOPS為該傳輸 介質的傳輸頻率,PS為該數據封包的大小,MTU為該傳輸介質的最大傳輸 單元。
11. 一種雙控制器系統的通信路徑選擇方法,應用于該雙控制器系統的數據傳輸通信路徑的傳輸介質選擇,該通信路徑選擇方法系包括以下步驟依照該雙控制器系統中的一控制器發出的數據請求,獲得該數據請求的傳輸數據封包大小; 根據該數據封包大小計算該控制器中不同傳輸介質在傳輸該數據封包 時的流通量;自所述不同傳輸介質中選擇具有最高流通量的傳輸介質;以及 發送該數據請求的傳輸數據封包至所述選擇的傳輸介質,以傳輸該數據 請求用以進行該兩個控制器的內部通信。
12. 如權利要求11所述的通信路徑選擇方法,其中當所述不同傳輸介 質傳輸該數據封包的流通量相近或相同時,選擇所述不同傳輸介質中具有較 低中央處理器占有率的傳輸介質作為該數據封包的傳輸介質,其中該中央處 理器占有率為所述不同傳輸介質滿負荷傳輸時的占有率。
13. 如權利要求11所述的通信路徑選擇方法,其中該傳輸介質傳輸該 數據封包的流通量的計算公式為CTP=min(MTP, IOPSxPS/((PS-l)/MTU+l)),其中CTP為該傳輸介質傳 輸該數據封包的流通量,MTP為該傳輸介質的最大流通量,IOPS為該傳輸 介質的傳輸頻率,PS為該數據封包的大小,MTU為該傳輸介質的最大傳輸 單元。
全文摘要
一種雙控制器系統的數據傳輸系統及方法以及通信路徑選擇方法,應用于雙控制器系統的第一控制器與第二控制器中。其中所述通信路徑選擇方法包括以下步驟首先依照一控制器發出的數據請求特征選擇一對應傳輸介質,然后轉換該數據請求為選擇傳輸介質對應的介質接口兼容的數據格式,以發送至與介質接口連接的對應介質驅動部,并通過介質驅動部以及連接的對應介質控制器發送此數據請求至另一控制器,進而選擇傳輸效能最高的路徑,實現兩控制器之間的數據傳輸。
文檔編號H04L12/00GK101202632SQ20061016695
公開日2008年6月18日 申請日期2006年12月13日 優先權日2006年12月13日
發明者劉文涵, 孟祥濱, 陳玄同 申請人:英業達股份有限公司