亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

存儲(chǔ)開關(guān)流量帶寬控制的制作方法

文檔序號(hào):7634965閱讀:712來(lái)源:國(guó)知局
專利名稱:存儲(chǔ)開關(guān)流量帶寬控制的制作方法
相關(guān)申請(qǐng)交叉引用下述申請(qǐng)被交叉引用并通過(guò)引用將其全部?jī)?nèi)容組合于本說(shuō)明書中2002年1月18日申請(qǐng)的、題為“用于存儲(chǔ)區(qū)域網(wǎng)絡(luò)的存儲(chǔ)開關(guān)”的美國(guó)專利申請(qǐng)10/051,321;2002年1月18日申請(qǐng)的、題為“提高存儲(chǔ)網(wǎng)絡(luò)的服務(wù)質(zhì)量”的美國(guó)專利申請(qǐng)10/051,339;2002年1月18日申請(qǐng)的、題為“存儲(chǔ)區(qū)域網(wǎng)絡(luò)中的負(fù)載均衡”的美國(guó)專利申請(qǐng)10/051,053。
發(fā)明
背景技術(shù)
領(lǐng)域本發(fā)明涉及存儲(chǔ)開關(guān)中的帶寬控制。
背景技術(shù)
存儲(chǔ)區(qū)域網(wǎng)絡(luò)(SAN)在近些年非常盛行。SAN由存儲(chǔ)網(wǎng)絡(luò)工業(yè)協(xié)會(huì)(SNIA)定義為其主要目的是在計(jì)算機(jī)系統(tǒng)和存儲(chǔ)元件之間及存儲(chǔ)元件與存儲(chǔ)元件之間傳輸數(shù)據(jù)的網(wǎng)絡(luò)。存儲(chǔ)區(qū)域網(wǎng)絡(luò)(SAN)高速專用網(wǎng)絡(luò)(或子網(wǎng)絡(luò)),其使不同種類的數(shù)據(jù)存儲(chǔ)設(shè)備與代表較大用戶網(wǎng)絡(luò)的相關(guān)數(shù)據(jù)服務(wù)器互連。與如使用SCSI連接將存儲(chǔ)設(shè)備直接連到服務(wù)器不同,與用常規(guī)接口如以太網(wǎng)(例如NAS系統(tǒng))將存儲(chǔ)設(shè)備添加到LAN中不同,SAN實(shí)質(zhì)上形成獨(dú)立的網(wǎng)絡(luò),其不趨于具有與其直連SCSI和NAS對(duì)應(yīng)物一樣的帶寬限制,并增加可配置性和可擴(kuò)縮性。
在SAN環(huán)境中,存儲(chǔ)設(shè)備(如磁帶機(jī)和RAID陣列)及服務(wù)器通常經(jīng)不同的開關(guān)和設(shè)備互連。到開關(guān)和設(shè)備的連接通常為光纖管路。這種結(jié)構(gòu)通常使SAN上的任何服務(wù)器均可與任何存儲(chǔ)設(shè)備通信,反之亦然。其還提供另外的從服務(wù)器到存儲(chǔ)設(shè)備的路徑。換言之,如果特定服務(wù)器很慢或完全不可用,SAN上的另一服務(wù)器可提供對(duì)存儲(chǔ)設(shè)備的存取。SAN還使可鏡像數(shù)據(jù),制作多份可用拷貝,因而在數(shù)據(jù)可用性方面提供更高的可靠性。當(dāng)需要更多的存儲(chǔ)器時(shí),另外的存儲(chǔ)設(shè)備可被添加到SAN中,而無(wú)須連接到特殊的服務(wù)器;而是,新設(shè)備可被簡(jiǎn)單地添加到存儲(chǔ)網(wǎng)絡(luò)并可從任何點(diǎn)進(jìn)行存取。
當(dāng)?shù)湫偷腟AN設(shè)備執(zhí)行某些交換時(shí),由于有大量的服務(wù)器(多于3個(gè))并由于每一設(shè)備有多個(gè)端口(通常2個(gè)或4個(gè)),需要單獨(dú)的開關(guān)將許多服務(wù)器連到多個(gè)設(shè)備。然而,典型的開關(guān)幾乎沒(méi)有內(nèi)置智能并僅轉(zhuǎn)發(fā)數(shù)據(jù)給所選設(shè)備。
未決專利申請(qǐng)10/051,321公開了一種設(shè)備,其通過(guò)引入存儲(chǔ)開關(guān)而解決了許多使用SAN所存在的問(wèn)題。開關(guān)能夠在啟動(dòng)器和目標(biāo)器之間發(fā)送數(shù)據(jù),而無(wú)須像先前SAN中使用的設(shè)備那樣要求緩沖數(shù)據(jù)。例如,相較典型的網(wǎng)絡(luò)開關(guān),一些存儲(chǔ)開關(guān)可沒(méi)有引起更多等待時(shí)間的發(fā)送數(shù)據(jù)包。啟動(dòng)器和目標(biāo)器之間的這樣的無(wú)緩沖數(shù)據(jù)傳送必須由執(zhí)行互連的開關(guān)可靠且有效地處理。存儲(chǔ)開關(guān)的一個(gè)例子可在2002年1月18日申請(qǐng)的、題為“存儲(chǔ)系統(tǒng)中的虛擬化”的美國(guó)專利申請(qǐng)10/051,396中找到。
啟動(dòng)器通常連到開關(guān)并通過(guò)開關(guān)訪問(wèn)一個(gè)或多個(gè)虛擬的和物理的目標(biāo)器。通過(guò)開關(guān)連接引起的一個(gè)問(wèn)題是端口上的帶寬過(guò)載。由于在SAN中數(shù)據(jù)損耗是不可接受的,因此必須在部件上提供相對(duì)于虛擬目標(biāo)器的帶寬管理。

發(fā)明內(nèi)容
概略地說(shuō),本發(fā)明屬于用在保存和存取數(shù)據(jù)的系統(tǒng)中的方法。該系統(tǒng)包括至少一啟動(dòng)器、至少一目標(biāo)器、及至少一具有端口的開關(guān)。該方法包括步驟確定在物理端口是否出現(xiàn)擁塞;及基于每一目標(biāo)器的最小和最大帶寬設(shè)置控制所述至少兩個(gè)目標(biāo)器中的每一目標(biāo)器的帶寬使用。
另一方面,控制步驟包括拒絕另外的從啟動(dòng)器到兩個(gè)目標(biāo)器中至少之一的指令。
在另一實(shí)施例中,本發(fā)明是用在保存和存取數(shù)據(jù)的系統(tǒng)中的方法。該系統(tǒng)包括至少一啟動(dòng)器、至少兩個(gè)目標(biāo)器、及至少一具有端口的開關(guān)。在該實(shí)施例中,所述方法包括監(jiān)視從所述至少兩個(gè)目標(biāo)器中的每一個(gè)到端口的流量帶寬;根據(jù)每一目標(biāo)器的最小和最大帶寬設(shè)置確定哪一目標(biāo)器可以使用端口資源;及在確定步驟的基礎(chǔ)上通過(guò)拒絕給目標(biāo)器的附加指令而控制對(duì)所述目標(biāo)器的訪問(wèn)。
另一方面,確定步驟包括根據(jù)來(lái)自所述至少兩個(gè)目標(biāo)器中的每一個(gè)的流量的加權(quán)向每一目標(biāo)器賦予優(yōu)先級(jí)。另外,賦予加權(quán)步驟包括使用兩種速率、三種顏色標(biāo)記標(biāo)識(shí)流量。
在另一實(shí)施例中,本發(fā)明是用在保存和存取數(shù)據(jù)的系統(tǒng)中的方法。該系統(tǒng)包括至少一啟動(dòng)器、至少一目標(biāo)器、至少一虛擬邏輯單元、至少一物理邏輯單元、及至少一具有端口的開關(guān),端口通過(guò)開關(guān)訪問(wèn)每一物理邏輯單元。在該實(shí)施例中,所述方法包括監(jiān)視因來(lái)自相關(guān)物理邏輯單元的流量而由所述至少兩個(gè)虛擬目標(biāo)器中的每一個(gè)耗用的帶寬;根據(jù)從虛擬目標(biāo)器返回的流量加權(quán)確定哪一目標(biāo)器可以使用端口資源;及根據(jù)目標(biāo)器的加權(quán)通過(guò)拒絕給目標(biāo)器的附加指令而限制對(duì)所述虛擬目標(biāo)器的訪問(wèn)。
另一方面,確定步驟包括為每一虛擬目標(biāo)器記錄爭(zhēng)用計(jì)數(shù)。
在另一實(shí)施例中,本發(fā)明是具有至少一物理端口的存儲(chǔ)開關(guān),物理端口提供對(duì)至少一目標(biāo)器的訪問(wèn)。該開關(guān)包括與端口聯(lián)系的負(fù)載平衡電路,其包括保存每一目標(biāo)器的記錄的存儲(chǔ)器,所述記錄包括虛擬邏輯單元的最小和最大帶寬分配;該開關(guān)還包括與端口聯(lián)系的處理電路,其包括用于所述至少兩個(gè)目標(biāo)器中的每一個(gè)的帶寬監(jiān)視器,處理電路維護(hù)每一目標(biāo)器使用的帶寬的加權(quán)記錄,且如果物理端口擁塞,根據(jù)記錄拒絕給至少一目標(biāo)器的附加指令。
在另一實(shí)施例中,本發(fā)明是存儲(chǔ)網(wǎng)絡(luò)。存儲(chǔ)網(wǎng)絡(luò)包括啟動(dòng)器、至少一目標(biāo)器和開關(guān)。開關(guān)包括連到啟動(dòng)器的至少一端口,該開關(guān)提供對(duì)目標(biāo)器的訪問(wèn),該開關(guān)包括至少一與端口相關(guān)聯(lián)的處理器,其具有包括所述至少兩個(gè)目標(biāo)器中的每一個(gè)的帶寬分配的記錄。處理器包括用于指示處理器進(jìn)行下述工作的代碼監(jiān)視所述至少兩個(gè)目標(biāo)器中的每一個(gè)耗用的帶寬、根據(jù)從目標(biāo)器返回給端口的流量加權(quán)確定哪一目標(biāo)器可以使用端口資源、及根據(jù)目標(biāo)器加權(quán)通過(guò)拒絕給目標(biāo)器的附加指令而控制對(duì)所述目標(biāo)器的訪問(wèn)。
另一方面,本發(fā)明是監(jiān)視存儲(chǔ)開關(guān)中的帶寬的方法,開關(guān)包括至少一物理端口,經(jīng)該物理端口連接至少一目標(biāo)器和至少一啟動(dòng)器。所述方法包括步驟確定物理端口上是否出現(xiàn)擁塞;根據(jù)每一目標(biāo)器的最小和最大帶寬設(shè)置對(duì)啟動(dòng)器和目標(biāo)器之間的帶寬使用賦予加權(quán)。
本發(fā)明可使用硬件、軟件、或硬件和軟件的結(jié)合實(shí)現(xiàn)。用于本發(fā)明的軟件保存在一個(gè)或多個(gè)處理器可讀存儲(chǔ)介質(zhì)上,包括硬盤驅(qū)動(dòng)器、CD-ROM、DVD、光盤、軟盤、磁帶機(jī)、RAM、ROM或其它適當(dāng)?shù)拇鎯?chǔ)設(shè)備。在另一實(shí)施例中,部分或所有軟件可用專用硬件代替,包括常規(guī)集成電路、門陣列、FPGA、PLD、及專用計(jì)算機(jī)。
本發(fā)明的這些及其它目標(biāo)和優(yōu)點(diǎn)從下面結(jié)合附圖提出的本發(fā)明的優(yōu)選實(shí)施例的描述中變得更清楚。


圖1為根據(jù)一實(shí)施例的存儲(chǔ)開關(guān)的一般原理框圖;圖2a-2c為存儲(chǔ)區(qū)域網(wǎng)絡(luò)的一般原理框圖,其示出了虛擬目標(biāo)器的示例性提供;圖3為根據(jù)一實(shí)施例的存儲(chǔ)開關(guān)的一般原理框圖;圖4為根據(jù)一實(shí)施例的用于存儲(chǔ)開關(guān)中的線路卡的一般原理框圖;圖5為根據(jù)本發(fā)明實(shí)施例的步驟的流程圖;
圖6a為圖示具有多個(gè)虛擬邏輯單元的存儲(chǔ)區(qū)域網(wǎng)絡(luò)經(jīng)存儲(chǔ)開關(guān)上的單一物理端口與啟動(dòng)器通信的框圖;圖6b為圖示本發(fā)明的計(jì)量系統(tǒng)的類似于圖6a的原理框圖;圖7a為圖示本發(fā)明的一般實(shí)施方式的流程圖;圖7b為根據(jù)本發(fā)明的第一方法控制開關(guān)內(nèi)的帶寬的流程圖;圖8為圖示包括特殊方法的第二實(shí)施例的流程圖,其用于確定本發(fā)明系統(tǒng)中的節(jié)流控制。
具體實(shí)施例方式
圖1所示為包括根據(jù)一實(shí)施例的存儲(chǔ)開關(guān)的示例性系統(tǒng)100。系統(tǒng)100包括多個(gè)啟動(dòng)設(shè)備如服務(wù)器102。應(yīng)該意識(shí)到的是,可以使用更多或更少的服務(wù)器,且除了服務(wù)器102之外或用以代替服務(wù)器102,實(shí)施例可包括任何適當(dāng)?shù)奈锢韱?dòng)器。盡管沒(méi)有示出,服務(wù)器還可連到LAN。如圖所示,每一服務(wù)器102被連到存儲(chǔ)開關(guān)104。然而,在其它實(shí)施例中,每一服務(wù)器102可連到比所呈現(xiàn)的所有存儲(chǔ)開關(guān)104少的存儲(chǔ)開關(guān)。盡管在一實(shí)施例中,連接是光纖通路或吉比特以太網(wǎng)(根據(jù)iSCSI協(xié)議攜載信息包),在服務(wù)器和開關(guān)之間形成的連接可使用任何協(xié)議。其它實(shí)施例可使用Intel公司定義的Infiniband協(xié)議或其它協(xié)議或連接。
在一些實(shí)施例中,一個(gè)或多個(gè)開關(guān)104中的每一個(gè)連到城域網(wǎng)(MAN)或?qū)捰蚓W(wǎng)(WAN)108,如因特網(wǎng)。在大多數(shù)實(shí)施例中,存儲(chǔ)開關(guān)104和WAN108之間形成的連接通常使用因特網(wǎng)協(xié)議(IP)。盡管在圖中示出為直接連到MAN/WAN108,其它實(shí)施例可使用路由器(未示出)作為開關(guān)104和MAN/WAN108之間的媒介。
另外,各自的管理站110連到每一存儲(chǔ)開關(guān)104、每一服務(wù)器102、和每一存儲(chǔ)設(shè)備106。盡管管理站被圖示為不同的計(jì)算機(jī),應(yīng)該理解的是,管理每一類設(shè)備的軟件可全部都在同一計(jì)算機(jī)上。
這樣的存儲(chǔ)開關(guān)104,除了其開關(guān)功能以外,還可提供虛擬化和存儲(chǔ)服務(wù)(如鏡像)。這樣的服務(wù)可包括那些通常由傳統(tǒng)體系結(jié)構(gòu)中的設(shè)備提供的服務(wù)。
此外,根據(jù)本發(fā)明實(shí)施例的存儲(chǔ)開關(guān)的智能被分布給每一開關(guān)端口。這種分布式智能慮及系統(tǒng)可擴(kuò)縮性和可用性。分布式智能使根據(jù)實(shí)施例的開關(guān)能夠以“網(wǎng)速”處理數(shù)據(jù),也就是說(shuō),與典型的網(wǎng)絡(luò)開關(guān)相比,存儲(chǔ)開關(guān)104不會(huì)引起更多的數(shù)據(jù)包等待時(shí)間。因此,該開關(guān)的“網(wǎng)速”通過(guò)連接到特定端口進(jìn)行測(cè)量。因而,在一具有OC-48連接的實(shí)施例中,存儲(chǔ)開關(guān)可跟上OC-48速度(2.5位每毫微秒)。以O(shè)C-48速度移動(dòng)的兩千字節(jié)信息包(10位每字節(jié))僅需8毫秒即可輸入開關(guān)。一千字節(jié)的信息包僅需4毫秒。100字節(jié)的最小信息包僅需400毫微秒。
不同存儲(chǔ)區(qū)域網(wǎng)絡(luò)包括圖1所示的網(wǎng)絡(luò)的更多信息可在下述專利申請(qǐng)中找到2002年1月18日申請(qǐng)的、題為“存儲(chǔ)系統(tǒng)中的虛擬化”的美國(guó)專利申請(qǐng)10/051,396;2002年1月18日申請(qǐng)的、題為“用于存儲(chǔ)區(qū)域網(wǎng)絡(luò)的存儲(chǔ)開關(guān)”的美國(guó)專利申請(qǐng)10/051,321。
“虛擬化”通常指將用戶預(yù)訂的虛擬目標(biāo)器空間映射到一個(gè)或多個(gè)物理存儲(chǔ)目標(biāo)器設(shè)備上的空間。術(shù)語(yǔ)“虛擬的”和“虛擬目標(biāo)器”源于下述事實(shí)每一預(yù)訂分配的存儲(chǔ)空間可在連到存儲(chǔ)開關(guān)104的一個(gè)或多個(gè)物理存儲(chǔ)目標(biāo)器設(shè)備上的任何地方。物理空間可被提供為“虛擬目標(biāo)器”,其可包括一個(gè)或多個(gè)“邏輯單元”(LU),在此也被稱為“虛擬邏輯單元”(VLU)。每一虛擬目標(biāo)器由用一個(gè)或多個(gè)LU號(hào)(LUN)標(biāo)識(shí)的一個(gè)或多個(gè)LU組成,LU頻繁使用于iSCSI和FC協(xié)議中。每一邏輯單元通常由一個(gè)或多個(gè)盤區(qū)組成,盤區(qū)即為物理設(shè)備上的存儲(chǔ)空間的連續(xù)片。因而,虛擬目標(biāo)器可占用整個(gè)存儲(chǔ)設(shè)備(一個(gè)盤區(qū))、單一存儲(chǔ)設(shè)備的一部分(一個(gè)或多個(gè)盤區(qū))、或多個(gè)存儲(chǔ)設(shè)備的一部分(多個(gè)盤區(qū))。物理設(shè)備、LU、盤區(qū)數(shù)量、及它們的準(zhǔn)確位置對(duì)訂戶而言均是非實(shí)質(zhì)的和不可見的。
存儲(chǔ)空間可來(lái)自多個(gè)不同的物理設(shè)備,在不同的實(shí)施例中,每一虛擬目標(biāo)器可屬于一個(gè)或多個(gè)“池”,在此有時(shí)稱為“域”。在一實(shí)施例中,只有同一域的用戶才被允許共享他們域中的虛擬目標(biāo)器。還可形成域系,其包括幾個(gè)域作為成員。使用域系可使多個(gè)域的用戶的管理容易,例如,如果一個(gè)公司具有五個(gè)域但選擇停止服務(wù),只需采取一個(gè)行動(dòng)即可停用整個(gè)域系。域系的成員也可以是其它域的成員。
圖2a-2c示出了在存儲(chǔ)區(qū)域網(wǎng)絡(luò)中提供虛擬目標(biāo)器的一個(gè)例子。圖2的系統(tǒng)包括三個(gè)物理設(shè)備1061、1062和1063,總共具有六個(gè)LU-LU1、LU2、LU3、LU4、LU5、LU6。在圖2a中,每一物理設(shè)備連到開關(guān)并放置在可由兩個(gè)啟動(dòng)器X和Y存取的池中,即“X-Y用戶池”。
如果啟動(dòng)器X和啟動(dòng)器Y中的每一個(gè)均要求一個(gè)虛擬目標(biāo)器,則在一實(shí)施例中,提供LU以形成虛擬目標(biāo)器VT1和VT2,其中VT1包括盤區(qū)LU1-3,VT2包括盤區(qū)LU4-6,如圖2b所示。VT1被放置在服務(wù)器X用戶域中,VT2放在服務(wù)器Y用戶域中。啟動(dòng)器X將可以使用VT1,但不能使用VT2;同理,啟動(dòng)器Y可使用VT2,但不可使用VT1。
例如,如果啟動(dòng)器Y要求具有所有6個(gè)LU的鏡像虛擬目標(biāo)器M,則VT1和VT2可被生成為虛擬目標(biāo)器M的組成部分。VT1和VT2可被放在開關(guān)的非域中(物理目標(biāo)器不可由用戶直接訪問(wèn)的域),同時(shí)M可被使得可由Y存取,如圖2c所示。作為M的組成部分,VT1和VT2將不可被單獨(dú)存取。VT1由LU1-3組成(物理設(shè)備1061),VT2由LU4-6組成(物理設(shè)備1062和1063)。當(dāng)接收到向虛擬目標(biāo)器M寫數(shù)據(jù)的請(qǐng)求時(shí),開關(guān)104將發(fā)送輸入數(shù)據(jù)給VT1(物理設(shè)備1061)和VT2(物理設(shè)備1062和/或1063),因而在至少兩個(gè)物理位置保存數(shù)據(jù)。
圖3所示為根據(jù)本發(fā)明實(shí)施例的存儲(chǔ)開關(guān)104的原理框圖。關(guān)于存儲(chǔ)開關(guān)如存儲(chǔ)開關(guān)104及其運(yùn)行的詳細(xì)情況的更多信息可在2002年1月18申請(qǐng)的、題為“用于存儲(chǔ)區(qū)域網(wǎng)絡(luò)的存儲(chǔ)開關(guān)”的美國(guó)專利申請(qǐng)10/051,321中找到。在一實(shí)施例中,存儲(chǔ)開關(guān)104包括多個(gè)線路卡302、304和306、多個(gè)矩陣卡(fabric card)308、和兩個(gè)系統(tǒng)控制卡310,每一卡均將在下面詳細(xì)描述。盡管示出了示例性的存儲(chǔ)開關(guān),應(yīng)該意識(shí)到的是,根據(jù)不同的實(shí)施例,也可使用多種其它實(shí)施方式和構(gòu)造。
系統(tǒng)控制卡。兩個(gè)系統(tǒng)控制卡(SCC)310中的每一個(gè)連到每一線路卡302、304、306。在一實(shí)施例中,這樣的連接由I2C信號(hào)形成,其在本領(lǐng)域是公知的,并通過(guò)以太網(wǎng)與SCC連接。SCC控制加電并監(jiān)視各個(gè)線路卡及矩陣卡和I2C連接。在以太網(wǎng)連接上使用卡間通信,SCC還啟動(dòng)各個(gè)存儲(chǔ)設(shè)備如快照和復(fù)制。
此外,SCC維護(hù)數(shù)據(jù)庫(kù)312,其跟蹤存儲(chǔ)開關(guān)及連接到開關(guān)的虛擬目標(biāo)器和物理設(shè)備如服務(wù)器和存儲(chǔ)設(shè)備的配置信息。另外,數(shù)據(jù)庫(kù)保留關(guān)于使用、錯(cuò)誤及存取數(shù)據(jù)的信息以及關(guān)于虛擬目標(biāo)器和用戶的不同域及域系的信息。數(shù)據(jù)庫(kù)的記錄在此可被稱為“對(duì)象”。每一啟動(dòng)器(如服務(wù)器)和目標(biāo)器(如存儲(chǔ)設(shè)備)具有全球唯一標(biāo)識(shí)符(WWUI),其在本領(lǐng)域中是公知的。數(shù)據(jù)庫(kù)被保存在SCC內(nèi)的存儲(chǔ)設(shè)備中,在一實(shí)施例中,所述存儲(chǔ)設(shè)備由閃存構(gòu)成,盡管在各個(gè)實(shí)施例中也可使用其它存儲(chǔ)設(shè)備。
存儲(chǔ)開關(guān)104可由管理站110通過(guò)SCC310使用以太網(wǎng)連接到達(dá)。因而,SCC還包括另外的以太網(wǎng)端口以用于連接到管理站。管理站的管理員可發(fā)現(xiàn)存儲(chǔ)設(shè)備或虛擬目標(biāo)器的添加或去除,以及查詢和虛擬地更新保存在SCC數(shù)據(jù)庫(kù)312中的任何對(duì)象。
矩陣卡。在開關(guān)104的一實(shí)施例中,有三個(gè)矩陣卡308,盡管其它實(shí)施例可具有更多或更少的矩陣卡。在一實(shí)施例中,每一矩陣卡308連到線路卡302、304、306中的每一個(gè)并用于將所有線路卡連在一起。在一實(shí)施例中,當(dāng)所有線路卡均被填充時(shí),每一矩陣卡308可處理最大流量。在一實(shí)施例中,由每一線路卡處理的這樣的流量負(fù)載高達(dá)160Gbps,盡管其它實(shí)施例可處理更高或更低的最大流量。如果一個(gè)矩陣卡308失效,其余兩個(gè)卡依然具有足夠的帶寬用于最大可能開關(guān)流量在一實(shí)施例中,每一線路卡產(chǎn)生20Gbps的流量,10Gbps輸入和10Gbps輸出。然而,在正常情況下,所有三個(gè)矩陣卡同時(shí)使用。數(shù)據(jù)流量將從每一線路卡發(fā)送給三個(gè)矩陣卡中可容納該數(shù)據(jù)的任一矩陣卡。
線路卡。線路卡構(gòu)成到服務(wù)器和存儲(chǔ)設(shè)備的連接。在一實(shí)施例中,存儲(chǔ)開關(guān)104支持高達(dá)16個(gè)線路卡,盡管其它實(shí)施例可支持不同數(shù)量的線路卡。另外,在一實(shí)施例中,使用了三種不同類型的線路卡吉比特以太網(wǎng)(GigE)卡302、光纖通路(FC)卡304、和WAN卡306。其它實(shí)施例可包括更多或更少類型的線路卡。GigE卡302用于以太網(wǎng)連接,在一實(shí)施例中連接到或iSCSI服務(wù)器或iSCSI存儲(chǔ)設(shè)備(或其它基于以太網(wǎng)的設(shè)備)。FC卡304用于光纖通路連接,連接到或光纖通路協(xié)議(FCP)服務(wù)器或FCP存儲(chǔ)設(shè)備。WAN卡306用于連到MAN或WAN。
圖4所示為用于根據(jù)一實(shí)施例的存儲(chǔ)開關(guān)104中的一般線路卡400的原理框圖。線路卡400僅為示例的目的進(jìn)行呈現(xiàn)。根據(jù)各實(shí)施例,也可使用其它線路卡和設(shè)計(jì)。圖中示出了所有類型的線路卡如GigE302、FC304或WAN306均具有的那些元件。在其它實(shí)施例中,可使用其它類型的線路卡使用其它協(xié)議如Infiniband連接到設(shè)備。
端口。每一線路卡400包括多個(gè)端口402。端口構(gòu)成線路卡連接到或服務(wù)器或存儲(chǔ)設(shè)備的連接。在圖示的實(shí)施例中示出了8個(gè)端口,但在其它實(shí)施例中可使用更多或更少的端口。例如,在一實(shí)施例中,每一GigE卡可支持高達(dá)8個(gè)1Gb以太網(wǎng)端口,每一FC卡可支持高達(dá)或8個(gè)1Gb FC端口或4個(gè)2Gb FC端口,每一WAN卡可支持高達(dá)4個(gè)0C-48端口或兩個(gè)OC-192端口。因此,在一實(shí)施例中,最大可能連接為128個(gè)端口每開關(guān)104。在一實(shí)施例中,每一線路卡的端口均為全雙工通信制,并連接到或服務(wù)器或其它客戶和/或連到存儲(chǔ)設(shè)備或子系統(tǒng)。
此外,每一端口具有相關(guān)聯(lián)的存儲(chǔ)器403。盡管只示出了一個(gè)存儲(chǔ)設(shè)備連到一個(gè)端口,應(yīng)該理解的是,每一端口可具有其自己的存儲(chǔ)設(shè)備,或者所有端口均被連接到同一存儲(chǔ)設(shè)備。在此示出只有一個(gè)存儲(chǔ)設(shè)備連接到一個(gè)端口是為了清楚起見。
存儲(chǔ)處理器單元。在一實(shí)施例中,每一端口與存儲(chǔ)處理器單元(SPU)401關(guān)聯(lián)。在一實(shí)施例中,SPU快速處理數(shù)據(jù)流量以允許網(wǎng)速運(yùn)行。在一實(shí)施例中,每一SPU包括幾個(gè)元件信息包聚集和分類引擎(PACE)404、信息包處理單元(PPU)406、SRAM405、CAM407。同樣,其它實(shí)施例可使用更多或更少的元件或可結(jié)合元件以獲得相同的功能。例如,一些實(shí)施例可在SPU中包括PACE和PPU,但SPU可與其它SPU共享存儲(chǔ)元件。
PACE。每一端口連到信息包聚集和分類引擎(PACE)404。如圖所示,PACE404將兩個(gè)端口聚集為單一數(shù)據(jù)通路,由此其具有兩倍的帶寬。例如,PACE404將兩個(gè)1Gb端口聚集為一個(gè)2Gb數(shù)據(jù)通路。PACE可將每一接收到的信息包分類為控制信息包或數(shù)據(jù)包??刂菩畔?jīng)網(wǎng)橋416發(fā)送給CPU414進(jìn)行處理。如下所述,數(shù)據(jù)包被發(fā)送給包處理單元(PPU)406,并添加了本地首部。在一實(shí)施例中,本地首部為導(dǎo)致64字節(jié)(16字節(jié)首部和48字節(jié)凈荷)的數(shù)據(jù)“存儲(chǔ)單元”的16字節(jié)。本地首部用于攜帶信息并由開關(guān)104內(nèi)部使用。在信息包離開開關(guān)之前刪除本地首部。因而,“存儲(chǔ)單元”可以是開關(guān)中本地使用的傳輸單位,其包括本地首部和原始信息包(在一些實(shí)施例中,原始TCP/IP首部也被從原始信息包剝離)。但是,不是本發(fā)明的所有實(shí)施例均將產(chǎn)生本地首部或具有不同于外部信息包的“內(nèi)部信息包”(單元)。因此,在此使用的術(shù)語(yǔ)“信息包”可指“內(nèi)部”或“外部”信息包。
分類功能有助于使開關(guān)能夠以網(wǎng)速執(zhí)行存儲(chǔ)虛擬化和協(xié)議變換功能,而不用使用傳統(tǒng)系統(tǒng)的保存-轉(zhuǎn)發(fā)模式。每一PACE具有專門的到PPU如PPU 4061的通路,同時(shí)在圖示實(shí)施例中所有四個(gè)PACE共享到CPU414的通路,在一實(shí)施例中其為104MHz/32(3.2Gbps)比特?cái)?shù)據(jù)通路。
包處理單元(PPU)。每一PPU如PPU4061在傳輸過(guò)程中執(zhí)行虛擬化和協(xié)議變換,即存儲(chǔ)單元不被緩沖以進(jìn)行這樣的處理。其還實(shí)現(xiàn)其它基于開關(guān)的存儲(chǔ)服務(wù)功能,將在隨后描述。在一實(shí)施例中,PPU能夠以O(shè)C-48速度或2.5Gbps的速度移動(dòng)輸入和輸出雙向的存儲(chǔ)單元,在其它實(shí)施例中,其可以O(shè)C-192或10Gbps的速度移動(dòng)存儲(chǔ)單元。在一實(shí)施例中,PPU包括輸入PPU4061i和輸出PPU4061e,二者同時(shí)運(yùn)行。輸入PPU4061i從PACE4041接收輸入數(shù)據(jù)并將數(shù)據(jù)發(fā)送給流量管理器408i,輸出PPU4061e從流量管理器408e接收數(shù)據(jù)并將數(shù)據(jù)發(fā)送給PACE4041。盡管在圖4中只有一個(gè)PPU4061具有輸入PPU4061i和輸出PPU4061e應(yīng)該理解的是,在一實(shí)施例中,所有PPU406均將包括輸入PPU和輸出PPU,圖4中僅示出只有一個(gè)PPU具有輸入和輸出PPU是為了清楚起見。
在每一端口可同時(shí)建立大量存儲(chǔ)連接(如服務(wù)器到虛擬目標(biāo)器的連接)。但是,每一連接對(duì)虛擬目標(biāo)器是唯一的并可由TCP控制塊索引(在iSCSI連接的情況下)和端口號(hào)唯一地確定。當(dāng)建立連接時(shí),線路卡400的CPU414通過(guò)向PPU406發(fā)送虛擬目標(biāo)器描述符(VTD)以進(jìn)行連接而將使用中的虛擬目標(biāo)器通知給PPU406。VTD包括關(guān)于連接和虛擬目標(biāo)器的所有有關(guān)信息,即PPU將需要對(duì)數(shù)據(jù)進(jìn)行適當(dāng)?shù)剡\(yùn)算,如執(zhí)行虛擬化、變換及各種存儲(chǔ)服務(wù)。VTD源自SCC數(shù)據(jù)庫(kù)中的對(duì)象并通常包含保存在SCC數(shù)據(jù)庫(kù)中的相關(guān)對(duì)象中的信息子集。
類似地,在本發(fā)明的一實(shí)施例中,使用物理目標(biāo)器描述符(PTD)。PTD描述實(shí)際的物理設(shè)備、其各個(gè)LU、或其各個(gè)盤區(qū)(LU的連續(xù)部分或整個(gè)LU),并將包括類似于用于VTD那樣的信息。同樣,與VTD相似,PTD源自SCC數(shù)據(jù)庫(kù)中的對(duì)象。
在一實(shí)施例中,為保存VTD和PTD并能快速訪問(wèn)它們,PPU如PPU4061被連接到SRAM4051和CAM4071。SRAM4051可保存VTD和PTD數(shù)據(jù)庫(kù)。VTD標(biāo)識(shí)符(VTDID)的列表或地址及PTD標(biāo)識(shí)符(PTDID)也可被保存在PPU CAM4071中以能快速訪問(wèn)VTD。VTDID使用TCP控制塊索引和LUN進(jìn)行索引。PTDID使用VTD ID進(jìn)行索引。此外,對(duì)于IP路由服務(wù),CAM4071包含路由表,當(dāng)添加或去除路由時(shí)其由CPU進(jìn)行更新。
在不同的實(shí)施例中,每一PPU將按如圖所示那樣與其自己的CAM和SRAM設(shè)備連接,或者所有PPU均將被連到同一CAM和/或SRAM(未示出)。
對(duì)于每一對(duì)PPU的未完成的請(qǐng)求(如讀或?qū)?,在PPU SRAM407中建立任務(wù)控制塊以跟蹤請(qǐng)求的狀態(tài)。有輸入任務(wù)控制塊(ITCB)和輸出任務(wù)控制塊(ETCB),ITCB跟蹤由輸入PPU上的存儲(chǔ)開關(guān)接收的請(qǐng)求的狀態(tài),ETCB跟蹤由輸出PPU上的存儲(chǔ)開關(guān)發(fā)出的請(qǐng)求的狀態(tài)。對(duì)于每一虛擬的目標(biāo)器連接,可有大量同時(shí)發(fā)生的請(qǐng)求,因而有許多任務(wù)控制塊。當(dāng)請(qǐng)求開始時(shí)分配任務(wù)控制塊,當(dāng)請(qǐng)求結(jié)束時(shí)釋放任務(wù)控制塊。
流量管理器。在每一線路卡400上有兩個(gè)流量管理器(TM)408其中一個(gè)TM408i用于輸入流量,另一TM408e用于輸出流量。在一實(shí)施例中,輸入TM從所有4個(gè)SPU接收存儲(chǔ)單元,其為64字節(jié)數(shù)據(jù)單元形式。在這樣的實(shí)施例中,每一數(shù)據(jù)單元具有16字節(jié)的本地首部和48字節(jié)的凈荷。首部包含F(xiàn)lowID,其告訴TM存儲(chǔ)單元的目的端口。在一些實(shí)施例中,在將存儲(chǔ)單元轉(zhuǎn)發(fā)給TM之前,SPU還可將TM首部附加到存儲(chǔ)單元。在一些實(shí)施例中,或TM或SPU還可將存儲(chǔ)單元再分為更小的存儲(chǔ)單元以通過(guò)矩陣卡傳輸。
在一實(shí)施例中,輸入TM經(jīng)128位104Mhz接口410將數(shù)據(jù)單元發(fā)送給矩陣卡。其它實(shí)施例可以125Mhz或其它速度運(yùn)行。輸出TM從矩陣卡接收數(shù)據(jù)單元并將它們傳送給四個(gè)SPU。
輸入和輸出TM均具有大緩沖器412以排隊(duì)存儲(chǔ)單元從而便于傳送。輸入和輸出TM的緩沖器412為64MB,其可為開關(guān)內(nèi)的內(nèi)部流控制而排隊(duì)大量信息包。存儲(chǔ)單元不被緩存在高速緩存或緩沖的開關(guān)設(shè)備中。因?yàn)樵谶@些系統(tǒng)中,沒(méi)有傳送級(jí)確認(rèn)。存儲(chǔ)單元僅被暫時(shí)緩沖以保持開關(guān)內(nèi)的流控制。存儲(chǔ)單元保持其原始順序且在TM沒(méi)有存儲(chǔ)單元的高級(jí)處理。當(dāng)矩陣卡的輸出流與輸入流一樣快時(shí),SPU通??焖俚貙⒋鎯?chǔ)單元發(fā)送給輸入TM。因此,存儲(chǔ)單元快速移到輸出TM。另一方面,由于輸出端口被塞滿或正被多個(gè)輸入線路卡饋送,輸出TM可被備份。在這種情況下,在輸出存儲(chǔ)單元的首部中設(shè)置標(biāo)志以通知輸出SPU快速采取行動(dòng)。輸出TM還發(fā)送請(qǐng)求給輸入SPU以啟動(dòng)在提供存儲(chǔ)器存取服務(wù)質(zhì)量中使用的流控制功能。值得注意的是,與因特網(wǎng)上的通信流量不同,對(duì)于存儲(chǔ)流量,丟失信息包或存儲(chǔ)單元是不可接受的。因此,只要緩沖器中的存儲(chǔ)單元數(shù)量超出指定的閾值,SPU可啟動(dòng)其流控制功能以減慢輸入流量從而避免緩沖器溢出。
網(wǎng)絡(luò)連接(Fabric Connection)。網(wǎng)絡(luò)連接410將TM的256位并行信號(hào)(128位輸入和128位輸出)以160Gbps轉(zhuǎn)換到底板的16位串行接口中(8位輸入和8位輸出)。因而,底板在插腳的16分之一運(yùn)行,但速度上快16倍。這種轉(zhuǎn)換使能以合理的成本構(gòu)造高可用性底板,且不用成千上萬(wàn)的連接插腳和導(dǎo)線。此外,在一實(shí)施例中,由于有三個(gè)矩陣卡,在一實(shí)施例中,每一線路卡上有三個(gè)高速連接器,其中每一連接器分別將8位信號(hào)連到三個(gè)矩陣卡中的相應(yīng)矩陣卡。當(dāng)然,其它實(shí)施例可能不需要三個(gè)網(wǎng)絡(luò)連接410。
CPU。在每一線路卡上有處理器(CPU)614,在一實(shí)施例中其為PowerPC 750 Cxe。在一實(shí)施例中,CPU414用3.2Gb總線經(jīng)總線控制器415和網(wǎng)橋416連到每一PACE。此外,CPU414還連到每一PPU、CAM和TM,然而,在一些實(shí)施例中,該連接是40Mbps的較慢速度。3.2Gb和40Mb通路均允許CPU與線路卡中的大多數(shù)設(shè)備通信并讀和寫線路卡上每一設(shè)備的內(nèi)部寄存器、下載微碼、及發(fā)送和接收控制信息包。
每一線路卡上的CPU負(fù)責(zé)在加電時(shí)初始化每一芯片并在無(wú)論哪里需要微碼時(shí)將微碼下載到SPU及每一端口。一旦線路卡在運(yùn)行狀態(tài),CPU處理控制流量。對(duì)于建立虛擬目標(biāo)器連接需要的信息,CPU從SCC請(qǐng)求信息,其繼而從SCC數(shù)據(jù)庫(kù)中的適當(dāng)對(duì)象獲得信息。
線路卡中的區(qū)別-端口。在一實(shí)施例中,每一類線路卡如GigE、FC或WAN中的端口均是不同的,因?yàn)槊恳痪€路卡支持一種類型的端口。在其它實(shí)施例中,其它線路卡端口可被設(shè)計(jì)為支持其它協(xié)議如Infiniband。
GigE端口。吉比特以太網(wǎng)端口連到iSCSI服務(wù)器和存儲(chǔ)設(shè)備。當(dāng)GigE端口攜載所有類型的以太網(wǎng)流量時(shí),根據(jù)本發(fā)明的一實(shí)施例,通常將由存儲(chǔ)開關(guān)104以網(wǎng)速處理的唯一網(wǎng)絡(luò)流量是TCP/IP包內(nèi)的iSCSI信息包數(shù)據(jù)單元(PDU)。但是,在其它實(shí)施例中,在以太網(wǎng)連接上傳送的根據(jù)其它協(xié)議(如網(wǎng)絡(luò)文件系統(tǒng)(NFS))的信息包可在GigE端口進(jìn)行接收并由SPU和/或CPU處理。
GigE端口接收和傳送TCP/IP段以用于虛擬目標(biāo)器或iSCSI設(shè)備。為建立對(duì)虛擬目標(biāo)器的TCP連接,線路卡CPU414和SCC310均被涉及。當(dāng)接收TCP信息包時(shí),在執(zhí)行初始聯(lián)絡(luò)之后,TCP控制塊被產(chǎn)生并保存在GigE端口存儲(chǔ)器403中。VTD也被從SCC數(shù)據(jù)庫(kù)的對(duì)象取回并保存在CPU SDRAM405中以用于驗(yàn)證連接并理解虛擬目標(biāo)器的配置。TCP控制塊確定特定TCP會(huì)話或信息包屬于其的iSCSI連接,在一實(shí)施例中,還包含TCP段數(shù)量、狀態(tài)、窗口大小、及關(guān)于連接的其它可能信息。此外,TCP控制塊通過(guò)索引進(jìn)行識(shí)別,其在此稱為“TCP控制塊索引”。該連接的VTD可被產(chǎn)生并保存在SPU SRAM405中。CPU通過(guò)取回保存在其SDRAM中且最初從SCC數(shù)據(jù)庫(kù)獲得的VTD信息而產(chǎn)生VTD。VTD ID被建立在SPU CAM407中的VTD ID列表中,以便快速定位到VTD。VTD ID與TCP控制塊索引有關(guān)系并由其進(jìn)行索引。
當(dāng)端口接收iSCSI PDU時(shí),其實(shí)際上用作連接的端頭,但其后開關(guān)啟動(dòng)與目標(biāo)器的新連接。在輸入側(cè)接收信息包之后,端口使用TCP控制塊索引將iSCSI PDU傳送給PACE,其確定特殊的TCP連接。對(duì)于非TCP信息包或TCP信息包不包含iSCSI PDU,端口接收和傳送信息包,但不充作連接端頭。通常,端口402與PACE404通信,通過(guò)使用TCP控制塊索引接收或發(fā)送iSCSI信息包。當(dāng)信息包的TCP控制塊索引是-1時(shí),其標(biāo)識(shí)非iSCSI信息包。
FC端口。FC端口連到服務(wù)器和FC存儲(chǔ)設(shè)備。FC端口表現(xiàn)為連接服務(wù)器的光纖通路存儲(chǔ)子系統(tǒng)(即目標(biāo)器),也就是說(shuō),如本領(lǐng)域所理解的,其呈現(xiàn)大量允許啟動(dòng)器(如服務(wù)器)執(zhí)行進(jìn)程登入(PLOGI或PRLI)從而建立連接的虛擬目標(biāo)器設(shè)備的池。FC端口接受GID擴(kuò)展鏈路服務(wù)(ELS)并返回可為該啟動(dòng)器(如服務(wù)器)存取的目標(biāo)器設(shè)備列表。
當(dāng)連到光纖通路存儲(chǔ)設(shè)備時(shí),端口表現(xiàn)為光纖通路F端口,意為如本領(lǐng)域所公知的,其接受來(lái)自存儲(chǔ)設(shè)備的交換機(jī)登錄并通過(guò)接受和處理GID請(qǐng)求而提供名服務(wù)功能,換言之,端口將表現(xiàn)為存儲(chǔ)設(shè)備的啟動(dòng)器。
此外,F(xiàn)C端口可連到另一現(xiàn)有的SAN網(wǎng)絡(luò),在這種情況下,其表現(xiàn)為具有許多到另一網(wǎng)絡(luò)的LU的目標(biāo)器。
在端口初始化時(shí),線路卡CPU可經(jīng)歷發(fā)送交換機(jī)登錄、進(jìn)程登入、GID及接收它們。SCC支持將FC ELS轉(zhuǎn)換為iSNS請(qǐng)求和響應(yīng)的應(yīng)用。因此,在SCC中的同一數(shù)據(jù)庫(kù)可跟蹤FC啟動(dòng)器(如服務(wù)器)和目標(biāo)器(如存儲(chǔ)設(shè)備),只要它們是iSCSI啟動(dòng)器和目標(biāo)器即可。
當(dāng)建立FC連接時(shí),與GigE端口不同,F(xiàn)C端口不需要?jiǎng)?chuàng)建TCP控制塊或其等價(jià)物。所有必須的信息均可從FC首部獲得。但是,VTD(通過(guò)確定幀的目的地的D ID索引)仍需以類似于在GigE端口處描述的方式建立。
FC端口可被配置為1Gb或2Gb。當(dāng)為1Gb端口時(shí),兩個(gè)端口均被連到同一PACE,如圖4中所示;但在一實(shí)施例中,當(dāng)配置為2Gb端口時(shí),端口流量和可被SPU容納的流量應(yīng)匹配以避免SPU擁塞。在一實(shí)施例中,端口使用POS/PHY接口連到PACE。每一端口可被單獨(dú)配置,即一個(gè)PACE可具有兩個(gè)1Gb端口,另一PACE具有一個(gè)2Gb端口。
WAN端口。在包括WAN線路卡的實(shí)施例中,在一實(shí)施例中,WAN線路卡支持OC-48和OC-192連接。因而,有兩種類型的WAN端口OC-48和OC-192。對(duì)于OC-48,每一SPU有一個(gè)端口。盡管還有分類功能,但在PACE中沒(méi)有聚集功能。WAN端口連到SONET并像GigE端口那樣工作,其傳送和接收網(wǎng)絡(luò)信息包如ICMP、RIP、BPG、IP和TCP。在一實(shí)施例中,WAN端口用VPN和IPSec支持網(wǎng)絡(luò)安全性,其需要另外的硬件構(gòu)件。
由于OC-192導(dǎo)致更快的網(wǎng)速,在支持OC-192的實(shí)施例中將要求更快的SPU。
基于開關(guān)的存儲(chǔ)操作本領(lǐng)域一般技術(shù)人員均具有iSCSI和FC協(xié)議的一般知識(shí)。然而,對(duì)于關(guān)于iSCSI的更多信息,指2001年11月19日因特網(wǎng)工程任務(wù)組(IETF)的因特網(wǎng)草案及進(jìn)行中的工作-“draft-ietf-ips-iSCSI-09.txt”,其通過(guò)引用組合于此。對(duì)于關(guān)于光纖通路(FC)的更多信息,指1995年12月4日的“信息系統(tǒng)—用于SCSI的dpANS光纖通路協(xié)議”,修訂012(美國(guó)國(guó)家標(biāo)準(zhǔn)機(jī)構(gòu)提出的草案),其通過(guò)引用組合于此。此外,二者還在2002年1月18日申請(qǐng)的、題為“存儲(chǔ)區(qū)域網(wǎng)絡(luò)的存儲(chǔ)開關(guān)”的美國(guó)專利申請(qǐng)10/051,321中有所描述。
虛擬化不同信息包類型的示例性的輸入和輸出進(jìn)程在未決申請(qǐng)10/051,321、10/051,339和10/051,053中描述。應(yīng)該理解的是,根據(jù)不同的實(shí)施方式,可使用很多用于不同信息包類型的進(jìn)程。
在一實(shí)施例中,在輸入的信息包被PPU分類為數(shù)據(jù)或控制流量之后,PPU可在沒(méi)有數(shù)據(jù)緩沖的情況下執(zhí)行數(shù)據(jù)包的虛擬化。對(duì)于每一接收到的信息包,PPU確定信息包的類型(如指令、R2T/XFER RDY、寫數(shù)據(jù)、讀數(shù)據(jù)、響應(yīng)、任務(wù)管理/異常中止),其后執(zhí)行或輸入(信息包輸入開關(guān)的情況)或輸出(信息包離開開關(guān)的情況)算法以將虛擬目標(biāo)器變換為物理目標(biāo)器,反之亦然。因而,虛擬化功能分布在輸入和輸出端口之間。為還使能網(wǎng)速處理,虛擬描述符被與CAM結(jié)合使用以將請(qǐng)求位置映射到存取位置。此外,對(duì)于每一信息包,可以有特殊的考慮。例如,信息包去往的虛擬目標(biāo)器可被間隔幾個(gè)不連續(xù)的盤區(qū),可被鏡像,或者同時(shí)進(jìn)行前述兩個(gè)操作。
指令值息包一輸入為開始去往或來(lái)自虛擬目標(biāo)器的傳送任務(wù),由分別在iSCSI PDU或FCP IU中的iSCSI或FC啟動(dòng)器發(fā)送SCSI指令。當(dāng)在PPU接收到這樣的信息包時(shí)(在分類之后),接下來(lái)PPU CAM被檢查以確定是否存在有效的VTD ID,在iSCSI啟動(dòng)器的情況下其使用TCP控制塊索引和邏輯單元號(hào)(LUN),在FC啟動(dòng)器的情況下其使用S ID(幀源的標(biāo)識(shí))和LUN。在每種情況下,LUN均可在各自的iSCSI PDU或FCPIU中找到。如果沒(méi)有發(fā)現(xiàn)有效的VTD ID,則響應(yīng)信息包被發(fā)送回啟動(dòng)器。如果發(fā)現(xiàn)有效的VTD,則檢查無(wú)效參數(shù),步驟508。如果存在無(wú)效參數(shù),則響應(yīng)信息包被發(fā)送回到iSCSI或FC啟動(dòng)器。
任務(wù)索引(Task Index)連同輸入任務(wù)控制塊(ITCB)一起分配。任務(wù)索引指向或確定ITCB。ITCB保存FlowID(從VTD獲得)、VTD ID、指令序號(hào)或CmdSN(來(lái)自iSCSI信息包本身)、以及啟動(dòng)器(始發(fā)者)標(biāo)識(shí)(如在iSCSI PDU中發(fā)送的initiator_task_tag或FCP幀首部中的OX_ID)。OX_ID是交換機(jī)的始發(fā)者(啟動(dòng)器)標(biāo)識(shí)。ITCB保存在PPU SRAM中。當(dāng)然,在任何給定時(shí)間可以有許多進(jìn)行中的指令,這樣,PPU可在任何特定時(shí)間保存多個(gè)ITCB。每一ITCB將由其各自的任務(wù)索引引用。
VTD跟蹤到特定虛擬目標(biāo)器的未完成指令的數(shù)量,這樣,當(dāng)建立ITCB時(shí),其遞增未完成指令的數(shù)量。在一些實(shí)施例中,VTD建立任一特定虛擬目標(biāo)器允許的未完成指令的最大數(shù)。FlowID、VTD ID和任務(wù)索引均被復(fù)制到本地首部。FlowID告訴流量管理器目的地線路卡和端口。之后,任務(wù)索引將由輸出端口返回以確定特定的信息包任務(wù)。最后,信息包被發(fā)送給流量管理器繼而路由交換機(jī),從而其最終到達(dá)輸出PPU。
指令信息包—輸出在指令PDU或IU已通過(guò)交換結(jié)構(gòu)之后,其將到達(dá)PPU,去往輸出端口。PPU試圖確定信息包所去往的物理設(shè)備。為此,來(lái)自本地首部的VTD ID被用于搜索PTD ID(物理目標(biāo)器描述符標(biāo)識(shí)符)的PPUCAM。VTD ID與同特定輸出PPU相關(guān)的特定PTD ID有關(guān)系并對(duì)其索引。與VTD類似,PTD保存在PPU SRAM中,且還包含類似于在VTD中發(fā)現(xiàn)的信息。如果搜索不成功,則假設(shè)這是由CPU直接發(fā)送的指令信息包,不需要PPU進(jìn)行另外的處理,從而使得PPU根據(jù)本地首部中的FlowID將該信息包傳給適當(dāng)?shù)妮敵龆丝?。如果搜索成功,PTD ID將確定虛擬目標(biāo)器將被映射到其的物理目標(biāo)器(包括盤區(qū)),且其與當(dāng)前處理該信息包的特定輸出線路卡通信。
之后,PPU分配任務(wù)索引和輸出任務(wù)控制塊(ETCB)。在實(shí)施例中,用于輸出的任務(wù)索引與用于輸入的相同。任務(wù)索引還確定ETCB。此外,ETCB還保存指令所需的任何其它控制信息,包括iSCSI PDU的CmdSN或FCP IU的交換序列。
使用PTD的內(nèi)容,PPU將來(lái)自虛擬目標(biāo)器的SCSI塊地址轉(zhuǎn)換為物理設(shè)備的塊地址。將虛擬目標(biāo)器的塊地址增加到盤區(qū)的開始?jí)K偏移量可提供這種轉(zhuǎn)換。之后,PPU產(chǎn)生適當(dāng)?shù)膇SCSI CmdSN或FCP序列ID,并將它們放在iSCS IPDU或FCP幀首部中。如果需要(在一些實(shí)施例中,在輸入PPU從FCP首部讀必要的信息之后,其將刪除那些信息,盡管其它實(shí)施例將其完整的留下并在該步驟僅更新或改變必要的字段)或?yàn)榱税l(fā)送給iSCSI目標(biāo)器的信息包,PPU可構(gòu)建FCP幀首部,TCP控制塊索引被從PTD復(fù)制到本地首部中。此外,PPU提供iSCSI或FCP首部需要的任何標(biāo)記或其它變量。之后,完成的iSCSI PDU或FCP幀被發(fā)送給PACE,其繼而去除本地首部并將信息包傳給適當(dāng)?shù)亩丝凇?br> R2T或XFER RDY—輸入在指令已按如上所述發(fā)送給目標(biāo)器存儲(chǔ)設(shè)備之后,指令是寫指令,當(dāng)存儲(chǔ)設(shè)備準(zhǔn)備好接受寫數(shù)據(jù)時(shí),將從存儲(chǔ)設(shè)備接收R2T PDU或XFER_RDY IU。PPU通過(guò)使用信息包內(nèi)的initiator_task_tag或OX_ID確定相應(yīng)的ETCB。如果由于無(wú)效的initiator_task_tag或OX_ID而使PPU不能確定有效的ETCB,則丟棄信息包。否則,一旦ETCB被確定,PPU從ETCB取回輸入任務(wù)索引(如果不同于輸出任務(wù)索引)和VTD ID。PPU還從PTD取回FlowID,其也由PTD ID在ETCB中確定。FlowID向流量管理器指示原始啟動(dòng)器(輸入)端口的線路卡。FlowID、VTD ID和任務(wù)索引被復(fù)制到信息包的本地首部。最后,信息包被發(fā)送給流量管理器和交換結(jié)構(gòu)。
R2T或XFER RDY—輸出在R2T或XFER_RDY信息包從交換結(jié)構(gòu)出現(xiàn)之后,其由PPU在其被傳回啟動(dòng)器(發(fā)起特定任務(wù)的原始指令的設(shè)備)的途中接收。任務(wù)索引確定對(duì)應(yīng)于PPU的ITCB,從該ITCB可獲得原始initiator_task_tag和VTD ID。R2T/XFER_RDY希望的數(shù)據(jù)傳送長(zhǎng)度或BURST_LEN字段保存在ITCB中。本地首部被FCP D_ID或TCP連接的TCP控制塊索引更新。應(yīng)注意,所保存的來(lái)自原始信息包的S_ID,其保存在ITCB中,變?yōu)镈_ID。如果需要,構(gòu)建FCP幀首部或更新其字段。目的地端口號(hào)在本地首部中指明,其代替FlowID并與initiator_task_tag一起放在SCSI PDU中,或?qū)τ贔C連接,RX_ID和OX_ID放在FCP幀中。RX_ID字段是交換機(jī)的應(yīng)答者(目標(biāo)器)標(biāo)識(shí)。PPU還放置需要放在PDU或FCP首部中的任何其它標(biāo)記或變量。信息包被轉(zhuǎn)發(fā)給PACE,其從本地首部確定輸出端口。之后,本地首部被去除,并轉(zhuǎn)發(fā)給適當(dāng)?shù)亩丝谶M(jìn)行傳送。
如果指令被拆分到兩個(gè)或更多個(gè)盤區(qū),如指令在一盤區(qū)開始并在另一盤區(qū)結(jié)束,則PPU必須保存第二盤區(qū)的R2T或XFER_RDY,直到第一盤區(qū)的數(shù)據(jù)傳送結(jié)束為止,因而確保從啟動(dòng)器連續(xù)傳送數(shù)據(jù)。此外,第二盤區(qū)的R2T或XFER_RDY的數(shù)據(jù)偏移量將需要進(jìn)行修改,其通過(guò)增加傳送給第一盤區(qū)的數(shù)據(jù)量實(shí)現(xiàn)。
寫數(shù)據(jù)包—輸入在啟動(dòng)器接收R2T或XFER_RDY信息包之后,其返回寫入數(shù)據(jù)信息包。當(dāng)從啟動(dòng)器接收到寫入數(shù)據(jù)iSCSI PDU或FC IU時(shí),信息包屬于其的ITCB必須被確定。通常,ITCB可使用RX_ID或target_task_tag進(jìn)行確定,在一些實(shí)施例中,其與任務(wù)索引相同。SPU還確定所接收的信息包狀況良好。然而,在一些情況下,啟動(dòng)器將傳送主動(dòng)提供的數(shù)據(jù)在接收R2T或XFER_RDY之前發(fā)送的數(shù)據(jù)。在這種情況下,PPU必須通過(guò)搜索特定虛擬目標(biāo)器的所有未完成任務(wù)而發(fā)現(xiàn)ITCB。但如果未發(fā)現(xiàn)ITCB,則丟棄信息包。如果發(fā)現(xiàn)ITCB,將被傳送的總數(shù)據(jù)量在ITCB中更新。FlowID和任務(wù)索引被添加到信息包的本地首部。之后,信息包被轉(zhuǎn)發(fā)給流量管理器并最終轉(zhuǎn)發(fā)給交換結(jié)構(gòu)。
寫數(shù)據(jù)包—輸出當(dāng)從交換結(jié)構(gòu)(經(jīng)流量管理器)接收到寫入數(shù)據(jù)信息包時(shí),需要確定信息包的ETCB。通常,ETCB可使用本地首部中的任務(wù)索引進(jìn)行確定。一旦發(fā)現(xiàn)ETCB,通過(guò)使用ETCB內(nèi)的信息,PPU產(chǎn)生適當(dāng)?shù)膇SCSIDataSN或FCP序列ID,以及PDU或FCP幀首部的任何其它標(biāo)記或變量如數(shù)據(jù)偏移量。本地首部用來(lái)自PTD的TCP控制塊索引或FCP D_ID更新。端口號(hào)也被添加到本地首部。完成的iSCSI PDU或FCP幀被發(fā)送給PACE,其去掉本地首部并將信息包轉(zhuǎn)發(fā)給適當(dāng)?shù)亩丝凇?br> 讀數(shù)據(jù)包—輸入在接收讀指令之后,目標(biāo)器設(shè)備將以讀出數(shù)據(jù)信息包響應(yīng),其將在PPU接收(在經(jīng)歷PACE中的分類之后)。之后,使用OX_ID或initiator_task_tag確定信息包的ETCB。PPU還使用序號(hào)驗(yàn)證信息包是否被整齊接收或驗(yàn)證數(shù)據(jù)偏移量呈升序。如果信息包不整齊,則讀指令被錯(cuò)誤地終止。然而,如果數(shù)據(jù)包整齊,則從ETCB和VTD取回VTD ID、任務(wù)索引和FlowID并復(fù)制到本地首部。信息包被發(fā)送給流量管理器并最終發(fā)送給交換結(jié)構(gòu)。
如果讀出數(shù)據(jù)信息包跨越盤區(qū)邊界,則必須修改第二盤區(qū)的信息包的數(shù)據(jù)偏移量。該偏移量通常在輸出側(cè)執(zhí)行,如下所述,因?yàn)镕lowID將確定來(lái)自第二盤區(qū)的信息包。此外,為確保連續(xù)返回的數(shù)據(jù),對(duì)第二盤區(qū)的讀出指令將不被發(fā)送,直到讀第一盤區(qū)結(jié)束為止。
讀數(shù)據(jù)包—輸出當(dāng)PPU從交換結(jié)構(gòu)接收到讀出數(shù)據(jù)信息包時(shí),通常使用本地首部中的任務(wù)索引確定信息包的ITCB。PPU可從該ITCB取回initiator_task_tag或OX_ID。使用ITCB中所保存的數(shù)據(jù),PPU產(chǎn)生適當(dāng)?shù)膇SCSI DataSN或FCP序列ID以及PDU或FCP幀首部的其它標(biāo)記或變量。本地首部用來(lái)自VTD的TCP控制塊索引或FCP S_ID更新。然而,應(yīng)注意,對(duì)于回到啟動(dòng)器的信息包,來(lái)自原始信息包的S_ID將被用作D_ID。輸出端口號(hào)也被添加到本地首部。之后,信息包被發(fā)送給PACE,其去掉本地首部并將信息包轉(zhuǎn)發(fā)給適當(dāng)?shù)亩丝凇?br> 響應(yīng)信息包—輸入響應(yīng)信息包將從目標(biāo)器設(shè)備接收。之后,使用信息包的initiator_task_tag或OX_ID確定信息包的ETCB。在一些實(shí)施例中,initiator_task_tag或OX_ID將與任務(wù)索引一樣。如果沒(méi)發(fā)現(xiàn)ETCB,則丟棄信息包。然而,如果發(fā)現(xiàn)ETCB,則任務(wù)索引連同VTD ID和FlowID被復(fù)制到信息包的本地首部。信息包被發(fā)送給流量管理器并最終發(fā)送給交換結(jié)構(gòu)。最后,由于響應(yīng)信息包發(fā)出任務(wù)完成的信號(hào),用于該任務(wù)的ETCB被釋放。
響應(yīng)信息包—輸出在響應(yīng)信息包已通過(guò)交換結(jié)構(gòu)之后,其將由輸出PPU接收。使用來(lái)自本地首部的任務(wù)索引確定信息包的ITCB。如果沒(méi)有發(fā)現(xiàn)ITCB,則丟棄信息包。如果發(fā)現(xiàn)ITCB,則虛擬目標(biāo)器的未完成指令計(jì)數(shù)在VTD中遞減。PPU從ITCB中的信息產(chǎn)生LUN、iSCSI ExpStatSN或FCP序列ID,如果需要,構(gòu)建或更新適當(dāng)?shù)腇CP首部。PPU還為PDU或FC幀首部構(gòu)建其它標(biāo)記或變量。PPU用從VTD取回的TCP控制塊索引或FCP S_ID(其變成D_ID)更新本地首部。信息包被轉(zhuǎn)發(fā)給PACE,其去掉本地首部并將信息包轉(zhuǎn)發(fā)給適當(dāng)?shù)亩丝?。PPU釋放ITCB。
存儲(chǔ)池如圖2所示,在其物理結(jié)構(gòu)中,根據(jù)本發(fā)明實(shí)施例的系統(tǒng)包括連到一個(gè)或多個(gè)服務(wù)器202和一個(gè)或多個(gè)物理設(shè)備206即存儲(chǔ)設(shè)備或子系統(tǒng)的開關(guān)204。每一物理目標(biāo)器由一個(gè)或多個(gè)邏輯單元(LU)207組成。虛擬目標(biāo)器將最終由這些LU形成。
然而,在虛擬目標(biāo)器可被產(chǎn)生或“提供”之前,開關(guān)需要“意識(shí)到”所連接的和/或可由其存取的物理存儲(chǔ)設(shè)備及這些物理存儲(chǔ)設(shè)備的特性。因而,在本發(fā)明的一實(shí)施例中,當(dāng)存儲(chǔ)設(shè)備或啟動(dòng)器設(shè)備連接到開關(guān)或向開關(guān)登記時(shí),開關(guān)必須知道新設(shè)備的性能特征。在一實(shí)施例中,開關(guān)包括實(shí)用程序,其可測(cè)量存儲(chǔ)器存取時(shí)間、數(shù)據(jù)傳送率、高速緩存支持、到設(shè)備的備用通路的數(shù)量、RAID支持、及物理設(shè)備的LU允許的最大指令。在一些實(shí)施例中,一旦設(shè)備連到開關(guān),實(shí)用程序?qū)⒆詣?dòng)發(fā)現(xiàn)設(shè)備并自動(dòng)收集所需信息,而沒(méi)有任何用戶或其它干涉。在一些這樣的實(shí)施例中,當(dāng)?shù)蕉丝诘男盘?hào)線上有干擾或復(fù)位時(shí),開關(guān)將“發(fā)現(xiàn)”設(shè)備的添加/去除。一旦設(shè)備被“發(fā)現(xiàn)”,不同的詢問(wèn)被發(fā)送給設(shè)備以收集關(guān)于性能特征的信息。例如,可發(fā)送讀/寫指令以測(cè)量傳送率或檢查存取時(shí)間。另外,在一些實(shí)施例中,性能特征的獲得可通過(guò)使管理員在管理站210輸入性能特征而實(shí)現(xiàn),其中,這些特征將繼而被提供給開關(guān)204。
開關(guān)向用戶提供以定義服務(wù)質(zhì)量(QoS)政策的多個(gè)組成部分的能力。通過(guò)QoS政策,用戶可選擇為啟動(dòng)器和目標(biāo)器保存和取回?cái)?shù)據(jù)的條件。在一實(shí)施例中,QoS政策由三個(gè)要素定義提供虛擬目標(biāo)器、提供啟動(dòng)器連接、及定義用戶域。但是一些實(shí)施例可能不需要所有三個(gè)要素來(lái)定義QoS政策。例如,一些實(shí)施例僅需要提供虛擬目標(biāo)器和提供啟動(dòng)器連接,但不需要用戶域。其它實(shí)施例可使用完全不同的要素定義QoS政策。
提供虛擬目標(biāo)器一旦物理設(shè)備的LU在可存取池中(即不是“非池”),則可從那些LU創(chuàng)建虛擬目標(biāo)器。為提供虛擬目標(biāo)器,在本發(fā)明的一實(shí)施例中,用戶將為虛擬目標(biāo)器選擇幾個(gè)特征,包括-大小(如按吉字節(jié)計(jì)算);-存儲(chǔ)池,盡管在一實(shí)施例中用戶可僅從用戶被允許存取的存儲(chǔ)池選擇;-希望的可用性,如始終可用(數(shù)據(jù)關(guān)鍵且必須未曾被接受)、通??捎玫龋?虛擬目標(biāo)器的WWUI;-備份池;
-用戶鑒別數(shù)據(jù);-鏡像成員的數(shù)量;-鏡像成員的位置(如本地或遠(yuǎn)程)。
在本發(fā)明的其它實(shí)施例中,也可選擇不同的、另外的或較少的特征。
之后,開關(guān)分析所選池的可用資源以確定是否可形成虛擬目標(biāo)器,具體地,開關(guān)確定滿足虛擬目標(biāo)器的大小要求的多個(gè)LU(或LU的部分)是否可用。如果是,則用一個(gè)或多個(gè)盤區(qū)創(chuàng)建虛擬目標(biāo)器,且虛擬目標(biāo)器對(duì)象被形成在確定虛擬目標(biāo)器、其盤區(qū)及其特征的SCC數(shù)據(jù)庫(kù)中。用戶為四個(gè)虛擬目標(biāo)器選擇的特征的例子如下表1中所示表1—虛擬目標(biāo)器


除了提供新虛擬目標(biāo)器以外,根據(jù)本發(fā)明實(shí)施例的開關(guān)還可用新的或不同的信息修改現(xiàn)有的虛擬目標(biāo)器或當(dāng)不再需要虛擬目標(biāo)器時(shí)將它們刪除。
在一實(shí)施例中,QoS政策通常由虛擬目標(biāo)器(如所提供的)、啟動(dòng)器連接(如所提供的)、及用戶域定義。因而,參考上表1,表中的前三項(xiàng)—“啟動(dòng)器ID”、“虛擬目標(biāo)器ID”和“用戶域ID”—將固有地描述QoS政策,因?yàn)閱?dòng)器連接和虛擬目標(biāo)器的屬性已在這些項(xiàng)目被提供時(shí)定義。例如,啟動(dòng)器連接的最小和最大帶寬已被確定(見表2和3)。用戶域通過(guò)確定啟動(dòng)器連接或虛擬目標(biāo)器連接是否更慢并將QoS強(qiáng)加給二者中較慢那個(gè)而幫助確定政策。當(dāng)然,如上所述,不是所有實(shí)施例都需要用戶域。同樣,其它實(shí)施例可使用較上表1中所示的那些參數(shù)更多、更少或不同的參數(shù)定義SLA。
圖5總結(jié)了在一實(shí)施例中,為能提供QoS而提供虛擬目標(biāo)器和連接的步驟。如圖所示,在步驟502,根據(jù)本發(fā)明實(shí)施例的開關(guān)發(fā)現(xiàn)并確定與開關(guān)通信的物理設(shè)備的特征。在步驟504,開關(guān)對(duì)那些設(shè)備進(jìn)行分類,在步驟506,將那些設(shè)備與特定的存儲(chǔ)池關(guān)聯(lián)。在步驟508,開關(guān)將接收啟動(dòng)器連接的信息,并在步驟510提供連接及在SCC數(shù)據(jù)庫(kù)中創(chuàng)建對(duì)象。之后,在步驟512,開關(guān)還將接收虛擬目標(biāo)器的參數(shù)并在步驟514根據(jù)那些參數(shù)提供虛擬目標(biāo)器,如果資源可用,在SCC數(shù)據(jù)庫(kù)中創(chuàng)建對(duì)象。應(yīng)注意,步驟508-514可以任何順序執(zhí)行,圖5中所示的順序僅是示例性的。在提供虛擬目標(biāo)器之后,在步驟516,創(chuàng)建用戶域且虛擬目標(biāo)器放在該用戶域中或虛擬目標(biāo)器放在先前存在的用戶域中。用戶還可嘗試訪問(wèn)先前提供的虛擬目標(biāo)器(因此,步驟514對(duì)每一連接并不是必須的)。最后,在步驟518,根據(jù)本發(fā)明的實(shí)施例的開關(guān)接收SLA/QoS參數(shù)。
實(shí)施開關(guān)中的帶寬分配在一實(shí)施例中,可用許多虛擬邏輯單元提供每一虛擬目標(biāo)器,并為通過(guò)單一物理端口存取的每一邏輯單元指明最小和最大帶寬分配。在單一啟動(dòng)器通過(guò)開關(guān)上的單一物理端口向兩個(gè)或多個(gè)虛擬邏輯單元寫數(shù)據(jù)或從其讀數(shù)據(jù)時(shí),兩個(gè)或多個(gè)物理邏輯單元可回復(fù)并使物理端口擁塞。圖6a示出了單一啟動(dòng)器經(jīng)開關(guān)204上的單一物理端口250存取兩個(gè)虛擬邏輯單元(VLU)的示例性情形。每一VLU連到一個(gè)或多個(gè)物理邏輯單元(PLU)。在只示出了兩個(gè)VLU的同時(shí),每一VLU與一個(gè)PLU通信,應(yīng)該理解的是,大量VLU和PLU可通過(guò)物理端口250通信。
啟動(dòng)器102可包括兩個(gè)應(yīng)用程序,應(yīng)用程序1和應(yīng)用程序2,每一應(yīng)用程序存取相應(yīng)的虛擬邏輯單元。應(yīng)用程序1通過(guò)虛擬化的邏輯單元VLU1存取物理邏輯單元206a,應(yīng)用程序2通過(guò)虛擬化的邏輯單元VLU2存取物理邏輯單元206b。每一VLU由用戶按如上所述配置以最小和最大帶寬。再次說(shuō)明,該帶寬可被配置為可用物理端口容量的百分比。根據(jù)本發(fā)明,用戶可對(duì)每一邏輯單元帶寬管理的帶寬參數(shù)賦值。例如,假設(shè)VLU1提供對(duì)要求高帶寬存取的數(shù)據(jù)的存取,VLU2提供對(duì)非關(guān)鍵數(shù)據(jù)的存取且不要求高帶寬。在這種情況下,可配置開關(guān)以保證低等待時(shí)間數(shù)據(jù)相較非關(guān)鍵數(shù)據(jù)而言更有權(quán)使用物理端口的資源。
為實(shí)現(xiàn)這種帶寬控制,本發(fā)明的系統(tǒng)監(jiān)視每一VLU使用的帶寬并調(diào)節(jié)對(duì)每一VLU的存取以控制物理端口250上的所有帶寬。在一實(shí)施例中,如圖6a中所示,系統(tǒng)使用流量標(biāo)記標(biāo)志從PLU通過(guò)VLU而通過(guò)物理端口250的流量。通常,當(dāng)來(lái)自物理邏輯單元(例如PLU2)的流量到達(dá)虛擬邏輯單元(在這種情況下為VLU2)時(shí),如果帶寬高于給定虛擬邏輯單元的最大允許帶寬,多余的字節(jié)量將被記錄在虛擬邏輯單元中。這樣的流量允許傳給應(yīng)用程序,但過(guò)多信息用于調(diào)節(jié)到VLU的連接,直到帶寬降到設(shè)定水平為止。當(dāng)啟動(dòng)器向VLU2發(fā)出新指令時(shí),如對(duì)物理邏輯單元的讀指令,指令中的傳送長(zhǎng)度將被用于抵消(減少)先前記錄的過(guò)多量。該新指令及隨后的指令被拒絕,直到VLU超出其共享帶寬的全部超額量已被抵消為止。例如,在FCP SCSI的情況下,用TASK_SET_FULL狀態(tài)FCP響應(yīng)拒絕指令,直到全部超額量已被抵消為止。如果從物理邏輯單元到虛擬邏輯單元的流量的帶寬低于允許的最小帶寬,則沒(méi)有超額量記錄在虛擬邏輯單元上(在該例子中為VLU2)。
本發(fā)明的帶寬平衡算法的該概括闡述將在下面詳細(xì)描述。
為每一VLU配置帶寬的能力引起兩種帶寬管理配置情況,在此通常稱為靜態(tài)情況和動(dòng)態(tài)情況。如果用戶設(shè)定VLU的帶寬,使得一個(gè)VLU被限定到總物理端口帶寬的非常低的百分比,來(lái)自其它邏輯單元的流量將被保證可使用大百分比的端口帶寬。在這種靜態(tài)情況下,端口的全部資源未被利用。例如,如果VLU2的最大帶寬被限定到端口容量的20%,VLU2將永遠(yuǎn)不會(huì)超出端口容量的20%,即使沒(méi)有流量移動(dòng)通過(guò)VLU1也是如此。因此,端口資源被浪費(fèi)。
當(dāng)每一VLU被配置以最小和最大帶寬且由端口存取的所有VLUS的所有最大帶寬的和超出物理端口容量的100%,則存在動(dòng)態(tài)情況。在該動(dòng)態(tài)情況下,如果兩個(gè)VLU均以其最大允許帶寬接收流量,則端口250的端口容量將被超出,系統(tǒng)必須調(diào)節(jié)來(lái)自相應(yīng)PLU的流量。假設(shè)VLU1具有70%的最小帶寬和100%的最大帶寬,VLU2具有10%的最小帶寬和100%的最大帶寬。由于VLU1具有70%的最小帶寬,所以希望任何平衡均照顧VLU1。
根據(jù)本發(fā)明,在每一VLU的流量被監(jiān)視和標(biāo)志,且通過(guò)VLU的流量通過(guò)拒絕從啟動(dòng)器到端口250的VLU的指令而被節(jié)流,直到通過(guò)VLU之一的帶寬下降低于設(shè)定水平為止。
本發(fā)明的一般方法如圖7a中所示。如圖所示,在步驟702,監(jiān)視物理端口的流量以確定端口是否被擁塞。在步驟704,如果流量擁擠,則在步驟706通過(guò)拒絕給通過(guò)端口250通信的相應(yīng)VLU的指令而調(diào)節(jié)流量,以防止擁塞并根據(jù)帶寬配置區(qū)分通過(guò)端口存取的優(yōu)先順序。這一直持續(xù),直到在端口上檢測(cè)不到流量擁塞為止。
圖7b示出了節(jié)流步驟706的一種實(shí)施方式。如圖所示,在步驟710,當(dāng)從每一PLU返回到存儲(chǔ)開關(guān)的流量(通常以位秒(bps)或字節(jié)秒表示)到達(dá)VLU時(shí)其帶寬被監(jiān)視。之后,執(zhí)行一系列的節(jié)流控制確定步驟705以確定從PLU抵達(dá)每一VLU的帶寬是否超出允許的最大值。如果是,該事實(shí)用于調(diào)低來(lái)自與VLU通信的PLU的流量。如果到達(dá)VLU的流量帶寬低于允許值,則數(shù)據(jù)被簡(jiǎn)單地傳送給啟動(dòng)器。在步驟720,如果帶寬超出VLU的最大帶寬,則在步驟730,任何超額量均由PPU記錄在VLU中。在步驟730,該流量被允許傳給啟動(dòng)器,且在步驟765,指令被轉(zhuǎn)發(fā)給PLU。
在步驟750,在接收下一冒犯VLU的指令的基礎(chǔ)上,在步驟760系統(tǒng)將確定VLU已超出其帶寬且在步驟770端口將拒絕指令并將帶寬降低指令中所請(qǐng)求的數(shù)據(jù)量。例如,如果VLU1被分配300兆字節(jié)/秒的帶寬,且在步驟710確定流量將為330兆字節(jié)/秒,則在步驟730,在冒犯期間讀的字節(jié)超額量(30兆字節(jié)/秒乘以時(shí)間)在步驟730被記錄。在步驟750,當(dāng)隨后接收到讀VLU1的指令時(shí),該指令將被拒絕(步驟760將為真),但在步驟770,讀指令中請(qǐng)求的字節(jié)量將從超額量中扣除。在步驟760,該拒絕和縮減將繼續(xù)發(fā)生,直到VLU1不再虧欠帶寬為止,在步驟765,下一指令將被轉(zhuǎn)發(fā)給PLU。
如下面進(jìn)一步詳細(xì)闡述的,為慮及最小和最大帶寬設(shè)置的任何配置,使用加權(quán)方案確定在給定時(shí)間哪一VLU需要節(jié)流。此外,由于最小和最大帶寬必須被包括在加權(quán)進(jìn)程中,雙速率三色標(biāo)記器(trTCM)系統(tǒng)被用于計(jì)量通過(guò)每一VLU的流量。
圖6b示出了雙速率三色標(biāo)識(shí)系統(tǒng)的概念,其使用兩桶每VLU來(lái)計(jì)量和標(biāo)識(shí)每一VLU的流量。圖8示出了使用該trTCM標(biāo)識(shí)的本發(fā)明的加權(quán)系統(tǒng)。
加權(quán)系統(tǒng)使用爭(zhēng)用計(jì)數(shù)的概念平衡VLU的最小和最大帶寬設(shè)置。通常,代替收集和測(cè)量實(shí)際的流量字節(jié),爭(zhēng)用計(jì)數(shù)根據(jù)流量顏色和VLU允許的最大帶寬與隨機(jī)數(shù)的比較而產(chǎn)生。在同一開關(guān)端口250上的所有VLU的最小爭(zhēng)用計(jì)數(shù)用于確定VLU的超額量。之后,該VLU的爭(zhēng)用計(jì)數(shù)被減去超額量。
為確定爭(zhēng)用計(jì)數(shù),trTCM標(biāo)記計(jì)量信息包流并將幀標(biāo)為或綠色、黃色或紅色。如果信息包超出峰值信息率,在該例子中為最大帶寬,則其被標(biāo)為紅色。否則,根據(jù)其是超過(guò)還是沒(méi)超過(guò)約定的信息率,在該例子中為最小帶寬,其被標(biāo)為黃色或綠色。計(jì)量器計(jì)量每一信息包并將信息包和計(jì)量結(jié)果傳給標(biāo)記器。在SSC中,PPU執(zhí)行計(jì)量和標(biāo)識(shí)功能以及端口250處的指令調(diào)節(jié)。爭(zhēng)用計(jì)數(shù)保存在每一VLU的VTD中。通常,trTCM通過(guò)對(duì)四個(gè)流量參數(shù)設(shè)定值而進(jìn)行配置,在該例子中,四個(gè)流量參數(shù)為最大帶寬MaxBW及其相關(guān)峰值突發(fā)量(burst size)、最小帶寬MinBW及其相關(guān)峰值突發(fā)量。突發(fā)量按字節(jié)進(jìn)行測(cè)量。
如圖6b中所示,計(jì)量器按照每流兩個(gè)令牌桶220、222、224和226進(jìn)行確定。一個(gè)桶(如桶220、224)被配置用于最小帶寬,一個(gè)桶(如桶222、226)被配置用于最大帶寬。在trTCM的一種實(shí)施方式中,令牌桶MaxBW的最大大小為最大突發(fā)量,且MinBW令牌桶的最大大小為其突發(fā)量。在開始,令牌桶均被設(shè)為“滿”且記號(hào)計(jì)數(shù)等于相應(yīng)的突發(fā)量。其后,記號(hào)計(jì)數(shù)被增加一最大帶寬速率每秒,直到達(dá)到最大突發(fā)量,最小帶寬桶的記號(hào)計(jì)數(shù)被增加最小帶寬乘以每秒,直到達(dá)到最小突發(fā)量。在該配置中,低速率令牌桶被配置為用于最小帶寬,高速率令牌桶被配置用于最大帶寬。流經(jīng)兩種令牌桶的流量被標(biāo)為綠色,因而被保護(hù)。流經(jīng)高速率令牌桶但不流經(jīng)低速率令牌桶的流量被標(biāo)為黃色,并用于確定爭(zhēng)用計(jì)數(shù)。因此,不流過(guò)任一令牌桶的流量被標(biāo)為紅色。該量被記錄并用于產(chǎn)生爭(zhēng)用計(jì)數(shù),爭(zhēng)用計(jì)數(shù)用于節(jié)流隨后的流量。更具體地,當(dāng)大小為B字節(jié)的信息包在時(shí)間T到達(dá)時(shí),如果最大帶寬桶中的記號(hào)計(jì)數(shù)減去信息包的大小的結(jié)果小于0,則信息包被標(biāo)為紅色。如果最小帶寬桶中的記號(hào)計(jì)數(shù)減去信息包的大小的結(jié)果小于0,則信息包被標(biāo)為黃色,且最大帶寬桶被減少B字節(jié);否則信息包為綠色,最小帶寬和最大帶寬桶均被減少B字節(jié)。應(yīng)意識(shí)到的是,也可使用這種標(biāo)記方案的其它配置,且本說(shuō)明僅是一個(gè)示例性的實(shí)施例。此外,其它相對(duì)于最大信息率監(jiān)視兩種速率的標(biāo)記方案也可使用。
圖8詳細(xì)示出了實(shí)施圖7的步驟705的節(jié)流控制和帶寬測(cè)量的一實(shí)施例。在步驟820,在流量在步驟710從PLU1到達(dá)VLU之后,流量突發(fā)量被讀出,且根據(jù)trTCM對(duì)流量進(jìn)行計(jì)量和標(biāo)識(shí)。
在兩個(gè)帶寬均設(shè)為100%的例子中,將沒(méi)有紅色流量。例如,如果兩個(gè)VLU之一具有小于100%的帶寬,則部分流量將被標(biāo)為紅色。對(duì)于具有更高最小帶寬的VLU,只有較少的信息包會(huì)被標(biāo)為黃色。因此,在上述例子中,VLU1提供對(duì)低等待時(shí)間數(shù)據(jù)的存取,并被設(shè)置為MinBW為物理端口容量的70%,MaxBW為物理端口容量的100%,VLU2MaxBW=100%,MinBW=10%;VLU2將引起較大數(shù)量的黃色標(biāo)記幀。如下所指出的,只有黃色信息包影響爭(zhēng)用計(jì)數(shù),因而影響賦予特定端口的優(yōu)先級(jí)加權(quán)。
接下來(lái),在步驟830,確定流量是紅色、綠色還是黃色。如果在步驟830確定流量是綠色,則不對(duì)信息包采取任何行動(dòng)。如果在步驟830流量被標(biāo)為黃色,則在步驟850,對(duì)流量是否是爭(zhēng)用計(jì)數(shù)進(jìn)行分類。在步驟850,VLU的最大帶寬發(fā)送值歸一化為8位值。之后,為流中的每一幀產(chǎn)生隨機(jī)8位值。該隨機(jī)8位值與歸一化的最大帶寬值進(jìn)行比較。如果隨機(jī)數(shù)大于歸一化的最大帶寬值,則黃色幀被視為爭(zhēng)用幀。在步驟870,系統(tǒng)將爭(zhēng)用計(jì)數(shù)加到VLU記錄。具體地,在步驟870,VLU的爭(zhēng)用計(jì)數(shù)被增加幀的大小。這樣,最大帶寬設(shè)置越高,在步驟870增加的爭(zhēng)用計(jì)數(shù)越少。類似地,最小帶寬越高,出現(xiàn)的黃色幀越少,因而爭(zhēng)用計(jì)數(shù)越少。這使得具有較高最小和最大帶寬設(shè)置的VLU被節(jié)流的機(jī)會(huì)更少。如果在步驟830流量是紅色,其將在步驟840被自動(dòng)加到VLU的超額量。
在圖6b中的物理端口250處提供了另外的測(cè)量桶。該令牌桶測(cè)量訪問(wèn)物理端口的所有VLU的總流量。單速率令牌桶用于測(cè)量帶寬控制。當(dāng)總流量超過(guò)物理端口容量時(shí),則選擇具有最大數(shù)量爭(zhēng)用計(jì)數(shù)的VLU進(jìn)行節(jié)流。
表2-6闡釋了執(zhí)行步驟760和770以確定哪一VLU具有爭(zhēng)用計(jì)數(shù)的超額量從而確定哪一VLU應(yīng)在步驟770進(jìn)行節(jié)流的一種實(shí)施方式。表2示出了啟動(dòng)器VLU1和VLU2的示例性爭(zhēng)用計(jì)數(shù)數(shù)量。
表2

在表2中,VLU2較VLU1具有更高的爭(zhēng)用計(jì)數(shù)數(shù)量。因此,VLU2將被節(jié)流請(qǐng)求數(shù)據(jù)的大小,直到其爭(zhēng)用計(jì)數(shù)降低到低于VLU1為止。同一端口上的所有VLU的最小爭(zhēng)用計(jì)數(shù)被用于增加到VLU的超額量。之后,該VLU的爭(zhēng)用計(jì)數(shù)被減少該超額量。例如,假設(shè)總帶寬高于端口容量,如表2中所示,VLU1具有60爭(zhēng)用計(jì)數(shù),VLU2上的流量具有300爭(zhēng)用計(jì)數(shù)。當(dāng)單速率桶確定端口被擁塞時(shí),超額量將是同一端口上的所有VLU的最小爭(zhēng)用計(jì)數(shù),其在表2中為60。因此,計(jì)數(shù)狀態(tài)將如表3中所示。
表3


當(dāng)在步驟750接收到下一指令時(shí),VLU2的指令將被拒絕,且超額量被減少該指令中所請(qǐng)求的大小。例如,假如指令是讀指令且讀指令要讀40字節(jié),則使得VLU2的超額量將被減少40字節(jié),如表4中所示。
表4

超額量將繼續(xù)由隨后的指令抵消,直到其變?yōu)?或負(fù)為止,如表5中所示。
表5

在流量被節(jié)流之后,如果總帶寬小于端口容量,則不再需要將爭(zhēng)用計(jì)數(shù)轉(zhuǎn)換為超額量。然而,爭(zhēng)用計(jì)數(shù)可隨著時(shí)間的消逝而陳化。隨著時(shí)間的過(guò)去,根據(jù)trTCM算法的原理,如果沒(méi)有擁塞,爭(zhēng)用計(jì)數(shù)逐漸降低到0。表6示出了非擁塞期間的狀態(tài)。
表6

只要擁塞在端口250繼續(xù),如步驟760和770所詳細(xì)示出的,當(dāng)前的爭(zhēng)用計(jì)數(shù)均將用在算法中。應(yīng)理解的是,前面提及的“計(jì)數(shù)”和帶寬的數(shù)量均僅是示例性的。如果擁塞再次出現(xiàn),將重復(fù)表2-6的循環(huán)。
前述關(guān)于本發(fā)明的詳細(xì)描述均為說(shuō)明和描述的目的而給出。本發(fā)明并不限于實(shí)例的情況。其不僅應(yīng)用于FCP和iSCSI讀,而且用于FCP和iSCSI寫。擁塞的端口可以是連到啟動(dòng)器的端口,也可以是連到目標(biāo)器的端口連接器。流量可從啟動(dòng)器到目標(biāo)器,也可從目標(biāo)器到啟動(dòng)器,因?yàn)榱髁靠稍谳斎攵丝诨蜉敵龆丝谶M(jìn)行監(jiān)視。在此的描述并不是窮盡的,也不是將本發(fā)明限定為在此公開的準(zhǔn)確形式。根據(jù)上面的示教,可進(jìn)行許多修改和改變。選擇所描述的實(shí)施例是為了最佳闡釋本發(fā)明的原理及其實(shí)際應(yīng)用從而使本領(lǐng)域的其它技術(shù)人員能在不同的實(shí)施情況下使用適于預(yù)期特定用途的各種修改最好地使用本發(fā)明。本發(fā)明的范圍由所附權(quán)利要求確定。
權(quán)利要求
1.用在保存和存取數(shù)據(jù)的系統(tǒng)中的方法,系統(tǒng)包括至少一啟動(dòng)器、至少兩目標(biāo)器、及至少一具有端口的開關(guān),所述方法包括確定在物理端口處是否出現(xiàn)擁塞;及根據(jù)每一目標(biāo)器的最小和最大帶寬設(shè)置控制至少兩目標(biāo)器中的每一個(gè)的帶寬使用。
2.根據(jù)權(quán)利要求1的方法,其中控制步驟包括拒絕從啟動(dòng)器到兩目標(biāo)器中的至少一個(gè)的附加指令。
3.根據(jù)權(quán)利要求1的方法,其中控制步驟包括監(jiān)視從兩目標(biāo)器中的每一個(gè)傳給端口的流量,當(dāng)兩目標(biāo)器中的任一個(gè)超過(guò)最大帶寬時(shí),記錄數(shù)據(jù)量。
4.根據(jù)權(quán)利要求3的方法,其中監(jiān)視步驟包括增加數(shù)據(jù)量,所增加的量為過(guò)量帶寬期間讀的數(shù)據(jù)量。
5.根據(jù)權(quán)利要求3的方法,其中監(jiān)視步驟包括當(dāng)接收到給目標(biāo)器的指令時(shí)減少數(shù)據(jù)量,所減少的量為所記錄的被拒絕的多余數(shù)據(jù)量。
6.根據(jù)權(quán)利要求1的方法,其中確定步驟包括監(jiān)視物理端口擁塞情況并在物理端口被擁塞時(shí)實(shí)施所述控制步驟。
7.根據(jù)權(quán)利要求1的方法,其中所述控制步驟包括監(jiān)視來(lái)自所述兩目標(biāo)器中的每一個(gè)的帶寬以確定帶寬是否超過(guò)目標(biāo)器的最大允許帶寬。
8.根據(jù)權(quán)利要求1的方法,其中所述控制步驟包括當(dāng)從目標(biāo)器到端口的流量超過(guò)目標(biāo)器的最大允許帶寬時(shí)向每一目標(biāo)器賦予加權(quán)并拒絕給所述兩目標(biāo)器之一的指令。
9.根據(jù)權(quán)利要求8的方法,其中賦予加權(quán)步驟包括在與目標(biāo)器相關(guān)的記錄中記錄帶寬超額量。
10.根據(jù)權(quán)利要求9的方法,其中記錄帶寬超額量的步驟包括記錄字節(jié)數(shù)。
11.根據(jù)權(quán)利要求9的方法,其中拒絕附加指令的步驟包括確定指令所請(qǐng)求的字節(jié)數(shù),并將所記錄的帶寬超額量減少所請(qǐng)求的字節(jié)數(shù)。
12.根據(jù)權(quán)利要求9的方法,其中賦予加權(quán)的步驟包括根據(jù)雙速率標(biāo)記標(biāo)識(shí)從目標(biāo)器到端口的流量。
13.根據(jù)權(quán)利要求12的方法,其中賦予加權(quán)的步驟包括使用雙速率三色標(biāo)識(shí)系統(tǒng)標(biāo)識(shí)流量。
14.根據(jù)權(quán)利要求13的方法,其中加權(quán)步驟包括將所有紅色標(biāo)記的流量記錄為帶寬超額。
15.根據(jù)權(quán)利要求9的方法,其中加權(quán)步驟包括如果最大帶寬的歸一化值的比較超出隨機(jī)數(shù),則將所有黃色流量記錄為帶寬超額。
16.根據(jù)權(quán)利要求15的方法,其中所記錄的超額是黃色流量幀的幀大小。
17.根據(jù)權(quán)利要求15的方法,其中到所述至少兩目標(biāo)器中具有較大帶寬超額的那一目標(biāo)器的指令被拒絕,直到其超出量小于所述至少兩目標(biāo)器中的另一目標(biāo)器的超出量為止。
18.用在保存和存取數(shù)據(jù)的系統(tǒng)中的方法,系統(tǒng)包括至少一啟動(dòng)器、至少兩目標(biāo)器、及至少一具有端口的開關(guān),所述方法包括監(jiān)視從所述至少兩目標(biāo)器中的每一個(gè)到端口的流量帶寬;根據(jù)每一目標(biāo)器的最小和最大帶寬設(shè)置確定哪一目標(biāo)器可以使用端口資源;及通過(guò)根據(jù)確定步驟拒絕給目標(biāo)器的附加指令而控制對(duì)所述目標(biāo)器的存取。
19.根據(jù)權(quán)利要求18的方法,其中所述確定步驟包括根據(jù)所述至少兩目標(biāo)器中的每一個(gè)的流量加權(quán)而賦予每一目標(biāo)器優(yōu)先級(jí)。
20.根據(jù)權(quán)利要求19的方法,其中賦予加權(quán)的步驟包括使用雙速率三色標(biāo)記器標(biāo)識(shí)流量。
21.根據(jù)權(quán)利要求20的方法,其中賦予加權(quán)的步驟包括將所有紅色標(biāo)記的流量記錄為帶寬超額。
22.根據(jù)權(quán)利要求20的方法,其中賦予加權(quán)的步驟包括,如果最大帶寬的歸一化值的比較超出隨機(jī)數(shù),則將所有黃色流量記錄為帶寬超額。
23.根據(jù)權(quán)利要求20的方法,其中所記錄的超額是幀大小。
24.根據(jù)權(quán)利要求20的方法,其中到所述至少兩目標(biāo)器中具有較大帶寬超額的那一目標(biāo)器的指令被拒絕,直到其超出量小于所述至少兩目標(biāo)器中的另一目標(biāo)器的超出量為止。
25.根據(jù)權(quán)利要求18的方法,其中每一目標(biāo)器包括與至少一相應(yīng)物理邏輯單元通信的至少一虛擬目標(biāo)器。
26.根據(jù)權(quán)利要求25的方法,其中監(jiān)視步驟包括監(jiān)視從每一所述物理邏輯單元通過(guò)相應(yīng)虛擬邏輯單元的流量。
27.根據(jù)權(quán)利要求26的方法,其中控制步驟包括拒絕從啟動(dòng)器到虛擬目標(biāo)器的指令。
28.用在保存和存取數(shù)據(jù)的系統(tǒng)中的方法,系統(tǒng)包括至少一啟動(dòng)器、至少兩虛擬邏輯單元、至少兩物理邏輯單元、及至少一具有端口的開關(guān),端口通過(guò)開關(guān)存取每一物理邏輯單元,所述方法包括監(jiān)視所述至少兩虛擬目標(biāo)器中的每一個(gè)因來(lái)自相關(guān)物理邏輯單元的流量而耗用的帶寬;根據(jù)從虛擬目標(biāo)器返回的流量的加權(quán)確定哪一目標(biāo)器可以使用端口資源;及通過(guò)根據(jù)目標(biāo)器的加權(quán)拒絕給目標(biāo)器的附加指令而限制對(duì)所述虛擬目標(biāo)器的存取。
29.根據(jù)權(quán)利要求28的方法,其中確定步驟包括記錄每一虛擬目標(biāo)器的爭(zhēng)用計(jì)數(shù)。
30.根據(jù)權(quán)利要求29的方法,其中產(chǎn)生爭(zhēng)用計(jì)數(shù)的步驟包括使用雙速率三色標(biāo)記器標(biāo)識(shí)從物理目標(biāo)器到虛擬目標(biāo)器的流量。
31.根據(jù)權(quán)利要求30的方法,其中產(chǎn)生爭(zhēng)用計(jì)數(shù)的步驟包括將所述雙速率之一設(shè)定為虛擬目標(biāo)器的最大帶寬,所述雙速率中的另一個(gè)設(shè)定為虛擬目標(biāo)器的最小帶寬。
32.根據(jù)權(quán)利要求30的方法,其中如果虛擬目標(biāo)器的最大帶寬的歸一化值大于為與歸一化值比較而產(chǎn)生的隨機(jī)數(shù),則標(biāo)記為黃色的流量被記錄為爭(zhēng)用計(jì)數(shù)。
33.根據(jù)權(quán)利要求32的方法,其中所記錄的爭(zhēng)用計(jì)數(shù)的數(shù)量為幀大小。
34.根據(jù)權(quán)利要求30的方法,其中標(biāo)記為綠色的流量被記錄為爭(zhēng)用計(jì)數(shù)的減少。
35.根據(jù)權(quán)利要求30的方法,其中所述拒絕給目標(biāo)器的附加指令的步驟是基于所記錄的每一虛擬目標(biāo)器的爭(zhēng)用計(jì)數(shù)的比較。
36.根據(jù)權(quán)利要求30的方法,其中虛擬目標(biāo)器的具有爭(zhēng)用計(jì)數(shù)超額量的指令被拒絕。
37.根據(jù)權(quán)利要求36的方法,其中爭(zhēng)用計(jì)數(shù)超額量是存取端口的所有虛擬目標(biāo)器的爭(zhēng)用計(jì)數(shù)的最小數(shù)量。
38.根據(jù)權(quán)利要求37的方法,其中超額量被減少虛擬目標(biāo)器的被拒絕指令中所請(qǐng)求的字節(jié)數(shù)。
39.具有至少一物理端口的存儲(chǔ)開關(guān),物理端口提供對(duì)至少兩目標(biāo)器的存取,所述存儲(chǔ)開關(guān)包括與端口聯(lián)系的負(fù)載平衡電路,包括保存每一目標(biāo)器的記錄的存儲(chǔ)器,記錄包括目標(biāo)器的最小和最大帶寬分配;及與端口聯(lián)系的處理電路,包括所述至少兩目標(biāo)器中的每一個(gè)的帶寬監(jiān)視器,處理電路維護(hù)每一目標(biāo)器使用的帶寬的加權(quán)記錄,如果物理端口被擁塞,其根據(jù)記錄拒絕給至少一目標(biāo)器的附加指令。
40.根據(jù)權(quán)利要求39的開關(guān),其中處理電路包括爭(zhēng)用計(jì)數(shù)發(fā)生器和雙速率三色計(jì)量器和標(biāo)記器。
41.根據(jù)權(quán)利要求40的開關(guān),其中爭(zhēng)用計(jì)數(shù)發(fā)生器響應(yīng)于雙速率三色標(biāo)記器標(biāo)識(shí)的流量顏色增加兩目標(biāo)器之一的爭(zhēng)用計(jì)數(shù)記錄。
42.根據(jù)權(quán)利要求40的開關(guān),其中如果標(biāo)識(shí)的顏色為黃色且最大帶寬分配的歸一化值大于與其比較的隨機(jī)數(shù),則增加爭(zhēng)用計(jì)數(shù)。
43.根據(jù)權(quán)利要求40的開關(guān),其中如果標(biāo)記的顏色為黃色且最大帶寬分配的歸一化值小于與其比較的隨機(jī)數(shù),則減少爭(zhēng)用計(jì)數(shù)。
44.根據(jù)權(quán)利要求40的開關(guān),其中如果標(biāo)識(shí)的顏色為綠色,則減少爭(zhēng)用計(jì)數(shù)。
45.根據(jù)權(quán)利要求40的開關(guān),其中如果標(biāo)識(shí)的顏色為紅色,則增加爭(zhēng)用計(jì)數(shù)。
46.根據(jù)權(quán)利要求39的開關(guān),其中每一目標(biāo)器包括與至少一相應(yīng)物理邏輯單元通信的至少一虛擬目標(biāo)器。
47.根據(jù)權(quán)利要求46的開關(guān),其中處理電路包括指令拒絕器,其響應(yīng)于加權(quán)記錄拒絕從啟動(dòng)器到虛擬目標(biāo)器的指令。
48.存儲(chǔ)網(wǎng)絡(luò),包括啟動(dòng)器;至少兩目標(biāo)器;包括至少一連到啟動(dòng)器的端口的開關(guān),開關(guān)提供對(duì)目標(biāo)器的存取,開關(guān)包括至少一與端口相關(guān)聯(lián)的處理器,其具有包括所述至少兩目標(biāo)器中的每一個(gè)的帶寬分配的記錄,及用于指示處理器進(jìn)行下述工作的代碼監(jiān)視所述至少兩目標(biāo)器中的每一個(gè)耗用的帶寬;根據(jù)從目標(biāo)器返回到端口的流量的加權(quán)確定哪一目標(biāo)器可以使用端口資源;及通過(guò)根據(jù)目標(biāo)器的加權(quán)拒絕給目標(biāo)器的附加指令而控制對(duì)所述目標(biāo)器的存取。
49.根據(jù)權(quán)利要求48的網(wǎng)絡(luò),其中所述指示處理器監(jiān)視帶寬的代碼包括當(dāng)從目標(biāo)器到端口的流量超過(guò)目標(biāo)器的最大允許帶寬時(shí)向每一目標(biāo)器賦予加權(quán)的代碼。
50.根據(jù)權(quán)利要求49的網(wǎng)絡(luò),其中所述指示處理器賦予加權(quán)的代碼包括基于雙速率標(biāo)記標(biāo)識(shí)從目標(biāo)器到端口的流量的代碼。
51.根據(jù)權(quán)利要求50的網(wǎng)絡(luò),其中所述指示處理器賦予加權(quán)的代碼包括指示處理器使用雙速率三色標(biāo)識(shí)系統(tǒng)標(biāo)識(shí)流量的代碼。
52.根據(jù)權(quán)利要求50的網(wǎng)絡(luò),其中所述指示處理器賦予加權(quán)的代碼包括指示處理器將所有紅色標(biāo)記的流量記錄為帶寬超額的代碼。
53.根據(jù)權(quán)利要求50的網(wǎng)絡(luò),其中所述指示處理器賦予加權(quán)的代碼包括,如果最大帶寬的歸一化值的比較超過(guò)隨機(jī)數(shù),則指示處理器將所有黃色流量標(biāo)識(shí)為帶寬超額的代碼。
54.根據(jù)權(quán)利要求50的網(wǎng)絡(luò),其中所述指示處理器賦予加權(quán)的代碼包括指示處理器將所記錄的超額量記錄為幀大小的代碼。
55.根據(jù)權(quán)利要求50的網(wǎng)絡(luò),其中所述指示處理器控制存取的代碼包括指示處理器拒絕給所述至少兩目標(biāo)器中具有較大帶寬超額的那一目標(biāo)器的指令的代碼,直到其超出量小于所述至少兩目標(biāo)器中的另一目標(biāo)器的超出量為止。
56.用于監(jiān)視存儲(chǔ)開關(guān)中的帶寬的方法,開關(guān)包括至少一物理端口,其經(jīng)物理端口連接至少一目標(biāo)器和至少一啟動(dòng)器,該方法包括確定物理端口上是否出現(xiàn)擁塞;根據(jù)每一目標(biāo)器的最小和最大帶寬設(shè)置對(duì)啟動(dòng)器和目標(biāo)器之間的帶寬使用賦予加權(quán)。
57.根據(jù)權(quán)利要求56的方法,其中賦予加權(quán)的步驟包括使用雙速率三色標(biāo)記器監(jiān)視來(lái)自目標(biāo)器的帶寬的步驟。
58.根據(jù)權(quán)利要求57的方法,其中賦予加權(quán)的步驟包括將所有紅色標(biāo)記的流量記錄為帶寬超額。
59.根據(jù)權(quán)利要求57的方法,其中賦予加權(quán)的步驟包括,如果最大帶寬的歸一化值的比較超出隨機(jī)數(shù),則將所有黃色流量記錄為帶寬超額。
60.根據(jù)權(quán)利要求59的方法,其中所記錄的超額是幀大小。
61.根據(jù)權(quán)利要求59的方法,其中給至少兩目標(biāo)器中具有較大帶寬超額的那一目標(biāo)器的指令被拒絕,直到其超出量小于所述至少兩目標(biāo)器中的另一目標(biāo)器的超出量為止。
62.根據(jù)權(quán)利要求56的方法,其中賦予加權(quán)的步驟包括確定所有目標(biāo)器的最小超出量并增加最小超出量作為超額量。
63.根據(jù)權(quán)利要求56的方法,其中帶寬使用是讀出指令的結(jié)果。
64.根據(jù)權(quán)利要求56的方法,其中帶寬使用是寫指令的結(jié)果。
全文摘要
包括處理器的開關(guān)和監(jiān)視存儲(chǔ)開關(guān)中的帶寬的方法。開關(guān)包括至少一物理端口,其經(jīng)物理端口連接至少一目標(biāo)器和至少一啟動(dòng)器。監(jiān)視方法可包括步驟確定物理端口上是否出現(xiàn)擁塞,根據(jù)每一目標(biāo)器的最小和最大帶寬設(shè)置對(duì)啟動(dòng)器和目標(biāo)器之間的帶寬使用賦予加權(quán)。開關(guān)還包括根據(jù)每一目標(biāo)器的最小和最大帶寬設(shè)置控制所述至少兩個(gè)目標(biāo)器中的每一個(gè)的帶寬使用的步驟。
文檔編號(hào)H04L12/56GK101019355SQ200580013832
公開日2007年8月15日 申請(qǐng)日期2005年4月26日 優(yōu)先權(quán)日2004年4月30日
發(fā)明者張超, 羅伯特·托爾·弗雷 申請(qǐng)人:伊姆西公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1