本發明涉及信息技術領域,尤其涉及一種非易失性存儲介質。
背景技術:
互聯網小型計算機系統接口(internetsmallcomputersysteminterface,iscsi)協議是由ietf開發的網絡存儲協議,目的是為了用互聯網協議(internetprotocol,ip)實現存儲設備的通信。存儲系統中,在ip協議網絡上使用小型計算機系統接口(smallcomputersysteminterface,scsi)協議通信,也就是使用iscsi協議通信,推動了存儲技術的發展,實現了數據的遠距離傳輸。其中一種應用場景,存儲系統包括控制器、盤框(diskenclosure)與盤,其中控制器與盤框通過iscsi協議通信,盤框中連接多塊盤,盤框及連接的多塊盤一起稱為盤簇(justabunchofdisks,jbod),在該場景下,實現控制器與盤框分離,從而實現靈活部署。
但控制器與盤框通過iscsi協議通信,無論是控制器,還是盤框,都需要先將scsi協議經傳輸控制協議/互聯網協議(transportcontrolprotocol/internetprotocol,tcp/ip)封裝,再由媒體訪問控制(mediaaccesscontrol,mac)層封裝。同理,解封裝過程也要經過mac層解封裝和tcp/ip層解封裝,由于多層協議封裝或解封裝,增加了存儲系統中央處理器(centralprocessingunit,cpu)資源消耗及存儲系統處理延時,降低了存儲系統性能。
技術實現要素:
本發明實施例提供了處理操作請求的存儲系統、方法及裝置。
第一方面,本發明實施例提供了一種處理操作請求的存儲系統,所述存儲系統包括控制器和盤框,所述控制器與所述盤框通過以太網絡通信;所述控制器包括中央處理器和后端適配器;所述盤框和所述后端適配器均有媒體訪問控制mac地址,所述盤框中連接多塊盤,所述盤框中的每塊盤通過串行小型計算機系統接口sas協議與所述盤框連接;所述后端適配器保存所述盤框的mac地址與所述盤框中每塊盤的sas協議地址對應關系;
所述后端適配器,用于接收所述中央處理器發送的小型計算機系統接口scsi協議操作請求,所述scsi協議操作請求中攜帶所述控制器的scsi協議事務標識和目標盤的sas協議地址,根據所述目標盤的sas協議地址,查詢所述盤框的mac地址與所述目標盤的sas協議地址對應關系,獲得所述盤框的mac地址,將所述scsi協議操作請求封裝到以太操作請求報文,根據所述盤框的mac地址向所述盤框發送所述以太操作請求報文;所述以太操作請求報文攜帶所述后端適配器的mac地址和所述盤框的mac地址;
所述盤框用于接收并解封裝所述以太操作請求報文,獲得所述scsi協議操作請求,根據所述目標盤的sas協議地址,向所述目標盤發送所述scsi協議操作請求。
結合本發明第一方面,第一種可能的實施方式中,所述盤框,還用于建立所述后端適配器的mac地址和所述控制器的scsi協議事務標識的對應關系;
所述盤框,還用于接收所述目標盤根據所述scsi協議操作請求發送的scsi協議操作請求響應,其中,所述scsi協議操作請求響應攜帶所述控制器的scsi協議事務標識,根據所述控制器的scsi協議事務標識查詢所述后端適配器的mac地址與所述控制器的scsi協議事務標識的對應關系,獲得所述后端適配器的mac地址,將所述scsi協議操作請求響應封裝到以太操作請求響應報文,根據所述后端適配器的mac地址向所述控制器發送所述以太操作請求響應報文;所述以太操作請求響應報文攜帶所述后端適配器的mac地址;
所述后端適配器,還用于接收并解封裝所述以太操作請求響應報文,獲得所述scsi協議操作請求響應,向所述中央處理器發送所述scsi協議操作請求響應。
結合本發明第一方面的第一種可能的實現方式,在第二種可能的實施方式中,所述后端適配器,還用于將所述scsi協議操作請求中的所述控制器的scsi協議事務標識封裝到所述以太操作請求報文的第一字段,將所述scsi協議操作請求中的所述目標盤的sas協議地址封裝到所述以太操作請求報文的第二字段;其中,所述第一字段、所述第二字段與攜帶所述scsi協議操作請求的字段為三個不同字段;
所述盤框建立所述后端適配器的mac地址和所述控制器的scsi協議事務標識的對應關系,具體包括:所述盤框解封裝所述以太操作請求報文的所述第一字段,獲得所述控制器的scsi協議事務標識,建立所述后端適配器的mac地址和所述控制器的scsi協議事務標識的對應關系;
所述盤框根據所述目標盤的sas協議地址,向所述目標盤發送所述scsi協議操作請求,具體包括:所述盤框解封裝所述以太操作請求報文的所述第二字段,獲得所述目標盤的sas協議地址,根據所述目標盤的sas協議地址,向所述目標盤發送所述scsi協議操作請求。
第二方面,本發明實施例提供了一種處理操作請求的方法,所述方法應用于控制器,所述控制器與盤框通過以太網絡通信;所述控制器包括中央處理器和后端適配器;所述盤框和所述后端適配器均有媒體訪問控制mac地址;所述盤框中連接多塊盤,所述盤框中的每塊盤通過串行小型計算機系統接口sas協議與所述盤框連接;所述后端適配器保存所述盤框的mac地址與所述盤框中每塊盤的sas協議地址對應關系;
所述方法包括:
所述中央處理器發送小型計算機系統接口scsi協議操作請求;其中,所述scsi協議操作請求中攜帶目標盤的sas協議地址;
所述后端適配器接收所述中央處理器發送的所述scsi協議操作請求,根據所述目標盤的sas協議地址,查詢所述盤框的mac地址與所述目標盤的sas協議地址對應關系,獲得所述盤框的mac地址,將所述scsi協議操作請求封裝到攜帶所述后端適配器的mac地址和所述盤框的mac地址的以太操作請求報文,根據所述盤框的mac地址向所述盤框發送所述以太操作請求報文。
結合第二方面,第一種可能的實施方式,所述scsi協議操作請求還攜帶scsi協議事務標識,所述方法還包括:將所述scsi協議事務標識封裝到所述以太操作請求報文的第一字段,將所述目標盤的sas協議地址封裝到所述以太操作請求報文的第二字段;其中,所述第一字段、所述第二字段與所述以太操作請求報文中攜帶所述scsi協議操作請求的字段分別屬于三個不同的字段。
結合第二方面的第一種可能的實施方式,第二種可能的實施方式,所述方法還包括:
所述后端適配器接收并解封裝由所述盤框發送的所述以太操作請求報文的以太響應報文,獲得scsi協議操作請求響應,向所述中央處理器發送所述scsi協議操作請求響應;其中,所述以太操作請求報文的以太響應報文攜帶所述后端適配器的mac地址;
所述中央處理器接收所述scsi協議操作請求響應。
第三方面,本發明實施例提供了一種處理操作請求的方法,所述方法應用于盤框,控制器與所述盤框通過以太網絡通信;所述控制器包括中央處理器和后端適配器;所述盤框和所述后端適配器均有媒體訪問控制mac地址;所述盤框中連接多塊盤,所述盤框中的每塊盤通過串行小型計算機系統接口sas協議與所述盤框連接;
所述方法包括:
所述盤框接收并解封裝所述控制器發送的以太操作請求報文,獲得小型計算機系統接口scsi協議操作請求;其中,所述以太操作請求報文攜帶所述后端適配器的mac地址和所述盤框的mac地址;所述scsi協議操作請求攜帶所述控制器的scsi協議事務標識和目標盤的sas協議地址;
所述盤框根據所述目標盤的sas協議地址,向所述目標盤發送所述scsi協議操作請求。
結合第三方面,第一種可能的實施方式,所述方法還包括,所述盤框建立所述后端適配器的mac地址和所述控制器的scsi協議事務標識的對應關系;
所述盤框接收所述目標盤根據所述scsi協議操作請求發送的scsi協議操作請求響應;其中,所述scsi協議操作請求響應攜帶所述控制器的scsi協議事務標識;
所述盤框根據所述控制器的scsi協議事務標識查詢所述后端適配器的mac地址與所述控制器的scsi協議事務標識的對應關系,獲得所述后端適配器的mac地址;
所述盤框將所述scsi協議操作請求響應封裝到以太操作請求響應報文;所述以太操作請求響應報文攜帶所述后端適配器的mac地址;
所述盤框根據所述后端適配器的mac地址向所述控制器發送所述以太操作請求響應報文。
結合第三方面第一種可能的實施方式,第二種可能的實施方式,所述以太操作請求報文的第一字段攜帶所述scsi協議事務標識,所述以太操作請求報文的第二字段攜帶所述目標盤的sas協議;其中,所述第一字段、所述第二字段與所述以太操作請求報文中攜帶所述scsi協議操作請求的字段分別屬于三個不同的字段。
所述盤框建立所述后端適配器的mac地址和所述控制器的scsi協議事務標識的對應關系,具體包括:所述盤框解封裝所述以太操作請求報文的所述第一字段,獲得所述控制器的scsi協議事務標識,建立所述后端適配器的mac地址和所述控制器的scsi協議事務標識的對應關系;
所述盤框根據所述目標盤的sas協議地址,向所述目標盤發送所述scsi協議操作請求,具體包括:所述盤框解封裝所述以太操作請求報文的所述第二字段,獲得所述目標盤的sas協議地址,根據所述目標盤的sas協議地址,向所述目標盤發送所述scsi協議操作請求。
第四方面,本發明實施例提供了一種控制器,所述控制器應用于存儲系統,所述存儲系統包括所述控制器和盤框;所述控制器包括中央處理器和后端適配器;所述盤框和所述后端適配器均有媒體訪問控制mac地址;所述盤框中連接多塊盤,所述盤框中的每塊盤通過串行小型計算機系統接口sas協議與所述盤框連接;所述后端適配器保存所述盤框的mac地址與所述盤框中每塊盤的sas協議地址對應關系;所述控制器與所述盤框通過以太網絡通信;
所述中央處理器,用于發送小型計算機系統接口scsi協議操作請求;其中,所述scsi協議操作請求中攜帶目標盤的sas協議地址;
所述后端適配器,用于接收所述scsi協議操作請求,根據所述目標盤的sas協議地址,查詢所述盤框的mac地址與所述目標盤的sas協議地址對應關系,獲得所述盤框的mac地址,將所述scsi協議操作請求封裝到以太操作請求報文,根據所述盤框的mac地址向所述盤框發送所述以太操作請求報文;所述以太操作請求報文攜帶所述后端適配器的mac地址和所述盤框的mac地址。
結合第四方面,第一種可能的實施方式,所述scsi協議操作請求還攜帶scsi協議事務標識,所述后端適配器,還用于將所述scsi協議事務標識封裝到所述以太操作請求報文的第一字段,將所述目標盤的sas協議地址封裝到所述以太操作請求報文的第二字段;其中,所述第一字段、所述第二字段與所述以太操作請求報文中攜帶所述scsi協議操作請求的字段分別屬于三個不同的字段。
結合第四方面的第一種可能的實施方式,第二種可能的實施方式,所述后端適配器,還用于接收并解封裝由所述盤框發送的所述以太操作請求報文的以太響應報文,獲得scsi協議操作請求響應,向所述中央處理器發送所述scsi協議操作請求響應;其中,所述以太操作請求報文的以太響應報文攜帶所述后端適配器的mac地址;
所述中央處理器,還用于接收所述scsi協議操作請求響應。
第五方面,本發明實施例提供了一種盤框,所述盤框應用于存儲系統,所述存儲系統包括控制器和盤框;所述控制器包括中央處理器和后端適配器;所述盤框和所述后端適配器均有媒體訪問控制mac地址;所述盤框中連接多塊盤,所述盤框中的每塊盤通過串行小型計算機系統接口sas協議與所述盤框連接;所述控制器與所述盤框通過以太網絡通信;其中,所述盤框包括:
第一收發單元,用于接收所述控制器發送的以太操作請求報文;其中,所述以太操作請求報文攜帶所述后端適配器的mac地址和所述盤框的mac地址;
封裝和解封裝單元,用于將所述第一收發單元接收的所述以太操作請求報文解封裝獲得小型計算機系統接口scsi協議操作請求;所述scsi協議操作請求攜帶所述控制器的scsi協議事務標識和目標盤的sas協議地址;
第二收發單元,用于根據所述目標盤的sas協議地址,向所述目標盤發送所述scsi協議操作請求。
結合第五方面,第一種可能的實施方式,還包括建立單元和查詢單元;
所述建立單元,用于建立所述后端適配器的mac地址和所述控制器的scsi協議事務標識的對應關系;
所述第二收發單元,還用于接收所述目標盤根據所述scsi協議操作請求發送的scsi協議操作請求響應;其中,所述scsi協議操作請求響應攜帶所述控制器的scsi協議事務標識;
所述查詢單元,用于根據所述控制器的scsi協議事務標識查詢所述建立單元建立的所述后端適配器的mac地址與所述控制器的scsi協議事務標識的對應關系,獲得所述后端適配器的mac地址;
所述封裝和解封裝單元,還用于將所述scsi協議操作請求響應封裝到以太操作請求響應報文;所述以太操作請求響應報文攜帶所述后端適配器的mac地址;
所述第一收發單元,還用于根據所述后端適配器的mac地址向所述控制器發送所述以太操作請求響應報文。
結合第五方面第一種可能的實施方式,第二種可能的實施方式,所述以太操作請求報文的第一字段攜帶所述scsi協議事務標識,所述以太操作請求報文的第二字段攜帶所述目標盤的sas協議;其中,所述第一字段、所述第二字段與所述以太操作請求報文中攜帶所述scsi協議操作請求的字段分別屬于三個不同的字段;
所述建立單元建立所述后端適配器的mac地址和所述控制器的scsi協議事務標識的對應關系,具體包括:所述封裝和解封裝單元解封裝所述以太操作請求報文的所述第一字段,獲得所述控制器的scsi協議事務標識,所述建立單元建立所述后端適配器的mac地址和所述控制器的scsi協議事務標識的對應關系;
所述第二收發單元根據所述目標盤的sas協議地址,向所述目標盤發送所述scsi協議操作請求,具體包括:所述封裝和解封裝單元解封裝所述以太操作請求報文的所述第二字段,獲得所述目標盤的sas協議地址,所述第二收發單元根據所述目標盤的sas協議地址,向所述目標盤發送所述scsi協議操作請求。
第六方面,本發明實施例提供了一種后端適配器,應用于存儲系統的控制器中,所述存儲系統包括控制器和盤框;所述控制器包括中央處理器和所述后端適配器;所述盤框和所述后端適配器均有媒體訪問控制mac地址;所述盤框中連接多塊盤,所述盤框中的每塊盤通過串行小型計算機系統接口sas協議與所述盤框連接;所述后端適配器保存所述盤框的mac地址與所述盤框中每塊盤的sas協議地址對應關系;所述控制器與所述盤框通過以太網絡通信;
所述后端適配器包括:
第一收發單元,用于接收中央處理器發送的小型計算機系統接口scsi協議操作請求,其中,所述scsi協議操作請求中攜帶目標盤的sas協議地址;
查詢單元,用于查詢所述盤框的mac地址與所述目標盤的sas協議地址對應關系,獲得所述盤框的mac地址;
封裝與解封裝單元,用于將所述scsi協議操作請求封裝到以太操作請求報文;所述以太操作請求報文攜帶所述后端適配器的mac地址和所述盤框的mac地址;
第二收發單元,用于根據所述盤框的mac地址向所述盤框發送所述以太操作請求報文。
結合第六方面,第一種可能的實施方式,所述scsi協議操作請求還攜帶scsi協議事務標識,所述封裝與解封裝單元,還用于將所述scsi協議事務標識封裝到所述以太操作請求報文的第一字段,將所述目標盤的sas協議地址封裝到第二字段;其中,所述第一字段、所述第二字段與所述以太操作請求報文中攜帶所述scsi協議操作請求的字段分別屬于三個不同的字段。
結合第六方面第一種可能的實施方式,第二種實施方式,所述第二收發單元,還用于接收所述盤框發送的所述以太操作請求報文的以太響應報文;其中,所述以太操作請求報文的以太響應報文攜帶所述后端適配器的mac地址;
所述封裝與解封裝單元,還用于解封裝所述以太操作請求報文的以太響應報文,獲得scsi協議操作請求響應;
所述第一收發單元,還用于向所述中央處理器發送所述scsi協議操作請求響應。
第七方面,本發明實施例提供了一種后端適配器,應用于存儲系統的控制器中,所述存儲系統包括控制器和盤框;所述控制器包括中央處理器和所述后端適配器;所述盤框和所述后端適配器均有媒體訪問控制mac地址;所述盤框中連接多塊盤,所述盤框中的每塊盤通過串行小型計算機系統接口sas協議與所述盤框連接;所述后端適配器保存所述盤框的mac地址與所述盤框中每塊盤的sas協議地址對應關系;所述控制器與所述盤框通過以太網絡通信;
其中,所述后端適配器包括第一接口、第二接口、內存和第一中央處理器;所述第一接口,用于接收所述中央處理器發送的小型計算機系統接口scsi協議操作請求;其中,所述scsi協議操作請求中攜帶目標盤的sas協議地址;
所述第一中央處理器執行所述內存中的計算機指令,以執行如下操作:
根據所述目標盤的sas協議地址,查詢所述盤框的mac地址與所述目標盤的sas協議地址對應關系,獲得所述盤框的mac地址,將所述scsi協議操作請求封裝到以太操作請求報文,所述以太操作請求報文攜帶所述后端適配器的mac地址和所述盤框的mac地址;
第二接口,用于根據所述盤框的mac地址向所述盤框發送所述以太操作請求報文。
結合第七方面,第一種可能的實施方式,所述scsi協議操作請求還攜帶scsi協議事務標識,所述第一中央處理器執行所述內存中的計算機指令,還執行如下操作:
將所述scsi協議事務標識封裝到所述以太操作請求報文的第一字段,將所述目標盤的sas協議地址封裝到第二字段;其中,所述第一字段、所述第二字段與所述以太操作請求報文中攜帶所述scsi協議操作請求的字段分別屬于三個不同的字段。
結合第七方面第一種可能的實施方式,第二種可能的實施方式,所述第二接口,還用于接收所述盤框發送的所述以太操作請求報文的以太響應報文;其中,所述以太操作請求報文的以太響應報文攜帶所述后端適配器的mac地址;
所述第一中央處理器執行所述內存中的計算機指令,還用于執行:
解封裝所述以太操作請求報文的以太響應報文,獲得scsi協議操作請求響應;
所述第一接口,還用于向所述中央處理器發送所述scsi協議操作請求響應。
第八方面,本發明實施例提供了一種盤框,所述盤框應用于存儲系統,所述存儲系統包括控制器和盤框;所述控制器包括中央處理器和后端適配器;所述盤框和所述后端適配器均有媒體訪問控制mac地址;所述盤框中連接多塊盤,所述盤框中的每塊盤通過串行小型計算機系統接口sas協議與所述盤框連接;所述控制器與所述盤框通過以太網絡通信;
其中,所述盤框包括:前端接口、后端接口、第一中央處理器和第一內存;
所述前端接口,用于接收并解封裝所述控制器發送的以太操作請求報文,獲得小型計算機系統接口scsi協議操作請求,向所述第一中央處理器發送所述scsi協議操作請求;所述以太操作請求報文攜帶所述后端適配器的mac地址和所述盤框的mac地址;所述scsi協議操作請求攜帶所述控制器的scsi協議事務標識和目標盤的sas協議地址;
所述第一中央處理器執行所述第一內存中的計算機指令,以執行如下操作:
接收所述scsi協議操作請求,向所述后端接口發送所述scsi協議操作請求;
所述后端接口,用于接收所述scsi協議操作請求,根據所述目標盤的sas協議地址向所述目標盤發送所述scsi協議操作請求。
結合第八方面,第一種可能的實施方式,所述第一中央處理器執行所述第一內存中的計算機指令,還執行如下操作:
建立所述后端適配器的mac地址和所述控制器的scsi協議事務標識的對應關系,所述后端接口,用于根據所述目標盤的sas協議地址;
所述后端接口,還用于接收所述目標盤根據所述scsi協議操作請求發送的scsi協議操作請求響應;其中,所述scsi協議操作請求響應攜帶所述控制器的scsi協議事務標識;
所述第一中央處理器執行所述第一內存中的計算機指令,還執行如下操作:
根據所述scsi協議操作請求響應攜帶的所述控制器的scsi協議事務標識,查詢所述后端適配器的mac地址與所述控制器的scsi協議事務標識的對應關系,獲得所述后端適配器的mac地址;
所述前端接口,還用于接收所述第一中央處理器發送的所述scsi協議操作請求響應,根據所述第一中央處理器查找到的所述后端適配器的mac地址,將所述scsi協議操作請求響應封裝到以太操作請求響應報文;根據所述后端適配器的mac地址向所述控制器發送所述以太操作請求響應報文;所述以太操作請求響應報文攜帶所述后端適配器的mac地址。
結合第八方面第一種可能的實施方式,第二種可能的實施方式,所述以太操作請求報文的第一字段攜帶所述scsi協議事務標識,所述以太操作請求報文的第二字段攜帶所述目標盤的sas協議;其中,所述第一字段、所述第二字段與所述以太操作請求報文中攜帶所述scsi協議操作請求的字段分別屬于三個不同的字段;
所述建立所述后端適配器的mac地址和所述控制器的scsi協議事務標識的對應關系,具體包括:
所述前端接口解封裝所述以太操作請求報文的所述第一字段,獲得所述控制器的scsi協議事務標識,所述第一處理器建立單元建立所述后端適配器的mac地址和所述控制器的scsi協議事務標識的對應關系;
所述后端接口根據所述目標盤的sas協議地址,向所述目標盤發送所述scsi協議操作請求,具體包括:所述封前端接口解封裝所述以太操作請求報文的所述第二字段,獲得所述目標盤的sas協議地址,所述后端接口根據所述目標盤的sas協議地址,向所述目標盤發送所述scsi協議操作請求。
本發明實施例提供的處理操作請求的存儲系統、方法及裝置,將控制器將scsi協議操作請求不通過tcp/ip協議層,直接在mac層將scsi協議操作請求封裝到以太操作請求報文,盤框解封裝以太操作請求獲得scsi協議操作請求,將scsi協議操作請求發送到目標盤,減少了封裝的層次,減少了存儲系統處理延時,提高了存儲系統性能。
附圖說明
為了更清楚地說明本發明實施例的技術方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,下面描述中的附圖僅僅是本發明的一些實施例,還可以根據這些附圖獲得其他的附圖。
圖1為本發明實施例存儲系統架構圖;
圖2為本發明實施例控制器結構示意圖;
圖3a和圖3b為本發明實施例盤框結構示意圖;
圖4為本發明實施例盤框保存控制器的scsi協議事務標識和后端適配器的mac地址的對應關系的二維表;
圖5為本發明實施例控制器、盤框及目標盤通信流程圖;
圖6為本發明實施例控制器通過心跳廣播包收集盤框的mac地址及與該盤框通信的盤的sas協議地址的流程圖;
圖7為本發明實施例心跳廣播包的報文格式示意圖;
圖8為本發明實施例心跳廣播包響應的報文格式示意圖;
圖9為本發明實施例后端適配器保存的盤框的mac地址及與該盤框通信的盤的sas協議地址的對應關系的二維表示意圖;
圖10為本發明實施例控制器結構示意圖;
圖11為本發明實施例后端適配器的結構示意圖;
圖12為本發明實施例封裝scsi協議操作請求的以太操作請求報文格式示意圖;
圖13為本發明實施例后端適配器的結構示意圖;
圖14為本發明實施例存儲系統架構系統圖。
具體實施方式
為使本發明實施例的目的、技術方案和優點更加清楚,下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例是本發明一部分實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。
如圖1所示,為本發明實施例提供的一種存儲系統,包括控制器101和盤框102,所述盤框102連接多塊盤1031…103n,1041…104n,其中,n可根據存儲系統需要來定義。對于盤框102中連接多塊盤1031…103n,1041…104n這種表述,另一種表述方式為:盤框102中放置多塊盤1031…103n,1041…104n,其中,盤1031…103n,1041…104n與盤框102通信連接。控制器101與盤框102通過以太網絡進行通信,盤1031…103n,1041…104n通過串行小型計算機系統接口(serialattachedscsi,sas)與盤框102連接,關于sas協議的具體介紹可以參考sasprotocollayer-2(spl-2)標準(http://www.t10.org/members/w_spl2.htm),在此不再贅述。其中,盤1031…103n,1041…104n可以為磁盤,也可以為固態硬盤,或者其他存儲介質,或上述幾種存儲介質的組合,本發明實施例對此不作限定。
控制器101的一種示例性結構如圖2所示,包括前端適配器1011、中央處理器1012、內存1013和后端適配器1014,其中前端適配器1011與服務器通信,用于接收服務器發送的讀請求,并根據讀請求向服務器返回數據,或者用于接收服務器發送的寫請求,并根據寫請求向服務器發送響應。中央處理器1012,用于根據內存1013中的計算機指令處理前端適配器接收的讀寫請求,或用于向盤框102中的盤發送操作請求,或接收盤框102發送的操作請求響應。后端適配器1014,用于與盤框102通過以太網絡通信。
盤框102,如圖3a所示,包括前端接口1021、中央處理器1022、內存1023和后端接口1024,盤框102通過前端接口1021與控制器101通信,后端接口1024,用于與盤1031…103n,1041…104n通信,中央處理器1022,用于處理來自控制器101的基于第一協議的讀操作請求或寫操作請求,根據該讀操作請求或寫操作請求向盤1031…103n,1041…104n中的目標盤發送基于第二協議的讀操作請求或寫操作請求,并根據目標盤發送的基于第二協議的讀操作請求或寫操作請求響應,向控制器101發送基于第一協議的讀操作請求或寫操作請求響應;第一協議和第二協議可以為不同的協議,具體由使用場景決定,具體到本發明實施例,第一協議為以太網通信協議,第二協議為sas協議。盤框102的后端接口1024通過sas協議接口,與盤1031…103n,1041…104n的sas協議接口使用scsi協議通信。具體地,盤框102的前端接口1021,用于接收并解封裝所述控制器發送的以太操作請求報文,獲得scsi協議操作請求,向所述中央處理器1022發送所述scsi協議操作請求。所述以太操作請求報文攜帶后端適配器1014的mac地址和盤框102的mac地址;所述scsi協議操作請求攜帶所述控制器101的scsi協議事務標識和目標盤1031的sas協議地址,其中,scsi協議事務標識用于唯一標識控制器101與目標盤1031建立的特定scsi協議事務鏈接;目標盤是指scsi協議操作請求訪問的盤。
中央處理器1022執行所述內存1023中的計算機指令,以執行如下操作:接收所述scsi協議操作請求,建立所述后端適配器1014的mac地址和所述控制器101的scsi協議事務標識的對應關系,根據所述目標盤1031的sas協議地址,向后端接口1024發送所述scsi協議操作請求。其中,根據所述目標盤1031的sas協議地址,一種實現方式為:解析scsi協議操作請求獲得目標盤1031的sas協議地址。
后端接口1024,用于接收所述scsi協議操作請求,并向目標盤1031發送所述scsi協議操作請求;后端接口1024,還用于接收目標盤1031根據所述scsi協議操作請求發送的scsi協議操作請求響應;其中,所述scsi協議操作請求響應攜帶所述控制器101的scsi協議事務標識。
相應的,中央處理器1022執行所述內存中的計算機指令,還執行如下操作:根據所述scsi協議操作請求響應攜帶的所述控制器101的scsi協議事務標識查詢后端適配器1014的mac地址與控制器101的scsi協議事務狀態標識的對應關系,獲得后端適配器1014的mac地址;前端接口1201,還用于接收中央處理器1022發送的所述scsi協議操作請求響應,根據中央處理器1022查找到的后端適配器1014的mac地址,將所述scsi協議操作請求響應封裝到攜帶所述后端適配器1014的mac地址的以太操作請求響應報文;根據后端適配器1014的mac地址向所述控制器101發送所述以太操作請求響應報文。
另一種實現方式,后端適配器1014將scsi協議操作請求封裝到以太操作請求報文,還將該scsi協議操作請求攜帶的控制器101的scsi協議事務標識封裝到以太操作請求報文的第一字段,將目標盤的sas協議地址封裝到第二字段,向盤框102發送該以太操作請求報文;其中,第一字段、第二字段和攜帶所述scsi協議操作請求的字段為三個不同的字段;盤框102解封裝該以太請求報文,可以不用再解析攜帶scsi協議操作請求的字段,從scsi協議操作請求中獲得控制器101的scsi協議事務標識和目標盤的sas協議地址,而是從前述第二字段中獲得目標盤的sas協議地址,并根據目標盤的sas協議地址將scsi協議操作請求發送到目標盤,盤框102從前述第一字段中獲得控制器101的scsi協議事務標識,根據從前述第一字段中獲得控制器101的scsi協議事務標識建立控制器101的scsi協議事務標識與后端適配器101的mac的對應關系,這一實施方式中,盤框102將以太操作請求報文解封裝后,不需要解析scsi協議操作請求即可建立控制器101的scsi協議事務標識建立控制器101的scsi協議事務標識與后端適配器101的mac的對應關系,向目標盤發送該scsi協議操作請求,從而節省了盤框102的計算資源。
示例性地,盤框102的中央處理器1022建立控制器101的scsi協議事務標識和后端適配器1014的mac地址的對應關系,如圖4所示,以二維表的形式保存控制器101的scsi協議事務標識和后端適配器1014的mac地址的對應關系。在具體計算機實現中,二維表可以用二維數組或者計算機可識別形式存儲,本發明實施例在此不作限定。scsi協議操作請求響應報文及以太操作請求響應報文分別與scsi協議操作請求和以太操作請求報文的報文格式對應,具體區別在于報文字段攜帶的內容不同。具體地,當以太操作請求報文中,使用前述的第一字段攜帶scsi協議事務標識,使用第二字段攜帶目的sas協議地址時,以太操作請求響應報文中,第一字段仍然攜帶scsi協議事務標識,第二字段中的目的sas協議地址為空。
本發明實施例圖3a描述的盤框102具體可以由包含通用中央處理器的計算機實現,如圖3a所示。另一方面,也可以為特定應用集成電路(application-specificintegratedcircuit,asic),即asic商業芯片與內存配合使用實現。或者為現場可編程邏輯門陣列(fieldprogrammablegatearray,fpga)實現,其中,從邏輯上劃分包括處理功能,即中央處理器,及存儲處理指令的內存。
如圖3b所示,是基于如圖3a所示的盤框102的結構,盤框102的結構的另一種邏輯呈現。包括如下單元。
第一收發單元1021’,用于接收控制器101發送的以太操作請求報文;其中,所述以太操作請求報文攜帶后端適配器1014的mac地址和盤框102的mac地址。
封裝和解封裝單元1022’,用于將第一收發單元1021’接收的所述太操作請求報文解封裝獲得scsi協議操作請求;所述scsi協議操作請求攜帶控制器101的scsi協議事務標識和目標盤1031的sas協議地址。
第二收發單元1024’,用于,根據所述目標盤1031的sas協議地址,向目標盤1031發送所述scsi協議操作請求。進一步地,盤框102還包括建立單元1023’和查詢單元1025’。建立單元1023’,用于建立后端適配器1014的mac地址和控制器101的scsi協議事務標識的對應關系。進一步地,第二收發單元1024’,還用于,接收目標盤1031根據所述scsi協議操作請求發送的scsi協議操作請求響應;其中,所述scsi協議操作請求響應攜帶控制器101的scsi協議事務標識。查詢單元1025’,用于根據控制器101的scsi協議事務標識查詢建立單元1023’建立的后端適配器1014的mac地址與控制器101的scsi協議事務標識的對應關系,獲得后端適配器1014的mac地址。封裝和解封裝單元1022’,還用于將所述scsi協議操作請求響應封裝到以太操作請求響應報文,以太操作請求響應報文攜帶所述后端適配器1014的mac地址;第一收發單元1021’,還用于根據后端適配器1014的mac地址向控制器101發送所述以太操作請求響應報文。其中一種實現方式,以太操作請求報文的第一字段攜帶所述scsi協議事務標識,以太操作請求報文的第二字段攜帶所述目標盤1031的sas協議;其中,所述第一字段、所述第二字段與所述以太操作請求報文中攜帶所述scsi協議操作請求的字段分別屬于三個不同的字段。建立單元1023’建立所述后端適配器1014的mac地址和所述控制器101的scsi協議事務標識的對應關系,具體包括:所述封裝和解封裝單元1022’解封裝所述以太操作請求報文的所述第一字段,獲得所述控制器101的scsi協議事務標識,建立單元1023’建立所述后端適配器1014的mac地址和控制器101的scsi協議事務標識的對應關系。第二收發單元1024’根據所述目標盤1031的sas協議地址,向目標盤1031發送scsi協議操作請求,具體包括:封裝和解封裝單元1022’解封裝所述以太操作請求報文的所述第二字段,獲得目標盤1031的sas協議地址,第二收發單元1024’根據目標盤1031的sas協議地址,向目標盤1031發送所述scsi協議操作請求。
基于圖3b的另一實施例,后端適配器1014發送的以太操作請求報文的第一字段攜帶控制器101的scsi協議事務標識,第二字段攜帶目標盤的sas協議;其中,以太操作請求報文中的第一字段、第二字段和攜帶所述scsi協議操作請求的字段分別屬于三個不同的字段;建立單元1023’建立后端適配器1014的mac地址和控制器101的scsi協議事務標識的對應關系,控制器101的scsi協議事務標識是盤框102解封裝以太操作請求報文,從第一字段中獲得的。
第二收發單元1024’根據目標盤的sas協議地址,向目標盤發送該scsi協議操作請求中的所述目標盤的sas協議地址,具體包括是封裝和解封裝單元1022’解封裝以太操作請求報文,從第二字段中獲得目標盤的sas協議地址,第二收發單元1024’根據從第二字段中獲得的目標盤的sas協議地址,向目標盤發送該scsi協議操作請求中的所述目標盤的sas協議地址。這樣不需要再解析scsi協議操作請求,即可根據第一字段中攜帶的控制器101的scsi協議事務標識建立控制器101的scsi協議事務標識與后端適配器1014的對應關系,并且根據第二字段中攜帶的目標盤1031的sas協議地址直接將scsi協議操作請求發送到目標盤1031。
本發明實施例提供一種方法,可以基于圖2的結構執行。方法具體流程,如圖5所示,包括如下步驟。
501:中央處理器1012向后端適配器1014發送scsi協議操作請求。
502:后端適配器1014接收到scsi協議操作請求后,查詢盤框102的mac地址與目標盤1031的sas協議地址對應關系,獲得盤框102的mac地址。將scsi協議操作請求封裝成以太操作請求報文,以太請求報文中到攜帶后端適配器1014的mac地址和盤框102的mac地址。
503:后端適配器1014根據盤框102的mac地址向盤框102發送以太操作請求報文。
504:盤框102接收并解封裝以太操作請求報文,獲得scsi協議操作請求,建立后端適配器1014的mac地址與控制器101的scsi協議事務標識的對應關系。
505:盤框102根據目標盤1031的sas協議地址,向目標盤1031發送scsi協議操作請求。
目標盤1031接收到scsi協議操作請求后,生成scsi協議操作請求響應。
506:盤框102接收目標盤1031根據scsi協議操作請求發送的scsi協議操作請求響應。
507:盤框102根據控制器101的scsi協議事務標識,查詢后端適配器1014的mac地址與控制器101的scsi協議事務標識的對應關系,獲得后端適配器1014的mac地址,將scsi協議操作請求響應封裝到攜帶后端適配器1014的mac地址的以太操作請求響應報文。
508:盤框102根據后端適配器1014的mac地址向控制器101發送以太操作請求響應報文。
509:后端適配器1014接收并解封裝以太操作請求響應報文,獲得scsi協議操作請求響應。
510:后端適配器1014向中央處理器1012發送scsi協議操作請求響應。
在本發明實施例中,控制器101的后端適配器1014有mac地址,盤框102也有mac地址。控制器101與盤框102使用以太網絡通信時,將scsi協議命令封裝到以太報文,中間控制器101和盤框102的中央處理器都不使用tcp/ip協議進行封裝或解封裝,減少了封裝或解封裝的層次,減少了存儲系統中央處理器資源消耗,減少了存儲系統處理延時,提高了存儲系統性能。
在本發明實施例場景下,為實現控制器101訪問盤1031…103n,1041…104n中的任一塊盤,在控制器101側需要建立盤框102的mac地址與盤1031…103n,1041…104n中每一塊盤的sas協議地址的對應關系,盤框102則需要保存控制器101的scsi協議事務標識與控制器101的后端適配器1014的mac地址的對應關系。在本發明實施例中的存儲系統上電后,控制器101的后端適配器1024發送攜帶后端適配器1014的mac地址和控制器101的scsi協議事務標識的心跳廣播包,該心跳廣播包一方面用于收集盤框102的mac地址及與盤框102通信的盤1031…103n,1041…104n中每一塊盤的sas協議地址;另一方面,可以及時更新與盤框102通信的盤的狀態變化,如盤的增加或者減少。盤框102收集盤1031…103n,1041…104n中每一塊盤的sas協議地址。盤框102收到心跳廣播包后,向后端適配器1014發送心跳廣播包響應,心跳廣播包響應中攜帶盤框102的mac地址和盤1031…103n,1041…104n中每一塊盤的sas協議地址。控制器101的后端適配器1014接收盤框102發送的心跳廣播包響應后,建立并保存盤框102的mac地址和盤1031…103n,1041…104n中每一塊盤的sas協議地址的對應關系。
其中一種實現方式,如圖6所示,包括:
步驟601:控制器101中的后端適配器1014發送心跳廣播包。
步驟602:盤框102接收控制器101中的后端適配器1014發送的心跳廣播包。
步驟603:盤框102向控制器101發送心跳廣播包響應。
步驟604:控制器101中的后端適配器1014接收盤框102發送的心跳廣播包響應。
步驟605:后端適配器1014從心跳廣播包響應中解析出盤框102的mac地址和盤1031…103n,1041…104n中每一塊盤的sas協議地址,建立盤框102的mac地址和盤1031…103n,1041…104n中每一塊盤的sas協議地址的對應關系。
示例性地,步驟601中,后端適配器1014發送的心跳廣播包的報文格式如圖7所示,后端適配器1014發送的心跳廣播包同樣是將scsi協議報文不經過tcp/ip層直接封裝到以太報文中。從圖7可知,后端適配器1014發送心跳廣播包作為以太報文,包括目的mac地址字段、源mac地址字段和有效載荷(payload)。其中,源mac地址位攜帶后端適配器1014的mac地址,作為廣播報文,目的mac地址字段中每一位均為1;該心跳廣播包的有效載荷承載其他字段,有效載荷可包含多個字段,如:scsi協議報文類型字段,用于表示scsi協議操作請求的類型,如scsi協議讀操作請求或scsi協議寫操作請求;scsi協議事務標識字段,用于唯一標識控制器與盤建立的特定scsi協議事務鏈接;目的sas協議地址字段用于表示接收封裝到該scsi協議操作請求的盤的sas協議地址,通過該字段可以識別接收當前scsi協議操作請求的目標盤的sas協議地址,而不需要再解析查詢scsi協議幀數據字段來確定目標盤的sas協議地址,在心跳廣播包中,目的sas地址字段中每一位均為0。有效載荷還包括操作碼字段,其中,操作碼字段用于表示scsi命令和數據字段的操作類型,作為心跳廣播包,操作碼字段為0x050,用于表示廣播報文。圖7所示的心跳廣播包的報文,盤框102接收到該心跳廣播包,解封裝以太操作請求報文,從目的sas地址字段攜帶的信息判斷該報文為心跳廣播包報文,從而提高了報文處理速度。另一種實現方式,有效數字段中不包括scsi協議事務標識字段和目的sas協議地址字段和scsi協議報文類型字段,心跳廣播包的有效載荷包括scsi協議幀數據字段,scsi協議幀字段攜帶scsi協議操作請求,心跳廣播包中攜帶的控制器101的scsi協議事務標識和目的sas協議地址可以從心跳廣播包中的scsi協議協議幀數據字段獲得。圖7中的以太操作請求報文格式的心跳廣播包雖然給出了目標mac地址字段、源mac地址字段和有效載荷,但對本領域技術人員來說,以太操作請求報文根據需要還可包括其他字段,有效載荷根據需要還可以攜帶其他字段,在此不再贅述。
示例性地,步驟603中,盤框102向控制器101發送的心跳廣播包響應的報文格式,如圖8所示包括,心跳廣播包響應的目的mac地址字段為后端適配器1014的mac地址,源mac地址字段攜帶盤框102的mac地址,操作碼字段為0x060,有效載荷還包括報文內容標識字段,用于攜帶與盤框102通信的盤的sas協議地址。
示例性地,步驟605中,后端適配器1014從心跳廣播包響應中解析出盤框102的mac地址和盤1031…103n,1041…104n中每一塊盤的sas協議地址。如圖9所示,以二維表的形式存儲盤框102的mac地址和盤1031…103n,1041…104n中每一塊盤的sas協議地址的對應關系。在具體計算機實現中,二維表可以用二維數組或者計算機可識別形式存儲,本發明實施例在此不作限定。盤框102向控制器發送的心跳廣播包響應,具體地,可以一次性在該心跳廣播包響應攜帶盤框102的mac地址和所有盤1031…103n,1041…104n的sas協議地址,也可以在一次該心跳廣播包響應中攜帶盤框102的mac地址和部分盤的sas協議地址,通過控制器101與盤框102之間多次心跳廣播包和心跳廣播包響應交互,更新和完善后端適配器1014保存的盤框102的mac地址和盤1031…103n,1041…104n中每一塊盤的sas協議地址的對應關系。當有新的盤連接到盤框102后,盤框102接收控制器101發送的心跳廣播包,在向控制器101發送心跳廣播包響應時攜帶盤框102的mac地址和該新的盤的sas協議地址。本發明實施例中,保存控制器101的scsi協議事務標識和后端適配器1014的mac地址的對應關系的另一種表述,即存儲控制器101的scsi協議事務標識和后端適配器1014的mac地址的對應關系;保存盤框102的mac地址和盤1031…103n,1041…104n中每一塊盤的sas協議地址的對應關系的另一種表述,即存儲盤框102的mac地址和盤1031…103n,1041…104n中每一塊盤的sas協議地址的對應關系具有相同的含義。
本發明實施例中,在圖2所示的控制器結構圖中,控制器101的中央處理器與后端適配器1014的連接關系,如圖10所示,前端適配器1011與后端適配器1014通過外圍組件快速互聯(peripheralcomponentinterconnectexpress,pcie)交換與中央處理器1012通信。當然,前端適配器1011與后端適配器1014通過pcie交換連接,與中央處理器1012通信這種實現方式只是其中一種實現方式,也可以通過南橋芯片等來實現,對此不作限定。
以圖10所示控制器結構為例,控制器101的中央處理器1012向盤框102連接的目標盤發送scsi協議操作請求,如讀操作請求,或者寫操作請求,本發明對此不作限定。該scsi協議的操作請求可以為中央處理器1012根據前端適配器1011接收服務器發送的操作請求向目標盤發送的,對此不作限定。示例地,scsi協議的操作請求的報文格式為scsi協議標準報文格式,該scsi協議的操作請求中攜帶控制器101的scsi協議事務標識和目標盤的sas協議地址。后端適配器1014接收該scsi協議的操作請求,根據該scsi協議的操作請求中攜帶的sas協議地址,查詢盤框的mac地址與目標盤的sas協議地址的對應關系,如查詢表示盤框102的mac地址與盤1031…103n,1041…104n中每一塊盤的sas協議地址對應關系的二維表。本發明實施例中,以該scsi協議的操作請求中攜帶的目標盤sas協議地址為盤1031的sas協議地址為例。根據目標盤1031的sas協議地址查詢盤框102與目標盤1031的sas協議地址的對應關系,得到盤框102的mac地址。
示例地,后端適配器1014的結構如圖11所示,包括:pcie接口,直接內存訪問(directmemoryaccess,dma)引擎,輸入輸出狀態維護模塊,協議封裝與解封裝模塊和以太模塊。其中,pcie接口,用于與中央處理器1012的pcie端口進行數據傳輸,如接收中央處理器1012發送的scsi協議操作請求。dma引擎為后端適配器1014可選結構,根據scsi協議報文類型與攜帶的內存地址,可以從控制器的內存1013中直接讀取數據或直接向控制器的內存1013中寫入數據。輸入輸出狀態維護模塊用于前述的收集并維護盤框的mac地址與盤的sas協議地址的對應關系,如存儲用于表示盤框102的mac地址與盤1031…103n,1041…104n中每一塊盤的sas協議地址對應關系的二維表。輸入輸出狀態維護模塊根據pcie接口接收到的scsi協議操作請求攜帶的目標盤的sas協議地址,查詢目標盤所在的盤框的mac地址,目標盤所在的盤框是指放置目標盤的盤框,關于放置的含義請見前面描述。本實施例中,該scsi協議操作請求攜帶的目標盤的sas協議地址為盤1031的sas協議地址,查詢目標盤1031的sas協議地址對應的盤框的mac地址為盤框102的mac地址,將該scsi協議操作請求與盤框102的mac地址發送給協議封裝與解封裝模塊,如圖11所示,協議封裝與解封裝模塊將該scsi協議操作請求封裝到scsi協議幀數據字段,同時目的sas協議地址字段中封裝目標盤1031的sas協議地址,scsi協議報文類型字段封裝scsi協議操作請求的類型,scsi協議事務標識字段封裝控制器101的scsi協議事務標識,將scsi協議報文類型字段scsi協議事務標識字段、目的sas協議地址字段和scsi協議幀數據字段封裝到以太操作請求報文中的有效載荷,該以太報文的目標mac地址字段攜帶盤框102的mac地址,源mac地址字段攜帶后端適配器1014的mac地址,這里稱以太操作請求報文有效載荷中的目的sas協議地址字段、scsi協議事務標識字段和攜帶scsi協議操作請求的scsi協議幀數據字段為三個不同的字段;另一種實現方式,以太操作請求報文中的有效載荷中不包含scsi協議事務標識字段和目的sas協議地址字段,而是則盤框102從scsi協議幀數據字段中攜帶的scsi協議操作請求中獲取目標盤1031的sas地址和控制器101的scsi協議事務標識。以太模塊將該以太操作請求報文通過以太網絡發送到盤框102。以太模塊包括流量控制模塊、報文重傳模塊、以太mac模塊和以太接口,其中,流量控制模塊用于當以太網出現數據擁塞時,進行流量控制處理,避免因以太網絡擁塞導致數據包丟失,報文重傳模塊用于以太網網絡發生報文傳輸錯誤時,進行報文重傳,保證數據傳輸可靠性;以太mac和以太接口作為以太網標準的以太mac層和以太物理接口層,與標準的以太網絡結構中的以太mac層和以太物理接口層具有相同的含義。
輸入輸出狀態維護模塊還用于在執行scsi協議操作請求過程中,根據scsi協議操作請求的scsi協議報文類型字段創建、維護輸入輸出狀態。示例地,可以用輸入輸出狀態表記錄scsi協議操作請求的事務執行狀態,以避免scsi協議操作請求沖突。本發明實施例中,當向盤框102發送所述以太操作請求報文時,記錄所述scsi協議操作請求的事務執行狀態為建立與所述目標盤1031的scsi協議事務鏈接,執行所述scsi協議事務。
如圖3a所示的盤框102的前端接口1021接收到后端適配器1014發送的攜帶盤框102的mac地址和后端適配器1014的mac地址的以太操作請求報文,解封裝該以太操作請求報文,根據有效載荷中的scsi協議報文類型字段即可獲得該scsi協議操作請求的類型。例如scsi協議報文類型為scsi協議讀操作請求,根據有效載荷中的scsi協議事務標識字段即可獲得scsi協議事務標識,從而建立scsi協議事務標識與后端適配器1014的mac地址的對應關系,根據有效載荷中的目的sas協議地址字段即可獲知目標盤1031的sas協議地址,盤框102不需要解析scsi協議幀數據字段即可根據目標盤1031的sas協議地址將scsi協議操作請求發送到目標盤1031。因此,減少了盤框102進行協議處理的計算資源,同時提高了協議處理速度,進而提高了存儲系統的性能。另一種實現方式,以太操作請求報文的有效載荷中沒有scsi協議事務標識字段和目的sas協議地址字段,則盤框解封裝以太操作請求報文后,在有效載荷中獲得scsi協議操作請求,解析scsi協議操作請求,獲得scsi協議事務標識和目標盤sas協議地址,建立scsi協議事務標識與后端適配器1014的mac地址的對應關系,根據目標盤的sas協議地址,通過后端接口1024向目標盤1031發送該scsi協議操作請求。
解封裝攜帶scsi協議操作請求的以太操作請求報文后,獲得后端適配器1014的mac地址,根據有效載荷中的scsi協議事務標識字段獲得scsi協議事務標識,中央處理器1022建立后端適配器1014的mac地址和所述控制器101的scsi協議事務標識的對應關系,后端接口1024根據有效載荷中的目標sas協議地址字段攜帶的目標盤1031的sas協議地址,向目標盤1031發送該scsi協議操作請求。中央處理器1022通過后端接口1024接收目標盤1031發送的scsi協議操作請求響應,該scsi協議操作請求響應攜帶控制器101的scsi協議事務標識,根據該scsi協議操作請求響應攜帶控制器101的scsi協議事務標識查詢后端適配器1014的mac地址和所述控制器101的scsi協議事務標識的對應關系。前端接口1021接收中央處理器1022發送的scsi協議操作請求響應及后端適配器1014的mac地址,前端接口1024將該scsi協議操作請求響應封裝到以太操作請求響應報文,以太操作請求響應報文攜帶后端適配器1014的mac地址和前端適配器1024的mac地址。例如,目的mac地址字段攜帶后端適配器1014的mac地址,源mac地址字段攜帶盤框102的mac地址,scsi協議事務標識字段攜帶控制器101的scsi協議事務標識,scsi協議報文類型字段攜帶scsi協議操作請求的類型。本發明實施例中,以太操作請求響應報文也可稱為以太操作請求報文的以太響應報文,兩者具有相同的含義。其中一種實現方式,在以太操作請求響應報文的有效載荷,scsi協議幀數據字段攜帶scsi協議操作請求響應;有效載荷的scsi協議事務標識字段攜帶scsi協議事務標識;有效載荷的scsi協議報文類型字段攜帶scsi協議操作請求的類型。
控制器101的后端適配器1014接收盤框102發送的以太操作請求響應報文,解封裝該以太操作請求響應報文,得到scsi協議操作請求響應。后端適配器1014的輸入輸出狀態維護模塊根據記錄的scsi協議操作請求攜帶的scsi協議事務標識及該scsi協議操作請求的事務執行狀態,判斷該scsi協議操作請求響應是否合法。具體地,當判斷以太操作請求響應報文攜帶控制器101的scsi協議事務標識時,則認為該scsi協議操作請求響應合法,后端適配器1014的輸入輸出狀態維護模塊更新所述scsi協議操作請求的事務執行狀態為所述scsi協議事務執行完畢,并撤銷所述與所述目標盤1031的scsi協議事務鏈接;當一個scsi協議事務包含多個scsi協議操作請求響應才能夠完成該scsi協議事務時,后端適配器1014的輸入輸出狀態維護模塊還要統計接收到的scsi協議操作請求響應的次數。當以太操作請求響應報文未攜帶控制器101的scsi協議事務標識時,丟棄該scsi協議操作請求響應。其中以太操作請求響應報文未攜帶控制器101的scsi協議事務標識包括以太操作請求響應報文未攜帶控制器101的scsi協議事務標識,或者以太操作請求響應報文攜帶控制器101的scsi協議事務標識與控制器101的scsi協議事務標識不一致。這里scsi協議事務標識一種實施情況,可以從以太操作請求響應報文的有效載荷中的scsi協議事務標識字段中獲得。另一種實施情況,以太請求響應報文的有效載荷中不包含scsi協議事務標識字段,則從有效載荷中的scsi協議幀數據字段獲得控制器101的scsi協議事務標識。后端適配器1014將該scsi協議操作請求響應發送給中央處理器1012。
本發明實施例圖10所示的后端適配器1014,作為一種邏輯架構,實際實現過程中,可以為asic商業芯片,或者為fpga,具體組成包括中央處理器和內存,還可以部分由asic商業芯片和fpga共同組成。具體包括:第一接口、第二接口、內存和第一中央處理器;所述第一接口用于接收所述中央處理器1012發送的scsi協議操作請求;其中,所述scsi協議操作請求中攜帶目標盤1031的sas協議地址;
所述第一中央處理器執行所述內存中的計算機指令,以執行如下操作:
根據所述目標盤1031的sas協議地址,查詢所述盤框102的mac地址與所述目標盤1031的sas協議地址對應關系,獲得所述盤框102的mac地址,將所述scsi協議操作請求封裝到以太操作請求報文,該以太操作請求報文攜帶所述后端適配器1014的mac地址和所述盤框102的mac地址。
進一步地,以太操作請求報文還包括第一字段和第二字段,其中,第一字段用于攜帶所述scsi協議事務標識,第二字段用于攜帶所述目標盤的sas協議地址。以太操作請求報文中,第一字段、第二字段和攜帶scsi協議操作請求的字段屬于三個不同的字段,具體地,如圖12所示,第一字段為以太操作請求報文中有效載荷中的scsi協議事務標識字段,第二字段為有效載荷中的目的sas協議地址字段,有效載荷中攜帶所述scsi協議操作請求的字段為scsi協議幀數據字段。關于圖12其他字段的描述,具體可參見實施例中關于以太操作請求報文、以太操作請求響應報文、心跳廣播包及心跳廣播包響應報文的描述。
第二接口,用于根據所述盤框102的mac地址,向所述盤框102發送所述以太操作請求報文。進一步地,第二接口,還用于接收所述盤框102發送的所述以太操作請求報文的以太響應報文;其中,所述以太操作請求報文的以太響應報文攜帶所述后端適配器1014的mac地址。第一中央處理器執行所述內存中的計算機指令,還用于執行:解封裝所述以太操作請求報文的以太響應報文,獲得scsi協議操作請求響應;第一接口,還用于向所述中央處理器1012發送所述scsi協議操作請求響應。進一步地,所述以太操作請求報文的以太響應報文還攜帶所述控制器101的scsi協議事務標識,所述第一中央處理器執行所述內存中的計算機指令,還用于執行:記錄所述scsi協議操作請求的事務執行狀態;具體地,當向所述盤框102發送所述以太操作請求報文時,記錄所述scsi協議操作請求的事務狀態為建立與所述目標盤1031的scsi協議事務鏈接,并且執行所述scsi協議事務。
進一步地,第一中央處理器執行所述內存中的計算機指令,還用于執行:根據所述scsi協議操作請求響應,更新所述scsi協議操作請求的事務狀態為所述scsi協議事務執行完畢,撤銷所述與所述目標盤1031的scsi協議事務鏈接。
進一步地,第一中央處理器執行所述內存中的計算機指令,還用于執行:當以太操作請求響應報文未攜帶所述控器101的scsi協議事務標識時,丟棄所述scsi協議操作請求響應。
進一步地,第一接口為pcie接口。
如圖11所示的后端適配器1014,從邏輯上可以劃分為如圖13所示的結構,包括第一收發單元1301,查詢單元1302,封裝與解封裝單元1303和第二收發單元1304。第一收發單元1301,用于接收中央處理器1012發送的scsi協議操作請求,其中,所述scsi協議操作請求中攜帶目標盤1031的sas協議地址;查詢單元1302,用于查詢盤框102的mac地址與目標盤1031的sas協議地址對應關系,獲得所述盤框102的mac地址;封裝與解封裝單元1303,用于將所述scsi協議操作請求封裝到以太操作請求報文,以太操作請求報文攜帶所述后端適配器1014的mac地址和盤框102的mac地址;第二收發單元1304,用于根據盤框102的mac地址向盤框102發送所述以太操作請求報文。進一步地,所述scsi協議操作請求還攜帶scsi協議事務標識,封裝與解封裝單元還用于將所述scsi協議事務標識封裝到所述以太操作請求報文的第一字段,將所述目標盤的sas協議地址封裝到第二字段;其中,所述第一字段、所述第二字段與所述以太操作請求報文中攜帶所述scsi協議操作請求的字段分別屬于三個不同的字段。
進一步地,第二收發單元1304,還用于接收盤框102發送的所述以太操作請求報文的以太響應報文;其中,所述以太操作請求報文的以太響應報文攜帶所述后端適配器1014的mac地址。進一步地,封裝與解封裝單元1303,還用于解封裝所述以太操作請求報文的以太響應報文,獲得scsi協議操作請求響應。第一收發單元1301,還用于向所述中央處理器1012發送所述scsi協議操作請求響應。進一步地,所述后端適配器101還包括記錄單元1304,用于記錄所述scsi協議操作請求的事務執行狀態。具體地,當向所述盤框102發送所述以太操作請求報文時,所述記錄單元1304記錄所述scsi協議操作請求的事務狀態為建立與所述目標盤1031的scsi協議事務鏈接,執行所述scsi協議事務。進一步地,所述記錄單元1304,還用于根據所述scsi協議操作請求響應更新所述scsi協議操作請求的事務狀態為所述scsi協議事務執行完畢,撤銷所述與所述目標盤1031的scsi協議事務鏈接。進一步地,所述第一收發單元1301還用于當所述以太操作請求響應報文未攜帶所述控制器101的scsi協議事務標識時,丟棄所述scsi協議操作請求響應。
進一步地,盤框102的mac地址與目標盤1031的sas協議地址對應關系是由后端適配器1014根據框盤102發送的資源信息建立起來的;所述資源信息包括盤框102的mac地址和目標盤1031的sas協議地址,具體是由盤框102發送的心跳廣播包響應實現的。
進一步地,本發明實施例中描述的控制器101和盤框102可以組成如圖14所示的存儲系統,包括多個控制器101和多個盤框102,關于控制器101和盤框102的數量可以根據實際需求確定。多個控制器101與多個盤框102通過以太交換機100通信。同時,控制器101之間可以形成冗余關系以提高可靠性。通過本發明實施例提供的控制器101和盤框102,可以實現系統的靈活擴展。
本發明實施例中,scsi協議操作請求和scsi協議操作請求響應均是scsi協議報文;sas協議作為一種接口協議,即使用串行的scsi協議,使用sas接口的設備之間使用scsi協議通信,具體到本發明實施例,盤1031…103n,1041…104n為sas協議接口的盤,盤框102也使用sas協議接口與盤1031…103n,1041…104n連接,盤框102與盤1031…103n,1041…104n使用scsi協議通信;scsi協議事務鏈接是在scsi協議中,發起端(initiator)與目標端(target)通信建立的鏈路,當通信結束時,釋放該鏈路,從而釋放scsi協議資源,而建立該鏈路以執行的事務為scsi協議事務,即對應的scsi協議操作請求。
本發明實施例中,將scsi協議事務標識封裝到以太操作請求報文的第一字段,則稱以太操作請求報文的第一字段攜帶scsi協議事務標識;將目標盤的sas協議地址封裝到以太操作請求報文的第二字段,則稱以太操作請求報文的第二字段攜帶目標盤的sas協議地址。
本發明實施例中使用的中央處理器和第一中央處理器的描述,僅僅是為了清楚說明歸屬于不同的裝置,中央處理器和第一中央處理器可以為相同的處理器,也可以為不同的處理器,具體根據技術需要選擇,本發明實施例對此不作限定。
本領域普通技術人員可以意識到,結合本文中所公開的實施例描述的各示例的單元及算法步驟,能夠以電子硬件、或者計算機軟件和電子硬件的結合來實現。這些功能究竟以硬件還是軟件方式來執行,取決于技術方案的特定應用和設計約束條件。專業技術人員可以對每個特定的應用來使用不同方法來實現所描述的功能,但是這種實現不應認為超出本發明的范圍。
所屬領域的技術人員可以清楚地了解到,為描述的方便和簡潔,上述描述的系統、裝置和單元的具體工作過程,可以參考前述方法實施例中的對應過程,在此不再贅述。
在本申請所提供的幾個實施例中,應該理解到,所公開的系統、方法,可以通過其它的方式實現。例如,以上所描述的裝置實施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實際實現時可以有另外的劃分方式,例如多個單元或組件可以結合或者可以集成到另一個系統,或一些特征可以忽略,或不執行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,裝置或單元的間接耦合或通信連接,可以是電性,機械或其它的形式。
所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網絡單元上。可以根據實際的需要選擇其中的部分或者全部單元來實現本實施例方案的目的。
另外,在本發明各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。
所述功能如果以軟件功能單元的形式實現并作為獨立的產品銷售或使用時,可以存儲在一個計算機可讀取非易失性存儲介質中。基于這樣的理解,本發明的技術方案本質上或者說對現有技術做出貢獻的部分或者該技術方案的部分可以以軟件產品的形式體現出來,該計算機軟件產品存儲在一個非易失性存儲介質中,包括若干指令用以使得一臺計算機設備(可以是個人計算機,服務器,或者網絡設備等)執行本發明各個實施例所述方法的全部或部分步驟。而前述的非易失性存儲介質包括:u盤、移動硬盤、只讀存儲器(rom,read-onlymemory)、磁碟或者光盤等各種可以存儲程序代碼的介質。
以上所述,僅為本發明的具體實施方式,但本發明的保護范圍并不局限于此,任何熟悉本技術領域的技術人員在本發明揭露的技術范圍內,可輕易想到變化或替換,都應涵蓋在本發明的保護范圍之內。因此,本發明的保護范圍應所述以權利要求的保護范圍為準。