在分層配額系統(tǒng)中管理資源分配的方法和裝置的制造方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明的各實施方式涉及分層配額系統(tǒng),并且更具體地,涉及在分層配額系統(tǒng)中 管理資源分配的方法和裝置。
【背景技術(shù)】
[0002] 在計算機領(lǐng)域中,配額(quota)是一種用于跟蹤和控制節(jié)點上的各個實體對資源 的消耗的機制,以防止資源的過度消耗、同時進行資源分配的統(tǒng)計和匯報。所述資源例如可 以是磁盤空間、存儲器、CPU等。所述實體例如可以是個體用戶、組織、進程等。所述節(jié)點的 示例包括云服務(wù)提供者、集群系統(tǒng)、單個文件系統(tǒng)、目錄等。為了跟蹤和控制節(jié)點上各個實 體對資源的消耗,通常為節(jié)點配置配額屬性,配置有配額屬性的節(jié)點因而被稱作配額節(jié)點。 進而,由若干個配額節(jié)點按照定義良好的依賴層級構(gòu)成的系統(tǒng)被稱作分層(hierarchical) 配額系統(tǒng)。分層配額系統(tǒng)的示例包括分布式文件系統(tǒng)(包括若干單個文件系統(tǒng))、嵌套的配 額目錄節(jié)點(包含在其他配額目錄內(nèi)的配額目錄)、云服務(wù)系統(tǒng)等。
[0003] 圖1示出了分層配額系統(tǒng)100的一個示例性架構(gòu)。圖1所示的分層配額系統(tǒng)100 具有樹形架構(gòu),其包括配額節(jié)點P 110、配額節(jié)點C1 111、配額節(jié)點C2 112、配額節(jié)點CC3 113。配額節(jié)點P 110分別是配額節(jié)點Cl 111和配額節(jié)點C2 112的父節(jié)點,配額節(jié)點C1 111是配額節(jié)點CC3 113的父節(jié)點。然而,在本申請中,配額節(jié)點P 110也被稱為與配額節(jié) 點Cl 111和配額節(jié)點C2 112直接關(guān)聯(lián)的上層節(jié)點,配額節(jié)點Cl 111被稱為與配額節(jié)點 CC3 113直接關(guān)聯(lián)的上層節(jié)點??梢岳斫?,分層配額系統(tǒng)100可以進一步包括與配額節(jié)點P 110直接關(guān)聯(lián)的上層節(jié)點、與配額節(jié)點CC3 113直接關(guān)聯(lián)的下層節(jié)點等。為了簡化圖示,圖 1僅示出了分層配額系統(tǒng)的一部分。
[0004] 在分層配額系統(tǒng)中,每個配額節(jié)點負責(zé)跟蹤和控制其自身上的資源消耗以及其下 層所有直接或間接關(guān)聯(lián)的配額節(jié)點上的資源消耗。每個配額節(jié)點具有相應(yīng)的配額數(shù)據(jù)庫 (database,DB),以跟蹤及控制在該配額節(jié)點樹上消耗資源的用戶的資源分配情況。在配額 數(shù)據(jù)庫中,針對每個被分配資源的用戶創(chuàng)建一條配額數(shù)據(jù)庫記錄。表1示出了用于分層配 額系統(tǒng)的配額數(shù)據(jù)庫記錄的一種示例性結(jié)構(gòu)。
[0005]表1
[0006]
【主權(quán)項】
1. 一種在分層配額系統(tǒng)中管理資源分配的方法,所述分層配額管理系統(tǒng)包括自上而下 的n層配額節(jié)點,n是大于1的正整數(shù),所述方法包括: 在第i層配額節(jié)點中的第一配額節(jié)點處,響應(yīng)于接收到來自用戶的資源分配請求,確 定所請求的資源的量是否超過了系統(tǒng)管理員在所述第一配額節(jié)點處設(shè)置的第一配額,其中 i是大于1且小于等于n的正整數(shù); 如果沒有超過所述第一配額,則確定是否持有針對所述第一配額節(jié)點的配額代理; 如果確定持有針對所述第一配額節(jié)點的配額代理,則進一步確定所請求的資源的量是 否超過了針對所述第一配額節(jié)點的配額代理所指定的第二配額;以及 如果所請求的資源的量未超過所述第二配額,則向所述用戶分配所請求的資源。
2. 根據(jù)權(quán)利要求1所述的方法,其中向所述用戶分配所請求的資源包括: 從所述第一配額及所述第二配額中扣除已分配的資源的量,以更新所述第一配額及所 述第二配額;以及 更新已向所述用戶分配的資源的量。
3. 根據(jù)權(quán)利要求1所述的方法,進一步包括: 如果確定不持有針對所述第一配額節(jié)點的配額代理,則創(chuàng)建用于獲取所述配額代理的 第一配額代理申請請求,所述第一配額代理申請請求至少包含所述用戶標識符、第一最小 份額請求值、及第一最大份額請求值,其中,所述第一最小份額請求值指示所述用戶所請求 的資源的量,以及所述第一最大份額請求值指示所述第一配額;以及 向第i-1層配額節(jié)點中與所述第一配額節(jié)點直接關(guān)聯(lián)的第二配額節(jié)點發(fā)送所述第一 配額代理申請請求。
4. 根據(jù)權(quán)利要求3所述的方法,進一步包括: (a) 所述第二配額節(jié)點響應(yīng)于接收到所述請求,確定是否持有針對所述第二配額節(jié)點 的配額代理; (b) 如果所述第二配額節(jié)點不持有針對所述第二配額節(jié)點的配額代理,則向第i-2層 配額節(jié)點中與所述第二配額節(jié)點直接關(guān)聯(lián)的第三配額節(jié)點發(fā)送用于獲取針對所述第二配 額節(jié)點的配額代理的請求; (c) 如果所述第二配額節(jié)點持有針對所述第二配額節(jié)點的配額代理,則向所述第一配 額節(jié)點發(fā)送響應(yīng),以授予針對所述第一配額節(jié)點的配額代理。
5. 根據(jù)權(quán)利要求4所述的方法,其中所述步驟(b)迭代地執(zhí)行,直至第1層配額節(jié)點中 與所述第二配額節(jié)點關(guān)聯(lián)的配額節(jié)點為止;并且 其中,所述第1層配額節(jié)點響應(yīng)于所有與之相關(guān)聯(lián)的第2層配額節(jié)點的配額代理申請 請求,從其第一配額中為所述配額代理申請請求劃分所請求的份額。
6. 根據(jù)權(quán)利要求1至5中任一項所述的方法,其中在所述n層配額節(jié)點中的每個配額 節(jié)點處維護針對相應(yīng)用戶的配額數(shù)據(jù)庫記錄,所述配額數(shù)據(jù)庫記錄至少包括如下字段: 用戶標識符字段,被配置為標識所述配額數(shù)據(jù)庫記錄所針對的用戶; 配額字段,包括由系統(tǒng)管理員設(shè)置的所述第一配額和由配額代理指定的所述第二配 額;所述第二配額小于等于所述第一配額; 資源使用量字段,被配置為向量字段以指示在當(dāng)前配額節(jié)點以及與所述當(dāng)前配額節(jié)點 關(guān)聯(lián)的下層配額節(jié)點上實際分配的資源的量; 代理標記字段,被配置為向量字段以指示是否向與所述當(dāng)前配額節(jié)點直接關(guān)聯(lián)的每個 下層配額節(jié)點授予了配額代理、以及所述配額代理的狀態(tài);以及 預(yù)留份額字段,被配置為向量字段以指示從所述第一配額及所述第二配額中為每個持 有所述配額代理的下層配額節(jié)點預(yù)留的份額。
7. 根據(jù)權(quán)利要求6所述的方法,其中所述配額代理的狀態(tài)包括以下狀態(tài)之一:未授予、 已授予和已廢除。
8. 根據(jù)權(quán)利要求7所述的方法,其中確定持有針對所述第二配額節(jié)點的配額代理包 括: 在所述第二配額節(jié)點處查找本地針對所述用戶的配額數(shù)據(jù)庫記錄,以確定本地針對所 述用戶的配額數(shù)據(jù)庫記錄的配額字段是否包括有效的第二配額。
9. 根據(jù)權(quán)利要求8所述的方法,其中所述步驟(c)包括: 如果在所述第二配額節(jié)點處確定本地針對所述用戶的配額數(shù)據(jù)庫記錄的配額字段包 括有效的第二配額,則從所述第一配額和所述第二配額中劃分為所述第一配額節(jié)點預(yù)留的 份額,所述預(yù)留的份額大于等于所述第一最小份額請求值、且小于等于所述第一最大份額 請求值。
10. 根據(jù)權(quán)利要求9所述的方法,其中所述步驟(c)還包括: 創(chuàng)建第一臨時配額數(shù)據(jù)庫記錄,其中所述第一臨時配額數(shù)據(jù)庫記錄至少包含所述用戶 標識符和為所述第一配額節(jié)點預(yù)留的所述份額;以及 向所述第一配額節(jié)點發(fā)送所述第一臨時配額數(shù)據(jù)庫記錄。
11. 根據(jù)權(quán)利要求10所述的方法,進一步包括: 所述第一配額節(jié)點響應(yīng)于接收到所述第一臨時配額數(shù)據(jù)庫記錄,將為所述第一配額節(jié) 點預(yù)留的所述份額作為本地針對所述用戶的配額數(shù)據(jù)庫記錄的配額字段中的第二配額緩 存到所述配額字段中。
12. 根據(jù)權(quán)利要求11所述的方法,其中確定所述用戶所請求的資源的量是否超過了針 對所述第一配額節(jié)點的配額代理所指定的配額包括: 確定所請求的資源的量是否超過了所述第一配額節(jié)點本地針對所述用戶的配額數(shù)據(jù) 庫記錄的配額字段中的第二配額; 如果所請求的資源的量超過了所述第二配額,則進一步確定所述第一配額節(jié)點是否向 與其直接關(guān)聯(lián)的第i+1層配額節(jié)點授予了配額代理;以及 如果所述第一配額節(jié)點沒有向任何與其直接關(guān)聯(lián)的第i+1層配額節(jié)點授予配額代理, 則所述第一配額節(jié)點向所述第二配額節(jié)點發(fā)送用于調(diào)整所述第二配額的第一配額代理調(diào) 整請求;所述第一配額代理調(diào)整請求至少包含所述用戶標識符、第二最小份額請求值、及第 二最大份額請求值;其中所述第二最小份額請求值為所述用戶所請求的資源的量與所述第 一配額節(jié)點本地針對所述用戶的配額數(shù)據(jù)庫記錄的配額字段中的所述第二配額之差,所述 第