CN106325974B - 一种虚拟化io性能优化方法及系统 - Google Patents

一种虚拟化io性能优化方法及系统 Download PDF

Info

Publication number
CN106325974B
CN106325974B CN201610659376.2A CN201610659376A CN106325974B CN 106325974 B CN106325974 B CN 106325974B CN 201610659376 A CN201610659376 A CN 201610659376A CN 106325974 B CN106325974 B CN 106325974B
Authority
CN
China
Prior art keywords
request
bio
adjacent
requests
target queue
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
Application number
CN201610659376.2A
Other languages
English (en)
Other versions
CN106325974A (zh
Inventor
杨敏
刘相乐
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Inspur Beijing Electronic Information Industry Co Ltd
Original Assignee
Inspur Beijing Electronic Information Industry Co 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 Inspur Beijing Electronic Information Industry Co Ltd filed Critical Inspur Beijing Electronic Information Industry Co Ltd
Priority to CN201610659376.2A priority Critical patent/CN106325974B/zh
Publication of CN106325974A publication Critical patent/CN106325974A/zh
Application granted granted Critical
Publication of CN106325974B publication Critical patent/CN106325974B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/4555Para-virtualisation, i.e. guest operating system has to be modified
    • 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
    • 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • 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
    • G06F2009/45579I/O management, e.g. providing access to device drivers or storage

Abstract

本发明公开了一种基于virtio_blk的虚拟化IO性能优化方法及系统,包括:接收到bio请求时,通过BASE_BIO模块将bio请求存入目标队列;当目标队列保存的bio请求数目大于预定阈值时,检测目标队列保存的bio请求是否存在相邻请求;若存在,则将相邻请求封装为virtblk_requet,并执行kick操作;若不存在,则将每个bio请求封装为对应的virtblk_request,并执行kick操作;可见,在执行kick操作时,让qemu一次处理多个bio请求,减少了kick执行的次数,将更多的计算资源用于IO的处理,大大降低了客户机到宿主机的IO响应延迟,提高了系统整体的IOPS性能。

Description

一种虚拟化IO性能优化方法及系统
技术领域
本发明涉及虚拟化技术领域,更具体地说,涉及一种基于virtio_blk的虚拟化IO性能优化方法及系统。
背景技术
随着互联网时代信息、数据爆炸式增长,也带动了存储市场需求的不断增长和变化。为了更好的满足不同客户的需求(如同时提供nas和san服务),统一存储的概念也应运而生,基于虚拟化平台实现统一存储也成为主流技术之一。虚拟化平台主要包括CPU虚拟化、内存虚拟化以及IO虚拟化。其中CPU虚拟化、内存虚拟化技术已经可以通过硬件的方式去实现,实现技术已经很成熟。因此,IO虚拟化成为虚拟机IO性能最核心的技术,virtio应运而生。virtio一套是基于半虚拟化平台的IO虚拟化框架,该框架支持各种设备,如网络设备、SCSI设备,而virtio_blk就是用来提供块设备服务的。
因此,如何基于virtio_blk提高虚拟化IO性能,是本领域技术人员需要解决的问题。
发明内容
本发明的目的在于提供一种基于virtio_blk的虚拟化IO性能优化方法及系统,以实现提高IO性能。
为实现上述目的,本发明实施例提供了如下技术方案:
一种基于virtio_blk的虚拟化IO性能优化方法,包括:
接收到bio请求时,通过BASE_BIO模块将bio请求存入目标队列;
当所述目标队列保存的bio请求数目大于预定阈值时,检测所述目标队列保存的bio请求是否存在相邻请求;
若存在,则将相邻请求封装为virtblk_requet,并执行kick操作;若不存在,则将每个bio请求封装为对应的virtblk_request,并执行kick操作。
其中,检测到所述目标队列保存的bio请求存在相邻请求之后,还包括:
按照预定规则,将相邻请求动态移动到所述目标队列的前端。
其中,所述按照预定规则,将相邻请求动态移动到所述目标队列的前端,包括:
根据检测到的每个相邻请求的请求数目,设定每个相邻请求的优先级,并根据每个相邻请求的优先级,动态调整每个相邻请求在所述目标队列的保存位置。
其中,检测到所述目标队列保存的bio请求不存在相邻请求之后,还包括:
设置与每个bio请求对应的计时器;
若检测到计时器超时,则将与超时的计数器对应的bio请求的处理优先级设置为最高。
其中,所述检测所述目标队列保存的bio请求是否存在相邻请求,包括:
检测所述目标队列保存的bio请求是否存在位于同一扇区、同一磁道、同一柱面或者同一磁盘中的一者的bio请求;
若存在,则将位于同一扇区、同一磁道、同一柱面或者同一磁盘中的bio请求作为一组相邻请求。
一种基于virtio_blk的虚拟化IO性能优化系统,包括:
Bio请求存入模块,用于接收到bio请求时,通过BASE_BIO模块将bio请求存入目标队列;
相邻请求检测模块,用于当所述目标队列保存的bio请求数目大于预定阈值时,检测所述目标队列保存的bio请求是否存在相邻请求;若存在,则触发第一封装模块;若不存在,则触发第二封装模块;
所述第一封装模块,用于将相邻请求封装为virtblk_requet;
所述第二封装模块,用于将每个bio请求封装为对应的virtblk_request;
执行模块,用于对封装后的virtblk_requet执行kick操作。
其中,还包括:
动态调整模块,用于按照预定规则,将相邻请求动态移动到所述目标队列的前端。
其中,所述动态调整模块根据检测到的每个相邻请求的请求数目,设定每个相邻请求的优先级,并根据每个相邻请求的优先级,动态调整每个相邻请求在所述目标队列的保存位置。
其中,还包括:
计时器设置模块,用于设置与每个bio请求对应的计时器;
处理优先级调整模块,用于检测到计时器超时,则将与超时的计数器对应的bio请求的处理优先级设置为最高。
其中,所述相邻请求检测模块通过检测所述目标队列保存的bio请求是否存在位于同一扇区、同一磁道、同一柱面或者同一磁盘中的一者的bio请求;若存在,则将位于同一扇区、同一磁道、同一柱面或者同一磁盘中的bio请求作为一组相邻请求。
通过以上方案可知,本发明实施例提供的一种基于virtio_blk的虚拟化IO性能优化方法及系统,包括:接收到bio请求时,通过BASE_BIO模块将bio请求存入目标队列;当所述目标队列保存的bio请求数目大于预定阈值时,检测所述目标队列保存的bio请求是否存在相邻请求;若存在,则将相邻请求封装为virtblk_requet,并执行kick操作;若不存在,则将每个bio请求封装为对应的virtblk_request,并执行kick操作。
可见,在本实施例中,BASE_BIO模块是以IO最小单位bio为粒度进行的从客户机到宿主机的IO转发,实现客户机IO路径的最短化;将相邻请求封装为virtblk_requet,可以在执行kick操作时,让qemu一次处理多个bio请求,减少了kick执行的次数,将更多的计算资源用于IO的处理,使得virtio_blk的IO路径更加简洁清晰,从而客户机IO路径的最短化,也缩短了virtio_blk整个IO路径,大大降低了客户机到宿主机的IO响应延迟,提高了系统整体的IOPS性能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例公开的一种基于virtio_blk的虚拟化IO性能优化方法流程示意图;
图2为本发明实施例公开的Virtio_blk IO路径图;
图3为本发明实施例公开的BASE_BIO模块IO路径图;
图4为本发明实施例公开的一种基于virtio_blk的虚拟化IO性能优化系统结构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例公开了一种基于virtio_blk的虚拟化IO性能优化方法及系统,以实现提高IO性能。
参见图1,本发明实施例提供的一种基于virtio_blk的虚拟化IO性能优化方法,包括:
S101、接收到bio请求时,通过BASE_BIO模块将bio请求存入目标队列;
S102、当所述目标队列保存的bio请求数目大于预定阈值时,检测所述目标队列保存的bio请求是否存在相邻请求;
其中,所述检测所述目标队列保存的bio请求是否存在相邻请求,包括:
检测所述目标队列保存的bio请求是否存在位于同一扇区、同一磁道、同一柱面或者同一磁盘中的一者的bio请求;
若存在,则将位于同一扇区、同一磁道、同一柱面或者同一磁盘中的bio请求作为一组相邻请求。
具体的,在本实施例中,对IO请求进行排序,排序的原则是检测是否有相邻磁盘请求,比如若两个bio请求位于同一扇区、磁道、柱面或者磁盘,则视为相邻请求。
若存在,则执行S103、将相邻请求封装为virtblk_requet,并执行kick操作;
其中,检测到所述目标队列保存的bio请求存在相邻请求之后,还包括:
按照预定规则,将相邻请求动态移动到所述目标队列的前端。
其中,所述按照预定规则,将相邻请求动态移动到所述目标队列的前端,包括:
根据检测到的每个相邻请求的请求数目,设定每个相邻请求的优先级,并根据每个相邻请求的优先级,动态调整每个相邻请求在所述目标队列的保存位置。
具体的,在本实施例中,若存在相邻的IO请求,那么这些相邻请求会被动态的移动到队列的最前端,保证优先处理,然后将这些IO请求的封装为一个virtblk_requet,即把这些bio的内存描述信息都转化到vring中,执行kick操作(通知qemu处理IO)。这样做的目的让qemu一次就可以处理多个bio请求,减少了kick执行的次数,将更多的计算资源用于IO的处理。
若不存在,则执行S104、将每个bio请求封装为对应的virtblk_request,并执行kick操作。
其中,检测到所述目标队列保存的bio请求不存在相邻请求之后,还包括:
设置与每个bio请求对应的计时器;
若检测到计时器超时,则将与超时的计数器对应的bio请求的处理优先级设置为最高。
具体的,在本实施例中对于单个的bio请求设置对应的计时器,是为了防止大量顺序读写少量随机读写场景下,随机的IO请求长时间得不到响应,造成系统整体性能下降。
具体的,在介绍本实施例的优化方法之前,需要了解virtio_blk在客户机的原始IO路径。参见图2为本实施例提供的Virtio_blk IO路径图,如图2虚线1所示,IO经过文件系统处理后以bio的形式提交给通用块层;如图2虚线2所示在基于请求的IO路径中,多个相邻的bio请求首先会被封装到一个request结构,多个request会放到request队列并经过经过内核已支持的调度算法排序,经过排序的请求会通过q->request_fn继续向下,该函数已经被具体的底层模块实例化注册。对于Virtio_blk前端驱动而言,其注册的请求处理函数为virt_blk_request。该函数首先会将通用块层的请求封装为virtblk_request,具体实现原理为在virtblk_request结构保存了通用块层request中bio链表的首地址,接着会解析每一个bio中描述内存数据的segment信息,包括起始地址、页内偏移、长度。最后,virt_blk_request函数会将这些segment信息转化为virtio_queue中vring的信息,最后会通知qemu去处理此次IO请求。至此客户机完成了一次IO请求提交。
在上述virtio_blk的IO路径中基于请求的IO路径对于virtio框架没有存在的意义,理由如下:
1、对virtblk_request的封装其本质是将通用块层请求中bio的segment信息转化为virtqueue中vring的信息,使用和不使用通用块层请求对此次IO请求提交没有影响;
2、虽然通用块层会进行request的合并排序,考虑到宿主机在实际刷写磁盘的时候,每个IO都会经历宿主机的通用块层,对于客户机的这次合并排序,其作用是一致的,如果在客户机中直接在通用块上层进行基于bio的virtblk_request封装,避免了整个IO路径的重复冗余;
3、bio是描述一次完整IO的最小单位,不可再划分,因此不能再更高层次进行转发。
在本实施例中,通过开发BASE_BIO模块来解决上述问题,BASE_BIO模块是可配置安装的内核模块,跟普通的内核模块一样,既可以使用编译后insmod加载该模块的方式;也可以在将该模块的源码放置到内核源码树中,编写makefile文件,并在内核配置选项中打开该选项的方式。客户机内核块设备驱动初始化的流程中,当有IO下发的时候,就会进入BASE_BIO的业务流程。
如图3中虚线3(BASE_BIO)所示当bio通过q->make_request_fn进行提交时,实际是对virtblk_make_request回调函数的调用,就进入BASE_BIO模块的处理流程。该模块的功能主要包括:
1、将上层提交的bio请求暂存到一个队列中,在队列的长度到达阈值时,会对队列中暂存的IO请求进行排序。排序的原则是检测是否有相邻磁盘请求,比如若两个bio请求位于同一扇区、磁道、柱面或者磁盘,则视为相邻请求;
2、如果存在相邻的IO请求,那么这些请求会被动态的移动到队列的最前端,保证优先处理,然后将这些IO请求的封装为一个virtblk_requet,即把这些bio的内存描述信息都转化到vring中,执行kick操作(通知qemu处理IO)。这样做的目的让qemu一次就可以处理多个bio请求,减少了kick执行的次数,将更多的计算资源用于IO的处理;
3、对于不存在相邻的IO请求,那么一个bio对应一个virtblk_request,然后通知qemu去处理;同时,需要为这类bio设置计时器,当计时器超时后,这些bio的优先级会被设置为最高,优先被处理;这样设计的目的是为了防止大量顺序读写少量随机读写场景下,随机的IO请求长时间得不到响应,造成系统整体性能下降。
具体的,目前虚拟化IO性能优化的方法有各种各样的技术,对于kvm虚拟化平台,性能优化最有效的方法就是缩短IO在虚拟机和宿主机、宿主机和底层存储设备的IO路径,因此,在本实施例中基于virtio块设备IO虚拟化框架提出了的性能优化方法,将相邻的IO请求封装为一个virtblk_request,这样qemu一次就可以处理多个bio请求,减少了kick执行的次数,将更多的计算资源用于IO的处理,通过缩减虚拟机中的IO路径,从而缩减了IO响应延迟,提高虚拟化应用场景下存储系统的服务性能。
下面对本发明实施例提供的虚拟化IO性能优化系统进行介绍,下文描述的虚拟化IO性能优化系统与上文描述的虚拟化IO性能优化系统可以相互参照。
参见图4,本发明实施例提供的一种基于virtio_blk的虚拟化IO性能优化系统,包括:
Bio请求存入模块100,用于接收到bio请求时,通过BASE_BIO模块将bio请求存入目标队列;
相邻请求检测模块200,用于当所述目标队列保存的bio请求数目大于预定阈值时,检测所述目标队列保存的bio请求是否存在相邻请求;若存在,则触发第一封装模块;若不存在,则触发第二封装模块;
所述第一封装模块300,用于将相邻请求封装为virtblk_requet;
所述第二封装模块400,用于将每个bio请求封装为对应的virtblk_request;
执行模块500,用于对封装后的virtblk_requet执行kick操作。
基于上述技术方案,本方案还包括:
动态调整模块,用于按照预定规则,将相邻请求动态移动到所述目标队列的前端。
基于上述技术方案,所述动态调整模块根据检测到的每个相邻请求的请求数目,设定每个相邻请求的优先级,并根据每个相邻请求的优先级,动态调整每个相邻请求在所述目标队列的保存位置。
基于上述技术方案,本方案还包括:
计时器设置模块,用于设置与每个bio请求对应的计时器;
处理优先级调整模块,用于检测到计时器超时,则将与超时的计数器对应的bio请求的处理优先级设置为最高。
基于上述技术方案,所述相邻请求检测模块200通过检测所述目标队列保存的bio请求是否存在位于同一扇区、同一磁道、同一柱面或者同一磁盘中的一者的bio请求;若存在,则将位于同一扇区、同一磁道、同一柱面或者同一磁盘中的bio请求作为一组相邻请求。
本发明实施例提供的一种基于virtio_blk的虚拟化IO性能优化方法及系统,包括:接收到bio请求时,通过BASE_BIO模块将bio请求存入目标队列;当所述目标队列保存的bio请求数目大于预定阈值时,检测所述目标队列保存的bio请求是否存在相邻请求;若存在,则将相邻请求封装为virtblk_requet,并执行kick操作;若不存在,则将每个bio请求封装为对应的virtblk_request,并执行kick操作。
可见,在本实施例中,BASE_BIO模块是以IO最小单位bio为粒度进行的从客户机到宿主机的IO转发,实现客户机IO路径的最短化;将相邻请求封装为virtblk_requet,可以在执行kick操作时,让qemu一次处理多个bio请求,减少了kick执行的次数,将更多的计算资源用于IO的处理,使得virtio_blk的IO路径更加简洁清晰,从而客户机IO路径的最短化,也缩短了virtio_blk整个IO路径,大大降低了客户机到宿主机的IO响应延迟,提高了系统整体的IOPS性能。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (6)

1.一种基于virtio_blk的虚拟化IO性能优化方法,其特征在于,包括:
接收到bio请求时,通过BASE_BIO模块将bio请求存入目标队列;
当所述目标队列保存的bio请求数目大于预定阈值时,检测所述目标队列保存的bio请求是否存在相邻请求;
若存在,则将相邻请求封装为virtblk_reques t,并执行kick操作;若不存在,则将每个bio请求封装为对应的virtblk_request,并执行kick操作;
其中,检测到所述目标队列保存的bio请求存在相邻请求之后,还包括:
按照预定规则,将相邻请求动态移动到所述目标队列的前端;
其中,检测到所述目标队列保存的bio请求不存在相邻请求之后,还包括:
设置与每个bio请求对应的计时器;
若检测到计时器超时,则将与超时的计数器对应的bio请求的处理优先级设置为最高。
2.根据权利要求1所述的虚拟化IO性能优化方法,其特征在于,所述按照预定规则,将相邻请求动态移动到所述目标队列的前端,包括:
根据检测到的每个相邻请求的请求数目,设定每个相邻请求的优先级,并根据每个相邻请求的优先级,动态调整每个相邻请求在所述目标队列的保存位置。
3.根据权利要求1或2所述的虚拟化IO性能优化方法,其特征在于,检测所述目标队列保存的bio请求是否存在相邻请求,包括:
检测所述目标队列保存的bio请求是否存在位于同一扇区、同一磁道、同一柱面或者同一磁盘中的一者的bio请求;
若存在,则将位于同一扇区、同一磁道、同一柱面或者同一磁盘中的bio请求作为一组相邻请求。
4.一种基于virtio_blk的虚拟化IO性能优化系统,其特征在于,包括:
Bio请求存入模块,用于接收到bio请求时,通过BASE_BIO模块将bio请求存入目标队列;
相邻请求检测模块,用于当所述目标队列保存的bio请求数目大于预定阈值时,检测所述目标队列保存的bio请求是否存在相邻请求;若存在,则触发第一封装模块;若不存在,则触发第二封装模块;
所述第一封装模块,用于将相邻请求封装为virtblk_reques t;
所述第二封装模块,用于将每个bio请求封装为对应的virtblk_request;
执行模块,用于对封装后的virtblk_requet执行kick操作;
动态调整模块,用于按照预定规则,将相邻请求动态移动到所述目标队列的前端;
计时器设置模块,用于设置与每个bio请求对应的计时器;
处理优先级调整模块,用于检测到计时器超时,则将与超时的计数器对应的bio请求的处理优先级设置为最高。
5.根据权利要求4所述的虚拟化IO性能优化系统,其特征在于,
所述动态调整模块根据检测到的每个相邻请求的请求数目,设定每个相邻请求的优先级,并根据每个相邻请求的优先级,动态调整每个相邻请求在所述目标队列的保存位置。
6.根据权利要求4或5所述的虚拟化IO性能优化系统,其特征在于,
所述相邻请求检测模块通过检测所述目标队列保存的bio请求是否存在位于同一扇区、同一磁道、同一柱面或者同一磁盘中的一者的bio请求;若存在,则将位于同一扇区、同一磁道、同一柱面或者同一磁盘中的bio请求作为一组相邻请求。
CN201610659376.2A 2016-08-11 2016-08-11 一种虚拟化io性能优化方法及系统 Active CN106325974B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610659376.2A CN106325974B (zh) 2016-08-11 2016-08-11 一种虚拟化io性能优化方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610659376.2A CN106325974B (zh) 2016-08-11 2016-08-11 一种虚拟化io性能优化方法及系统

Publications (2)

Publication Number Publication Date
CN106325974A CN106325974A (zh) 2017-01-11
CN106325974B true CN106325974B (zh) 2020-02-07

Family

ID=57740764

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610659376.2A Active CN106325974B (zh) 2016-08-11 2016-08-11 一种虚拟化io性能优化方法及系统

Country Status (1)

Country Link
CN (1) CN106325974B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107562383B (zh) * 2017-09-05 2021-06-15 联想(北京)有限公司 信息处理方法、存储设备及存储介质
CN110309001B (zh) * 2018-03-27 2023-05-05 麒麟软件有限公司 一种基于Linux通用块层多队列的优化系统及方法
CN109032523B (zh) * 2018-07-26 2021-08-10 郑州云海信息技术有限公司 一种磁盘设备驱动方法、系统、装置及可读存储介质
WO2021232427A1 (en) * 2020-05-22 2021-11-25 Yangtze Memory Technologies Co., Ltd. Flush method for mapping table of ssd
CN117389694B (zh) * 2023-12-13 2024-04-05 麒麟软件有限公司 基于virtio-blk技术提升虚拟存储IO性能的方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4860190A (en) * 1985-09-03 1989-08-22 Fujitsu Limited Computer system for controlling virtual machines
CN101458635A (zh) * 2007-12-14 2009-06-17 韩国电子通信研究院 服务器虚拟环境的磁盘输入/输出调度器及其调度方法
CN103593226A (zh) * 2013-11-04 2014-02-19 国云科技股份有限公司 一种提高虚拟机磁盘io性能的方法
CN105550111A (zh) * 2015-12-16 2016-05-04 浪潮(北京)电子信息产业有限公司 虚拟环境下操作系统io性能基准的测试调优方法及系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4860190A (en) * 1985-09-03 1989-08-22 Fujitsu Limited Computer system for controlling virtual machines
CN101458635A (zh) * 2007-12-14 2009-06-17 韩国电子通信研究院 服务器虚拟环境的磁盘输入/输出调度器及其调度方法
CN103593226A (zh) * 2013-11-04 2014-02-19 国云科技股份有限公司 一种提高虚拟机磁盘io性能的方法
CN105550111A (zh) * 2015-12-16 2016-05-04 浪潮(北京)电子信息产业有限公司 虚拟环境下操作系统io性能基准的测试调优方法及系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
virtio相关;sdulibh;《https://blog.csdn.net/sdulibh/article/details/51802071》;20160701;1-21 *
块设备的读流程分析;Jessica程序猿;《https://www.cnblogs.com/wuchanming/p/3835713.html》;20140710;1-12 *

Also Published As

Publication number Publication date
CN106325974A (zh) 2017-01-11

Similar Documents

Publication Publication Date Title
CN106325974B (zh) 一种虚拟化io性能优化方法及系统
Boucher et al. Putting the" micro" back in microservice
US9594703B2 (en) Architecture and method for managing interrupts in a virtualized environment
US9519499B2 (en) Method for dispatching central processing unit of hotspot domain virtual machine and virtual machine system
US20180121366A1 (en) Read/write request processing method and apparatus
US8356120B2 (en) Mechanism for memory state restoration of virtual machine (VM)-controlled peripherals at a destination host machine during migration of the VM
US9098337B2 (en) Scheduling virtual central processing units of virtual machines among physical processing units
US20180024854A1 (en) Technologies for virtual machine migration
US8468524B2 (en) Inter-virtual machine time profiling of I/O transactions
US20120324071A1 (en) Managing resources in a distributed system using dynamic clusters
US20120180043A1 (en) Mechanism for Memory State Transfer of Virtual Machine-Controlled Peripherals During Migration of the Virtual Machine
US20120179855A1 (en) Mechanism for Memory Change Tracking During Migration of Virtual Machine (VM) with VM-Controlled Assigned Peripherals
US20160350292A1 (en) Method and apparatus for real-time data migration
US8498966B1 (en) Systems and methods for adaptively performing backup operations
US9417973B2 (en) Apparatus and method for fault recovery
US9201823B2 (en) Pessimistic interrupt affinity for devices
US9513953B2 (en) Reducing virtual machine suspension time in checkpoint system
US8447894B2 (en) Upgrading an elastic computing cloud system
US9032414B1 (en) Systems and methods for managing system resources allocated for backup validation
JP5931919B2 (ja) エラスティックコンピューティングクラウドシステムのアップグレード
US20170010992A1 (en) Power saving feature for storage subsystems
US20160124761A1 (en) Idle based latency reduction for coalesced interrupts
US9189405B2 (en) Placement of data in shards on a storage device
Patrascu et al. ReC2S: Reliable cloud computing system
KR101559929B1 (ko) 가상화 장치 및 방법

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant