專利名稱:一種雙控制器通信系統和方法
技術領域:
本發明涉及存儲磁盤陣列領域,尤其是基于硬盤控制器的雙控制器的通信系統和 方法。
背景技術:
在雙控制器通信系統中,兩個控制器之間通常采用雙活(Active-Active)或主備 (Active-Standby)方式運行,無論采用哪種方式運行,兩個控制器之間都要進行大量的數 據交互,并且要求根據交互的數據量,兩個控制器之間信息交互的時延其范圍控制在毫秒 級到秒級,因此在數據交互帶寬方面有很高的要求。現有技術中,國內專利200610137980. 5記載的使用硬盤控制器進行雙控制器間 通信的方法是基于仿真以太網封包的形式將數據從控制器傳遞到硬盤控制器,再由硬盤控 制器傳遞到對端硬盤控制器。由于該方法在數據傳輸時采用以太網數據傳輸方式,仿真OSI 7層模型實現,控制器將消息和數據封裝為IP數據包發送到硬盤控制器,再通過硬盤控制 器發送到接收端控制器,接收端控制器收到該IP數據包再進行解封裝,因此每次通信和數 據同步都需要對消息和數據進行打包和解包,處理比較復雜,在通信速度上仍有待改進。
發明內容
本發明所要解決的技術問題是提供一種基于硬盤控制器的雙控制器通信系統和 方法,提高雙控制器間通信的速度和效率。為了解決上述問題,本發明提供了一種雙控制器通信方法,應用于兩個控制器構 成的系統,所述兩個控制器的硬盤控制器直連,構成相互之間的通信通道,所述兩個控制器 中設定的數據的應用類別相同,所述兩個控制器進行數據同步時的握手過程包括源控制器發起數據同步,先將待同步數據的應用類別的標識和長度信息封裝到數 據發送請求中,通過該通信通道發送到目標控制器;該目標控制器收到該數據發送請求后,根據其中的應用類別標識和長度信息分配 數據緩沖區,向該源控制器返回數據緩沖區分配是否成功的響應。進一步地,該源控制器發起數據同步時,還將該數據緩存到本控制器的緩存器;該握手過程完成后,該源控制器如檢測到該響應為數據緩沖區準備成功,則將本 控制器緩存的該數據通過該通信通道發送到該目標控制器分配的數據緩沖區。進一步地,該數據發送請求還封裝有所述兩個控制器協商的數字簽名;該目標控制器接收該數據發送請求進行解析,先判斷該請求中的數字簽名與本控 制器上的數字簽名是否相同,如是,則根據解析得到的應用類別標識和長度信息分配數據 緩沖區,如否,則拋棄該數據發送請求。進一步地,所述兩個控制器的硬盤控制器和緩存器之間的數據傳輸采用直接內存 傳輸(DMA)方式。進一步地,所述兩個控制器的硬盤控制器均采用SAS(串行SCSI)控制器,該通信通道為寬端口全雙工SAS通道,該數據發送請求為SCSI 10(小型計算機系統接口讀寫)請 求消息。為了解決上述問題,本發明還提供了一種雙控制器通信系統,其特征在于,包括兩 個控制器,所述兩個控制器的硬盤控制器直連,構成相互之間的通信通道,所述兩個控制器 的結構相同,都包括上層應用模塊,用于保存設定的數據的應用類別和待同步的數據的長度信息,發起數據同步,將該數據的應用類別標識和長度信息發送到數據發送模塊,根據數據接收模 塊發送的應用類別標識和長度信息分配數據緩沖區;數據發送模塊,用于將該上層應用模塊發送的應用類別標識和長度信息封裝到數 據發送請求中,通過硬盤控制器和該通信通道發送到目標控制器,接收目標控制器返回的 數據緩沖區分配是否成功的響應;數據接收模塊,用于接收源控制器發送的數據發送請求進行解析,將解析得到的 應用類別標識和長度信息發送到上層應用模塊,該數據緩沖區分配完畢,返回數據緩沖區 分配是否成功的響應;硬盤控制器,用于提供接口,轉發所述兩個控制器間的消息;緩存器,用于緩存數據,提供臨時存儲空間。進一步地,該上層應用模塊,還用于發起同步時,將該數據緩存到本控制器的緩存 器,還將該數據在該緩存器中的位置信息發送到該數據發送模塊;該數據發送模塊,還用于保存該上層應用模塊發送的位置信息和長度信息,收到 該數據緩沖區分配是否成功的響應,判斷該數據緩沖區分配是否成功,如成功,則將該數據 的位置信息和長度信息發送到該硬盤控制器;該硬盤控制器,還用于利用該數據發送模塊發送的位置信息和長度信息通過該通 信通道發送該緩存器中的該數據。進一步地,該上層應用模塊,還用于將分配的數據緩沖區的位置信息發送到該數 據接收模塊;該數據接收模塊,還用于保存該分配的數據緩沖區的位置信息和該數據的長度信 息,返回該數據緩沖區分配是否成功的響應時,將該位置信息和長度信息發送到該硬盤控 制模塊;所述硬盤控制模塊,還用于利用該數據接收模塊發送的位置信息和長度信息接收 數據到所述分配的數據緩沖區。進一步地,該數據發送模塊,還用于將所述兩個控制器協商的數字簽名封裝到該 數據發送請求中。該數據接收模塊還用于維護該協商的數字簽名,接收該數據發送請求進行解析, 判斷該請求中的數字簽名與該維護的數字簽名是否相同,如是,則根據解析得到的應用類 別標識和長度信息發送到該上層應用模塊,如否,則拋棄該數據發送請求。進一步地,該硬盤控制器通過直接內存傳輸(DMA)方式發送或接收該數據到本控 制器的緩存器。進一步地,該硬盤控制器采用SAS(串行SCSI)控制器,該通信通道為寬端口全雙 工SAS通道,該數據發送請求為SCSI 10(小型計算機系統接口讀寫)請求消息。
本發明通過采用硬盤控制器間直連的方式,在數據發送請求中攜帶待同步的數據 的應用類別標識和長度信息,在該數據發送請求被接受后直接發送數據緩沖區中的該數 據,不需要對該數據進行打包和拷貝,提高了雙控制器間的通信速度和效率;通過在數據發 送請求中攜帶數字簽名,提高了數據通信的安全性和效率;通過對數據按照應用進行分類, 簡化了同步的處理,減少了對控制器的資源占用;緩存器和硬盤控制器之間的數據傳輸采 用DMA方式,有效降低了 CPU的干預,減小了 CPU占用率,提供高速的數據傳輸性能;由于使 用SAS控制器,數據發送和接收經過SAS通道進行全雙工數據收發,速度高達760MB/S。
圖1為本發明實施例雙控制器通信系統的SAS通道數據收發示意圖;圖2為本發明實施例雙控制器通信系統的SAS通道連接示意圖;圖3為本發明實施例數據同步的收發流程圖;圖4為本發明實施例的數據封裝示意圖;圖5為本發明實施例的數據解析示意圖。
具體實施例方式下面將結合附圖及實施例對本發明的技術方案進行更詳細的說明。本發明實施例雙控制器通信系統的結構如圖1所示,包括兩個控制器,所述兩個 控制器間通過直連構建相互之間的通信通道,并且所述兩個控制器的結構相同,都包括上層應用模塊,包括不同類型的應用,用于保存設定的數據的應用類別和數據同 步條件,滿足特定的數據同步條件則發起數據同步,將待同步的數據緩存到本控制器的緩 存器,利用保存的數據的應用類別標識該數據的應用類別,獲取該數據的數據標識、長度信 息和該數據在緩存器中的位置信息,保存并發送該應用類別標識、數據標識、長度信息和位 置信息到數據發送模塊;根據數據接收模塊發送的應用類別標識和長度信息分配數據緩沖 區,并將該數據緩沖區的位置信息、長度信息和數據標識發送到數據接收模塊。數據發送模塊,用于保存該數據的數據標識、長度信息和位置信息,將該數據的數 據標識、應用類別標識和長度信息封裝到數據發送請求中,通過硬盤控制器和該通信通道 發送到目標控制器,接收目標控制器返回的數據緩沖區分配是否成功的響應,如判斷該數 據緩沖區分配成功,則將該數據的位置信息和長度信息發送到硬盤控制器。該數據接收模塊,用于接收該源控制器發送的數據發送請求進行解析,將解析得 到的該數據的數據標識、應用類別標識和長度信息發送到上層應用模塊,保存該上層應用 模塊分配的數據緩沖區的位置信息和長度信息,返回數據發送響應消息,并將該位置信息 和長度信息發送到該硬盤控制模塊。該硬盤控制器,用于提供雙控制器間的接口,轉發所述兩個控制器間的消息,根據 該數據發送模塊發送的位置信息和長度信息通過該通信通道發送緩存器中的數據到該目 標控制器,利用該數據接收模塊發送的位置信息和長度信息接收數據到該緩存器。該數據緩沖區用于緩存數據,提供臨時存儲空間。該數據發送請求還封裝有所述兩個控制器協商的數字簽名。該數據發送模塊,還 用于將該數字簽名封裝到該數據發送請求中。該數據接收模塊還用于維護該協商的數字簽名,接收該數據發送請求進行解析,判斷該請求中的數字簽名與該維護的數字簽名是否相 同,如是,則根據解析得到的應用類別標識和長度信息發送到該上層應用模塊,如否,則拋 棄該數據發送請求。該硬盤控制器采用SAS(串行SCSI)控制器,相應地,該通信通道為寬端口全雙工 SAS通道,該數據發送請求為SCSI 10(小型計算機系統接口讀寫)請求消息。該硬盤控制器和數據緩沖區之間的數據傳輸均采用直接內存傳輸(DMA)方式。本發明實施例雙控制器通信系統中的兩個控制器的硬盤控制器以SAS(串行 SCSI)控制器為例,如圖2所示,兩個SAS控制器之間通過直連的方式構建寬端口全雙工 SAS通道。兩個控制器互為對方的源(Initiator)控制器和目標(Target)控制器,都能同 時收發數據。在所述兩個控制器上,根據雙控制器間傳輸的數據的應用類別對 數據進行分類。 所述兩個控制器均保存該數據的應用類別和設定的數據同步條件。源控制器A向目標控制器B同步數據時,控制器A先和控制器B進行握手通信將 該數據的應用類別標識和長度信息封裝到SCSI IO請求消息中發送給控制器B,控制器B收 到該SCSI IO請求后進行解析,并根據解析得到應用類別標識和長度信息分配數據緩沖區, 然后返回數據緩沖區分配是否成功的響應。所述兩個控制器握手完成后,如數據緩沖區分 配成功,則控制器A通過SAS通道直接發送本控制器緩存器中的該數據到控制器B,控制器 B接收該數據到該分配的數據緩沖區。具體的,控制器A滿足一定數據同步條件,發起數據同步后,該控制器A和控制器 B具體處理流程如圖3所示,包括以下步驟步驟301-302 控制器A將待同步的數據調入控制器A的數據緩沖區,獲取并保存 該數據在數據緩沖區中的位置信息、長度信息和數據標識,利用保存的數據的應用類別標 識該數據的應用類別,將該數據的應用類別標識和長度信息封裝到數據發送請求中,發送 給控制器B;該數據發送請求的數據塊中還封裝有所述兩個控制器協商的數字簽名,該數字簽 名是設定的字符串或數字,如“SendRequestSignature”。在SAS控制器中,該數據發送請求是SAS控制器可以識別的SCSI IO請求消息。控 制器A封裝數據包的示意圖如圖4所示,該SCSI IO請求消息中攜帶該數據的應用類別標 識、長度信息和數字簽名。如果控制器中的硬盤控制器是其他類型的硬盤控制器,則將應用類別標識、長度 信息和數字簽名封裝到該硬盤控制器對應格式的數據發送請求中。步驟303-304 控制器B收到該數據發送請求后,解析該消息得到其中的應用類別 標識、長度信息和數字簽名,驗證該數字簽名,如該請求中的數字簽名與本控制器維護的數 字簽名相同,則根據解析得到的應用類別標識和長度信息分配數據緩沖區;控制器B解析數據發送請求的示意圖如圖5所示,控制器B接收到該消息 后進行解析,驗證該請求的合法性,判斷該請求中的數字簽名是否為協商的字符串 "SendRequestSignature",如是,則根據解析得到的應用類別標識和長度信息分配數據緩 沖區用來接收該數據,如否,則拋棄該請求,返回失敗消息,結束;步驟305 控制器B向控制器A返回數據緩沖區分配是否成功的響應,指示數據接收數據緩沖區準備完畢;步驟306 控制器A接收該數據發送響應。至此,控制器A與控制器B握手通信完畢。控制器A如判斷該響應為數據緩沖區分配成功,則利用保存的位置信息和長度信 息通過該通信通道發送緩存器中的數據到控制器B,控制器B接收該數據到該分配的數據 緩沖區。控制器A和控制器B的硬盤控制器和數據緩沖區之間的數據傳輸都采用直接內存 傳輸(DMA)方式。控制器A的SAS控制器讀取本控制器緩存器中的數據并通過SAS通道發 送到控制器B。控制器B的SAS控制器接收該數據直接緩存到控制器B中該分配的數據緩 沖區。本發明實施例控制器的數據緩沖區可以為每種應用類型的數據開辟不同的發送或接收隊列,當有數據要發送或接收時,將該數據寫入對應的發送或接收隊列中。
權利要求
一種雙控制器通信方法,應用于兩個控制器構成的系統,所述兩個控制器的硬盤控制器直連,構成相互之間的通信通道,所述兩個控制器中設定的數據的應用類別相同,所述兩個控制器進行數據同步時的握手過程包括源控制器發起數據同步,先將待同步數據的應用類別的標識和長度信息封裝到數據發送請求中,通過該通信通道發送到目標控制器;該目標控制器收到該數據發送請求后,根據其中的應用類別標識和長度信息分配數據緩沖區,向該源控制器返回數據緩沖區分配是否成功的響應。
2.如權利要求1所述的方法,其特征在于該源控制器發起數據同步時,還將該數據緩存到本控制器的緩存器; 該握手過程完成后,該源控制器如檢測到該響應為數據緩沖區準備成功,則將本控制 器緩存的該數據通過該通信通道發送到該目標控制器分配的數據緩沖區。
3.如權利要求1所述的方法,其特征在于該數據發送請求還封裝有所述兩個控制器協商的數字簽名;該目標控制器接收該數據發送請求進行解析,先判斷該請求中的數字簽名與本控制器 上的數字簽名是否相同,如是,則根據解析得到的應用類別標識和長度信息分配數據緩沖 區,如否,則拋棄該數據發送請求。
4.如權利要求2所述的方法,其特征在于所述兩個控制器的硬盤控制器和緩存器之間的數據傳輸采用直接內存傳輸(DMA)方式。
5.如權利要求1所述的方法,其特征在于所述兩個控制器的硬盤控制器均采用SAS (串行SCSI)控制器,該通信通道為寬端口全 雙工SAS通道,該數據發送請求為SCSII0(小型計算機系統接口讀寫)請求消息。
6.一種雙控制器通信系統,其特征在于,包括兩個控制器,所述兩個控制器的硬盤控制 器直連,構成相互之間的通信通道,所述兩個控制器的結構相同,都包括上層應用模塊,用于保存設定的數據的應用類別和待同步的數據的長度信息,發起數 據同步,將該數據的應用類別標識和長度信息發送到數據發送模塊,根據數據接收模塊發 送的應用類別標識和長度信息分配數據緩沖區;數據發送模塊,用于將該上層應用模塊發送的應用類別標識和長度信息封裝到數據發 送請求中,通過硬盤控制器和該通信通道發送到目標控制器,接收目標控制器返回的數據 緩沖區分配是否成功的響應;數據接收模塊,用于接收源控制器發送的數據發送請求進行解析,將解析得到的應用 類別標識和長度信息發送到上層應用模塊,該數據緩沖區分配完畢,返回數據緩沖區分配 是否成功的響應;硬盤控制器,用于提供接口,轉發所述兩個控制器間的消息; 緩存器,用于緩存數據,提供臨時存儲空間。
7.如權利要求6所述的系統,其特征在于該上層應用模塊,還用于發起同步時,將該數據緩存到本控制器的緩存器,還將該數據 在該緩存器中的位置信息發送到該數據發送模塊;該數據發送模塊,還用于保存該上層應用模塊發送的位置信息和長度信息,收到該數據緩沖區分配是否成功的響應,判斷該數據緩沖區分配是否成功,如成功,則將該數據的位 置信息和長度信息發送到該硬盤控制器;該硬盤控制器,還用于利用該數據發送模塊發送的位置信息和長度信息通過該通信通 道發送該緩存器中的該數據。
8.如權利要求6所述的系統,其特征在于該上層應用模塊,還用于將分配的數據緩沖區的位置信息發送到該數據接收模塊; 該數據接收模塊,還用于保存該分配的數據緩沖區的位置信息和該數據的長度信息, 返回該數據緩沖區分配是否成功的響應時,將該位置信息和長度信息發送到該硬盤控制模 塊;所述硬盤控制模塊,還用于利用該數據接收模塊發送的位置信息和長度信息接收數據 到所述分配的數據緩沖區。
9.如權利要求6所述的系統,其特征在于該數據發送模塊,還用于將所述兩個控制器協商的數字簽名封裝到該數據發送請求中。該數據接收模塊還用于維護該協商的數字簽名,接收該數據發送請求進行解析,判斷 該請求中的數字簽名與該維護的數字簽名是否相同,如是,則根據解析得到的應用類別標 識和長度信息發送到該上層應用模塊,如否,則拋棄該數據發送請求。
10.如權利要求7或8所述的系統,其特征在于該硬盤控制器通過直接內存傳輸(DMA)方式發送或接收該數據到本控制器的緩存器。
11.如權利要求6所述的系統,其特征在于該硬盤控制器采用SAS(串行SCSI)控制器,該通信通道為寬端口全雙工SAS通道,該 數據發送請求為SCSII0(小型計算機系統接口讀寫)請求消息。
全文摘要
本發明公開了一種雙控制器通信系統和方法,應用于兩個控制器構成的系統,該兩個控制器的硬盤控制器直連,構成相互之間的通信通道,該兩個控制器中設定的數據的應用類別相同,該兩個控制器進行數據同步時的握手過程包括源控制器發起數據同步,先將待同步數據的應用類別的標識和長度信息封裝到數據發送請求中,通過該通信通道發送到目標控制器;該目標控制器收到該數據發送請求后,根據其中的應用類別標識和長度信息分配數據緩沖區,向該源控制器返回數據緩沖區分配是否成功的響應。本發明通過在該數據發送請求被接受后直接發送數據緩沖區中的該數據,不需要對該數據進行打包和拷貝,提高了雙控制器間的通信速度和效率。
文檔編號H04L29/08GK101834796SQ20101016731
公開日2010年9月15日 申請日期2010年5月6日 優先權日2010年5月6日
發明者劉長鵬 申請人:中興通訊股份有限公司