專利名稱:在單個(gè)系統(tǒng)中支持多個(gè)本機(jī)網(wǎng)絡(luò)協(xié)議實(shí)現(xiàn)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及用于異構(gòu)環(huán)境的分布式對象存儲系統(tǒng)。具體地說,本發(fā)明涉及一種使一些具有不同網(wǎng)絡(luò)協(xié)議的用戶能以本機(jī)方式(natively)與單個(gè)系統(tǒng)通信以得到服務(wù)的系統(tǒng)和方法。
背景技術(shù):
一個(gè)諸如有許多雇員的公司之類的大型企業(yè)通常運(yùn)行許多聯(lián)網(wǎng)的計(jì)算機(jī)。這些計(jì)算機(jī)需要以允許企業(yè)內(nèi)其他計(jì)算機(jī)訪問的方式存儲它們的數(shù)據(jù)。這通常是通過用一個(gè)文件系統(tǒng)和文件服務(wù)器將共享文件存儲在一個(gè)公共的存儲系統(tǒng)內(nèi)來實(shí)現(xiàn)的。文件系統(tǒng)客戶機(jī)用一個(gè)定義好的網(wǎng)絡(luò)文件協(xié)議與文件服務(wù)器通信。在計(jì)算機(jī)建立文件時(shí),就通過文件服務(wù)器將它寫到盤上。在同一個(gè)或另一個(gè)計(jì)算機(jī)讀取這個(gè)文件時(shí),數(shù)據(jù)從盤上讀出,通過文件服務(wù)器,并隨后發(fā)給請求訪問這個(gè)文件的計(jì)算機(jī)。
在許多情況下,訪問文件的計(jì)算機(jī)是多種多樣的,可以運(yùn)行許多不同的操作系統(tǒng),諸如AIX、Microsoft Windows、Solaris、HP-UX和Linux。它們可以用不同的協(xié)議來訪問文件服務(wù)器,這取決于它們所運(yùn)行的操作系統(tǒng)。例如,運(yùn)行Microsoft Windows的系統(tǒng)傾向于用公用因特網(wǎng)文件系統(tǒng)(CIFS)協(xié)議,而運(yùn)行Unix變體的那些則傾向于用網(wǎng)絡(luò)文件系統(tǒng)(NFS)協(xié)議。然而它們都需要訪問同樣的文件。即使它們要訪問的是不相交的文件集,如果能共享同一個(gè)文件服務(wù)器也是方便得多。
有一些嘗試要建立一個(gè)可以用各種網(wǎng)絡(luò)協(xié)議交流的文件服務(wù)器。它們被稱為網(wǎng)絡(luò)附加存儲(Network Attached StorageNAS)系統(tǒng)。然而,每個(gè)NAS系統(tǒng)是建立在某個(gè)最多具有一個(gè)本機(jī)協(xié)議(nativeprotocol)的操作系統(tǒng)上的。Microsoft Windows上的CIFS服務(wù)器和Linux(或任何其他Unix變體)上的NFS服務(wù)器被認(rèn)為是相應(yīng)協(xié)議的“本機(jī)”實(shí)現(xiàn)。
因此,NAS系統(tǒng)必須通過仿真來處理其他協(xié)議。例如,仿真的CIFS和仿真的NFS已經(jīng)由Network Appliance網(wǎng)絡(luò)附加存儲產(chǎn)品實(shí)現(xiàn)。本機(jī)的CIFS和仿真的NFS已經(jīng)由IBM的網(wǎng)絡(luò)附加存儲NAS 200產(chǎn)品實(shí)現(xiàn)。仿真的CIFS和本機(jī)的NFS已經(jīng)由Veritas ServPointNAS系統(tǒng)實(shí)現(xiàn)。
通常,仿真的協(xié)議在功能和/或性能上不完全與本機(jī)實(shí)現(xiàn)兼容,從而導(dǎo)致運(yùn)行和通信上的困難。此外,需要花費(fèi)一定時(shí)間和精力來開發(fā)仿真器,因此在引進(jìn)新協(xié)議或現(xiàn)有協(xié)議的新版本時(shí),NAS系統(tǒng)可能至少在一段時(shí)間內(nèi)不支持它。
應(yīng)付這些問題的一種方法曾經(jīng)是通過使用一個(gè)異構(gòu)文件系統(tǒng)(heterogeneous file systemHFS)。這樣一個(gè)系統(tǒng)允許在一些異構(gòu)系統(tǒng)之間進(jìn)行文件共享,使得所有文件都可以從它的文件系統(tǒng)客戶機(jī)(HFS客戶機(jī))訪問。這些HFS客戶機(jī)可以運(yùn)行不同的操作系統(tǒng),各有各的本機(jī)網(wǎng)絡(luò)協(xié)議。因此,這些客戶機(jī)對于它們各自的協(xié)議起著本機(jī)服務(wù)器的作用。
然而,這些HFS客戶機(jī)是具有不同網(wǎng)絡(luò)IP地址的獨(dú)立系統(tǒng)。因此,一個(gè)用戶就必須知道他的計(jì)算機(jī)所用的協(xié)議,每個(gè)HFS客戶機(jī)支持的協(xié)議,并特別將請求定向到相應(yīng)的HFS客戶機(jī)。更為不方便的是,關(guān)于HFS客戶機(jī)的信息可能隨著HFS客戶機(jī)成為不可用或被升級和替換而是動態(tài)變化的。此外,由于在通過HFS客戶機(jī)再到HFS服務(wù)器的過程中有額外的跳躍(hop),性能可能較差。
此外,在單個(gè)文件服務(wù)器有太多的數(shù)據(jù)需處理時(shí),需要用多個(gè)服務(wù)器,而用戶必須知道哪個(gè)文件服務(wù)器具有他們所需要的數(shù)據(jù)。在使用多個(gè)服務(wù)器時(shí),沒有一種簡便的方式來平衡這些服務(wù)器的負(fù)荷。
因此需要的是一種對用戶表現(xiàn)為單個(gè)實(shí)體(也就是,它呈現(xiàn)單個(gè)系統(tǒng)映象)的系統(tǒng),它可以用有效和本機(jī)的方式處理所有他們的業(yè)務(wù)請求(即,文件),無論他們用的是什么協(xié)議和他們的文件在哪里。對這樣一種系統(tǒng)的需要在此以前一直沒有得到滿足。
發(fā)明內(nèi)容
本發(fā)明滿足了這個(gè)需要,提供了一種方法、計(jì)算機(jī)程序產(chǎn)品和系統(tǒng)。
本發(fā)明最好用新近開發(fā)的Storage TankTM系統(tǒng)作為異構(gòu)文件系統(tǒng)(HFS),這種新近開發(fā)的系統(tǒng)可參見“IBM Storage TankTMADistributed Storage system”2002年1月24日,網(wǎng)址為<httc//www.almaden.IBM.com/cs/storagesystems/stortank/ExtStorageTankpaper 01_24_02.pdf>。
本發(fā)明的系統(tǒng)最好包括一個(gè)HFS(特別是Storage TankTM)和一個(gè)或多個(gè)智能路由器。各HFS客戶機(jī)對于它們各自的網(wǎng)絡(luò)協(xié)議起著本機(jī)服務(wù)器的作用。例如Microsoft Windows HFS客戶機(jī)和LinuxHFS客戶機(jī)可以分別起CIFS服務(wù)器和NFS服務(wù)器的作用。然而,Microsoft Windows和Linux的HFS客戶機(jī)是具有不同網(wǎng)絡(luò)IP地址的獨(dú)立系統(tǒng)。因此,如果沒有智能路由器,用戶就必須知道他的計(jì)算機(jī)用的協(xié)議、每個(gè)HFS客戶機(jī)支持的協(xié)議,并特別將請求定向到相應(yīng)的HFS客戶機(jī)。智能路由器自動將用戶定向到正確的HFS客戶機(jī),而不需要用戶方進(jìn)行指令或交互。智能路由器將用戶定向到可能提供良好性能的適當(dāng)?shù)腍FS客戶機(jī)。
優(yōu)選的是,智能路由器對用戶表現(xiàn)為具有單個(gè)網(wǎng)絡(luò)IP地址的單個(gè)實(shí)體。在智能路由器接收到請求時(shí),它檢查諸如是公用因特網(wǎng)文件系統(tǒng)(CIFS)還是網(wǎng)絡(luò)文件系統(tǒng)(NFS)之類的協(xié)議類型,將請求路由給適當(dāng)?shù)腍FS客戶機(jī)中的一個(gè)HFS客戶機(jī)。智能路由器將CIFS請求轉(zhuǎn)發(fā)給CIFS服務(wù)器并將NFS請求定向到NFS服務(wù)器。
如前所述,這種方法可能會有性能問題,因?yàn)樵诘竭_(dá)數(shù)據(jù)的路徑中有一個(gè)額外的服務(wù)器,增加了響應(yīng)時(shí)間。因此,本發(fā)明最好用例如Storage TankTM系統(tǒng)(在這里稱為ST或存儲槽系統(tǒng))作為HFS。在ST內(nèi),用一個(gè)存儲網(wǎng)絡(luò)將HFS客戶機(jī)(ST客戶機(jī))直接接到存儲盤上。還通過另一個(gè)網(wǎng)絡(luò)將它們接到一組元數(shù)據(jù)服務(wù)器(ST服務(wù)器)上。
ST協(xié)議是一個(gè)在ST客戶機(jī)與ST服務(wù)器之間通信所用的優(yōu)選協(xié)議。這個(gè)協(xié)議實(shí)現(xiàn)鎖定和數(shù)據(jù)一致性模型,允許將存儲槽分布式存儲系統(tǒng)看作為單個(gè)文件系統(tǒng)并使其能夠如單個(gè)文件系統(tǒng)那樣進(jìn)行操作。ST客戶機(jī)訪問ST服務(wù)器只是要讀元數(shù)據(jù)和得知所關(guān)心的數(shù)據(jù)的位置。有了元數(shù)據(jù)信息,ST客戶機(jī)就可直接訪問數(shù)據(jù)。從ST客戶機(jī)與數(shù)據(jù)之間的路徑中除去服務(wù)器可以實(shí)現(xiàn)快得多并且高效得多的數(shù)據(jù)傳送連接。
在一個(gè)優(yōu)選實(shí)施例中,這種系統(tǒng)用一組智能路由器與一個(gè)異構(gòu)文件共享環(huán)境來是支持多個(gè)網(wǎng)絡(luò)產(chǎn)品的單個(gè)系統(tǒng)映象體系結(jié)構(gòu)。這些智能路由器一起對用戶呈現(xiàn)單個(gè)網(wǎng)絡(luò)IP地址,并執(zhí)行基于協(xié)議的路由。智能路由器允許系統(tǒng)體系結(jié)構(gòu)具有對于每個(gè)服務(wù)器類型的“本機(jī)”協(xié)議實(shí)現(xiàn),而不是一些協(xié)議的仿真形式。智能路由器促成了一種允許多個(gè)異構(gòu)用戶共享單個(gè)文件名空間內(nèi)的所有文件的系統(tǒng)體系結(jié)構(gòu)。
ST客戶機(jī)將所有的元數(shù)據(jù)操作定向到ST服務(wù)器,還將所有的數(shù)據(jù)操作定向到附著在一個(gè)高速網(wǎng)絡(luò)上的存儲設(shè)備。此外,ST客戶機(jī)使對用戶的操作系統(tǒng)(和在這系統(tǒng)上運(yùn)行的任何應(yīng)用程序)可見的元數(shù)據(jù)看來與從本機(jī)的本地附著文件系統(tǒng)中讀出的元數(shù)據(jù)相同。
在消息或請求作為輸入到達(dá)系統(tǒng)時(shí),智能路由器確定哪個(gè)協(xié)議與用戶匹配,并將這個(gè)消息路由給適當(dāng)?shù)腟T客戶機(jī)。在ST客戶機(jī)檢索數(shù)據(jù)時(shí),數(shù)據(jù)不一定要通過智能路由器返回給用戶。然而,在其他實(shí)施例中,如果需要的話,檢索得到的數(shù)據(jù)可以通過智能路由器進(jìn)行路由。
在智能路由器的這個(gè)實(shí)現(xiàn)中,一個(gè)服務(wù)器工具(server appliance)只收聽所選的端口,例如CIFS的端口139,NFS的端口2049。在請求到達(dá)其中一個(gè)端口時(shí),智能路由器用一個(gè)諸如媒體訪問(MAC)地址和協(xié)議類型之類的源機(jī)器唯一標(biāo)識符確定消息目的地。這保證了相同的ST客戶機(jī)處理來自相同源機(jī)器的所有請求,從而不需要智能路由器維護(hù)協(xié)議的狀態(tài)信息。
智能路由器不改變消息內(nèi)容,因此ST客戶機(jī)不知道智能路由器的存在。因此,任何返回消息不需要通過智能路由器。為web服務(wù)器負(fù)載平衡開發(fā)的技術(shù)可用來使一組相關(guān)的智能路由器呈現(xiàn)為具有相同主機(jī)名和/或IP地址的單個(gè)系統(tǒng)。
從以下說明、權(quán)利要求書和附圖可以清楚地看到本發(fā)明的各個(gè)特色功能和獲得這些特色功能的方式,其中所標(biāo)的數(shù)字在適當(dāng)時(shí)重復(fù)使用,以指出所標(biāo)項(xiàng)之間的對應(yīng)情況,在這些附圖中圖1為可以采用本發(fā)明的典型操作環(huán)境的示意圖;圖2為圖1的智能路由器的高層體系結(jié)構(gòu)的方框圖;以及圖3為例示圖1和2的智能路由器的操作方法的過程流程圖。
具體實(shí)施例方式
以下定義和說明提供了與本發(fā)明的技術(shù)領(lǐng)域有關(guān)的背景信息,這有利于理解本發(fā)明,但并不用來限制本發(fā)明的專利保護(hù)范圍容器(Container)全局名稱空間的子樹。它對一組存儲槽對象分組,用來執(zhí)行負(fù)載平衡和管理。
IP網(wǎng)絡(luò)(IP Network)因特網(wǎng)協(xié)議網(wǎng)絡(luò)。IP規(guī)定了也稱為數(shù)據(jù)報(bào)的分組的格式和尋址方案。大多數(shù)網(wǎng)絡(luò)將IP與一個(gè)建立目的地與信源之間的虛擬連接的稱為傳輸控制協(xié)議(TCP)的高層協(xié)議組合在一起。
元數(shù)據(jù)(Metadata)有關(guān)數(shù)據(jù)的數(shù)據(jù),例如指出一個(gè)WWW文檔的主題的標(biāo)簽。元數(shù)據(jù)描述例如一個(gè)具體的數(shù)據(jù)集怎樣、什么時(shí)候和被誰收集,數(shù)據(jù)是怎樣格式化的,以及數(shù)據(jù)放置在哪里。
本機(jī)(Native)指原始形態(tài)。例如,許多應(yīng)用都可以處理各種格式的文件,但一個(gè)應(yīng)用的本機(jī)文件格式是它內(nèi)部使用的格式。對于所有其他格式,這個(gè)應(yīng)用必須首先將文件變換到它的本機(jī)格式。
協(xié)議(Protocol)所達(dá)成的在兩個(gè)設(shè)備之間傳輸數(shù)據(jù)的格式。協(xié)議確定以下各項(xiàng)需使用的糾錯(cuò)類型;數(shù)據(jù)壓縮方法(如果有的話);發(fā)送設(shè)備將怎樣指出它已經(jīng)結(jié)束發(fā)送消息;以及接收設(shè)備將怎樣指出它已經(jīng)接收到消息。
服務(wù)器(Server)網(wǎng)絡(luò)上管理網(wǎng)絡(luò)資源的計(jì)算機(jī)或設(shè)備。
存儲池(Storage Pool)由一個(gè)或多個(gè)卷組成的集合。它提供對這些卷的邏輯分組,以將空間分配給各容器。一個(gè)容器內(nèi)的文件可以屬于不同的存儲池。多個(gè)容器在單個(gè)存儲池內(nèi)可以擁有存儲。
卷(Volume)導(dǎo)出的存儲設(shè)備,可以是一個(gè)物理設(shè)備或邏輯設(shè)備。卷被添加到存儲池,并且必須是對所有需要訪問卷上的數(shù)據(jù)的服務(wù)器和客戶機(jī)可訪問的。
圖1例示了利用智能路由器10的存儲槽系統(tǒng)100的典型體系結(jié)構(gòu)。無論是單獨(dú)工作或作為一個(gè)組工作,智能路由器10在網(wǎng)絡(luò)20上對用戶15呈現(xiàn)為單個(gè)網(wǎng)絡(luò)IP地址,并執(zhí)行基于協(xié)議的路由,以實(shí)現(xiàn)支持多個(gè)網(wǎng)絡(luò)協(xié)議的單個(gè)系統(tǒng)體系結(jié)構(gòu)。
智能路由器10包括一個(gè)軟件編程代碼或計(jì)算機(jī)程序產(chǎn)品,通常植入或安裝在一個(gè)主機(jī)服務(wù)器上?;蛘撸部梢詫⒅悄苈酚善?0保存在一個(gè)諸如軟盤、CD、硬盤驅(qū)動器之類的適當(dāng)存儲媒體上。雖然將結(jié)合WWW對系統(tǒng)10進(jìn)行說明,但智能路由器10可以與可能已從WWW和/或其他來源得到的項(xiàng)的獨(dú)立數(shù)據(jù)庫一起使用。
智能路由器10接到一個(gè)由存儲槽客戶機(jī)30、35、40、45、50組成的塊25上。在存儲槽客戶機(jī)塊25內(nèi)的若干不同的存儲槽客戶機(jī)都對智能路由器10可用。每個(gè)存儲槽客戶機(jī)可以使用不同的操作系統(tǒng)或協(xié)議。智能路由器10允許對于每個(gè)服務(wù)器類型的具有“本機(jī)”協(xié)議實(shí)現(xiàn)的系統(tǒng)體系結(jié)構(gòu),而不是一些協(xié)議的仿真形式。作為一個(gè)例子,存儲槽客戶機(jī)30使用AIX操作系統(tǒng),存儲槽客戶機(jī)35使用Solaris操作系統(tǒng),存儲槽客戶機(jī)40使用HP/UX操作系統(tǒng),存儲槽客戶機(jī)45使用Linux操作系統(tǒng),而存儲槽客戶機(jī)50使用Microsoft Windows2000操作系統(tǒng)。
所示的操作系統(tǒng)的類型指出智能路由器10可以適應(yīng)的許多種類的操作系統(tǒng)。存儲槽客戶機(jī)30、35、40、45、50各運(yùn)行一個(gè)在Unix存儲槽客戶機(jī)上虛擬文件系統(tǒng)接口(VFS)處實(shí)現(xiàn)、并作為一個(gè)在Microsoft Windows存儲槽客戶機(jī)上可安裝的文件系統(tǒng)(IFS)的存儲槽客戶機(jī)軟件。因此,存儲槽客戶機(jī)30、35、40、45、50示為VFS或IFS。
存儲槽客戶機(jī)塊25通過存儲網(wǎng)絡(luò)60共享多個(gè)存儲池55內(nèi)的數(shù)據(jù)。存儲槽客戶機(jī)塊25還接到元數(shù)據(jù)服務(wù)器65、70、75上。元數(shù)據(jù)服務(wù)器65、70、75群集在一起,形成一個(gè)元數(shù)據(jù)服務(wù)器群80。存儲在多個(gè)存儲池55內(nèi)的數(shù)據(jù)的元數(shù)據(jù)存儲在元數(shù)據(jù)存儲裝置85內(nèi)。存儲計(jì)算機(jī)數(shù)據(jù)的存儲系統(tǒng)和設(shè)備可以與對存儲槽元數(shù)據(jù)進(jìn)行存儲的存儲系統(tǒng)或設(shè)備分開。
圖1的存儲槽系統(tǒng)100用了兩個(gè)邏輯網(wǎng)絡(luò),控制網(wǎng)絡(luò)90和存儲網(wǎng)絡(luò)60。存儲槽客戶機(jī)25將所有的元數(shù)據(jù)操作通過控制網(wǎng)絡(luò)90定向到存儲槽服務(wù)器80。存儲槽客戶機(jī)30、35、40、45、50使對用戶15的操作系統(tǒng)可見的元數(shù)據(jù)呈現(xiàn)為與從本機(jī)的本地附著文件系統(tǒng)讀出的元數(shù)據(jù)相同??刂凭W(wǎng)絡(luò)90傳送的只是消息和元數(shù)據(jù)。在控制網(wǎng)絡(luò)90上傳送的數(shù)據(jù)的量很小。
存儲槽客戶機(jī)塊25和元數(shù)據(jù)服務(wù)器80、多個(gè)存儲池55、元數(shù)據(jù)存儲裝置85都接到高速存儲網(wǎng)絡(luò)60上。存儲網(wǎng)絡(luò)60用于所有的數(shù)據(jù)傳送。這從數(shù)據(jù)通路中除去了存儲槽服務(wù)器80,從而減小了性能開銷,消除了可能的數(shù)據(jù)傳送瓶頸。
存儲槽系統(tǒng)100支持用于其文件數(shù)據(jù)的多個(gè)存儲池55和用于元數(shù)據(jù)存儲裝置85的多個(gè)存儲池。與大多數(shù)文件系統(tǒng)不同,存儲槽系統(tǒng)100分開存儲元數(shù)據(jù)和數(shù)據(jù)。包括諸如文件名、生成日期和訪問控制信息之類的標(biāo)準(zhǔn)文件元數(shù)據(jù)在內(nèi)的元數(shù)據(jù)還含有文件數(shù)據(jù)在盤上的位置(擴(kuò)展表)。
元數(shù)據(jù)保存在可與數(shù)據(jù)存儲裝置在相同存儲網(wǎng)絡(luò)上或在一個(gè)獨(dú)立存儲網(wǎng)絡(luò)上的高性能、高可用專用服務(wù)器存儲裝置內(nèi),并且可以被這個(gè)群內(nèi)所有存儲槽服務(wù)器訪問。元數(shù)據(jù)不是由存儲槽客戶機(jī)30、35、40、45、50直接訪問,而是由控制網(wǎng)絡(luò)90上的存儲槽協(xié)議進(jìn)行服務(wù)。
任何給定文件的數(shù)據(jù)塊存儲在一個(gè)存儲池內(nèi)的一些盤上。數(shù)據(jù)盤在存儲網(wǎng)絡(luò)60上配置成可由存儲槽客戶機(jī)30、35、40、45、50和存儲槽服務(wù)器80訪問。在許多情況下,存儲網(wǎng)絡(luò)60可以配置成具有一個(gè)供存儲槽數(shù)據(jù)盤、客戶機(jī)和服務(wù)器用的區(qū)域。如果需要,還可以建立若干個(gè)區(qū)域,這些區(qū)域只可由存儲槽服務(wù)器和存儲槽客戶機(jī)的子集排他性地訪問,以滿足用戶15的特殊安全性要求。
用戶15通過網(wǎng)絡(luò)20與智能路由器10通信。網(wǎng)絡(luò)20可以是因特網(wǎng)、局域網(wǎng)或任何其他網(wǎng)絡(luò)。
系統(tǒng)可以具有一個(gè)諸如服務(wù)器65的存儲槽服務(wù)器、諸如服務(wù)器80的一個(gè)服務(wù)器群或者服務(wù)器80的多個(gè)群。成群的存儲槽服務(wù)器提供負(fù)載平衡、故障轉(zhuǎn)移(fail-over)處理和改善的可縮放性。成群的存儲槽服務(wù)器80在它們自己的高速網(wǎng)絡(luò)或在用來與存儲槽客戶機(jī)30、35、40、45、50通信的控制網(wǎng)絡(luò)90上互連。
存儲槽協(xié)議是用來在存儲槽客戶機(jī)30、35、40、45、50與存儲槽服務(wù)器80之間進(jìn)行通信的協(xié)議。這個(gè)協(xié)議實(shí)現(xiàn)允許多個(gè)存儲池(或存儲槽分布式存儲系統(tǒng))55呈現(xiàn)為單個(gè)本地文件系統(tǒng)并如單個(gè)本地文件系統(tǒng)那樣進(jìn)行操作的鎖定和數(shù)據(jù)一致性模型。存儲槽協(xié)議的一個(gè)目的是提供分布式環(huán)境內(nèi)存儲槽客戶機(jī)塊25與存儲槽服務(wù)器80之間的很強(qiáng)的數(shù)據(jù)一致性。
智能路由器10通過一個(gè)網(wǎng)絡(luò),優(yōu)選的是控制網(wǎng)絡(luò)90,與各存儲槽客戶機(jī)30、35、40、45、50連接。在有消息或請求從用戶15到達(dá)時(shí),智能路由器10確定哪個(gè)協(xié)議與用戶15所用的協(xié)議匹配,并將這個(gè)消息或請求路由給存儲槽客戶機(jī)塊25內(nèi)的適當(dāng)存儲槽客戶機(jī)。例如,用戶15運(yùn)行Linux操作系統(tǒng),并希望訪問存儲在多個(gè)存儲池55內(nèi)的文件內(nèi)的數(shù)據(jù)。智能路由器10從用戶15的消息中識別出用戶正在使用NFS協(xié)議。因此,智能路由器10將這個(gè)文件訪問請求路由給一個(gè)支持NFS協(xié)議的存儲槽客戶機(jī)45。
圖2示出了智能路由器10的高層體系結(jié)構(gòu)。智能路由器10通常包括協(xié)議確定模塊205、客戶機(jī)能力表210和存儲槽客戶機(jī)選擇模塊215??梢杂性S多存儲槽客戶機(jī)對智能路由器10可用,如存儲槽客戶機(jī)1(225)、存儲槽客戶機(jī)2(230),直到存儲槽客戶機(jī)n(235)所示。
運(yùn)行中(參見圖3所示的方法300),在步驟305,用戶15向系統(tǒng)10發(fā)出請求或發(fā)送消息。在步驟310,協(xié)議確定模塊205接收到這個(gè)請求或消息,并確定它的協(xié)議。
智能路由器10只收聽所選的端口,例如,CIFS的端口139和NFS的端口2049。在一個(gè)請求到達(dá)其中一個(gè)端口時(shí),智能路由器10用一個(gè)諸如媒體訪問(MAC)地址和協(xié)議類型之類的源機(jī)器唯一標(biāo)識符確定消息目的地。這保證了相同的存儲槽客戶機(jī)225、230或235處理來自相同上級客戶機(jī)15的所有請求。協(xié)議類型可以例如是公用因特網(wǎng)文件系統(tǒng)(CIFS)或網(wǎng)絡(luò)文件系統(tǒng)(NFS)。在一個(gè)優(yōu)選實(shí)施例中,存儲槽客戶機(jī)225、230和235接到一個(gè)客戶機(jī)可用性和性能模塊236上,模塊236再接到存儲槽客戶機(jī)選擇模塊215上。存儲槽客戶機(jī)選擇模塊215輸出標(biāo)為237的所選的客戶機(jī)。
在步驟320,協(xié)議確定模塊205將這個(gè)消息的協(xié)議信息發(fā)送給存儲槽客戶機(jī)選擇模塊215。在步驟325,存儲槽客戶機(jī)選擇模塊215將消息協(xié)議與列在客戶機(jī)能力表210內(nèi)的協(xié)議相比較??蛻魴C(jī)能力表210描述了存儲槽系統(tǒng)100內(nèi)可用的存儲槽客戶機(jī)225、230、235以及這些存儲槽客戶機(jī)支持的本機(jī)協(xié)議。
如果在判定步驟330中,支持該消息協(xié)議的存儲槽客戶機(jī)225、230、235的數(shù)量為1,則智能路由器10在步驟335中將來自用戶15的消息傳送給這個(gè)存儲槽客戶機(jī)。例如,用戶15運(yùn)行的是Linux操作系統(tǒng)。在判定步驟330,智能路由器10只找到一個(gè)運(yùn)用Linux操作系統(tǒng)所用的NFS協(xié)議的“本機(jī)”實(shí)現(xiàn)的存儲槽客戶機(jī),例如為存儲槽客戶機(jī)2(230)。智能路由器10于是就將來自用戶15的消息路由給存儲槽客戶機(jī)2(230)。
在判定步驟330,智能路由器10可能找到不止一個(gè)運(yùn)用用戶15的協(xié)議的“本機(jī)”版本的存儲槽客戶機(jī)。如果是這樣,在步驟340中,智能路由器10選擇這些適當(dāng)?shù)拇鎯Σ劭蛻魴C(jī)中的一個(gè)客戶機(jī)。
例如,用戶15運(yùn)行的是Microsoft Windows操作系統(tǒng)。在步驟330,系統(tǒng)10找到兩個(gè)存儲客戶機(jī)本機(jī)支持Microsoft WindowsCIFS協(xié)議,例如為存儲槽客戶機(jī)1(225)和存儲槽客戶機(jī)2(230)。在本發(fā)明的一個(gè)優(yōu)選實(shí)施例中,智能路由器10從這些可能的存儲槽客戶機(jī)中隨機(jī)選擇一個(gè)存儲槽客戶機(jī),例如存儲槽客戶機(jī)1(225),作為這個(gè)消息或請求的接收方。
在另一個(gè)實(shí)施例中,智能路由器10可以記住用戶15所用的先前存儲槽客戶機(jī),并在步驟340選擇這個(gè)存儲槽客戶機(jī),例如存儲槽客戶機(jī)2(225)。為了記住先前的存儲槽客戶機(jī),智能路由器10用一個(gè)諸如媒體訪問地址和消息協(xié)議類型之類的源機(jī)器唯一標(biāo)識符來確定接收該消息或請求的適當(dāng)服務(wù)器。這保證了相同的存儲槽客戶機(jī)處理來自相同上級客戶機(jī)85的所有請求。因此,智能路由器10不需要維護(hù)任何協(xié)議狀態(tài)信息。
在另一個(gè)實(shí)施例中,智能路由器10可以順序選擇(即,旋轉(zhuǎn)通過)支持適當(dāng)?shù)谋緳C(jī)協(xié)議的存儲槽客戶機(jī),也可以以任何其他適當(dāng)方式選擇接收消息的存儲槽客戶機(jī)。
一旦選定了存儲槽客戶機(jī),在步驟345中,智能路由器10將消息路由給所選的存儲槽客戶機(jī)。智能路由器10不改變發(fā)給存儲槽客戶機(jī)的消息內(nèi)容。因此,任何返回信息就不用通過智能路由器10進(jìn)行路由。然而,如果需要的話,返回信息也可以通過智能路由器進(jìn)行路由。
雖然以上只是以存儲區(qū)域網(wǎng)為例對本發(fā)明進(jìn)行說明,但本發(fā)明顯然也適用于任何允許在異構(gòu)系統(tǒng)之間進(jìn)行文件共享的文件系統(tǒng)。
權(quán)利要求
1.一種自動執(zhí)行基于協(xié)議將使用輸入?yún)f(xié)議的輸入命令路由到能夠提供與輸入?yún)f(xié)議相同的協(xié)議的文件存儲客戶機(jī)的方法,所述方法包括下列步驟確定輸入消息的輸入?yún)f(xié)議;標(biāo)識由多個(gè)文件存儲客戶機(jī)提供的多個(gè)協(xié)議;將輸入命令的輸入?yún)f(xié)議與由多個(gè)文件存儲客戶機(jī)提供的多個(gè)協(xié)議相比較;選擇能提供與輸入?yún)f(xié)議相同的協(xié)議的文件存儲客戶機(jī);以及將輸入命令自動路由給所選的文件存儲客戶機(jī)。
2.如權(quán)利要求1所述的方法,其中所述多個(gè)協(xié)議是本機(jī)提供的,無需仿真。
3.如權(quán)利要求1所述的方法,其中所述多個(gè)協(xié)議中的至少一些是不同的。
4.如權(quán)利要求1所述的方法,其中所述自動路由輸入命令的步驟包括自動路由輸入命令而無需在發(fā)出輸入命令的用戶方的交互。
5.如權(quán)利要求4所述的方法,其中所述用戶包括一個(gè)計(jì)算機(jī)程序。
6.如權(quán)利要求4所述的方法,其中所述自動路由輸入命令的步驟包括使用對用戶呈現(xiàn)為單個(gè)實(shí)體的路由器系統(tǒng)。
7.如權(quán)利要求6所述的方法,其中所述自動路由輸入命令的步驟包括用單個(gè)網(wǎng)絡(luò)地址建立與文件存儲槽客戶機(jī)的連接。
8.如權(quán)利要求1所述的方法,其中如果確定有多個(gè)文件存儲客戶機(jī)提供所述輸入?yún)f(xié)議,則選擇所述文件存儲客戶機(jī)之一。
9.如權(quán)利要求8所述的方法,其中所述選擇所述文件存儲客戶機(jī)之一的步驟包括隨機(jī)選擇一個(gè)文件存儲客戶機(jī)。
10.如權(quán)利要求8所述的方法,其中所述選擇所述文件存儲客戶機(jī)之一的步驟包括選擇與發(fā)出輸入命令的用戶上次使用的相同的存儲槽客戶機(jī)。
11.如權(quán)利要求8所述的方法,其中所述選擇所述文件存儲客戶機(jī)之一的步驟包括順序選擇文件存儲客戶機(jī)。
12.如權(quán)利要求1所述的方法,所述方法還包括存儲由文件存儲客戶機(jī)提供的多個(gè)協(xié)議的列表。
13.如權(quán)利要求4所述的方法,其中所述自動路由輸入命令的步驟包括自動路由輸入命令而不改變輸入命令內(nèi)容。
14.一種計(jì)算機(jī)程序產(chǎn)品,所述計(jì)算機(jī)程序產(chǎn)品具有執(zhí)行任何以上權(quán)利要求的方法的指令代碼。
15.一種自動執(zhí)行基于協(xié)議將使用輸入?yún)f(xié)議的輸入命令路由給能夠提供與輸入?yún)f(xié)議相同的協(xié)議的文件存儲客戶機(jī)的存儲槽系統(tǒng),所述存儲槽系統(tǒng)包括確定輸入消息的輸入?yún)f(xié)議的裝置;標(biāo)識由多個(gè)文件存儲客戶機(jī)提供的多個(gè)協(xié)議的裝置;將輸入命令的輸入?yún)f(xié)議與由多個(gè)文件存儲客戶機(jī)提供的多個(gè)協(xié)議相比較的裝置;選擇能提供與輸入?yún)f(xié)議相同的協(xié)議的文件存儲客戶機(jī)的裝置;以及將輸入命令自動路由給所選的文件存儲客戶機(jī)的裝置。
16.如權(quán)利要求15所述的存儲槽系統(tǒng),其中所述多個(gè)協(xié)議是本機(jī)提供的,無需仿真。
17.如權(quán)利要求15所述的存儲槽系統(tǒng),其中所述多個(gè)協(xié)議中的至少一些是不同的。
18.如權(quán)利要求15所述的存儲槽系統(tǒng),其中所述自動路由輸入命令的裝置自動路由輸入命令而無需在發(fā)出輸入命令的用戶方的交互。
19.如權(quán)利要求18所述的存儲槽系統(tǒng),其中所述用戶包括一個(gè)計(jì)算機(jī)程序。
20.如權(quán)利要求18所述的存儲槽系統(tǒng),其中所述自動路由輸入命令的裝置使用對用戶呈現(xiàn)為單個(gè)實(shí)體的路由器系統(tǒng)。
21.如權(quán)利要求20所述的存儲槽系統(tǒng),其中所述自動路由輸入命令的裝置使用單個(gè)網(wǎng)絡(luò)地址建立與文件存儲槽客戶機(jī)的連接。
22.如權(quán)利要求15所述的存儲槽系統(tǒng),其中如果確定有多個(gè)文件存儲客戶機(jī)提供所述輸入?yún)f(xié)議,所述選擇裝置選擇所述文件存儲客戶機(jī)之一。
23.如權(quán)利要求22所述的存儲槽系統(tǒng),其中所述選擇裝置隨機(jī)選擇文件存儲客戶機(jī)。
24.如權(quán)利要求22所述的存儲槽系統(tǒng),其中所述選擇裝置選擇與發(fā)出輸入命令的用戶上次使用的相同的存儲槽客戶機(jī)。
25.如權(quán)利要求22所述的存儲槽系統(tǒng),其中所述選擇裝置順序選擇文件存儲客戶機(jī)。
26.如權(quán)利要求15所述的存儲槽系統(tǒng),所述存儲槽系統(tǒng)還包括一個(gè)存儲由文件存儲客戶機(jī)提供的多個(gè)協(xié)議的列表的數(shù)據(jù)存儲器。
27.如權(quán)利要求18所述的存儲槽系統(tǒng),其中所述自動路由輸入命令的裝置自動路由輸入命令而不改變輸入命令內(nèi)容。
全文摘要
本發(fā)明提出了一種將用戶請求路由給存儲服務(wù)器的智能路由器,其能本機(jī)處理這個(gè)請求而無需仿真。自動路由請求,而不需要用戶方任何指令或互動。智能路由器包括一個(gè)如存儲槽的計(jì)算環(huán)境和一組智能路由器。這組智能路由器由于呈現(xiàn)單個(gè)網(wǎng)絡(luò)IP地址而對用戶呈現(xiàn)為單個(gè)實(shí)體。在智能路由器接收到請求時(shí),它檢查協(xié)議類型,將請求傳送給一個(gè)適當(dāng)?shù)拇鎯Σ劭蛻魴C(jī)。智能路由器不改變請求消息的內(nèi)容,因此存儲槽客戶機(jī)不會察覺智能路由器的存在。結(jié)果,除非需要,任何返回消息不需通過智能路由器。
文檔編號H04L29/08GK1742472SQ200380102369
公開日2006年3月1日 申請日期2003年10月15日 優(yōu)先權(quán)日2002年11月26日
發(fā)明者溫莎·為善·許, 杰沙卡·穆塞達(dá)斯·蒙諾, 奧尼斯蒂·成·楊 申請人:國際商業(yè)機(jī)器公司