一種磁盤io資源分配方法和裝置制造方法
【專利摘要】本發明實施例公開了一種磁盤IO資源分配方法和裝置,所述方法包括:預先設置至少一個策略組,所述策略組包括至少一個磁盤分區;首先,為各個策略組分別分配令牌個數和策略模式;其次,接收任一磁盤IO請求,所述磁盤IO請求包括磁盤分區標識;獲取所述磁盤分區標識對應的策略組;最后,判斷所述策略組的令牌個數是否大于零,如果是,為所述磁盤IO請求分配所述策略組的資源,并根據所述策略組的策略模式減少所述策略組的令牌個數;如果否,則當滿足新一輪令牌發放條件時,執行新一輪令牌發放。本發明采用新的令牌分配方式,避免了資源分配過程中磁盤IO資源的浪費,同時,由于采用策略分組方式,減少了磁盤IO請求的擁堵,提高了磁盤IO資源的利用率。
【專利說明】一種磁盤IO資源分配方法和裝置
【技術領域】
[0001]本發明涉及數據處理【技術領域】,具體涉及一種磁盤IO資源分配方法和裝置。
【背景技術】
[0002]近些年,隨著物理機單機的性能不斷提升和虛擬化技術的不斷成熟,用戶可以在一臺物理機上面部署多臺虛擬機,啟用多個類型的應用。系統將資源平均分配給各個虛擬機,而無法根據應用服務的實際資源需求為虛擬機進行合理有效的資源分配。實際應用中,對于磁盤IO資源的分配就是采用上述平均分配的方式。
[0003]通常,系統接收到磁盤IO請求后,根據磁盤IO請求,確定該IO請求所需求的磁盤分區后,直接將該磁盤分區的資源分配給該IO請求。可見,該資源方法是以磁盤分區為控制對象,當該需求磁盤分區不存在可用資源時,該磁盤IO請求即得不到響應。
[0004]所以,上述資源分配方法會造成磁盤IO請求的擁堵,同時不能有效的利用資源。
【發明內容】
[0005]為了充分利用空閑資源,從而提高資源利用率,本發明提供了一種基于IaaS平臺的資源調度方法和裝置。
[0006]本發明提供了一種磁盤IO資源分配方法,所述方法包括:
[0007]預先設置至少一個策略組,所述策略組包括至少一個磁盤分區;
[0008]為各個策略組分別分配令牌個數和策略模式;
[0009]接收任一磁盤IO請求,所述磁盤IO請求包括磁盤分區標識,所述磁盤分區標識用于唯一標識磁盤分區;
[0010]獲取所述磁盤分區標識對應的策略組;
[0011]判斷所述策略組的令牌個數是否大于零,如果是,則為所述磁盤IO請求分配所述策略組的資源,并根據所述策略組的策略模式減少所述策略組的令牌個數;如果否,則當滿足新一輪令牌發放條件時,執行新一輪令牌發放。
[0012]優選地,所述當滿足新一輪令牌發放條件時,執行新一輪令牌發放,包括:
[0013]當滿足新一輪令牌發放條件時,將所有策略組的令牌個數增加預設個數。
[0014]優選地,所述方法還包括:
[0015]為所述磁盤IO請求分配所述策略組的資源,并根據所述策略組的策略模式減少所述令牌個數。
[0016]優選地,所述獲取所述磁盤分區標識對應的策略組,包括:
[0017]獲取所述磁盤IO請求中的磁盤分區標識;
[0018]根據所述磁盤分區標識查找對應的磁盤分區;
[0019]獲取所述磁盤分區對應的策略組。
[0020]優選地,所述當滿足新一輪令牌發放條件時,執行新一輪令牌發放,包括:
[0021]當所有策略組的令牌個數均為零時,執行新一輪令牌發放;[0022]或者,
[0023]當所有策略組的令牌個數不都為零時,判斷令牌個數最多的策略組是否處于預設的繁忙狀態,如果否,則執行新一輪令牌發放。
[0024]優選地,所述方法還包括:
[0025]每隔預設頻率的時長獲取一次資源分配日志;
[0026]根據所述資源分配日志,為各個策略組分別分配令牌個數和策略模式。
[0027]本發明還提供了一種磁盤IO資源分配系統,所述系統包括:
[0028]設置單元,用于預先設置至少一個策略組,所述策略組包括至少一個磁盤分區;
[0029]第一分配單元,用于為各個策略組分別分配令牌個數和策略模式;
[0030]接收單元,用于接收任一磁盤IO請求,所述磁盤IO請求包括磁盤分區標識,所述磁盤分區標識用于唯一標識磁盤分區;
[0031]第一獲取單元,用于獲取所述磁盤分區標識對應的策略組;
[0032]判斷單元,用于判斷所述策略組的令牌個數是否大于零;
[0033]第二分配單元,用于在所述判斷單元的結果為是時,為所述磁盤IO請求分配所述策略組的資源,并根據所述策略組的策略模式減少所述策略組的令牌個數;
[0034]令牌發放單元,用于在所述判斷單元的結果為否,且滿足新一輪令牌發放條件時,執行新一輪令牌發放。
[0035]優選地,所述令牌發放單元,包括:
[0036]第一發放子單元,用于當滿足新一輪令牌發放條件時,將所有策略組的令牌個數增加預設個數。
[0037]優選地,所述系統還包括:
[0038]第三分配單元,用于為所述磁盤IO請求分配所述策略組的資源,并根據所述策略組的策略模式減少所述令牌個數。
[0039]優選地,所述第一獲取單元,包括:
[0040]第一獲取子單元,用于獲取所述磁盤IO請求中的磁盤分區標識;
[0041]查找子單元,用于根據所述磁盤分區標識查找對應的磁盤分區;
[0042]第二獲取子單元,用于獲取所述磁盤分區對應的策略組。
[0043]優選地,所述令牌發放單元,包括:
[0044]第二發放子單元,用于當所有策略組的令牌個數均為零時,執行新一輪令牌發放;
[0045]或者,
[0046]判斷子單元,用于當所有策略組的令牌個數不都為零時,判斷令牌個數最多的策略組是否處于預設的繁忙狀態;
[0047]第三發放子單元,用于在所述判斷子單元的結果為否時,執行新一輪令牌發放。
[0048]優選地,所述系統還包括:
[0049]第二獲取單元,用于每隔預設頻率的時長獲取一次資源分配日志;
[0050]第四分配單元,用于根據所述資源分配日志,為各個策略組分別分配令牌個數和策略模式。
[0051]本發明預先設置至少一個策略組,所述策略組包括至少一個磁盤分區;首先,為各個策略組分別分配令牌個數和策略模式;其次,接收任一磁盤IO請求,所述磁盤IO請求包括磁盤分區標識;并獲取所述磁盤分區標識對應的策略組;最后,判斷所述策略組的令牌個數是否大于零,如果是,則為所述磁盤IO請求分配所述策略組的資源,并根據所述策略組的策略模式減少所述策略組的令牌個數;如果否,則當滿足新一輪令牌發放條件時,執行新一輪令牌發放。本發明采用了新的令牌分配方式,避免了資源分配過程中磁盤IO資源的浪費,同時,由于采用了策略分組方式,在磁盤IO資源分配上更加靈活可以為一臺虛擬機分配磁盤IO資源,也可以讓幾個部署相關應用的虛擬機共享一定比例磁盤IO資源,減少了磁盤IO請求的擁堵,提高了磁盤IO資源的利用率。
【專利附圖】
【附圖說明】
[0052]為了更清楚地說明本申請實施例中的技術方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本申請的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動性的前提下,還可以根據這些附圖獲得其他的附圖。
[0053]圖1為本發明實施例一提供的磁盤IO資源分配方法流程圖;
[0054]圖2為本發明實施例一提供的執行新一輪令牌發放的方法流程圖;
[0055]圖3為本發明實施例二磁盤IO資源分配裝置結構圖。
【具體實施方式】
[0056]下面將結合本申請實施例中的附圖,對本申請實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本申請一部分實施例,而不是全部的實施例。基于本申請中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬于本申請保護的范圍。
[0057]本發明實施例采用了更加科學的令牌分配方式,可以解決現有技術的系統資源浪費問題,從而可以更加合理高效的使用系統資源。同時,本發明還采用了策略分組方式,可將相關磁盤分區加入到一個策略組里面,策略組包含I個或者多個磁盤分區,然后再為策略組分配策略,即本發明的控制對象不是磁盤分區而是策略組,從全局角度為各個虛擬機進行磁盤IO帶寬分配和控制,從而可以支持為擁有多個分區的虛擬機分配一定比例的磁盤IO帶寬,并支持多個虛擬機共享一定比例帶寬。
[0058]實施例一
[0059]參考圖1,圖1為本實施例提供的磁盤IO資源分配方法流程圖,具體可以包括:
[0060]步驟101:預先設置至少一個策略組,所述策略組包括至少一個磁盤分區;
[0061]本實施例中,磁盤包括若干個磁盤分區,若干個磁盤分區組成一個策略組。本實施例預先設置若干個策略組,每個策略組包括至少一個磁盤分區。本實施例的控制對象不是磁盤分區而是策略組。
[0062]步驟102:為各個策略組分別分配令牌個數和策略模式;
[0063]本實施例中,在設置若干個策略組之后,為所有策略組分別分配令牌個數和策略方式。
[0064]其中,可以為各個策略組分配權重系數,根據各個策略組的權重系數為各個策略組分配令牌個數,例如,預先設置兩個策略組A和B,將包含有2048個令牌的基礎令牌池為策略組A和B進行分配,策略組A和B的權重系數分別為80%和20%,為策略組A分配80%的磁盤IO資源,對應的令牌個數為:2048*80%=1638 ;為策略組B分配20%的磁盤IO資源,對應的令牌個數為:2048*20%=410。
[0065]另外,為各個策略組分別分配一種策略模式,具體的,策略模式可以包括weight和sector-weight兩種模式,其中,weight模式不關心磁盤IO請求要請求的扇區的大小,對于任何一個磁盤IO請求的損耗均為一個令牌;而sector-weight模式會根據磁盤IO請求扇區的大小來損耗相應的令牌,一個扇區中的512字節對應一個令牌,也就是說,當磁盤IO請求需要的資源不大于512字節時,則一個磁盤IO請求的損耗為一個令牌,相應的,當磁盤IO請求需要的資源大于512字節且不大于1024字節時,則一個磁盤IO請求的損耗為兩個令牌,依此類推。用戶在為各個策略組分配策略模式時可以選擇兩種模式的任何一種,同時,策略模式也不僅限于上述兩種模式。
[0066]步驟103:接收任一磁盤IO請求,所述磁盤IO請求包括磁盤分區標識,所述磁盤分區標識用于唯一標識磁盤分區;
[0067]本實施例中,接收任意一個磁盤IO請求,所述磁盤IO請求用于為輸入輸出等命令提供磁盤資源,其中,磁盤IO請求可以包括磁盤分區標識,磁盤分區標識用于唯一標識磁盤分區,也就是說,可以根據磁盤分區標識唯一確定磁盤分區。
[0068]步驟104:獲取所述磁盤分區標識對應的策略組;
[0069]本實施例中,由于磁盤分區標識可以用于唯一確定磁盤分區,同時任意一個策略組包括若干個磁盤分區,即策略組與磁盤分區具有對應關系,所以,首先可以根據磁盤分區標識確定磁盤分區,其次可以根據磁盤分區確定該磁盤分區所在的策略組。
[0070]實際操作中,獲取磁盤分區標識對應的策略組的方法可以包括:
[0071]首先,獲取所述磁盤IO請求中的磁盤分區標識;
[0072]其次,根據所述磁盤分區標識查找對應的磁盤分區;
[0073]最后,獲取所述磁盤分區對應的策略組。
[0074]步驟105:判斷所述策略組的令牌個數是否大于零,如果是,則進入步驟106,如果否,則進入步驟107。
[0075]本實施例中,在磁盤IO請求需要訪問的策略組確定后,首先判斷該策略組持有的令牌個數是否大于零,如果該策略組持有的令牌個數大于零,則進入步驟106,否則,進入步驟 107。
[0076]其中,應用程序發出的磁盤I O請求可以通過所請求策略組持有的令牌來進行磁盤IO操作,并消耗相應的令牌。也就是說,通過令牌個數的增減能夠體現該策略組所持有的磁盤資源的情況。
[0077]步驟106:為所述磁盤IO請求分配所述策略組的資源,并根據所述策略組的策略模式減少所述策略組的令牌個數;
[0078]本實施例中,當該磁盤IO請求需要訪問的策略組持有的令牌個數大于零時,為該磁盤IO請求分配該策略組的資源,從而該磁盤IO請求對應的應用程序可以正常運行。并且,根據該策略組的策略模式減少該策略組所持有的令牌個數,也就是說,通過減少該策略組所持有的令牌個數體現該策略組的資源被分配。例如,當該策略組的策略模式為weight模式時,如果該策略組持有的令牌個數大于零,將該策略組持有的令牌個數減少I個。如果減后小于O,則設置該策略組持有令牌數為O。
[0079]步驟107:當滿足新一輪令牌發放條件時,執行新一輪令牌發放。
[0080]為避免策略組因為令牌被用光,長時間不能提交新的磁盤IO請求,而導致系統資源浪費及服務異常,本實施例會發放新一輪的令牌以供所有策略組使用。
[0081]本實施例中,當該磁盤IO請求需要訪問的策略組持有的令牌個數不大于零,即等于零時,判斷當前狀態是否滿足新一輪令牌發放條件,如果滿足,則執行新一輪令牌發放。
[0082]如果當前狀態不滿足新一輪令牌發放條件時,可以將當前的磁盤I O請求放入該策略組對應的block_bios隊列中,其中,該block_bios隊列可以按照磁盤I O請求的時間順序存儲未被響應的磁盤I O請求,當滿足block_bios隊列中的磁盤I O請求的響應條件時,依照請求時間順序對該block_bios隊列中的磁盤I O請求進行響應。
[0083]實際操作中,執行新一輪令牌發放的操作主要表現在:當滿足新一輪令牌發放條件時,將所有策略組的令牌個數增加預設個數。也就是說,將策略組持有的令牌個數增加后,相應的該策略組就具有處理磁盤I O請求的能力。其中,新一輪令牌的發放也是依據預先制定的策略,在新一輪的令牌分配中,假設策略組A和B的權重系數仍然分別為80%和20%,則策略組A將在原來持有的令牌個數的基礎上增加1638個,而策略組B將在原來持有的令牌數目上增加410個。
[0084]參考圖2,圖2為執行新一輪令牌發放的方法流程圖,具體可以包括:
[0085]步驟201:判斷所有策略組的令牌個數是否均為零,如果否,則進入步驟202,如果是,則進入步驟203。
[0086]步驟202:判斷令牌個數最多的策略組是否處于預設的繁忙狀態,如果是,則進入步驟204,如果否,則進入步驟203。
[0087]步驟203:執行新一輪令牌發放。
[0088]步驟204:將磁盤IO請求加入當前策略組的隊列,等待被處理。
[0089]實際操作中,新一輪令牌發放條件可以存在兩種設置方法,第一個條件為:當所有策略組的令牌個數均為零時,執行新一輪令牌發放;第二個條件為:當所有策略組的令牌個數不都為零時,判斷令牌個數最多的策略組是否處于預設的繁忙狀態,如果否,則執行新一輪令牌發放。如果持有令牌最多策略組,其I O請求也非常繁忙,則不會分配新一輪令牌,優先保證持有令牌最多的策略組進行磁盤IO讀寫操作。本實施例可以在滿足上述兩個條件中的任意一個時,執行新一輪令牌發放。具體的條件的設置不限于上述兩種。
[0090]其中,預設的繁忙狀態的標準可以是:5分鐘內,當前策略組所提交的IO請求個數與所有策略組提交IO請求總個數的比值是否大于當前策略組初始分配令牌個數與所有策略組初始分配令牌個數的比值,如果大于,說明該當前策略組處于繁忙狀態。
[0091]進一步的,在執行新一輪令牌發放之后,本實施例可以對為完成響應的磁盤IO請求分配資源,具體的:
[0092]為所述磁盤IO請求分配所述策略組的資源,并根據所述策略組的策略模式減少所述令牌個數。
[0093]另外,本實施例可以向用戶反饋磁盤IO資源分配日志,用戶可以預先設置需要獲取資源分配日志的頻率,并且對各個策略組的磁盤IO操作信息進行統計,例如包含預設頻率段內讀寫IO的個數和讀寫磁盤空間總大小,進行了多少輪令牌分配,其中可以包括多少次令牌有富裕,多少次令牌不夠用等。按照預先設定的頻率定期將資源分配日志通過netlink方式傳輸到應用層,以便用戶進行分析判斷,從而可以更加真實的了解到各個策略組磁盤IO資源使用情況。
[0094]具體的,本實施例可以每隔預設頻率的時長獲取一次資源分配日志;根據所述資源分配日志,為各個策略組分別分配令牌個數和策略模式。
[0095]本實施例預先設置至少一個策略組,所述策略組包括至少一個磁盤分區;首先,為各個策略組分別分配令牌個數和策略模式;其次,接收任一磁盤IO請求,所述磁盤IO請求包括磁盤分區標識;并獲取所述磁盤分區標識對應的策略組;最后,判斷所述策略組的令牌個數是否大于零,如果是,則為所述磁盤IO請求分配所述策略組的資源,并根據所述策略組的策略模式減少所述策略組的令牌個數;如果否,則當滿足新一輪令牌發放條件時,執行新一輪令牌發放。本實施例采用了新的令牌分配方式,避免了資源分配過程中磁盤IO資源的浪費,同時,由于采用了策略分組方式,在磁盤IO資源分配上更加靈活可以為一臺虛擬機分配磁盤IO資源,也可以讓幾個部署相關應用的虛擬機共享一定比例磁盤IO資源,減少了磁盤IO請求的擁堵,提高了磁盤IO資源的利用率。
[0096]實施例二
[0097]參考圖3,圖3為本實施例提供的磁盤IO資源分配裝置結構圖,所述裝置可以包括:
[0098]設置單元301,用于預先設置至少一個策略組,所述策略組包括至少一個磁盤分區;
[0099]第一分配單元302,用于為各個策略組分別分配令牌個數和策略模式;
[0100]接收單元303,用于接收任一磁盤IO請求,所述磁盤IO請求包括磁盤分區標識,所述磁盤分區標識用于唯一標識磁盤分區;
[0101]第一獲取單元304,用于獲取所述磁盤分區標識對應的策略組;
[0102]判斷單元305,用于判斷所述策略組的令牌個數是否大于零;
[0103]第二分配單元306,用于在所述判斷單元的結果為是時,為所述磁盤IO請求分配所述策略組的資源,并根據所述策略組的策略模式減少所述策略組的令牌個數;
[0104]令牌發放單元307,用于在所述判斷單元的結果為否,且滿足新一輪令牌發放條件時,執行新一輪令牌發放。
[0105]其中,所述令牌發放單元,可以包括:
[0106]第一發放子單元,用于當滿足新一輪令牌發放條件時,將所有策略組的令牌個數增加預設個數。
[0107]其中,所述系統還可以包括:
[0108]第三分配單元,用于為所述磁盤IO請求分配所述策略組的資源,并根據所述策略組的策略模式減少所述令牌個數。
[0109]具體的,所述第一獲取單元,可以包括:
[0110]第一獲取子單元,用于獲取所述磁盤IO請求中的磁盤分區標識;
[0111]查找子單元,用于根據所述磁盤分區標識查找對應的磁盤分區;
[0112]第二獲取子單元,用于獲取所述磁盤分區對應的策略組。[0113]具體的,所述令牌發放單元,可以包括:
[0114]第二發放子單元,用于當所有策略組的令牌個數均為零時,執行新一輪令牌發放;
[0115]或者,
[0116]判斷子單元,用于當所有策略組的令牌個數不都為零時,判斷令牌個數最多的策略組是否處于預設的繁忙狀態;
[0117]第三發放子單元,用于在所述判斷子單元的結果為否時,執行新一輪令牌發放。
[0118]進一步的,所述系統還可以包括:
[0119]第二獲取單元,用于每隔預設頻率的時長獲取一次資源分配日志;
[0120]第四分配單元,用于根據所述資源分配日志,為各個策略組分別分配令牌個數和策略模式。
[0121]本實施例提供的磁盤IO資源分配裝置的工作原理為:
[0122]設置單元預先設置至少一個策略組,所述策略組包括至少一個磁盤分區;第一分配單元為各個策略組分別分配令牌個數和策略模式;接收單元接收任一磁盤IO請求,所述磁盤IO請求包括磁盤分區標識,所述磁盤分區標識用于唯一標識磁盤分區;第一獲取單元獲取所述磁盤分區標識對應的策略組;判斷單元判斷所述策略組的令牌個數是否大于零;第二分配單元在所述判斷單元的結果為是時,為所述磁盤IO請求分配所述策略組的資源,并根據所述策略組的策略模式減少所述策略組的令牌個數;令牌發放單元在所述判斷單元的結果為否,且滿足新一輪令牌發放條件時,執行新一輪令牌發放。
[0123]其中,所述令牌發放單元包括第一發放子單元,當滿足新一輪令牌發放條件時,第一發放子單元將所有策略組令牌個數增加預設個數。所述系統還可以包括第三分配單元,第三分配單元為所述磁盤IO請求分配所述策略組的資源,并根據所述策略組的策略模式減少所述令牌個數。
[0124]具體的,所述第一獲取單元包括第一獲取子單元,第一獲取子單元獲取所述磁盤IO請求中的磁盤分區標識;查找子單元根據所述磁盤分區標識查找對應的磁盤分區;第二獲取子單元獲取所述磁盤分區對應的策略組。
[0125]具體的,所述令牌發放單元包括,當所有策略組的令牌個數均為零時,第二發放子單元執行新一輪令牌發放;或者,當所有策略組的令牌個數不都為零時,判斷子單元判斷令牌個數最多的策略組是否處于預設的繁忙狀態;在所述判斷子單元的結果為否時,第三發放子單元執行新一輪令牌發放。
[0126]進一步的,所述系統包括第二獲取單元和第四分配單元,第二獲取單元每隔預設頻率的時長獲取一次資源分配日志;第四分配單元根據所述資源分配日志,為各個策略組分別分配令牌個數和策略模式。
[0127]本實施例預先設置至少一個策略組,所述策略組包括至少一個磁盤分區;首先,為各個策略組分別分配令牌個數和策略模式;其次,接收任一磁盤IO請求,所述磁盤IO請求包括磁盤分區標識;并獲取所述磁盤分區標識對應的策略組;最后,判斷所述策略組的令牌個數是否大于零,如果是,則為所述磁盤IO請求分配所述策略組的資源,并根據所述策略組的策略模式減少所述策略組的令牌個數;如果否,則當滿足新一輪令牌發放條件時,執行新一輪令牌發放。本實施例采用了新的令牌分配方式,避免了資源分配過程中磁盤IO資源的浪費,同時,由于采用了策略分組方式,在磁盤IO資源分配上更加靈活可以為一臺虛擬機分配磁盤IO資源,也可以讓幾個部署相關應用的虛擬機共享一定比例磁盤IO資源,減少了磁盤IO請求的擁堵,提高了磁盤IO資源的利用率。
[0128]對于系統實施例而言,由于其基本對應于方法實施例,所以相關之處參見方法實施例的部分說明即可。以上所描述的系統實施例僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網絡單元上。可以根據實際的需要選擇其中的部分或者全部模塊來實現本實施例方案的目的。本領域普通技術人員在不付出創造性勞動的情況下,即可以理解并實施。
[0129]需要說明的是,在本文中,諸如第一和第二等之類的關系術語僅僅用來將一個實體或者操作與另一個實體或操作區分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關系或者順序。而且,術語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設備中還存在另外的相同要素。
[0130]以上對本發明實施例所提供的磁盤IO資源分配方法和裝置進行了詳細介紹,本文中應用了具體個例對本發明的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本發明的方法及其核心思想;同時,對于本領域的一般技術人員,依據本發明的思想,在【具體實施方式】及應用范圍上均會有改變之處,綜上所述,本說明書內容不應理解為對本發明的限制。·
【權利要求】
1.一種磁盤IO資源分配方法,其特征在于,所述方法包括: 預先設置至少一個策略組,所述策略組包括至少一個磁盤分區; 為各個策略組分別分配令牌個數和策略模式; 接收任一磁盤IO請求,所述磁盤IO請求包括磁盤分區標識,所述磁盤分區標識用于唯一標識磁盤分區; 獲取所述磁盤分區標識對應的策略組; 判斷所述策略組的令牌個數是否大于零,如果是,則為所述磁盤IO請求分配所述策略組的資源,并根據所述策略組的策略模式減少所述策略組的令牌個數;如果否,則當滿足新一輪令牌發放條件時,執行新一輪令牌發放。
2.根據權利要求1所述的方法,其特征在于,所述當滿足新一輪令牌發放條件時,執行新一輪令牌發放,包括: 當滿足新一輪令牌發放條件時,將所有策略組的令牌個數增加預設個數。
3.根據權利要求2所述的方法,其特征在于,所述方法還包括: 為所述磁盤IO請求分配所述策略組的資源,并根據所述策略組的策略模式減少所述令牌個數。
4.根據權利要求1所述的方法,其特征在于,所述獲取所述磁盤分區標識對應的策略組,包括: 獲取所述磁盤IO請求中的磁 盤分區標識; 根據所述磁盤分區標識查找對應的磁盤分區; 獲取所述磁盤分區對應的策略組。
5.根據權利要求1所述的方法,其特征在于,所述當滿足新一輪令牌發放條件時,執行新一輪令牌發放,包括: 當所有策略組的令牌個數均為零時,執行新一輪令牌發放; 或者, 當所有策略組的令牌個數不都為零時,判斷令牌個數最多的策略組是否處于預設的繁忙狀態,如果否,則執行新一輪令牌發放。
6.根據權利要求1-5中任一所述的方法,其特征在于,所述方法還包括: 每隔預設頻率的時長獲取一次資源分配日志; 根據所述資源分配日志,為各個策略組分別分配令牌個數和策略模式。
7.—種磁盤IO資源分配系統,其特征在于,所述系統包括: 設置單元,用于預先設置至少一個策略組,所述策略組包括至少一個磁盤分區; 第一分配單元,用于為各個策略組分別分配令牌個數和策略模式; 接收單元,用于接收任一磁盤IO請求,所述磁盤IO請求包括磁盤分區標識,所述磁盤分區標識用于唯一標識磁盤分區; 第一獲取單元,用于獲取所述磁盤分區標識對應的策略組; 判斷單元,用于判斷所述策略組的令牌個數是否大于零; 第二分配單元,用于在所述判斷單元的結果為是時,為所述磁盤IO請求分配所述策略組的資源,并根據所述策略組的策略模式減少所述策略組的令牌個數; 令牌發放單元,用于在所述判斷單元的結果為否,且滿足新一輪令牌發放條件時,執行新一輪令牌發放。
8.根據權利要求7所述的系統,其特征在于,所述令牌發放單元,包括: 第一發放子單元,用于當滿足新一輪令牌發放條件時,將所有策略組的令牌個數增加預設個數。
9.根據權利要求8所述的系統,其特征在于,所述系統還包括: 第三分配單元,用于為所述磁盤IO請求分配所述策略組的資源,并根據所述策略組的策略模式減少所述令牌個數。
10.根據權利要求7所述的系統,其特征在于,所述第一獲取單元,包括: 第一獲取子單元,用于獲取所述磁盤IO請求中的磁盤分區標識; 查找子單元,用于根據所述磁盤分區標識查找對應的磁盤分區; 第二獲取子單元,用于獲取所述磁盤分區對應的策略組。
11.根據權利要求7所述的系統,其特征在于,所述令牌發放單元,包括: 第二發放子單元,用于當所有策略組的令牌個數均為零時,執行新一輪令牌發放; 或者, 判斷子單元,用于當所有策略組 的令牌個數不都為零時,判斷令牌個數最多的策略組是否處于預設的繁忙狀態; 第三發放子單元,用于在所述判斷子單元的結果為否時,執行新一輪令牌發放。
12.根據權利要求7-11中任一所述系統,其特征在于,所述系統還包括: 第二獲取單元,用于每隔預設頻率的時長獲取一次資源分配日志; 第四分配單元,用于根據所述資源分配日志,為各個策略組分別分配令牌個數和策略模式。
【文檔編號】G06F3/06GK103440113SQ201310422054
【公開日】2013年12月11日 申請日期:2013年9月16日 優先權日:2013年9月16日
【發明者】欒利剛 申請人:北京搜狐新媒體信息技術有限公司