專利名稱:網(wǎng)絡(luò)文件的共享方法和系統(tǒng)的制作方法
本申請(qǐng)要求于2001年3月16日提交的美國(guó)臨時(shí)申請(qǐng)No.60/276,829的權(quán)益,在此以其全文引入以供參考。
背景發(fā)明領(lǐng)域本發(fā)明涉及為計(jì)算機(jī)文件服務(wù)器系統(tǒng)和客戶端計(jì)算機(jī)提供服務(wù)的存儲(chǔ)區(qū)域網(wǎng)絡(luò)領(lǐng)域,更具體而言,涉及在客戶端和服務(wù)器之間傳輸數(shù)據(jù)的方法。
背景技術(shù):
圖1表示了一種典型的服務(wù)于客戶端102和計(jì)算機(jī)文件服務(wù)器系統(tǒng)104的存儲(chǔ)區(qū)域網(wǎng)絡(luò)100??蛻舳?02和服務(wù)器104通過網(wǎng)絡(luò)106進(jìn)行通信。
客戶端102能夠包括一個(gè)處理器108,處理器108通過總線110和網(wǎng)絡(luò)端口112、光纖端口114及存儲(chǔ)器116相耦合。處理器108可以是例如由位于California的Santa Clara的英特爾公司制造的英特爾奔騰4處理器。作為另一個(gè)實(shí)施例,處理器108可以是一專用集成集成電路(ASIC)??偩€110的一個(gè)例子是外圍部件互連(PCD局部總線,該局部總線是一種高性能的總線,用于芯片(例如,母板芯片、主板芯片、等等)、擴(kuò)展板、處理器/存儲(chǔ)器子系統(tǒng)等等的相互連接。
網(wǎng)絡(luò)端口112可以是以太網(wǎng)端口、串行端口、并行端口、通用串行總線(“USB”)端口、電氣和電子工程師學(xué)會(huì)公司(“IEEE”)1394端口、小型計(jì)算機(jī)系統(tǒng)接口(“SCSI”)端口、個(gè)人計(jì)算機(jī)存儲(chǔ)卡國(guó)際協(xié)會(huì)(“PCMCIA”)端口,等等。客戶端計(jì)算機(jī)102的存儲(chǔ)器116可以存儲(chǔ)多個(gè)被配置成為要由處理器108執(zhí)行的指令。存儲(chǔ)器116可以是隨機(jī)存取存儲(chǔ)器(RAM)、動(dòng)態(tài)RAM(DRAM)、靜態(tài)RAM(SRAM)、易失性存儲(chǔ)器、非易失性存儲(chǔ)器、閃速RAM、聚合物鐵電RAM、統(tǒng)一雙向開關(guān)半導(dǎo)體存儲(chǔ)器、磁性RAM、高速緩沖存儲(chǔ)器、硬盤驅(qū)動(dòng)器、磁存儲(chǔ)器、光存儲(chǔ)器、磁光存儲(chǔ)器、或者它們的組合。
客戶端計(jì)算機(jī)102可以通過網(wǎng)絡(luò)106耦合于服務(wù)器104。服務(wù)器104可以是例如來自California Palo Alto的Hewlett-Packard公司的Windows NT服務(wù)器、來自California Palo Alto的Sun Microsystems公司的UNIX服務(wù)器,等等。服務(wù)器104可以包括一個(gè)通過總線120耦合到網(wǎng)絡(luò)端口122、光纖端口124和存儲(chǔ)器126的處理器118。網(wǎng)絡(luò)端口122的例子包括廣域網(wǎng)(WAN)、局域網(wǎng)(LAN)、因特網(wǎng)、無線網(wǎng)絡(luò)、有線網(wǎng)絡(luò)、面向連接的網(wǎng)絡(luò)、分組網(wǎng)、網(wǎng)際協(xié)議(IP)網(wǎng)絡(luò)、或者它們的組合。
作為用于描述本發(fā)明的實(shí)施例的術(shù)語“耦合的”或者“連接的”包含直接連接、間接連接、或者它們的任意組合。同樣地,兩個(gè)被耦合的裝置可以參與直接通信、間接通信、或者它們的任意組合。此外,兩個(gè)被耦合的裝置不必處于連續(xù)的通信中,而是可以典型地、周期性地、間歇地、偶發(fā)地、偶爾地、等等地進(jìn)行通信。此外,術(shù)語“通信”不局限于直接通信,而是還包括間接通信。
本發(fā)明的實(shí)施例涉及通過一個(gè)或者多個(gè)網(wǎng)絡(luò)進(jìn)行的數(shù)據(jù)通信。數(shù)據(jù)通信可以由所述一個(gè)或者多個(gè)網(wǎng)絡(luò)中的一個(gè)或者多個(gè)通信信道來傳送。一個(gè)網(wǎng)絡(luò)可以包含有線通信鏈路(例如,同軸電纜、銅纜、光纖、及它們的組合,等等)、無線通信鏈路(例如,衛(wèi)星通信鏈路、陸地?zé)o線通信鏈路、衛(wèi)星—陸地通信鏈路、及它們的組合,等等)、或者它們的組合。一條通信鏈路可以包含一個(gè)或多個(gè)通信信道,其中通信信道傳送信息。例如,一個(gè)通信鏈路可以包含多路復(fù)用的通信信道,比如時(shí)分多路復(fù)用(“TDM”)信道、頻分多路復(fù)用(“FDM”)信道、碼分多路復(fù)用(“CDM”)信道、波分多路復(fù)用(“WDM”)信道、它們的組合,等等。
根據(jù)本發(fā)明的一個(gè)實(shí)施例,被配置成要由處理器執(zhí)行以執(zhí)行一方法的指令,被存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)上。計(jì)算機(jī)可讀介質(zhì)能夠是一個(gè)存儲(chǔ)數(shù)字信息的設(shè)備。例如,一個(gè)計(jì)算機(jī)可讀介質(zhì)包括本領(lǐng)域內(nèi)所公知的用于存儲(chǔ)軟件的只讀光盤存儲(chǔ)器(CD-ROM)。由適合于執(zhí)行那些被配置成要被執(zhí)行的指令的處理器訪問該計(jì)算機(jī)可讀介質(zhì)。術(shù)語“被配置成要被執(zhí)行的指令”和“要被執(zhí)行的指令”意指包含任何依其現(xiàn)有形式(例如,機(jī)器代碼)準(zhǔn)備由處理器執(zhí)行的指令,或是需要進(jìn)一步的操縱(例如,編譯、解密、或者配有存取代碼,等等)以備由處理器執(zhí)行的指令。
存儲(chǔ)區(qū)域網(wǎng)絡(luò)100包括通過光纖路由器130可存取的多個(gè)聯(lián)網(wǎng)的存儲(chǔ)設(shè)備128。聯(lián)網(wǎng)的存儲(chǔ)設(shè)備128可以包括例如一個(gè)或多個(gè)硬盤驅(qū)動(dòng)器132、134、和136、光存儲(chǔ)設(shè)備138、可拆卸存儲(chǔ)設(shè)備140、或其他此類存儲(chǔ)設(shè)備。光纖路由器130可以是例如Chaparal FVS113、Crossroads 4250、ATTO光纖橋接器3200。存儲(chǔ)在存儲(chǔ)設(shè)備128上的信息可以被客戶端計(jì)算機(jī)102和服務(wù)器計(jì)算機(jī)104存取,就好像這些沒備被直接地連接到這些計(jì)算機(jī)上一樣。例如,磁盤132上的存儲(chǔ)區(qū)可以被“安裝”在服務(wù)器104上,并且磁盤134上的存儲(chǔ)區(qū)可以被安裝在客戶端102上。從運(yùn)行在那些計(jì)算機(jī)上的應(yīng)用的觀點(diǎn)來看,這些存儲(chǔ)區(qū)將顯得它們就像是直接連接在相應(yīng)的計(jì)算機(jī)系統(tǒng)上一樣。
在典型的客戶端-服務(wù)器環(huán)境下,客戶端計(jì)算機(jī)可能需要讀出存儲(chǔ)在服務(wù)器系統(tǒng)上的數(shù)據(jù)或是可能需要將數(shù)據(jù)寫入服務(wù)器系統(tǒng)。用來完成這些任務(wù)的常規(guī)的系統(tǒng)和方法尚未被優(yōu)化成充分利用諸如圖1中所示那樣的存儲(chǔ)區(qū)域網(wǎng)絡(luò)。例如,一種把數(shù)據(jù)從客戶端寫到服務(wù)器上的文件內(nèi)的常規(guī)過程遵循如圖2所示那樣的通信流程。在這個(gè)例子里,客戶端102具有在磁盤132上存儲(chǔ)的如下數(shù)據(jù),該數(shù)據(jù)需要被傳送以便由服務(wù)器104存儲(chǔ)。在圖2中,實(shí)線所代表的事務(wù)由在客戶端和服務(wù)器計(jì)算機(jī)之間發(fā)送的消息或者數(shù)據(jù)組成。虛線表示在客戶端102和服務(wù)器104與通過路由器130加以存取的聯(lián)網(wǎng)的存儲(chǔ)設(shè)備128之間的實(shí)際交互。
在步驟201中,客戶端102通過通知服務(wù)器104該客戶端具有要被寫入一個(gè)由服務(wù)器104所維護(hù)的文件內(nèi)的數(shù)據(jù)來啟動(dòng)一個(gè)數(shù)據(jù)寫入請(qǐng)求。步驟202中,服務(wù)器104在聯(lián)網(wǎng)的存儲(chǔ)設(shè)備128之一諸如硬盤134上創(chuàng)建一個(gè)新的空文件。在步驟203中,服務(wù)器104向客戶端102發(fā)送一條消息,通知客戶端102一個(gè)文件已經(jīng)被創(chuàng)建。在步驟204和205中,客戶端102從硬盤132中檢索數(shù)據(jù)。在步驟206中,客戶端104用指令把該數(shù)據(jù)發(fā)送到服務(wù)器104以把該數(shù)據(jù)寫入該新文件。在步驟207中,服務(wù)器104把數(shù)據(jù)寫入硬盤134上的該新文件中去。在步驟208-215中,客戶端102檢索數(shù)據(jù)并且服務(wù)器104寫入所述數(shù)據(jù),直到所有這些數(shù)據(jù)已被從客戶端102傳送到服務(wù)器104為止。
這種常規(guī)的數(shù)據(jù)傳輸方法沒有導(dǎo)致這兩個(gè)系統(tǒng)之間的有效文件傳輸。特別地,如圖2中所示,通信流程沒有被優(yōu)化,因?yàn)閮H僅需要在一個(gè)單獨(dú)的存儲(chǔ)區(qū)域網(wǎng)絡(luò)100內(nèi)被從一個(gè)物理位置傳輸?shù)搅硪粋€(gè)物理位置的數(shù)據(jù)被代之以傳輸?shù)皆摯鎯?chǔ)區(qū)域網(wǎng)絡(luò)之外。具體而言,該數(shù)據(jù)通過路由器130從存儲(chǔ)區(qū)域網(wǎng)絡(luò)100流向客戶端102。客戶端102隨后通過網(wǎng)絡(luò)106將該數(shù)據(jù)傳輸給服務(wù)器104。最后服務(wù)器104通過路由器130將該數(shù)據(jù)送回存儲(chǔ)區(qū)域網(wǎng)絡(luò)100。
另一個(gè)和常規(guī)文件傳輸系統(tǒng)相關(guān)聯(lián)的低效問題是,服務(wù)器不能優(yōu)化其數(shù)據(jù)的存儲(chǔ),因?yàn)?,它沒有足夠的信息來管理數(shù)據(jù)傳輸操作。這適用于諸如附圖1中所示的那些存儲(chǔ)區(qū)域網(wǎng)絡(luò),以及其中數(shù)據(jù)被存儲(chǔ)在本地連接的存儲(chǔ)設(shè)備中的客戶端-服務(wù)器系統(tǒng)。開始,客戶端請(qǐng)求服務(wù)器創(chuàng)建一個(gè)新的空文件。服務(wù)器在當(dāng)它已經(jīng)這樣做時(shí)作出響應(yīng)。從該點(diǎn)向前,客戶端在寫操作序列的每一個(gè)中寫該文件的全部數(shù)據(jù)的子集。服務(wù)器可能或可能不確認(rèn)數(shù)據(jù)的接收,這取決于所使用的協(xié)議的細(xì)節(jié)。同樣地,當(dāng)客戶端已經(jīng)將文件的全部數(shù)據(jù)寫入服務(wù)器上的文件后,它可以發(fā)出或是不發(fā)出一最終請(qǐng)求,取決于所使用的協(xié)議。
圖3更加詳細(xì)地說明了以上所述的低效問題。在步驟中,客戶端300啟動(dòng)了一個(gè)向服務(wù)器301傳輸數(shù)據(jù)的請(qǐng)求。在步驟303中,服務(wù)器301通過表明一個(gè)新的空文件已經(jīng)被創(chuàng)建來響應(yīng)該請(qǐng)求。在步驟304-305中,客戶端300發(fā)送一個(gè)或者更多個(gè)數(shù)據(jù)包,直到整個(gè)文件都已被從客戶端300傳輸?shù)椒?wù)器301為止。因?yàn)榉?wù)器301沒有關(guān)于被傳輸數(shù)據(jù)的完全信息,所以,數(shù)據(jù)隨后被以不同大小的片寫入到該新文件中。這可能會(huì)導(dǎo)致可用磁盤空間的低效利用。如果要傳輸多個(gè)文件的話,則必須重復(fù)步驟302-306,如步驟307和308中所示的。
所描述的常規(guī)方法被廣泛的應(yīng)用于填充文件數(shù)據(jù)空間,并且,在該數(shù)據(jù)的數(shù)量和內(nèi)容不能被預(yù)先得知的時(shí)候是有效的。然而,由于服務(wù)器在任何給定時(shí)間上僅僅暴露給寫數(shù)據(jù)操作的全部集合的一個(gè)子集,因此服務(wù)器的優(yōu)化機(jī)會(huì)受到限制。特別是,服務(wù)器不能確定存儲(chǔ)介質(zhì)內(nèi)的哪個(gè)可用存儲(chǔ)位置最適合于文件存儲(chǔ),因?yàn)樵撐募淖罱K大小是未知的。此外,服務(wù)器不能指定客戶端應(yīng)該發(fā)送數(shù)據(jù)的次序,或者,在客戶端最終向服務(wù)器發(fā)送多于一個(gè)的文件的情形中,這些文件的序列。這一不足在存儲(chǔ)區(qū)域網(wǎng)絡(luò)中表現(xiàn)得尤為明顯,其中對(duì)于客戶端而言,典型的是要傳輸大量具有特定內(nèi)容和大小的文件,該內(nèi)容和大小僅僅被該客戶端所知。在這種環(huán)境下,文件內(nèi)容的逐片基礎(chǔ)的傳輸導(dǎo)致了減小的數(shù)據(jù)傳輸率。
當(dāng)這些文件要被從客戶端上傳輸?shù)轿挥诜?wù)器上的一個(gè)或者多個(gè)可拆卸存儲(chǔ)設(shè)備中時(shí),如圖2和3中所示的利用常規(guī)方法傳輸數(shù)據(jù)時(shí)會(huì)出現(xiàn)另一個(gè)嚴(yán)重的缺陷。在這樣的系統(tǒng)里,服務(wù)器可以管理一系列介質(zhì)片,其中的每一片都具有有限的容量。當(dāng)數(shù)據(jù)被存放在這些介質(zhì)上時(shí),每一片可能有不同數(shù)量的剩余空間。當(dāng)采用這些方法,并且數(shù)據(jù)被以逐片方式寫入時(shí),服務(wù)器就可能將文件數(shù)據(jù)存儲(chǔ)在一個(gè)最終并不適合它的一片介質(zhì)上。在這種情況下,有必要延遲將部分已寫入的文件移到新的位置,以便使進(jìn)一步的寫入操作可以發(fā)生。
因此,需要有一個(gè)系統(tǒng)和方法來提供改善的文件傳輸率和在數(shù)據(jù)存儲(chǔ)介質(zhì)上高效率的數(shù)據(jù)放置。
如上所述的在客戶端和服務(wù)器系統(tǒng)之間傳輸數(shù)據(jù)的一般過程,同樣被應(yīng)用于公共網(wǎng)絡(luò)文件共享協(xié)議中,例如網(wǎng)絡(luò)文件系統(tǒng)(NFS)和公共國(guó)際互聯(lián)網(wǎng)文件系統(tǒng)(CIFS),其中,客戶端計(jì)算機(jī)在服務(wù)器上創(chuàng)建一個(gè)空文件,然后通過服務(wù)器逐片地將數(shù)據(jù)寫入這個(gè)文件。
發(fā)明內(nèi)容
本發(fā)明的目的在于改進(jìn)計(jì)算機(jī)網(wǎng)絡(luò)中客戶端和服務(wù)器之間數(shù)據(jù)的傳輸率。
本發(fā)明的另一個(gè)目的在于改進(jìn)存儲(chǔ)網(wǎng)絡(luò)中第三方拷貝特征的使用,其中客戶端和服務(wù)器交換關(guān)于一組待傳輸數(shù)據(jù)塊的信息并把該傳輸委托給第三方,從而改進(jìn)數(shù)據(jù)傳輸率并緩解服務(wù)器和客戶端的負(fù)載。
再一目的在于減少?gòu)目蛻舳讼蚍?wù)器上的一個(gè)或者多個(gè)可拆卸介質(zhì)裝置移動(dòng)文件所需要的步驟數(shù)目。
另一目的是改進(jìn)對(duì)可拆卸介質(zhì)的利用。
這些目的以及將從下述公開內(nèi)容中變得明顯的其它目的由本發(fā)明來實(shí)現(xiàn),本發(fā)明在一方面包含了一種把文件數(shù)據(jù)從客戶端寫入服務(wù)器的方法和系統(tǒng),該方法和系統(tǒng)包括,由客戶端向服務(wù)器發(fā)出包含多個(gè)文件的名稱以及所述多個(gè)文件中的每一個(gè)文件的屬性的文件傳輸申請(qǐng),由服務(wù)器確定用于數(shù)據(jù)傳輸?shù)拇笮『妥顑?yōu)順序和所述多個(gè)文件的最優(yōu)存儲(chǔ)位置,由服務(wù)器向客戶端發(fā)出一個(gè)請(qǐng)求,以便按照針對(duì)數(shù)據(jù)傳輸?shù)淖钚?shù)目和存儲(chǔ)器位置而被優(yōu)化的順序來傳輸所述多個(gè)文件,由此使從客戶端向服務(wù)器的數(shù)據(jù)傳輸率最大化。
附圖的簡(jiǎn)要說明圖1是一常規(guī)體系結(jié)構(gòu)的示意圖,其中本發(fā)明可以被實(shí)現(xiàn)以改進(jìn)利用存儲(chǔ)區(qū)域網(wǎng)絡(luò)設(shè)備來進(jìn)行客戶端和服務(wù)器系統(tǒng)之間的文件傳輸。
圖2是說明根據(jù)常規(guī)方法的在客戶端系統(tǒng)、服務(wù)器系統(tǒng)和存儲(chǔ)區(qū)域網(wǎng)絡(luò)之間用于將數(shù)據(jù)寫入一個(gè)文件的事務(wù)的時(shí)間線(timeline)。
圖3是說明根據(jù)傳統(tǒng)方法的在客戶端系統(tǒng)和服務(wù)器系統(tǒng)之間用于將數(shù)據(jù)寫入多個(gè)文件的事務(wù)的時(shí)間線。
圖4是說明根據(jù)本發(fā)明的一實(shí)施例的在客戶端系統(tǒng)和服務(wù)器系統(tǒng)之間用于將數(shù)據(jù)寫入多個(gè)文件的事務(wù)的時(shí)間線。
圖5是說明根據(jù)本發(fā)明的一實(shí)施例的在客戶端系統(tǒng)、服務(wù)器系統(tǒng)和存儲(chǔ)區(qū)域網(wǎng)絡(luò)之間用于將數(shù)據(jù)寫入一個(gè)文件的事務(wù)的時(shí)間線。
圖6是說明根據(jù)本發(fā)明的另一實(shí)施例的在客戶端系統(tǒng)、服務(wù)器系統(tǒng)和存儲(chǔ)區(qū)域網(wǎng)絡(luò)之間用于將數(shù)據(jù)寫入一個(gè)文件的事務(wù)的時(shí)間線。
圖7是一體系結(jié)構(gòu)的示意圖,其中本發(fā)明可以被實(shí)現(xiàn)以根據(jù)ISCSI體系結(jié)構(gòu)改進(jìn)利用網(wǎng)絡(luò)化的存儲(chǔ)設(shè)備來進(jìn)行客戶端/服務(wù)器系統(tǒng)之間的文件傳輸。
發(fā)明的詳細(xì)說明如上所述,和常規(guī)的文件傳輸方法有關(guān)的問題源自于這種傳輸是從客戶端啟動(dòng)這一事實(shí)。因此,幾乎沒有信息可用來有效地把文件放置在由服務(wù)器系統(tǒng)管理的存儲(chǔ)介質(zhì)內(nèi)。使用傳統(tǒng)文件傳輸方法的另一個(gè)問題是,幾乎沒有信息可用來正確使用存儲(chǔ)區(qū)域網(wǎng)絡(luò)的所謂“第三方拷貝”特征。在第三方拷貝情況下,客戶端和服務(wù)器需要識(shí)別將要被從一個(gè)系統(tǒng)傳輸?shù)搅硗庖粋€(gè)系統(tǒng)的數(shù)據(jù)塊。然后這個(gè)信息必須被提供給第三方,它相應(yīng)的存儲(chǔ)區(qū)域網(wǎng)絡(luò)發(fā)出實(shí)現(xiàn)數(shù)據(jù)移動(dòng)的I/O操作。為了把數(shù)據(jù)從客戶端寫入服務(wù)器中,開始第三方拷貝的那一方必須知道數(shù)據(jù)在客戶端和服務(wù)器上的位置(塊地址)。當(dāng)逐片執(zhí)行由客戶端啟動(dòng)的寫操作時(shí),服務(wù)器尚未具有為預(yù)先的數(shù)據(jù)分配空間的機(jī)會(huì)。因此,第三方拷貝特征就不能被使用。
根據(jù)本發(fā)明的第一實(shí)施例,披露了一種把數(shù)據(jù)從第一計(jì)算機(jī)寫入第二計(jì)算機(jī)的一個(gè)或者多個(gè)文件的新方法,由此在傳輸該數(shù)據(jù)之前首先把描述所述一個(gè)或者多個(gè)文件的信息從第一計(jì)算機(jī)系統(tǒng)發(fā)送到第二計(jì)算機(jī)系統(tǒng)?;谶@個(gè)信息,第二計(jì)算機(jī)系統(tǒng)以根據(jù)第二計(jì)算機(jī)的需要而優(yōu)化的方式向客戶端請(qǐng)求文件數(shù)據(jù)。也就是說,第二計(jì)算機(jī)可以規(guī)定用于完成數(shù)據(jù)傳輸?shù)拇涡?、時(shí)間、和通信介質(zhì)。因而,服務(wù)器就可以對(duì)數(shù)據(jù)放置和傳輸進(jìn)行優(yōu)化。
附圖4舉例說明一種根據(jù)本發(fā)明一實(shí)施例的從一個(gè)系統(tǒng)傳輸一個(gè)或者多個(gè)文件到另一個(gè)系統(tǒng)的方法。在圖4中,客戶端400的一個(gè)用戶想要向服務(wù)器401傳輸三個(gè)文件,指定的文件1、文件2和文件3。傳輸所有三個(gè)文件的客戶端申請(qǐng)隨同每個(gè)文件的所述屬性一起被發(fā)送到服務(wù)器以便最有利該傳輸。這些屬性可以包括例如文件長(zhǎng)度以及在組成文件的每個(gè)數(shù)據(jù)塊在網(wǎng)絡(luò)存儲(chǔ)設(shè)備上的位置。在該例子中,服務(wù)器401處理該請(qǐng)求以便傳輸這三個(gè)文件,并確定通過依照文件2,后跟文件1和文件3的次序分別傳輸這些文件所能獲得的最佳性能。這個(gè)被確定的次序?qū)⑼ㄟ^減少磁盤磁頭尋道而使數(shù)據(jù)傳輸最優(yōu)化。因此,在步驟403中,服務(wù)器401指示客戶端400發(fā)送文件2的內(nèi)容。在步驟404中,客戶端400發(fā)送所請(qǐng)求的內(nèi)容。在步驟405和406中,文件1的數(shù)據(jù)被請(qǐng)求并被發(fā)送,如附圖4所示。同樣地,在步驟407和408中,文件3的數(shù)據(jù)被請(qǐng)求并傳輸。文件傳輸請(qǐng)求可以包括分配數(shù)據(jù)以進(jìn)一步改進(jìn)該文件傳輸過程。分配數(shù)據(jù)可以由例如數(shù)據(jù)要以最大的傳輸率傳輸?shù)降脑诖鎯?chǔ)區(qū)域網(wǎng)絡(luò)設(shè)備上的地址組成。當(dāng)被分配到磁盤上時(shí),分配數(shù)據(jù)也可以包括數(shù)據(jù)塊的散聚表。
本發(fā)明產(chǎn)生的一個(gè)第一改進(jìn)是第二臺(tái)計(jì)算機(jī)在本例中是服務(wù)器401為其選擇的傳輸大小作準(zhǔn)備的能力。使用常規(guī)的方法,第一臺(tái)計(jì)算機(jī),在本例中是客戶端400,必須假定另一臺(tái)計(jì)算機(jī)能夠接受特定大小的數(shù)據(jù)傳輸。進(jìn)行這種假定的需要典型地意指該發(fā)送系統(tǒng)必須做出一個(gè)保守的選擇以便不會(huì)耗盡接收系統(tǒng)的存儲(chǔ)資源。相比之下,使用本發(fā)明的方法,接收系統(tǒng)預(yù)先收到將要傳輸?shù)臄?shù)據(jù)的大小(因?yàn)橛煽蛻舳?00所發(fā)送的文件的屬性),因此服務(wù)器401能夠準(zhǔn)備盡可能大的傳輸并(通過分配數(shù)據(jù))通知發(fā)送系統(tǒng)。照這樣,就有可能以最少的數(shù)據(jù)傳輸數(shù)來影響單個(gè)文件的傳輸,并且不會(huì)耗盡服務(wù)器的資源。這就使從客戶端到服務(wù)器的數(shù)據(jù)傳輸率在服務(wù)器的資源約束內(nèi)最大化。
本發(fā)明實(shí)現(xiàn)了第二個(gè)改進(jìn),起因在于服務(wù)器控制了待傳輸文件的順序。在可拆卸介質(zhì)系統(tǒng)例如那些包括存儲(chǔ)庫(kù)的系統(tǒng)中,通過在特定的介質(zhì)片上放置特定的文件來優(yōu)化性能是很典型的。此外,常常出現(xiàn)這樣的情況,在任何特定時(shí)間,對(duì)一些介質(zhì)片的存取速度遠(yuǎn)遠(yuǎn)快于其他。繼續(xù)圖4所示的例子,在要求傳輸文件1、文件2、和文件3的時(shí)候,將要存放文件2的這片介質(zhì)可能是被最快存取的。在這種情況下,在任一其他文件之前傳輸文件2將是很有利的。本發(fā)明所實(shí)施的這一方法通過同時(shí)向服務(wù)器提供所有選擇并允許該服務(wù)器確定優(yōu)化性能的順序而使之成為可能。
因?yàn)榭蛻舳撕头?wù)器可以交換為執(zhí)行第三方拷貝操作所需要的信息,所以產(chǎn)生了第三個(gè)改進(jìn)。這些為了性能優(yōu)化所做的操作得到了普遍的認(rèn)可,因?yàn)閿?shù)據(jù)傳輸可以通過第三方代理而進(jìn)行,而在數(shù)據(jù)傳輸中客戶端或者服務(wù)器不會(huì)消耗任何資源。附圖5和6舉例說明了本發(fā)明是怎樣便于第三方拷貝操作的。如附圖5和6中所示,本發(fā)明在客戶端、服務(wù)器、和存儲(chǔ)區(qū)域網(wǎng)絡(luò)之間提供了一個(gè)明顯地簡(jiǎn)化了的交互。按照本發(fā)明,數(shù)據(jù)不必被傳輸?shù)酱鎯?chǔ)區(qū)域網(wǎng)絡(luò)100外以完成文件傳輸。而是,路由器130被指示來執(zhí)行在存儲(chǔ)區(qū)域網(wǎng)絡(luò)內(nèi)的文件傳輸操作。
附圖5說明了為執(zhí)行第三方拷貝操作,按照本發(fā)明的一實(shí)施例的在客戶端102,服務(wù)器104,和存儲(chǔ)設(shè)備128之間的交互。在這個(gè)實(shí)施例里,系統(tǒng)之間沒有傳遞確認(rèn)信息。在步驟501中,客戶端102向服務(wù)器104發(fā)送一條消息來啟動(dòng)文件傳輸。該初始消息包括待傳輸文件的屬性,該文件在這里也被稱為“源文件”。如前面所述,屬性可包括例如源文件的大小和位置的信息。在這個(gè)實(shí)施例中,源文件的位置進(jìn)一步包括表明組成該文件的數(shù)據(jù)的每個(gè)部分的在存儲(chǔ)介質(zhì)上的實(shí)際數(shù)據(jù)扇區(qū)的標(biāo)識(shí)。本領(lǐng)域中,該信息通常被稱作為“分散-聚集”數(shù)據(jù),因?yàn)樗鼧?biāo)識(shí)數(shù)據(jù)被分散在該存儲(chǔ)介質(zhì)上的物理位置,并且需要該信息來檢索數(shù)據(jù)。在復(fù)制請(qǐng)求中該信息被發(fā)送到客戶端上,并且被存入請(qǐng)求包中。
在步驟502中,服務(wù)器104指示路由器130創(chuàng)建一個(gè)新的空白文件并執(zhí)行從源文件到這個(gè)新的空文件的數(shù)據(jù)傳輸,該新文件之后就成為目標(biāo)文件。步驟502中創(chuàng)建的消息中包括從客戶端102接收的一個(gè)或多個(gè)文件屬性。在步驟503中,路由器130把數(shù)據(jù)從源位置傳輸?shù)侥繕?biāo)位置。也就是說,路由器130從分散-聚集列表中所標(biāo)識(shí)的扇區(qū)中檢索數(shù)據(jù),并且把它們放在目標(biāo)存儲(chǔ)介質(zhì)上的可用的扇區(qū)中。構(gòu)成新文件的扇區(qū)被包含在目標(biāo)文件的標(biāo)題塊中,以便將來作為分散-聚集數(shù)據(jù)的參考。
圖6表示另一個(gè)實(shí)現(xiàn)本發(fā)明來方便第三方數(shù)據(jù)傳輸?shù)睦?。這個(gè)例子除包括附圖5中所示的全部步驟外,還包括步驟601-603。在步驟601中,服務(wù)器104向客戶端102回送一條確認(rèn)消息。該確認(rèn)通知客戶端102新文件已經(jīng)被創(chuàng)建。在步驟602中,該步驟在路由器130已完成數(shù)據(jù)傳輸之后執(zhí)行,路由器130向服務(wù)器104發(fā)送一條消息。消息602通知服務(wù)器104數(shù)據(jù)傳輸已經(jīng)成功地完成。在步驟603中,服務(wù)器104將這次數(shù)據(jù)傳輸?shù)某晒ν瓿赏ㄖ蛻舳?02。
本發(fā)明優(yōu)選實(shí)施例的上述公開內(nèi)容是為了說明和描述的目的而給出的。其并不打算窮舉或者把本發(fā)明限制于所公開的精確形式。此處描述的實(shí)施例的許多變化和修改對(duì)于本領(lǐng)域的普通技術(shù)人員來說根據(jù)上述公開內(nèi)容將是顯而易見的。本發(fā)明的范圍僅僅由附在后面的權(quán)利要求以及它們的等價(jià)內(nèi)容來限定。
此外,在描述本發(fā)明的代表性實(shí)施例中,說明書可能已經(jīng)把本發(fā)明的方法和/或過程提供為特定的步驟序列。但是,就所述方法或過程不依賴于這里所陳述的特定步驟順序來說,所述方法或過程不應(yīng)該被限制在所述步驟的特定順序。作為本領(lǐng)域普通技術(shù)人員應(yīng)該懂得,其它的步驟順序也是可能的。因此,在該說明書中陳述步驟的特定次序不應(yīng)被解釋為對(duì)權(quán)利要求的限制。另外,針對(duì)本發(fā)明方法和/或過程的權(quán)利要求不應(yīng)被限制在所寫次序的步驟性能,并且本領(lǐng)域普通技術(shù)人員很容易理解,所述順序可以被改變,但仍然在本發(fā)明的精神和范圍內(nèi)。
權(quán)利要求
1.一種把文件數(shù)據(jù)從第一計(jì)算機(jī)寫入第二計(jì)算機(jī)的方法,該方法包括由第一計(jì)算機(jī)向第二計(jì)算機(jī)發(fā)出一個(gè)文件傳輸申請(qǐng),該申請(qǐng)包括與待傳輸文件相關(guān)聯(lián)的至少一個(gè)屬性;在第二計(jì)算機(jī)上確定用于待傳輸文件的至少一個(gè)最優(yōu)存儲(chǔ)位置和一最佳數(shù)據(jù)傳輸率;以及由第二計(jì)算機(jī)向第一計(jì)算機(jī)發(fā)出一個(gè)清求,以便使用所述最佳數(shù)據(jù)傳輸率傳輸待傳輸?shù)奈募?br>
2.如權(quán)利要求1所述的方法,其特征在于所述的至少一個(gè)屬性包括文件長(zhǎng)度。
3.如權(quán)利要求1所述的方法,其特征在于第一計(jì)算機(jī)為客戶端計(jì)算機(jī)并且第二計(jì)算機(jī)為服務(wù)器計(jì)算機(jī)。
4.如權(quán)利要求1所述的方法,其特征在于第二計(jì)算機(jī)根據(jù)文件傳輸申請(qǐng)確定數(shù)據(jù)的大小并且計(jì)算最大傳輸大小,并且由第二計(jì)算機(jī)向第一計(jì)算機(jī)發(fā)出的請(qǐng)求包括該最大傳輸大小,由此將數(shù)據(jù)傳輸?shù)臄?shù)目最小化而不耗盡服務(wù)器資源。
5.如權(quán)利要求1所述的方法,其特征在于第二計(jì)算機(jī)包括用于存儲(chǔ)待傳輸文件的可拆卸介質(zhì)部件,并且所述文件傳輸申請(qǐng)包括多個(gè)待傳輸文件,并且第二計(jì)算機(jī)確定存取該介質(zhì)部件的最優(yōu)順序并且傳輸所述文件的請(qǐng)求包括所述優(yōu)化順序。
6.一種把文件數(shù)據(jù)從位于第一計(jì)算機(jī)上的源文件寫入位于第二計(jì)算機(jī)上的目標(biāo)文件的方法,其中第一計(jì)算機(jī)上的文件數(shù)據(jù)物理地位于存儲(chǔ)區(qū)域網(wǎng)絡(luò)上的第一存儲(chǔ)裝置上,以及第二計(jì)算機(jī)上的目標(biāo)文件物理地位于該存儲(chǔ)區(qū)域網(wǎng)絡(luò)上的第二存儲(chǔ)裝置上,所述方法包括由第一計(jì)算機(jī)向第二二計(jì)算機(jī)發(fā)出一個(gè)文件傳輸申請(qǐng),該申請(qǐng)包括與源文件相關(guān)聯(lián)的每一個(gè)數(shù)據(jù)扇區(qū)的在存儲(chǔ)區(qū)域網(wǎng)絡(luò)設(shè)備上的位置;由第二計(jì)算機(jī)向該存儲(chǔ)區(qū)域網(wǎng)絡(luò)上的路由器系統(tǒng)發(fā)出一個(gè)請(qǐng)求,以在第二存儲(chǔ)設(shè)備上創(chuàng)建源文件;以及由第二計(jì)算機(jī)向該存儲(chǔ)區(qū)域網(wǎng)絡(luò)上的路由器系統(tǒng)發(fā)出一個(gè)請(qǐng)求,以把源文件傳輸?shù)侥繕?biāo)文件。
7.如權(quán)利要求6所述的方法,其特征在于該文件傳輸申請(qǐng)進(jìn)一步包括與源文件相關(guān)聯(lián)的多個(gè)屬性。
8.如權(quán)利要求7所述的方法,其特征在于所述的多個(gè)屬性包括文件名。
9.如權(quán)利要求6所述的方法,進(jìn)一步包括在源文件已被傳輸?shù)侥繕?biāo)文件后從路由器向服務(wù)器發(fā)送一條完成消息。
10.一種包括操作系統(tǒng)的文件服務(wù)器計(jì)算機(jī),該文件服務(wù)器計(jì)算機(jī)被配置為從客戶端計(jì)算機(jī)接收文件傳輸申請(qǐng),其中所述申請(qǐng)包括與多個(gè)文件相關(guān)聯(lián)的多個(gè)名稱和多個(gè)屬性,并且該文件服務(wù)器計(jì)算機(jī)被配置成用來確定用于數(shù)據(jù)傳輸操作的最優(yōu)大小、最優(yōu)順序和所述多個(gè)文件的最優(yōu)存儲(chǔ)位置,以及向所述客戶端發(fā)出一個(gè)請(qǐng)求,以便按照如下順序傳輸所述多個(gè)文件,該順序遵循用于數(shù)據(jù)傳輸操作的所述最優(yōu)大小、最優(yōu)順序和最優(yōu)存儲(chǔ)位置。
11.一種包括操作系統(tǒng)的客戶端計(jì)算機(jī),該客戶端計(jì)算機(jī)被配置成向服務(wù)器計(jì)算機(jī)發(fā)出一個(gè)文件傳輸申請(qǐng),其中所述申請(qǐng)包括與多個(gè)文件相關(guān)聯(lián)的多個(gè)名稱和多個(gè)屬性,并且該客戶端計(jì)算機(jī)被配置成從所述服務(wù)器計(jì)算機(jī)接收按照由該服務(wù)器確定的順序傳輸所述多個(gè)文件的請(qǐng)求。
12.一種包括聯(lián)網(wǎng)的客戶端計(jì)算機(jī)和聯(lián)網(wǎng)的文件服務(wù)器的網(wǎng)絡(luò),其中所述客戶端被配置成發(fā)出一文件傳輸申請(qǐng),其中所述申請(qǐng)包括與多個(gè)文件相關(guān)聯(lián)的多個(gè)名稱和多個(gè)屬性;并且其中所述服務(wù)器被配置成確定用于數(shù)據(jù)傳輸操作的最優(yōu)大小、最優(yōu)順序和所述多個(gè)文件的最優(yōu)存儲(chǔ)位置,并且向所述客戶端發(fā)出一個(gè)請(qǐng)求,以便按照如下順序傳輸所述多個(gè)文件,該順序遵循用于數(shù)據(jù)傳輸操作的所述最優(yōu)大小、最優(yōu)順序和最優(yōu)存儲(chǔ)位置,并且其中所述客戶端被配置成接收該請(qǐng)求并且按照所述最優(yōu)順序傳輸所述多個(gè)文件。
全文摘要
一種把文件數(shù)據(jù)從客戶端(400)寫入服務(wù)器(401)中的方法,該方法包括把文件數(shù)據(jù)從客戶端(400)寫入服務(wù)器(401),其中客戶端(400)向服務(wù)器(401)發(fā)出一個(gè)包含了多個(gè)待傳輸文件的名稱和所述多個(gè)文件中的每一個(gè)的屬性的文件傳輸申請(qǐng)(402)。服務(wù)器(401)確定數(shù)據(jù)傳輸?shù)拇笮『妥顑?yōu)順序和所述多個(gè)文件的最優(yōu)存儲(chǔ)位置,并且向客戶端(400)發(fā)出一個(gè)請(qǐng)求,按照針對(duì)數(shù)據(jù)傳輸?shù)淖钚?shù)目和存儲(chǔ)位置而被優(yōu)化的順序來傳輸所述多個(gè)文件,由此使從客戶端(400)向服務(wù)器(401)的數(shù)據(jù)傳輸率最大化。
文檔編號(hào)G06F12/00GK1498375SQ02806662
公開日2004年5月19日 申請(qǐng)日期2002年3月18日 優(yōu)先權(quán)日2001年3月16日
發(fā)明者R·德佩爾特奧, R 德佩爾特奧 申請(qǐng)人:Otg軟件公司