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