TW201441833A - 虛擬磁碟的io口調度方法及其調度裝置 - Google Patents

虛擬磁碟的io口調度方法及其調度裝置 Download PDF

Info

Publication number
TW201441833A
TW201441833A TW102126656A TW102126656A TW201441833A TW 201441833 A TW201441833 A TW 201441833A TW 102126656 A TW102126656 A TW 102126656A TW 102126656 A TW102126656 A TW 102126656A TW 201441833 A TW201441833 A TW 201441833A
Authority
TW
Taiwan
Prior art keywords
read
virtual disk
write
port
bandwidth
Prior art date
Application number
TW102126656A
Other languages
English (en)
Other versions
TWI629599B (zh
Inventor
xiao-po Li
wei-cai Chen
Po Chen
Original Assignee
Alibaba Group Services Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alibaba Group Services Ltd filed Critical Alibaba Group Services Ltd
Publication of TW201441833A publication Critical patent/TW201441833A/zh
Application granted granted Critical
Publication of TWI629599B publication Critical patent/TWI629599B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Debugging And Monitoring (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本發明公開了一種虛擬磁碟的IO口調度方法,其包括:根據實體機器中各個虛擬磁碟IO口的定額讀寫帶寬,為每個虛擬磁碟IO口賦予不同的服務品質級數;確定目前時間片段所有讀寫請求所要求的數據帶寬總預估值,以及所有讀寫請求所對應的虛擬磁碟IO口,並根據所述數據帶寬總預估值,以及所有讀寫請求所對應的虛擬磁碟IO口相應的服務品質級數,給所有讀寫請求所對應的虛擬磁碟IO口分配相應的讀寫帶寬限值;根據目前時間片段每個讀寫請求所要求的實際帶寬以及每個讀寫請求所對應的虛擬磁碟IO口的讀寫帶寬限值,進行實體機器上不同虛擬磁碟IO口的調度。從而效解決分佈式虛擬磁碟IO口的即時調度問題。

Description

虛擬磁碟的IO口調度方法及其調度裝置
本發明屬於人機交互領域,尤其涉及一種虛擬磁碟的IO(Input/Output輸入/輸出)口調度方法及其調度裝置。
隨著“雲端計算”熱潮的深入發展,互聯網紛紛推出了各自的雲端平台,以滿足用戶對“雲端業務”的需求。雲端平台依託虛擬化技術,共享或獨佔CPU、記憶體、磁碟等硬體資源。具體地,在雲端平台中,給實體機器配置具有不同服務級別的虛擬機,每台虛擬機配置有虛擬磁碟,每個虛擬磁碟均具有讀寫IO口,即虛擬磁碟IO口。通常,在實體機器上之所以啟動不同服務級別的虛擬機,一方面是為了滿足用戶需求多樣性的需要,另外一方面,是為了達到實體機器硬體資源利用的最大化。在雲端平台中,數據讀寫請求的實際處理具體採取基於公平競爭模型的有限IO讀寫帶寬共享方式,即先到先處理的方式。然而,對於不同級別的虛擬機用戶而言,有限IO帶寬的公平讀寫模型在這時會顯得有些不公。另外,由於不同業務類型的應用對IO帶寬資源的要求也有所不同,就要求雲端平台 須根據對IO帶寬資源的即時要求對IO口進行調度,例如web型應用通常會需求IO帶寬能提供高吞吐、低延遲的服務,而某些日誌記錄類型的服務往往可以容忍低吞吐、高延遲的服務。
在目前現有的雲端平台中,多是側重於對多台虛擬機共享單台虛擬磁碟IO讀寫,而虛擬磁碟又通常位於實體機器的實體機器磁碟上。但是,在雲端平台中,虛擬機所使用的虛擬磁碟並不一定在虛擬機所在的實體機器磁碟上,而是分佈在整個集群上,對虛擬磁碟IO讀寫的控制也就不能加在本地實體機器磁碟驅動之前或者是操作系統的核心之中,因此,亟待提供一種虛擬磁碟IO口調度方法,以有效解決分佈式虛擬磁碟IO口的即時調度問題。
鑒於上述問題,提出了本發明以便提供一種克服上述問題或者至少部分地解決或者減緩上述問題的一種虛擬磁碟的IO口調度方法及其調度裝置。
根據本發明的一個方式,提供了一種虛擬磁碟的IO口調度方法,其包括:根據實體機器中各個虛擬磁碟IO口的定額讀寫帶寬,為每個虛擬磁碟IO口賦予不同的服務品質級數;確定目前時間片段所有讀寫請求所要求的數據帶寬總預估值,以及所有讀寫請求所對應的虛擬磁碟IO口,並根據所述數據帶寬總預估值,以及所有讀寫請求所對應的 虛擬磁碟IO口相應的服務品質級數,給所有讀寫請求所對應的虛擬磁碟IO口分配相應的讀寫帶寬限值;根據目前時間片段每個讀寫請求所要求的實際帶寬以及每個讀寫請求所對應的虛擬磁碟IO口的讀寫帶寬限值,進行實體機器上不同虛擬磁碟IO口的調度。
較佳地,在本發明的一實施例中,在為每個虛擬磁碟IO口賦予不同的服務品質級數時,所賦予的服務品質級數與各個虛擬磁碟IO的定額讀寫帶寬成正比關係。
較佳地,在本發明的一實施例中,在確定目前時間片段所有讀寫請求所要求的數據帶寬總預估計值時,將上一時間片段所有讀寫請求所實際產生的讀寫數據帶寬的總和,作為目前時間片段所有讀寫請求所要求的數據帶寬總預估值。
較佳地,在本發明的一實施例中,在分配相應的讀寫帶寬限值時,按不同虛擬磁碟IO口的服務品質級數之比,將所述數據帶寬總預估值分配給不同的虛擬磁碟IO口。
較佳地,在本發明的一實施例中,在分配讀寫寬帶限值時,分別按照讀請求、寫請求,獨立地進行讀帶寬限值、寫帶寬限值的分配。
較佳地,在本發明的一實施例中,獨立地進行讀帶寬限值、寫帶寬限值的分配時,當寫入一虛擬磁碟的數據量和從單個虛擬磁碟讀出的數據量成比例關係時,分配給對應虛擬磁碟IO口的讀帶寬限值與寫帶寬成對應的比例關 係。
較佳地,在本發明的一實施例中,給不同的虛擬磁碟IO口分配相應的讀寫帶寬限值時,給每個虛擬磁碟IO口分配一令牌容器桶,每個令牌容器桶包括複數個令牌容器,每個令牌容器的容量為分配給虛擬磁碟IO口的讀寫帶寬限值大小,以控制不同虛擬磁碟IO口的調度。
較佳地,在本發明的一實施例中,在給每個虛擬磁碟IO口分配令牌容器桶時,不同虛擬磁碟IO口的不同令牌容器桶中,所包含的令牌容器的容量正比於其對應虛擬磁碟IO口的服務品質級數。
較佳地,在本發明的一實施例中,不同虛擬磁碟IO口所分配的令牌容器桶包括相同數目個令牌容器。
較佳地,在本發明的一實施例中,給不同的虛擬磁碟IO口分配相應不同的讀寫帶寬限值時,根據不同時間片段的讀寫請求,即時調整每個虛擬磁碟IO口對應令牌容器桶中令牌容器的分發。
較佳地,在本發明的一實施例中,在即時調整每個虛擬磁碟IO口所分配的令牌容器桶中令牌容器的分發時,確保每個虛擬磁碟IO對應令牌容器桶的即時容量不大於對應令牌容器桶的定額容量。
較佳地,在本發明的一實施例中,在進行實體機器上不同虛擬磁碟IO口的調度時,在不同虛擬磁碟IO口的不同令牌容器桶之間進行令牌容器的補償。
較佳地,在本發明的一實施例中,當實體機器中的虛 擬磁碟IO口發生數量變化時,在給不同的虛擬磁碟IO口分配對應的讀寫帶寬限值時,以數量變換後的虛擬磁碟IO口為准,基於所述數據帶寬總預估值重新進行讀寫帶寬限值的分配。
較佳地,在本發明的一實施例中,在進行虛擬磁碟IO調度之前,根據讀寫請求與虛擬磁碟IO口的請求對應關係,生成加權請求佇列,以從所述加權請求佇列中按照時間先後順序讀取不同的讀寫請求。
根據本發明的一個方式,提供了一種虛擬磁碟的IO口調度裝置,其包括:級數賦予單元,用於根據實體機器中各個虛擬磁碟IO口的定額讀寫帶寬,為每個虛擬磁碟IO口賦予不同的服務品質級數;限值分配單元,用於確定目前時間片段所有讀寫請求所要求的數據帶寬總預估值,以及所有讀寫請求所對應的虛擬磁碟IO口,並根據所述數據帶寬總預估值,以及所有讀寫請求所對應的虛擬磁碟IO口相應的服務品質級數,給所有讀寫請求所對應的虛擬磁碟IO口分配相應的讀寫帶寬限值;調度單元,用於根據目前時間片段每個讀寫請求所要求的實際帶寬以及每個讀寫請求所對應的虛擬磁碟IO口的讀寫帶寬限值,進行實體機器上不同虛擬磁碟IO口的調度。
較佳地,在本發明的一實施例中,限值分配單元進一 步用於分別按照讀請求、寫請求,獨立地進行讀帶寬限值、寫帶寬限值的分配。
較佳地,在本發明的一實施例中,所述限值分配單元進一步用於當寫入一虛擬磁碟的數據量和從單個虛擬磁碟讀出的數據量成比例關係時,分配給對應虛擬磁碟IO口的讀帶寬限值與寫帶寬成對應的比例關係。
較佳地,在本發明的一實施例中,所述限值分配單元進一步用於給每個虛擬磁碟IO口分配一令牌容器桶,每個令牌容器桶包括複數個令牌容器,每個令牌容器的容量為分配給虛擬磁碟IO口的讀寫帶寬限值大小,以控制不同虛擬磁碟IO口的調度。
較佳地,在本發明的一實施例中,所述限值分配單元進一步用於根據不同時間片段的讀寫請求,即時調整每個虛擬磁碟IO口對應令牌容器桶中令牌容器的分發。
較佳地,在本發明的一實施例中,所述限值分配單元進一步用於在進行實體機器上不同虛擬磁碟IO口的調度時,在不同虛擬磁碟IO口的不同令牌容器桶之間進行令牌容器的補償。
較佳地,在本發明的一實施例中,所述限值分配單元進一步用於當實體機器中的虛擬磁碟IO口發生數量變化時,在給不同的虛擬磁碟IO口分配對應的讀寫帶寬限值時,以數量變換後的虛擬磁碟IO口為准,基於所述數據帶寬總預估值重新進行讀寫帶寬限值的分配。
與現有的方案相比,本發明所獲得的技術效果:根據 實體機器中各個虛擬磁碟IO口的定額讀寫帶寬,為每個虛擬磁碟IO口賦予不同的服務品質級數;根據所述數據帶寬總預估值,以及目前時間片段所有讀寫請求所對應的虛擬磁碟IO口相應的服務品質級數,給所有讀寫請求所對應的虛擬磁碟IO口分配相應的讀寫帶寬限值;根據該讀寫帶寬限值以及每個讀寫請求所對應的虛擬磁碟IO口的讀寫帶寬限值,進行實體機器上不同虛擬磁碟IO口的調度,從而效解決分佈式虛擬磁碟IO口的即時調度問題。
當然,實施本發明的任一產品必不一定需要同時達到以上所述的所有技術效果。
401‧‧‧級數賦予單元
402‧‧‧限值分配單元
403‧‧‧調度單元
801‧‧‧實體機器
8010‧‧‧虛擬機
802‧‧‧雲端儲存
此處所說明的附圖用來提供對本發明的進一步理解,構成本發明的一部分,本發明的示意性實施例及其說明用於解釋本發明,並不構成對本發明的不當限定。在附圖中:圖1為本發明實施例一中虛擬磁碟的IO口調度方法流程圖;圖2為權重加權佇列示意圖;圖3為步驟S102的具體流程圖;圖4為本發明實施例二中虛擬磁碟的IO口調度方法流程圖;圖5為給每個虛擬磁碟IO口分配一令牌容器桶示意 圖;圖6為本發明實施例三中虛擬磁碟的IO口調度方法流程圖;圖7為本發明實施例四虛擬磁碟的IO口調度裝置結構方塊圖;圖8為本發明上述圖1至圖7實施例所依託的雲端平台部署結構示意圖;圖9為本發明實施例處理讀寫請求時的帶寬抽樣統計的示意圖;圖10為現有技術處理寫請求時的帶寬抽樣統計的對比示意圖;圖11為本發明實施例處理讀請求時的帶寬抽樣統計的示意圖;圖12為現有技術處理讀請求時的帶寬抽樣統計的對比示意圖。
以下將配合圖式及實施例來詳細說明本發明的實施方式,藉此對本發明如何應用技術手段來解決技術問題並達成技術功效的實現過程能充分理解並據以實施。
在一個典型的配置中,電腦設備包括一個或多個處理器(CPU)、輸入/輸出接口、網路接口和記憶體。
記憶體可能包括電腦可讀介質中的非永久性記憶體,隨機存取記憶體(RAM)和/或非易失性記憶體等形式,如 唯讀記憶體(ROM)或快閃隨機存取記憶體(flash RAM)。記憶體是電腦可讀介質的示例。
電腦可讀介質包括永久性和非永久性、可移動和非可移動媒體可以由任何方法或技術來實現資訊儲存。資訊可以是電腦可讀指令、數據結構、程式的模組或其他數據。電腦的儲存介質的例子包括,但不限於相變記憶體(PRAM)、靜態隨機存取記憶體(SRAM)、動態隨機存取記憶體(DRAM)、其他類型的隨機存取記憶體(RAM)、唯讀記憶體(ROM)、可電氣抹除可程式編碼唯讀記憶體(EEPROM)、快閃記憶體或其他記憶體技術、只讀光碟唯讀記憶體(CD-ROM)、數位多功能光碟(DVD)或其他光學儲存、磁盒式磁帶,磁帶磁磁碟儲存或其他磁性儲存設備或任何其他非傳輸介質,可用於儲存可以被電腦設備存取的資訊。按照本文中的界定,電腦可讀介質不包括非暫存電腦可讀媒體(transitory media),如調製的數據信號和載波。
本發明下述實施例中,根據實體機器中各個虛擬磁碟IO口的定額讀寫帶寬,為每個虛擬磁碟IO口賦予不同的服務品質級數;根據所述數據帶寬總預估值,以及目前時間片段所有讀寫請求所對應的虛擬磁碟IO口相應的服務品質級數,給所有讀寫請求所對應的虛擬磁碟IO口分配相應的讀寫帶寬限值;根據該讀寫帶寬限值以及每個讀寫請求所對應的虛擬磁碟IO口的讀寫帶寬限值,進行實體機器上不同虛擬磁碟IO口的調度,從而效解決分佈式虛 擬磁碟IO口的即時調度問題。
如圖1所示,為本發明實施例一中虛擬磁碟的IO口調度方法流程圖,其可以包括:
步驟S101、根據實體機器中各個虛擬磁碟IO口額定讀寫帶寬,給各個虛擬磁碟IO口賦予不同的服務品質級數;本實施例中,用服務品質級別來區別不同虛擬磁碟IO口額定讀寫帶寬,比如如果支持的讀寫帶寬較大,則就給相應的虛擬磁碟IO口賦以數值較大的服務品質級數,反之,則賦以數值較小的服務品質級數。在實際應用過程中,可以用權重weight來表示服務品質級數。
步驟S102、確定目前時間片段所有讀寫請求所要求的數據帶寬總預估值,以及所有讀寫請求所對應的虛擬磁碟IO口,並根據所述數據帶寬總預估值以及給所有讀寫請求所對應的虛擬磁碟IO口相應的服務品質級數,給所有讀寫請求所對應的虛擬磁碟IO口分配相應的讀寫帶寬限值;在實際執行過程中,由於存取虛擬磁碟IO口的讀寫請求具有較大的隨機性,換言之,比如在雲端平台中,分佈有多個虛擬磁碟,但是,在某一時間片段,並不是所有的虛擬磁碟IO口都有讀寫請求,因此,難以精確計算出目前時間片段實際會有多少讀寫請求以及這些讀寫請求讀寫數據需要的總帶寬。但是,為了可以實現虛擬磁碟IO口的有效調度,本實施例中,需要對目前時間片段所有讀 寫請求所要求的數據帶寬進行初步預估得到一個數據帶寬總預估值,而由於上一時間片段所有讀寫請求所實際使用的數據帶寬總和對目前時間片段數據帶寬總預估值指導價值較大。因此,本實施例中,可以直接將上一時間片段所有讀寫請求所實際使用的數據帶寬的總和,作為目前時間片段所有讀寫請求所要求的數據帶寬總預估值。需要說明的是,該數據帶寬總預估值並非一個固定的數值,而是在不同的時間片段需要不斷被調整的。同時,由於不同時間片段,讀寫請求對應的虛擬磁碟IO口也不盡相同,有時會多,有時會少。因此,在實際虛擬磁碟IO口調度的過程中,只要確定出目前時間片段,有讀寫請求的虛擬磁碟IO口及其對應的服務品質級數即可,即實際參與讀寫請求處理的虛擬磁碟IO口。
需要說明的是,在步驟S102中,由於只有那些有讀寫請求的虛擬磁碟IO口才參與讀寫帶寬限值的分配,沒有讀寫請求的虛擬磁碟IO口並不參與讀寫帶寬限值的分配。比如,如果以權重來表示服務品質級數,當某實體機器上N個虛擬磁碟IO口的權重加權佇列為WFQ={W1,W2,…,Wn},其形式可以如圖2所示,為權重加權佇列示意圖,每一行表示按照時間先後對某一虛擬磁碟IO口的讀寫請求,第一行針對表示對第一個虛擬磁碟IO口,第五行針對第五個虛擬磁碟IO口。而某一時間片段具有讀寫請求的虛擬磁碟IO的即時權重佇列OW={ow1,ow2,…,own},表示在某個時間片段有讀寫請求的虛 擬磁碟IO口的權重佇列,由此可見,即時權重佇列只是權重加權佇列為WFQ的一個子集,不同的時間片段,該子集可能不同。換言之,在步驟S102中,可以根據即時權重佇列確定出目前時間片段有讀寫請求的虛擬磁碟IO及其對應服務品質級數。
如果用權重來表示虛擬磁碟IO口的服務品質技術的話,按照權重加權佇列為WFQ,得知,所有虛擬磁碟IO口的額定權重之和Ws-total與每個虛擬磁碟IO口權重Wi的關係為:Ws-t=ΣWi,按照即時權重佇列OW,目前時間片段,即時權重之和Wo-t與有讀寫請求的虛擬磁碟IO的權重OWi關係為:Wo-t=ΣOWi。
本實施例中,步驟S102中在根據所述數據帶寬總預估值以及給虛擬磁碟IO口賦予的不同服務品質級數,給不同虛擬磁碟IO口分配相應的讀寫帶寬限值時,可以按各個虛擬磁碟IO口的服務品質級數之比,將所述數據帶寬總預估值分配給各個虛擬磁碟IO口,以獲得給不同虛擬磁碟IO口分配的讀寫帶寬限值。比如,某實體機器上A、B、C、D四塊虛擬磁碟,這四塊虛擬磁碟IO口的服務品質級數分別為1、1、4、4,目前時間片段,只有A、C兩塊虛擬磁碟IO口有讀寫請求,與此同時,根據上一時間片段得到的目前時間片段所有讀寫請求的讀寫帶寬總預估值為100M,那麼,儘管有四塊虛擬磁碟IO口,但是只有兩塊虛擬磁碟IO口有對應的讀寫請求,因此,只有有讀寫請求的兩塊虛擬磁碟IO參與讀寫帶寬總預估值的 分配,以分別得到這兩塊虛擬磁碟IO口的讀寫帶寬限值,分別為100*1/5=20M,100*4/5=80M。
換言之,如圖3所示,為步驟S102的具體流程圖,其可以包括:步驟S1021、將上一時間片段所有讀寫請求所實際使用的所有數據帶寬的總和,作為目前時間片段所有讀寫請求所要求的數據帶寬總預估值;步驟S1022、按各個虛擬磁碟IO口的服務品質級數之比,將所述數據帶寬總預估值分配給各個虛擬磁碟IO口,以分配相應的讀寫帶寬限值。
本實施例中,當在實際應用中,如果對某虛擬磁碟IO來說,寫入的數據和讀出數據在數據量大小相等,那此時,讀請求和寫請求無須單獨進行帶寬限值設置,比如服務品質級數為1的虛擬磁碟IO分配的讀帶寬限值和寫帶寬限值都為20M,給服務品質級數為4的虛擬磁碟IO分配的讀帶寬限值、寫帶寬限值為80M。當寫入的數據為幾倍的讀出數據時,比如處於安全考慮,步驟S1022或者步驟S102中,在給不同的虛擬磁碟IO口分配不同的讀寫寬帶限值時,分別按照讀請求、寫請求,獨立地進行讀帶寬、寫帶寬的分配。具體地,當分別按照讀請求、寫請求,獨立地進行讀寫帶寬的分配時,當寫入單個虛擬磁碟的數據量和從單個虛擬磁碟讀出的數據量之比呈倍數關係時,分配給虛擬磁碟IO口的讀操作的帶寬與寫操作的帶寬之比成對應的倍數關係。例如,如果寫入的數據為讀出的 數據三倍時,如服務品質級數為1的虛擬磁碟IO分配的讀帶寬限值為20M,而由於寫入的數據是讀出的數據的3倍,因此,需要獨立的設置讀帶寬限值、寫帶寬限值,且讀帶寬限值為三分之一的寫帶寬限值,即讀帶寬限值為20M,而寫帶寬限值約為6.6M。
本實例中,在初始執行本實施例的流程時,可以任意賦以一隨機值,作為目前時間片段所有讀寫請求所要求的數據帶寬總預估值,在不同時間片段的執行過程中,不斷調整該數據帶寬總預設值,使該數據帶寬總預設值與一個設定值的誤差在有效範圍內。以調整該隨機值的讀請求所要求的數據帶寬總預估值為例,某一時間片結束後,對該時間片段所有讀請求實際產生的讀帶寬進行統計得到一實際讀帶寬統計結果,將其與該隨機值進行比對,如果比例較小,表明兩者較為接近,而數據在路上傳輸還需要花時間,所以實際統計出來的讀帶寬統計值通常會小於或等於該隨機值,該隨機值可能偏小,因此,可以在隨機值的基礎上每次時間片段增加一定比例比如10%的讀帶寬統計結果。如果比例較大且在一定的範圍內,表明所該隨機值可能偏大,因此,可以在隨機值的基礎上按每次時間片段減少一定比例比如10%的讀帶寬統計結果。通過上述這種過程,逐漸將初始賦以的隨機值與某時間片段的帶寬統計值保持在合理的範圍內,從而不斷修正流程初始執行時賦以作為數據帶寬總預估值的隨機值。詳細的計算公式如下:
(1)對於設定的隨機值過小的情況,隨機值調整的 步長會越來越大
Ri+1=Ri+Si/M,Ri表示第i個時間片段對應的讀寫帶寬總預估值,為一隨機值;Si表示第i個時間片段實際讀寫請求的讀寫帶寬統計值,M為一整數,Ri+1表示第i+1個時間片段對應的讀寫帶寬總預估值;
(2)對於設定的隨機值過大的情況,調整的步長會越來越小
Ri+1=Ri-Si/M,Ri表示第i個時間片段對應的讀寫帶寬總預估值,為一隨機值;Si表示第i個時間片段實際讀寫請求的讀寫帶寬統計值,M為一整數,Ri+1表示第i+1個時間片段對應的讀寫帶寬總預估值。
步驟S103、根據目前時間片段每個讀寫請求所要求的實際帶寬以及每個讀寫請求所對應的虛擬磁碟IO口的讀寫帶寬限值,進行實體機器上不同虛擬磁碟IO口的調度。
本實施例中,在實際應用過程中執行步驟S103時,為了在控制讀寫帶寬,採用了基於令牌容器的令牌算法,通過控制在目前時間片段某虛擬磁碟IO口對應的令牌容器的數量,以將目前時間片段每個讀寫請求所要求的實際帶寬與其虛擬磁碟IO對應的所有令牌容器的即時容量總和進行比對,根據比對結果來進行虛擬磁碟IO口的讀寫,從而達到了虛擬磁碟IO口的調度,詳細可參加下述實施例。
如圖4所示,為本發明實施例二中虛擬磁碟的IO口 調度方法流程圖,其可以包括:步驟S201、根據實體機器中各個虛擬磁碟IO口額定讀寫帶寬,給各個虛擬磁碟IO口賦予不同的服務品質級數;需要說明的是,本步驟S201可以與上述步驟S101相同,比如都採用權重來表示不同虛擬磁碟IO口的服務品質級數。
步驟S202、確定目前時間片段所有讀寫請求所要求的數據帶寬總預估值,以及所有讀寫請求所對應的虛擬磁碟IO口,並根據所述數據帶寬總預估值,以及所有讀寫請求所對應的虛擬磁碟IO口相應的服務品質級數,給所有讀寫請求所對應的虛擬磁碟IO口分配相應的讀寫帶寬限值。
需要說明的是,本步驟S202可以類似於上述步驟S102,基於上一時間片段所有讀寫請求所實際使用的所有數據帶寬的總和作為目前時間片段所述讀寫請求所要求的數據帶寬總預估值,進行讀寫帶寬限值的分配。
步驟S203、給每個虛擬磁碟IO口分配一令牌容器桶,每個令牌容器桶包括複數個令牌容器,每個令牌容器的容量為分配給虛擬磁碟IO口的讀寫帶寬限值大小,以控制不同虛擬磁碟IO口的調度。
如圖5所示,為給每個虛擬磁碟IO口分配一令牌容器桶示意圖,第一行表示給第一個虛擬磁碟IO分配的令牌容器桶basebucket,第五行表示給第五個虛擬磁碟IO 分配的令牌容器桶basebucket,每個牌容器桶basebucket比如有十個令牌容器token-bucket,每一個令牌token對應一個令牌容器。
如前所述,基於令牌算法可以有效實現對虛擬磁碟IO口的調度,通過給每個虛擬磁碟IO口分配一個令牌容器桶basebucket,該令牌容器桶basebucket中容納有複數個令牌容器,不同的虛擬磁碟IO口對應的令牌容器桶包括相同個數個令牌容器,比如,給服務品質級數為1的虛擬磁碟IO對應的令牌容器桶定義為最多可以容納10個令牌容器,同樣,給服務品質級數為4的虛擬磁碟IO對應的令牌容器桶定義為最多可以容納10個令牌容器,即本實施例中,各個虛擬磁碟IO口所分配的令牌容器桶包括的令牌容器個數相等,需要說明的是,當複數次讀寫請求的處理後,各個令牌容器桶中實際剩餘令牌容器個數可能並不相同,這是因為在虛擬磁碟IO口調度的過程中,需要根據實際讀寫請求的帶寬控制令牌容器的分發,因為不同的讀寫請求需要不同的帶寬,因此,對於不同的虛擬磁碟IO口,令牌容器的具體分發數量也不盡相同。但是,不同令牌容器桶中令牌容器的容量是不同的,其實際等於分配給對應虛擬磁碟IO口的讀寫帶寬限值,比如,如果讀數據和寫數據的比例為1:1,給服務品質級數為1的虛擬磁碟IO分配的讀寫帶寬限值為20M,那麼對應令牌容器桶中令牌容器的容量即為20M,而對於讀寫帶寬限值為80M的令牌容器桶中,令牌容器的容量為80M。而比如如 果讀數據和寫數據的比例為1:3時,需要進行讀帶寬和寫帶寬的獨立控制,如給服務品質級數為1的虛擬磁碟IO分配的讀帶寬限值為20M,那麼在獨立控制時,對應讀請求的令牌容器桶中令牌容器的容量即為20M,而寫帶寬限值約為6.6M,對應令牌容器桶中令牌容器的容量即為6.6M;而對於讀寫帶寬限值為80M的令牌容器桶中,對應讀帶寬的令牌容器的容量為80M,對應寫帶寬的令牌容器的容量約為26.6M。換言之,當步驟S203中,在給每個虛擬磁碟IO口分配令牌容器桶時,在每個虛擬磁碟IO口的令牌容器桶中所包含的令牌容器的大小,正比於其對應的虛擬磁碟IO口的服務品質級數大小。
本實施例中,步驟S203中,不同虛擬磁碟IO口的調度時,根據不同時間片段的讀寫請求,即時調整每個虛擬磁碟IO口所分配的令牌容器桶中令牌容器的分發。具體地,在即時調整每個虛擬磁碟IO口所分配的令牌容器桶中令牌容器的分發時,虛擬磁碟IO對應的令牌容器桶的即時容量不大於對應令牌容器桶的定額容量。需要說明的是所謂令牌桶容器的定額容量可以指令牌容器桶中最多可以容納的容器桶,該數目可以經過多次試驗的統計結果獲知。
比如,某一時間片段,對於服務品質級數為1的虛擬磁碟IO口來說,其對應令牌容器桶中只容納有3個令牌容器,每個令牌容器的容量為20M,因此,在目前的時間片段,該虛擬磁碟IO口可允許讀寫數據的最大帶寬為 60M,因此,如果目前時間片段實際讀寫請求所要求的帶寬大於60M比如為75M的話,只能等待下一個時間片段,給該令牌容器桶中至少再分發一個20M的令牌容器即可實現該實際讀寫請求的讀寫。
本實施例中,在控制令牌容器的分發時,可以按照目前時間片段對應令牌容器桶中實際容納的令牌容器個數Rn與實際讀寫請求的帶寬所需要的令牌容器個數Nn進行控制,如果目前時間片段對應令牌容器桶中實際容納的Rn個令牌容器的總容量為正數,表明目前時間片段令牌容器桶中令牌容器數量足以實現對應的讀寫請求。從另外一個角度,也就是說,還有可能向該令牌容器桶中分發令牌容器,最多可以分發至令牌容器桶中的令牌容器數量達到定額,比如令牌容器桶中令牌容器的定額為10個,那就最多分發至使令牌容器的數量達到10個,即只要沒有超過令牌容器桶中的令牌容器數量達到定額,可以根據讀寫請求的帶寬要求,進行令牌容器的分發。
步驟S204、根據目前時間片段每個讀寫請求所要求的實際帶寬以及每個讀寫請求所對應的虛擬磁碟IO口的讀寫帶寬限值,進行實體機器上不同虛擬磁碟IO口的調度。
比如目前時間片段,某虛擬磁碟IO口對應的令牌容器桶中只有4個令牌容器,而每個令牌容器的容量為20M,因此,其該令牌容器桶目前的實際容量為4*20=80M,為正數,對於小於80M的讀寫請求來說,可以在目前時 間片段執行,否則,只能等待複數個時間片段,分發足夠的令牌容器,使令牌容器桶中的即時容量達到實際讀寫請求所要求的帶寬數值。
如圖6所示,為本發明實施例三中虛擬磁碟的IO口調度方法流程圖,與上述實施例不同的是,本實施例中,在上述實施例的基礎上,經過多個時間片後,統計得知,某些虛擬磁碟IO口的帶寬並未得到充分利用,還有剩餘,而與此同時,某些虛擬磁碟IO口的帶寬又無法滿足其對應的讀寫請求,因此,本實施例中,將未充分利用的虛擬磁碟IO分配給需要帶寬的虛擬磁碟IO口,實際的控制可以是通過令牌容器的補償實現的,其具體可以包括:步驟S301、根據實體機器的各個虛擬磁碟IO口額定讀寫帶寬,為各個虛擬磁碟IO口賦予不同的服務品質級數;步驟S302、確定目前時間片段所有讀寫請求所要求的數據帶寬總預估值,以及所有讀寫請求所對應的虛擬磁碟IO口,並根據所述數據帶寬總預估值,以及所有讀寫請求所對應的虛擬磁碟IO口相應的服務品質級數,給所有讀寫請求所對應的虛擬磁碟IO口分配相應的讀寫帶寬限值。
步驟S303、給每個虛擬磁碟IO口分配一令牌容器桶,每個令牌容器桶包括複數個令牌容器,每個令牌容器的容量為分配給虛擬磁碟IO口的讀寫帶寬限值大小,以控制不同虛擬磁碟IO口的調度; 步驟S304、確定目前時間片段存在帶寬未充分利用的虛擬磁碟IO口和需要帶寬補償的虛擬磁碟IO口,以及並將該為充分利用的虛擬磁碟IO口對應令牌容器桶中多餘的令牌容器分發給需要帶寬補償的虛擬磁碟IO口,以在不同虛擬磁碟IO口的不同令牌容器桶之間進行令牌容器的補償。
步驟S305、根據目前時間片段每個讀寫請求所要求的實際帶寬以及每個讀寫請求所對應的虛擬磁碟IO口的讀寫帶寬限值,進行實體機器上不同虛擬磁碟IO口的調度。
多次執行步驟S301-S304後,在每次執行之後,統計其在對應時間片段實際的讀寫帶寬獲知某些虛擬磁碟IO的令牌容器桶中存在多餘的令牌容器,而某些虛擬磁碟IO口的令牌容器中的令牌容器又無法滿足其讀寫帶寬,此時,可將多餘的令牌容器補償給那些需要令牌容器的令牌容器桶,在補償時,根據虛擬磁碟IO口的服務品質級數進行補償。例如,如果某虛擬磁碟IO口的令牌容器桶有一多餘令牌容器20M,而另外服務品質級數分別為2和4的兩個虛擬磁碟IO口令牌容器桶又需要令牌容器,因此,在20M令牌容器的補償時,將三分之一的20M補償給服務品質級數為2的虛擬磁碟IO口,而將三分之二的20M補償給服務品質級數為4的虛擬磁碟IO口。
推而廣之,在令牌容器的補償時,可以首先統計出能用來進行補償的令牌容器的容量總和,即多餘令牌容器容 量的總和;之後,在統計出目前實體機器中,需要被補償的虛擬磁碟IO口以及對應的服務品質級數。將補償的令牌容器的容量總和按照服務品質級數之比例分配給需要被補償的虛擬磁碟IO口。需要說明的是,由於進行了補償,因此,被補償後令牌容器桶可能超過了其定額,因此,在後續時間片段,該令牌容器桶不能在接收令牌容器的分發或者補償,直至令牌容器桶中的實際令牌容器數目小於定額。
需要說明的是,在上述實施例的基礎上,當實體機器中的虛擬磁碟IO口發生數量變化時,在給不同的虛擬磁碟IO口分配不同的讀寫帶寬時,以數量變換後的虛擬磁碟IO口,可以重新進行讀寫帶寬的分配。
下面如果讀寫數據的比例為1:1,以一台實體機器上的兩個虛擬磁碟IO口,以及處理讀寫請求且不需要令牌容器的補償為例進行舉例性說明。這兩個虛擬磁碟IO的服務品質級數分別為1、4,而目前時間片段所有讀請求和寫請求的數據帶寬總預估值均為100M,因此,按照服務品質比,給服務品質級數為1的虛擬磁碟IO口分配五分之一的100M即20M,給服務品質級數為4的虛擬磁碟IO口分配五分之四的100M即80M,分別作為各自虛擬磁碟IO口的讀帶寬限值,因為讀寫數據的比例為1:1,因此,這兩個虛擬磁碟IO口的寫帶寬限值同樣為20M和80M。基於此,假如兩個虛擬磁碟IO口對應的讀令牌容器桶中均設定有10個讀令牌容器,而各自讀令牌容器的容量 分別為20M、80M。目前時間片段,從讀寫請求佇列中獲取了一讀請求,對服務品質級數為1的虛擬磁碟IO口進行數據的讀操作,該讀請求所要求的數據帶寬為30M。而目前時間片段,對於服務品質級數為1的虛擬磁碟IO口來說,其令牌容器桶中共計有10個讀令牌容器,每個的容量為20M,可支持的帶寬為10*20=200M,為正數,可以滿足30M的讀請求。如果從讀寫請求佇列中獲取了另一讀請求或寫請求,對服務品質級數為1的虛擬磁碟IO口進行數據的讀或寫操作,該讀或寫請求所要求的數據帶寬為190M。由於執行了所要求的數據帶寬為30M的上一讀寫請求,對應的虛擬磁碟只剩餘了200-30=170M的數據帶寬,虛擬磁碟IO口對應的令牌容器桶中所有令牌容器的總容量為正數。因此,由於該另一讀或寫請求所要求的數據帶寬為190M,可以執行。但是,在執行完該數據帶寬為190M的請求後,對應虛擬磁碟IO口中剩餘令牌人容器的容量為170-190=-20M,變成了負數,因此,對於目前片段其他的讀寫請求暫不執行,只能等待下一時間片段給對應的令牌容器桶中再分發令牌容器,使對應令牌容器桶中令牌容器的總容量變為正數,才可以完成該另一讀或寫請求的執行。需要說明的是,如果令牌容器桶中的令牌容器已近到達最多後,比如令牌容器桶中只能最大容納10個讀令牌容器後,給該令牌容器桶分發的令牌容器會被自動拋棄,但是,拋棄的令牌容器可以補償給其他需要令牌容器的令牌容器桶,詳細參見其他上述部分記載。
下面如果讀寫數據的比例為1:3,以一台實體機器上的兩個虛擬磁碟IO口,以及處理讀寫請求且不需要令牌容器的補償為例進行舉例性說明。這兩個虛擬磁碟IO的服務品質級數分別為1、4,而目前時間片段所有讀請求和寫請求的數據帶寬總預估值均為100M,因此,按照服務品質比,給服務品質級數為1的虛擬磁碟IO口分配五分之一的100M即20M,給服務品質級數為4的虛擬磁碟IO口分配五分之四的100M即80M,分別作為各自虛擬磁碟IO口的讀帶寬限值,基於此,假如兩個虛擬磁碟IO口對應的讀令牌容器桶中均設定有10個讀令牌容器,而各自讀令牌容器的容量分別為20M、80M。因為讀寫數據的比例為1:3,因此,這兩個虛擬磁碟IO口的寫帶寬限值同樣為6.6M和26.4M,基於此,假如兩個虛擬磁碟IO口對應的讀令牌容器桶中均設定有10個寫令牌容器,而各自寫令牌容器的容量分別為6.6M、26.4M。目前時間片段,從讀寫請求佇列中獲取了一讀請求,對服務品質級數為1的虛擬磁碟IO口進行數據的讀操作,該讀請求所要求的數據帶寬為30M。而目前時間片段,對於服務品質級數為1的虛擬磁碟IO口來說,其令牌容器桶中共計有10個讀令牌容器,每個的容量為20M,可支持的帶寬為10*20=200M,為正數,完全可以滿足30M的讀請求,因此,完成該讀請求的執行,並從令牌容器桶中移除相當於1.5個令牌容器容量的帶寬。如果從讀寫請求佇列中獲取了一寫請求,對服務品質級數為1的虛擬磁碟IO口進行 數據的讀或寫操作,該寫請求所要求的數據帶寬為60M。由於對應的虛擬磁碟IO口寫令牌容器桶中有6.6*10=66M的數據帶寬,為正數,因此,在目前時間片段可以執行帶寬任意帶寬的寫請求,比如80M。但是,由於執行了上一次寫請求,對應的寫令牌容器桶中令牌容器的總容量變為66M-80M=-14M,變成了負數,無法滿足該另一寫請求的執行,因此,只能等待下一時間片段分發寫令牌容器桶才能完成該另一寫請求的執行,使寫令牌容器桶中令牌容器的總容量變為正數。同樣,需要說明的是,如果令牌容器桶中的令牌容器已近到達最多後,比如令牌容器桶中只能最大容納10個讀令牌容器後,給該令牌容器桶分發的令牌容器會被自動拋棄,拋棄的令牌容器可以用於進行對其他令牌容器桶的補償,詳細參見上述記載。
需要說明的是,在上述實施例的基礎上,當實體機器中的虛擬磁碟IO口發生數量變化時,在給不同的虛擬磁碟IO口分配不同的讀寫帶寬時,以數量變換後的虛擬磁碟IO口,可以重新進行讀寫帶寬的分配。
如圖7所示,為本發明實施例四虛擬磁碟的IO口調度裝置結構方塊圖,其可以包括:級數賦予單元401、限值分配單元402、調度單元403,其中:級數賦予單元401,用於根據實體機器中各個虛擬磁碟IO口的定額讀寫帶寬,為每個虛擬磁碟IO口賦予不同的服務品質級數;限值分配單元402,用於確定目前時間片段所有讀寫 請求所要求的數據帶寬總預估值,以及所有讀寫請求所對應的虛擬磁碟IO口,並根據所述數據帶寬總預估值,以及所有讀寫請求所對應的虛擬磁碟IO口相應的服務品質級數,給所有讀寫請求所對應的虛擬磁碟IO口分配相應的讀寫帶寬限值;調度單元403,用於根據目前時間片段每個讀寫請求所要求的實際帶寬以及每個讀寫請求所對應的虛擬磁碟IO口的讀寫帶寬限值,進行實體機器上不同虛擬磁碟IO口的調度。
在本發明的另外一實施例中,限值分配單元403可以進一步用於分別按照讀請求、寫請求,獨立地進行讀帶寬限值、寫帶寬限值的分配,之所以進行獨立分配是因為寫請求和讀請求執行時寫入的數據和讀出的數據不對等造成的,詳細可參見上述方法實施例有關描述,在此不再贅述。具體地,當寫入一虛擬磁碟的數據量和從單個虛擬磁碟讀出的數據量成比例關係時,限值分配單元401分配給對應虛擬磁碟IO口的讀帶寬限值與寫帶寬成對應的比例關係。
在本發明的再一實施例中,為了與虛擬磁碟IO的調度,所述限值分配單元402可以進一步用於給每個虛擬磁碟IO口分配一令牌容器桶,每個令牌容器桶包括複數個令牌容器,每個令牌容器的容量為分配給虛擬磁碟IO口的讀寫帶寬限值大小,以控制不同虛擬磁碟IO口的調度。具體地,在具體的調度過程中,所述限值分配單元402 可以進一步用於根據不同時間片段的讀寫請求,即時調整每個虛擬磁碟IO口對應令牌容器桶中令牌容器的分發。這種情況可以針對虛擬磁碟IO對應的令牌容器桶中令牌容器的數目還沒有達到令牌容器桶的定額。
在本發明的又一實施例中,所述限值分配單元402可以進一步用於在進行實體機器上不同虛擬磁碟IO口的調度時,在不同虛擬磁碟IO口的不同令牌容器桶之間進行令牌容器的補償。這種情況可以針對實體機器中某些虛擬磁碟IO口對應的令牌容器桶已到定額而不能滿足實際讀寫請求的帶寬要求,而同時又存在其他某些虛擬磁碟IO口對應的令牌容器桶中存在沒有充分利用的令牌容器,也就是說較大可能的處於非定額狀態,因此,將剩餘的令牌容器在需要補償的虛擬磁碟IO口對應的令牌容器桶間進行補償。
在上述實施例中,當實體機器中的虛擬磁碟IO口發生數量變化時,所述限值分配單元進一步用於在給不同的虛擬磁碟IO口分配對應的讀寫帶寬限值時,以數量變換後的虛擬磁碟IO口為準,基於所述數據帶寬總預估值重新進行讀寫帶寬限值的分配。
在上述實施例中,時間片可以根據即時回應不斷進行調整,直至接近於即時回應所要求的時間片。
如圖8所示,為本發明上述圖1至圖7實施例所依託的雲端平台部署結構示意圖,多台實體機器801搭建形成一雲端儲存802,每個實體機器801上可以對應有分佈式 的多台虛擬機8010,每台虛擬機8010可以對應有多台虛擬機磁碟(圖中未示出),這些虛擬磁碟對應有WFQ佇列,每個虛擬磁碟具有對應的虛擬磁碟IO口(圖中未示出),每個實體機器上801虛擬磁碟IO口的調度可參見上述實施例,在此不再贅述。
假如某實體機器有四台虛擬機VM1、VM2、VM3、VM4,這四台虛擬機各有一個虛擬磁碟IO口,其權重分別為1、1、4、4。本發明下述將以在該實體機器實施本發明實施例的上述技術方案為例進行效果說明。
如圖9所示,為本發明實施例處理讀寫請求時的帶寬抽樣統計示意圖,可看出,對虛擬機VM1、VM2、VM3、VM4的對應虛擬磁碟IO口的寫處理中,對應的統計線波動較為平穩,變化較為穩定。如圖10所示,為現有技術處理寫請求時的帶寬抽樣統計示意圖,可看出,對虛擬機VM1、VM2、VM3、VM4的對應虛擬磁碟IO口的寫處理中,對應的統計線波動較大,寫請求的處理不穩定。
如圖11所示,為本發明實施例處理讀請求時的帶寬抽樣統計示意圖,可看出,對虛擬機VM1、VM2、VM3、VM4的對應虛擬磁碟IO口的讀請求處理中,對應的統計線波動不大,讀請求的處理較為穩定。如圖12所示,為現有技術處理讀請求時的帶寬抽樣統計示意圖,可看出,對虛擬機VM1、VM2、VM3、VM4的對應虛擬磁碟IO口的讀請求處理中,對應的統計線波動較大,讀請求處理不穩定。
在上述圖9-圖12中,橫坐標表示抽樣期間,縱坐標表示抽樣期間對應虛擬磁碟IO口實際發生的帶寬大小。
本發明的各個部件實施例可以以硬體實現,或者以在一個或者多個處理器上運行的軟體模組實現,或者以它們的組合實現。本領域的技術人員應當理解,可以在實踐中使用微處理器或者數位信號處理器(DSP)來實現根據本發明上述實施例的一些或者全部部件的一些或者全部功能。本發明還可以實現為用於執行本文所描述的方法的一部分或者全部的設備或者裝置程式(例如,電腦程式和電腦程式產品)。這樣的實現本發明的程式可以儲存在電腦可讀介質上,或者可以具有一個或者多個信號的形式。這樣的信號可以從網際網路網站上下載得到,或者在載體信號上提供,或者以任何其他形式提供。
本文中所稱的“一個實施例”、“實施例”或者“一個或者多個實施例”意味著,結合實施例描述的特定特徵、結構或者特性包括在本發明的至少一個實施例中。此外,請注意,這裏“在一個實施例中”的詞語例子不一定全指同一個實施例。
在此處所提供的說明書中,說明了大量具體細節。然而,能夠理解,本發明的實施例可以在沒有這些具體細節的情況下被實踐。在一些實例中,並未詳細示出公知的方法、結構和技術,以便不模糊對本說明書的理解。
應該注意的是上述實施例對本發明進行說明而不是對本發明進行限制,並且本領域技術人員在不脫離所附申請 專利範圍的範圍的情況下可設計出替換實施例。在申請專利範圍中,不應將位於括號之間的任何參考符號構造成對申請專利範圍的限制。單詞“包含”不排除存在未列在申請專利範圍中的元件或步驟。位於元件之前的單詞“一”或“一個”不排除存在多個這樣的元件。本發明可以借助於包括有若干不同元件的硬體以及借助於適當編程的電腦來實現。在列舉了若干裝置的單元申請專利範圍中,這些裝置中的複數個可以是通過同一個硬體項來具體體現。單詞第一、第二、以及第三等的使用不表示任何順序。可將這些單詞解釋為名稱。
此外,還應當注意,本說明書中使用的語言主要是為了可讀性和教導的目的而各種頁面內,而不是為了解釋或者限定本發明的主題而各種頁面內。因此,在不偏離所附申請專利範圍的範圍和精神的情況下,對於本技術領域的普通技術人員來說許多修改和變更都是顯而易見的。對於本發明的範圍,對本發明所做的公開是說明性的,而非限制性的,本發明的範圍由所附申請專利範圍限定。

Claims (15)

  1. 一種虛擬磁碟的IO口調度方法,其特徵在於,包括:根據實體機器中各個虛擬磁碟IO口的定額讀寫帶寬,為每個虛擬磁碟IO口賦予不同的服務品質級數;確定目前時間片段所有讀寫請求所要求的數據帶寬總預估值,以及所有讀寫請求所對應的虛擬磁碟IO口,並根據所述數據帶寬總預估值,以及所有讀寫請求所對應的虛擬磁碟IO口相應的服務品質級數,給所有讀寫請求所對應的虛擬磁碟IO口分配相應的讀寫帶寬限值;根據目前時間片段每個讀寫請求所要求的實際帶寬以及每個讀寫請求所對應的虛擬磁碟IO口的讀寫帶寬限值,進行實體機器上不同虛擬磁碟IO口的調度。
  2. 根據申請專利範圍第1項所述的方法,其中,在為每個虛擬磁碟IO口賦予不同的服務品質級數時,所賦予的服務品質級數與各個虛擬磁碟IO的定額讀寫帶寬成正比關係。
  3. 根據申請專利範圍第1項所述的方法,其中,在確定目前時間片段所有讀寫請求所要求的數據帶寬總預估計值時,將上一時間片段所有讀寫請求所實際產生的讀寫數據帶寬的總和,作為目前時間片段所有讀寫請求所要求的數據帶寬總預估值。
  4. 根據申請專利範圍第1項所述的方法,其中,在分配相應的讀寫帶寬限值時,按不同虛擬磁碟IO口的服務 品質級數之比,將所述數據帶寬總預估值分配給不同的虛擬磁碟IO口。
  5. 根據申請專利範圍第1項所述的方法,其中,在分配讀寫寬帶限值時,分別按照讀請求、寫請求,獨立地進行讀帶寬限值、寫帶寬限值的分配。
  6. 根據申請專利範圍第5項所述的方法,其中,獨立地進行讀帶寬限值、寫帶寬限值的分配時,當寫入一虛擬磁碟的數據量和從單個虛擬磁碟讀出的數據量成比例關係時,分配給對應虛擬磁碟IO口的讀帶寬限值與寫帶寬成對應的比例關係。
  7. 根據申請專利範圍第1項所述的方法,其中,給不同的虛擬磁碟IO口分配相應的讀寫帶寬限值時,給每個虛擬磁碟IO口分配一令牌容器桶,每個令牌容器桶包括複數個令牌容器,每個令牌容器的容量為分配給虛擬磁碟IO口的讀寫帶寬限值大小,以控制不同虛擬磁碟IO口的調度。
  8. 根據申請專利範圍第7項所述的方法,其中,在給每個虛擬磁碟IO口分配令牌容器桶時,不同虛擬磁碟IO口的不同令牌容器桶中,所包含的令牌容器的容量正比於其對應虛擬磁碟IO口的服務品質級數。
  9. 根據申請專利範圍第7項所述的方法,其中,不同虛擬磁碟IO口所分配的令牌容器桶包括相同數目個令牌容器。;給不同的虛擬磁碟IO口分配相應不同的讀寫帶寬限值時,根據不同時間片段的讀寫請求,即時調整每個虛 擬磁碟IO口對應令牌容器桶中令牌容器的分發。
  10. 根據申請專利範圍第9項所述的方法,其中,在即時調整每個虛擬磁碟IO口所分配的令牌容器桶中令牌容器的分發時,確保每個虛擬磁碟IO對應令牌容器桶的即時容量不大於對應令牌容器桶的定額容量。
  11. 根據申請專利範圍第10項所述的方法,其中,在進行實體機器上不同虛擬磁碟IO口的調度時,在不同虛擬磁碟IO口的不同令牌容器桶之間進行令牌容器的補償。
  12. 一種虛擬磁碟的IO口調度裝置,其特徵在於,包括:級數賦予單元,用於根據實體機器中各個虛擬磁碟IO口的定額讀寫帶寬,為每個虛擬磁碟IO口賦予不同的服務品質級數;限值分配單元,用於確定目前時間片段所有讀寫請求所要求的數據帶寬總預估值,以及所有讀寫請求所對應的虛擬磁碟IO口,並根據所述數據帶寬總預估值,以及所有讀寫請求所對應的虛擬磁碟IO口相應的服務品質級數,給所有讀寫請求所對應的虛擬磁碟IO口分配相應的讀寫帶寬限值;調度單元,用於根據目前時間片段每個讀寫請求所要求的實際帶寬以及每個讀寫請求所對應的虛擬磁碟IO口的讀寫帶寬限值,進行實體機器上不同虛擬磁碟IO口的調度。
  13. 根據申請專利範圍第12項所述的裝置,其中,限值分配單元進一步用於分別按照讀請求、寫請求,獨立地進行讀帶寬限值、寫帶寬限值的分配。
  14. 根據申請專利範圍第13項所述的裝置,其中,所述限值分配單元進一步用於當寫入一虛擬磁碟的數據量和從單個虛擬磁碟讀出的數據量成比例關係時,分配給對應虛擬磁碟IO口的讀帶寬限值與寫帶寬成對應的比例關係。
  15. 根據申請專利範圍第12項所述的裝置,其中,所述限值分配單元進一步用於給每個虛擬磁碟IO口分配一令牌容器桶,每個令牌容器桶包括複數個令牌容器,每個令牌容器的容量為分配給虛擬磁碟IO口的讀寫帶寬限值大小,以控制不同虛擬磁碟IO口的調度。
TW102126656A 2013-04-18 2013-07-25 虛擬磁碟的io口調度方法及其調度裝置 TWI629599B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
??201310135853.1 2013-04-18
CN201310135853.1A CN104111800B (zh) 2013-04-18 2013-04-18 一种虚拟磁盘的io口调度方法及其调度装置

Publications (2)

Publication Number Publication Date
TW201441833A true TW201441833A (zh) 2014-11-01
TWI629599B TWI629599B (zh) 2018-07-11

Family

ID=51708608

Family Applications (1)

Application Number Title Priority Date Filing Date
TW102126656A TWI629599B (zh) 2013-04-18 2013-07-25 虛擬磁碟的io口調度方法及其調度裝置

Country Status (7)

Country Link
US (2) US10114553B2 (zh)
EP (1) EP2987080A1 (zh)
JP (1) JP6240309B2 (zh)
CN (1) CN104111800B (zh)
HK (1) HK1200228A1 (zh)
TW (1) TWI629599B (zh)
WO (1) WO2014172475A1 (zh)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150172066A1 (en) * 2013-12-13 2015-06-18 Qualcomm Incorporated Practical implementation aspects of unicast fetch for http streaming over embms
CN107645407B (zh) 2014-12-08 2021-02-12 华为技术有限公司 一种适配QoS的方法和装置
CN105763475B (zh) * 2014-12-15 2019-10-25 南京中兴新软件有限责任公司 接入控制方法及装置
JP6451308B2 (ja) * 2014-12-24 2019-01-16 富士通株式会社 ストレージ装置およびストレージ装置制御プログラム
US9594592B2 (en) 2015-01-12 2017-03-14 International Business Machines Corporation Dynamic sharing of unused bandwidth capacity of virtualized input/output adapters
CN106155764A (zh) * 2015-04-23 2016-11-23 阿里巴巴集团控股有限公司 调度虚拟机输入输出资源的方法及装置
CN106201839B (zh) 2015-04-30 2020-02-14 阿里巴巴集团控股有限公司 一种业务对象的信息加载方法和装置
CN106209741B (zh) 2015-05-06 2020-01-03 阿里巴巴集团控股有限公司 一种虚拟主机及隔离方法、资源访问请求处理方法及装置
TWI594607B (zh) * 2015-11-27 2017-08-01 鴻海精密工業股份有限公司 動態控制多個視頻下載之系統及方法
US20170208120A1 (en) * 2016-01-15 2017-07-20 Google Inc. Probabilistic throttling
US10785300B2 (en) * 2016-10-12 2020-09-22 Dell Products L.P. Storage rate limiting for information handling system with multiple storage controllers
CN109154883A (zh) * 2017-03-22 2019-01-04 波利伍德有限责任公司 驱动级内部服务质量
KR101899719B1 (ko) * 2017-04-26 2018-09-17 세종대학교산학협력단 가상 머신에 대한 입출력 성능 제한 방법
CN107276827B (zh) * 2017-07-25 2021-04-23 郑州云海信息技术有限公司 一种分布式存储***中Qos的实现方法及装置
CN107885461B (zh) * 2017-10-19 2022-02-01 北京京东尚科信息技术有限公司 一种数据本地存储方法和装置
CN107579926B (zh) * 2017-10-20 2021-02-09 南京易捷思达软件科技有限公司 基于令牌桶算法的Ceph云存储***的QoS设置方法
CN107800574B (zh) * 2017-11-03 2021-05-28 郑州云海信息技术有限公司 存储qos调节方法、***、设备及计算机可读存储器
CN108762687B (zh) * 2018-06-05 2019-11-08 星环信息科技(上海)有限公司 Io服务质量控制方法、装置、设备及存储介质
CN110727392B (zh) * 2018-07-17 2023-07-14 阿里巴巴集团控股有限公司 一种云存储数据单元调度方法和装置
US11074013B2 (en) * 2018-08-07 2021-07-27 Marvell Asia Pte, Ltd. Apparatus and methods for providing quality of service over a virtual interface for solid-state storage
CN111211915B (zh) * 2018-11-21 2022-09-16 中国科学院深圳先进技术研究院 容器的网络带宽的调节方法、计算机设备及可读存储介质
US11048437B2 (en) * 2019-02-28 2021-06-29 Micron Technology, Inc. Double threshold controlled scheduling of memory access commands
US10764315B1 (en) * 2019-05-08 2020-09-01 Capital One Services, Llc Virtual private cloud flow log event fingerprinting and aggregation
CN111355805A (zh) * 2020-03-06 2020-06-30 苏州浪潮智能科技有限公司 一种网络通信方法、装置、设备及存储介质
WO2022120722A1 (zh) * 2020-12-10 2022-06-16 深圳市大疆创新科技有限公司 资源调度装置、数字信号处理器和可移动平台
CN117806571B (zh) * 2024-02-29 2024-06-07 济南浪潮数据技术有限公司 一种云主机的i/o参数值确定方法、计算机设备及其云平台

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6832248B1 (en) * 2001-05-10 2004-12-14 Agami Systems, Inc. System and method for managing usage quotas
JP4119239B2 (ja) * 2002-12-20 2008-07-16 株式会社日立製作所 計算機資源割当方法、それを実行するための資源管理サーバおよび計算機システム
US7191207B2 (en) * 2003-06-11 2007-03-13 International Business Machines Corporation Apparatus and method to dynamically allocate bandwidth in a data storage and retrieval system
US8918566B2 (en) * 2009-01-23 2014-12-23 Hewlett-Packard Development Company, L. P. System and methods for allocating shared storage resources
CN101770346A (zh) * 2010-01-04 2010-07-07 浪潮电子信息产业股份有限公司 一种多控制器磁盘阵列协调调度方法
US9146765B2 (en) 2011-03-11 2015-09-29 Microsoft Technology Licensing, Llc Virtual disk storage techniques
WO2012168995A1 (ja) 2011-06-06 2012-12-13 株式会社日立製作所 I/oスイッチの制御方法、仮想計算機の制御方法及び計算機システム
CN102270104B (zh) 2011-07-14 2013-07-24 华中科技大学 虚拟化环境中动态磁盘带宽分配方法
JP5733136B2 (ja) * 2011-09-26 2015-06-10 富士通株式会社 情報処理装置の制御方法、制御プログラム及び情報処理装置
US8732291B2 (en) * 2012-01-13 2014-05-20 Accenture Global Services Limited Performance interference model for managing consolidated workloads in QOS-aware clouds
US9015519B2 (en) 2012-01-31 2015-04-21 Symantec Corporation Method and system for cluster wide adaptive I/O scheduling by a multipathing driver

Also Published As

Publication number Publication date
US10114553B2 (en) 2018-10-30
EP2987080A1 (en) 2016-02-24
JP6240309B2 (ja) 2017-11-29
JP2016521417A (ja) 2016-07-21
US20140325522A1 (en) 2014-10-30
US20190087090A1 (en) 2019-03-21
WO2014172475A1 (en) 2014-10-23
US10649664B2 (en) 2020-05-12
CN104111800B (zh) 2018-02-23
TWI629599B (zh) 2018-07-11
CN104111800A (zh) 2014-10-22
HK1200228A1 (zh) 2015-07-31

Similar Documents

Publication Publication Date Title
TWI629599B (zh) 虛擬磁碟的io口調度方法及其調度裝置
EP2758877B1 (en) Bandwidth throttling of virtual disks
JP5827678B2 (ja) 仮想コンテナのシステムにおけるリソース容量評価のための方法および装置
KR102380670B1 (ko) 메모리 제어기에서의 세분화된 대역폭 프로비저닝
ES2837048T3 (es) Método y sistema para asignar recursos a consumidores de recursos en un entorno informático en la nube
US9760392B1 (en) Adaptive throttling in hybrid storage environments
US11321123B2 (en) Determining an optimum number of threads to make available per core in a multi-core processor complex to executive tasks
WO2017166643A1 (zh) 一种任务资源的量化方法和装置
CN109189563A (zh) 资源调度方法、装置、计算设备及存储介质
KR102640232B1 (ko) 가상화 환경에서의 자원 할당 방법 및 장치
US20160092379A1 (en) Priority framework for a computing device
US20200065150A1 (en) Allocating Resources of a Memory Fabric
KR101924467B1 (ko) 가상 머신의 cpu 및 블록 i/o 작업에 성능 보장을 위한 자원 할당 시스템 및 방법
JP2020154391A (ja) 情報処理システムおよびプログラム
CN112667356B (zh) 时延可预测的NVMe存储虚拟化方法和***
US8245229B2 (en) Temporal batching of I/O jobs
WO2022063273A1 (zh) 一种基于numa属性的资源分配方法及装置
Wang et al. Improving utilization through dynamic VM resource allocation in hybrid cloud environment
US20180314455A1 (en) Memory access optimization in a processor complex
CN113626162A (zh) 基于动态资源共享的数据中心任务混合部署方法及***
Kim et al. Supporting the priorities in the multi-queue block i/o layer for nvme ssds
CN110955644A (zh) 一种存储***的io控制方法、装置、设备及存储介质
TW201621675A (zh) 具應用程式資訊感知的資料處理方法以及系統
Huo et al. Dynamic Throughput Allocation among Multiple Servers for Heterogeneous Storage System
CN107656810A (zh) 数据中心环境下保证延迟敏感程序服务质量的方法