欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

基于配額的資源管理方法和裝置的制造方法

文檔序號:10534607閱讀:334來源:國知局
基于配額的資源管理方法和裝置的制造方法
【專利摘要】本發(fā)明的各實施方式提供了基于配額的資源管理方法和裝置。該方法包括:基于第一策略或第二策略為多個用戶實體中的每個用戶實體配置資源配額,所述第一策略指示利用允許配置的資源數(shù)量相對于資源總量的百分比來配置所述資源配額,所述第二策略指示利用所述允許配置的資源數(shù)量來配置所述資源配額;以及根據(jù)所述第一策略或所述第二策略來應用所述資源配額。本發(fā)明的資源管理方案能夠適應資源量的動態(tài)變化。
【專利說明】
基于配額的資源管理方法和裝置
技術領域
[0001] 本發(fā)明的各實施方式涉及資源管理,并且更具體地,涉及基于配額的資源管理方 法和裝置。
【背景技術】
[0002] 在計算機領域中,配額(quota)是一種用于跟蹤和控制用戶實體對資源的消耗的 機制,以防止資源的過度消耗、同時進行資源分配的統(tǒng)計和匯報。所述資源例如可以是磁盤 空間、存儲器、CPU等。所述用戶實體例如可以是個體用戶、用戶群組、進程等。以文件系統(tǒng) 為例,配額被用來在多用戶環(huán)境中防止個體用戶或用戶群組過度使用文件系統(tǒng)中的磁盤空 間。為了應用配額機制,存儲管理員會為個體用戶或用戶群組配置配額上限。通常,基于向 文件系統(tǒng)配置的當前容量來為個體用戶或用戶群組配置配額上限。例如,假定文件系統(tǒng)的 容量為10太字節(jié),并且有三個個體用戶共享該文件系統(tǒng):用戶1為資深工程師,用戶2為初 級工程師,而用戶3為實習工程師。在這種情況下,存儲管理員可能在該文件系統(tǒng)中將用戶 1的配額上限配置為5太字節(jié),將用戶2的配額上限配置為4太字節(jié),而將用戶3的配額上 限配置為1太字節(jié)。
[0003] 然而,在很多情況下,文件系統(tǒng)的總存儲容量會被調整。例如,如果在文件系統(tǒng)中 安裝新的磁盤,那么文件系統(tǒng)將因此而得到擴充。此外,許多現(xiàn)代文件系統(tǒng)能夠支持精簡配 置(thin provisioning),因而能夠基于實際的存儲消耗來自動地調整文件系統(tǒng)的容量。在 文件系統(tǒng)的容量被擴充或縮減的情況下,存儲管理員將不得不改變用戶實體的配額配置, 否則存儲容量將被過度使用或無法得到充分使用。在上述示例中,當10太字節(jié)的文件系統(tǒng) 的容量縮減到4太字節(jié)時,如果存儲管理員不改變配額配置,那么初級工程師可能會用盡 全部存儲容量,而使得資深工程師和實習工程師無存儲容量可用。
[0004] 由此,本領域中需要一種能夠適應資源量的動態(tài)變化的資源管理方案。

【發(fā)明內(nèi)容】

[0005] 鑒于上述以及其他潛在問題,本發(fā)明的各實施方式提出了一種能夠適應資源量的 動態(tài)變化的資源管理方案。
[0006] 根據(jù)本發(fā)明實施方式的第一方面,提供了一種基于配額的資源管理方法。該方法 包括:基于第一策略或第二策略為多個用戶實體中的每個用戶實體配置資源配額,所述第 一策略指示利用允許配置的資源數(shù)量相對于資源總量的百分比來配置所述資源配額,所述 第二策略指示利用所述允許配置的資源數(shù)量來配置所述資源配額;以及根據(jù)所述第一策略 或所述第二策略來應用所述資源配額。
[0007] 在一個實施方式中,基于第一策略或第二策略為多個用戶實體中的每個用戶實體 配置資源配額包括:針對每個用戶實體創(chuàng)建配額數(shù)據(jù)庫記錄。所述配額數(shù)據(jù)庫記錄至少包 括如下字段:標識符字段,用于標識所述配額數(shù)據(jù)庫記錄所針對的用戶實體;第一資源上 限字段,用于指示允許分配給相應用戶實體的資源上限;資源使用量字段,用于指示所述相 應用戶實體的當前資源使用量;以及策略字段,用于指示基于所述第一策略還是所述第二 策略為所述用戶實體配置的所述資源上限。
[0008] 在一個實施方式中,在基于所述第一策略為相應用戶實體配置資源配額的情況 下,所述第一資源上限字段的內(nèi)容表示允許分配給相應用戶實體的最大資源數(shù)量相對于所 述資源總量的百分比。
[0009] 在一個實施方式中,根據(jù)所述第一策略或所述第二策略來應用所述資源配額包 括:響應于接收到來自用戶實體的資源分配請求,查看針對所述用戶實體的配額數(shù)據(jù)庫記 錄的策略字段以確定是基于所述第一策略還是所述第二策略為所述用戶實體配置的資源 配額;以及至少部分地根據(jù)所確定的策略來確定是否向所述用戶實體分配所請求的資源。
[0010] 在一個實施方式中,至少部分地根據(jù)所確定的策略來確定是否向所述用戶實體分 配所請求的資源包括:在基于所述第一策略為所述用戶實體配置資源配額的情況下,至少 部分地根據(jù)所述第一策略來確定是否向所述用戶實體分配所請求的資源。
[0011] 在一個實施方式中,至少部分地根據(jù)所述第一策略來確定是否向所述用戶實體分 配所請求的資源包括:基于針對所述用戶實體所創(chuàng)建的配額數(shù)據(jù)庫記錄的第一資源上限字 段的內(nèi)容,計算允許分配給所述用戶實體的最大資源數(shù)量;計算所述用戶實體的當前資源 使用量與所請求的資源的數(shù)量的總和;將所述總和與所述最大資源數(shù)量進行比較;響應于 所述總和未超過所述最大資源數(shù)量而向所述用戶實體分配所請求的資源。
[0012] 在一個實施方式中,針對每個用戶實體所創(chuàng)建的配額數(shù)據(jù)庫記錄進一步包括第二 資源上限字段,用于指示允許分配給相應用戶實體的資源閾值。
[0013] 在一個實施方式中,該方法進一步包括:響應于所述相應用戶實體的當前資源使 用量超過所述資源閾值,向所述相應用戶實體發(fā)送消息以警告所述相應用戶實體的當前資 源使用量即將超過所述資源上限。
[0014] 在一個實施方式中,根據(jù)所述第一策略或所述第二策略來應用所述資源配額包 括:指定配額報告的格式;以及向用戶實體發(fā)送配額報告請求,以請求所述用戶實體利用 所指定的格式報告針對所述用戶實體創(chuàng)建的配額數(shù)據(jù)庫記錄中的信息。
[0015] 在一個實施方式中,所述配額報告的格式包括以下各項之一:百分比格式,指示所 述用戶實體應當報告所述標識符字段中的內(nèi)容,應當利用允許分配給相應用戶實體的最大 資源數(shù)量相對于所述資源總量的百分比來報告所述第一資源上限字段中的內(nèi)容,并且應當 利用所述相應用戶實體已使用的資源的數(shù)量相對于所述資源總量的百分比來報告所述資 源使用量字段的內(nèi)容;數(shù)量格式,指示所述用戶實體應當報告所述標識符字段中的內(nèi)容,應 當利用允許分配給相應用戶實體的最大資源數(shù)量來報告所述第一資源上限字段中的內(nèi)容, 并且應當利用所述相應用戶實體已使用的資源的數(shù)量來報告所述資源使用量字段的內(nèi)容; 以及缺省格式,指示所述用戶實體應當報告其配額數(shù)據(jù)庫記錄的所有字段的實際內(nèi)容。
[0016] 根據(jù)本發(fā)明實施方式的第二方面,提供了一種基于配額的資源管理裝置。該裝置 包括:配額配置單元,被配置為基于第一策略或第二策略為多個用戶實體中的每個用戶實 體配置資源配額,第一策略指示利用允許配置的資源數(shù)量相對于資源總量的百分比來配置 資源配額,第二策略指示利用允許配置的資源數(shù)量來配置資源配額;以及配額應用單元,被 配置為根據(jù)第一策略或第二策略來應用資源配額。
[0017] 根據(jù)本發(fā)明實施方式的第三方面,提供了一種計算機程序產(chǎn)品,其包括計算機可 讀介質,所述計算機可讀介質承載在其中體現(xiàn)的用于與計算機一起使用的計算機程序代 碼。所述計算機程序代碼包括:用于基于第一策略或第二策略為多個用戶實體中的每個用 戶實體配置資源配額的代碼,所述第一策略指示利用允許配置的資源數(shù)量相對于資源總量 的百分比來配置所述資源配額,所述第二策略指示利用所述允許配置的資源數(shù)量來配置所 述資源配額;以及用于根據(jù)所述第一策略或所述第二策略來應用所述資源配額的代碼。
[0018] 本發(fā)明的實施方式為終端用戶(例如存儲管理員)提供了配置配額的兩種選擇, 基于策略來實現(xiàn)資源配額的配置和應用。終端用戶可以根據(jù)使用環(huán)境和實際需要而從"百 分比策略"和"數(shù)量策略"中選擇一種來實施配額配置。為此,本發(fā)明的資源管理方案能夠 適應資源量的動態(tài)變化。
[0019] 另外,當存儲管理員利用配額報告來了解資源消耗情況時,顯示用戶實體所使用 的資源數(shù)量相對于總資源量的百分比在某些情況下可能更加直觀且更加方便。
【附圖說明】
[0020] 結合附圖并參考以下詳細說明,本發(fā)明各實施方式的特征、優(yōu)點及其他方面將變 得更加明顯,在此以示例性而非限制性的方式示出了本發(fā)明的若干實施方式。在附圖中:
[0021] 圖1示出了根據(jù)本發(fā)明一個實施方式的基于配額的資源管理方法100的流程圖;
[0022] 圖2示出了根據(jù)本發(fā)明一個實施方式的基于配額的資源管理裝置200的示意性框 圖;以及
[0023] 圖3示出了適于用來實踐本發(fā)明實施方式的計算機系統(tǒng)300的示意性框圖。
【具體實施方式】
[0024] 下面參考附圖詳細描述本發(fā)明的各實施方式。附圖中的流程圖和框圖,圖示了按 照本發(fā)明各種實施方式的系統(tǒng)、方法和計算機程序產(chǎn)品的可能實現(xiàn)的體系架構、功能和操 作。在這點上,流程圖或框圖中的每個方框可以代表一個模塊、程序段、或代碼的一部分,所 述模塊、程序段、或代碼的一部分包含一個或多個用于實現(xiàn)規(guī)定的邏輯功能的可執(zhí)行指令。 也應當注意,在有些作為備選的實現(xiàn)中,方框中所標注的功能也可以以不同于附圖中所標 注的順序發(fā)生。例如,兩個接連地表示的方框實際上可以基本并行地執(zhí)行,它們有時也可以 按相反的順序執(zhí)行,這依所涉及的功能而定。也要注意的是,框圖和/或流程圖中的每個方 框、以及框圖和/或流程圖中的方框的組合,可以用執(zhí)行規(guī)定的功能或操作的專用的基于 硬件的系統(tǒng)來實現(xiàn),或者可以用專用硬件與計算機指令的組合來實現(xiàn)。
[0025] 在本文中,"資源"可以包括但不限于:磁盤空間、存儲器、CPU等。此外,"用戶實 體"可以包括但不限于:個體用戶、用戶群組、進程等。
[0026] 首先,以文件系統(tǒng)為例來描述現(xiàn)有的基于配額的資源管理方法。在現(xiàn)有的基于配 額的磁盤空間管理方法,利用資源的實際數(shù)量來為用戶實體配置資源配額。為了實施基于 配額的資源管理方法,文件系統(tǒng)通常會針對用戶實體創(chuàng)建并維護配額數(shù)據(jù)庫,以跟蹤和控 制用戶實體的資源分配情況。在配額數(shù)據(jù)庫中,針對每個被分配資源的用戶實體創(chuàng)建一條 配額數(shù)據(jù)庫記錄。表1示出了配額數(shù)據(jù)庫的一種示例性結構。
[0027]
[0028] 表 1
[0029] 如表1所示,配額數(shù)據(jù)庫的每條配額數(shù)據(jù)庫記錄、即表1中的每一行至少包括以下 三個字段:
[0030] (DUserlD :標識符字段,用于標識配額數(shù)據(jù)庫記錄所針對的用戶實體;
[0031] (2) HardLimit:第一資源上限字段,也稱為硬上限字段,用于指示允許分配給相應 用戶實體的資源上限;
[0032] (3)CurrentSpaceUsage :資源使用量字段,用于指示相應用戶實體的當前資源使 用量。
[0033] 此外,配額數(shù)據(jù)庫的每條配額數(shù)據(jù)庫記錄還可以可選地包括如下字段:
[0034] SoftLimit :第二資源上限字段,也稱為軟上限字段,用于指示允許分配給相應用 戶實體的資源閾值。當相應用戶實體的當前資源使用量超過該資源閾值時,將向相應用戶 實體發(fā)送消息以警告相應用戶實體的當前資源使用量即將超過資源上限(即硬上限字段 的值)。
[0035] 從表1中可以看出,HardLimit和SoftLimit字段的值均表示資源的實際數(shù)量。如 表1所示,例如對于UserlD為100的用戶實體而言,允許分配給該用戶實體的磁盤空間為 150G,用戶實體100的當前磁盤空間使用量為100G。當用戶實體100的當前磁盤空間使用 量超過SoftLimit字段所規(guī)定的閾值100G時,將向用戶實體100發(fā)送消息以警告用戶實體 100其當前磁盤空間使用量即將超過HardLimit字段所規(guī)定的磁盤空間上限。
[0036] 當用戶實體想要在文件系統(tǒng)中執(zhí)行修改操作時,例如當用戶實體想要在文件系統(tǒng) 中進行寫入/刪除/更改所有者(change owner)/更改用戶群組(change group)等操作 時,用戶實體會向系統(tǒng)發(fā)出磁盤空間分配請求。響應于接收到來自用戶實體的磁盤空間分 配請求,系統(tǒng)會在配額數(shù)據(jù)庫中查找針對該用戶實體創(chuàng)建的配額數(shù)據(jù)庫記錄。然后,計算 CurrentSpaceUsage字段的值與所請求的磁盤空間的數(shù)量的總和,將該總和與HardLimit 字段所規(guī)定的磁盤空間上限進行比較,如果該總和未超過HardLimit字段所規(guī)定的磁盤空 間上限,則向用戶實體分配所請求的磁盤空間,否則將拒絕用戶實體的請求并且向用戶實 體返回"超出配額"錯誤。
[0037] 以下是文件系統(tǒng)的寫入路徑和更改所有者路徑中的偽碼的示例。
[0038] 寫入路徑:
[0039] Status write(Inode *file, BlockList *list, ID Userid) { FileSystem *fs = file->getFS(); QuotaRecord *qr = fs->getQuotaRecord(UserId); For each block in list { If (qr->CurrentSpaceUsage + blockSize() > qr->HardLimit) { Return Quota-Exceeded; } Else {
[0040] Fs->writeBlock(block); qr->CurrentSpaceUsage = qr->CurrentSpaceUsage + blockSize(); If (qr->CurrentSpaceUsage > qr->SoftLimit) { SendWamingMessage(Userld); } } } }
[0041] 更改所有者路徑:
[0042] Status chown(Inode *file9 ID Userldl, ID Userld2) { FileSystem *fs = file->getFS(); QuotaRecord *qrl = fs->getQuotaRecord(UserIdl); QuotaRecord *qr2 = fs->getQuotaRecord(UserId2); If (qr2->CurrentSpaceUsage + file->usedBlocks() > qr2->HardLimit) { Return Quota_Exceeded; } qrl->CurrentSpaceUsage = qrl->CurrentSpaceUsage - file->usedBlocks(); qr2->CurrentSpaceUsage = qr2->CurrentSpaceUsage + file->usedBlocks(); if (qr2->CurrentSpaceUsage > qr->SoftLimit) { SendWamingMessage(UserId2); } }
[0043] 在上述偽碼中,SendWarningMessage ()接口將節(jié)流消息以防止過于頻繁地向用戶 實體發(fā)送警告消息。
[0044] 此外,為了跟蹤用戶實體的資源消耗情況,存儲管理員會通過文件系統(tǒng)的控制路 徑發(fā)出配額報告請求,以請求用戶實體報告針對用戶實體創(chuàng)建的配額數(shù)據(jù)庫記錄中的信 息。作為響應,系統(tǒng)將從配額數(shù)據(jù)庫中讀取所需的配額數(shù)據(jù)庫記錄中的信息并且所讀取的 信息將返回給存儲管理員和相應的用戶實體。
[0045] 如上所述,在文件系統(tǒng)的容量被擴充或縮減的情況下,存儲管理員將不得不改變 用戶實體的配額配置,否則存儲容量將被過度使用或無法得到充分使用。為此,本發(fā)明的各 實施方式提出了一種能夠適應資源量的動態(tài)變化的資源管理方案。在本發(fā)明的資源管理方 案中,基于策略來實現(xiàn)資源配額的配置和應用。
[0046] 以下將參照圖1和圖2來詳細描述根據(jù)本發(fā)明實施方式的基于配額的資源管理方 法和裝置。
[0047] 圖1示出了根據(jù)本發(fā)明一個實施方式的基于配額的資源管理方法100的流程圖。
[0048] 如圖1所示,在步驟S110,基于第一策略或第二策略為多個用戶實體中的每個用 戶實體配置資源配額。第一策略指示利用允許配置的資源數(shù)量相對于資源總量的百分比來 配置資源配額,而第二策略指示利用所述允許配置的資源數(shù)量來配置資源配額。
[0049] 可以理解,上述第一策略為本發(fā)明所提出的新的配額配置策略,而第二策略為現(xiàn) 有的利用資源的實際數(shù)量來為用戶實體配置資源配額的策略。在下文中,為了便于描述,將 上述第一策略簡稱為"百分比策略",而將上述第二策略簡稱為"數(shù)量策略"。
[0050] 本發(fā)明的實施方式為終端用戶(例如存儲管理員)提供了配置配額的兩種選擇, 終端用戶可以根據(jù)使用環(huán)境和實際需要而從"百分比策略"和"數(shù)量策略"中選擇一種來實 施配額配置。這在很多情況下是有利的。例如,很多終端用戶已經(jīng)開發(fā)了許多設施/工具、 腳本等來利用現(xiàn)有的"數(shù)量策略"來管理配額。在本發(fā)明的方案中,并不強制終端用戶必須 采用"百分比策略"來管理配額,因此這些終端用戶仍然可以利用已有的設施/工具、腳本 等來采用現(xiàn)有的"數(shù)量策略",而不必開發(fā)新的設施/工具、腳本等。此外,在某些情況下,擴 展文件系統(tǒng)的目的僅僅是為了支持新的用戶實體,在這種情況下,采用現(xiàn)有的"數(shù)量策略" 來管理配額可能是有利的。
[0051] 在本發(fā)明的實施方式中,為了利用"百分比策略"或"數(shù)量策略"來實施配額管理, 表1所示的配額數(shù)據(jù)庫的配額數(shù)據(jù)庫記錄可能需要作出一些改動。表2示出了根據(jù)本發(fā)明 一個實施方式的配額數(shù)據(jù)庫的示例性結構。
[0052]
[0053] 表 2
[0054] 如表2所示,配額數(shù)據(jù)庫的每條配額數(shù)據(jù)庫記錄、即表2中的每一行至少包括以下 四個字段:
[0055] (DUserlD :標識符字段,用于標識配額數(shù)據(jù)庫記錄所針對的用戶實體;
[0056] (2) HardLimit:第一資源上限字段,也稱為硬上限字段,用于指示允許分配給相應 用戶實體的資源上限;
[0057] (3)CurrentSpaceUsage :資源使用量字段,用于指示相應用戶實體的當前資源使 用量;
[0058] (4)Policy :策略字段,用于指示基于第一策略還是第二策略為用戶實體配置的資 源上限。
[0059] 通過比較表2和表1可知,在表2中新增加了 Policy字段。在一個實施例中, Policy字段的值為二進制數(shù)值,例如1或0。例如,Policy字段的值為"1"表示采用"百分 比策略"來為相應的用戶實體配置的配額,而Policy字段的值為"0"表示采用"數(shù)量策略" 來為相應的用戶實體配置的配額。
[0060] 此外,配額數(shù)據(jù)庫的每條配額數(shù)據(jù)庫記錄還可以可選地包括如下字段:
[0061] SoftLimit:第二資源上限字段,也稱為軟上限字段,用于指示允許分配給相應用 戶實體的資源閾值。當相應用戶實體的當前資源使用量超過該資源閾值時,將向相應用戶 實體發(fā)送消息以警告相應用戶實體的當前資源使用量即將超過資源上限(即硬上限字段 的值)。
[0062] 從表2中可以看出,針對不同的用戶實體,HardLimit和SoftLimit字段的值表 示磁盤空間的實際數(shù)量或者百分比。例如,對于UserlD為100的用戶實體而言,其配額數(shù) 據(jù)庫記錄的Policy字段的值為0,表示采用"數(shù)量策略"來為該用戶實體配置的配額,因而 允許分配給該用戶實體的磁盤空間為150G。當用戶實體100的當前磁盤空間使用量超過 SoftLimit字段所規(guī)定的閾值100G時,將向用戶實體100發(fā)送消息以警告用戶實體100其 當前磁盤空間使用量即將超過HardLimit字段所規(guī)定的磁盤空間上限。此外,對于UserlD 為106的用戶實體而言,其配額數(shù)據(jù)庫記錄的Policy字段的值為1,表示采用"百分比策略" 來為該用戶實體配置的配額。在這種情況下,HardLimit的值(即40% )表示允許分配給 用戶實體106的最大磁盤空間數(shù)量相對于磁盤空間總量的百分比。當用戶實體106的當前 磁盤空間使用量超過SoftLimit字段所規(guī)定的閾值(即30% )時,將向用戶實體106發(fā)送 消息以警告用戶實體106其當前磁盤空間使用量即將超過HardLimit字段所規(guī)定的磁盤空 間上限(即40% )。
[0063] 繼續(xù)參照圖1,在步驟S120,根據(jù)第一策略或第二策略來應用資源配額。
[0064] 如前所述,當用戶實體想要在文件系統(tǒng)中執(zhí)行修改操作時,例如當用戶實體想要 在文件系統(tǒng)中進行寫入/刪除/更改所有者/更改用戶群組等操作時,用戶實體會向系統(tǒng) 發(fā)出資源分配請求。響應于接收到來自用戶實體的資源分配請求,系統(tǒng)在配額數(shù)據(jù)庫中查 找針對該用戶實體創(chuàng)建的配額數(shù)據(jù)庫記錄。之后,查看針對該用戶實體的配額數(shù)據(jù)庫記錄 的策略字段以確定是基于"百分比策略"還是"數(shù)量策略"為該用戶實體配置的資源配額。 然后,至少部分地根據(jù)所確定的策略來確定是否向用戶實體分配所請求的資源。例如,在基 于"百分比策略"為該用戶實體配置資源配額的情況下,至少部分地根據(jù)"百分比策略"來 確定是否向用戶實體分配所請求的資源。
[0065] 在一個實施方式中,在根據(jù)"百分比策略"來確定是否向用戶實體分配所請求 的資源時執(zhí)行如下操作:基于針對用戶實體所創(chuàng)建的配額數(shù)據(jù)庫記錄的HardLimit字段 的值,計算允許分配給用戶實體的最大資源數(shù)量;計算用戶實體的當前資源使用量(即 CurrentSpaceUsage字段的值)與所請求的資源的數(shù)量的總和;將該總和與所述最大資源 數(shù)量進行比較;如果該總和未超過最大資源數(shù)量,則向用戶實體分配所請求的資源,否則 拒絕用戶實體的請求并且向用戶實體返回"超出配額"錯誤。此外,在向用戶實體分配所 請求的資源之前,利用用戶實體的當前資源使用量與所請求的資源的數(shù)量的總和來更新 CurrentSpaceUsage字段的值,以確保配額記錄信息與修改操作的一致性。
[0066] 以下示出了根據(jù)本發(fā)明的一個實施方式,文件系統(tǒng)的寫入路徑中的偽碼的示例。
[0067] 寫入路徑中的偽碼:
[0068] Status write(Inode *file, BlockList *list, ID Userid) { FileSystem *fs = file->getFS(); QuotaRecord *qr = fs->getQuotaRecord(UserId); ULONG64 SoftLimit= qr->SoftLimit,HardLimit = qr->HardLimit; If (qr->policy == PERCENTAGE-POLICY) {// PERCENTAGE-POLICY 二二 1 SoftLimit = fs->getCapacity() * qr->SoftLimit /100; HardLimit = fs->getCapacity() * qr->HardLimit / 100; }
[0069] For each block in list { If (qr->CurrentSpaceUsage + blockSize() > HardLimit) { Return Quota-Exceeded; } Else { Fs->writeBlock(block); If (qr->CurrentSpaceUsage > SoftLimit) { S end W amingMessage(U serld); } } } }
[0070] 通過比較上述偽碼與結合表1所描述的寫入路徑中的偽碼可見,上述偽碼的第 6-10行、第12和17行與結合表1所描述的偽碼的相應部分之間存在區(qū)別。
[0071] 以下示出了根據(jù)本發(fā)明的一個實施方式,文件系統(tǒng)的更改所有者路徑中的偽碼的 示例
[0072] 更改所有者路徑中的偽碼:
[0073] Status chown(Inode *file3 ID Userldl, ID Userld2) { FileSystem *fs = file->getFS(); QuotaRecord *qrl = fs->getQuotaRecord(UserIdl); QuotaRecord *qr2 = fs->getQuotaRecord(UserId2); ULONG64 SoftLimit = qr->SoftLimit, HardLimit = qr->HardLimit; If (qr->policy == PERCENTAGE POLICY) {// PERCENTAGE-POLICY == 1 SoftLimit = fs->getCapacity() * qr->SoftLimit / 100; HardLimit = fs->getCapacity() * qr->HardLimit /100;
[0074] } If (qr2->CurrentSpaceUsage + file->usedBlocks() > HardLimit) { Return Quota Exceeded; } qrl->CurrentSpaceUsage = qrl->CurrentSpaceUsage - file->usedBlocks(); qr2->CurrentSpaceUsage = qr2->CurrentSpaceUsage + file->usedBlocks(); if (qr2->CurrentSpaceUsage > SoftLimit) { S end W amingMessage(U serld2); } }
[0075] 通過比較上述偽碼與結合表1所描述的更改所有者路徑中的偽碼可見,上述偽碼 的第7-12行以及第17行與結合表1所描述的偽碼的相應部分之間存在區(qū)別。
[0076] 如前所述,為了跟蹤用戶實體的資源消耗情況,存儲管理員會請求用戶實體報告 針對該用戶實體創(chuàng)建的配額數(shù)據(jù)庫記錄中的信息。根據(jù)本發(fā)明的一個實施方式,存儲管理 員可以指定配額報告的格式,并且向用戶實體發(fā)送配額報告請求,以請求用戶實體利用所 指定的格式報告針對用戶實體創(chuàng)建的配額數(shù)據(jù)庫記錄中的信息。
[0077] 根據(jù)本發(fā)明的一個實施方式,配額報告的格式包括以下各項之一:
[0078] (1)百分比格式,指示用戶實體應當報告標識符字段中的內(nèi)容,應當利用允許分配 給相應用戶實體的最大資源數(shù)量相對于資源總量的百分比來報告第一資源上限字段中的 內(nèi)容,并且應當利用相應用戶實體已使用的資源的數(shù)量相對于資源總量的百分比來報告資 源使用量字段的內(nèi)容;
[0079] (2)數(shù)量格式,指示用戶實體應當報告標識符字段中的內(nèi)容,應當利用允許分配給 相應用戶實體的最大資源數(shù)量來報告第一資源上限字段中的內(nèi)容,并且應當利用相應用戶 實體已使用的資源的數(shù)量來報告資源使用量字段的內(nèi)容;以及
[0080] (3)缺省格式,指示用戶實體應當報告其配額數(shù)據(jù)庫記錄的所有字段的實際內(nèi)容。
[0081] 可以理解,在向控制路徑返回每條配額記錄的信息之前,記錄的信息被轉換為存 儲管理員所指定的格式。以下表3示出了以"百分比格式"報告配額記錄信息的示例,表4 示出了以"數(shù)量格式"報告配額記錄信息的示例,表5示出了以"缺省格式"報告配額記錄 信息的示例。
[0088] 此外,存儲管理員可以在任何時候通過控制路徑命令或GUI操作來更改用戶實體 的配額配置策略。
[0089] 當存儲管理員將用戶實體的配額配置策略由"數(shù)量策略"更改為"百分比策略" 時,如果存儲管理員為軟上限、硬上限、或者軟上限和硬上限二者提供新的百分比值(1到 1〇〇),則新的百分比值將被用作新的上限。否則,系統(tǒng)將采用已有的軟上限或硬上限值來分 割當前文件系統(tǒng)的容量以獲得百分比值。
[0090] 當存儲管理員將用戶實體的配額配置策略由"百分比策略"更改為"數(shù)量策略"時, 如果存儲管理員為軟上限、硬上限、或者軟上限和硬上限二者提供新的具體數(shù)值,則新的具 體數(shù)值將被用作新的上限。否則,系統(tǒng)將采用當前的百分比值與當前文件系統(tǒng)的容量的乘 積來獲得確切數(shù)量。
[0091] 應當理解,以上僅僅是出于說明目的而結合文件系統(tǒng)的磁盤空間管理的示例描述 了本發(fā)明,但是本發(fā)明的范圍并不局限于此,而是能夠適用于任何基于配額的資源管理環(huán) 境。例如,本發(fā)明也能夠應用于除文件系統(tǒng)之外的其他存儲容器(storage container),例 如將若干存儲地址綁定在一起而形成的存儲池(storage pool)。此外,本發(fā)明也能夠應用 于除磁盤空間管理之外的其他資源管理,例如存儲器的管理。
[0092] 本發(fā)明的實施方式還提供了一種基于配額的資源管理裝置。圖2示出了根據(jù)本發(fā) 明一個實施方式的基于配額的資源管理裝置200的框圖。
[0093] 如圖2所示,裝置200包括:配額配置單元210,被配置為基于第一策略或第二策 略為多個用戶實體中的每個用戶實體配置資源配額,第一策略指示利用允許配置的資源數(shù) 量相對于資源總量的百分比來配置資源配額,第二策略指示利用允許配置的資源數(shù)量來配 置資源配額;以及配額應用單元220,被配置為根據(jù)第一策略或第二策略來應用資源配額。
[0094] 在一個實施方式中,配額配置單元210被進一步配置為:針對每個用戶實體創(chuàng)建 配額數(shù)據(jù)庫記錄。配額數(shù)據(jù)庫記錄至少包括如下字段:標識符字段,用于標識配額數(shù)據(jù)庫記 錄所針對的用戶實體;第一資源上限字段,用于指示允許分配給相應用戶實體的資源上限; 資源使用量字段,用于指示相應用戶實體的當前資源使用量;以及策略字段,用于指示基于 第一策略還是第二策略為用戶實體配置的資源上限。
[0095] 在一個實施方式中,在基于第一策略為相應用戶實體配置資源配額的情況下,第 一資源上限字段的內(nèi)容表示允許分配給相應用戶實體的最大資源數(shù)量相對于資源總量的 百分比。
[0096] 在一個實施方式中,配額應用單元220被進一步配置為:響應于接收到來自用戶 實體的資源分配請求,查看針對用戶實體的配額數(shù)據(jù)庫記錄的策略字段以確定是基于第一 策略還是第二策略為用戶實體配置的資源配額;以及至少部分地根據(jù)所確定的策略來確定 是否向用戶實體分配所請求的資源。
[0097] 在一個實施方式中,配額應用單元220被進一步配置為:在基于第一策略為用戶 實體配置資源配額的情況下,至少部分地根據(jù)第一策略來確定是否向用戶實體分配所請求 的資源。
[0098] 在一個實施方式中,配額應用單元220被進一步配置為:基于針對用戶實體所創(chuàng) 建的配額數(shù)據(jù)庫記錄的第一資源上限字段的內(nèi)容,計算允許分配給用戶實體的最大資源數(shù) 量;計算用戶實體的當前資源使用量與所請求的資源的數(shù)量的總和;將總和與最大資源數(shù) 量進行比較;響應于總和未超過最大資源數(shù)量而向用戶實體分配所請求的資源。
[0099] 在一個實施方式中,針對每個用戶實體所創(chuàng)建的配額數(shù)據(jù)庫記錄進一步包括第二 資源上限字段,用于指示允許分配給相應用戶實體的資源閾值。
[0100] 在一個實施方式中,配額應用單元220被進一步配置為:指定配額報告的格式;以 及向用戶實體發(fā)送配額報告請求,以請求用戶實體利用所指定的格式報告針對用戶實體創(chuàng) 建的配額數(shù)據(jù)庫記錄中的信息。
[0101] 在一個實施方式中,配額報告的格式包括以下各項之一:百分比格式,指示用戶實 體應當報告標識符字段中的內(nèi)容,應當利用允許分配給相應用戶實體的最大資源數(shù)量相對 于資源總量的百分比來報告第一資源上限字段中的內(nèi)容,并且應當利用相應用戶實體已使 用的資源的數(shù)量相對于資源總量的百分比來報告資源使用量字段的內(nèi)容;數(shù)量格式,指示 用戶實體應當報告標識符字段中的內(nèi)容,應當利用允許分配給相應用戶實體的最大資源數(shù) 量來報告第一資源上限字段中的內(nèi)容,并且應當利用相應用戶實體已使用的資源的數(shù)量來 報告資源使用量字段的內(nèi)容;以及缺省格式,指示用戶實體應當報告其配額數(shù)據(jù)庫記錄的 所有字段的實際內(nèi)容。
[0102] 本發(fā)明的實施方式還提供了一種計算機程序產(chǎn)品,其包括計算機可讀介質,計算 機可讀介質承載在其中體現(xiàn)的用于與計算機一起使用的計算機程序代碼。計算機程序代碼 包括:用于基于第一策略或第二策略為多個用戶實體中的每個用戶實體配置資源配額的代 碼,第一策略指示利用允許配置的資源數(shù)量相對于資源總量的百分比來配置資源配額,第 二策略指示利用允許配置的資源數(shù)量來配置資源配額;以及用于根據(jù)第一策略或第二策略 來應用資源配額的代碼。
[0103] 下面參考圖3,其示出了適于用來實踐本發(fā)明實施方式的計算機系統(tǒng)300的示意 性框圖。例如,圖3所示的計算機系統(tǒng)300可以用于實現(xiàn)如上文描述的用于加速磁盤陣列 的數(shù)據(jù)重構裝置1800。
[0104] 如圖3所示,計算機系統(tǒng)300可以包括:CPU(中央處理單元)301、RAM(隨機存取 存儲器)302、ROM(只讀存儲器)303、系統(tǒng)總線304、硬盤控制器305、鍵盤控制器306、串行 接口控制器307、并行接口控制器308、顯示控制器309、硬盤310、鍵盤311、串行外部設備 312、并行外部設備313和顯示器314。在這些設備中,與系統(tǒng)總線304耦合的有CPU 301、 RAM 302、ROM 303、硬盤控制器305、鍵盤控制器306、串行控制器307、并行控制器308和顯 示控制器309。硬盤310與硬盤控制器305耦合,鍵盤311與鍵盤控制器306耦合,串行外 部設備312與串行接口控制器307耦合,并行外部設備313與并行接口控制器308耦合,以 及顯示器314與顯示控制器309耦合。應當理解,圖3所述的結構框圖僅僅為了示例的目 的而示出的,而不是對本發(fā)明范圍的限制。在某些情況下,可以根據(jù)具體情況而增加或者減 少某些設備。
[0105] 如上所述,裝置200可以實現(xiàn)為純硬件,例如芯片、ASIC、S0C等。這些硬件可以集 成在計算機系統(tǒng)300中。此外,本發(fā)明的實施方式也可以通過計算機程序產(chǎn)品的形式實現(xiàn)。 例如,參考圖1描述的方法100可以通過計算機程序產(chǎn)品來實現(xiàn)。該計算機程序產(chǎn)品可以存 儲在例如圖3所示的RAM 302、R0M 303、硬盤310和/或任何適當?shù)拇鎯橘|中,或者通過 網(wǎng)絡從適當?shù)奈恢孟螺d到計算機系統(tǒng)300上。計算機程序產(chǎn)品可以包括計算機代碼部分, 其包括可由適當?shù)奶幚碓O備(例如,圖3中示出的CPU 301)執(zhí)行的程序指令。所述程序指 令至少可以包括用于實現(xiàn)方法100的步驟的指令。
[0106] 應當注意,本發(fā)明的實施方式可以通過硬件、軟件或者軟件和硬件的結合來實現(xiàn)。 硬件部分可以利用專用邏輯來實現(xiàn);軟件部分可以存儲在存儲器中,由適當?shù)闹噶顖?zhí)行系 統(tǒng),例如微處理器或者專用設計硬件來執(zhí)行。本領域的普通技術人員可以理解上述的設備 和方法可以使用計算機可執(zhí)行指令和/或包含在處理器控制代碼中來實現(xiàn),例如在諸如磁 盤、CD或DVD-ROM的載體介質、諸如只讀存儲器(固件)的可編程的存儲器或者諸如光學 或電子信號載體的數(shù)據(jù)載體上提供了這樣的代碼。本發(fā)明的設備及其模塊可以由諸如超大 規(guī)模集成電路或門陣列、諸如邏輯芯片、晶體管等的半導體、或者諸如現(xiàn)場可編程門陣列、 可編程邏輯設備等的可編程硬件設備的硬件電路實現(xiàn),也可以用由各種類型的處理器執(zhí)行 的軟件實現(xiàn),也可以由上述硬件電路和軟件的結合例如固件來實現(xiàn)。
[0107] 說明書中提及的通信網(wǎng)絡可以包括各類網(wǎng)絡,包括但不限于局域網(wǎng)("LAN"),廣 域網(wǎng)("WAN"),根據(jù)IP協(xié)議的網(wǎng)絡(例如,因特網(wǎng))以及端對端網(wǎng)絡(例如,ad hoc對等 網(wǎng)絡)。
[0108] 應當注意,盡管在上文詳細描述中提及了設備的若干裝置或子裝置,但是這種劃 分僅僅并非強制性的。實際上,根據(jù)本發(fā)明的實施方式,上文描述的兩個或更多裝置的特征 和功能可以在一個裝置中具體化。反之,上文描述的一個裝置的特征和功能可以進一步劃 分為由多個裝置來具體化。
[0109] 此外,盡管在附圖中以特定順序描述了本發(fā)明方法的操作,但是,這并非要求或者 暗示必須按照該特定順序來執(zhí)行這些操作,或是必須執(zhí)行全部所示的操作才能實現(xiàn)期望的 結果。相反,流程圖中描繪的步驟可以改變執(zhí)行順序。附加地或備選地,可以省略某些步驟, 將多個步驟合并為一個步驟執(zhí)行,和/或將一個步驟分解為多個步驟執(zhí)行。
[0110] 雖然已經(jīng)參考若干【具體實施方式】描述了本發(fā)明,但是應該理解,本發(fā)明并不限于 所公開的【具體實施方式】。本發(fā)明旨在涵蓋所附權利要求的精神和范圍內(nèi)所包括的各種修改 和等同布置。所附權利要求的范圍符合最寬泛的解釋,從而包含所有這樣的修改及等同結 構和功能。
【主權項】
1. 一種基于配額的資源管理方法,包括: 基于第一策略或第二策略為多個用戶實體中的每個用戶實體配置資源配額,所述第一 策略指示利用允許配置的資源數(shù)量相對于資源總量的百分比來配置所述資源配額,所述第 二策略指示利用所述允許配置的資源數(shù)量來配置所述資源配額;以及 根據(jù)所述第一策略或所述第二策略來應用所述資源配額。2. 根據(jù)權利要求1所述的方法,其中基于第一策略或第二策略為多個用戶實體中的每 個用戶實體配置資源配額包括: 針對每個用戶實體創(chuàng)建配額數(shù)據(jù)庫記錄,所述配額數(shù)據(jù)庫記錄至少包括如下字段: 標識符字段,用于標識所述配額數(shù)據(jù)庫記錄所針對的用戶實體; 第一資源上限字段,用于指示允許分配給相應用戶實體的資源上限; 資源使用量字段,用于指示所述相應用戶實體的當前資源使用量;以及 策略字段,用于指示基于所述第一策略還是所述第二策略為所述用戶實體配置的所述 資源上限。3. 根據(jù)權利要求2所述的方法,其中在基于所述第一策略為相應用戶實體配置資源配 額的情況下,所述第一資源上限字段的內(nèi)容表示允許分配給相應用戶實體的最大資源數(shù)量 相對于所述資源總量的百分比。4. 根據(jù)權利要求2或3所述的方法,其中根據(jù)所述第一策略或所述第二策略來應用所 述資源配額包括: 響應于接收到來自用戶實體的資源分配請求,查看針對所述用戶實體的配額數(shù)據(jù)庫記 錄的策略字段以確定是基于所述第一策略還是所述第二策略為所述用戶實體配置的資源 配額;以及 至少部分地根據(jù)所確定的策略來確定是否向所述用戶實體分配所請求的資源。5. 根據(jù)權利要求4所述的方法,其中至少部分地根據(jù)所確定的策略來確定是否向所述 用戶實體分配所請求的資源包括: 在基于所述第一策略為所述用戶實體配置資源配額的情況下,至少部分地根據(jù)所述第 一策略來確定是否向所述用戶實體分配所請求的資源。6. 根據(jù)權利要求5所述的方法,其中至少部分地根據(jù)所述第一策略來確定是否向所述 用戶實體分配所請求的資源包括: 基于針對所述用戶實體所創(chuàng)建的配額數(shù)據(jù)庫記錄的第一資源上限字段的內(nèi)容,計算允 許分配給所述用戶實體的最大資源數(shù)量; 計算所述用戶實體的當前資源使用量與所請求的資源的數(shù)量的總和; 將所述總和與所述最大資源數(shù)量進行比較; 響應于所述總和未超過所述最大資源數(shù)量而向所述用戶實體分配所請求的資源。7. 根據(jù)權利要求2所述的方法,其中針對每個用戶實體所創(chuàng)建的配額數(shù)據(jù)庫記錄進一 步包括第二資源上限字段,用于指示允許分配給相應用戶實體的資源閾值。8. 根據(jù)權利要求7所述的方法,進一步包括: 響應于所述相應用戶實體的當前資源使用量超過所述資源閾值,向所述相應用戶實體 發(fā)送消息以警告所述相應用戶實體的當前資源使用量即將超過所述資源上限。9. 根據(jù)權利要求2或3所述的方法,其中根據(jù)所述第一策略或所述第二策略來應用所 述資源配額包括: 指定配額報告的格式;以及 向用戶實體發(fā)送配額報告請求,以請求所述用戶實體利用所指定的格式報告針對所述 用戶實體創(chuàng)建的配額數(shù)據(jù)庫記錄中的信息。10. 根據(jù)權利要求9所述的方法,其中所述配額報告的格式包括以下各項之一: 百分比格式,指示所述用戶實體應當報告所述標識符字段中的內(nèi)容,應當利用允許分 配給相應用戶實體的最大資源數(shù)量相對于所述資源總量的百分比來報告所述第一資源上 限字段中的內(nèi)容,并且應當利用所述相應用戶實體已使用的資源的數(shù)量相對于所述資源總 量的百分比來報告所述資源使用量字段的內(nèi)容; 數(shù)量格式,指示所述用戶實體應當報告所述標識符字段中的內(nèi)容,應當利用允許分配 給相應用戶實體的最大資源數(shù)量來報告所述第一資源上限字段中的內(nèi)容,并且應當利用所 述相應用戶實體已使用的資源的數(shù)量來報告所述資源使用量字段的內(nèi)容;以及 缺省格式,指示所述用戶實體應當報告其配額數(shù)據(jù)庫記錄的所有字段的實際內(nèi)容。11. 一種基于配額的資源管理裝置,包括: 配額配置單元,被配置為基于第一策略或第二策略為多個用戶實體中的每個用戶實體 配置資源配額,所述第一策略指示利用允許配置的資源數(shù)量相對于資源總量的百分比來配 置所述資源配額,所述第二策略指示利用所述允許配置的資源數(shù)量來配置所述資源配額; 以及 配額應用單元,被配置為根據(jù)所述第一策略或所述第二策略來應用所述資源配額。12. 根據(jù)權利要求11所述的裝置,其中所述配額配置單元被進一步配置為: 針對每個用戶實體創(chuàng)建配額數(shù)據(jù)庫記錄,所述配額數(shù)據(jù)庫記錄至少包括如下字段: 標識符字段,用于標識所述配額數(shù)據(jù)庫記錄所針對的用戶實體; 第一資源上限字段,用于指示允許分配給相應用戶實體的資源上限; 資源使用量字段,用于指示所述相應用戶實體的當前資源使用量;以及 策略字段,用于指示基于所述第一策略還是所述第二策略為所述用戶實體配置的所述 資源上限。13. 根據(jù)權利要求12所述的裝置,其中在基于所述第一策略為相應用戶實體配置資源 配額的情況下,所述第一資源上限字段的內(nèi)容表示允許分配給相應用戶實體的最大資源數(shù) 量相對于所述資源總量的百分比。14. 根據(jù)權利要求12或13所述的裝置,其中所述配額應用單元被進一步配置為: 響應于接收到來自用戶實體的資源分配請求,查看針對所述用戶實體的配額數(shù)據(jù)庫記 錄的策略字段以確定是基于所述第一策略還是所述第二策略為所述用戶實體配置的資源 配額;以及 至少部分地根據(jù)所確定的策略來確定是否向所述用戶實體分配所請求的資源。15. 根據(jù)權利要求14所述的裝置,其中所述配額應用單元被進一步配置為: 在基于所述第一策略為所述用戶實體配置資源配額的情況下,至少部分地根據(jù)所述第 一策略來確定是否向所述用戶實體分配所請求的資源。16. 根據(jù)權利要求15所述的裝置,其中所述配額應用單元被進一步配置為: 基于針對所述用戶實體所創(chuàng)建的配額數(shù)據(jù)庫記錄的第一資源上限字段的內(nèi)容,計算允 許分配給所述用戶實體的最大資源數(shù)量; 計算所述用戶實體的當前資源使用量與所請求的資源的數(shù)量的總和; 將所述總和與所述最大資源數(shù)量進行比較; 響應于所述總和未超過所述最大資源數(shù)量而向所述用戶實體分配所請求的資源。17. 根據(jù)權利要求12所述的裝置,其中針對每個用戶實體所創(chuàng)建的配額數(shù)據(jù)庫記錄進 一步包括第二資源上限字段,用于指示允許分配給相應用戶實體的資源閾值。18. 根據(jù)權利要求12或13所述的裝置,其中所述配額應用單元被進一步配置為: 指定配額報告的格式;以及 向用戶實體發(fā)送配額報告請求,以請求所述用戶實體利用所指定的格式報告針對所述 用戶實體創(chuàng)建的配額數(shù)據(jù)庫記錄中的信息。19. 根據(jù)權利要求18所述的裝置,其中所述配額報告的格式包括以下各項之一: 百分比格式,指示所述用戶實體應當報告所述標識符字段中的內(nèi)容,應當利用允許分 配給相應用戶實體的最大資源數(shù)量相對于所述資源總量的百分比來報告所述第一資源上 限字段中的內(nèi)容,并且應當利用所述相應用戶實體已使用的資源的數(shù)量相對于所述資源總 量的百分比來報告所述資源使用量字段的內(nèi)容; 數(shù)量格式,指示所述用戶實體應當報告所述標識符字段中的內(nèi)容,應當利用允許分配 給相應用戶實體的最大資源數(shù)量來報告所述第一資源上限字段中的內(nèi)容,并且應當利用所 述相應用戶實體已使用的資源的數(shù)量來報告所述資源使用量字段的內(nèi)容;以及 缺省格式,指示所述用戶實體應當報告其配額數(shù)據(jù)庫記錄的所有字段的實際內(nèi)容。20. -種計算機程序產(chǎn)品,包括計算機可讀介質,所述計算機可讀介質承載在其中體現(xiàn) 的用于與計算機一起使用的計算機程序代碼,所述計算機程序代碼包括: 用于基于第一策略或第二策略為多個用戶實體中的每個用戶實體配置資源配額的代 碼,所述第一策略指示利用允許配置的資源數(shù)量相對于資源總量的百分比來配置所述資源 配額,所述第二策略指示利用所述允許配置的資源數(shù)量來配置所述資源配額;以及 用于根據(jù)所述第一策略或所述第二策略來應用所述資源配額的代碼。
【文檔編號】G06F9/50GK105893138SQ201410813708
【公開日】2016年8月24日
【申請日】2014年12月19日
【發(fā)明人】周應超, 仲偉罡, 王東磊, 張帆
【申請人】伊姆西公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
彩票| 桓台县| 灵台县| 梅州市| 遂平县| 军事| 安西县| 黑河市| 瑞安市| 磴口县| 旬邑县| 资中县| 绥棱县| 盐城市| 离岛区| 巴东县| 会理县| 塔城市| 读书| 南和县| 四平市| 郎溪县| 襄樊市| 神木县| 巴彦淖尔市| 大宁县| 佳木斯市| 右玉县| 云南省| 北宁市| 利川市| 孝感市| 江孜县| 时尚| 墨玉县| 南投县| 南充市| 巫山县| 聊城市| 神池县| 德钦县|