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