專利名稱:一種sas鏈路的通信方法和設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信技術(shù)領(lǐng)域,特別涉及一種SAS鏈路的通信方法和設(shè)備。
背景技術(shù):
串行連接 SCSI (Small Computer System Interface,小型計(jì)算機(jī)系統(tǒng)接口)接 口,即SAS(Serial Attached SCSI),是一種磁盤連接技術(shù),和現(xiàn)在流行的SATA(Serial Advanced Technology Attachment,串行高級(jí)技術(shù)附件)硬盤相同,都是采用串行技術(shù)以獲 得更高的傳輸速度,并通過縮短連結(jié)線改善內(nèi)部空間等。SAS是并行SCSI接口之后開發(fā)出 的全新接口。此接口的設(shè)計(jì)是為了改善存儲(chǔ)系統(tǒng)的效能、可用性和擴(kuò)充性,提供與SATA硬 盤的兼容性。
SAS的接口技術(shù)可以向下兼容SATA。SAS系統(tǒng)的背板(Back Panel)既可以連接具 有雙端口、高性能的SAS驅(qū)動(dòng)器,也可以連接高容量、低成本的SATA驅(qū)動(dòng)器。因?yàn)镾AS驅(qū)動(dòng) 器的端口與SATA驅(qū)動(dòng)器的端口形狀看上去類似,所以SAS驅(qū)動(dòng)器和SATA驅(qū)動(dòng)器可以同時(shí) 存在于一個(gè)存儲(chǔ)系統(tǒng)之中。但需要注意的是,SATA系統(tǒng)并不兼容SAS,所以SAS驅(qū)動(dòng)器不能 連接到SATA背板上。由于SAS系統(tǒng)的兼容性,相關(guān)的技術(shù)人員能夠運(yùn)用不同接口的硬盤來 滿足各類應(yīng)用在容量上或效能上的需求,因此在擴(kuò)充存儲(chǔ)系統(tǒng)時(shí)擁有更多的彈性,讓存儲(chǔ) 設(shè)備發(fā)揮最大的投資效益。SAS技術(shù)還有簡(jiǎn)化內(nèi)部連接設(shè)計(jì)的優(yōu)勢(shì),存儲(chǔ)設(shè)備廠商目前投入相當(dāng)多的成本以 支持包括光纖通道陣列、SATA陣列等不同的存儲(chǔ)設(shè)備,而SAS連接技術(shù)將可以通過共用組 件降低設(shè)計(jì)成本。SAS技術(shù)綜合了現(xiàn)有并行SCSI和串行連接技術(shù)的優(yōu)勢(shì),以串行通訊為協(xié)議基礎(chǔ)架 構(gòu),如圖ι所示,采用SCSI-3擴(kuò)展指令集并兼容SATA設(shè)備,是多層次的存儲(chǔ)設(shè)備連接協(xié)議 棧。其中,SCU(StorageControl Unit,存儲(chǔ)控制單元)用來處理 RAID(Redundant Array of Independent Disk,獨(dú)立冗余磁盤陣列)模塊、10(InputOutput,輸入輸出)命 令、SAS管理模塊等。DEU (Disk Expander Unit,磁盤擴(kuò)展單元),即磁盤柜(用來裝磁盤)。SCSI管理協(xié)議(SCSI Management Protocol,SMP)用于對(duì)連接設(shè)備的維護(hù)和管理。在實(shí)現(xiàn)本發(fā)明的過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)存在以下問題SAS鏈路沒有冗余,只要一條SAS鏈路中斷,如圖2所示,SAS鏈路下行的DEU資源 就不能訪問,如果在雙控制器的情況下,則需要切換到另外一個(gè)控制器上進(jìn)行訪問。
發(fā)明內(nèi)容
本發(fā)明提供一種SAS鏈路的通信方法和設(shè)備,解決現(xiàn)有技術(shù)中一條鏈路或多條鏈 路損壞時(shí),則后續(xù)的DEU資源無法訪問的問題。為達(dá)到上述目的,本發(fā)明一方面提供了一種SAS鏈路的通信方法,應(yīng)用于包括存儲(chǔ)控制設(shè)備、接口管理設(shè)備和至少一個(gè)磁盤設(shè)備的系統(tǒng)中,所述接口管理設(shè)備連接所述存 儲(chǔ)控制設(shè)備和所述磁盤設(shè)備,所述接口管理設(shè)備至少通過兩個(gè)接口與所述磁盤設(shè)備建立連 接,所述方法具體包括以下步驟
當(dāng)所述存儲(chǔ)管理設(shè)備需要訪問所述磁盤設(shè)備時(shí),所述接口管理設(shè)備檢測(cè)第一接口 與所述磁盤設(shè)備的連接是否正常;如果所述接口管理設(shè)備檢測(cè)所述第一接口與所述磁盤設(shè)備的連接正常,則通過所 述第一接口所對(duì)應(yīng)的連接訪問所述磁盤設(shè)備;如果所述接口管理設(shè)備檢測(cè)所述第一接口與 所述磁盤設(shè)備的連接不正常,則繼續(xù)依次檢測(cè)其他接口與所述磁盤設(shè)備的連接,選擇一個(gè) 正常的連接訪問所述磁盤設(shè)備。優(yōu)選的,當(dāng)所述存儲(chǔ)管理設(shè)備需要訪問所述磁盤設(shè)備時(shí),所述接口管理設(shè)備檢測(cè) 第一接口與所述磁盤設(shè)備的連接是否正常,具體為所述接口管理設(shè)備通過所述第一接口向所述磁盤設(shè)備發(fā)起小型計(jì)算機(jī)系統(tǒng)接口 SCSI管理協(xié)議,以所述第一接口為啟動(dòng)器Initiator,所述存儲(chǔ)管理設(shè)備需要訪問的磁盤 設(shè)備為目標(biāo)器Target,檢測(cè)所述Initiator和所述Target之間連接是否正常。優(yōu)選的,所述如果所述接口管理設(shè)備檢測(cè)所述第一接口與所述磁盤設(shè)備的連接正 常,則通過所述第一接口所對(duì)應(yīng)的連接訪問所述磁盤設(shè)備,具體為如果所述接口管理設(shè)備檢測(cè)所述第一接口與所述磁盤設(shè)備的連接正常,所述接口 管理設(shè)備設(shè)定所述第一接口與所述磁盤設(shè)備的連接的狀態(tài)為激活,其他接口所對(duì)應(yīng)的連接 的狀態(tài)為去激活,并設(shè)定其他接口為Target ;所述接口管理設(shè)備使所述存儲(chǔ)管理設(shè)備通過所述第一接口所對(duì)應(yīng)的連接訪問所 述磁盤設(shè)備。優(yōu)選的,所述如果所述接口管理設(shè)備檢測(cè)所述第一接口與所述磁盤設(shè)備的連接不 正常,則繼續(xù)依次檢測(cè)其他接口與所述磁盤設(shè)備的連接,選擇一個(gè)正常的連接訪問所述磁 盤設(shè)備,具體為 如果所述接口管理設(shè)備檢測(cè)所述第一接口與所述磁盤設(shè)備的連接不正常,所述接 口管理設(shè)備設(shè)定所述第一接口所對(duì)應(yīng)的連接的狀態(tài)為去激活;所述接口管理設(shè)備繼續(xù)選擇下一個(gè)接口作為Initiator,并以所述存儲(chǔ)管理設(shè)備 需要訪問的磁盤設(shè)備為Target,檢測(cè)所述Initiator和所述Target之間連接是否正常;如果正常,所述接口管理設(shè)備設(shè)定當(dāng)前的所述接口與所述磁盤設(shè)備的連接的狀態(tài) 為激活,其他接口所對(duì)應(yīng)的連接的狀態(tài)為去激活,并設(shè)定其他接口為Target,并使所述存儲(chǔ) 管理設(shè)備通過所述狀態(tài)為激活的連接訪問所述磁盤設(shè)備;如果不正常,繼續(xù)選擇下一個(gè)接口作為Initiator,檢測(cè)相應(yīng)的連接是否正常,直 至找到正常的連接,實(shí)現(xiàn)所述存儲(chǔ)管理設(shè)備與所述磁盤設(shè)備的訪問,或所有接口所對(duì)應(yīng)的 連接均為不正常,放棄所述存儲(chǔ)管理設(shè)備與所述磁盤設(shè)備的訪問。優(yōu)選的,所述接口管理設(shè)備使所述存儲(chǔ)管理設(shè)備通過其他接口與所述磁盤設(shè)備的 連接訪問所述磁盤設(shè)備之后,還包括所述接口管理設(shè)備按照預(yù)設(shè)的檢測(cè)周期檢測(cè)比當(dāng)前連接所對(duì)應(yīng)的接口具有更高 優(yōu)先級(jí)的接口所對(duì)應(yīng)的連接是否恢復(fù)正常;如果恢復(fù)正常,則所述接口管理設(shè)備設(shè)定所述恢復(fù)正常接口為Initiator,所述恢復(fù)正常的接口與所述磁盤設(shè)備的連接的狀態(tài)為激活,其他接口所對(duì)應(yīng)的連接的狀態(tài)為去激 活,并設(shè)定其他接口為Target,使所述存儲(chǔ)管理設(shè)備通過恢復(fù)正常的接口所對(duì)應(yīng)的連接訪 問所述磁盤設(shè)備。另一方面,本發(fā)明還提供了一種接口管理設(shè)備,應(yīng)用于包括存儲(chǔ)控制設(shè)備、接口管 理設(shè)備和至少一個(gè)磁盤設(shè)備的系統(tǒng)中,所述接口管理設(shè)備連接所述存儲(chǔ)控制設(shè)備和所述磁 盤設(shè)備,所述接口管理設(shè)備至少通過兩個(gè)接口與所述磁盤設(shè)備建立連接,具體包括檢測(cè)模塊,用于當(dāng)所述存儲(chǔ)管理設(shè)備需要訪問所述磁盤設(shè)備時(shí),檢測(cè)第一接口與 所述磁盤設(shè)備的連接是否正常;
處理模塊,與所述檢測(cè)模塊相連接,用于在所述檢測(cè)模塊檢測(cè)所述第一接口與所 述磁盤設(shè)備的連接正常時(shí),通過所述第一接口所對(duì)應(yīng)的連接訪問所述磁盤設(shè)備;或在所述 檢測(cè)模塊檢測(cè)所述第一接口與所述磁盤設(shè)備的連接不正常時(shí),通知所述檢測(cè)模塊繼續(xù)依次 檢測(cè)其他接口與所述磁盤設(shè)備的連接,并根據(jù)檢測(cè)結(jié)果,選擇一個(gè)正常的連接訪問所述磁 盤設(shè)備。優(yōu)選的,所述檢測(cè)模塊,用于當(dāng)所述存儲(chǔ)管理設(shè)備需要訪問所述磁盤設(shè)備時(shí),檢測(cè) 第一接口與所述磁盤設(shè)備的連接是否正常,具體為所述檢測(cè)模塊通過所述第一接口向所述磁盤設(shè)備發(fā)起SCSI管理協(xié)議,以所述 第一接口為Initiator,所述存儲(chǔ)管理設(shè)備需要訪問的磁盤設(shè)備為Target,檢測(cè)所述 Initiator和所述Target之間連接是否正常。優(yōu)選的,當(dāng)所述檢測(cè)模塊檢測(cè)所述第一接口與所述磁盤設(shè)備的連接正常時(shí),具體 為如果所述檢測(cè)模塊檢測(cè)所述第一接口與所述磁盤設(shè)備的連接正常,所述處理模塊 設(shè)定所述第一接口與所述磁盤設(shè)備的連接的狀態(tài)為激活,其他接口所對(duì)應(yīng)的連接的狀態(tài)為 去激活,并設(shè)定其他接口為Target ;所述處理模塊使所述存儲(chǔ)管理設(shè)備通過所述第一接口所對(duì)應(yīng)的連接訪問所述磁 盤設(shè)備。優(yōu)選的,當(dāng)所述檢測(cè)模塊檢測(cè)所述第一接口與所述磁盤設(shè)備的連接不正常時(shí),具 體為如果所述檢測(cè)模塊檢測(cè)所述第一接口與所述磁盤設(shè)備的連接不正常,所述處理模 塊設(shè)定所述第一接口所對(duì)應(yīng)的連接的狀態(tài)為去激活;所述檢測(cè)模塊繼續(xù)選擇下一個(gè)接口作為Initiator,并以所述存儲(chǔ)管理設(shè)備需要 訪問的磁盤設(shè)備為Target,檢測(cè)所述Initiator和所述Target之間連接是否正常;如果正常,所述處理模塊設(shè)定當(dāng)前的所述接口與所述磁盤設(shè)備的連接的狀態(tài)為激 活,其他接口所對(duì)應(yīng)的連接的狀態(tài)為去激活,并設(shè)定其他接口為Target,并使所述存儲(chǔ)管理 設(shè)備通過所述狀態(tài)為激活的連接訪問所述磁盤設(shè)備;如果不正常,所述檢測(cè)模塊繼續(xù)選擇下一個(gè)接口作為Initiator,檢測(cè)相應(yīng)的連接 是否正常,直至找到正常的連接,所述處理模塊實(shí)現(xiàn)所述存儲(chǔ)管理設(shè)備與所述磁盤設(shè)備的 訪問,或所述檢測(cè)模塊檢測(cè)所有接口所對(duì)應(yīng)的連接均為不正常,所述處理模塊放棄所述存 儲(chǔ)管理設(shè)備與所述磁盤設(shè)備的訪問。優(yōu)選的,所述接口管理設(shè)備,還包括
設(shè)置模塊,與所述檢測(cè)模塊和所述處理模塊相連接,用于設(shè)置檢測(cè)周期;當(dāng)所述處理模塊使所述存儲(chǔ)管理設(shè)備通過其他接口與所述磁盤設(shè)備的連接訪問 所述磁盤設(shè)備之后,所述檢測(cè)模塊按照所述設(shè)置模塊所設(shè)置的檢測(cè)周期檢測(cè)比當(dāng)前連接所 對(duì)應(yīng)的接口具有更高優(yōu)先級(jí)的接口所對(duì)應(yīng)的連接是否恢復(fù)正常;如果恢復(fù)正常,則所述處理模塊設(shè)定所述恢復(fù)正常接口為Initiator,所述恢復(fù)正 常的接口與所述磁盤設(shè)備的連接的狀態(tài)為激活,其他接口所對(duì)應(yīng)的連接的狀態(tài)為去激活, 并設(shè)定其他接口為Target,使所述存儲(chǔ)管理設(shè)備通過恢復(fù)正常的接口所對(duì)應(yīng)的連接訪問所 述磁盤設(shè)備。與現(xiàn)有技術(shù)相比,本發(fā)明具有以下優(yōu)點(diǎn)通過應(yīng)用本發(fā)明的技術(shù)方案,借助多接口的鏈路備選,可實(shí)現(xiàn)在串行鏈路中出現(xiàn) 斷開鏈路時(shí),通過使能不同的SAS接口值,使IO命令從另一個(gè)接口通過,實(shí)現(xiàn)后端SAS通路 的冗余,提高了系統(tǒng)通信的可靠性。
圖1為現(xiàn)有技術(shù)中的SAS鏈接組網(wǎng)的網(wǎng)絡(luò)結(jié)構(gòu)示意圖;圖2為現(xiàn)有技術(shù)中的SAS鏈接組網(wǎng)出現(xiàn)故障時(shí)的網(wǎng)絡(luò)結(jié)構(gòu)示意圖;圖3為本發(fā)明所提出的一種SAS鏈路的通信方法的流程示意圖;圖4為本發(fā)明所提出的一種應(yīng)用SAS鏈路的通信方法的網(wǎng)絡(luò)結(jié)構(gòu)的示意圖;圖5為本發(fā)明所提出的一種應(yīng)用SAS鏈路的通信方法的網(wǎng)絡(luò)結(jié)構(gòu)通信過程的示意 圖;圖6為本發(fā)明所提出的一種應(yīng)用SAS鏈路的通信方法的網(wǎng)絡(luò)結(jié)構(gòu)出現(xiàn)故障時(shí)的示 意圖;圖7為本發(fā)明所提出的一種具體應(yīng)用場(chǎng)景下的SAS鏈路的通信方法的流程示意 圖;圖8為本發(fā)明所提出的一種接口管理設(shè)備的結(jié)構(gòu)示意圖。
具體實(shí)施例方式基于背景技術(shù)中的描述可知,現(xiàn)有技術(shù)中的SAS連接是串行連接,當(dāng)其中一條鏈 路或多條鏈路損壞時(shí),則后續(xù)的DEU資源無法訪問。為了解決這樣的問題,本發(fā)明通過類似環(huán)狀的結(jié)構(gòu)技術(shù)解決此種問題,相應(yīng)的提 出了一種SA鏈路的通信方法。如圖3所示,為本發(fā)明所提出的一種SAS鏈路的通信方法的結(jié)構(gòu)示意圖,該方法應(yīng) 用于包括存儲(chǔ)控制設(shè)備、接口管理設(shè)備和至少一個(gè)磁盤設(shè)備的系統(tǒng)中。其中,接口管理設(shè)備連接存儲(chǔ)控制設(shè)備和磁盤設(shè)備,接口管理設(shè)備至少通過兩個(gè)接口與磁盤設(shè)備建立連接,該方法具體包括以下步驟步驟S301、存儲(chǔ)管理設(shè)備需要訪問磁盤設(shè)備。步驟S302、接口管理設(shè)備檢測(cè)第一接口與磁盤設(shè)備的連接是否正常。如果接口管理設(shè)備檢測(cè)第一接口與磁盤設(shè)備的連接正常,執(zhí)行步驟S303 ;如果接口管理設(shè)備檢測(cè)第一接口與磁盤設(shè)備的連接不正常,執(zhí)行步驟S304。
在具體的應(yīng)用場(chǎng)景中,本步驟的檢測(cè)過程具體為接口管理設(shè)備通過第一接口向磁盤設(shè)備發(fā)起小型計(jì)算機(jī)系統(tǒng)接口 SCSI管理協(xié) 議,以第一接口為Initiaor,存儲(chǔ)管理設(shè)備需要訪問的磁盤設(shè)備為Target,檢測(cè)Initiator 和Target之間連接是否正常。步驟S303、接口管理設(shè)備使存儲(chǔ)管理設(shè)備通過第一接口所對(duì)應(yīng)的連接訪問磁盤設(shè) 備。如果接口管理設(shè)備檢測(cè)第一接口與磁盤設(shè)備的連接正常,接口管理設(shè)備設(shè)定第一 接口與磁盤設(shè)備的連接的狀態(tài)為激活,其他接口所對(duì)應(yīng)的連接的狀態(tài)為去激活,并設(shè)定其 他接口為Target ;接口管理設(shè)備使存儲(chǔ)管理設(shè)備通過第一接口所對(duì)應(yīng)的連接訪問磁盤設(shè)備。步驟S304、接口管理設(shè)備繼續(xù)依次檢測(cè)其他接口與磁盤設(shè)備的連接,選擇一個(gè)正 常的連接使存儲(chǔ)管理設(shè)備訪問磁盤設(shè)備。如果接口管理設(shè)備檢測(cè)第一接口與磁盤設(shè)備的連接不正常,接口管理設(shè)備設(shè)定第 一接口所對(duì)應(yīng)的連接的狀態(tài)為去激活;接口管理設(shè)備繼續(xù)選擇下一個(gè)接口作為Initiator,并以存儲(chǔ)管理設(shè)備需要訪問 的磁盤設(shè)備為Target,檢測(cè)Initiaor和Target之間連接是否正常;如果正常,接口管理設(shè)備設(shè)定當(dāng)前的接口與磁盤設(shè)備的連接的狀態(tài)為激活,其他 接口所對(duì)應(yīng)的連接的狀態(tài)為去激活,并設(shè)定其他接口為Target,并使存儲(chǔ)管理設(shè)備通過狀 態(tài)為激活的連接訪問磁盤設(shè)備;如果不正常,繼續(xù)選擇下一個(gè)接口作為Initiaor,檢測(cè)相應(yīng)的連接是否正常,直至 找到正常的連接,實(shí)現(xiàn)存儲(chǔ)管理設(shè)備與磁盤設(shè)備的訪問,或所有接口所對(duì)應(yīng)的連接均為不 正常,放棄存儲(chǔ)管理設(shè)備與磁盤設(shè)備的訪問。需要進(jìn)一步指出的是,在接口管理設(shè)備使存儲(chǔ)管理設(shè)備通過其他接口與磁盤設(shè)備 的連接訪問磁盤設(shè)備之后,還包括接口管理設(shè)備按照預(yù)設(shè)的檢測(cè)周期檢測(cè)比當(dāng)前連接所對(duì)應(yīng)的接口具有更高優(yōu)先 級(jí)的接口所對(duì)應(yīng)的連接是否恢復(fù)正常;如果恢復(fù)正常,則接口管理設(shè)備設(shè)定恢復(fù)正常接口為Initiator,恢復(fù)正常的接口 與磁盤設(shè)備的連接的狀態(tài)為激活,其他接口所對(duì)應(yīng)的連接的狀態(tài)為去激活,并設(shè)定其他接 口為Target,使存儲(chǔ)管理設(shè)備通過恢復(fù)正常的接口所對(duì)應(yīng)的連接訪問磁盤設(shè)備。與現(xiàn)有技術(shù)相比,本發(fā)明具有以下優(yōu)點(diǎn)通過應(yīng)用本發(fā)明的技術(shù)方案,借助多接口的鏈路備選,可實(shí)現(xiàn)在串行鏈路中出現(xiàn) 斷開鏈路時(shí),通過使能不同的SAS接口值,使10命令從另一個(gè)接口通過,實(shí)現(xiàn)后端SAS通路 的冗余,提高了系統(tǒng)通信的可靠性。為了進(jìn)一步闡述本發(fā)明的技術(shù)思想,現(xiàn)結(jié)合具體的應(yīng)用場(chǎng)景,對(duì)本發(fā)明的技術(shù)方 案進(jìn)行說明。如圖4所示,為本發(fā)明所提出的一種應(yīng)用SAS鏈路的通信方法的網(wǎng)絡(luò)結(jié)構(gòu)的示意 圖,基于該結(jié)構(gòu),相應(yīng)的處理流程如下接口管理設(shè)備和DEU之間從SAS_1物理接口發(fā)起SCSI管理協(xié)議(SMP),建立如圖 5所示的I (Initiator和Target)節(jié)點(diǎn)的鏈接,且10數(shù)據(jù)流按照由Initiator至Target的流向進(jìn)行通信。當(dāng)DEU_1和DEU_2之間發(fā)生故障時(shí),激活SAS_2物理接口發(fā)起SCSI管理協(xié)議建立 圖6的I (Initiator和Target)節(jié)點(diǎn)的鏈接,此時(shí)部分?jǐn)?shù)據(jù)從SAS_2物理接口進(jìn)行通信。當(dāng)DEU_1和DEU_2之間的鏈接恢復(fù)后,定時(shí)發(fā)起的SCSI管理協(xié)議(SMP)檢測(cè)到后, 去激活SAS_2物理接口,并重新建立圖5的I (Initiator和Target)節(jié)點(diǎn)的鏈接,且IO數(shù) 據(jù)流繼續(xù)按照由Initiator至Target的流向進(jìn)行通信。相應(yīng)的處理流程示意圖如圖7所示,具體包括以下步驟其中需要說明的是,接口管理設(shè)備當(dāng)前管理兩個(gè)物理接口,即SAS_1和SAS_2,初 始時(shí),SAS_1接口的鏈路處于激活狀態(tài),即SAS_1 = enable, SAS_2接口的鏈路處于的狀態(tài) 處于去激活狀態(tài),即SAS_2 = Disable,相應(yīng)的接 口狀態(tài)為SAS_2_state = Target。步驟S701、存儲(chǔ)管理設(shè)備通過接口管理設(shè)備向磁盤設(shè)備DEU_3下發(fā)IO命令。步驟S702、接口管理設(shè)備通過SAS_1接口下發(fā)SMP協(xié)議,檢測(cè)鏈路是否斷開。如果是,執(zhí)行步驟S703 ;如果不是,執(zhí)行步驟S709。步驟S703、激活SAS_2接口所對(duì)應(yīng)的鏈路,設(shè)定SAS_2 = Enable。步驟S704、接口管理設(shè)備通過SAS_2接口下發(fā)SMP協(xié)議,檢測(cè)鏈路是否斷開。如果是,執(zhí)行步驟S705 ;如果不是,執(zhí)行步驟S706。步驟S705、放棄傳輸IO命令。即由于當(dāng)前存在的兩個(gè)接口所對(duì)應(yīng)的鏈路均不能正常傳輸數(shù)據(jù),因此,放棄傳輸。步驟S706、修改 SAS_2 接口的狀態(tài)為 SAS_2_state = Initiator。步驟S707、部分?jǐn)?shù)據(jù)流從SAS_2接口寫入DEU_3。步驟S708、判斷是否達(dá)到預(yù)設(shè)的檢測(cè)周期。如果達(dá)到,返回執(zhí)行步驟S702 ;如果沒有達(dá)到,繼續(xù)執(zhí)行步驟S707。步驟S709、判斷當(dāng)前的SAS_2接口和其所對(duì)應(yīng)鏈路的狀態(tài)。如果SAS_2 = Disable (鏈路去激活),且 SAS_2_state = Target,則執(zhí)行步驟 S710 ;否則,執(zhí)行步驟S711。步驟S710、將IO命令從SAS_1接口寫入DEU_3。具體的通信路徑實(shí)際為SAS_1至DEU_1,再到DEU_2,最后寫入DEU_3。步驟S711、設(shè)定SAS_2 = Disable (鏈路去激活)后,SAS_1向下發(fā)送SMP協(xié)議建 立I和T鏈路狀態(tài),并設(shè)定SAS_2_state = Target。本步驟完成后,執(zhí)行步驟S710。需要進(jìn)一步指出的是,上述的接口管理設(shè)備中存在兩個(gè)接口,但是在實(shí)際的應(yīng)用 場(chǎng)景中,還可以存在更多的接口,相應(yīng)的,處理機(jī)制就會(huì)變?yōu)樵赟AS_2接口的鏈路仍有斷開 后,依次檢測(cè)剩余的其他接口的狀態(tài),直至找到適合的鏈路,具體接口數(shù)量的相應(yīng)處理機(jī)制 的變化并不會(huì)影響本發(fā)明的保護(hù)范圍。與現(xiàn)有技術(shù)相比,本發(fā)明具有以下優(yōu)點(diǎn)
通過應(yīng)用本發(fā)明的技術(shù)方案,借助多接口的鏈路備選,可實(shí)現(xiàn)在串行鏈路中出現(xiàn) 斷開鏈路時(shí),通過使能不同的SAS接口值,使IO命令從另一個(gè)接口通過,實(shí)現(xiàn)后端SAS通路 的冗余,提高了系統(tǒng)通信的可靠性。為了實(shí)現(xiàn)本發(fā)明的技術(shù)方案,本發(fā)明還提出了一種接口管理設(shè)備,應(yīng)用于包括存 儲(chǔ)控制設(shè)備、接口管理設(shè)備和至少一個(gè)磁盤設(shè)備的系統(tǒng)中,接口管理設(shè)備連接存儲(chǔ)控制設(shè) 備和磁盤設(shè)備,接口管理設(shè)備至少通過兩個(gè)接口與磁盤設(shè)備建立連接。如圖8所示,為本發(fā)明提出的一種接口管理設(shè)備的結(jié)構(gòu)示意圖,具體包括檢測(cè)模塊81,用于當(dāng)存儲(chǔ)管理設(shè)備需要訪問磁盤設(shè)備時(shí),檢測(cè)第一接口與磁盤設(shè) 備的連接是否正常,具體為檢測(cè)模塊81通過第一接口向磁盤設(shè)備發(fā)起SCSI管理協(xié)議,以第一接口為 Initiator,存儲(chǔ)管理設(shè)備需要訪問的磁盤設(shè)備為Target,檢測(cè)Initiator和Target之間連 接是否正常。處理模塊82,與檢測(cè)模塊81相連接,用于在檢測(cè)模塊81檢測(cè)第一接口與磁盤設(shè)備 的連接正常時(shí),通過第一接口所對(duì)應(yīng)的連接訪問磁盤設(shè)備;或在檢測(cè)模塊81檢測(cè)第一接口 與磁盤設(shè)備的連接不正常時(shí),通知檢測(cè)模塊81繼續(xù)依次檢測(cè)其他接口與磁盤設(shè)備的連接, 并根據(jù)檢測(cè)結(jié)果,選擇一個(gè)正常的連接訪問磁盤設(shè)備。其中,當(dāng)檢測(cè)模塊81檢測(cè)第一接口與磁盤設(shè)備的連接正常時(shí),具體為如果檢測(cè)模塊81檢測(cè)第一接口與磁盤設(shè)備的連接正常,設(shè)定第一接口與磁盤 設(shè)備的連接的狀態(tài)為激活,其他接口所對(duì)應(yīng)的連接的狀態(tài)為去激活,并設(shè)定其他接口為 Target ;處理模塊82使存儲(chǔ)管理設(shè)備通過第一接口所對(duì)應(yīng)的連接訪問磁盤設(shè)備。另一方面,當(dāng)檢測(cè)模塊81檢測(cè)第一接口與磁盤設(shè)備的連接不正常時(shí),具體為如果檢測(cè)模塊81檢測(cè)第一接口與磁盤設(shè)備的連接不正常,處理模塊82設(shè)定第一 接口所對(duì)應(yīng)的連接的狀態(tài)為去激活;檢測(cè)模塊81繼續(xù)選擇下一個(gè)接口作為Initiator,并以存儲(chǔ)管理設(shè)備需要訪問的 磁盤設(shè)備為Target,檢測(cè)Initiator和Target之間連接是否正常;如果正常,處理模塊82設(shè)定當(dāng)前的接口與磁盤設(shè)備的連接的狀態(tài)為激活,其他接 口所對(duì)應(yīng)的連接的狀態(tài)為去激活,并設(shè)定其他接口為Target,并使存儲(chǔ)管理設(shè)備通過狀態(tài) 為激活的連接訪問磁盤設(shè)備;如果不正常,檢測(cè)模塊81繼續(xù)選擇下一個(gè)接口作為Initiator,檢測(cè)相應(yīng)的連接 是否正常,直至找到正常的連接,處理模塊82實(shí)現(xiàn)存儲(chǔ)管理設(shè)備與磁盤設(shè)備的訪問,或檢 測(cè)模塊81檢測(cè)所有接口所對(duì)應(yīng)的連接均為不正常,處理模塊82放棄存儲(chǔ)管理設(shè)備與磁盤 設(shè)備的訪問。進(jìn)一步的,接口管理設(shè)備還包括設(shè)置模塊83,與檢測(cè)模塊81和處理模塊82相連接,用于設(shè)置檢測(cè)周期;當(dāng)處理模塊82使存儲(chǔ)管理設(shè)備通過其他接口與磁盤設(shè)備的連接訪問磁盤設(shè)備之后,檢測(cè)模塊81按照設(shè)置模塊83所設(shè)置的檢測(cè)周期檢測(cè)比當(dāng)前連接所對(duì)應(yīng)的接口具有更 高優(yōu)先級(jí)的接口所對(duì)應(yīng)的連接是否恢復(fù)正常;如果恢復(fù)正常,則處理模塊82設(shè)定恢復(fù)正常接口為Initiator,恢復(fù)正常的接口與磁盤設(shè)備的連接的狀態(tài)為激活,其他接口所對(duì)應(yīng)的連接的狀態(tài)為去激活,并設(shè)定其他接 口為Target,使存儲(chǔ)管理設(shè)備通過恢復(fù)正常的接口所對(duì)應(yīng)的連接訪問磁盤設(shè)備。
與現(xiàn)有技術(shù)相比,本發(fā)明具有以下優(yōu)點(diǎn)通過應(yīng)用本發(fā)明的技術(shù)方案,借助多接口的鏈路備選,可實(shí)現(xiàn)在串行鏈路中出現(xiàn) 斷開鏈路時(shí),通過使能不同的SAS接口值,使IO命令從另一個(gè)接口通過,實(shí)現(xiàn)后端SAS通路 的冗余,提高了系統(tǒng)通信的可靠性。通過以上的實(shí)施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到本發(fā)明可以通 過硬件實(shí)現(xiàn),也可以借助軟件加必要的通用硬件平臺(tái)的方式來實(shí)現(xiàn)?;谶@樣的理解,本發(fā) 明的技術(shù)方案可以以軟件產(chǎn)品的形式體現(xiàn)出來,該軟件產(chǎn)品可以存儲(chǔ)在一個(gè)非易失性存儲(chǔ) 介質(zhì)(可以是⑶-ROM,U盤,移動(dòng)硬盤等)中,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可 以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施場(chǎng)景所述的方法。本領(lǐng)域技術(shù)人員可以理解附圖只是一個(gè)優(yōu)選實(shí)施場(chǎng)景的示意圖,附圖中的模塊或 流程并不一定是實(shí)施本發(fā)明所必須的。本領(lǐng)域技術(shù)人員可以理解實(shí)施場(chǎng)景中的裝置中的模塊可以按照實(shí)施場(chǎng)景描述進(jìn) 行分布于實(shí)施場(chǎng)景的裝置中,也可以進(jìn)行相應(yīng)變化位于不同于本實(shí)施場(chǎng)景的一個(gè)或多個(gè)裝 置中。上述實(shí)施場(chǎng)景的模塊可以合并為一個(gè)模塊,也可以進(jìn)一步拆分成多個(gè)子模塊。 上述本發(fā)明序號(hào)僅僅為了描述,不代表實(shí)施場(chǎng)景的優(yōu)劣。 以上公開的僅為本發(fā)明的幾個(gè)具體實(shí)施場(chǎng)景,但是,本發(fā)明并非局限于此,任何本 領(lǐng)域的技術(shù)人員能思之的變化都應(yīng)落入本發(fā)明的保護(hù)范圍。
權(quán)利要求
一種SAS鏈路的通信方法,應(yīng)用于包括存儲(chǔ)控制設(shè)備、接口管理設(shè)備和至少一個(gè)磁盤設(shè)備的系統(tǒng)中,其特征在于,所述接口管理設(shè)備連接所述存儲(chǔ)控制設(shè)備和所述磁盤設(shè)備,所述接口管理設(shè)備至少通過兩個(gè)接口與所述磁盤設(shè)備建立連接,所述方法具體包括以下步驟當(dāng)所述存儲(chǔ)管理設(shè)備需要訪問所述磁盤設(shè)備時(shí),所述接口管理設(shè)備檢測(cè)第一接口與所述磁盤設(shè)備的連接是否正常;如果所述接口管理設(shè)備檢測(cè)所述第一接口與所述磁盤設(shè)備的連接正常,則通過所述第一接口所對(duì)應(yīng)的連接訪問所述磁盤設(shè)備;如果所述接口管理設(shè)備檢測(cè)所述第一接口與所述磁盤設(shè)備的連接不正常,則繼續(xù)依次檢測(cè)其他接口與所述磁盤設(shè)備的連接,選擇一個(gè)正常的連接訪問所述磁盤設(shè)備。
2.如權(quán)利要求1所述的方法,其特征在于,當(dāng)所述存儲(chǔ)管理設(shè)備需要訪問所述磁盤設(shè) 備時(shí),所述接口管理設(shè)備檢測(cè)第一接口與所述磁盤設(shè)備的連接是否正常,具體為所述接口管理設(shè)備通過所述第一接口向所述磁盤設(shè)備發(fā)起小型計(jì)算機(jī)系統(tǒng)接口 SCSI 管理協(xié)議,以所述第一接口為啟動(dòng)器Initiator,所述存儲(chǔ)管理設(shè)備需要訪問的磁盤設(shè)備為 目標(biāo)器Target,檢測(cè)所述Initiator和所述Target之間連接是否正常。
3.如權(quán)利要求2所述的方法,其特征在于,所述如果所述接口管理設(shè)備檢測(cè)所述第一 接口與所述磁盤設(shè)備的連接正常,則通過所述第一接口所對(duì)應(yīng)的連接訪問所述磁盤設(shè)備, 具體為如果所述接口管理設(shè)備檢測(cè)所述第一接口與所述磁盤設(shè)備的連接正常,所述接口管理 設(shè)備設(shè)定所述第一接口與所述磁盤設(shè)備的連接的狀態(tài)為激活,其他接口所對(duì)應(yīng)的連接的狀 態(tài)為去激活,并設(shè)定其他接口為Target ;所述接口管理設(shè)備使所述存儲(chǔ)管理設(shè)備通過所述第一接口所對(duì)應(yīng)的連接訪問所述磁 盤設(shè)備。
4.如權(quán)利要求2所述的方法,其特征在于,所述如果所述接口管理設(shè)備檢測(cè)所述第一 接口與所述磁盤設(shè)備的連接不正常,則繼續(xù)依次檢測(cè)其他接口與所述磁盤設(shè)備的連接,選 擇一個(gè)正常的連接訪問所述磁盤設(shè)備,具體為如果所述接口管理設(shè)備檢測(cè)所述第一接口與所述磁盤設(shè)備的連接不正常,所述接口管 理設(shè)備設(shè)定所述第一接口所對(duì)應(yīng)的連接的狀態(tài)為去激活;所述接口管理設(shè)備繼續(xù)選擇下一個(gè)接口作為Initiator,并以所述存儲(chǔ)管理設(shè)備需要 訪問的磁盤設(shè)備為Target,檢測(cè)所述Initiator和所述Target之間連接是否正常;如果正常,所述接口管理設(shè)備設(shè)定當(dāng)前的所述接口與所述磁盤設(shè)備的連接的狀態(tài)為激 活,其他接口所對(duì)應(yīng)的連接的狀態(tài)為去激活,并設(shè)定其他接口為Target,并使所述存儲(chǔ)管理 設(shè)備通過所述狀態(tài)為激活的連接訪問所述磁盤設(shè)備;如果不正常,繼續(xù)選擇下一個(gè)接口作為Initiator,檢測(cè)相應(yīng)的連接是否正常,直至找 到正常的連接,實(shí)現(xiàn)所述存儲(chǔ)管理設(shè)備與所述磁盤設(shè)備的訪問,或所有接口所對(duì)應(yīng)的連接 均為不正常,放棄所述存儲(chǔ)管理設(shè)備與所述磁盤設(shè)備的訪問。
5.如權(quán)利要求4所述的方法,其特征在于,所述接口管理設(shè)備使所述存儲(chǔ)管理設(shè)備通 過其他接口與所述磁盤設(shè)備的連接訪問所述磁盤設(shè)備之后,還包括所述接口管理設(shè)備按照預(yù)設(shè)的檢測(cè)周期檢測(cè)比當(dāng)前連接所對(duì)應(yīng)的接口具有更高優(yōu)先級(jí)的接口所對(duì)應(yīng)的連接是否恢復(fù)正常;如果恢復(fù)正常,則所述接口管理設(shè)備設(shè)定所述恢復(fù)正常接口為Initiator,所述恢復(fù)正 常的接口與所述磁盤設(shè)備的連接的狀態(tài)為激活,其他接口所對(duì)應(yīng)的連接的狀態(tài)為去激活, 并設(shè)定其他接口為Target,使所述存儲(chǔ)管理設(shè)備通過恢復(fù)正常的接口所對(duì)應(yīng)的連接訪問所 述磁盤設(shè)備。
6.一種接口管理設(shè)備,應(yīng)用于包括存儲(chǔ)控制設(shè)備、接口管理設(shè)備和至少一個(gè)磁盤設(shè)備 的系統(tǒng)中,其特征在于,所述接口管理設(shè)備連接所述存儲(chǔ)控制設(shè)備和所述磁盤設(shè)備,所述接 口管理設(shè)備至少通過兩個(gè)接口與所述磁盤設(shè)備建立連接,具體包括檢測(cè)模塊,用于當(dāng)所述存儲(chǔ)管理設(shè)備需要訪問所述磁盤設(shè)備時(shí),檢測(cè)第一接口與所述 磁盤設(shè)備的連接是否正常;處理模塊,與所述檢測(cè)模塊相連接,用于在所述檢測(cè)模塊檢測(cè)所述第一接口與所述磁 盤設(shè)備的連接正常時(shí),通過所述第一接口所對(duì)應(yīng)的連接訪問所述磁盤設(shè)備;或在所述檢測(cè) 模塊檢測(cè)所述第一接口與所述磁盤設(shè)備的連接不正常時(shí),通知所述檢測(cè)模塊繼續(xù)依次檢測(cè) 其他接口與所述磁盤設(shè)備的連接,并根據(jù)檢測(cè)結(jié)果,選擇一個(gè)正常的連接訪問所述磁盤設(shè) 備。
7.如權(quán)利要求6所述的接口管理設(shè)備,其特征在于,所述檢測(cè)模塊,用于當(dāng)所述存儲(chǔ) 管理設(shè)備需要訪問所述磁盤設(shè)備時(shí),檢測(cè)第一接口與所述磁盤設(shè)備的連接是否正常,具體 為所述檢測(cè)模塊通過所述第一接口向所述磁盤設(shè)備發(fā)起SCSI管理協(xié)議,以所述第一接 口為Initiator,所述存儲(chǔ)管理設(shè)備需要訪問的磁盤設(shè)備為Target,檢測(cè)所述Initiator和 所述Target之間連接是否正常。
8.如權(quán)利要求7所述的接口管理設(shè)備,其特征在于,當(dāng)所述檢測(cè)模塊檢測(cè)所述第一接 口與所述磁盤設(shè)備的連接正常時(shí),具體為如果所述檢測(cè)模塊檢測(cè)所述第一接口與所述磁盤設(shè)備的連接正常,所述處理模塊設(shè)定 所述第一接口與所述磁盤設(shè)備的連接的狀態(tài)為激活,其他接口所對(duì)應(yīng)的連接的狀態(tài)為去激 活,并設(shè)定其他接口為Target;所述處理模塊使所述存儲(chǔ)管理設(shè)備通過所述第一接口所對(duì)應(yīng)的連接訪問所述磁盤設(shè)備。
9.如權(quán)利要求7所述的接口管理設(shè)備,其特征在于,當(dāng)所述檢測(cè)模塊檢測(cè)所述第一接 口與所述磁盤設(shè)備的連接不正常時(shí),具體為如果所述檢測(cè)模塊檢測(cè)所述第一接口與所述磁盤設(shè)備的連接不正常,所述處理模塊設(shè) 定所述第一接口所對(duì)應(yīng)的連接的狀態(tài)為去激活;所述檢測(cè)模塊繼續(xù)選擇下一個(gè)接口作為Initiator,并以所述存儲(chǔ)管理設(shè)備需要訪問 的磁盤設(shè)備為Target,檢測(cè)所述Initiator和所述Target之間連接是否正常;如果正常,所述處理模塊設(shè)定當(dāng)前的所述接口與所述磁盤設(shè)備的連接的狀態(tài)為激活, 其他接口所對(duì)應(yīng)的連接的狀態(tài)為去激活,并設(shè)定其他接口為Target,并使所述存儲(chǔ)管理設(shè) 備通過所述狀態(tài)為激活的連接訪問所述磁盤設(shè)備;如果不正常,所述檢測(cè)模塊繼續(xù)選擇下一個(gè)接口作為Initiator,檢測(cè)相應(yīng)的連接是否 正常,直至找到正常的連接,所述處理模塊實(shí)現(xiàn)所述存儲(chǔ)管理設(shè)備與所述磁盤設(shè)備的訪問,或所述檢測(cè)模塊檢測(cè)所有接口所對(duì)應(yīng)的連接均為不正常,所述處理模塊放棄所述存儲(chǔ)管理 設(shè)備與所述磁盤設(shè)備的訪問。
10.如權(quán)利要求9所述的接口管理設(shè)備,其特征在于,還包括 設(shè)置模塊,與所述檢測(cè)模塊和所述處理模塊相連接,用于設(shè)置檢測(cè)周期; 當(dāng)所述處理模塊使所述存儲(chǔ)管理設(shè)備通過其他接口與所述磁盤設(shè)備的連接訪問所述 磁盤設(shè)備之后,所述檢測(cè)模塊按照所述設(shè)置模塊所設(shè)置的檢測(cè)周期檢測(cè)比當(dāng)前連接所對(duì)應(yīng) 的接口具有更高優(yōu)先級(jí)的接口所對(duì)應(yīng)的連接是否恢復(fù)正常;如果恢復(fù)正常,則所述處理模塊設(shè)定所述恢復(fù)正常接口為Initiator,所述恢復(fù)正常的 接口與所述磁盤設(shè)備的連接的狀態(tài)為激活,其他接口所對(duì)應(yīng)的連接的狀態(tài)為去激活,并設(shè) 定其他接口為Target,使所述存儲(chǔ)管理設(shè)備通過恢復(fù)正常的接口所對(duì)應(yīng)的連接訪問所述磁 盤設(shè)備。
全文摘要
本發(fā)明公開了一種SAS鏈路的通信方法和設(shè)備,通過應(yīng)用本發(fā)明的技術(shù)方案,借助多接口的鏈路備選,可實(shí)現(xiàn)在串行鏈路中出現(xiàn)斷開鏈路時(shí),通過使能不同的SAS接口值,使IO命令從另一個(gè)接口通過,實(shí)現(xiàn)后端SAS通路的冗余,提高了系統(tǒng)通信的可靠性。
文檔編號(hào)G06F13/16GK101833522SQ20101013598
公開日2010年9月15日 申請(qǐng)日期2010年3月31日 優(yōu)先權(quán)日2010年3月31日
發(fā)明者朱輝, 胡榮國(guó) 申請(qǐng)人:杭州華三通信技術(shù)有限公司