CN106406981A - 一种读、写磁盘数据的方法及虚拟机监视器 - Google Patents

一种读、写磁盘数据的方法及虚拟机监视器 Download PDF

Info

Publication number
CN106406981A
CN106406981A CN201610828213.2A CN201610828213A CN106406981A CN 106406981 A CN106406981 A CN 106406981A CN 201610828213 A CN201610828213 A CN 201610828213A CN 106406981 A CN106406981 A CN 106406981A
Authority
CN
China
Prior art keywords
virtual machine
request
data
disk
sector
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.)
Pending
Application number
CN201610828213.2A
Other languages
English (en)
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.)
Shenzhen Shenxinfu Electronic Technology Co Ltd
Original Assignee
Shenzhen Shenxinfu Electronic Technology 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 Shenzhen Shenxinfu Electronic Technology Co Ltd filed Critical Shenzhen Shenxinfu Electronic Technology Co Ltd
Priority to CN201610828213.2A priority Critical patent/CN106406981A/zh
Publication of CN106406981A publication Critical patent/CN106406981A/zh
Pending legal-status Critical Current

Links

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/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/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明实施例公开了一种读、写磁盘数据的方法及虚拟机监视器,用于提高虚拟磁盘的IO性能。本发明实施例为虚拟磁盘仿真Cache机制,在读取数据时,预读取部分数据缓存Cache中,当通过虚拟机监视器代理虚拟机提交读取磁盘数据的IO请求时,先检查对应Cache,如果能命中Cache中缓存的磁盘数据,则返回Cache中缓存的数据给虚拟机。在写数据时,虚拟机监视器将缓存的写磁盘数据的IO请求中扇区连续的IO请求合并,并将合并的各IO请求需要写入的数据缓存到Cache中,将该合并后的IO请求提交给主机操作***,完成虚拟磁盘数据的异步写。本发明不再需要每次都向主机操作***提交读、写磁盘数据的IO请求,从而减少了IO***调用及物理磁盘寻道,提高了虚拟机磁盘IO的性能。

Description

一种读、写磁盘数据的方法及虚拟机监视器
技术领域
本发明涉及计算机领域,尤其涉及一种读、写磁盘数据的方法及虚拟机监视器。
背景技术
在虚拟化环境中,虚拟机(英文:Virtual Machine,简称:VM)使用的是虚拟磁盘镜像,包括多种格式,例如:raw、vdi、wmdk、vvfat、cow、qcow、qcow2、qed、fvd等等,虚拟磁盘镜像依赖于主机文件***的实现。
虚拟机读写虚拟磁盘中的数据时,CPU会触发VM-EXIT,导致CPU在虚拟机与主机之间切换,虚拟机切换到主机后,主机上的虚拟机监视器(hypervisor)程序提供虚拟设备的仿真,代理虚拟机向主机操作***提交磁盘输入输出(英文:Input/Output,简称:IO)请求,完成虚拟磁盘数据的读写。
然而,虚拟机的某些特性,包括:主机上hypervisor程序对虚拟磁盘设备的仿真,虚拟化存储协议栈中的冗余等,都会降低虚拟机读写虚拟磁盘数据的性能。
测试发现,当一台主机上运行多台虚拟机时,虚拟磁盘IO性能瓶颈问题表显得尤为明显,并可能会严重影响虚拟机的使用。
发明内容
本发明实施例提供了一种读、写磁盘数据的方法及虚拟机监视器,在应用层为每个虚拟磁盘实现一个缓存(Cache)机制,能够提高虚拟磁盘的IO性能。
第一方面,本发明实施例提供了一种读磁盘数据的方法,该方法包括:
虚拟机监视器接收虚拟机读取磁盘数据的IO请求,检查IO请求需要读取的扇区是否在缓存扇区中,其中,缓存扇区为Cache中缓存的磁盘数据所对应的扇区,所述Cache为虚拟机的虚拟磁盘的Cache;若IO请求需要读取的扇区在缓存扇区中,则虚拟机监视器从Cache缓存的磁盘数据中获取目标数据,将目标数据返回给虚拟机。
本发明实施例的虚拟机在向从主机请求读取数据时,当通过虚拟机监视器代理虚拟机提交读取磁盘数据的IO请求时,先检查对应Cache,如果能命中Cache中缓存的磁盘数据,则直接返回Cache中缓存的数据给虚拟机。使虚拟机监视器在接收到虚拟机的读取数据时,不再每次都向主机操作***提交读取磁盘数据的IO请求,从而减少了IO***调用及物理磁盘寻道,提高虚拟机磁盘IO的性能。
可选的,在虚拟机监视器接收虚拟机读取磁盘数据的IO请求之前,还包括:
虚拟机监视器接收虚拟机读取磁盘数据的第一IO请求;虚拟机监视器代理虚拟机向主机的操作***提交读取磁盘数据的第一IO请求;虚拟机监视器根据第一IO请求从主机的磁盘中预读取一部分磁盘数据,将预读取的一部分磁盘数据缓存到Cache中。
因此,本发明实施例为虚拟磁盘仿真Cache机制,在读取数据时,会预读取部分数据缓存Cache中,以在后续虚拟机提交读取磁盘数据的IO请求时,可以先检查是否能命中Cache中的数据,如果能命中,则直接从Cache中获取数据返回给虚拟机,而无需每次都将IO请求提交给主机操作***,从而减少了IO***调用及物理磁盘寻道,提高虚拟机磁盘IO的性能。
可选的,所述第一IO请求中携带请求访问的目标扇区;虚拟机监视器根据第一IO请求从主机的磁盘中预读取一部分磁盘数据包括:虚拟机监视器确定目标扇区所匹配的目标历史IO信息,目标历史IO信息中包括起始扇区和长度,目标扇区属于目标历史IO信息中的扇区;虚拟机监视器从主机的磁盘中预读取目标历史IO信息中的所有扇区的磁盘数据。
可选的,该方法还包括:虚拟机监视器记录虚拟机在启动过程中的读IO信息;虚拟机监视器从读IO信息中选出多个连续的读IO信息,将每个连续的读IO信息合并成一条可预读的历史IO信息;将多条可预读的历史IO信息排序并形成历史IO信息文件;虚拟机监视器确定目标扇区所匹配的目标历史IO信息包括:虚拟机监视器从目标IO信息文件中查找到目标扇区所匹配的可预读的历史IO信息,目标扇区所匹配的可预读的历史IO信息为目标历史IO信息。
因此,本发明可以根据历史IO信息来确定预读取的数据,可以提高Cache命中的几率。
可选的,记录每条可预读的历史IO信息的命中次数,将命中次数最少的,或命中次数低于命中阈值的可预读历史IO信息删除。从而可以控制历史IO信息总数,有利于提高对历史IO信息进行排序,采用二分法来提高匹配算法的效率。
第二方面,本发明实施例提供了一种写磁盘数据的方法,包括:
虚拟机监视器接收写磁盘的IO请求;虚拟机监视器对写磁盘的IO请求进行缓存;虚拟机监视器将各写磁盘的IO请求中扇区连续的写磁盘的IO请求进行合并,并将合并的各写磁盘的IO请求需要写入的数据合并存储在虚拟机的虚拟磁盘的Cache中;虚拟机监视器将合并后的写磁盘的IO请求提交给主机的操作***,并将Cache中合并存储的需要写入的数据写入主机的磁盘中。
本发明实施例在虚拟机监视器代理虚拟机向主机操作***提写磁盘数据的IO请求时,如果多次写磁盘的数据是连续的,则把数据合并在一个Cache中,并将多次写磁盘数据的IO请求会合并,之后将该合并后的IO请求提交给主机操作***,完成虚拟磁盘数据的异步写。本发明采用虚拟磁盘Cache机制,使虚拟机监视器在接收到虚拟机的写入数据的IO请求时,不再每次都向主机操作***提交读取磁盘数据的IO请求,从而减少了IO***调用及物理磁盘寻道,提高虚拟机磁盘IO的性能。
可选的,当扇区连续的写磁盘的IO请求中各写磁盘的IO请求需要写入的数据总大小未超过Cache的大小时,虚拟机监视器将扇区连续的写磁盘的IO请求进行合并。
第三方面,本发明实施例提供了一种虚拟机监视器,所述虚拟机监视器的具体实现对应于上述第一方面提供的读磁盘数据的方法的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件程序实现。硬件和软件包括一个或多个与上述功能相对应的单元模块,所述单元模块可以是软件和/或硬件。
一种可能的实现中,所述虚拟机监视器包括:
接收模块,用于接收虚拟机读取磁盘数据的IO请求;
缓存检查模块,用于检查IO请求需要读取的扇区是否在缓存扇区中,缓存扇区为Cache中缓存的磁盘数据对应的扇区,Cache为虚拟机的虚拟磁盘的Cache;
数据获取模块,用于当IO请求需要读取的扇区在缓存扇区中时,从Cache缓存的磁盘数据中获取目标数据;
发送模块,用于将目标数据返回给虚拟机。
第四方面,本发明实施例提供的虚拟机监视器,还用于实现对应于上述第二方面提供的写磁盘数据的方法的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件程序实现。硬件和软件包括一个或多个与上述功能相对应的单元模块,所述单元模块可以是软件和/或硬件。
一种可能的实现中,所述虚拟机监视器包括:
接收模块,用于接收写磁盘的IO请求;
IO请求缓存模块,用于对写磁盘的IO请求进行缓存;
IO请求合并模块,用于将各写磁盘的IO请求中扇区连续的写磁盘的IO请求进行合并;
数据缓存模块,用于将合并的各写磁盘的IO请求需要写入的数据合并存储在虚拟机的虚拟磁盘的Cache中;
IO请求提交模块,用于将合并后的写磁盘的IO请求提交给主机的操作***,并将Cache中合并存储的需要写入的数据写入主机的磁盘中。
从以上技术方案可以看出,本发明实施例具有以下优点:
本发明实施例为虚拟磁盘仿真Cache机制,在读取数据时,当通过虚拟机监视器代理虚拟机提交读取磁盘数据的IO请求时,先检查对应Cache,如果能命中Cache中缓存的磁盘数据,则直接返回Cache中缓存的数据给虚拟机。另外,在写数据时,虚拟机监视器代理虚拟机向主机操作***提写磁盘数据的IO请求时,如果多次写磁盘的数据是连续的,则将多次写磁盘数据的IO请求合并,之后将该合并后的IO请求提交给主机操作***,完成虚拟磁盘数据的异步写。本发明采用虚拟磁盘Cache机制,使虚拟机监视器在接收到虚拟机的读取数据或写入数据的IO请求时,不再每次都向主机操作***提交读取磁盘数据的IO请求,从而减少了IO***调用及物理磁盘寻道,提高虚拟机磁盘IO的性能。
附图说明
图1为本发明实施例中虚拟机监视器Hypervisor的作用示意图;
图2为本发明实施例中对镜像文件的三种IO cache方式;
图3为本发明实施例中虚拟磁盘缓存合并功能的应用层实现原理图;
图4为本发明实施例中虚拟磁盘缓存-合并功能的实现位置;
图5为本发明实施例中读磁盘数据的方法流程图;
图6为本发明实施例中精准预读及cache算法示意图;
图7为本发明实施例中写磁盘数据的方法流程图;
图8为本发明实施例中写合并及cache算法示意图;
图9为本发明实施例中虚拟机监视器的一种功能模块结构图;
图10为本发明实施例中虚拟机监视器的另一种功能模块结构图。
具体实施方式
为了使本发明的技术方案及有益效果更加清楚,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
Hypervisor是一种运行在基础物理服务器和操作***之间的中间软件层,可允许多个操作***和应用共享硬件,也可叫做虚拟机监视器(英文:virtual machine monitor,简称:VMM)。如图1所示,Hypervisor可以访问服务器上包括磁盘和内存在内的所有物理设备,不但协调着这些硬件资源的访问,也同时在各个虚拟机之间施加防护。当服务器启动并执行Hypervisor时,它会加载所有虚拟机客户端的操作***同时会分配给每一台虚拟机适量的内存,CPU,网络和磁盘。
Hypervisor一般通过三种方式实现主机对镜像文件(image)的IO缓存(cache):none,writeback和writethrough,下图结合图2详细的阐述三种不同的cache方式的区别。
writeback采用了客户端(guest)和主机(host)两层的页高速缓冲存储器(pagecache),即同一个文件会存在两份cache,但这基本是没有必要的,并且可能会造成数据的不一致性。none和writethrough都会绕过主机层的页高速缓冲存储器。例如开源项目kvm默认的cache方式是writethrouh,虽然这种方式不是最安全的,不会造成数据的不一致性,但性能也是最差的。用户综合数据的安全性和性能,一般选择使用none模式。
图2中所描述的主机对镜像文件(image)的IO cache方式都是由操作***层实现和提供的;针对虚拟磁盘的IO性能问题,本发明提供一种在应用层进行优化的方法,主要实现包括:
本发明在Hypervisor的应用层为每个虚拟磁盘(Virtual Disk Devices)实现一个缓存(Cache)机制。图3为虚拟磁盘缓存-合并(Cache-Merge)的功能应用层实现示意图,在主机的Hypervisor的应用层分别为客户端1和客户端2的虚拟磁盘实现一个缓存-合并(Cache-Merge),如图3所示,每个缓存-合并的容量为32M。具体的,虚拟磁盘缓存-合并功能的实现位置如图4所示,Hypervisor通过直接内存访问(英文:direct memory access,简称:DMA)或可编程输入输出访问(英文:Programming Input/Output,简称:PIO)虚拟存储块(block)中的缓存-合并(Cache-Merge),再通过操作***访问物理磁盘。
当需要向物理磁盘写入数据或从物理磁盘读取数据时,可以通过缓存-合并与主机的操作***一起将数据写入主机的块存储设备,或从块存储设备中读取数据。具体过程为:
Hypervisor在应用层代理虚拟机向主机操作***提交读取磁盘数据的IO请求时,根据算法预测,预读取一部分磁盘数据,更新到虚拟磁盘(Virtual Disk Devices)的Cache中,下次代理虚拟机提交来的读取磁盘数据的IO请求时,先检查对应Cache,如果命中(即Cache中有虚拟机提交来的IO请求所请求的数据),则直接返回Cache中缓存的数据给虚拟机,不用再向主机操作***提交读取磁盘数据的IO请求,从而减少了IO***调用及物理磁盘寻道。
Hypervisor在应用层代理虚拟机向主机操作***提写磁盘数据的IO请求时,把数据更新到虚拟磁盘(Virtual Disk Devices)的Cache中,如果多次写磁盘的数据是连续的,则把数据合并在一个Cache中,同时触发一个定时器,在一定时间内的多次写磁盘数据的IO请求会合并为一次写磁盘数据的IO请求中,由定时器回调提交给主机操作***,完成虚拟磁盘数据的异步写。
下面结合图5对本发明实施例中的读取磁盘数据的过程进行详细介绍。
原有的虚拟机磁盘缺少了真实硬盘所具有的cache物理特性,本方案为虚拟磁盘仿真一种真实硬盘cache机制,用于提高虚拟机磁盘IO的性能。具体实现如下:
501、Hypervisor接收虚拟机读取磁盘数据的IO请求;
虚拟机在启动时,同时会加载虚拟机的虚拟磁盘的Cache,Cache中缓存了从物理磁盘预读取的磁盘数据,预读取的磁盘数据中包括数据在物理磁盘中存储的扇区信息以及对应的数据。当Hypervisor接收虚拟机读取磁盘数据的IO请求时,执行步骤502。
502、Hypervisor检查IO请求需要读取的扇区是否在缓存扇区中;
Hypervisor接收到虚拟机读取磁盘数据的IO请求后,并不将该IO请求提交给主机操作***,而是检查该IO请求需要读取的扇区是否在缓存扇区中,缓存扇区为Cache中缓存的磁盘数据对应的扇区。
503、若IO请求需要读取的扇区在缓存扇区中,则Hypervisor从Cache中缓存的磁盘数据中获取目标数据,将目标数据返回给虚拟机。
若虚拟磁盘的Cache中缓存有当前IO请求需要读取的扇区的数据,则Hypervisor从Cache中获取需要读取的目标数据,将其返回给虚拟机。
可选的,Cache中的缓存的预读取的磁盘数据是之前Hypervisor根据虚拟机读取磁盘数据的IO请求,从物理磁盘中读取的。具体预读取的原理和过程如下:
基于80/20原理,同一台虚拟机在每次启动过程中,读取磁盘的数据都是非常集中的和几乎相同的,所以基于虚拟机启动的历史读IO信息,可以实现精准的预读磁盘数据,大大提高Cache命中率,具体实现:
Hypervisor记录虚拟机在启动过程中的每次读IO信息(起始扇区号,长度),先确定连续的读IO信息,将每个连续的读IO信息合并成一条可预读的历史IO信息,然后把所有的可预读的历史IO信息(起始扇区号,长度)排序,形成历史IO信息文件,保存该文件,该文件是虚拟机启动时,可以与镜像文件一起加载的文件。
例如:第一次启动虚拟机时,收集到之前历史的读IO信息为扇区1到扇区5,扇区2-扇区8、扇区16到扇区32。从这些扇区中挑选出两个连续的扇区:扇区1-8,扇区16-32,具体是将这些扇区中有重叠的扇区的进行合并组成连续的扇区。将这些连续的扇区按照扇区顺序进行排序,保存到历史IO信息文件中。
虚拟机再次启动之前,先加载保存的历史IO信息文件。当Hypervisor接收到虚拟机读取磁盘数据的IO请求(第一IO请求),Hypervisor代理该虚拟机向主机操作***提交读取磁盘数据的所述第一IO请求,该IO请求中包括虚拟机请求访问的目标扇区。
Hypervisor代理虚拟机读磁盘时,先根据虚拟机需要访问的目标扇区,通过匹配算法(可以是二分查找法)从加载的历史IO信息中查找到目标扇区所匹配的目标历史IO信息。具体的,即找到虚拟机需要访问的目标扇区是否属于某条可预读的历史IO信息,若属于某条可预读的历史IO信息,则该条可预读的历史IO信息为目标扇区所匹配的目标历史IO信息。
Hypervisor代理虚拟机从物理磁盘中将目标历史IO信息中包含的所有扇区的数据全部预读取出来,将预读取出来的数据保存到虚拟磁盘的Cache中。同时,将第一IO请求中需要读取的目标扇区的磁盘数据返回给虚拟机。因此,是由目标历史IO信息确定预读取的数据的多少。
例如:历史IO信息文件中,保存有扇区1-8,扇区16-32,扇区64-100等历史IO信息。Hypervisor接收到的虚拟机读取磁盘数据的IO请求中,请求读取的目标扇区为第1扇区,Hypervisor确定第1扇区属于扇区1-8中的扇区,因此1-8扇区为目标历史IO信息。Hypervisor从物理磁盘中将目标历史IO信息中的1-8扇区的数据全部读取出来,缓存到虚拟磁盘Cache中。
因此,在Hypervisor接收到IO请求时,若需要从物理磁盘中读取数据时,不仅仅是读取目标扇区的数据,而是预读取目标历史IO信息中的所有扇区的数据,将预读取的数据缓存到Cache中。
图6为读取磁盘数据的示意图。如图6中的步骤1和步骤2所示,Hypervisor在接收到下一次IO请求,或后续的接收到IO请求时,都将执行步骤501至步骤503,检查是否能命中Cache中缓存的磁盘数据,若能命中,则直接从Cache中读取数据返回给虚拟机。如步骤3所示,若不能命中Cache,则Hypervisor代理虚拟机向主机操作***提交IO请求之前,检查当前的IO请求的扇区是否能匹配到历史IO信息数组中的某条可预读的历史IO信息;如步骤4、步骤5和步骤6所示,若匹配到某条可预读的历史IO信息,表示可预读,则从物理磁盘中读取该条可预读的历史IO信息中所有扇区中的数据,将数据缓存到Cache中;如步骤7所示,将IO请求所请求读取的磁盘数据返回给虚拟机。
可选的,如步骤8和步骤9所示,若在没有命中读缓存,又若匹配不到可预读的历史IO信息,即不可预读的情况下,Hypervisor将IO请求提交给主机操作***,从物理磁盘中读取该IO请求所请求读取的数据,将从物理磁盘中读取的数据返回给虚拟机。
可选的,在匹配历史IO信息时,通过给每条可预读的历史IO信息计数,每匹配到一次(即每命中一次)可预读的历史IO信息,把该条可预读的历史IO信息的引用计数加1,把很少匹配到的可预读的历史IO信息项删除(可以是将最少匹配到的可预读的历史IO信息删除,也可以是将计数少于命中次数阈值的可预读的历史IO信息删除),以控制历史IO信息总数,提高匹配算法的效率。
本发明实施例为虚拟磁盘仿真Cache机制,在Hypervisor应用层为虚拟磁盘实现实现的精准读预算法和Cache机制:记录虚拟机启动过程中的读IO信息(起始扇区号,长度),合并连续的读IO信息、排序并保存;基于历史读IO信息,实现一套精准读预算法;在虚拟机启动过程中通过精准预读算法,提高读IO的Cache命中率(命中率超过90%),减少Hypervisor对主机物理磁盘的IO请求(减少IO***调用及物理磁盘寻道消耗),大大提高虚拟磁盘读IO性能,加快虚拟机启动速度;并且,当同时大批量启动虚拟机时,可以解决主机磁盘IO风暴的问题。
下面结合图7对本发明实施例中的写磁盘数据的过程进行详细介绍。
701、Hypervisor接收写磁盘的IO请求;
当虚拟机向虚拟磁盘写数据时,Hypervisor会接收到一个又一个的写磁盘的IO请求。
702、Hypervisor将各写磁盘的IO请求中扇区连续的写磁盘的IO请求进行合并,将合并的各写磁盘的IO请求需要写入的数据合并存储在虚拟机的虚拟磁盘的Cache中;
Hypervisor在应用层通过写请求缓存排队的方式,将一段时间内的写请求进行缓存,并对扇区连续的写请求进行合并,并将这些合并的IO请求对应的需要写入的数据缓存在虚拟磁盘的Cache中。并按照先入先出(First Input First Output,fifo)队列的顺序排队写入磁盘镜像文件,保证IO完成时不乱序,保证虚拟磁盘数据写入的正确性。
703、Hypervisor将合并后的写磁盘的IO请求提交给主机的操作***,将所述Cache中合并存储的需要写入的数据写入所述主机的磁盘中。
在合并IO请求的同时,触发一个定时器,由定时器回调将合并后的IO请求提交给主机操作***,完成虚拟磁盘数据的异步写。
需要说明的是,在合并IO请求时,以下为可合并的情形:多个IO请求的写入目的扇区为包含或被包含的关系;或多个IO请求的写入目的扇区刚好可拼接;另外,合并的IO请求的数据总大小未超过Cache-Merge中单个Cache的大小。
以下为不可合并的情形:合并后大小超过Cache-Merge中单个Cache的大小;或多个IO请求的写入目的扇区交叉重叠。
图8为写磁盘数据的示意图。如图8所示,在Merge链表中包含多个Cache单元,组成Cache-Merge。步骤1为当前接收的IO请求可与最后一个Cache的数据合并,则将该IO请求的数据缓存到最后一个Cache中,并将其IO请求进行合并,进入写IO协程排队。步骤2为当前接收的IO请求不可合并,则在Merge链表中追加Cache,将该IO请求的数据写入该Cache中;步骤3为如果free链表没有Cache了,则将Merge链表的第一个节点的数据写入磁盘。
在Hypervisor应用层为虚拟磁盘实现写IO合并的Cache机制,有如下有益效果:(1)虚拟机写IO,数据不是立即保存到主机物理磁盘,而是先缓存在Hypervisor应用层的Cache中,提高虚拟机保存小文件(大小一般为几十MB)的性能20-40倍;(2)解决虚拟机遇到突发的大量写IO而出现卡顿的问题,改善用户体验;(3)虚拟磁盘写连续数据时,采用写IO合并机制,把多次写IO的数据合并缓存在一个Cache中,一次提交给主机(减少IO***调用及物理磁盘寻道消耗),大大提高虚拟磁盘写IO性能。
对本发明的实现进行测试,结果如下:
虚拟机(Windows和Linux)启动过程中,虚拟机读取磁盘数据命中磁盘Cache的概率超过90%,极大减少了Hypervisor在应用层代理虚拟机向主机操作***提交读取磁盘数据的IO请求数,可以大大提高虚拟机启动时的读磁盘IO性能;当同时大批量启动虚拟机时,可以部分解决磁盘IO风暴的问题;
虚拟机(Windows和Linux)运行过程中,特别是在频繁写磁盘数据的环境中,Hypervisor在应用层合并虚拟机多次写磁盘数据的IO请求的实现方案,也能明显提高虚拟机磁盘IO性能,性能提高幅度由虚拟机写数据的频繁度决定:(1)在虚拟数据库服务器环境中测试,数据库***操作的IO性能提高了一倍多,高于相同硬件配置下vmware环境中的数据库服务器数据库***操作的IO性能(请参考表一中的测试数据);(2)虚拟机保存小文件(大小一般为几十MB)的性能提高了20-40倍。
虚拟机正常的读写虚拟磁盘,通过Hypervisor访问存储着虚拟磁盘数据的主机物理磁盘(主要为寻道时间),访问时间为毫秒级;
Hypervisor在Block API层,预读取多一些数据缓存到Cache与不预读取的正常读取数据相比,多花的时间在微秒级到毫秒级之间;而命中Cache,拷贝数据给虚拟机所花的时间是纳秒级,读IO命中率越高,虚拟磁盘性能提升越多。
不管是预读取还是写合并,虚拟磁盘缓存-合并(Cache-Merge)功能都可以大大减少Hypervisor代理向主机请求IO的次数(减少***调用及物理磁盘寻道的消耗),所以可以提高虚拟磁盘的性能。
下面表1给出一组测试对比数据:
表1
以上是对本发明实施例中的读取磁盘数据的方法,和写磁盘数据的方法的介绍,下面对从功能结构角度对本发明实施例中的虚拟机监视器进行介绍。
本发明实施例中的虚拟机监视器可以是运行在基础物理服务器和操作***之间的中间软件层Hypervisor,也可以是软硬件结合的功能模块。
一方面,本发明实施例中的虚拟机监视器9的具体实现对应于上述图5至图6所提供的读磁盘数据的方法的功能。一种可能的实现中,所述虚拟机监视器包括:
接收模块901,用于接收虚拟机读取磁盘数据的IO请求;
缓存检查模块902,用于检查IO请求需要读取的扇区是否在缓存扇区中,缓存扇区为Cache中缓存的磁盘数据对应的扇区,Cache为虚拟机的虚拟磁盘的Cache;
数据获取模块903,用于当IO请求需要读取的扇区在缓存扇区中时,从Cache缓存的磁盘数据中获取目标数据;
发送模块904,用于将目标数据返回给虚拟机。
可选的,在一些具体的实施中,接收模块901,还用于在接收虚拟机读取磁盘数据的IO请求之前,接收虚拟机读取磁盘数据的第一IO请求;虚拟机监视器还包括:IO请求提交模块905,用于代理虚拟机向主机的操作***提交读取磁盘数据的第一IO请求;预读取模块906,用于根据第一IO请求从主机的磁盘中预读取一部分磁盘数据,将预读取的一部分磁盘数据缓存到Cache中。
可选的,在一些具体的实施中,接收模块901,还用于在接收虚拟机读取磁盘数据的IO请求之前,接收虚拟机读取磁盘数据的第一IO请求,第一IO请求中携带请求访问的目标扇区;预读取模块906包括:历史IO信息确定单元9061,用于确定目标扇区所匹配的目标历史IO信息;预读取单元9062,用于从主机的磁盘中预读取目标历史IO信息中的所有扇区的磁盘数据,目标历史IO信息中包括起始扇区和长度,目标扇区属于目标历史IO信息中的扇区。
可选的,在一些具体的实施中,虚拟机监视器还包括:IO信息记录模块907,用于记录虚拟机在启动过程中的读IO信息;历史IO信息生成模块908,用于从读IO信息中选出多个连续的读IO信息,将每个连续的读IO信息合并成一条可预读的历史IO信息,将多条可预读的历史IO信息排序并形成历史IO信息文件;历史IO信息确定单元9061,具体用于从目标IO信息文件中查找到目标扇区所匹配的可预读的历史IO信息,目标扇区所匹配的可预读的历史IO信息为目标历史IO信息。
可选的,在一些具体的实施中,虚拟机监视器还包括:命中次数记录模块909,用于记录每条可预读的历史IO信息的命中次数,将命中次数最少的,或命中次数低于命中阈值的可预读历史IO信息删除。从而可以控制历史IO信息总数,提高匹配算法的效率。
另一方面,本发明实施例中的虚拟机监视器10的具体实现对应于上述图7至图8所提供的写磁盘数据的方法的功能。一种可能的实现中,所述虚拟机监视器包括:
接收模块1001,用于接收写磁盘的IO请求;
IO请求缓存模块1002,用于对写磁盘的IO请求进行缓存;
IO请求合并模块1003,用于将各写磁盘的IO请求中扇区连续的写磁盘的IO请求进行合并;
数据缓存模块1004,用于将合并的各写磁盘的IO请求需要写入的数据合并存储在虚拟机的虚拟磁盘的Cache中;
IO请求提交模块1005,用于将合并后的写磁盘的IO请求提交给主机的操作***,并将Cache中合并存储的需要写入的数据写入主机的磁盘中。
可选的,在一些具体的实施中,IO请求合并模块1003,具体用于当扇区连续的写磁盘的IO请求中,各写磁盘的IO请求需要写入的数据总大小未超过Cache的大小时,将扇区连续的写磁盘的IO请求进行合并。
需要说明的是,虚拟机监视器9和虚拟机监视器10所具备的功能可以集成在一个虚拟机监视器上实现。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的***,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (12)

1.一种读磁盘数据的方法,其特征在于,包括:
虚拟机监视器Hypervisor接收虚拟机读取磁盘数据的IO请求;
所述虚拟机监视器检查所述IO请求需要读取的扇区是否在缓存扇区中,所述缓存扇区为Cache中缓存的磁盘数据对应的扇区,所述Cache为所述虚拟机的虚拟磁盘的Cache;
若所述IO请求需要读取的扇区在所述缓存扇区中,则所述虚拟机监视器从所述Cache缓存的所述磁盘数据中获取目标数据,将所述目标数据返回给所述虚拟机。
2.根据权利要求1所述的方法,其特征在于,在所述虚拟机监视器接收虚拟机读取磁盘数据的IO请求之前,还包括:
所述虚拟机监视器接收虚拟机读取磁盘数据的第一IO请求;
虚拟机监视器代理所述虚拟机向主机的操作***提交读取磁盘数据的所述第一IO请求;
所述虚拟机监视器根据所述第一IO请求从所述主机的磁盘中预读取一部分磁盘数据,将预读取的所述一部分磁盘数据缓存到所述Cache中。
3.根据权利要求2所述的方法,其特征在于,所述第一IO请求中携带请求访问的目标扇区;
所述虚拟机监视器根据所述第一IO请求从所述主机的磁盘中预读取一部分磁盘数据包括:
所述虚拟机监视器确定所述目标扇区所匹配的目标历史IO信息,所述目标历史IO信息中包括起始扇区和长度,所述目标扇区属于所述目标历史IO信息中的扇区;
所述虚拟机监视器从所述主机的磁盘中预读取所述目标历史IO信息中的所有扇区的磁盘数据。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
所述虚拟机监视器记录虚拟机在启动过程中的读IO信息;
所述虚拟机监视器从所述读IO信息中选出多个连续的读IO信息,将每个连续的读IO信息合并成一条可预读的历史IO信息;
将多条所述可预读的历史IO信息排序并形成历史IO信息文件;
所述虚拟机监视器确定所述目标扇区所匹配的目标历史IO信息包括:
所述虚拟机监视器从所述目标IO信息文件中查找到所述目标扇区所匹配的可预读的历史IO信息,所述目标扇区所匹配的可预读的历史IO信息为所述目标历史IO信息。
5.一种写磁盘数据的方法,其特征在于,包括:
虚拟机监视器接收写磁盘的IO请求;
所述虚拟机监视器对所述写磁盘的IO请求进行缓存;
所述虚拟机监视器将各写磁盘的IO请求中扇区连续的写磁盘的IO请求进行合并,并将合并的各写磁盘的IO请求需要写入的数据合并存储在虚拟机的虚拟磁盘的Cache中;
所述虚拟机监视器将合并后的写磁盘的IO请求提交给主机的操作***,并将所述Cache中合并存储的所述需要写入的数据写入所述主机的磁盘中。
6.根据权利要求5所述的方法,其特征在于,所述虚拟机监视器将各写磁盘的IO请求中扇区连续的写磁盘的IO请求进行合并包括:
当所述扇区连续的写磁盘的IO请求中各写磁盘的IO请求需要写入的数据总大小未超过所述Cache的大小时,所述虚拟机监视器将所述扇区连续的写磁盘的IO请求进行合并。
7.一种虚拟机监视器,其特征在于,包括:
接收模块,用于接收虚拟机读取磁盘数据的IO请求;
缓存检查模块,用于检查所述IO请求需要读取的扇区是否在缓存扇区中,所述缓存扇区为Cache中缓存的磁盘数据对应的扇区,所述Cache为所述虚拟机的虚拟磁盘的Cache;
数据获取模块,用于当所述IO请求需要读取的扇区在所述缓存扇区中时,从所述Cache缓存的所述磁盘数据中获取目标数据;
发送模块,用于将所述目标数据返回给所述虚拟机。
8.根据权利要求7所述的虚拟机监视器,其特征在于,
所述接收模块,还用于在接收虚拟机读取磁盘数据的IO请求之前,接收虚拟机读取磁盘数据的第一IO请求;
所述虚拟机监视器还包括:
IO请求提交模块,用于代理所述虚拟机向主机的操作***提交读取磁盘数据的所述第一IO请求;
预读取模块,用于根据所述第一IO请求从所述主机的磁盘中预读取一部分磁盘数据,将预读取的所述一部分磁盘数据缓存到所述Cache中。
9.根据权利要求8所述的虚拟机监视器,其特征在于:
所述接收模块,还用于在接收虚拟机读取磁盘数据的IO请求之前,接收虚拟机读取磁盘数据的第一IO请求,所述第一IO请求中携带请求访问的目标扇区;
所述预读取模块包括:
历史IO信息确定单元,用于确定所述目标扇区所匹配的目标历史IO信息;
预读取单元,用于从所述主机的磁盘中预读取所述目标历史IO信息中的所有扇区的磁盘数据,所述目标历史IO信息中包括起始扇区和长度,所述目标扇区属于所述目标历史IO信息中的扇区。
10.根据权利要求9所述的虚拟机监视器,其特征在于,所述虚拟机监视器还包括:
IO信息记录模块,用于记录虚拟机在启动过程中的读IO信息;
历史IO信息生成模块,用于从所述读IO信息中选出多个连续的读IO信息,将每个连续的读IO信息合并成一条可预读的历史IO信息,将多条所述可预读的历史IO信息排序并形成历史IO信息文件;
所述历史IO信息确定单元,具体用于从所述目标IO信息文件中查找到所述目标扇区所匹配的可预读的历史IO信息,所述目标扇区所匹配的可预读的历史IO信息为所述目标历史IO信息。
11.一种虚拟机监视器,其特征在于,包括:
接收模块,用于接收写磁盘的IO请求;
IO请求缓存模块,用于对所述写磁盘的IO请求进行缓存;
IO请求合并模块,用于将各写磁盘的IO请求中扇区连续的写磁盘的IO请求进行合并;
数据缓存模块,用于将合并的各写磁盘的IO请求需要写入的数据合并存储在虚拟机的虚拟磁盘的Cache中;
IO请求提交模块,用于将合并后的写磁盘的IO请求提交给主机的操作***,并将所述Cache中合并存储的所述需要写入的数据写入所述主机的磁盘中。
12.根据权利要求11所述的虚拟机监视器,其特征在于:
所述IO请求合并模块,具体用于当所述扇区连续的写磁盘的IO请求中,各写磁盘的IO请求需要写入的数据总大小未超过所述Cache的大小时,将所述扇区连续的写磁盘的IO请求进行合并。
CN201610828213.2A 2016-09-18 2016-09-18 一种读、写磁盘数据的方法及虚拟机监视器 Pending CN106406981A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610828213.2A CN106406981A (zh) 2016-09-18 2016-09-18 一种读、写磁盘数据的方法及虚拟机监视器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610828213.2A CN106406981A (zh) 2016-09-18 2016-09-18 一种读、写磁盘数据的方法及虚拟机监视器

Publications (1)

Publication Number Publication Date
CN106406981A true CN106406981A (zh) 2017-02-15

Family

ID=57998292

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610828213.2A Pending CN106406981A (zh) 2016-09-18 2016-09-18 一种读、写磁盘数据的方法及虚拟机监视器

Country Status (1)

Country Link
CN (1) CN106406981A (zh)

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106940626A (zh) * 2017-03-17 2017-07-11 郑州云海信息技术有限公司 一种获取虚拟机多磁盘间差异数据的方法和***
CN107229427A (zh) * 2017-06-22 2017-10-03 上海七牛信息技术有限公司 一种文件存储方法、***及计算机存储介质
CN107729119A (zh) * 2017-09-26 2018-02-23 联想(北京)有限公司 虚拟机迁移方法及其***
CN108108130A (zh) * 2017-12-22 2018-06-01 深圳忆联信息***有限公司 一种提升固态硬盘读写性能的方法及固态硬盘
WO2018157543A1 (zh) * 2017-02-28 2018-09-07 华为技术有限公司 定时器实现方法及相关装置
CN108845893A (zh) * 2018-05-04 2018-11-20 广东睿江云计算股份有限公司 基于固定缓冲的虚拟机磁盘复制过程读取方法及装置
CN108984123A (zh) * 2018-07-12 2018-12-11 郑州云海信息技术有限公司 一种重复数据删除方法和装置
CN109558205A (zh) * 2017-09-25 2019-04-02 南京中兴新软件有限责任公司 磁盘访问方法及装置
WO2019091322A1 (zh) * 2017-11-08 2019-05-16 阿里巴巴集团控股有限公司 虚拟机快照处理方法、装置及***
CN110275841A (zh) * 2019-06-20 2019-09-24 上海燧原智能科技有限公司 访问请求处理方法、装置、计算机设备和存储介质
CN111045604A (zh) * 2019-12-11 2020-04-21 苏州浪潮智能科技有限公司 一种基于nvram的小文件读写加速方法和设备
CN111159124A (zh) * 2019-12-30 2020-05-15 浪潮电子信息产业股份有限公司 Linux内核文件***异步写缓存方法、装置及介质
CN111209094A (zh) * 2018-11-21 2020-05-29 北京小桔科技有限公司 请求处理方法、装置、电子设备及计算机可读存储介质
CN111857943A (zh) * 2019-04-30 2020-10-30 华为技术有限公司 数据处理的方法、装置与设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1652091A (zh) * 2004-02-07 2005-08-10 华为技术有限公司 一种在数据存储***中预取数据的方法
CN101814038A (zh) * 2010-03-23 2010-08-25 杭州顺网科技股份有限公司 一种加快计算机启动速度的方法
CN103870312A (zh) * 2012-12-12 2014-06-18 华为技术有限公司 建立虚拟机共享存储缓存的方法及装置
CN104461940A (zh) * 2014-12-17 2015-03-25 南京莱斯信息技术股份有限公司 网络虚拟磁盘客户端高效缓存及延迟写入方法
CN105376269A (zh) * 2014-08-11 2016-03-02 中国电信股份有限公司 虚拟机存储***及其实现方法和装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1652091A (zh) * 2004-02-07 2005-08-10 华为技术有限公司 一种在数据存储***中预取数据的方法
CN101814038A (zh) * 2010-03-23 2010-08-25 杭州顺网科技股份有限公司 一种加快计算机启动速度的方法
CN103870312A (zh) * 2012-12-12 2014-06-18 华为技术有限公司 建立虚拟机共享存储缓存的方法及装置
CN105376269A (zh) * 2014-08-11 2016-03-02 中国电信股份有限公司 虚拟机存储***及其实现方法和装置
CN104461940A (zh) * 2014-12-17 2015-03-25 南京莱斯信息技术股份有限公司 网络虚拟磁盘客户端高效缓存及延迟写入方法

Cited By (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018157543A1 (zh) * 2017-02-28 2018-09-07 华为技术有限公司 定时器实现方法及相关装置
CN106940626A (zh) * 2017-03-17 2017-07-11 郑州云海信息技术有限公司 一种获取虚拟机多磁盘间差异数据的方法和***
CN106940626B (zh) * 2017-03-17 2020-02-07 郑州云海信息技术有限公司 一种获取虚拟机多磁盘间差异数据的方法和***
CN107229427B (zh) * 2017-06-22 2019-10-18 上海七牛信息技术有限公司 一种文件存储方法、***及计算机存储介质
CN107229427A (zh) * 2017-06-22 2017-10-03 上海七牛信息技术有限公司 一种文件存储方法、***及计算机存储介质
CN109558205B (zh) * 2017-09-25 2022-11-29 南京中兴新软件有限责任公司 磁盘访问方法及装置
CN109558205A (zh) * 2017-09-25 2019-04-02 南京中兴新软件有限责任公司 磁盘访问方法及装置
CN107729119A (zh) * 2017-09-26 2018-02-23 联想(北京)有限公司 虚拟机迁移方法及其***
WO2019091322A1 (zh) * 2017-11-08 2019-05-16 阿里巴巴集团控股有限公司 虚拟机快照处理方法、装置及***
CN108108130A (zh) * 2017-12-22 2018-06-01 深圳忆联信息***有限公司 一种提升固态硬盘读写性能的方法及固态硬盘
CN108845893A (zh) * 2018-05-04 2018-11-20 广东睿江云计算股份有限公司 基于固定缓冲的虚拟机磁盘复制过程读取方法及装置
CN108984123A (zh) * 2018-07-12 2018-12-11 郑州云海信息技术有限公司 一种重复数据删除方法和装置
CN111209094A (zh) * 2018-11-21 2020-05-29 北京小桔科技有限公司 请求处理方法、装置、电子设备及计算机可读存储介质
CN111857943A (zh) * 2019-04-30 2020-10-30 华为技术有限公司 数据处理的方法、装置与设备
CN111857943B (zh) * 2019-04-30 2024-05-17 华为技术有限公司 数据处理的方法、装置与设备
CN110275841A (zh) * 2019-06-20 2019-09-24 上海燧原智能科技有限公司 访问请求处理方法、装置、计算机设备和存储介质
CN110275841B (zh) * 2019-06-20 2020-09-04 上海燧原智能科技有限公司 访问请求处理方法、装置、计算机设备和存储介质
CN111045604A (zh) * 2019-12-11 2020-04-21 苏州浪潮智能科技有限公司 一种基于nvram的小文件读写加速方法和设备
CN111045604B (zh) * 2019-12-11 2022-11-01 苏州浪潮智能科技有限公司 一种基于nvram的小文件读写加速方法和设备
CN111159124A (zh) * 2019-12-30 2020-05-15 浪潮电子信息产业股份有限公司 Linux内核文件***异步写缓存方法、装置及介质
CN111159124B (zh) * 2019-12-30 2022-04-22 浪潮电子信息产业股份有限公司 Linux内核文件***异步写缓存方法、装置及介质

Similar Documents

Publication Publication Date Title
CN106406981A (zh) 一种读、写磁盘数据的方法及虚拟机监视器
Zhang et al. {FlashShare}: Punching Through Server Storage Stack from Kernel to Firmware for {Ultra-Low} Latency {SSDs}
CN102906691B (zh) 虚拟机迁移技术
CN103493027B (zh) 虚拟磁盘存储技术
JP5592942B2 (ja) 仮想マシンシステムにおけるショートカット入出力
US8826273B1 (en) Synchronously logging to disk for main-memory database systems through record and replay
US8762660B2 (en) Avoiding physical fragmentation in a virtualized storage environment
US9122765B1 (en) Efficient overcommitment of main-memory based virtual database system to disk
US20160378653A1 (en) Log-structured b-tree for handling random writes
CN107025070B (zh) 版本化存储设备和方法
KR102434170B1 (ko) 하이브리드 메모리 시스템
US8583890B2 (en) Disposition instructions for extended access commands
US11436086B2 (en) Raid storage-device-assisted deferred parity data update system
CN104123236A (zh) 用于使用预提升缓冲器的高吞吐量硬件加速的方法和***
US10628048B2 (en) Storage control device for controlling write access from host device to memory device
EP3264254B1 (en) System and method for a simulation of a block storage system on an object storage system
US11010091B2 (en) Multi-tier storage
US11210024B2 (en) Optimizing read-modify-write operations to a storage device by writing a copy of the write data to a shadow block
CN108334457B (zh) 一种io处理方法及装置
CN116540929A (zh) 磁盘阵列的虚拟化读取方法、装置、电子设备及存储介质
US11334292B2 (en) Autonomous RAID data storage system
US11315028B2 (en) Method and apparatus for increasing the accuracy of predicting future IO operations on a storage system
Kim et al. HyperCache: A hypervisor-level virtualized I/O cache on KVM/QEMU
US11003391B2 (en) Data-transfer-based RAID data update system
KR101790728B1 (ko) 가상화 환경의 하이퍼바이저에서의 데이터 입출력 방법 및 이를 기록한 기록 매체

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20170215

RJ01 Rejection of invention patent application after publication