專利名稱:用于管理在計(jì)算環(huán)境的存儲(chǔ)設(shè)備上的空間分配的系統(tǒng)和方法
技術(shù)領(lǐng)域:
本發(fā)明一般涉及在存儲(chǔ)設(shè)備上分配空間的操作,具體地涉及允許多個(gè)文件系統(tǒng)使用加權(quán)分配來(lái)在一個(gè)或多個(gè)存儲(chǔ)設(shè)備上分配空間。
背景技術(shù):
許多計(jì)算環(huán)境包括允許其他應(yīng)用程序在存儲(chǔ)設(shè)備上存儲(chǔ)數(shù)據(jù)和自其中檢索數(shù)據(jù)的文件系統(tǒng)。具體地,文件系統(tǒng)允許應(yīng)用程序建立文件并且為它們命名(一個(gè)文件是一個(gè)具有任意大小的命名的數(shù)據(jù)對(duì)象),將數(shù)據(jù)存入(或?qū)懭?文件,自文件中讀取數(shù)據(jù),刪除文件和在文件上完成其他操作。
文件結(jié)構(gòu)是存儲(chǔ)設(shè)備上的數(shù)據(jù)組織。除文件數(shù)據(jù)本身之外,文件結(jié)構(gòu)包含元數(shù)據(jù)(meta data),后者包括例如以下內(nèi)容一個(gè)用于將文件名稱映射至相應(yīng)文件的目錄;包含關(guān)于該文件的信息的文件元數(shù)據(jù),包括存儲(chǔ)設(shè)備上文件數(shù)據(jù)的位置(即哪些設(shè)備塊保存這些文件數(shù)據(jù));一個(gè)用于記錄哪些設(shè)備塊當(dāng)前正在用于存儲(chǔ)元數(shù)據(jù)和文件數(shù)據(jù)的分配映象;以及一個(gè)包括關(guān)于該文件結(jié)構(gòu)的總體信息(例如目錄位置、分配映象和其他元數(shù)據(jù)結(jié)構(gòu))的超級(jí)塊(superblock)。
為將一個(gè)文件的連續(xù)數(shù)據(jù)塊儲(chǔ)存于單獨(dú)的設(shè)備上,例如盤片或其他存儲(chǔ)設(shè)備上,使用一種已知的稱為劃分帶區(qū)(stripe)的技術(shù)。劃分帶區(qū)也可用于儲(chǔ)存文件系統(tǒng)的元數(shù)據(jù)。劃分帶區(qū)的優(yōu)點(diǎn)包括高性能和負(fù)載均衡。在劃分帶區(qū)操作中,文件系統(tǒng)按照規(guī)定的順序?qū)⑽募倪B續(xù)塊或文件的元數(shù)據(jù)寫入單獨(dú)設(shè)備中。例如,文件系統(tǒng)可能使用循環(huán)分配法,其中根據(jù)設(shè)備的循環(huán)排列來(lái)放置連續(xù)塊。此排列稱為帶序。帶序確定在文件系統(tǒng)中對(duì)每個(gè)設(shè)備分配(也即寫入)的順序和頻度。例如,一個(gè)具有4個(gè)盤片的使用簡(jiǎn)單循環(huán)分配方案的系統(tǒng)按照連續(xù)順序在每個(gè)盤上分配空間,即1,2,3,4,1,2,3,4,..。
此簡(jiǎn)單循環(huán)分配法由大多數(shù)劃分帶區(qū)的文件系統(tǒng)用于分配空間。雖然在某些情況下循環(huán)分配法對(duì)于包括同構(gòu)設(shè)備的系統(tǒng)已經(jīng)夠用,但已證明它不適用于具有異構(gòu)設(shè)備的系統(tǒng),它也不適用于使用同構(gòu)設(shè)備的不同環(huán)境。
作為例子,循環(huán)分配法不適用于具有不同存儲(chǔ)容量或吞吐量的各設(shè)備。在循環(huán)分配法中,所有設(shè)備都均等地進(jìn)行分配。因此,隨后對(duì)數(shù)據(jù)的訪問(wèn)通常也是均等地分布在各設(shè)備之間。對(duì)于包括具有不同存儲(chǔ)容量設(shè)備的系統(tǒng)而言,小設(shè)備在較大設(shè)備之前先寫滿,從而必須自帶序中排除,因而降低了以后所有寫操作的并行程度和性能。此外,跨越減少的一組設(shè)備劃分帶區(qū)的數(shù)據(jù)對(duì)于所有隨后的訪問(wèn)具有較差性能。
類似地,對(duì)于包括具有不同吞吐量的設(shè)備的系統(tǒng)而言,循環(huán)分配法無(wú)法使分配和隨后所有對(duì)數(shù)據(jù)的訪問(wèn)的吞吐量達(dá)到最大。另外,循環(huán)分配法沒(méi)有能力使處于不平衡狀態(tài)中的系統(tǒng)重新平衡??梢杂蟹N種原因產(chǎn)生不平衡狀態(tài),例如包括當(dāng)設(shè)備在多個(gè)文件或多個(gè)操作系統(tǒng)之間被分區(qū)時(shí);當(dāng)空設(shè)備附加于現(xiàn)有文件系統(tǒng)上時(shí);或當(dāng)分配策略改變時(shí)。為使這一系統(tǒng)重新平衡,需要用戶采取額外措施,例如將文件系統(tǒng)中所有數(shù)據(jù)都重新劃分帶區(qū)。
可以由單個(gè)文件系統(tǒng)完成劃分帶區(qū)操作,也可由一個(gè)共享設(shè)備文件環(huán)境(例如并行環(huán)境)的多個(gè)文件系統(tǒng)完成。在一個(gè)共享設(shè)備文件環(huán)境中,在多個(gè)計(jì)算節(jié)點(diǎn)上運(yùn)行的多個(gè)文件系統(tǒng)訪問(wèn)駐留在一個(gè)或多個(gè)存儲(chǔ)設(shè)備上的文件結(jié)構(gòu)。共享設(shè)備文件環(huán)境允許將使用文件結(jié)構(gòu)的應(yīng)用程序(或作業(yè))劃分為許多可以在多個(gè)節(jié)點(diǎn)上并行運(yùn)行的塊。這使得這些多個(gè)節(jié)點(diǎn)的處理能力得以提高以便滿足應(yīng)用程序的需要。
以上所述與劃分帶區(qū)相關(guān)聯(lián)的問(wèn)題在并行環(huán)境中將會(huì)加劇。因此需要一種并行分配技術(shù),它足夠一般化以便用于范圍廣泛的多種環(huán)境中。此外,需要一種能力來(lái)允許將分配操作重新平衡以便更好地滿足系統(tǒng)和/或設(shè)備的當(dāng)前條件和需求。
發(fā)明內(nèi)容
可以克服現(xiàn)有技術(shù)的缺點(diǎn)并且通過(guò)提供一種對(duì)計(jì)算環(huán)境的存儲(chǔ)設(shè)備空間分配進(jìn)行管理的方法而提供附加優(yōu)點(diǎn)。該方法包括例如為計(jì)算環(huán)境的一個(gè)或多個(gè)存儲(chǔ)設(shè)備獲取一個(gè)或多個(gè)權(quán)值;以及在一個(gè)或多個(gè)存儲(chǔ)設(shè)備中的至少一個(gè)存儲(chǔ)設(shè)備上分配正比于為至少一個(gè)存儲(chǔ)設(shè)備獲取的至少一個(gè)權(quán)值的空間,其中由計(jì)算環(huán)境的多個(gè)文件系統(tǒng)完成分配操作。
在另一個(gè)實(shí)施例中,提供一種對(duì)計(jì)算環(huán)境的存儲(chǔ)設(shè)備上的空間分配進(jìn)行管理的方法。該方法包括例如為計(jì)算環(huán)境的多個(gè)存儲(chǔ)設(shè)備的至少一個(gè)存儲(chǔ)設(shè)備子集中的每個(gè)存儲(chǔ)設(shè)備獲取一個(gè)權(quán)值;以及在至少一個(gè)存儲(chǔ)設(shè)備子集中的每個(gè)存儲(chǔ)設(shè)備上分配正比于賦予該存儲(chǔ)設(shè)備的權(quán)值的空間,其中由多個(gè)文件系統(tǒng)完成分配操作以使多個(gè)文件系統(tǒng)中的每個(gè)文件系統(tǒng)在至少一個(gè)存儲(chǔ)設(shè)備子集中的一個(gè)或多個(gè)存儲(chǔ)設(shè)備上分配空間。
此處也描述對(duì)應(yīng)于以上所述方法的系統(tǒng)和計(jì)算機(jī)程序產(chǎn)品并且為它們提出權(quán)利要求。
本發(fā)明的一個(gè)或多個(gè)方面的能力有利地提供由多個(gè)文件系統(tǒng)跨越一個(gè)或多個(gè)存儲(chǔ)設(shè)備進(jìn)行的空間分配操作,以使每個(gè)設(shè)備上的空間得到分配同時(shí)所占用空間正比于賦予該設(shè)備的某個(gè)權(quán)值。賦予各設(shè)備的權(quán)值能夠動(dòng)態(tài)地變化,因此本發(fā)明的一個(gè)方面允許跟蹤這些變化并且將這些信息送至其他需要或希望得到此信息的文件系統(tǒng)。此外,在一個(gè)或多個(gè)出現(xiàn)文件系統(tǒng)故障的節(jié)點(diǎn)中提供權(quán)值的恢復(fù)操作。
通過(guò)本發(fā)明的技術(shù)實(shí)現(xiàn)附加特征和優(yōu)點(diǎn)。此處詳細(xì)地描述本發(fā)明的其他實(shí)施例和各方面,這些被認(rèn)為是提出權(quán)利要求的本發(fā)明的一部分。
在本說(shuō)明書結(jié)尾處的權(quán)利要求書中具體地指出被認(rèn)為是本發(fā)明的主題事物并且明確地提出對(duì)它們的權(quán)利要求。結(jié)合附圖的以下詳細(xì)描述將使本發(fā)明的上述和其他目的、特征和優(yōu)點(diǎn)更為明顯,附圖中圖1闡述包含并使用本發(fā)明的一個(gè)或多個(gè)方面的計(jì)算環(huán)境的例子;圖2闡述根據(jù)本發(fā)明的一個(gè)方面的圖1的節(jié)點(diǎn)的更多細(xì)節(jié);圖3a闡述根據(jù)本發(fā)明的一個(gè)方面的劃分為多個(gè)分區(qū)的存儲(chǔ)設(shè)備的例子,其中每個(gè)分區(qū)由零個(gè)或更多個(gè)節(jié)點(diǎn)所擁有;圖3b闡述根據(jù)本發(fā)明的一個(gè)方面的與每個(gè)存儲(chǔ)設(shè)備相關(guān)聯(lián)的不同統(tǒng)計(jì)數(shù)據(jù)的例子;圖4闡述根據(jù)本發(fā)明的一個(gè)方面的與并行加權(quán)分配技術(shù)相關(guān)聯(lián)的邏輯的實(shí)施例;圖5闡述根據(jù)本發(fā)明的一個(gè)方面的與圖4的初始化操作相關(guān)聯(lián)的邏輯的實(shí)施例;圖6闡述根據(jù)本發(fā)明的一個(gè)方面的與圖4的跟蹤和分配操作相關(guān)聯(lián)的邏輯的實(shí)施例;圖7闡述根據(jù)本發(fā)明的一個(gè)方面的與圖4的節(jié)點(diǎn)故障和恢復(fù)操作相關(guān)聯(lián)的邏輯的實(shí)施例;圖8闡述根據(jù)本發(fā)明的一個(gè)方面的與靜態(tài)權(quán)值的恢復(fù)相關(guān)聯(lián)的邏輯的實(shí)施例;圖9闡述根據(jù)本發(fā)明的一個(gè)方面的與動(dòng)態(tài)權(quán)值的無(wú)狀態(tài)(no-state)恢復(fù)相關(guān)聯(lián)的邏輯的實(shí)施例;及圖10闡述根據(jù)本發(fā)明的一個(gè)方面的與動(dòng)態(tài)權(quán)值的全狀態(tài)(full-state)恢復(fù)相關(guān)聯(lián)的邏輯的實(shí)施例;具體實(shí)施方式
根據(jù)本發(fā)明的一個(gè)方面,多個(gè)文件系統(tǒng)在一個(gè)或多個(gè)存儲(chǔ)設(shè)備上使用與這些設(shè)備相關(guān)聯(lián)的權(quán)值分配空間。具體地,與存儲(chǔ)設(shè)備相關(guān)聯(lián)的權(quán)值被用于生成帶序,并且每個(gè)帶序向各自的文件系統(tǒng)提供在各個(gè)存儲(chǔ)設(shè)備上分配空間的順序以及在這些設(shè)備上分配空間的頻度。與每個(gè)設(shè)備相關(guān)聯(lián)的權(quán)值被分配至準(zhǔn)備在該設(shè)備上分配空間的文件系統(tǒng),以使組合的分配量仍然正比于權(quán)值。由于權(quán)值可以動(dòng)態(tài)地調(diào)整,各個(gè)文件系統(tǒng)一直保持權(quán)值調(diào)整的最新信息。
參照?qǐng)D1描述一個(gè)包括和/或使用本發(fā)明的各個(gè)方面的計(jì)算環(huán)境的實(shí)施例。計(jì)算環(huán)境100包括一個(gè)或多個(gè)節(jié)點(diǎn)102(例如節(jié)點(diǎn)1、..、節(jié)點(diǎn)n),它們共享對(duì)一個(gè)或多個(gè)存儲(chǔ)設(shè)備104(例如盤1、。。、盤m,或其他非易失性存儲(chǔ)器)的訪問(wèn)。各節(jié)點(diǎn)通過(guò)一個(gè)互連106彼此相連并且連接至存儲(chǔ)設(shè)備。在一個(gè)例子中,該互連包括一個(gè)無(wú)線連接、一條總線、一個(gè)令牌環(huán)或一個(gè)網(wǎng)絡(luò)連接,這些只是幾個(gè)例子而已。一個(gè)或多個(gè)這類連接所使用的一種通信協(xié)議是TCP/IP。在一個(gè)例子中假設(shè)各節(jié)點(diǎn)沒(méi)有共享的存儲(chǔ)器。
作為例子,節(jié)點(diǎn)102包括一個(gè)操作系統(tǒng)200(圖2),例如由國(guó)際商業(yè)機(jī)器公司提供的AIX操作系統(tǒng)。該操作系統(tǒng)包括一個(gè)文件系統(tǒng)202(例如一個(gè)軟件層),例如國(guó)際商業(yè)機(jī)器公司提供的通用并行文件系統(tǒng)(General Parallel File System,GPFS),它用于管理在各種存儲(chǔ)設(shè)備上分配空間的操作。在此處描述的一個(gè)或多個(gè)實(shí)施例中,假設(shè)每個(gè)節(jié)點(diǎn)具有單一文件系統(tǒng),因此某些說(shuō)明參照該節(jié)點(diǎn)。然而,在另一個(gè)例子中,一個(gè)節(jié)點(diǎn)可能包括多個(gè)文件系統(tǒng)。在此例子中,節(jié)點(diǎn)上每個(gè)參與的文件系統(tǒng)保持權(quán)值變動(dòng)的最新信息并且可能參與恢復(fù)操作。
文件系統(tǒng)202在不同存儲(chǔ)設(shè)備上分配空間,以使每個(gè)存儲(chǔ)設(shè)備上的總分配量正比于為該設(shè)備獲取的權(quán)值。如此處所用的,可以用任何方式獲取權(quán)值,包括但不限于接收權(quán)值和賦予權(quán)值。為每個(gè)設(shè)備獲取的權(quán)值用于確定分配策略并且允許文件系統(tǒng)使多個(gè)設(shè)備之間的分配量均衡以便與單個(gè)的設(shè)備能力相匹配并且更好地利用各設(shè)備的組合吞吐量。然而,權(quán)值和分配策略(即在每個(gè)設(shè)備上分配的順序和頻度)不依賴于分配中所用的技術(shù)。也即,分配中可以使用不同分配技術(shù)。分配技術(shù)與權(quán)值不相關(guān)。這允許權(quán)值表示多種參數(shù)(例如以下描述的容量加權(quán)、自由空間加權(quán)、吞吐量加權(quán)、循環(huán)加權(quán)、混合加權(quán)等)并且允許動(dòng)態(tài)地變動(dòng)權(quán)值。因此任何時(shí)候都可以改變分配策略以便更好地適合于當(dāng)前的條件或要求。還有,分配技術(shù)不必知道在獲取權(quán)值中所用的任何加權(quán)技術(shù)。
許多不同的分配技術(shù)能夠用于在存儲(chǔ)設(shè)備上分配空間。這些分配技術(shù)的例子包括確定性技術(shù)和隨機(jī)化技術(shù),它們之中每一個(gè)都詳細(xì)地描述于Sawdon等人于 共同提交的名為“確定在單個(gè)存儲(chǔ)設(shè)備上分配空間的順序和頻度”的美國(guó)專利申請(qǐng)系列號(hào) 中,它在此處整體地引為參考。
在并行文件系統(tǒng)中,(一個(gè)或多個(gè)節(jié)點(diǎn)的)多個(gè)文件系統(tǒng)能夠在一個(gè)或多個(gè)存儲(chǔ)設(shè)備上分配空間。作為例子,兩個(gè)或多個(gè)文件系統(tǒng)能夠在一個(gè)存儲(chǔ)設(shè)備上分配空間;和/或兩個(gè)或多個(gè)文件系統(tǒng)能夠在以任何方式組合的兩個(gè)或多個(gè)存儲(chǔ)設(shè)備上分配空間(例如多個(gè)文件系統(tǒng)中的每一個(gè)在不同設(shè)備上分配空間;和/或一個(gè)或多個(gè)文件系統(tǒng)在一個(gè)或多個(gè)設(shè)備上分配空間)。在一個(gè)或多個(gè)設(shè)備上分配空間的多個(gè)文件系統(tǒng)的任何組合都是可能的。因此可以由任何一個(gè)或多個(gè)文件系統(tǒng)在任何一個(gè)存儲(chǔ)設(shè)備上分配空間。
在一個(gè)例子中,由于多個(gè)文件系統(tǒng)可能在一個(gè)具體的存儲(chǔ)設(shè)備上分配空間,一個(gè)設(shè)備上的存儲(chǔ)空間可以被劃分為多個(gè)分區(qū),如圖3a中所闡述。如圖3a中所示,設(shè)備300被劃分為多個(gè)分區(qū)302a-d,并且每個(gè)分區(qū)由零個(gè)或更多個(gè)節(jié)點(diǎn)所擁有。例如,分區(qū)302a未被擁有;分區(qū)302b由節(jié)點(diǎn)1擁有;分區(qū)302c由節(jié)點(diǎn)2擁有;以及分區(qū)302d由節(jié)點(diǎn)3和4擁有。擁有分區(qū)的一個(gè)或多個(gè)節(jié)點(diǎn)被允許在該分區(qū)內(nèi)分配空間。(在又一個(gè)例子中,擁有權(quán)可能是基于文件系統(tǒng)的,其中每個(gè)分區(qū)由零個(gè)或更多個(gè)文件系統(tǒng)所擁有而與這些文件系統(tǒng)所駐留的節(jié)點(diǎn)無(wú)關(guān)。)在一個(gè)實(shí)施例中,由一個(gè)集中式分配管理器維護(hù)擁有權(quán)信息。此管理器可以是參與分配操作的一個(gè)節(jié)點(diǎn)的一部分,或者是主要用于控制而不實(shí)際參與分配的另一個(gè)節(jié)點(diǎn)。對(duì)空間進(jìn)行分區(qū)和集中式分配管理器的例子描述于Schmuck等人的名為“并行文件系統(tǒng)和具有分配映象的方法”的專利中,它于1999年9月28日頒布,美國(guó)專利號(hào)5,960,446,在此處整體地引為參考。
擁有權(quán)信息作為與每個(gè)存儲(chǔ)設(shè)備相關(guān)聯(lián)的各種統(tǒng)計(jì)數(shù)據(jù)的一部分被維護(hù)著。具體地,作為例子,每個(gè)設(shè)備具有與其相關(guān)聯(lián)的以下統(tǒng)計(jì)數(shù)據(jù)310(圖3b)
(A)每個(gè)設(shè)備總量設(shè)備總量表示與該設(shè)備相關(guān)聯(lián)的一個(gè)特定參數(shù)是多大。例如,總量可以標(biāo)示設(shè)備上自由空間的數(shù)量。
(B)每個(gè)分區(qū)的信息(1)擁有者標(biāo)示該特定分區(qū)的一個(gè)或多個(gè)擁有者;及(2)分區(qū)總量標(biāo)示與該分區(qū)相關(guān)聯(lián)的特定參數(shù)是多大(例如該分區(qū)內(nèi)自由空間的數(shù)量)。
根據(jù)本發(fā)明的一個(gè)方面,每個(gè)準(zhǔn)備分配空間的文件系統(tǒng)使用一個(gè)加權(quán)分配技術(shù)以便確定選擇供分配的設(shè)備的順序以及在這些設(shè)備上分配空間的頻度。用于在一個(gè)特定設(shè)備上分配空間的文件系統(tǒng)同意該設(shè)備的權(quán)值,以使每個(gè)設(shè)備的總分配量保持為正比于賦予該設(shè)備的權(quán)值。通過(guò)與集中式分配管理器聯(lián)系而取得該同意,這將在以下描述。
用于分配的權(quán)值能夠動(dòng)態(tài)地變化。所以將這些新值送至需要或希望得到新信息的節(jié)點(diǎn)(或文件系統(tǒng))。因此權(quán)值的跟蹤和分配是本發(fā)明的并行加權(quán)分配技術(shù)的一部分。此外,由于并行環(huán)境可能遭受部分故障,它的一個(gè)或多個(gè)節(jié)點(diǎn)可能發(fā)生故障而后獨(dú)立地重新啟動(dòng),因此本發(fā)明的分配技術(shù)也包括恢復(fù)操作。
參照?qǐng)D4描述并行文件系統(tǒng)的加權(quán)分配技術(shù)的一個(gè)例子。如圖4中所示,該技術(shù)包括三項(xiàng)主要操作,包括初始化、步驟400,權(quán)值的跟蹤和分配、步驟402以及節(jié)點(diǎn)的故障和恢復(fù)、步驟404。這些操作中的每一個(gè)可以通過(guò)多種方式加以實(shí)施。此處描述每個(gè)操作的兩個(gè)可能的實(shí)施例。第一實(shí)施例稱為無(wú)狀態(tài)實(shí)施例,它使用最少數(shù)量的狀態(tài),但具有更長(zhǎng)的自節(jié)點(diǎn)故障中恢復(fù)的時(shí)間。第二實(shí)施例稱為全狀態(tài)實(shí)施例,其中使用分配管理器來(lái)維護(hù)分區(qū)擁有權(quán)信息以及完全的每個(gè)設(shè)備-每個(gè)分區(qū)的計(jì)數(shù)器。此額外狀態(tài)用于減少恢復(fù)用的時(shí)間。以下更詳細(xì)地描述對(duì)每一個(gè)操作這些實(shí)施例中的每一個(gè)實(shí)施例。
參照?qǐng)D5更詳細(xì)地描述初始化操作。此操作的兩個(gè)實(shí)施例(即無(wú)狀態(tài)實(shí)施例和全狀態(tài)實(shí)施例)執(zhí)行圖5中闡述的操作。
最初,文件系統(tǒng)選擇一個(gè)分配管理器、步驟500。在一個(gè)例子中,試圖運(yùn)行初始化邏輯的第一個(gè)節(jié)點(diǎn)被指定為分配管理器。其他節(jié)點(diǎn)稱為客戶節(jié)點(diǎn)??蛻艄?jié)點(diǎn)使用例如全局命名服務(wù)來(lái)尋找分配管理器并且等待分配管理器完成初始化操作。
在指定分配管理器之后,分配管理器確定準(zhǔn)備用于分配的初始權(quán)值、步驟502。分配管理器可以單獨(dú)串行地工作或者并行地依靠一個(gè)或多個(gè)客戶節(jié)點(diǎn)的幫助來(lái)確定權(quán)值。
初始權(quán)值取決于所用加權(quán)技術(shù)。各種可用的加權(quán)技術(shù)包括基于靜態(tài)參數(shù)的技術(shù)以及基于動(dòng)態(tài)參數(shù)的技術(shù)。不同技術(shù)的例子包括以下,例如(1)循環(huán)加權(quán)-為實(shí)施簡(jiǎn)單的循環(huán)分配,將每個(gè)設(shè)備的權(quán)值設(shè)置為1。對(duì)每個(gè)設(shè)備都使用相等的權(quán)值,該技術(shù)以相等的次數(shù)在每個(gè)設(shè)備上分配空間。
(2)容量權(quán)值-為更好地在大小不均勻的設(shè)備間對(duì)分配量進(jìn)行分布,可以使用每個(gè)設(shè)備的相關(guān)容量來(lái)賦予權(quán)值。此加權(quán)技術(shù)促使各設(shè)備填充相同比例(即無(wú)論設(shè)備容量如何,每個(gè)設(shè)備上利用的百分比都是相同的)。因此,每個(gè)設(shè)備上所期望的I/O負(fù)載也是正比于設(shè)備容量的。
對(duì)于容量加權(quán),分配管理器確定每個(gè)設(shè)備的最大存儲(chǔ)容量??梢杂稍S多方式作到這點(diǎn),例如檢查每個(gè)設(shè)備的描述符。
(3)自由空間加權(quán)-在此動(dòng)態(tài)加權(quán)技術(shù)中,權(quán)值可以是基于每個(gè)設(shè)備上自由空間的相關(guān)數(shù)量的。在此技術(shù)中,具有較高百分比自由空間的設(shè)備按比例接受更多分配量。這用于使被不均勻地填充的設(shè)備重新平衡,造成不均勻性的原因可能是由于將新設(shè)備加入現(xiàn)有系統(tǒng)上或者是由于先前在不均勻大小的設(shè)備上使用循環(huán)分配法所致??梢詣?dòng)態(tài)地調(diào)整權(quán)值以便考慮相關(guān)自由空間數(shù)量的變化。對(duì)于均勻填充的各設(shè)備,自由空間加權(quán)技術(shù)相當(dāng)于容量加權(quán)技術(shù)。
對(duì)于自由空間加權(quán),檢查每個(gè)設(shè)備以便確定每個(gè)設(shè)備上的自由塊的數(shù)量。在一個(gè)例子中,該設(shè)備的分配映象能夠提供此信息。
(分配映象描述于Schmuck等人的名為“并行文件系統(tǒng)和具有分配映象的方法”的專利中,它于1999年9月28日頒布,美國(guó)專利號(hào)5,960,446,它在此處整體地引為參考。)(4)吞吐量加權(quán)-也可根據(jù)每個(gè)設(shè)備的相關(guān)性能賦予權(quán)值。具有較高吞吐量的設(shè)備按比例接受更多的分配量,因此平均而言接受更多I/O請(qǐng)求。此加權(quán)操作試圖使組合的設(shè)備的總吞吐量最大化。
有若干方式用于在初始化期間確定吞吐量權(quán)值,包括例如自一個(gè)表格讀取設(shè)備吞吐量或者通過(guò)測(cè)量每個(gè)設(shè)備的實(shí)際吞吐量而測(cè)量設(shè)備吞吐量,而該系統(tǒng)仍然處于最大I/O負(fù)載下。
(5)混合加權(quán)-不但能夠動(dòng)態(tài)地改變權(quán)值,而且能夠改變賦予權(quán)值的技術(shù)。進(jìn)而,可以使用將兩個(gè)或多個(gè)加權(quán)技術(shù)組合起來(lái)而產(chǎn)生的混合加權(quán)。這可以如下完成在多個(gè)技術(shù)下計(jì)算每個(gè)設(shè)備的規(guī)范化(normalized)權(quán)值,然后將來(lái)自每個(gè)所希望的技術(shù)的一個(gè)設(shè)備的規(guī)范化權(quán)值相加。這使該系統(tǒng)可以將分配技術(shù)進(jìn)行剪裁以適合于當(dāng)前要求并且當(dāng)系統(tǒng)變動(dòng)時(shí)改變分配技術(shù)。
繼續(xù)參照?qǐng)D5,在收集初始權(quán)值之后,分配管理器將這些權(quán)值送至其他節(jié)點(diǎn)(或其他文件系統(tǒng))、步驟504。在一個(gè)例子中,將各權(quán)值送至所有參與分配操作的節(jié)點(diǎn)。在另一個(gè)例子中,只將一個(gè)特定設(shè)備的權(quán)值送至將要使用該權(quán)值的節(jié)點(diǎn)??梢允褂萌舾杉夹g(shù)完成發(fā)送操作,包括傳送消息或進(jìn)行廣播。
此后,每個(gè)準(zhǔn)備進(jìn)行分配的文件系統(tǒng)使用這些權(quán)值來(lái)初始化一個(gè)本地加權(quán)分配技術(shù)。本地加權(quán)分配技術(shù)是一種由文件系統(tǒng)執(zhí)行的用于生成帶序的技術(shù),該帶序用于確定在存儲(chǔ)設(shè)備上的分配操作順序和頻度。此技術(shù)包括例如一個(gè)用于將權(quán)值規(guī)范化和設(shè)置某些變量的初始化步驟;以及一個(gè)使用規(guī)范化權(quán)值來(lái)確定帶序的帶序生成步驟。取決于分配技術(shù)的類型,還可能包括其他步驟。
多種加權(quán)分配技術(shù)描述于Sawdon等人的于 共同提交的名為“確定在單個(gè)存儲(chǔ)設(shè)備上分配空間的順序和頻度”的美國(guó)專利申請(qǐng)系列號(hào) 中,它在此處整體地引為參考。這些技術(shù)的例子包括確定性技術(shù)和隨機(jī)化技術(shù)。在一個(gè)例子中,如果使用確定性技術(shù),則帶序內(nèi)的起始位置是隨機(jī)的。因此,不同文件系統(tǒng)可能在帶序內(nèi)的不同位置處開始操作。
將本地加權(quán)分配技術(shù)進(jìn)行初始化,就完成了初始化操作。如上所述,無(wú)狀態(tài)和全狀態(tài)實(shí)施例兩者都執(zhí)行以上所述操作。然而,除以上所述之外,當(dāng)使用動(dòng)態(tài)加權(quán)時(shí),全狀態(tài)實(shí)施例如自由空間加權(quán)技術(shù)一樣也在每個(gè)設(shè)備-每個(gè)分區(qū)的表格中儲(chǔ)存每個(gè)分區(qū)中每個(gè)設(shè)備的自由空間(見(jiàn)圖3b)。
回來(lái)參照?qǐng)D4,隨初始化操作完成之后,執(zhí)行跟蹤和分配權(quán)值的操作、步驟402。周期地更新基于動(dòng)態(tài)信息,例如每個(gè)設(shè)備的自由空間,的權(quán)值,以便保持它們的準(zhǔn)確性。當(dāng)例如配置改變時(shí)或當(dāng)分配策略改變時(shí),更新基于靜態(tài)信息,例如容量,的權(quán)值。參照?qǐng)D6描述在跟蹤和分配權(quán)值中采用的邏輯的一個(gè)實(shí)施例。參照自由空間的跟蹤和分配描述此具體例子(動(dòng)態(tài)權(quán)值)。然而,該邏輯可以類似地應(yīng)用于其他動(dòng)態(tài)權(quán)值或靜態(tài)權(quán)值。
參照?qǐng)D6,多個(gè)不同節(jié)點(diǎn)中的每一個(gè)會(huì)對(duì)信息(即動(dòng)態(tài)信息和/或靜態(tài)信息)中的變化進(jìn)行跟蹤、步驟600。作為例子,對(duì)于自由空間加權(quán)技術(shù),每個(gè)合適的節(jié)點(diǎn)跟蹤在每個(gè)設(shè)備上執(zhí)行的分配和釋放次數(shù)。每個(gè)設(shè)備上稱為差值(delta)的凈分配次數(shù)是由于在該節(jié)點(diǎn)處的操作所造成的每個(gè)設(shè)備上自由空間的差別??蛻艄?jié)點(diǎn)將這些差值加以累計(jì)直至到達(dá)某一閾值(例如100次操作)。當(dāng)?shù)竭_(dá)閾值或發(fā)生另一個(gè)預(yù)定事件(例如每隔30秒)時(shí),該節(jié)點(diǎn)向分配管理器通知該變化、步驟602。具體地,客戶節(jié)點(diǎn)使用一種通信機(jī)制將這些差值發(fā)送至分配管理器。在成功地發(fā)送差值之后,客戶節(jié)點(diǎn)隨后將其差值計(jì)數(shù)器復(fù)位為零。
分配管理器自一個(gè)客戶(節(jié)點(diǎn))收到差值之后,將它們加至由分配管理器維護(hù)的總自由空間計(jì)數(shù)器中(見(jiàn)圖3b的每個(gè)設(shè)備總量312)、步驟604。也即,分配管理器根據(jù)它收到的差值為特定設(shè)備調(diào)整權(quán)值。
調(diào)整權(quán)值之后,這些調(diào)整的權(quán)值(例如各設(shè)備新的總自由空間計(jì)數(shù)器)送回至客戶(節(jié)點(diǎn)),作為對(duì)發(fā)送差值的消息的回答、步驟606。當(dāng)客戶(節(jié)點(diǎn))收到調(diào)整的權(quán)值后,該客戶使用調(diào)整的權(quán)值將其本地分配技術(shù)重新初始化、步驟608。因此生成一個(gè)新的帶序。
以上所述的在客戶與分配管理器之間的通信允許客戶在他們已經(jīng)與分配管理器通信之后來(lái)同意準(zhǔn)備使用的權(quán)值。將新權(quán)值通知各節(jié)點(diǎn)的時(shí)間愈快,則此同意操作也來(lái)得愈快。何時(shí)和如何告訴各客戶的決定取決于實(shí)施例。
例如,客戶在發(fā)送差值中使用的閾值也用于約束由分配管理器維護(hù)的總自由空間計(jì)數(shù)器與每個(gè)設(shè)備上自由空間實(shí)際數(shù)量之間的差別。為保持由客戶節(jié)點(diǎn)使用的權(quán)值的準(zhǔn)確度相同,在一個(gè)例子中,任何一個(gè)大的權(quán)值變動(dòng)將促使分配管理器立即發(fā)送新權(quán)值至各客戶節(jié)點(diǎn),其中該大的權(quán)值變動(dòng)可能由例如分配策略的改變、由硬件配置的改變或由從一組非常活躍的客戶節(jié)點(diǎn)收到的差值所造成的大的累計(jì)值變化所造成。權(quán)值的這個(gè)改變不會(huì)影響儲(chǔ)存于各節(jié)點(diǎn)中的當(dāng)前差值。
為此處描述的兩個(gè)實(shí)施例(即無(wú)狀態(tài)實(shí)施例和全狀態(tài)實(shí)施例)中的每一個(gè)完成以上操作。然而,對(duì)于全狀態(tài)實(shí)施例,每個(gè)客戶節(jié)點(diǎn)為它所修改的每個(gè)分區(qū)保持單獨(dú)的差值計(jì)數(shù)器。在收到每個(gè)分區(qū)的差值后,分配管理器將每個(gè)設(shè)備-每個(gè)分區(qū)的計(jì)數(shù)器318(圖3b)以及設(shè)備總量312更新。
回至圖4,除用于將基于加權(quán)分配的系統(tǒng)重新平衡的跟蹤和分配操作之外,本發(fā)明的并行加權(quán)分配技術(shù)還提供從節(jié)點(diǎn)故障中恢復(fù)的能力、步驟404。并行文件環(huán)境中的節(jié)點(diǎn)可能發(fā)生故障或者彼此獨(dú)立地重新啟動(dòng)。為處理節(jié)點(diǎn)故障。故障節(jié)點(diǎn)所丟失的易失性狀態(tài)由另一個(gè)節(jié)點(diǎn)來(lái)重建。此恢復(fù)操作依賴于若干因素,包括例如故障節(jié)點(diǎn)是客戶還是用作分配管理器;這些權(quán)值是靜態(tài)還是動(dòng)態(tài);以及對(duì)于動(dòng)態(tài)權(quán)值它是否也依賴于由分配管理器維護(hù)的狀態(tài)數(shù)量。
此處考慮三種主要情況使用靜態(tài)權(quán)值進(jìn)行恢復(fù),在無(wú)狀態(tài)實(shí)施例中使用動(dòng)態(tài)權(quán)值進(jìn)行恢復(fù)以及在全狀態(tài)實(shí)施例中使用動(dòng)態(tài)權(quán)值進(jìn)行恢復(fù)。對(duì)于這些情況中的每一個(gè),描述一個(gè)用于從單個(gè)客戶節(jié)點(diǎn)中或從分配管理器節(jié)點(diǎn)故障中恢復(fù)的示例性技術(shù)。在一個(gè)例子中,只要這些節(jié)點(diǎn)的法定數(shù)(quorum)仍然可用,這些技術(shù)容易擴(kuò)展到處理多節(jié)點(diǎn)故障。進(jìn)一步參照?qǐng)D7-10描述由文件系統(tǒng)管理的從節(jié)點(diǎn)故障中的恢復(fù)操作。
參照?qǐng)D7,最初判斷所需恢復(fù)操作的類型、步驟700。例如,判斷是否需要恢復(fù)靜態(tài)權(quán)值、詢問(wèn)702。如果它是靜態(tài)權(quán)值的恢復(fù),則處理過(guò)程進(jìn)至圖8的邏輯、步驟704。
參照?qǐng)D8,最初判斷是否為一個(gè)客戶節(jié)點(diǎn)故障、詢問(wèn)800。如果客戶節(jié)點(diǎn)有故障,則不再需要附加的恢復(fù)操作、步驟802。然而如果它不是一個(gè)客戶節(jié)點(diǎn),那就是分配管理器出現(xiàn)故障,則將靜態(tài)權(quán)值恢復(fù)、步驟804。在一個(gè)例子中,通過(guò)從客戶節(jié)點(diǎn)中獲取靜態(tài)權(quán)值或者從其他可用信息中重建它們來(lái)恢復(fù)靜態(tài)權(quán)值。即使在恢復(fù)有故障節(jié)點(diǎn)的整個(gè)過(guò)程中,無(wú)故障節(jié)點(diǎn)仍然可以繼續(xù)如常地進(jìn)行分配。
回來(lái)參照?qǐng)D7,如果恢復(fù)的不是靜態(tài)權(quán)值,則假設(shè)這是動(dòng)態(tài)權(quán)值的恢復(fù)。因此判斷它是否為具有無(wú)狀態(tài)的動(dòng)態(tài)權(quán)值的恢復(fù)、詢問(wèn)706。如果它是動(dòng)態(tài)權(quán)值的無(wú)狀態(tài)恢復(fù),則參照?qǐng)D9所描述的來(lái)執(zhí)行恢復(fù)過(guò)程、步驟708。再一次,這些例子是結(jié)合自由空間進(jìn)行描述的,但它們可以擴(kuò)展至其他動(dòng)態(tài)權(quán)值。
參照?qǐng)D9,最初判斷它是否為一個(gè)有故障的客戶節(jié)點(diǎn)、詢問(wèn)900。如果客戶節(jié)點(diǎn)有故障,則分配管理器檢查未被擁有的分區(qū)的分區(qū)擁有權(quán)信息,并且將這些分區(qū)標(biāo)記為不可用,以便在與該分區(qū)相關(guān)聯(lián)的恢復(fù)操作完成之前阻止將它們賦予客戶節(jié)點(diǎn)、步驟902。(當(dāng)一個(gè)節(jié)點(diǎn)有故障時(shí),該節(jié)點(diǎn)所擁有的分區(qū)即成為未被擁有。)另外,分配管理器檢查由多個(gè)節(jié)點(diǎn)所擁有的分區(qū)的分區(qū)擁有權(quán)信息。對(duì)于每個(gè)共享的分區(qū),它發(fā)送一個(gè)撤消擁有權(quán)消息至除一個(gè)以外的所用擁有者、步驟904。這使涉及恢復(fù)操作的節(jié)點(diǎn)數(shù)量最少。
分配管理器然后將每個(gè)設(shè)備自由空間總量設(shè)置為零、步驟906,并且發(fā)送一條廣播消息至無(wú)故障節(jié)點(diǎn)以便向它們索取該節(jié)點(diǎn)所擁有的分區(qū)的每個(gè)設(shè)備自由空間計(jì)數(shù)、步驟908。
在收到此消息后,每個(gè)合適的客戶節(jié)點(diǎn)停止分配操作及將其差值計(jì)數(shù)器復(fù)位為零。此外,它將所擁有的每個(gè)分區(qū)的每個(gè)設(shè)備自由空間計(jì)數(shù)送回至分配管理器。然后該節(jié)點(diǎn)可以在它當(dāng)前擁有的分區(qū)內(nèi)恢復(fù)分配空間。
當(dāng)分配管理器收到這些回答后、步驟910,將每個(gè)設(shè)備自由空間計(jì)數(shù)加至總量中、步驟912。而且,所有未被擁有的分區(qū)內(nèi)的自由空間也被恢復(fù)、步驟914。這可以由分配管理器串行地完成或者并行地依靠客戶節(jié)點(diǎn)的幫助來(lái)完成。在一個(gè)例子中,由于無(wú)狀態(tài)實(shí)施例缺乏將恢復(fù)操作只限定于由故障節(jié)點(diǎn)所修改的分區(qū)所需狀態(tài)信息,故障節(jié)點(diǎn)的恢復(fù)操作包括讀取非易失性分配映象以便重建每個(gè)設(shè)備自由空間總量。當(dāng)每個(gè)未知分區(qū)被恢復(fù)后,它對(duì)于賦值是合格的因此標(biāo)記為可用。這完成故障客戶動(dòng)態(tài)權(quán)值的無(wú)狀態(tài)恢復(fù)操作。在完成恢復(fù)操作后,可以如上所述地將動(dòng)態(tài)權(quán)值的值(例如總自由空間)重新計(jì)算,以及可以將此調(diào)整的權(quán)值送至一個(gè)或多個(gè)文件系統(tǒng)。
回至詢問(wèn)900,如果故障節(jié)點(diǎn)是分配管理器,則選擇新的分配管理器、步驟918。在一個(gè)實(shí)施例中,通過(guò)將該功能賦予具有最低標(biāo)識(shí)(id)/地址的無(wú)故障節(jié)點(diǎn)來(lái)選擇新的分配管理器。
新賦予的分配管理器重新建立分區(qū)擁有權(quán)信息、步驟920。在一個(gè)例子中,通過(guò)向其他節(jié)點(diǎn)請(qǐng)求有關(guān)它們所擁有的分區(qū)的信息來(lái)完成這一步驟。例如,分配管理器發(fā)送一條廣播消息至其余無(wú)故障的節(jié)點(diǎn),要求它們識(shí)別它們所擁有的分區(qū)。此后,恢復(fù)操作如上所述地進(jìn)至步驟902。
回至圖7,如果恢復(fù)操作是用于具有全狀態(tài)能力的動(dòng)態(tài)權(quán)值、詢問(wèn)706,則如同圖10所描述地進(jìn)行恢復(fù)操作、步驟710。在此例子中,由全狀態(tài)實(shí)施例保持的狀態(tài)允許從故障節(jié)點(diǎn)中恢復(fù)由故障節(jié)點(diǎn)所擁有的分區(qū)。它也允許無(wú)故障客戶節(jié)點(diǎn)通過(guò)恢復(fù)操作繼續(xù)進(jìn)行分配。
參照?qǐng)D10,最初判斷它是否為有故障客戶節(jié)點(diǎn)、詢問(wèn)1000。如果它是有故障客戶節(jié)點(diǎn),分配管理器檢查由故障節(jié)點(diǎn)所擁有的分區(qū)的分區(qū)擁有權(quán)信息。這些分區(qū)被標(biāo)記為不可用以便在完成對(duì)它們的恢復(fù)操作之前阻止它們被重新賦值、步驟1002。
然后分配管理器檢查由故障節(jié)點(diǎn)所擁有并且與一個(gè)或多個(gè)節(jié)點(diǎn)共享的分區(qū)的分區(qū)擁有權(quán)信息。對(duì)于每個(gè)這類共享的分區(qū),分配管理器發(fā)送一個(gè)撤消擁有權(quán)消息至所有無(wú)故障擁有者、步驟1004。在收到此消息后,客戶釋放對(duì)該分區(qū)的擁有權(quán)并且將分區(qū)的差值計(jì)數(shù)器設(shè)置為零。
此后,可以由分配管理器串行地或者依靠一個(gè)或多個(gè)客戶節(jié)點(diǎn)的幫助并行地恢復(fù)不可用分區(qū)中的自由空間、步驟1006。當(dāng)每個(gè)分區(qū)被恢復(fù)后,將每個(gè)設(shè)備總量和每個(gè)設(shè)備-每個(gè)分區(qū)信息更新并且將該分區(qū)標(biāo)記為可用于賦值。這就完成了從故障客戶節(jié)點(diǎn)中恢復(fù)的操作。
回至詢問(wèn)1000,如果它是有故障的分配管理器,則恢復(fù)過(guò)程如下進(jìn)行。最初選擇一個(gè)新的分配管理器、步驟1008。在一個(gè)例子中,這通過(guò)將功能賦予具有最低標(biāo)識(shí)(id)/地址的無(wú)故障節(jié)點(diǎn)來(lái)完成。
最新賦值的分配管理器重新建立分區(qū)擁有權(quán)信息、步驟1010。在一個(gè)例子中,通過(guò)發(fā)送一個(gè)廣播消息至其余無(wú)故障節(jié)點(diǎn)、索取它們所擁有的分區(qū)來(lái)建立信息。未被分配管理器擁有的分區(qū)標(biāo)記為不可用,以便防止完成恢復(fù)操作之前將它們分配、步驟1012。
然后分配管理器檢查一個(gè)或多個(gè)節(jié)點(diǎn)所擁有的分區(qū)的分區(qū)擁有權(quán)信息。對(duì)于每個(gè)共享的分區(qū),分配管理器發(fā)送一個(gè)撤消擁有權(quán)消息至除一個(gè)以外的所用擁有者、步驟1014。在收到此消息后,客戶釋放該分區(qū)的擁有權(quán)并且將分區(qū)的差值計(jì)數(shù)器設(shè)置至零。
然后分配管理器發(fā)送一個(gè)廣播消息至各節(jié)點(diǎn),要求它們發(fā)送它們所擁有的每個(gè)分區(qū)的每個(gè)設(shè)備自由空間信息、步驟1016。在收到此消息后,客戶將分區(qū)的差值計(jì)數(shù)器復(fù)位為零,并且將每個(gè)設(shè)備自由空間信息送回至分配管理器。
當(dāng)分配管理器收到回答后,它將每個(gè)設(shè)備-每個(gè)分區(qū)信息以及每個(gè)設(shè)備總量更新、步驟1018。
隨后由分配管理器或者串行地或者依靠一個(gè)或多個(gè)客戶節(jié)點(diǎn)的幫助并行地恢復(fù)不可用分區(qū)中的自由空間、步驟1020。當(dāng)每個(gè)分區(qū)被恢復(fù)后,將每個(gè)設(shè)備總量和每個(gè)設(shè)備-每個(gè)分區(qū)信息進(jìn)行更新并且將分區(qū)標(biāo)記為可用于賦值。這就完成了動(dòng)態(tài)權(quán)值的全狀態(tài)恢復(fù)操作。
根據(jù)本發(fā)明的一個(gè)方面,恢復(fù)技術(shù)(靜態(tài)和動(dòng)態(tài)權(quán)值兩者)維持與每個(gè)設(shè)備相關(guān)聯(lián)的目標(biāo)權(quán)值。具體地在一個(gè)例子中,每個(gè)設(shè)備具有一個(gè)與其相關(guān)聯(lián)的目標(biāo)權(quán)值。在靜態(tài)加權(quán)的情況下,目標(biāo)權(quán)值相當(dāng)于靜態(tài)權(quán)值,因此不再需要加以區(qū)別。然而,在動(dòng)態(tài)加權(quán)操作中,任何特定時(shí)候,目標(biāo)權(quán)值(在一個(gè)例子中它是靜態(tài)的)可能與正在使用的權(quán)值不同。也即,正在使用的權(quán)值可能已經(jīng)被調(diào)整過(guò)以便滿足目標(biāo)權(quán)值。即使一個(gè)或多個(gè)節(jié)點(diǎn)(或文件系統(tǒng))出現(xiàn)故障,也仍然可以完成維持設(shè)備的目標(biāo)權(quán)值。還有,即使一個(gè)或多個(gè)存儲(chǔ)設(shè)備出現(xiàn)故障并且被重新啟動(dòng)或被替換,也仍然可以維持它。
以上詳細(xì)地描述了并行加權(quán)分配能力,它允許多個(gè)文件系統(tǒng)使用加權(quán)分配操作在一個(gè)或多個(gè)存儲(chǔ)設(shè)備上分配空間。在共享的存儲(chǔ)設(shè)備上分配空間,以使每個(gè)設(shè)備上占用的空間正比于賦予該設(shè)備的某些權(quán)值。這使得在各設(shè)備之間的分配量取得平衡,以使每個(gè)設(shè)備上的裝負(fù)載正比于賦予該設(shè)備的權(quán)值。對(duì)于并行環(huán)境,賦予每個(gè)設(shè)備的權(quán)值被分發(fā)至使用該權(quán)值的不同文件系統(tǒng),以使組合的分配空間仍然正比于各權(quán)值。此外,當(dāng)權(quán)值變動(dòng)或者用于賦予權(quán)值的技術(shù)變動(dòng)時(shí),文件系統(tǒng)都被保持為最新?tīng)顟B(tài)。
在一個(gè)例子中,不同文件系統(tǒng)能夠使用不同分配技術(shù)以便在各種存儲(chǔ)設(shè)備上分配空間。在一個(gè)例子中,這通過(guò)將存儲(chǔ)設(shè)備組合為各組來(lái)完成這點(diǎn),其中使用一種分配技術(shù)的文件系統(tǒng)在一組設(shè)備上分配空間,而使用不同技術(shù)的文件系統(tǒng)在不同組的設(shè)備上分配空間。然而在另一個(gè)例子中不使用分組方法。
此外,由各個(gè)文件系統(tǒng)獲取的權(quán)值能夠表示不同參數(shù)。例如,一個(gè)文件系統(tǒng)能夠獲取基于自由空間的權(quán)值,而另一個(gè)文件系統(tǒng)能夠獲取基于容量的權(quán)值。再一次,在一個(gè)例子中,可將存儲(chǔ)設(shè)備組合為不同的組以便滿足不同加權(quán)技術(shù)的用途。然而在另一個(gè)例子中,不使用分組方法。
在又一個(gè)例子中,可以將分配策略設(shè)置為多種級(jí)別。具體地,可以生成一個(gè)或多個(gè)帶序并且使用它跨越各存儲(chǔ)設(shè)備來(lái)分配空間。作為例子,一個(gè)帶序可用于一個(gè)文件系統(tǒng)的所有分配操作;在另一個(gè)例子中,存儲(chǔ)設(shè)備劃分為組并且生成帶序以便用于每組;以及在又一個(gè)例子中,為每個(gè)準(zhǔn)備為其分配空間的文件生成帶序。因此,在最后一個(gè)例子中,可使用一個(gè)帶序來(lái)為一個(gè)文件分配空間,而另一個(gè)帶序(相同的或不同的)可被用于為另一個(gè)文件分配空間。在以上方案中的任何一個(gè)中,如上所述地生成帶序。
雖然加權(quán)分配操作取決于權(quán)值來(lái)確定分配策略,但分配技術(shù)本身并不依賴于賦予每個(gè)設(shè)備的實(shí)際權(quán)值。任何時(shí)候都可以改變權(quán)值,以便按照需要或期望調(diào)整每個(gè)設(shè)備上的負(fù)載。此外,任何時(shí)候都可改變賦予權(quán)值的技術(shù)。這允許動(dòng)態(tài)地設(shè)置和調(diào)整分配策略以便滿足系統(tǒng)的當(dāng)前需求。此外,可以改變分配策略而不用重新啟動(dòng)文件系統(tǒng)。
可以動(dòng)態(tài)地改變賦予各設(shè)備的權(quán)值以便表示不同值和/或表示不同操作參數(shù)(例如容量、自由空間、I/O吞吐量、循環(huán)操作、混合操作)。此外,分配技術(shù)不必了解加權(quán)賦值技術(shù)。還有,分配技術(shù)可以容納不同數(shù)據(jù)流,包括視頻流和一般數(shù)據(jù)流在內(nèi)。這是因?yàn)榉峙浼夹g(shù)事先不知道也不必要知道數(shù)據(jù)流長(zhǎng)度和/或這些數(shù)據(jù)流的訪問(wèn)模式。
本發(fā)明的分配能力也能根據(jù)多個(gè)異構(gòu)存儲(chǔ)設(shè)備之間的權(quán)值來(lái)劃分帶區(qū)。也即,存儲(chǔ)設(shè)備可以有不同大小、不同容量和/或不同速度。能夠利用這些異構(gòu)設(shè)備并且在最大程度上加以利用。例如,存儲(chǔ)使用可以最大化和/或吞吐量可以最大化。
另外,本發(fā)明的分配能力能夠自動(dòng)地補(bǔ)償并行文件環(huán)境中的不平衡。這類不平衡可能由于向系統(tǒng)添加設(shè)備、將設(shè)備自系統(tǒng)中移走或者任何其他原因所造成??梢酝瓿森h(huán)境的重新平衡而不必將已經(jīng)劃分帶區(qū)的空間重新劃分帶區(qū)。在一個(gè)例子中,通過(guò)獲取新的、不同的和/或附加的權(quán)值和使用一種分配技術(shù)來(lái)根據(jù)這些權(quán)值分配空間而完成重新平衡。
以上所述的計(jì)算環(huán)境只是作為一個(gè)例子提供??梢栽诓槐畴x本發(fā)明精神的情況下將本發(fā)明的一個(gè)或多個(gè)方面與許多類型的計(jì)算單元、計(jì)算機(jī)、處理器、節(jié)點(diǎn)、系統(tǒng)、工作站和/或環(huán)境一起結(jié)合和使用。
以上所述的不同實(shí)施例參照一個(gè)接收信息、提供信息或完成某些任務(wù)的節(jié)點(diǎn)。然而,如果該節(jié)點(diǎn)包括多個(gè)文件系統(tǒng),則該節(jié)點(diǎn)上這些一個(gè)或多個(gè)文件系統(tǒng)可能完成這些操作。
本發(fā)明可以包括于一件具有例如計(jì)算機(jī)可用媒體的制造產(chǎn)品(例如一個(gè)或多個(gè)計(jì)算機(jī)程序產(chǎn)品)中。該媒體具有嵌入其中的用于提供和有助于實(shí)現(xiàn)本發(fā)明能力的例如計(jì)算機(jī)可讀程序編碼裝置。該制造產(chǎn)品能夠包括于計(jì)算機(jī)系統(tǒng)的一部分中或者單獨(dú)地出售。
此外,可以提供至少一個(gè)機(jī)器可讀程序存儲(chǔ)設(shè)備,用于實(shí)際地實(shí)施至少一個(gè)可由機(jī)器執(zhí)行以便實(shí)現(xiàn)本發(fā)明功能的指令程序。
此處闡述的流程圖只是例子??梢杂胁槐畴x本發(fā)明精神的所述的這些圖或步驟(或操作)的許多變動(dòng)。例如,可以用不同順序執(zhí)行各步驟,或者可以增加、刪除或修改各步驟。所有這些變動(dòng)都被認(rèn)為是本發(fā)明權(quán)利要求的一部分。
雖然此處已經(jīng)詳細(xì)地闡明并描述了優(yōu)選實(shí)施例,但相關(guān)技術(shù)的專業(yè)人員顯然知道可以在不背離本發(fā)明精神的情況下作出不同修改、增加、替代和類似變動(dòng),而這些被認(rèn)為是處于由所附權(quán)利要求書所限定的本發(fā)明范圍之內(nèi)。
權(quán)利要求
1.一種用于管理在一個(gè)計(jì)算環(huán)境的存儲(chǔ)設(shè)備上的空間分配的方法,所述方法包括以下步驟為所述計(jì)算環(huán)境的一個(gè)或多個(gè)存儲(chǔ)設(shè)備獲取一個(gè)或多個(gè)權(quán)值;及在所述一個(gè)或多個(gè)存儲(chǔ)設(shè)備中的至少一個(gè)存儲(chǔ)設(shè)備上分配正比于為至少一個(gè)存儲(chǔ)設(shè)備獲取的至少一個(gè)權(quán)值的空間,其中所述分配操作由所述計(jì)算環(huán)境的多個(gè)文件系統(tǒng)完成。
2.權(quán)利要求1的方法,其中所述多個(gè)文件系統(tǒng)中的每一個(gè)位于所述計(jì)算環(huán)境的獨(dú)立節(jié)點(diǎn)上。
3.權(quán)利要求1的方法,其中所述多個(gè)文件系統(tǒng)位于所述計(jì)算環(huán)境的一個(gè)或多個(gè)節(jié)點(diǎn)上。
4.權(quán)利要求1的方法,其中所述分配步驟包括由所述多個(gè)文件系統(tǒng)中的每個(gè)文件系統(tǒng)執(zhí)行分配技術(shù),其中所述多個(gè)文件系統(tǒng)中的至少一個(gè)文件系統(tǒng)正在運(yùn)行與所述多個(gè)文件系統(tǒng)中的至少一個(gè)其他文件系統(tǒng)不同的分配技術(shù)。
5.權(quán)利要求1的方法,其中所述至少一個(gè)存儲(chǔ)設(shè)備中的每個(gè)存儲(chǔ)設(shè)備被劃分為多個(gè)分區(qū),以及其中每個(gè)存儲(chǔ)設(shè)備的一個(gè)或多個(gè)分區(qū)由所述多個(gè)文件系統(tǒng)的一個(gè)或多個(gè)文件系統(tǒng)所擁有。
6.權(quán)利要求1的方法,其中所述分配步驟包括由所述多個(gè)文件系統(tǒng)在多個(gè)存儲(chǔ)設(shè)備上分配空間,其中所述多個(gè)文件系統(tǒng)中的每個(gè)文件系統(tǒng)在所述多個(gè)存儲(chǔ)設(shè)備中的一個(gè)或多個(gè)存儲(chǔ)設(shè)備上分配空間。
7.權(quán)利要求1的方法,其中所述獲取步驟包括使用至少一個(gè)分配管理器來(lái)獲取所述一個(gè)或多個(gè)權(quán)值。
8.權(quán)利要求7的方法,其中所述使用步驟包括使用所述分配管理器和所述計(jì)算環(huán)境的至少一個(gè)節(jié)點(diǎn)來(lái)獲取所述一個(gè)或多個(gè)權(quán)值。
9.權(quán)利要求1的方法,其中所述一個(gè)或多個(gè)權(quán)值表示所述計(jì)算環(huán)境的至少一個(gè)參數(shù)。
10.權(quán)利要求1的方法,其中所述分配步驟不依賴于所述一個(gè)或多個(gè)權(quán)值的獲取,其中分配步驟不必知道以下兩項(xiàng)中的至少一項(xiàng)各權(quán)值表示什么和如何獲取各權(quán)值。
11.權(quán)利要求1的方法,其中所述一個(gè)或多個(gè)存儲(chǔ)設(shè)備中的至少一個(gè)存儲(chǔ)設(shè)備具有一個(gè)或多個(gè)與所述一個(gè)或多個(gè)存儲(chǔ)設(shè)備中的至少一個(gè)其他存儲(chǔ)設(shè)備不同的特性。
12.權(quán)利要求1的方法,還包括將至少一個(gè)權(quán)值發(fā)送至所述多個(gè)文件系統(tǒng)中的至少一個(gè)文件系統(tǒng)。
13.權(quán)利要求1的方法,還包括以下步驟跟蹤與所述一個(gè)或多個(gè)權(quán)值中的至少一個(gè)權(quán)值相關(guān)聯(lián)的變動(dòng);根據(jù)跟蹤的變動(dòng)調(diào)整所述至少一個(gè)權(quán)值;及將至少一個(gè)調(diào)整的權(quán)值發(fā)送至所述計(jì)算環(huán)境的一個(gè)文件系統(tǒng),其中所述至少一個(gè)調(diào)整的權(quán)值可用于在至少一個(gè)存儲(chǔ)設(shè)備上分配空間。
14.權(quán)利要求13的方法,其中所述跟蹤步驟由文件系統(tǒng)完成。
15.權(quán)利要求13的方法,其中所述跟蹤步驟由多個(gè)文件系統(tǒng)完成,以及其中所述發(fā)送步驟包括將至少一個(gè)調(diào)整的權(quán)值發(fā)送至完成跟蹤步驟的多個(gè)文件系統(tǒng)。
16.權(quán)利要求13的方法,還包括在出現(xiàn)預(yù)定事件時(shí)將跟蹤的變動(dòng)通知給分配管理器,以及其中所述分配管理器執(zhí)行調(diào)整步驟和發(fā)送步驟。
17.權(quán)利要求1的方法,還包括將所述至少一個(gè)權(quán)值的變動(dòng)通知所述多個(gè)文件系統(tǒng),其中所述變動(dòng)可用于進(jìn)一步分配空間。
18.權(quán)利要求1的方法,還包括響應(yīng)于所述計(jì)算環(huán)境的一個(gè)文件系統(tǒng)的故障而調(diào)整所述一個(gè)或多個(gè)權(quán)值中的至少一個(gè)權(quán)值。
19.權(quán)利要求18的方法,其中所述調(diào)整步驟包括以下步驟中的至少一個(gè)步驟使用由所述計(jì)算環(huán)境的至少一個(gè)其他文件系統(tǒng)提供的信息來(lái)調(diào)整所述至少一個(gè)權(quán)值;及使用從至少一個(gè)與所述至少一個(gè)權(quán)值相關(guān)聯(lián)的存儲(chǔ)設(shè)備中獲取的信息來(lái)調(diào)整所述至少一個(gè)權(quán)值。
20.權(quán)利要求1的方法,還包括響應(yīng)于所述計(jì)算環(huán)境的一個(gè)文件系統(tǒng)的故障而保持所述一個(gè)或多個(gè)權(quán)值中的至少一個(gè)權(quán)值。
21.權(quán)利要求1的方法,其中所述多個(gè)文件系統(tǒng)中的一個(gè)文件系統(tǒng)為一個(gè)給定文件在所述至少一個(gè)存儲(chǔ)設(shè)備上分配空間,并且其中所述為該給定文件進(jìn)行分配的步驟是基于使用所述至少一個(gè)權(quán)值的分配策略的。
22.權(quán)利要求21的方法,其中所述一個(gè)文件系統(tǒng)為另一個(gè)文件在一個(gè)或多個(gè)存儲(chǔ)設(shè)備上分配空間,并且其中為該另一個(gè)文件進(jìn)行分配的步驟是基于使用與一個(gè)或多個(gè)存儲(chǔ)設(shè)備相關(guān)聯(lián)的一個(gè)或多個(gè)權(quán)值的另一個(gè)分配策略的。
23.一種用于管理在計(jì)算環(huán)境的存儲(chǔ)設(shè)備上的空間分配的方法,所述方法包括以下步驟為所述計(jì)算環(huán)境的多個(gè)存儲(chǔ)設(shè)備的至少一個(gè)存儲(chǔ)設(shè)備子集中的每個(gè)存儲(chǔ)設(shè)備獲取一個(gè)權(quán)值;及在所述至少一個(gè)存儲(chǔ)設(shè)備子集中的每個(gè)存儲(chǔ)設(shè)備上分配正比于賦予該存儲(chǔ)設(shè)備的權(quán)值的空間,其中所述分配操作由多個(gè)文件系統(tǒng)完成,以使所述多個(gè)文件系統(tǒng)中的每個(gè)文件系統(tǒng)在所述至少一個(gè)所述存儲(chǔ)設(shè)備子集中的一個(gè)或多個(gè)存儲(chǔ)設(shè)備上分配空間。
24.一種用于管理在計(jì)算環(huán)境的存儲(chǔ)設(shè)備上的空間分配的系統(tǒng),所述系統(tǒng)包括用于為所述計(jì)算環(huán)境的一個(gè)或多個(gè)存儲(chǔ)設(shè)備獲取一個(gè)或多個(gè)權(quán)值的裝置;及用于由所述計(jì)算環(huán)境的多個(gè)文件系統(tǒng)在所述一個(gè)或多個(gè)存儲(chǔ)設(shè)備中的至少一個(gè)存儲(chǔ)設(shè)備上分配正比于為該至少一個(gè)存儲(chǔ)設(shè)備獲取的至少一個(gè)權(quán)值的空間的裝置。
25.權(quán)利要求24的系統(tǒng),其中所述多個(gè)文件系統(tǒng)中的每一個(gè)位于所述計(jì)算環(huán)境的獨(dú)立節(jié)點(diǎn)上。
26.權(quán)利要求24的系統(tǒng),其中所述多個(gè)文件系統(tǒng)位于所述計(jì)算環(huán)境的一個(gè)或多個(gè)節(jié)點(diǎn)上。
27.權(quán)利要求24的系統(tǒng),其中所述用于分配的裝置包括用于由所述多個(gè)文件系統(tǒng)中的每個(gè)文件系統(tǒng)執(zhí)行分配技術(shù)的裝置,其中所述多個(gè)文件系統(tǒng)中的至少一個(gè)文件系統(tǒng)正在使用與所述多個(gè)文件系統(tǒng)中的至少一個(gè)其他文件系統(tǒng)不同的分配技術(shù)。
28.權(quán)利要求24的系統(tǒng),其中所述至少一個(gè)存儲(chǔ)設(shè)備中的每個(gè)存儲(chǔ)設(shè)備被劃分為多個(gè)分區(qū),以及其中每個(gè)存儲(chǔ)設(shè)備的一個(gè)或多個(gè)分區(qū)由所述多個(gè)文件系統(tǒng)中的一個(gè)或多個(gè)文件系統(tǒng)所擁有。
29.權(quán)利要求24的系統(tǒng),其中所述用于分配的裝置包括用于由多個(gè)文件系統(tǒng)在多個(gè)存儲(chǔ)設(shè)備上分配空間的裝置,其中所述多個(gè)文件系統(tǒng)中的每個(gè)文件系統(tǒng)在所述多個(gè)存儲(chǔ)設(shè)備中的一個(gè)或多個(gè)存儲(chǔ)設(shè)備上分配空間。
30.權(quán)利要求24的系統(tǒng),其中所述用于獲取的裝置包括使用至少一個(gè)分配管理器來(lái)獲取所述一個(gè)或多個(gè)權(quán)值的裝置。
31.權(quán)利要求30的系統(tǒng),其中所述使用裝置包括使用所述分配管理器和所述計(jì)算環(huán)境的至少一個(gè)節(jié)點(diǎn)來(lái)獲取所述一個(gè)或多個(gè)權(quán)值的裝置。
32.權(quán)利要求24的系統(tǒng),其中所述一個(gè)或多個(gè)權(quán)值表示所述計(jì)算環(huán)境的至少一個(gè)參數(shù)。
33.權(quán)利要求24的系統(tǒng),其中所述用于分配的裝置不依賴于用于獲取所述一個(gè)或多個(gè)權(quán)值的裝置,其中用于分配的裝置不必知道以下兩項(xiàng)中的至少一項(xiàng)各權(quán)值表示什么和如何獲取各權(quán)值。
34.權(quán)利要求24的系統(tǒng),其中所述一個(gè)或多個(gè)存儲(chǔ)設(shè)備中的至少一個(gè)存儲(chǔ)設(shè)備具有與所述一個(gè)或多個(gè)存儲(chǔ)設(shè)備中的至少一個(gè)其他存儲(chǔ)設(shè)備不同的一個(gè)或多個(gè)特性。
35.權(quán)利要求24的系統(tǒng),還包括用于將至少一個(gè)權(quán)值發(fā)送至所述多個(gè)文件系統(tǒng)中的至少一個(gè)文件系統(tǒng)的裝置。
36.權(quán)利要求24的系統(tǒng),還包括用于跟蹤與所述一個(gè)或多個(gè)權(quán)值中的至少一個(gè)權(quán)值相關(guān)聯(lián)的變動(dòng)的裝置;用于根據(jù)跟蹤的變動(dòng)來(lái)調(diào)整所述至少一個(gè)權(quán)值的裝置;及用于將至少一個(gè)調(diào)整的權(quán)值發(fā)送至所述計(jì)算環(huán)境的一個(gè)文件系統(tǒng)的裝置,其中所述至少一個(gè)調(diào)整的權(quán)值可用于在至少一個(gè)存儲(chǔ)設(shè)備上分配空間。
37.權(quán)利要求36的系統(tǒng),其中所述用于跟蹤的裝置包括用于由文件系統(tǒng)進(jìn)行跟蹤的裝置。
38.權(quán)利要求36的系統(tǒng),其中所述用于跟蹤的裝置包括用于由多個(gè)文件系統(tǒng)進(jìn)行跟蹤的裝置,并且其中所述用于發(fā)送的裝置包括用于將至少一個(gè)調(diào)整的權(quán)值發(fā)送至用于跟蹤操作中的多個(gè)文件系統(tǒng)的裝置。
39.權(quán)利要求36的系統(tǒng),還包括在出現(xiàn)預(yù)定事件時(shí)用于將跟蹤的變動(dòng)通知給分配管理器的裝置,并且其中所述分配管理器完成調(diào)整和發(fā)送。
40.權(quán)利要求24的系統(tǒng),還包括用于將所述至少一個(gè)權(quán)值的變動(dòng)通知多個(gè)文件系統(tǒng)的裝置,其中所述變動(dòng)可用于進(jìn)一步分配空間。
41.權(quán)利要求24的系統(tǒng),還包括響應(yīng)所述計(jì)算環(huán)境的一個(gè)文件系統(tǒng)的故障而用于調(diào)整所述一個(gè)或多個(gè)權(quán)值中的至少一個(gè)權(quán)值的裝置。
42.權(quán)利要求41的系統(tǒng),其中所述用于調(diào)整的裝置包括以下裝置中的至少一個(gè)裝置使用由所述計(jì)算環(huán)境的至少一個(gè)其他文件系統(tǒng)提供的信息來(lái)調(diào)整所述至少一個(gè)權(quán)值的裝置;及使用從與所述至少一個(gè)權(quán)值相關(guān)聯(lián)的至少一個(gè)存儲(chǔ)設(shè)備的讀取中獲得的信息來(lái)調(diào)整所述至少一個(gè)權(quán)值的裝置。
43.權(quán)利要求24的系統(tǒng),還包括響應(yīng)于所述計(jì)算環(huán)境的一個(gè)文件系統(tǒng)的故障而用于保持所述一個(gè)或多個(gè)權(quán)值中的至少一個(gè)權(quán)值的裝置。
44.權(quán)利要求24的系統(tǒng),其中所述多個(gè)文件系統(tǒng)中的一個(gè)文件系統(tǒng)為一個(gè)給定文件在所述至少一個(gè)存儲(chǔ)設(shè)備上分配空間,并且其中所述為該給定文件進(jìn)行分配的操作是基于使用所述至少一個(gè)權(quán)值的分配策略的。
45.權(quán)利要求44的系統(tǒng),其中所述一個(gè)文件系統(tǒng)為另一個(gè)文件在一個(gè)或多個(gè)存儲(chǔ)設(shè)備上分配空間,并且其中為該另一個(gè)文件進(jìn)行分配的操作是基于使用與一個(gè)或多個(gè)存儲(chǔ)設(shè)備相關(guān)聯(lián)的一個(gè)或多個(gè)權(quán)值的另一個(gè)分配策略的。
46.一種用于管理在計(jì)算環(huán)境的存儲(chǔ)設(shè)備上的空間分配的系統(tǒng),所述系統(tǒng)包括用于為所述計(jì)算環(huán)境的多個(gè)存儲(chǔ)設(shè)備的至少一個(gè)存儲(chǔ)設(shè)備子集中的每個(gè)存儲(chǔ)設(shè)備獲取一個(gè)權(quán)值的裝置;及適用于在所述至少一個(gè)存儲(chǔ)設(shè)備子集中的每個(gè)存儲(chǔ)設(shè)備上分配正比于賦予該存儲(chǔ)設(shè)備的權(quán)值的空間的多個(gè)文件系統(tǒng),其中所述多個(gè)文件系統(tǒng)中的每個(gè)文件系統(tǒng)在所述至少一個(gè)所述存儲(chǔ)設(shè)備子集中的一個(gè)或多個(gè)存儲(chǔ)設(shè)備上分配空間。
47.一種用于管理在計(jì)算環(huán)境的存儲(chǔ)設(shè)備上的空間分配的系統(tǒng),所述系統(tǒng)包括至少一個(gè)適合于為所述計(jì)算環(huán)境的一個(gè)或多個(gè)存儲(chǔ)設(shè)備獲取一個(gè)或多個(gè)權(quán)值的節(jié)點(diǎn);及適合于在所述一個(gè)或多個(gè)存儲(chǔ)設(shè)備中的至少一個(gè)存儲(chǔ)設(shè)備上分配正比于為至少一個(gè)存儲(chǔ)設(shè)備所獲取的至少一個(gè)權(quán)值的空間的多個(gè)節(jié)點(diǎn)。
48.權(quán)利要求47的系統(tǒng),其中所述多個(gè)節(jié)點(diǎn)包括所述至少一個(gè)節(jié)點(diǎn)。
49.至少一個(gè)機(jī)器可讀程序存儲(chǔ)設(shè)備,實(shí)際地實(shí)施至少一個(gè)可由機(jī)器執(zhí)行以便實(shí)現(xiàn)一種用于管理在計(jì)算環(huán)境的存儲(chǔ)設(shè)備上的空間分配的方法的指令程序,所述方法包括以下步驟為所述計(jì)算環(huán)境的一個(gè)或多個(gè)存儲(chǔ)設(shè)備獲取一個(gè)或多個(gè)權(quán)值;及在所述一個(gè)或多個(gè)存儲(chǔ)設(shè)備中的至少一個(gè)存儲(chǔ)設(shè)備上分配正比于為至少一個(gè)存儲(chǔ)設(shè)備獲取的至少一個(gè)權(quán)值的空間,其中所述分配步驟由所述計(jì)算環(huán)境的多個(gè)文件系統(tǒng)完成。
50.權(quán)利要求49的至少一個(gè)程序存儲(chǔ)設(shè)備,其中所述多個(gè)文件系統(tǒng)中的每一個(gè)位于所述計(jì)算環(huán)境的獨(dú)立節(jié)點(diǎn)上。
51.權(quán)利要求49的至少一個(gè)程序存儲(chǔ)設(shè)備,其中所述多個(gè)文件系統(tǒng)位于所述計(jì)算環(huán)境的一個(gè)或多個(gè)節(jié)點(diǎn)上。
52.權(quán)利要求49的至少一個(gè)程序存儲(chǔ)設(shè)備,其中所述分配步驟包括由所述多個(gè)文件系統(tǒng)中的每個(gè)文件系統(tǒng)執(zhí)行一種分配技術(shù),其中所述多個(gè)文件系統(tǒng)中的至少一個(gè)文件系統(tǒng)正在使用與所述多個(gè)文件系統(tǒng)中的至少一個(gè)其他文件系統(tǒng)不同的分配技術(shù)。
53.權(quán)利要求49的至少一個(gè)程序存儲(chǔ)設(shè)備,其中所述至少一個(gè)存儲(chǔ)設(shè)備中的每個(gè)存儲(chǔ)設(shè)備被劃分為多個(gè)分區(qū),以及其中每個(gè)存儲(chǔ)設(shè)備的一個(gè)或多個(gè)分區(qū)由所述多個(gè)文件系統(tǒng)中的一個(gè)或多個(gè)文件系統(tǒng)所擁有。
54.權(quán)利要求49的至少一個(gè)程序存儲(chǔ)設(shè)備,其中所述分配步驟包括由多個(gè)文件系統(tǒng)在多個(gè)存儲(chǔ)設(shè)備上分配空間,其中所述多個(gè)文件系統(tǒng)中的每個(gè)文件系統(tǒng)在所述多個(gè)存儲(chǔ)設(shè)備中的一個(gè)或多個(gè)存儲(chǔ)設(shè)備上分配空間。
55.權(quán)利要求49的至少一個(gè)程序存儲(chǔ)設(shè)備,其中所述獲取步驟包括使用至少一個(gè)分配管理器來(lái)獲取所述一個(gè)或多個(gè)權(quán)值。
56.權(quán)利要求55的至少一個(gè)程序存儲(chǔ)設(shè)備,其中所述使用步驟包括使用所述分配管理器和所述計(jì)算環(huán)境的至少一個(gè)節(jié)點(diǎn)來(lái)獲取所述一個(gè)或多個(gè)權(quán)值。
57.權(quán)利要求49的至少一個(gè)程序存儲(chǔ)設(shè)備,其中所述一個(gè)或多個(gè)權(quán)值表示所述計(jì)算環(huán)境的至少一個(gè)參數(shù)。
58.權(quán)利要求49的至少一個(gè)程序存儲(chǔ)設(shè)備,其中所述分配步驟不依賴于所述一個(gè)或多個(gè)權(quán)值的獲取,其中分配步驟不必知道以下兩項(xiàng)中的至少一項(xiàng)各權(quán)值表示什么和如何獲取各權(quán)值。
59.權(quán)利要求49的至少一個(gè)程序存儲(chǔ)設(shè)備,其中所述一個(gè)或多個(gè)存儲(chǔ)設(shè)備中的至少一個(gè)存儲(chǔ)設(shè)備具有與所述一個(gè)或多個(gè)存儲(chǔ)設(shè)備中的至少一個(gè)其他存儲(chǔ)設(shè)備不同的一個(gè)或多個(gè)特性。
60.權(quán)利要求49的至少一個(gè)程序存儲(chǔ)設(shè)備,其中所述方法還包括將至少一個(gè)權(quán)值發(fā)送至所述多個(gè)文件系統(tǒng)中的至少一個(gè)文件系統(tǒng)。
61.權(quán)利要求49的至少一個(gè)程序存儲(chǔ)設(shè)備,其中所述方法還包括以下步驟跟蹤與所述一個(gè)或多個(gè)權(quán)值中的至少一個(gè)權(quán)值相關(guān)聯(lián)的變動(dòng);根據(jù)跟蹤的變動(dòng)來(lái)調(diào)整所述至少一個(gè)權(quán)值;及將至少一個(gè)調(diào)整的權(quán)值發(fā)送至所述計(jì)算環(huán)境的一個(gè)文件系統(tǒng),其中所述至少一個(gè)調(diào)整的權(quán)值可用于在至少一個(gè)存儲(chǔ)設(shè)備上分配空間。
62.權(quán)利要求61的至少一個(gè)程序存儲(chǔ)設(shè)備,其中所述跟蹤步驟由文件系統(tǒng)完成。
63.權(quán)利要求61的至少一個(gè)程序存儲(chǔ)設(shè)備,其中所述跟蹤步驟由多個(gè)文件系統(tǒng)完成,以及其中所述發(fā)送步驟包括將至少一個(gè)調(diào)整的權(quán)值發(fā)送至完成跟蹤操作的多個(gè)文件系統(tǒng)。
64.權(quán)利要求61的至少一個(gè)程序存儲(chǔ)設(shè)備,其中所述方法還包括在出現(xiàn)預(yù)定事件時(shí)將跟蹤的變動(dòng)通知給分配管理器,以及其中所述分配管理器完成調(diào)整和發(fā)送。
65.權(quán)利要求49的至少一個(gè)程序存儲(chǔ)設(shè)備,其中所述方法還包括將所述至少一個(gè)權(quán)值的變動(dòng)通知給所述多個(gè)文件系統(tǒng),其中所述變動(dòng)可用于進(jìn)一步分配空間。
66.權(quán)利要求49的至少一個(gè)程序存儲(chǔ)設(shè)備,其中所述方法還包括響應(yīng)于所述計(jì)算環(huán)境的一個(gè)文件系統(tǒng)的故障而調(diào)整所述一個(gè)或多個(gè)權(quán)值中的至少一個(gè)權(quán)值。
67.權(quán)利要求66的至少一個(gè)程序存儲(chǔ)設(shè)備,其中所述調(diào)整步驟包括以下步驟中的至少一個(gè)步驟使用由所述計(jì)算環(huán)境的至少一個(gè)其他文件系統(tǒng)提供的信息來(lái)調(diào)整所述至少一個(gè)權(quán)值;及使用從與所述至少一個(gè)權(quán)值相關(guān)聯(lián)的至少一個(gè)存儲(chǔ)設(shè)備的讀取中獲得的信息來(lái)調(diào)整所述至少一個(gè)權(quán)值。
68.權(quán)利要求49的至少一個(gè)程序存儲(chǔ)設(shè)備,其中所述方法還包括響應(yīng)于所述計(jì)算環(huán)境的一個(gè)文件系統(tǒng)的故障而保持所述一個(gè)或多個(gè)權(quán)值中的至少一個(gè)權(quán)值。
69.權(quán)利要求49的至少一個(gè)程序存儲(chǔ)設(shè)備,其中所述多個(gè)文件系統(tǒng)中的一個(gè)文件系統(tǒng)為一個(gè)給定文件在所述至少一個(gè)存儲(chǔ)設(shè)備上分配空間,并且其中為該給定文件進(jìn)行分配的操作是基于使用所述至少一個(gè)權(quán)值的分配策略的。
70.權(quán)利要求69的至少一個(gè)程序存儲(chǔ)設(shè)備,其中所述一個(gè)文件系統(tǒng)為另一個(gè)文件在一個(gè)或多個(gè)存儲(chǔ)設(shè)備上分配空間,并且其中為該另一個(gè)文件進(jìn)行分配的操作是基于使用與一個(gè)或多個(gè)存儲(chǔ)設(shè)備相關(guān)聯(lián)的一個(gè)或多個(gè)權(quán)值的另一個(gè)分配策略的。
71.至少一個(gè)機(jī)器可讀程序存儲(chǔ)設(shè)備,實(shí)際地實(shí)施至少一個(gè)可由機(jī)器執(zhí)行以便實(shí)現(xiàn)一種用于管理在計(jì)算環(huán)境的存儲(chǔ)設(shè)備上的空間分配的方法的指令程序,所述方法包括以下步驟為所述計(jì)算環(huán)境的多個(gè)存儲(chǔ)設(shè)備的至少一個(gè)存儲(chǔ)設(shè)備子集中的每個(gè)存儲(chǔ)設(shè)備獲取一個(gè)權(quán)值;及在所述至少一個(gè)存儲(chǔ)設(shè)備子集中的每個(gè)存儲(chǔ)設(shè)備上分配正比于賦予該存儲(chǔ)設(shè)備的權(quán)值的空間,其中所述分配操作由多個(gè)文件系統(tǒng)完成,以使所述多個(gè)文件系統(tǒng)中的每個(gè)文件系統(tǒng)在所述至少一個(gè)所述存儲(chǔ)設(shè)備子集中的一個(gè)或多個(gè)存儲(chǔ)設(shè)備上分配空間。
全文摘要
在存儲(chǔ)設(shè)備上正比于與該存儲(chǔ)設(shè)備相關(guān)聯(lián)的權(quán)值分配空間。由多個(gè)文件系統(tǒng)分配該空間。具體地,可以由一個(gè)或多個(gè)文件系統(tǒng)在任何一個(gè)設(shè)備上分配空間。可以在任何時(shí)候動(dòng)態(tài)地調(diào)整權(quán)值以便適應(yīng)系統(tǒng)中的變化和更好地利用各存儲(chǔ)設(shè)備。然而,由于多個(gè)文件系統(tǒng)可以在一個(gè)或多個(gè)存儲(chǔ)設(shè)備上分配空間,因此將權(quán)值的變化發(fā)送至可能利用該信息的各個(gè)文件系統(tǒng)。
文檔編號(hào)G06F3/06GK1333505SQ0112314
公開日2002年1月30日 申請(qǐng)日期2001年7月17日 優(yōu)先權(quán)日2000年7月18日
發(fā)明者韋恩·A·肖頓, 羅杰·哈斯金, 弗蘭克·B·施瑪克, 詹姆斯·C·威利 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司