亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

在fcp內(nèi)對(duì)tcp卸載引擎的編碼的制作方法

文檔序號(hào):7633798閱讀:388來(lái)源:國(guó)知局
專利名稱:在fcp內(nèi)對(duì)tcp卸載引擎的編碼的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及計(jì)算機(jī)網(wǎng)絡(luò)。更具體而言,本發(fā)明涉及用于與傳輸控制協(xié)議(“TCP”)卸載引擎(“TOE”)通信的方法和設(shè)備。
背景技術(shù)
近年來(lái),聯(lián)網(wǎng)系統(tǒng)中的通信速度已經(jīng)超過(guò)很多網(wǎng)絡(luò)設(shè)備中的微處理器性能的成長(zhǎng)速度。例如,以太網(wǎng)已經(jīng)成為局域網(wǎng)的最常用的聯(lián)網(wǎng)協(xié)議。從10Mb/s以太網(wǎng)到10Gb/s以太網(wǎng)的速度增長(zhǎng)尚未被在大多數(shù)網(wǎng)絡(luò)設(shè)備中使用的處理器的性能的同等增長(zhǎng)所匹配。
這種現(xiàn)象已經(jīng)產(chǎn)生了一種輸入/輸出(I/O)瓶頸,因?yàn)榫W(wǎng)絡(luò)設(shè)備處理器無(wú)法一直跟上通過(guò)網(wǎng)絡(luò)的數(shù)據(jù)流的速率。該瓶頸的一個(gè)重要原因在于TCP/IP棧以慢于網(wǎng)絡(luò)速度的速率被處理。對(duì)TCP/IP的處理通常由在服務(wù)器的中央處理器上運(yùn)行的軟件執(zhí)行。重組亂序分組、處理中斷以及執(zhí)行存儲(chǔ)器復(fù)制給CPU帶來(lái)極大的負(fù)擔(dān)。在高速網(wǎng)絡(luò)中,這樣的CPU對(duì)于網(wǎng)絡(luò)流量比對(duì)于運(yùn)行其它應(yīng)用可能需要更強(qiáng)的處理能力。
TCP/IP卸載引擎(“TOE”)通過(guò)從微處理器和I/O子系統(tǒng)中移除處理TCP/IP的負(fù)擔(dān)(卸載)來(lái)緩解這一I/O瓶頸。TOE通常被實(shí)現(xiàn)在主機(jī)總線適配器(“HBA”)或網(wǎng)絡(luò)接口卡(“NIC”)中。
諸如因特網(wǎng)協(xié)議存儲(chǔ)(“IPS”)之類網(wǎng)絡(luò)存儲(chǔ)應(yīng)用的越發(fā)流行已經(jīng)給網(wǎng)絡(luò)設(shè)備帶來(lái)甚至更大的TCP/IP處理負(fù)擔(dān)。iSCSI(因特網(wǎng)小計(jì)算機(jī)系統(tǒng)接口)協(xié)議常用來(lái)建立和維護(hù)基于IP的存儲(chǔ)設(shè)備、主機(jī)和客戶端之間的連接。iSCSI采用經(jīng)封裝的SCSI協(xié)議,該協(xié)議用于映射TCP/IP網(wǎng)絡(luò)上面向塊的存儲(chǔ)數(shù)據(jù)。作為iSCSI會(huì)話一部分的每個(gè)TCP連接包括用于例如建立/拆除連接、窗口管理、擁塞控制、校驗(yàn)和計(jì)算、中斷、存儲(chǔ)器復(fù)制等等的TCP處理開(kāi)銷。因此,非常希望實(shí)現(xiàn)TCP卸載機(jī)制來(lái)增強(qiáng)網(wǎng)絡(luò)存儲(chǔ)性能。
除了給網(wǎng)絡(luò)設(shè)備帶來(lái)TCP/IP處理負(fù)擔(dān)之外,由于其它原因,使用iSCSI(或類似協(xié)議)的IP存儲(chǔ)的實(shí)現(xiàn)方式還有問(wèn)題。例如,相關(guān)的iSCSI協(xié)議數(shù)據(jù)單元(“PDU”)可能通過(guò)不同路徑通過(guò)網(wǎng)絡(luò)并且不按順序到達(dá)。有時(shí),由于作為其一部分的TCP分段沒(méi)有按順序傳遞,因此可能在希望接收iSCSI頭部時(shí)未接收到iSCSI頭部。在某些實(shí)例中,一個(gè)或多個(gè)PDU可能根本沒(méi)有到達(dá)。
當(dāng)網(wǎng)絡(luò)應(yīng)用涉及經(jīng)由IP網(wǎng)絡(luò)對(duì)作為光纖信道(“FC”)網(wǎng)絡(luò)的一部分的存儲(chǔ)設(shè)備的訪問(wèn)時(shí),將引入其它復(fù)雜情況。該存儲(chǔ)設(shè)備例如可以是FC網(wǎng)絡(luò)上經(jīng)由IP網(wǎng)絡(luò)被NAS客戶端訪問(wèn)的網(wǎng)絡(luò)附接存儲(chǔ)(“NAS”)設(shè)備。由NAS服務(wù)器常用的兩個(gè)應(yīng)用協(xié)議是網(wǎng)絡(luò)文件系統(tǒng)(“NFS”)和通用因特網(wǎng)文件系統(tǒng)(“CIFS”)。很多NAS系統(tǒng)還支持超文本傳輸協(xié)議(“HTTP”),從而允許NAS客戶端使用Web瀏覽器從支持HTTP的NAS服務(wù)器下載文件。
現(xiàn)有技術(shù)TOE沒(méi)有提供用于處理來(lái)自TCP/IP網(wǎng)絡(luò)上的NAS客戶端的定向到FC網(wǎng)絡(luò)上的NAS服務(wù)器的流量的滿意的方法。在這種系統(tǒng)中,不存在到NAS服務(wù)器的TCP連接?,F(xiàn)有技術(shù)的系統(tǒng)不允許NAS服務(wù)器將來(lái)自TOE的數(shù)據(jù)放置在特定存儲(chǔ)器位置中,并且要求來(lái)自IP網(wǎng)絡(luò)的數(shù)據(jù)從各個(gè)存儲(chǔ)器位置復(fù)制,以在FC側(cè)進(jìn)行重建。將希望開(kāi)發(fā)用于解決現(xiàn)有技術(shù)的某些或全部限制的系統(tǒng)和方法。

發(fā)明內(nèi)容
本發(fā)明定義了一種用于與卸載引擎通信的新協(xié)議,所述卸載引擎提供了光纖信道(“FC”)架構(gòu)上傳輸控制協(xié)議(“TCP”)的終止。卸載引擎終止到TCP之前并且包括TCP的所有協(xié)議,并且執(zhí)行與這些層相關(guān)的處理。卸載協(xié)議確保傳遞并被封裝在FCP格式的幀中。因此,TCP流被可靠地傳遞到主機(jī)。另外,使用該方案,卸載引擎可以提供對(duì)TCP流的解析以進(jìn)一步輔助主機(jī)。本發(fā)明還提供了被配置用于執(zhí)行前述方法的網(wǎng)絡(luò)設(shè)備(及其組件)。本發(fā)明還定義了網(wǎng)絡(luò)附接存儲(chǔ)(“NAS”)協(xié)議數(shù)據(jù)單元(“PDU”)是如何被解析和傳遞的。
本發(fā)明還提供了被配置用于至少部分執(zhí)行前述方法的設(shè)備,例如線路卡(即“刀片”)、主機(jī)、交換機(jī)和路由器。本發(fā)明還包括這些設(shè)備可通過(guò)其操作以執(zhí)行本發(fā)明的某些方面的網(wǎng)絡(luò)。根據(jù)某些實(shí)現(xiàn)方式,中央組件是經(jīng)由FC架構(gòu)與卸載引擎通信的主機(jī)。卸載引擎具有對(duì)聯(lián)網(wǎng)接口的訪問(wèn)權(quán)限。此外,本發(fā)明包括可以根據(jù)本發(fā)明的某些方面來(lái)實(shí)現(xiàn)的商業(yè)方法。
本發(fā)明的某些方法提供了用于實(shí)現(xiàn)網(wǎng)絡(luò)存儲(chǔ)的方法。該方法包括以下步驟存儲(chǔ)從因特網(wǎng)協(xié)議(IP)網(wǎng)絡(luò)上的網(wǎng)絡(luò)附接存儲(chǔ)(NAS)客戶端接收的信息;解析所述被存儲(chǔ)的信息;以及將來(lái)自所述解析步驟的結(jié)果發(fā)送到光纖信道(FC)網(wǎng)絡(luò)上的NAS設(shè)備。該方法還包括在FC網(wǎng)絡(luò)上終止到傳輸控制協(xié)議(TCP)之前并包括TCP的所有協(xié)議。
本發(fā)明的其他方面提供了用于實(shí)現(xiàn)網(wǎng)絡(luò)存儲(chǔ)的其它方法。某些這樣的方法包括以下步驟存儲(chǔ)從因特網(wǎng)協(xié)議(IP)網(wǎng)絡(luò)上的網(wǎng)絡(luò)附接存儲(chǔ)(NAS)客戶端接收的數(shù)據(jù)讀取請(qǐng)求,所述數(shù)據(jù)讀取請(qǐng)求指向被存儲(chǔ)在光纖信道(FC)網(wǎng)絡(luò)上的存儲(chǔ)設(shè)備中的數(shù)據(jù);解析所述被存儲(chǔ)的信息;以及分配執(zhí)行所述解析步驟的卸載引擎的存儲(chǔ)器空間,所述分配步驟是根據(jù)所述解析步驟的結(jié)果來(lái)執(zhí)行的。
本發(fā)明的另外其它方法包括以下步驟在因特網(wǎng)協(xié)議(IP)網(wǎng)絡(luò)上的網(wǎng)絡(luò)附接存儲(chǔ)(NAS)客戶端和光纖信道(FC)網(wǎng)絡(luò)上的NAS設(shè)備之間提供接口;以及在所述FC網(wǎng)絡(luò)上終止到傳輸控制協(xié)議(TCP)之前并且包括TCP協(xié)議在內(nèi)的所有協(xié)議。
本發(fā)明的某些實(shí)施例提供了一種線路卡,包括光纖信道(FC)接口;以太網(wǎng)接口;存儲(chǔ)器;和卸載引擎。所述卸載引擎被配置用于存儲(chǔ)經(jīng)由所述以太網(wǎng)接口從因特網(wǎng)協(xié)議(IP)網(wǎng)絡(luò)上的網(wǎng)絡(luò)附接存儲(chǔ)(NAS)客戶端接收的信息;解析所述被存儲(chǔ)的信息;以及經(jīng)由所述FC接口將來(lái)自所述解析步驟的結(jié)果發(fā)送到光纖信道網(wǎng)絡(luò)上的NAS設(shè)備。本發(fā)明的其它實(shí)施例提供了包括所述線路卡的網(wǎng)絡(luò)設(shè)備。本發(fā)明的另外其它實(shí)施例提供了包括所述網(wǎng)絡(luò)設(shè)備和NAS設(shè)備的計(jì)算機(jī)網(wǎng)絡(luò)。在某些實(shí)施例中,所述網(wǎng)絡(luò)設(shè)備包括線路卡和NAS設(shè)備。
本發(fā)明的某些實(shí)施例提供了一種網(wǎng)絡(luò)附接存儲(chǔ)(NAS)設(shè)備,包括光纖信道(FC)接口;存儲(chǔ)器;以及一個(gè)或多個(gè)處理器,所述處理器被配置用于根據(jù)經(jīng)由所述FC接口從傳輸控制協(xié)議(TCP)卸載引擎接收的NAS頭部信息來(lái)分配所述存儲(chǔ)器中的空間,所述頭部信息對(duì)應(yīng)于來(lái)自因特網(wǎng)協(xié)議(IP)網(wǎng)絡(luò)上的NAS客戶端的命令。
本發(fā)明的另外其它實(shí)施例提供了存儲(chǔ)在機(jī)器可讀介質(zhì)上的計(jì)算機(jī)程序。該計(jì)算機(jī)程序包括用于控制傳輸控制協(xié)議(TCP)卸載引擎來(lái)執(zhí)行以下步驟的指令存儲(chǔ)從因特網(wǎng)協(xié)議(IP)網(wǎng)絡(luò)上的網(wǎng)絡(luò)附接存儲(chǔ)(NAS)客戶端接收的信息;解析所述被存儲(chǔ)的信息;以及將來(lái)自所述解析步驟的結(jié)果發(fā)送到光纖信道(FC)網(wǎng)絡(luò)上的NAS設(shè)備。
本發(fā)明的另外其它實(shí)現(xiàn)方式提供了一種用于向用戶可靠地提供賬戶信息的方法。該方法包括存儲(chǔ)對(duì)從因特網(wǎng)協(xié)議(IP)網(wǎng)絡(luò)上的網(wǎng)絡(luò)附接存儲(chǔ)(NAS)客戶端接收的賬戶信息的請(qǐng)求;解析所述被存儲(chǔ)的請(qǐng)求;將來(lái)自所述解析步驟的結(jié)果發(fā)送到光纖信道(FC)網(wǎng)絡(luò)上的NAS設(shè)備;根據(jù)所述結(jié)果分配所述NAS設(shè)備的存儲(chǔ)器中的空間;從所述FC網(wǎng)絡(luò)上的存儲(chǔ)設(shè)備獲取所述被請(qǐng)求的賬戶信息;以及在所述被分配的存儲(chǔ)器空間中存儲(chǔ)所述被請(qǐng)求的賬戶信息。
在以下本發(fā)明的說(shuō)明書(shū)和附圖中將更詳細(xì)地描述本發(fā)明的這些和其它特征和優(yōu)點(diǎn),附圖以示例方式示出了本發(fā)明的原理。


通過(guò)結(jié)合附圖參考以下描述,可以最好地理解本發(fā)明,附圖例示出本發(fā)明的特定實(shí)施例。
圖1A和圖1B是示出可在其中實(shí)現(xiàn)本發(fā)明的某些上下文的網(wǎng)絡(luò)圖。
圖2是示出根據(jù)本發(fā)明實(shí)施例包括卸載引擎的刀片(blade)的框圖。
圖3是示出根據(jù)本發(fā)明實(shí)施例的圖2的刀片的軟件組件的框圖。
圖4是示出根據(jù)本發(fā)明實(shí)施例包括用于實(shí)現(xiàn)NAS設(shè)備的組件的刀片的框圖。
圖5是示出根據(jù)本發(fā)明某些實(shí)現(xiàn)方式的命令聚集和解析的高級(jí)視圖。
圖6是示出根據(jù)本發(fā)明某些實(shí)現(xiàn)方式的卸載套接字(offload socket)狀態(tài)的狀態(tài)圖。
圖7是指示可能丟棄幀的狀況的框圖。
圖8是示出根據(jù)本發(fā)明某些實(shí)現(xiàn)方式的直接數(shù)據(jù)放置的流程圖。
圖9是示出根據(jù)本發(fā)明實(shí)施例的NAS設(shè)備的軟件組件的框圖。
圖10示出根據(jù)本發(fā)明某些方面,將數(shù)據(jù)直接放置到緩沖區(qū)緩存中的過(guò)程。
具體實(shí)施例方式
現(xiàn)在將詳細(xì)參考本發(fā)明的某些特定實(shí)施例,其中包括發(fā)明人想到的用于實(shí)現(xiàn)本發(fā)明的最佳方式。這些特定實(shí)施例的示例在附圖中被示出。雖然結(jié)合特定實(shí)施例描述了本發(fā)明,但是將會(huì)理解,不希望將本發(fā)明局限于所述實(shí)施例。相反,希望覆蓋由所附權(quán)利要求書(shū)限定的包括在本發(fā)明的精神和范圍內(nèi)的替代、修改和等同物。
例如,應(yīng)該注意,本發(fā)明的技術(shù)可被應(yīng)用到各種不同的協(xié)議和網(wǎng)絡(luò)。在以下描述中,提出了多個(gè)特定細(xì)節(jié),以便提供對(duì)本發(fā)明的全面理解。無(wú)需這些特定細(xì)節(jié)的某些或全部,也可以實(shí)施本發(fā)明。在其它示例中,沒(méi)有詳細(xì)描述公知的過(guò)程操作,以免模糊本發(fā)明。
網(wǎng)絡(luò)存儲(chǔ)已經(jīng)變得越來(lái)越流行,并且已經(jīng)成為提供給各類行業(yè)的重要服務(wù),所述行業(yè)例如是銀行、信用卡公司、經(jīng)紀(jì)公司、制造公司、研發(fā)公司、政府實(shí)體、學(xué)術(shù)機(jī)構(gòu)、內(nèi)容供應(yīng)商和很多其它公共和私人實(shí)體。在某些應(yīng)用中,網(wǎng)絡(luò)存儲(chǔ)被用來(lái)備份容宿在遠(yuǎn)程數(shù)據(jù)中心的用戶數(shù)據(jù)或內(nèi)容。這里使用的術(shù)語(yǔ)“數(shù)據(jù)”將包括一般所稱的“內(nèi)容”。數(shù)據(jù)例如可以是由金融機(jī)構(gòu)(例如銀行、信用卡公司或經(jīng)紀(jì)公司)、因特網(wǎng)服務(wù)供應(yīng)商、通信公司、航空公司或在私人或公共地區(qū)的任意其它實(shí)體(例如因特網(wǎng)稅收服務(wù))維護(hù)的用戶賬戶和事務(wù)信息。本領(lǐng)域技術(shù)人員將意識(shí)到,可以包括很多其它類型的數(shù)據(jù)。
在某些這樣的應(yīng)用中,用戶數(shù)據(jù)在網(wǎng)絡(luò)上被保持連續(xù)同步??焖俑淖兓蛞资詳?shù)據(jù)可在數(shù)據(jù)中心被連續(xù)復(fù)制??商鎿Q地,在外部源存儲(chǔ)容宿應(yīng)用中,用戶的網(wǎng)絡(luò)設(shè)備可以訪問(wèn)用于主要數(shù)據(jù)存儲(chǔ)的數(shù)據(jù)中心的存儲(chǔ)設(shè)備。遠(yuǎn)程數(shù)據(jù)中心例如可以在同一城市中,或者在不同的地理區(qū)域中。所有上述應(yīng)用(以及本領(lǐng)域技術(shù)人員公知的應(yīng)用)可以通過(guò)實(shí)現(xiàn)本發(fā)明的方法來(lái)增強(qiáng)。
本發(fā)明提供了用于實(shí)現(xiàn)網(wǎng)絡(luò)存儲(chǔ)解決方案的改進(jìn)方法和設(shè)備。具體而言,本發(fā)明定義了用于包含TOE的通信的新協(xié)議(這里有時(shí)稱之為“卸載協(xié)議”)。卸載協(xié)議在用于與網(wǎng)絡(luò)存儲(chǔ)應(yīng)用相關(guān)的通信時(shí)尤其有利。
在優(yōu)選實(shí)現(xiàn)方式中,TOE提供FC架構(gòu)上的TCP終止。TOE將終止到TCP之前和包括TCP的所有協(xié)議,并將執(zhí)行與這些層相關(guān)聯(lián)的處理。例如,TOE優(yōu)選地提供TCP校驗(yàn)和處理、TCP重傳等等。卸載協(xié)議保證傳遞并被封裝在FCP格式的幀中。因此,TCP流被可靠地傳遞到主機(jī)。另外,使用該方案,卸載引擎可以在TCP流內(nèi)提供對(duì)例如NAS協(xié)議的解析,以進(jìn)一步協(xié)助主機(jī)。
本發(fā)明還提供了諸如主機(jī)、交換機(jī)和路由器之類的網(wǎng)絡(luò)設(shè)備(及其組件),這些網(wǎng)絡(luò)設(shè)備被配置用于至少部分地執(zhí)行這里所述的方法。例如,在某些實(shí)現(xiàn)方式中,TOE被實(shí)現(xiàn)在網(wǎng)絡(luò)設(shè)備的線路卡(即“刀片”)中,該“刀片”有時(shí)被稱為“IPS刀片”。當(dāng)本發(fā)明被用于實(shí)現(xiàn)網(wǎng)絡(luò)存儲(chǔ)(包括FC網(wǎng)絡(luò)中的存儲(chǔ)設(shè)備)時(shí),網(wǎng)絡(luò)設(shè)備還包括FC刀片。
本發(fā)明的優(yōu)選實(shí)現(xiàn)方式涉及TOE和NAS設(shè)備之間的通信。在本發(fā)明的某些實(shí)施例中,NAS設(shè)備一側(cè)的通信由包括IPS刀片的同一機(jī)架中的刀片(有時(shí)稱之為“NSM刀片”)實(shí)現(xiàn)。例如,這兩種刀片都被并入在本發(fā)明受讓人制造的MDS機(jī)架中。在這樣的實(shí)現(xiàn)方式中,NSM刀片將通用處理引擎與MDS光纖信道交換基礎(chǔ)設(shè)施集成在一起。IPS刀片被用作用于NSM刀片上運(yùn)行的軟件(例如NAS軟件)的TCP/UDP卸載處理器。到存儲(chǔ)設(shè)備的連接可以通過(guò)現(xiàn)有的光線信道線路卡來(lái)提供。但是,在本發(fā)明的其它實(shí)施例中,NSM刀片是另一網(wǎng)絡(luò)設(shè)備的一部分。
本發(fā)明還包含網(wǎng)絡(luò),設(shè)備可以通過(guò)所述網(wǎng)絡(luò)工作,以執(zhí)行本發(fā)明的某些方面。根據(jù)某些實(shí)現(xiàn)方式,中央組件是經(jīng)由FC架構(gòu)與卸載引擎通信的主機(jī)。卸載引擎具有對(duì)聯(lián)網(wǎng)接口的訪問(wèn)權(quán)限。此外,本發(fā)明包括可以根據(jù)本發(fā)明的某些方面來(lái)實(shí)現(xiàn)的商業(yè)方法。
圖1A是示出用于實(shí)現(xiàn)本發(fā)明某些方面的一種示例性網(wǎng)絡(luò)配置的網(wǎng)絡(luò)圖。網(wǎng)絡(luò)配置100包括NAS客戶端105,其經(jīng)由TCP/IP網(wǎng)絡(luò)110與網(wǎng)絡(luò)設(shè)備120的NAS設(shè)備125通信。在該示例中,NAS設(shè)備125是被配置用于實(shí)現(xiàn)本發(fā)明某些方面的服務(wù)器,如下面將詳細(xì)描述的。如本領(lǐng)域技術(shù)人員所公知的,網(wǎng)絡(luò)文件系統(tǒng)(“NFS”)應(yīng)用協(xié)議或通用因特網(wǎng)文件系統(tǒng)(“CIFS”)應(yīng)用協(xié)議都常用于與NAS設(shè)備的通信。NAS客戶端105例如可以是由用戶(例如上述用戶之一)操作的設(shè)備,例如膝上型或桌上型計(jì)算機(jī)。
IPS刀片115提供網(wǎng)絡(luò)設(shè)備120和TCP/IP網(wǎng)絡(luò)110之間的接口,并且在該示例中,IPS刀片115包括根據(jù)本發(fā)明配置的卸載引擎。類似地,F(xiàn)C刀片130提供網(wǎng)絡(luò)設(shè)備120和FC網(wǎng)絡(luò)135之間的接口。因此,網(wǎng)絡(luò)設(shè)備120是TCP/IP網(wǎng)絡(luò)110和FC網(wǎng)絡(luò)135之間的中介。因此,NAS設(shè)備125可以訪問(wèn)FC網(wǎng)絡(luò)135的存儲(chǔ)設(shè)備140,以為NAS客戶端105提供網(wǎng)絡(luò)存儲(chǔ)服務(wù)。
NAS設(shè)備125處于與IPS刀片115和FC刀片130相同的機(jī)架內(nèi)。在該示例中,網(wǎng)絡(luò)設(shè)備120是由本發(fā)明的受讓人生產(chǎn)的MDS 9000系列多層交換機(jī)。NAS設(shè)備125、IPS刀片115和FC刀片130經(jīng)由內(nèi)部FC網(wǎng)絡(luò)互連。這些設(shè)備隨后將更詳細(xì)描述。
圖1B示出用于實(shí)現(xiàn)本發(fā)明的替換網(wǎng)絡(luò)配置150。在網(wǎng)絡(luò)配置150中,NAS服務(wù)器170位于與網(wǎng)絡(luò)設(shè)備165分離的機(jī)架中,該網(wǎng)絡(luò)設(shè)備165包括卸載引擎168。在網(wǎng)絡(luò)配置150中,NAS服務(wù)器170和存儲(chǔ)設(shè)備180是FC網(wǎng)絡(luò)175的一部分。網(wǎng)絡(luò)設(shè)備165包括類似于刀片115和FC刀片130的FC和IP設(shè)備(未示出),用于提供與基于IP的網(wǎng)絡(luò)160和FC網(wǎng)絡(luò)175之間的接口。據(jù)此,NAS客戶端155可以經(jīng)由網(wǎng)絡(luò)設(shè)備165訪問(wèn)基于IP網(wǎng)絡(luò)160上的NAS服務(wù)器170。
圖2是示出根據(jù)本發(fā)明某些實(shí)施例的IPS刀片200的某些特征的框圖。在該示例中,IPS刀片200包括多個(gè)TOE 225,這里也稱之為“卸載核心”或“卸載引擎”。每個(gè)卸載核心將在初始化過(guò)程期間被發(fā)現(xiàn)。在一個(gè)示例性實(shí)施例中,IPS刀片200是八端口以太網(wǎng)線路卡。存在其它四個(gè)處理器被用于提供以太網(wǎng)接口。每個(gè)處理器具有兩個(gè)處理核心。這些核心被用于提供聯(lián)網(wǎng)功能,例如TCP/IP、iSCSI和FCIP。
每個(gè)TOE 225包括一個(gè)FC接口205。IPS刀片200將使用卸載連接215與NAS設(shè)備210(運(yùn)行NAS協(xié)議的服務(wù)器)通信。卸載連接類似于套接字型接口。因此,每個(gè)TCP連接將具有一個(gè)不同的卸載連接,包括任意監(jiān)聽(tīng)者。管理消息和控制信息將通過(guò)FC接口205被發(fā)送。卸載核心將提供用于NAS設(shè)備210的TCP終止。
NSM、IPS和FC刀片可被劃分在分別作為同一FC架構(gòu)的一部分的多個(gè)互連的機(jī)架中。例如,NAS設(shè)備210可以與TOE 225位于同一機(jī)架中(例如如圖1A所示)或位于別處(例如在FC網(wǎng)絡(luò)上,如圖1B所示)。
在本發(fā)明的很多實(shí)現(xiàn)方式中,NAS客戶端將從IP網(wǎng)絡(luò)訪問(wèn)NAS設(shè)備210。因此,每個(gè)TOE 225還包括以太網(wǎng)接口220和以太網(wǎng)驅(qū)動(dòng)器235,用于與IP網(wǎng)絡(luò)通信。卸載引擎將終止到TCP之前和包括TCP的所有協(xié)議。TCP/IP模塊240執(zhí)行與這些層相關(guān)的處理并且可以對(duì)TCP流提供解析以進(jìn)一步輔助NAS設(shè)備。IPS刀片端口的某些實(shí)施例可被配置用于iSCSI、FCIP和TCP終止。模塊245提供與管理任務(wù)相關(guān)的處理,例如創(chuàng)建卸載連接225和獲取針對(duì)這些連接的統(tǒng)計(jì)量。
根據(jù)本發(fā)明的方法,在FCP之上將使用專門(mén)協(xié)議,以用于TOE 225和NAS設(shè)備210之間的通信。直接數(shù)據(jù)放置將被用來(lái)允許NAS設(shè)備210將套接字?jǐn)?shù)據(jù)放置在本地存儲(chǔ)器中的特定位置。該特征有益于NAS設(shè)備210的緩沖區(qū)緩存。在優(yōu)選實(shí)施例中,TOE 225的一個(gè)或多個(gè)組件(例如TCP/IP模塊240)執(zhí)行以下功能TCP/IP卸載;TCP終止;TCP校驗(yàn)和;基于每個(gè)套接字處理數(shù)據(jù)的聚集;TCP重傳;UDP卸載;和IP分段處理。
TOE 225輔助被發(fā)送到NAS服務(wù)器軟件的NAS PDU的成幀過(guò)程。該特征有助于使數(shù)據(jù)在NAS設(shè)備210中的移動(dòng)最小化。
圖3指示IPS刀片200的某些示例性軟件組件300。這些軟件組件中的多數(shù)可以以與傳統(tǒng)軟件組件相同的方式工作。例如,以太網(wǎng)驅(qū)動(dòng)器305和TCP/IP棧310可能具有本領(lǐng)域技術(shù)人員熟悉的類型。FCIP模塊315可以根據(jù)本領(lǐng)域技術(shù)人員公知的方法提供FCIP封裝/解封裝,或者可以是本發(fā)明的受讓人開(kāi)發(fā)的專門(mén)軟件。2003年1月23日遞交的題為“MethodsAnd Devices For Transmitting Data Between Storage Area Networks”的美國(guó)專利申請(qǐng)No.10/351,167和No.10/350,574,據(jù)此通過(guò)參考并入這兩個(gè)專利申請(qǐng)。FC接口320可以是用于處理例如低級(jí)FC成幀的傳統(tǒng)接口。FCP目標(biāo)340可以根據(jù)標(biāo)準(zhǔn)的FC協(xié)議實(shí)現(xiàn)方式來(lái)構(gòu)建。
但是,NAS卸載335提供了根據(jù)本發(fā)明的新功能。NAS卸載335獲取在TCP/IP流中接收的NAS PDU,并適當(dāng)?shù)厥顾鼈兂蓭?,以形成發(fā)生在卸載引擎和NAS設(shè)備210之間的FCP請(qǐng)求。在FCP協(xié)議內(nèi)存在“發(fā)起者”,其啟動(dòng)與“目標(biāo)”之間的事務(wù)(即請(qǐng)求“目標(biāo)”的操作)。根據(jù)本發(fā)明的新協(xié)議,卸載引擎將是FC目標(biāo)。NAS設(shè)備210(例如NAS服務(wù)器)將發(fā)起到FCP目標(biāo)340的事務(wù)。NAS卸載335接收NAS分組,對(duì)分組進(jìn)行解析并適當(dāng)?shù)仨憫?yīng)于這樣的FCP請(qǐng)求。NAS卸載335將利用FCP協(xié)議在NAS設(shè)備210和IPS刀片200之間運(yùn)載命令。對(duì)于在以太網(wǎng)接口中到達(dá)的數(shù)據(jù)而言,該過(guò)程更復(fù)雜。這些過(guò)程隨后將更詳細(xì)描述。
NAS設(shè)備210覺(jué)察到NAS卸載335(和FC目標(biāo)340)是新的SCSI設(shè)備類型,這種新型SCSI設(shè)備的功能是在TCP/NAS到穿過(guò)FC網(wǎng)絡(luò)的SCSI命令和數(shù)據(jù)之間建立一座橋。NAS卸載335根據(jù)由本發(fā)明的發(fā)明人開(kāi)發(fā)的命令集(例如這里提出的命令集)執(zhí)行該任務(wù)和其它任務(wù)。因此,IPS刀片200的優(yōu)選實(shí)施例將能夠被同時(shí)用于iSCSI、FCIP和NAS。當(dāng)被用于NAS時(shí),核心將為NAS設(shè)備210提供TCP終止功能。
圖4示出根據(jù)本發(fā)明某些方面的示例性NSM刀片的某些組件。圖4示出與IPS刀片200和監(jiān)管器420位于同一機(jī)架401內(nèi)的NSM刀片210。IPS刀片200包括根據(jù)本發(fā)明配置的TOE。NSM刀片210的主要組件是CPU 405、處理器模塊410和機(jī)架連接模塊415。雖然CPU 405和處理器模塊410被配置用于執(zhí)行本發(fā)明的方法,但是CPU 405和處理器模塊410可能是分別如此配置的任意CPU和芯片組。例如,CPU 405可以是Pentium III微處理器并且處理器模塊410可以包括一個(gè)或多個(gè)Xeon芯片組。
在以下段落中,將提出NSM刀片的各種功能及其與IPS刀片200和監(jiān)管器420之間的相互影響。本領(lǐng)域技術(shù)人員將意識(shí)到,這里描述的功能的具體細(xì)節(jié)僅僅是示例性的,具有類似本質(zhì)的很多其它功能也在本發(fā)明的范圍內(nèi)。
CPU 405將使用引導(dǎo)加載器進(jìn)行引導(dǎo),以從閃存加載模塊鏡像。在引導(dǎo)期間,處理器模塊410將維持在復(fù)位中。CPU 405此時(shí)注冊(cè)到監(jiān)管器420。如果在注冊(cè)期間發(fā)現(xiàn)鏡像版本不匹配,則從監(jiān)管器420下載CPU405的新固件,并且復(fù)位NSM刀片。如果版本匹配,處理器模塊410復(fù)位線則在機(jī)架連接模塊415被初始化并且處理器模塊管理器425被啟動(dòng)之后被釋放。
處理器模塊410將根據(jù)存儲(chǔ)在其閃存中的引導(dǎo)代碼進(jìn)行引導(dǎo)。在該示例性實(shí)施例中,處理器模塊410具有集成驅(qū)動(dòng)電子(“IDE”)盤(pán),并且引導(dǎo)代碼將從IDE盤(pán)加載先前的固件版本。當(dāng)固件初始化時(shí),處理器模塊410啟動(dòng)與CPU 405的通信并注冊(cè)到處理器模塊管理器425。在該示例中,這些通信通過(guò)10/100以太網(wǎng)連接發(fā)生。在注冊(cè)之后,處理器模塊管理器425將立即證實(shí)處理器模塊410的處理器正運(yùn)行正確的版本。如果活動(dòng)版本不正確,處理器則重新加載正確的版本。如果在IDE盤(pán)上沒(méi)有找到正確的鏡像版本,固件則將利用例如到CPU 405的10/100以太網(wǎng)連接啟動(dòng)鏡像的下載。
在該示例中,NAS軟件440的固件和配置數(shù)據(jù)將被存儲(chǔ)在處理器模塊410的IDE盤(pán)上。NAS軟件440可以按照需要被升級(jí)。例如,升級(jí)可以經(jīng)由內(nèi)部以太網(wǎng)來(lái)執(zhí)行。
在本發(fā)明的某些實(shí)施例中,用戶可以經(jīng)由監(jiān)管器420的管理以太網(wǎng)端口430來(lái)配置NAS軟件440。當(dāng)機(jī)架401是MDS時(shí),用戶將使用MDS命令線路接口(“CLI”)的“附接”命令連接到在特定NSM刀片上運(yùn)行的NAS CLI。附接命令在內(nèi)部使用telnet通過(guò)內(nèi)部以太網(wǎng)連接到適當(dāng)?shù)腘SM刀片。telnet會(huì)話將被擴(kuò)展到在處理器模塊410上運(yùn)行的NAS固件。
用于FC端口和SCSI發(fā)起者435的驅(qū)動(dòng)器將利用處理器模塊410上的NAS固件來(lái)加載。NAS固件將使用SCSI發(fā)起者435與在FC架構(gòu)上可獲得的設(shè)備通信。NAS固件還將用于與由IPS刀片200提供的TCP卸載能力通信。
現(xiàn)在將論述IPS刀片200和NSM刀片210之間的各種交互。當(dāng)以太網(wǎng)接口被配置為NAS終止引擎時(shí),將在啟動(dòng)期間為卸載連接分配附加的全球端口名(“WWPN”)。該WWPN將被用于卸載處理器和NSM刀片210之間的所有卸載連接。卸載處理器將WWPN安裝到構(gòu)架的名字服務(wù)器中。
NSM刀片210將表現(xiàn)得像任意架構(gòu)用戶一樣,登錄到架構(gòu)并查詢名字服務(wù)器來(lái)發(fā)現(xiàn)所有設(shè)備。卸載引擎將以這種方式被發(fā)現(xiàn),并且隨后可以對(duì)每個(gè)卸載處理器形成卸載連接。
NSM刀片210將啟動(dòng)到每個(gè)卸載引擎的卸載連接。在一個(gè)實(shí)施例中,每個(gè)卸載核心支持64K連接。但是,連接標(biāo)識(shí)符的大小可被確定為(例如32位)允許所支持的連接的數(shù)目按需要增加。每個(gè)卸載連接可被認(rèn)為是一個(gè)聯(lián)網(wǎng)套接字。每個(gè)連接將由其連接標(biāo)識(shí)符來(lái)唯一地標(biāo)識(shí)。NAS軟件還將被配置用于它將使用的IP地址。光纖信道接口(例如圖2所示的光纖信道接口205)可被用來(lái)使用傳輸協(xié)議FCP傳輸消息。
但是,一個(gè)給定的卸載核心可能支持多個(gè)IP地址。可能存在多個(gè)IP地址被配置用于一個(gè)特定的以太網(wǎng)接口。VLAN可以被采用,其中每個(gè)VLAN接收其自己的IP地址。
在NAS軟件從FC名字服務(wù)器發(fā)現(xiàn)卸載核心之后,它將打開(kāi)到每個(gè)核心的卸載連接。使用管理原語(yǔ),NAS軟件將能夠獲取在每個(gè)核心處配置的所有IP地址。
卸載協(xié)議概述在優(yōu)選實(shí)施例中,F(xiàn)CP信息單元將被用于運(yùn)載卸載協(xié)議。本部分提供用于實(shí)現(xiàn)本發(fā)明的一個(gè)示例性協(xié)議的概述。本部分主要集中在FCP_CMND、FCP_DATA和FCP_RESP命令被如何用在MDS系統(tǒng)中。但是,本領(lǐng)域技術(shù)人員將意識(shí)到,這里論述的特定命令的變體處于本發(fā)明的范圍內(nèi)。
如上所述,將在卸載核心和NAS設(shè)備之間形成連接,所述NAS設(shè)備可以是一個(gè)分離的NAS服務(wù)器,也可以是處于同一機(jī)架中的NSM刀片。這些連接類似于套接字。每個(gè)連接將具有一個(gè)ProviderConnectionId和一個(gè)UserConnectionId。當(dāng)連接被創(chuàng)建時(shí),NAS設(shè)備將定義UserConnectionId,而卸載核心將定義ProviderConnectionId。在大多數(shù)情況下,發(fā)送到NAS設(shè)備的數(shù)據(jù)將包含UserConnectionId,而發(fā)送到卸載核心的數(shù)據(jù)將包含ProviderConnectionId。
FCP_CMNDFCP_CMND FCP_LUN將被設(shè)置為全零。
某些FCP_CMND FCP_CNTL字段將被允許。命令標(biāo)號(hào)將被用于檢測(cè)丟棄的幀,部分4.3在這方面提供了更多細(xì)節(jié)。任務(wù)代碼必須是Simple_Q。除了Clear ACA之外,任務(wù)管理標(biāo)志將被支持,其中ClearACA必須保持為0。執(zhí)行管理代碼將被用于指示數(shù)據(jù)傳輸?shù)姆较颉?br> 專門(mén)命令描述符塊(“CDB”)構(gòu)成協(xié)議的基礎(chǔ)。在一種實(shí)現(xiàn)方式中,CDB具有16個(gè)字節(jié),與FCP的標(biāo)準(zhǔn)一樣,在CDB之后跟隨有FCP_DL字段。
在一個(gè)示例中,F(xiàn)CP_CMND CDB的格式如下


OffioadClass可以被設(shè)置為MgmtClass、SocketClass、TcpClass或UdpClass。其中每一個(gè)將在隨后的部分中描述。在優(yōu)選實(shí)現(xiàn)方式中,OffioadClass值將與SCSI操作代碼中所定義的群組代碼全部一致。在某些這樣的實(shí)現(xiàn)方式中,這將被用于指示我們的CDB的長(zhǎng)度為16字節(jié)。
OffioadTimeout值被用于限制卸載引擎必須響應(yīng)于命令的時(shí)間。零指示不存在與命令相關(guān)聯(lián)的超時(shí)。該時(shí)間值以秒為單位來(lái)指定。
FCP_RESPFCP_RESP將被用來(lái)完成到發(fā)起者的命令,在本發(fā)明的優(yōu)選實(shí)現(xiàn)方式中,發(fā)起者是NAS設(shè)備。FCP_STATUS中的有效性標(biāo)志將與FCP_RESID一起被用來(lái)指示還有多少與命令有關(guān)的數(shù)據(jù)剩余。這些通常與數(shù)據(jù)路徑流量一起使用。存在三種常用值。在第一實(shí)例中,F(xiàn)CP_RESID_UNDER和FCP_RESID_OVER都不設(shè)置并且FCP_RESID=0。這種組合指示命令被完全處理,所請(qǐng)求的數(shù)據(jù)被返回,并且沒(méi)有可進(jìn)一步獲得的數(shù)據(jù)(FCP_DL是被發(fā)送的數(shù)據(jù)的量)。
第二組合是FCP_RESID_UNDER被設(shè)置并且FCP_RESID>0。該組合指示不是所有數(shù)據(jù)都可獲得。FCP_RESID將被設(shè)置為沒(méi)有與被請(qǐng)求的命令一起返回的數(shù)據(jù)量。換言之,這意味著FCP_DL大于實(shí)際返回的數(shù)據(jù)量。
在第三種情形中,F(xiàn)CP_RESID_OVER被設(shè)置并且FCP_RESID>0。這種組合指示所有數(shù)據(jù)都被返回,并且對(duì)于NAS設(shè)備來(lái)說(shuō),仍有附加的FCP_RESID數(shù)據(jù)量可被讀取(FCP_DL對(duì)于可獲得的數(shù)據(jù)量來(lái)說(shuō)不夠)。
SCSI狀態(tài)字節(jié)的值將從SAM-2規(guī)范中獲取。差錯(cuò)信息將在響應(yīng)的讀數(shù)據(jù)中提供。SCSI狀態(tài)字節(jié)將被設(shè)置為CHECK CONDITION(0x02)并且供應(yīng)商特定值將在ASC/ASCQ字節(jié)中定義差錯(cuò)。這些差錯(cuò)包括STATUS_INVALD_CONNECTION、STATUS_NVALID_PARAMETER等等。
發(fā)起者命令本部分定義了可由NAS設(shè)備向卸載引擎發(fā)布的命令。在正常情況下,沒(méi)有命令應(yīng)該超時(shí)。當(dāng)請(qǐng)求無(wú)法被卸載引擎完成時(shí),F(xiàn)CP_RESP將在NAS設(shè)備的命令超時(shí)值之前被生成。該狀態(tài)將反映命令的狀態(tài)。
在該實(shí)施例中,由NAS設(shè)備發(fā)起管理命令,并且通過(guò)將CDB中的OffloadClass字段設(shè)置為MgmtClass來(lái)標(biāo)識(shí)管理命令。NAS設(shè)備將發(fā)起這樣的FCP_CMND,其中CDB被設(shè)置為特定類型的管理請(qǐng)求。FCP_CMND將是一個(gè)讀取請(qǐng)求,其長(zhǎng)度基于響應(yīng)被設(shè)置為期望的數(shù)據(jù)量。以下命令作為FCP讀取數(shù)據(jù)命令被執(zhí)行讀取IP地址請(qǐng)求——該命令被NAS設(shè)備用來(lái)從卸載核心讀出所有IP地址。FCP_DL將被設(shè)置為足夠大的值,以讀取卸載核心中的所有IP地址。
讀取狀態(tài)請(qǐng)求——該命令被NAS設(shè)備用來(lái)從卸載核心讀出所有統(tǒng)計(jì)量。這些統(tǒng)計(jì)量將與特定的卸載連接相關(guān)。
套接字命令以下命令將被用于TCP和UDP連接兩者。這些命令都是作為FCP讀取數(shù)據(jù)命令來(lái)執(zhí)行的SocketBind——該命令被NAS設(shè)備用來(lái)在卸載核心上建立連接。
SocketClose——SocketClose請(qǐng)求被用于關(guān)閉現(xiàn)有連接或防止創(chuàng)建新打開(kāi)的監(jiān)聽(tīng)者連接。
SocketStats——該命令被用于讀取連接的所有統(tǒng)計(jì)量。
TCP命令TCP命令是通過(guò)將OffloadClass設(shè)置為T(mén)cpClass來(lái)標(biāo)識(shí)的。這些命令被用于創(chuàng)建新連接、傳輸數(shù)據(jù)以及執(zhí)行與TCP連接相關(guān)聯(lián)的其它任務(wù)。除非另外指出,否則TCP命令都是作為FCP讀取數(shù)據(jù)命令來(lái)執(zhí)行的SocketConnect——該命令被NAS設(shè)備用于在卸載核心上建立連接。
SocketListen——該命令被用于等待連接到達(dá)監(jiān)聽(tīng)者。即使已經(jīng)建立了多個(gè)監(jiān)聽(tīng)者,也可以使用單個(gè)SocketListen,因?yàn)楫?dāng)SYN分組被接收時(shí),在響應(yīng)中提供了SocketClientConnectionId。
SocketAccept——該命令被NAS設(shè)備用于響應(yīng)于SocketListen在卸載核心上建立連接。
SocketNasPeek——SocketNasPeek是NAS設(shè)備用于從卸載引擎獲取數(shù)據(jù)的起始點(diǎn)。它被用來(lái)請(qǐng)求來(lái)自當(dāng)前沒(méi)有被NAS設(shè)備“偷窺”到的任意TCP連接的經(jīng)解析的NAS命令。一旦在連接上接收到數(shù)據(jù),NAS頭部就將與SocketNasPeek FCP_RESP一起被返回。在優(yōu)選實(shí)現(xiàn)方式中,連接將以FIFO方式被處理。
SocketRead——該請(qǐng)求被用于讀取來(lái)自特定連接的數(shù)據(jù)。當(dāng)NAS設(shè)備已經(jīng)知道在套接字上有多少數(shù)據(jù)時(shí),該命令通常響應(yīng)于SocketNasPeek被使用。該命令被用于從套接字讀取數(shù)據(jù)并將數(shù)據(jù)放置在NAS設(shè)備上的指定位置中。
SocketWrite(FCP寫(xiě)數(shù)據(jù))——該命令被用于將數(shù)據(jù)和NAS響應(yīng)發(fā)送到TCP連接上的NAS客戶端。所有數(shù)據(jù)都將被放置在連接中。
UDP命令UDP命令通過(guò)將OffioadClass設(shè)置為UdpClass來(lái)標(biāo)識(shí)。這些命令被用來(lái)創(chuàng)建新連接、傳輸數(shù)據(jù),以及執(zhí)行與UDP連接相關(guān)聯(lián)的其它任務(wù)。除非另外指定,否則這些命令都作為FCP讀取數(shù)據(jù)命令被執(zhí)行SocketNasPeek——該命令被用來(lái)等待將在UDP連接上到達(dá)的數(shù)據(jù)。即使已經(jīng)建立多個(gè)連接,也可以使用單個(gè)SocketNasPeek,因?yàn)樵诮邮辗纸M時(shí),在響應(yīng)中提供了SocketClientConnectionId。
SocketRead——該請(qǐng)求被用于從特定連接讀取數(shù)據(jù)。當(dāng)NAS設(shè)備已經(jīng)知道在套接字上有多少數(shù)據(jù)時(shí),該命令通常是響應(yīng)于SocketNasPeek被使用的。該命令被用來(lái)從套接字讀取數(shù)據(jù),以及將數(shù)據(jù)放置在NAS設(shè)備上的特定位置中。
SocketWrite(FCP寫(xiě)數(shù)據(jù))——該命令被用于在UDP端口上發(fā)送數(shù)據(jù)。優(yōu)選地,所有數(shù)據(jù)都將被放置在單個(gè)IP分組中。
NAS設(shè)備可能不按順序讀取UDP分組。最初,分組頭部按順序發(fā)送,但是NAS設(shè)備將可能按任意順序讀取分組的其余部分。如果需要,卸載引擎可以對(duì)來(lái)自同一源的分組進(jìn)行排隊(duì),并一個(gè)接一個(gè)地傳遞分組。如果在這種情況下,RES_ID將反映活動(dòng)分組剩余的數(shù)據(jù)量。
數(shù)據(jù)傳輸概述對(duì)于TCP和UDP兩者,數(shù)據(jù)可以與適當(dāng)?shù)膶?xiě)命令一起發(fā)送。一個(gè)好的FCP_RESP讓NSM知道數(shù)據(jù)被正確地發(fā)送。接收數(shù)據(jù)更復(fù)雜,因?yàn)樵趦?yōu)選實(shí)現(xiàn)方式中,NAS設(shè)備是發(fā)起者,并且考慮到效率,使未決請(qǐng)求的數(shù)目保持最小是很重要的。TCP和UDP都將使用常用的“偷窺后讀取”方法,如下面更詳細(xì)描述的。
解析現(xiàn)在將參考圖5來(lái)描述簡(jiǎn)化的數(shù)據(jù)傳輸過(guò)程500。在“卸載引擎”一側(cè)的塊指示卸載引擎通過(guò)IP網(wǎng)絡(luò)從NAS客戶端接收的數(shù)據(jù)和命令。
來(lái)自NAS設(shè)備的SocketNasPeek命令啟動(dòng)接收過(guò)程。SocketNasPeek希望獲取與NAS請(qǐng)求相關(guān)的所有控制信息。通常,F(xiàn)CP_DL將被設(shè)置為一個(gè)值,該值足以獲取最大的命令信息。卸載核心將解析接收流,并且優(yōu)選地,將僅在SocketNasPeek響應(yīng)510中返回頭部信息。該頭部將保持在套接字中。
在NAS寫(xiě)請(qǐng)求的情況下,NAS設(shè)備將隨后在連接上發(fā)布SocketRead515,以獲取與命令相關(guān)的數(shù)據(jù)。SocketRead 515優(yōu)選地具有如下參數(shù),該參數(shù)將允許在傳輸開(kāi)始之前從流中卸下指定量的數(shù)據(jù)(SocketRead響應(yīng)520)。該機(jī)制防止頭部被傳輸多次。
因此,當(dāng)多個(gè)命令處在特定連接的接收緩沖區(qū)中時(shí),它們可以與單個(gè)SocketNasPeek響應(yīng)一起被傳遞到NAS設(shè)備。在該實(shí)現(xiàn)方式中,響應(yīng)受SocketNasPeek FCP_DL值的大小(沒(méi)有部分命令將被傳遞到NAS設(shè)備)或NAS寫(xiě)命令的出現(xiàn)所限制。
數(shù)據(jù)獲取下面將參考圖6來(lái)描述示例性的數(shù)據(jù)獲取過(guò)程。圖6指示數(shù)據(jù)獲取過(guò)程和相關(guān)過(guò)程期間卸載引擎的各種狀態(tài)。
利用TCP,SocketNasPeek 605被NAS設(shè)備所發(fā)布。任意多個(gè)SocketNasPeek可被同時(shí)發(fā)布,因?yàn)樗鼈兛梢詮娜魏翁捉幼纸邮諗?shù)據(jù)。當(dāng)在TCP連接上接收到數(shù)據(jù)時(shí),SocketNasPeek將在來(lái)自卸載核心的FCP_DATA和FCP_RESP序列(610)中返回UserConnectionId以及被請(qǐng)求的數(shù)據(jù)。
如果最后一個(gè)NAS命令是寫(xiě)命令(615),該連接則隨后移動(dòng)到“等待SocketRead”狀態(tài)620。隨后該連接將經(jīng)由一系列SocketRead 625被讀取。帶有新命令標(biāo)號(hào)的SocketRead還充當(dāng)對(duì)在前一讀取上發(fā)送的數(shù)據(jù)的確認(rèn),并且將允許卸載引擎釋放被確認(rèn)的數(shù)據(jù)。在NAS寫(xiě)的情況下,SocketRead在從客戶端傳遞了所有數(shù)據(jù)之前可能超時(shí)。當(dāng)這種情況發(fā)生時(shí),將指示欠載運(yùn)行(under-run),并且NAS設(shè)備必須生成另一SocketRead來(lái)收集寫(xiě)數(shù)據(jù)的其余部分。
如果最后一個(gè)命令是任意的其它命令,該連接則停止,直到數(shù)據(jù)被NSM確認(rèn)為止。因此,將移動(dòng)到“等待Peek Ack”狀態(tài)630。隨后的SocketNasPeek命令將提供對(duì)在上一SocketNasPeek FCP_RESP中傳遞的數(shù)據(jù)的確認(rèn)。
UDP使用非常類似的機(jī)制。針對(duì)每個(gè)監(jiān)聽(tīng)者存在一個(gè)連接。當(dāng)接收到UDP分組時(shí),某些或全部數(shù)據(jù)響應(yīng)于SocketNasPeek被傳遞。SocketNasPeek響應(yīng)具有一個(gè)頭部,該頭部位于將標(biāo)識(shí)遠(yuǎn)程客戶端的這些數(shù)據(jù)、監(jiān)聽(tīng)者連接id和將被用于讀取分組的其余部分的標(biāo)簽之前。與TCP一樣,UDP分組的其余部分隨后將使用一個(gè)或多個(gè)SocketRead來(lái)讀取。
對(duì)于TCP和UDP兩者,所有NAS頭部與一個(gè)SocketNasPeek的FCP_RESP一起被傳遞到NAS設(shè)備。隨后的SocketNasPeek優(yōu)選地還捎帶確認(rèn),因此接收的數(shù)據(jù)可以被釋放。在NAS寫(xiě)命令的情況下,數(shù)據(jù)的其余部分使用一個(gè)或多個(gè)SocketRead被讀取,最終最后一個(gè)數(shù)據(jù)以長(zhǎng)度為零的SocketRead來(lái)確認(rèn)。
保障傳遞卸載命令將通過(guò)FC第3類來(lái)發(fā)送。因此,幀在沒(méi)有更低層恢復(fù)的情況下被丟棄是可能的。但是,因?yàn)檫@一般將穿過(guò)內(nèi)部交換機(jī),因此這種幀丟棄應(yīng)該是很罕見(jiàn)的。
一種處理丟棄的幀的方法是檢測(cè)丟失的幀并簡(jiǎn)單地丟棄連接,以及讓客戶端重新連接并重新發(fā)布它們的請(qǐng)求。可替換地,卸載協(xié)議可以恢復(fù)和重新發(fā)布命令。
檢測(cè)丟失的幀的關(guān)鍵將是FCP_CNTL命令標(biāo)號(hào)和計(jì)時(shí)器。在某些實(shí)現(xiàn)方式中,命令標(biāo)號(hào)將在以下類別中循環(huán)(a)每個(gè)TCP連接;(b)每個(gè)UDP監(jiān)聽(tīng)者;(c)管理命令;(d)TCP SocketNasPeek和SocketListen;以及(e)UDP SocketNasPeek。在一種這樣的實(shí)現(xiàn)方式中,命令標(biāo)號(hào)字段的寬度為8位。
圖7示出所有可能的階段,其中當(dāng)使用該示例性實(shí)現(xiàn)方式時(shí),數(shù)據(jù)幀可能丟失。如圖7所示,當(dāng)FCP_CMD(讀數(shù)據(jù))命令被發(fā)送到卸載引擎時(shí)(情況1),當(dāng)FCP_CMD(寫(xiě)數(shù)據(jù))命令被發(fā)送到卸載引擎時(shí)(情況4),或者當(dāng)FCP_DATA命令被發(fā)送到卸載引擎時(shí)(情況5),幀可能被丟棄。當(dāng)FCP_DATA命令被發(fā)送到NAS設(shè)備時(shí)(情況2)或者當(dāng)FCP_RESP命令被發(fā)送到NAS設(shè)備時(shí)(情況3和6),幀也可能被丟棄。
下表指示針對(duì)本發(fā)明的一個(gè)示例性實(shí)現(xiàn)方式,對(duì)于每個(gè)命令參考類別和“丟失幀”的情況,丟失幀狀況中的每一種是如何被處理的。

狀況“A”是命令超時(shí),其中NAS設(shè)備將發(fā)布中止任務(wù)命令,并且一旦中止結(jié)束,就重新發(fā)布命令(以相同的命令標(biāo)號(hào))。狀況“B”是命令超時(shí),其中NAS設(shè)備將發(fā)布中止任務(wù)命令并發(fā)布新命令(以新的命令標(biāo)號(hào))。
在狀況“C”到“F”中,命令包括丟失數(shù)據(jù)。對(duì)于狀況“C”,NAS設(shè)備的FCP發(fā)起者的命令完成狀態(tài)(與FCP_RESP一道)將指示卸載引擎發(fā)送了比NAS設(shè)備實(shí)際接收的更多的數(shù)據(jù)。NAS設(shè)備將丟棄所有接收的數(shù)據(jù),并以相同的命令標(biāo)號(hào)重新發(fā)布命令。對(duì)于狀況“D”,NAS設(shè)備將以新的命令標(biāo)號(hào)重新發(fā)布命令。
狀況“E”指示NAS設(shè)備無(wú)法檢測(cè)哪個(gè)連接接收數(shù)據(jù)。由于在正常情況下,SocketNasPeek不會(huì)超時(shí),因此命令將被中止并以新的命令標(biāo)號(hào)被發(fā)布。中止將觸發(fā)卸載引擎在另一SocketNasPeek上返回?cái)?shù)據(jù)。在狀況“F”中,F(xiàn)CP_RESP將指示被傳輸?shù)臄?shù)據(jù)量。由于數(shù)據(jù)可能已經(jīng)被轉(zhuǎn)發(fā)出以太網(wǎng)接口,因此NAS設(shè)備將從正確的位置開(kāi)始發(fā)布新的寫(xiě)命令。
狀況“G”指示命令超時(shí)。這里,NAS設(shè)備將發(fā)布中止任務(wù),并且一旦中止任務(wù)結(jié)束,就以同樣的命令標(biāo)號(hào)重新發(fā)布命令。卸載核心隨后將丟棄所有數(shù)據(jù)并返回好的FCP_RESP。
如果通信完全失敗,IPS刀片則將不會(huì)接收任何新命令。在優(yōu)選實(shí)現(xiàn)方式中,超時(shí)將發(fā)生,這將丟棄所有連接并丟棄接收的數(shù)據(jù)。NAS設(shè)備優(yōu)選地具有類似的計(jì)時(shí)器。
FCP封裝示例FCP協(xié)議將優(yōu)選地被用于執(zhí)行從卸載處理器到NAS設(shè)備上的數(shù)據(jù)緩存的直接數(shù)據(jù)放置。上述定制CDB被封裝在FCP內(nèi),以執(zhí)行卸載/NAS交互。該部分定義了根據(jù)本發(fā)明某些實(shí)現(xiàn)方式,F(xiàn)CP命令如何被一起用于在NAS設(shè)備上執(zhí)行直接數(shù)據(jù)放置。
TCP示例NAS設(shè)備將充當(dāng)發(fā)起者并且卸載處理器將是目標(biāo)。NAS設(shè)備將發(fā)起固定數(shù)目的SocketNasPeek,這些命令將被掛起,直到通過(guò)任何現(xiàn)有套接字接收到數(shù)據(jù)為止。被請(qǐng)求的數(shù)據(jù)長(zhǎng)度將被設(shè)置為典型的頭部數(shù)據(jù)量加上足以覆蓋選擇響應(yīng)頭部的量。在選擇上返回的FCP_DATA將具有響應(yīng)頭部(其至少包括連接標(biāo)識(shí)符),后面跟著典型的頭部數(shù)據(jù)量。所產(chǎn)生的FCP_RESP將被用來(lái)指示實(shí)際傳輸?shù)臄?shù)據(jù)量和有多少數(shù)據(jù)保留在套接字中。
以上過(guò)程描述了NAS命令是如何被接收的。在NAS寫(xiě)上的數(shù)據(jù)將以與其被從SCSI盤(pán)中讀取時(shí)相同的方式被放置到緩沖區(qū)緩存中。選擇過(guò)程賦予NAS設(shè)備關(guān)于哪個(gè)連接具有數(shù)據(jù)的知識(shí)以及NAS命令。隨后的SocketRead將與關(guān)于在何處放置數(shù)據(jù)的細(xì)節(jié)一道被提供給NAS設(shè)備的FC驅(qū)動(dòng)器。
對(duì)NAS讀取的響應(yīng)僅僅是一個(gè)SocketWrite。SocketWrite包含將被推入卸載連接的所有數(shù)據(jù),包括任意NAS頭部及其相關(guān)數(shù)據(jù)。
作為優(yōu)化,F(xiàn)CP_RESP總是包含套接字中剩余數(shù)據(jù)的總量。當(dāng)在當(dāng)前命令完成之前接收到后一NAS命令時(shí),這將觸發(fā)NAS設(shè)備發(fā)布用于所選套接字的新的SocketRead。沒(méi)有原因使用與SocketNasPeek相關(guān)聯(lián)的附加開(kāi)銷。此外,如果有多個(gè)命令被堆疊在套接字中,NAS設(shè)備則可以將針對(duì)特定響應(yīng)的數(shù)據(jù)直接放置到數(shù)據(jù)緩存中,同時(shí)針對(duì)下一命令的頭部被讀到不同的控制結(jié)構(gòu)中,從而加速下一命令的發(fā)布。
在圖8中描述了一種這樣的多命令情形。在該示例中,卸載引擎中的數(shù)據(jù)的所有組成在幾乎相同的時(shí)間到達(dá)(來(lái)自NAS客戶端穿過(guò)IP網(wǎng)絡(luò))。這些組成可以是71字節(jié)的NAS寫(xiě)頭部802、32K NAS寫(xiě)數(shù)據(jù)816、66字節(jié)的NAS讀頭部826、71字節(jié)NAS寫(xiě)頭部836和32K NAS寫(xiě)數(shù)據(jù)840。在該示例中,NAS讀和NAS寫(xiě)頭部被分開(kāi)發(fā)送。但是,在替換實(shí)現(xiàn)方式中,NAS讀和NAS寫(xiě)頭部可以一起發(fā)送(如圖5所示)。
這里,NAS設(shè)備通過(guò)向卸載引擎發(fā)送SocketNasPeek命令804來(lái)發(fā)起過(guò)程800。卸載引擎已經(jīng)解析了數(shù)據(jù)組成并發(fā)送了響應(yīng)806,其指示其連接ID和數(shù)據(jù)組成802的NAS寫(xiě)頭部。NAS寫(xiě)頭部被放置在NAS設(shè)備的控制結(jié)構(gòu)808中。寫(xiě)頭部指示有32K寫(xiě)數(shù)據(jù)到達(dá),并且在NAS設(shè)備的緩沖區(qū)緩存820中分配了空間。
卸載引擎還發(fā)送響應(yīng)810,其指示卸載引擎中三個(gè)頭部組成的大小(71+66+71)以及數(shù)據(jù)總量(64K)。此時(shí),NAS設(shè)備發(fā)送另一不帶Ack的SocketNasPeek命令812,在任意給定時(shí)間,大量SocketNasPeek命令可能都是未決的。通過(guò)發(fā)送該命令,NAS設(shè)備本質(zhì)上正在邀請(qǐng)另一卸載引擎指示它可能必須發(fā)送的數(shù)據(jù)。
然后,NAS設(shè)備發(fā)送SocketRead命令814,該命令指定將從卸載引擎發(fā)送到NAS設(shè)備的NAS寫(xiě)數(shù)據(jù)816并指導(dǎo)卸載引擎丟棄或清除組成802(“丟棄=71”)。此時(shí),卸載引擎清除組成802。卸載引擎發(fā)送數(shù)據(jù)(818),并且NAS設(shè)備將這些數(shù)據(jù)放置在緩沖區(qū)的指定部分。卸載引擎隨后發(fā)送響應(yīng)822,該響應(yīng)指示將被發(fā)送的剩余數(shù)據(jù)。NAS設(shè)備發(fā)送命令824,該命令是指示由卸載引擎發(fā)送的數(shù)據(jù)的成功接收的“Ack”。此時(shí),卸載引擎清除組成816。卸載引擎隨后發(fā)送響應(yīng)828,該響應(yīng)指示將被發(fā)送的剩余數(shù)據(jù)。
在響應(yīng)830中,卸載引擎發(fā)送組成826的NAS讀取頭部。NAS讀取頭部被放置在NAS設(shè)備的控制結(jié)構(gòu)808中。卸載引擎發(fā)送響應(yīng)834,該響應(yīng)指示將被發(fā)送的剩余數(shù)據(jù)。NAS設(shè)備發(fā)送帶有Ack的SocketNasPeek命令838,以及丟棄組成826的指令。卸載引擎遵從執(zhí)行。然后NAS設(shè)備發(fā)送SocketWrite命令842,該命令指示將被寫(xiě)入的數(shù)據(jù)的大小和數(shù)據(jù)將被寫(xiě)入的卸載引擎ID。NAS設(shè)備隨后向卸載引擎發(fā)送數(shù)據(jù)(844)。
在傳輸848中,卸載引擎發(fā)送組成836的NAS寫(xiě)頭部。卸載引擎NAS設(shè)備在其緩沖區(qū)中準(zhǔn)備用于寫(xiě)數(shù)據(jù)840的空間。然后卸載引擎發(fā)送響應(yīng)850,該響應(yīng)指示卸載引擎的緩沖區(qū)中的剩余數(shù)據(jù)。NAS設(shè)備發(fā)送另一SocketNasPeek命令(852),然后發(fā)送指向NAS寫(xiě)數(shù)據(jù)840的SocketRead命令854。卸載引擎在傳輸856中發(fā)送NAS寫(xiě)數(shù)據(jù)840并且NAS設(shè)備將這些數(shù)據(jù)寫(xiě)入其緩沖區(qū)緩存的指定部分。然后卸載引擎發(fā)送響應(yīng)858,該響應(yīng)指示所有數(shù)據(jù)已被發(fā)送。在從NAS設(shè)備接收到Ack之后(860),卸載引擎清除組成840,然后發(fā)送響應(yīng)862,該響應(yīng)指示不存在另外的待發(fā)送數(shù)據(jù)。
圖9是指示駐留在NAS設(shè)備上的某些組件的簡(jiǎn)化框圖,無(wú)論NAS設(shè)備是分離的NAS服務(wù)器,還是在與卸載引擎同一機(jī)架上的NSM刀片都可能有這些組件。NAS設(shè)備包括FC發(fā)起者,并且使用其與卸載處理器和SCSI設(shè)備通信。卸載I/F 910被建立得與SCSI接口915非常類似。它接受讀取請(qǐng)求以及關(guān)于將數(shù)據(jù)放置在緩沖區(qū)緩存920中何處的指示。
如上所述,該過(guò)程開(kāi)始于SocketNasPeek,其用于獲取NAS命令的頭部信息。一旦已經(jīng)解析了頭部并解釋了命令,SocketRead或SocketWrite就可以開(kāi)始。在NAS寫(xiě)的情況下,SocketRead將針對(duì)客戶端寫(xiě)入的數(shù)據(jù)的長(zhǎng)度來(lái)確定格式。數(shù)據(jù)的目的地和長(zhǎng)度將在為FC驅(qū)動(dòng)器905建立的請(qǐng)求中指定。
假設(shè)正被寫(xiě)入的數(shù)據(jù)將跨越三個(gè)數(shù)據(jù)緩存條目,圖10示出如何針對(duì)FC請(qǐng)求建立數(shù)據(jù)描述符。對(duì)于第一數(shù)據(jù)緩存條目1005,數(shù)據(jù)描述符指示長(zhǎng)度和地址,該地址指示從何處開(kāi)始寫(xiě)入數(shù)據(jù)。在該示例中,地址是數(shù)據(jù)緩存條目1005中的偏移量。對(duì)于下一數(shù)據(jù)緩存條目1010,數(shù)據(jù)描述符指示長(zhǎng)度(數(shù)據(jù)緩存條目1010的長(zhǎng)度)和地址,該地址是數(shù)據(jù)緩存條目1010的開(kāi)始地址。對(duì)于第三數(shù)據(jù)緩存條目1015,數(shù)據(jù)描述符指示長(zhǎng)度(數(shù)據(jù)緩存條目1015的大小減去將不要求寫(xiě)入數(shù)據(jù)的剩余部分的量)和地址,該地址是數(shù)據(jù)緩存條目1015的開(kāi)始地址。因此,不管用于向NAS設(shè)備傳遞NAS數(shù)據(jù)的FCP DATA幀的數(shù)目是多少,NAS數(shù)據(jù)都被直接放置到數(shù)據(jù)緩存中。
UDP示例UDP像TCP一樣工作。SocketNasPeek命令被用來(lái)獲取命令的頭部。然后,SocketRead被用于將數(shù)據(jù)直接放置在NSM存儲(chǔ)器中。
由于信息和程序指令可被用來(lái)實(shí)現(xiàn)這里描述的系統(tǒng)/方法,因此本發(fā)明涉及包括程序指令、狀態(tài)信息等的機(jī)器可讀介質(zhì),用于執(zhí)行這里描述的各種操作。機(jī)器可讀介質(zhì)的示例包括(但不局限于)磁介質(zhì),例如硬盤(pán)、軟盤(pán)和磁帶;光介質(zhì),例如CD-ROM盤(pán);磁光介質(zhì);和特別配置用于存儲(chǔ)和執(zhí)行程序指令的硬件設(shè)備,例如只讀存儲(chǔ)器器件(ROM)和隨機(jī)訪問(wèn)存儲(chǔ)器(RAM)。本發(fā)明還可以包含在通過(guò)諸如無(wú)線電波、光線路、電線路等適當(dāng)?shù)慕橘|(zhì)行進(jìn)的載波中。程序指令的示例包括機(jī)器代碼(例如由編譯器產(chǎn)生的機(jī)器代碼)和包含高級(jí)代碼的文件,所述高級(jí)代碼可以由使用解釋器的計(jì)算機(jī)執(zhí)行。
上述設(shè)備和材料是計(jì)算機(jī)硬件和軟件領(lǐng)域的技術(shù)人員所熟悉的。雖然為了方便以單數(shù)形式描述了很多組件和過(guò)程,但是本領(lǐng)域技術(shù)人員將意識(shí)到,多個(gè)組件和重復(fù)過(guò)程也可被用于實(shí)現(xiàn)本發(fā)明的技術(shù)。
雖然已經(jīng)參考特定實(shí)施例示出和描述了本發(fā)明,但是本領(lǐng)域技術(shù)人員將會(huì)理解,在不脫離本發(fā)明的精神或范圍的情況下,可以在形式和細(xì)節(jié)上對(duì)所公開(kāi)的實(shí)施例進(jìn)行修改。例如,本發(fā)明的實(shí)施例可以被用于各種體系結(jié)構(gòu)。
本發(fā)明的替換實(shí)施例甚至可以為NAS設(shè)備提供更高的卸載和編程效率。例如,卸載引擎可能對(duì)任意類型的NAS協(xié)議提供解析輔助;卸載引擎可以對(duì)NAS數(shù)據(jù)提供附加的數(shù)據(jù)完整性校驗(yàn),例如MD5或CRC機(jī)制;并且緩沖區(qū)緩存本身可以被移到卸載引擎中,以使數(shù)據(jù)不被移到NSM設(shè)備125中,而是經(jīng)由115內(nèi)的卸載引擎在存儲(chǔ)設(shè)備140和NAS客戶端105之間直接移動(dòng)。
因此,本發(fā)明希望被解釋為包括落入本發(fā)明的真實(shí)精神和范圍內(nèi)的所有變體和等同物。
權(quán)利要求
1.一種用于實(shí)現(xiàn)網(wǎng)絡(luò)存儲(chǔ)的方法,該方法包括存儲(chǔ)從因特網(wǎng)協(xié)議(IP)網(wǎng)絡(luò)上的網(wǎng)絡(luò)附接存儲(chǔ)(NAS)客戶端接收的信息;解析所述被存儲(chǔ)的信息;以及將來(lái)自所述解析步驟的結(jié)果發(fā)送到光纖信道(FC)網(wǎng)絡(luò)上的NAS設(shè)備。
2.如權(quán)利要求1所述的方法,還包括在所述FC網(wǎng)絡(luò)上終止到傳輸控制協(xié)議(TCP)之前并且包括TCP協(xié)議在內(nèi)的所有協(xié)議。
3.如權(quán)利要求1所述的方法,其中所述發(fā)送步驟是響應(yīng)于來(lái)自所述NAS設(shè)備的查詢而被執(zhí)行的。
4.如權(quán)利要求1所述的方法,其中所述結(jié)果包括NAS頭部信息。
5.如權(quán)利要求1所述的方法,其中所述發(fā)送步驟還包括發(fā)送連接標(biāo)識(shí)信息。
6.如權(quán)利要求1所述的方法,其中所述解析步驟包括解析所述被存儲(chǔ)的信息的NAS協(xié)議。
7.如權(quán)利要求1所述的方法,還包括根據(jù)所述結(jié)果分配所述NAS設(shè)備的存儲(chǔ)器空間。
8.如權(quán)利要求1所述的方法,還包括對(duì)從所述NAS客戶端或所述NAS設(shè)備接收的數(shù)據(jù)執(zhí)行數(shù)據(jù)完整性校驗(yàn)。
9.如權(quán)利要求7所述的方法,還包括將由所述結(jié)果描述的數(shù)據(jù)發(fā)送到所述NAS設(shè)備;以及將所述被發(fā)送的數(shù)據(jù)存儲(chǔ)在所述被分配的存儲(chǔ)器空間中。
10.如權(quán)利要求9所述的方法,其中所述被發(fā)送的數(shù)據(jù)是從所述FC網(wǎng)絡(luò)上的存儲(chǔ)設(shè)備發(fā)送的。
11.如權(quán)利要求9所述的方法,其中所述被發(fā)送的數(shù)據(jù)是從所述NAS客戶端發(fā)送的。
12.一種用于實(shí)現(xiàn)網(wǎng)絡(luò)存儲(chǔ)的方法,該方法包括存儲(chǔ)從因特網(wǎng)協(xié)議(IP)網(wǎng)絡(luò)上的網(wǎng)絡(luò)附接存儲(chǔ)(NAS)客戶端接收的數(shù)據(jù)讀取請(qǐng)求,所述數(shù)據(jù)讀取請(qǐng)求指向被存儲(chǔ)在光纖信道(FC)網(wǎng)絡(luò)上的存儲(chǔ)設(shè)備中的數(shù)據(jù);解析所述被存儲(chǔ)的信息;以及分配執(zhí)行所述解析步驟的卸載引擎的存儲(chǔ)器空間,所述分配步驟是根據(jù)所述解析步驟的結(jié)果來(lái)執(zhí)行的。
13.如權(quán)利要求12所述的方法,還包括直接從所述存儲(chǔ)設(shè)備接收響應(yīng)于所述數(shù)據(jù)讀取請(qǐng)求的數(shù)據(jù);以及將所述響應(yīng)的數(shù)據(jù)存儲(chǔ)在所述被分配的存儲(chǔ)器空間中。
14.一種用于實(shí)現(xiàn)網(wǎng)絡(luò)存儲(chǔ)的方法,該方法包括在因特網(wǎng)協(xié)議(IP)網(wǎng)絡(luò)上的網(wǎng)絡(luò)附接存儲(chǔ)(NAS)客戶端和光纖信道(FC)網(wǎng)絡(luò)上的NAS設(shè)備之間提供接口;以及在所述FC網(wǎng)絡(luò)上終止到傳輸控制協(xié)議(TCP)之前并且包括TCP協(xié)議在內(nèi)的所有協(xié)議。
15.一種線路卡,包括光纖信道(FC)接口;以太網(wǎng)接口;存儲(chǔ)器;以及卸載引擎,該卸載引擎被配置用于存儲(chǔ)經(jīng)由所述以太網(wǎng)接口從因特網(wǎng)協(xié)議(IP)網(wǎng)絡(luò)上的網(wǎng)絡(luò)附接存儲(chǔ)(NAS)客戶端接收的信息;解析所述被存儲(chǔ)的信息;以及經(jīng)由所述FC接口將來(lái)自所述解析步驟的結(jié)果發(fā)送到光纖信道網(wǎng)絡(luò)上的NAS設(shè)備。
16.如權(quán)利要求15所述的線路卡,其中所述卸載引擎響應(yīng)于來(lái)自所述NAS設(shè)備的查詢而發(fā)送所述結(jié)果。
17.如權(quán)利要求15所述的線路卡,其中所述結(jié)果包括NAS頭部信息。
18.如權(quán)利要求15所述的線路卡,其中所述卸載引擎還被配置用于利用所述解析步驟的結(jié)果發(fā)送連接標(biāo)識(shí)信息。
19.如權(quán)利要求15所述的線路卡,其中所述卸載引擎解析所述被存儲(chǔ)的信息的NAS協(xié)議。
20.如權(quán)利要求15所述的線路卡,其中所述卸載引擎還被配置用于對(duì)從所述NAS客戶端或所述NAS設(shè)備接收的數(shù)據(jù)執(zhí)行數(shù)據(jù)完整性校驗(yàn)。
21.一種包括如權(quán)利要求15所述的線路卡的網(wǎng)絡(luò)設(shè)備。
22.一種包括如權(quán)利要求15所述的線路卡和NAS設(shè)備的計(jì)算機(jī)網(wǎng)絡(luò)。
23.如權(quán)利要求21所述的網(wǎng)絡(luò)設(shè)備,還包括所述NAS設(shè)備。
24.一種網(wǎng)絡(luò)附接存儲(chǔ)(NAS)設(shè)備,包括光纖信道(FC)接口;存儲(chǔ)器;以及一個(gè)或多個(gè)處理器,所述處理器被配置用于根據(jù)經(jīng)由所述FC接口從傳輸控制協(xié)議(TCP)卸載引擎接收的NAS頭部信息來(lái)分配所述存儲(chǔ)器中的空間,所述頭部信息對(duì)應(yīng)于來(lái)自因特網(wǎng)協(xié)議(IP)網(wǎng)絡(luò)上的NAS客戶端的命令。
25.一種傳輸控制協(xié)議(TCP)卸載引擎,包括用于存儲(chǔ)從因特網(wǎng)協(xié)議(IP)網(wǎng)絡(luò)上的網(wǎng)絡(luò)附接存儲(chǔ)(NAS)客戶端接收的信息的裝置;用于解析所述被存儲(chǔ)的信息的裝置;以及用于將來(lái)自所述解析步驟的結(jié)果發(fā)送到光纖信道(FC)網(wǎng)絡(luò)上的NAS設(shè)備的裝置。
26.如權(quán)利要求25所述的TCP卸載引擎,還包括用于在所述FC網(wǎng)絡(luò)上終止到傳輸控制協(xié)議(TCP)之前并且包括TCP協(xié)議在內(nèi)的所有協(xié)議的裝置。
27.如權(quán)利要求25所述的TCP卸載引擎,其中所述發(fā)送裝置響應(yīng)于來(lái)自所述NAS設(shè)備查詢來(lái)發(fā)送所述結(jié)果。
28.如權(quán)利要求25所述的TCP卸載引擎,還包括用于對(duì)從所述NAS客戶端或所述NAS設(shè)備接收的數(shù)據(jù)執(zhí)行數(shù)據(jù)完整性校驗(yàn)的裝置。
29.一種存儲(chǔ)在機(jī)器可讀介質(zhì)上的計(jì)算機(jī)程序,該計(jì)算機(jī)程序包括用于控制傳輸控制協(xié)議(TCP)卸載引擎來(lái)執(zhí)行以下步驟的指令存儲(chǔ)從因特網(wǎng)協(xié)議(IP)網(wǎng)絡(luò)上的網(wǎng)絡(luò)附接存儲(chǔ)(NAS)客戶端接收的信息;解析所述被存儲(chǔ)的信息;以及將來(lái)自所述解析步驟的結(jié)果發(fā)送到光纖信道(FC)網(wǎng)絡(luò)上的NAS設(shè)備。
30.如權(quán)利要求29所述的計(jì)算機(jī)程序,還包括用于控制所述TCP卸載引擎來(lái)在所述FC網(wǎng)絡(luò)上終止到TCP協(xié)議之前并且包括TCP協(xié)議在內(nèi)的所有協(xié)議的指令。
31.如權(quán)利要求29所述的計(jì)算機(jī)程序,其中所述指令控制所述TCP卸載引擎響應(yīng)于來(lái)自所述NAS設(shè)備查詢來(lái)發(fā)送所述結(jié)果。
32.如權(quán)利要求29所述的計(jì)算機(jī)程序,還包括用于控制所述TCP卸載引擎來(lái)對(duì)從所述NAS客戶端或所述NAS設(shè)備接收的數(shù)據(jù)執(zhí)行數(shù)據(jù)完整性校驗(yàn)的指令。
33.一種用于向用戶可靠地提供賬戶信息的方法,該方法包括存儲(chǔ)從因特網(wǎng)協(xié)議(IP)網(wǎng)絡(luò)上的網(wǎng)絡(luò)附接存儲(chǔ)(NAS)客戶端接收的對(duì)賬戶信息的請(qǐng)求;解析所述被存儲(chǔ)的請(qǐng)求;將來(lái)自所述解析步驟的結(jié)果發(fā)送到光纖信道(FC)網(wǎng)絡(luò)上的NAS設(shè)備;根據(jù)所述結(jié)果分配所述NAS設(shè)備的存儲(chǔ)器中的空間;從所述FC網(wǎng)絡(luò)上的存儲(chǔ)設(shè)備獲取所述被請(qǐng)求的賬戶信息;以及在所述被分配的存儲(chǔ)器空間中存儲(chǔ)所述被請(qǐng)求的賬戶信息。
全文摘要
本發(fā)明定義了一種用于與卸載引擎通信的新協(xié)議,所述卸載引擎提供了光纖信道(“FC”)架構(gòu)上傳輸控制協(xié)議(“TCP”)的終止。卸載引擎終止到TCP之前并且包括TCP的所有協(xié)議,并且執(zhí)行與這些層相關(guān)的處理。卸載協(xié)議確保傳遞并被封裝在FCP格式的幀中。因此,TCP流被可靠地傳遞到主機(jī)。另外,使用該方案,卸載引擎可以提供對(duì)TCP流的解析以進(jìn)一步輔助主機(jī)。本發(fā)明還提供了被配置用于執(zhí)行前述方法的網(wǎng)絡(luò)設(shè)備(及其組件)。本發(fā)明還定義了網(wǎng)絡(luò)附接存儲(chǔ)(“NAS”)協(xié)議數(shù)據(jù)單元(“PDU”)是如何被解析和傳遞的。
文檔編號(hào)H04J3/16GK1954527SQ200580004483
公開(kāi)日2007年4月25日 申請(qǐng)日期2005年2月16日 優(yōu)先權(quán)日2004年2月27日
發(fā)明者蒂莫西·庫(kù)伊克, 大衛(wèi)·湯普森, 斯蒂芬·德古特, 馬拉里·巴薩瓦埃赫, 阿南德·帕塔塞拉斯 申請(qǐng)人:思科技術(shù)公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1