CN104111800B - 一种虚拟磁盘的io口调度方法及其调度装置 - Google Patents
一种虚拟磁盘的io口调度方法及其调度装置 Download PDFInfo
- Publication number
- CN104111800B CN104111800B CN201310135853.1A CN201310135853A CN104111800B CN 104111800 B CN104111800 B CN 104111800B CN 201310135853 A CN201310135853 A CN 201310135853A CN 104111800 B CN104111800 B CN 104111800B
- Authority
- CN
- China
- Prior art keywords
- virtual disk
- read
- port
- bandwidth
- write requests
- Prior art date
- Legal status (The legal status 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 status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请公开了一种虚拟磁盘的IO口调度方法,其包括:根据物理机中各个虚拟磁盘IO口的定额读写带宽,为每个虚拟磁盘IO口赋予不同的服务质量级数;确定当前时间片内所有读写请求所要求的数据带宽总预估值,以及所有读写请求所对应的虚拟磁盘IO口,并根据所述数据带宽总预估值,以及所有读写请求所对应的虚拟磁盘IO口相应的服务质量级数,给所有读写请求所对应的虚拟磁盘IO口分配相应的读写带宽限值;根据当前时间片内每个读写请求所要求的实际带宽以及每个读写请求所对应的虚拟磁盘IO口的读写带宽限值,进行物理机上不同虚拟磁盘IO口的调度。从而效解决分布式虚拟磁盘IO口的实时调度问题。
Description
技术领域
本申请属于人机交互领域,尤其涉及一种虚拟磁盘的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口的实时调度问题。
当然,实施本申请的任一产品必不一定需要同时达到以上所述的所有技术效果。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图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 (20)
1.一种虚拟磁盘的IO口调度方法,其特征在于,包括:
根据物理机中各个虚拟磁盘IO口的定额读写带宽,为每个虚拟磁盘IO口赋予不同的服务质量级数;
确定当前时间片内所有读写请求所要求的数据带宽总预估值,以及所有读写请求所对应的虚拟磁盘IO口,并根据所述数据带宽总预估值,以及所有读写请求所对应的虚拟磁盘IO口相应的服务质量级数,给所有读写请求所对应的虚拟磁盘IO口分配相应的读写带宽限值;
根据当前时间片内每个读写请求所要求的实际带宽以及每个读写请求所对应的虚拟磁盘IO口的读写带宽限值,进行物理机上不同虚拟磁盘IO口的调度;
其中,确定当前时间片内所有读写请求所要求的数据带宽总预估值,包括:基于上一时间片内所有读写请求所实际产生的读写数据带宽的总和、以及上一时间片内所有读写请求所要求的数据带宽总预估值,确定当前时间片内所有读写请求所要求的数据带宽总预估值;或者,将上一时间片内所有读写请求所实际产生的读写数据带宽的总和,作为当前时间片内所有读写请求所要求的数据带宽总预估值。
2.根据权利要求1所述的方法,其特征在于,在为每个虚拟磁盘IO口赋予不同的服务质量级数时,所赋予的服务质量级数与各个虚拟磁盘IO的定额读写带宽成正比关系。
3.根据权利要求1所述的方法,其特征在于,在分配相应的读写带宽限值时,按不同虚拟磁盘IO口的服务质量级数之比,将所述数据带宽总预估值分配给不同的虚拟磁盘IO口。
4.根据权利要求1所述的方法,其特征在于,在分配读写宽带限值时,分别按照读请求、写请求,独立地进行读带宽限值、写带宽限值的分配。
5.根据权利要求4所述的方法,其特征在于,独立地进行读带宽限值、写带宽限值的分配时,当写入一虚拟磁盘的数据量和从单个虚拟磁盘读出的数据量成比例关系时,分配给对应虚拟磁盘IO口的读带宽限值与写带宽成对应的比例关系。
6.根据权利要求1所述的方法,其特征在于,给不同的虚拟磁盘IO口分配相应的读写带宽限值时,给每个虚拟磁盘IO口分配一令牌容器桶,每个令牌容器桶包括若干个令牌容器,每个令牌容器的容量为分配给虚拟磁盘IO口的读写带宽限值大小,以控制不同虚拟磁盘IO口的调度。
7.根据权利要求6所述的方法,其特征在于,在给每个虚拟磁盘IO口分配令牌容器桶时,不同虚拟磁盘IO口的不同令牌容器桶中,所包含的令牌容器的容量正比于其对应虚拟磁盘IO口的服务质量级数。
8.根据权利要求6所述的方法,其特征在于,不同虚拟磁盘IO口所分配的令牌容器桶包括相同数目个令牌容器。
9.根据权利要求6所述的方法,其特征在于,给不同的虚拟磁盘IO口分配相应不同的读写带宽限值时,根据不同时间片内的读写请求,实时调整每个虚拟磁盘IO口对应令牌容器桶中令牌容器的分发。
10.根据权利要求9所述的方法,其特征在于,在实时调整每个虚拟磁盘IO口所分配的令牌容器桶中令牌容器的分发时,确保每个虚拟磁盘IO对应令牌容器桶的实时容量不大于对应令牌容器桶的定额容量。
11.根据权利要求9所述的方法,其特征在于,在进行物理机上不同虚拟磁盘IO口的调度时,在不同虚拟磁盘IO口的不同令牌容器桶之间进行令牌容器的补偿。
12.根据权利要求1所述的方法,其特征在于,当物理机中的虚拟磁盘IO口发生数量变化时,在给不同的虚拟磁盘IO口分配对应的读写带宽限值时,以数量变换后的虚拟磁盘IO口为准,基于所述数据带宽总预估值重新进行读写带宽限值的分配。
13.根据权利要求1所述的方法,其特征在于,在进行虚拟磁盘IO调度之前,根据读写请求与虚拟磁盘IO口的请求对应关系,生成加权请求队列,以从所述加权请求队列中按照时间先后顺序读取不同的读写请求。
14.一种虚拟磁盘的IO口调度装置,其特征在于,包括:
级数赋予单元,用于根据物理机中各个虚拟磁盘IO口的定额读写带宽,为每个虚拟磁盘IO口赋予不同的服务质量级数;
限值分配单元,用于确定当前时间片内所有读写请求所要求的数据带宽总预估值,以及所有读写请求所对应的虚拟磁盘IO口,并根据所述数据带宽总预估值,以及所有读写请求所对应的虚拟磁盘IO口相应的服务质量级数,给所有读写请求所对应的虚拟磁盘IO口分配相应的读写带宽限值;
调度单元,用于根据当前时间片内每个读写请求所要求的实际带宽以及每个读写请求所对应的虚拟磁盘IO口的读写带宽限值,进行物理机上不同虚拟磁盘IO口的调度;
其中,所述限值分配单元确定当前时间片内所有读写请求所要求的数据带宽总预估值,具体为:基于上一时间片内所有读写请求所实际产生的读写数据带宽的总和、以及上一时间片内所有读写请求所要求的数据带宽总预估值,确定当前时间片内所有读写请求所要求的数据带宽总预估值;或者,将上一时间片内所有读写请求所实际产生的读写数据带宽的总和,作为当前时间片内所有读写请求所要求的数据带宽总预估值。
15.根据权利要求14所述的装置,其特征在于,所述限值分配单元进一步用于分别按照读请求、写请求,独立地进行读带宽限值、写带宽限值的分配。
16.根据权利要求15所述的装置,其特征在于,所述限值分配单元进一步用于当写入一虚拟磁盘的数据量和从单个虚拟磁盘读出的数据量成比例关系时,分配给对应虚拟磁盘IO口的读带宽限值与写带宽成对应的比例关系。
17.根据权利要求14所述的装置,其特征在于,所述限值分配单元进一步用于给每个虚拟磁盘IO口分配一令牌容器桶,每个令牌容器桶包括若干个令牌容器,每个令牌容器的容量为分配给虚拟磁盘IO口的读写带宽限值大小,以控制不同虚拟磁盘IO口的调度。
18.根据权利要求17所述的装置,其特征在于,所述限值分配单元进一步用于根据不同时间片内的读写请求,实时调整每个虚拟磁盘IO口对应令牌容器桶中令牌容器的分发。
19.根据权利要求17所述的装置,其特征在于,所述限值分配单元进一步用于在进行物理机上不同虚拟磁盘IO口的调度时,在不同虚拟磁盘IO口的不同令牌容器桶之间进行令牌容器的补偿。
20.根据权利要求14所述的装置,其特征在于,所述限值分配单元进一步用于当物理机中的虚拟磁盘IO口发生数量变化时,在给不同的虚拟磁盘IO口分配对应的读写带宽限值时,以数量变换后的虚拟磁盘IO口为准,基于所述数据带宽总预估值重新进行读写带宽限值的分配。
Priority Applications (8)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310135853.1A CN104111800B (zh) | 2013-04-18 | 2013-04-18 | 一种虚拟磁盘的io口调度方法及其调度装置 |
TW102126656A TWI629599B (zh) | 2013-04-18 | 2013-07-25 | 虛擬磁碟的io口調度方法及其調度裝置 |
US14/253,789 US10114553B2 (en) | 2013-04-18 | 2014-04-15 | Method and device for scheduling virtual disk input and output ports |
PCT/US2014/034394 WO2014172475A1 (en) | 2013-04-18 | 2014-04-16 | Method and device for scheduling virtual disk input and output ports |
EP14727997.0A EP2987080A1 (en) | 2013-04-18 | 2014-04-16 | Method and device for scheduling virtual disk input and output ports |
JP2016509073A JP6240309B2 (ja) | 2013-04-18 | 2014-04-16 | 仮想ディスクの入出力ポートをスケジューリングするための方法およびデバイス |
HK15100673.7A HK1200228A1 (zh) | 2013-04-18 | 2015-01-21 | 種虛擬磁盤的 口調度方法及其調度裝置 |
US16/133,506 US10649664B2 (en) | 2013-04-18 | 2018-09-17 | Method and device for scheduling virtual disk input and output ports |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310135853.1A CN104111800B (zh) | 2013-04-18 | 2013-04-18 | 一种虚拟磁盘的io口调度方法及其调度装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104111800A CN104111800A (zh) | 2014-10-22 |
CN104111800B true CN104111800B (zh) | 2018-02-23 |
Family
ID=51708608
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310135853.1A Active CN104111800B (zh) | 2013-04-18 | 2013-04-18 | 一种虚拟磁盘的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)
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 |
WO2018175559A1 (en) * | 2017-03-22 | 2018-09-27 | Burlywood, LLC | Drive-level internal quality of service |
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参数值确定方法、计算机设备及其云平台 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101770346A (zh) * | 2010-01-04 | 2010-07-07 | 浪潮电子信息产业股份有限公司 | 一种多控制器磁盘阵列协调调度方法 |
Family Cites Families (10)
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 |
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 |
-
2013
- 2013-04-18 CN CN201310135853.1A patent/CN104111800B/zh active Active
- 2013-07-25 TW TW102126656A patent/TWI629599B/zh active
-
2014
- 2014-04-15 US US14/253,789 patent/US10114553B2/en active Active
- 2014-04-16 EP EP14727997.0A patent/EP2987080A1/en not_active Withdrawn
- 2014-04-16 WO PCT/US2014/034394 patent/WO2014172475A1/en active Application Filing
- 2014-04-16 JP JP2016509073A patent/JP6240309B2/ja active Active
-
2015
- 2015-01-21 HK HK15100673.7A patent/HK1200228A1/zh unknown
-
2018
- 2018-09-17 US US16/133,506 patent/US10649664B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101770346A (zh) * | 2010-01-04 | 2010-07-07 | 浪潮电子信息产业股份有限公司 | 一种多控制器磁盘阵列协调调度方法 |
Non-Patent Citations (1)
Title |
---|
IO QoS: A New Disk I/O Scheduler Module with QoS Guarantee for Cloud Platform;Wu Yubin等;《2012 Fourth International Symposium on Information Science and Engineering》;20121231;第441-444页 * |
Also Published As
Publication number | Publication date |
---|---|
JP6240309B2 (ja) | 2017-11-29 |
HK1200228A1 (zh) | 2015-07-31 |
US10649664B2 (en) | 2020-05-12 |
JP2016521417A (ja) | 2016-07-21 |
US20140325522A1 (en) | 2014-10-30 |
US20190087090A1 (en) | 2019-03-21 |
US10114553B2 (en) | 2018-10-30 |
TWI629599B (zh) | 2018-07-11 |
CN104111800A (zh) | 2014-10-22 |
EP2987080A1 (en) | 2016-02-24 |
TW201441833A (zh) | 2014-11-01 |
WO2014172475A1 (en) | 2014-10-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104111800B (zh) | 一种虚拟磁盘的io口调度方法及其调度装置 | |
CN104484220B (zh) | 虚拟化集群的动态资源调度的方法及装置 | |
CN109005125A (zh) | 动态限流方法、装置及系统 | |
Sun et al. | Towards distributed machine learning in shared clusters: A dynamically-partitioned approach | |
CN109189563B (zh) | 资源调度方法、装置、计算设备及存储介质 | |
JP7546669B2 (ja) | マルチコア・プロセッサ複合体の中の1コア当たりのスレッドの最適数の決定 | |
CN106406987A (zh) | 一种集群中的任务执行方法及装置 | |
Verner et al. | Scheduling processing of real-time data streams on heterogeneous multi-GPU systems | |
US20150241947A1 (en) | Distributed power management with performance and power boundaries | |
CN110297695A (zh) | 用于共享资源访问的可变速率限制的系统和方法 | |
CN109471725A (zh) | 资源分配方法、装置和服务器 | |
CN106133709B (zh) | 用于防止存储器中的存储体冲突的方法和装置 | |
CN116680060B (zh) | 面向异构计算系统的任务分配方法、装置、设备和介质 | |
CN114386560A (zh) | 数据处理方法和设备 | |
US10423452B2 (en) | Allocating resources to virtual machines | |
CN104657087B (zh) | 一种虚拟磁盘映射的方法、装置及系统 | |
CN112667356B (zh) | 时延可预测的NVMe存储虚拟化方法和系统 | |
CN110096355A (zh) | 一种共享资源分配方法、装置和设备 | |
CN113703945B (zh) | 微服务集群的调度方法、装置、设备及存储介质 | |
Canosa-Reyes et al. | Dynamic performance–Energy tradeoff consolidation with contention-aware resource provisioning in containerized clouds | |
Huo et al. | TACD: A throughput allocation method based on variant of Cobb–Douglas for hybrid storage system | |
Gupta | Techniques for efficient high performance computing in the cloud | |
CN107529696B (zh) | 一种存储资源访问控制方法及装置 | |
Yang | Online scheduling with migration cost | |
Huo et al. | Dynamic Throughput Allocation among Multiple Servers for Heterogeneous Storage System |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 1200228 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: GR Ref document number: 1200228 Country of ref document: HK |