CN103631537B - 一种虚拟磁盘的管理方法及装置 - Google Patents

一种虚拟磁盘的管理方法及装置 Download PDF

Info

Publication number
CN103631537B
CN103631537B CN201310629173.5A CN201310629173A CN103631537B CN 103631537 B CN103631537 B CN 103631537B CN 201310629173 A CN201310629173 A CN 201310629173A CN 103631537 B CN103631537 B CN 103631537B
Authority
CN
China
Prior art keywords
model
write request
current
memory block
judge
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.)
Expired - Fee Related
Application number
CN201310629173.5A
Other languages
English (en)
Other versions
CN103631537A (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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201310629173.5A priority Critical patent/CN103631537B/zh
Publication of CN103631537A publication Critical patent/CN103631537A/zh
Application granted granted Critical
Publication of CN103631537B publication Critical patent/CN103631537B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种虚拟磁盘的管理方法和装置,用于提高瘦磁盘的IO性能。在本发明的一些实施例中,方法包括:判断当前IO写请求是否已被分配存储块;若当前IO写请求没有被分配存储块,则判断当前的IO模型的类型;若当前的IO模型的类型是顺序模型,则对当前IO写请求需要访问的存储块进行预置零操作,并将当前IO写请求的数据写入已被预置零的所述存储块;若当前的IO模型的类型是随机模型,则直接将当前IO写请求的数据写入当前IO写请求需要访问的存储块。该方法既利用了瘦磁盘能够降低存储空间及成本的优点,又提高了瘦磁盘的IO性能。

Description

一种虚拟磁盘的管理方法及装置
技术领域
本发明涉及计算机技术,具体涉及一种虚拟磁盘的管理方法及装置。
背景技术
在虚拟化领域,虚拟机的虚拟磁盘的实际载体可以是物理磁盘、物理磁盘上的逻辑卷或者物理磁盘上的一个单独文件。对于文件方式的虚拟磁盘,可以是占用实际使用空间的瘦磁盘。使用瘦磁盘作为虚拟磁盘的实际载体时,主机需要随着输入输出(InputOutput,IO)操作为虚拟机分配磁盘空间,使瘦磁盘在使用过程中实时增长。
假设虚拟机的系统卷为10G,虚拟机实际占用的空间只有1G,瘦磁盘就是指占用了1G的瘦文件,而其它9G空间并未被实际分配空间,即,未被预置零;该瘦磁盘在虚拟机使用过程中实时增长,最终可能达到10G。
瘦磁盘的优点是可以减少存储空间,大量降低存储成本,创建时间短;缺点是由于需要在用户写数据时分配空间,因此其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写请求需要访问的存储块的相邻程度,判断当前的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是虚拟化集群系统的架构图;
图2是瘦磁盘的IO流程的示意图;
图3是本发明一个实施例提供的虚拟磁盘管理方法的流程图;
图4是用户态进程进程内部四个IO队列与IO环的关系图;
图5是本发明另一个实施例提供的虚拟磁盘管理方法的流程图;
图6是预置零范围的示意图;
图7a和7b是本发明实施例方法的一个详细流程图;
图8是本发明一个实施例提供的虚拟磁盘的管理装置的示意图;
图9是本发明另一实施例提供的虚拟磁盘的管理装置的示意图;
图10是本发明又一实施例提供的虚拟磁盘的管理装置的示意图;
图11是本发明一个实施例提供的计算机设备的示意图;
图12是本发明另一个实施例提供的计算机设备的示意图。
具体实施方式
本发明实施例提供一种虚拟磁盘的管理方法及装置,既可以利用瘦磁盘文件能够降低存储空间及成本的优点,又可以提高瘦磁盘文件的IO性能,解决了现有技术不能兼顾提升瘦磁盘IO性能和降低存储空间及成本的问题。
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
下面分别通过具体实施例进行详细的描述。
首先,请参考图1,图1是本发明实施例技术方案所应用的虚拟化集群系统的架构图。虚拟机(Virtual Machine,VM)通常运行在部署于主机的虚拟机管理器(hypervisor,又可称为虚拟机监视器)上,例如运行在xen(Xen是一个开放源代码虚拟机监视器,由剑桥大学开发)上,并由主机进行统一管理。虚拟机的内存、中央处理器(Central ProcessingUnit,CPU)、网络资源等都由主机进行模拟,而存储资源通常由存储局域网络(StorageArea Network,SAN)供给,一般主机通过网卡或HBA(Host Bus Adapter,主机总线适配器)卡连接SAN设备,SAN上的一个逻辑存储设备被映射为主机上的一个磁盘;集群文件系统是在一个集群内部运行于多个主机上的文件系统,它在各个主机之间存在通信机制来保证存储阵列上的数据有效可用。
本发明实施例采用文件方式的虚拟磁盘,即,虚拟机的虚拟磁盘可以是集群文件系统上的单个文件,该文件通常是有文件格式的,也可以是无文件格式(raw)的;具体可以是增量的瘦磁盘文件。本发明实施例中,虚拟机的虚拟磁盘由瘦磁盘文件(所说的瘦磁盘文件可简称为瘦磁盘)进行模拟,其IO(Input Output,输入输出)流程如图2所示,包括:
虚拟机下发的所有IO请求首先会由虚拟机内部安装的前端驱动进行处理,前端驱动类似于真实的磁盘驱动一样。前端驱动会将IO请求递交给运行在主机中的后端进程。前端驱动和后端进程通过虚拟机管理器例如xen中的IO环进行交互。IO环是一块固定的共享内存,用于在虚拟机之间或进程之间,例如在xen的虚拟客户机(DomU)和虚拟母机(Dom0,又称为管理虚拟机,用于管理同一台主机上的其它虚拟机,例如管理虚拟客户机)之间,传递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流程,本发明实施例提出以下技术方案。
请参考图3,本发明一个实施例提供的虚拟磁盘管理方法包括:
110、判断当前IO写请求是否已被分配存储块。
管理虚拟磁盘的用户态进程(该用户态进程具体可以是磁盘管理进程)和内核态的交互是通过IO环进行的。IO环中可存放多个IO请求。用户态进程内部也会有多个IO请求在处理,并可分为四个IO队列,分别是:新取上来的IO队列,正在下发的IO队列,失败预备重发的IO队列,以及完成IO队列;它们与IO环之间的关系如图4所示。
当用户态进程从IO环收到新下发的IO写请求并进行处理时时,该正在处理的当前IO写请求对应的操作,可能落入已被分配空间的瘦磁盘文件内,也可能落入瘦磁盘文件范围之外;如果落入瘦磁盘文件内,说明当前的瘦磁盘足够使用,无需扩张;如果落入瘦磁盘范围之外,则需要扩张瘦磁盘。
因此,用户态进程收到IO写请求后,需要首先判断当前IO写请求是否已被分配存储块,即,判断当前IO请求对应的写操作是否落入已被分配空间的瘦磁盘文件范围之内,若否,需要考虑随IO分配空间,即,通过对需要访问的存储块进行预置零操作,将该存储块实际分配给虚拟机。
其中,所说的存储块是对虚拟磁盘进行置零操作的基本单位,该存储块的大小可以根据实际应用场景设定,例如,可以包括一个或多个扇区,一种实施方式中,所说的磁盘块的大小具体可以是4k。
120、若当前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模型是随机模型。即,以用户态进程的4个IO队列中的IO请求的总数量为原型输入,遍历计算与正在处理的当前IO写请求需要访问的存储块相邻的IO请求的数量。假设当前IO请求需要访问的虚拟磁盘位置为44k,请求长度为4k,则遍历所有IO请求,当发现有1个其它IO请求需要访问的存储块与44k或者48k相邻,则相邻IO请求的数量计数加1。IO请求访问存储块的相邻程度以相邻IO请求的数量来衡量,第一临界值可以简单的初始化为1或2或其它数值。如果相邻IO请求的数量超过第一临界值,则判断为当前IO模型是顺序模型。
另一种实施方式中,可以首先确定用户态进程中各个IO写请求需要访问的存储块;计算各个IO写请求需要访问的存储块与当前IO写请求需要访问的存储块的距离,设定至少二个差值范围,并为每个差值范围设定不同的权重;统计距离在每个差值范围内的IO写请求的数量;根据距离在每个差值范围内的IO写请求的数量以及每个差值范围设定不同的权重,计算距离在每个差值范围内的IO写请求的数量与对应的权重的乘积,并对得到的所有乘积求和,计算求和得到的数值与用户态进程中各个IO写请求的总数量的比值;判断该比值是否达到第二临界值,若达到,则判断当前的IO模型是顺序模型,若未达到,则判断当前的IO模型是随机模型。例如,以用户态进程的4个IO队列中的IO请求的总数量为原型输入,假设总共有32个IO请求,统计32个IO请求中需要访问的存储块与处理中的当前IO需要访问的存储块的距离小于1M的有x个,1M到10M的有y个,10M到100M的有z个。以该三者的数量乘以各自权重得到的数值与IO写请求的总数量的比值来衡量IO请求的相邻程度。计算公式可以是这样的:
Seq=0.8*(x/(x+y+z))+0.3*(y/(x+y+z))+0.1*(z/(x+y+z))。
第二阈值可以初始化为0.5或其它数值。如果比值Seq高于第二临界值,则判断为顺序模型,否则,判断为随机模型。
130、若当前的IO模型的类型是顺序模型,则对当前IO写请求需要访问的存储块进行预置零操作,并将当前IO写请求的数据写入已被预置零的存储块;若当前的IO模型的类型是随机模型,则直接将当前IO写请求的数据写入当前IO写请求需要访问的存储块。
在IO模型是顺序模型时,用户态进程首先对需要访问的存储块进行预置零,然后才更新元数据,即,将当前IO写请求的数据写入已被预置零的该存储块。举例说明,假设某写IO写请求需要访问的存储块位于该虚拟磁盘的44k的位置,如果该存储块尚未被实际分配给虚拟机,则首先将44k位置的该存储块预先写成全0,使得该存储块被虚拟机实际占有,然后再在该存储块中写该IO写请求需要写的数据内容。由于IO模型是顺序模型,则下一个IO请求对应的操作有很大的可能仍落入该存储块,则,处理下一个IO时不需要进行预置零操作,于是,可以提升下一个IO请求的访问速度和处理性能。
在IO模型是随机模型时,下一个IO请求需要访问的虚拟磁盘位置,落入当前IO需要访问的存储块的几率非常小,因此,只需要更新元数据,即,只需要将当前IO写请求的数据写入需要访问的存储块即可,无需对当前IO需要访问的存储块进行预置零操作,从而,可以提高当前IO操作的性能。
由上可见,在本发明的一些可行的实施方式中,判断当前IO写请求尚未被分配存储块时,对IO模型的类型进行预判,若当前的IO模型是顺序模型,则对需要访问的存储块预置零后写入数据,若当前的IO模型是随机模型,则直接将数据写入需要访问的存储块,使得:若当前的IO模型是随机模型,则通过取消预置零操作,提高当前IO操作的性能;若当前的IO模型是顺序模型,则通过预置零,使后续的IO请求对应的操作有较大几率落在已经置零的区域,相当于在厚磁盘进行IO操作,因而,可以提高后续IO操作的性能;从而,既利用了瘦磁盘能够降低存储空间及成本的优点,又提高了瘦磁盘的IO性能。
请参考图5,本发明另一个实施例提供的虚拟磁盘管理方法可包括:
210、根据IO请求下发的频繁程度,判断主机的后台是否空闲;
220、若后台空闲,则在后台对虚拟磁盘进行预置零操作。
本实施例通过在后台预置零,可以不断增大瘦磁盘文件,当后续IO操作落入已被预先置零的瘦磁盘文件范围内时,可以不必随IO分配空间,从而提高IO操作性能。
本发明的一些实施例中,可以以用户态进程中的多个IO请求为输入,根据IO请求下发的频繁程度,判断主机的后台是否空闲。具体的IO空闲度预判算法可以有多种,下面举例说明:
一种实施方式中,可以计算用户态进程中的IO请求的总数量是否低于第三临界值,若低于,则判断主机的后台空闲;若不低于,则判断主机的后台繁忙。该种方式的含义是,通过统计一定时间内下发的IO请求的数量是否低于第三临界值,来确定IO请求下发的频繁程度,从而判断后台是否空闲。第三临界值可初始化为3或其它数值。
另一种实施方式中,可以计算用户态进程的每一种IO队列中的IO请求的数量,并为每一种IO队列设定不同的权重,计算每一种IO队列中的IO请求的数量与对应的权重的乘积,并对得到的所有乘积求和;判断所述求和得到的数值是否低于第四临界值,若低于,则判断主机的后台空闲;若不低于,则判断主机的后台繁忙。举例说明,可以以4个IO队列中的IO请求的总数量为原型输入,假设新取上来的IO队列中的IO数量加上正在下发的IO队列中的IO数量的和为x,失败重发IO队列中的IO数量为y,完成请求IO队列中的IO数量为z。以该三者的数量乘以各自权重系数得到的数值来衡量IO空闲度。公式可以是这样的:Idle=1*x+0.5*y+0.1*z。第四临界值可初始化为2或其它数值。
本发明的一些实施例中,所说的在后台对虚拟磁盘进行预置零操作包括:获取虚拟磁盘的置零阈值;在后台对虚拟磁盘的预置零范围进行置零,该预置零范围是指置零阈值内尚未被实际分配给虚拟机的存储空间。如图6所示,预置零范围是从当前瘦磁盘的真实数据尾开始,直到置零阈值上限值的一段存储空间。
本实施例中,通过设置置零阈值,来限定进行预置零的范围,即,限定瘦磁盘的大小,避免占用过多的磁盘空间,从而降低存储成本,以便在提升瘦磁盘IO性能和降低存储成本之间取得平衡。其中,置零阈值可以根据用户的使用情况进行初始化,例如,可以将其上限值初始化为250M。空闲后台进行预置零操作时,需要首先判断当前预置零范围是否超过置零阈值;若未超过,才在后台对当前预置零范围进行预置零操作。
该置零阈值可以是从磁盘文件某个固定位置开始的一段例如250M的磁盘空间,也可以是从瘦磁盘文件的真实数据尾开始的一段例如250M的磁盘空间。另外,置零阈值的大小可以是固定的,例如固定为250M;也可以随实际应用动态调整其大小。
本发明的一些实施例中,可以根据IO请求下发的频繁程度,实时调整置零阈值的大小,以满足用户使用需求。例如,可以计算设定周期内下发的IO请求的数量,在该数量低于下限值时,认为IO请求下发的频繁程度较低,后台较为空闲,则增大置零阈值,使得下个时间周期内的IO请求更大可能落在已经置零的区域。在该数量高于上限值时,认为IO请求下发的频繁程度较高,后台较为繁忙时,则减少置零阈值。
本发明的另一些实施例中,可以计算设定周期内的IO流量,根据IO流量的大小实时调整置零阈值的大小。IO流量是指设定周期内需要写入虚拟磁盘的数据的多少。若IO流量大于上限值,则增大置零阈值;若O流量小于下限值,则减少置零阈值。例如当此前30s内处理的IO流量大于上限值如600M,则认为IO流量较大,可以增大置零阈值;如果IO请求流量小于下限值如100M,则认为IO流量较小,可以降低置零阈值。
以上一些实施例中,通过自动化调整置零阈值,可以使IO空闲度预判更智能化,更有效的发挥功能。
关于本发明实施例一些具体应用的流程图,请参考图7a和图7b所示。
由上可见,在本发明的一些可行的实施方式中,判断主机的后台空闲时,在后台对虚拟磁盘进行预置零,使得:虚拟磁盘除了包括虚拟机实际占用、存储了虚拟机数据的存储空间外,还包括了已被预置零的存储空间,且,已被预置零的存储空间不断增长,当进行IO操作,这些IO操作落入这些已被预置零的存储空间时,则不必随IO分配空间,提升了IO操作的性能。
以上,图3实施例和图5实施例分别提供了两种不同的虚拟机磁盘的管理方法,这两种方法可以分别实施,也可以结合实施。
为便于更好的理解本发明实施例的技术方案,下面通过一个具体场景下的实施方式为例进行介绍。
例如这样的实施场景,某台虚拟机的用户卷D盘,使用瘦磁盘的方式模拟虚拟磁盘。
当虚拟机刚安装好操作系统并开始运行时,用户卷D盘中的数据为空,则瘦磁盘的实际占用空间只是瘦磁盘的元数据,大约为24k大小。
此时,由于刚开始运行用户的IO请求较少,此时后台空闲置0会启动,预置0的阈值初始化为250M,则瘦磁盘的大小会逐渐增加到250M。
假设当瘦磁盘增长了250M后,用户开始执行拷贝某个1G大小的视频文件到D盘的动作,此时IO流量突然上升,在刚开始的阶段,IO会落在250M已经预置了0的区域中,这种情况下IO不需要再分配空间,性能与厚磁盘基本持平。但剩下的750M内容的IO会落在还没有来得及分配空间的区域,此时,性能会较低,这种情况下,可启用IO模型预判,由于是拷贝动作,IO模型通常为顺序模型,会随用户IO进行置0操作。则后续IO的性能得到提升。
这里如果不是拷贝动作,而是类似VSI办公操作,则,当用户使用了250M之后,通常会被IO模型预判认为为随机模型,不会随用户IO进行置0操作。这样当IO落在250M之外时,由于不需要置零操作,IO性能可以得到提升。
随着用户使用,如果用户是视频爱好者,经常性的下载大文件,IO流量较大,这种情况下250M的阈值明显太小,由于有自动化调整后台置零阈值技术,因此会将250M的阈值增加到500M甚至更大来适应用户的需求。如果用户只是一个文档编辑者,可能不会经常产生大文件,这种情况下250M的阈值可以减少到128M,以此来节省瘦磁盘空间。
以上,本发明实施例技术方案通过IO预判,解决了瘦磁盘在首次写情况下的性能下降问题,IOPS(Input/Output Operations Per Second,每秒进行读写操作的次数)可以提升20%以上。本实施例技术方案在xen平台上的vhd(Virual Hard Disk,虚拟磁盘格式)瘦磁盘上实现后,在虚拟机内部进行iometer测试,分别对vhd上瘦磁盘的两种格式:精简卷和差分卷进行测试,测试用例覆盖顺序模型和随机模型,测试得到的iops如下表1所示。其中,iometer是一个工作在单系统和集群系统上用来衡量和描述I/O子系统的工具。
表1
可见,本发明实施例技术方案可以明显提升瘦磁盘的IO性能。
综上,本发明一些可行的实施方式中,在当前IO写请求未被分配存储块是时,对IO模型的类型进行预判,若当前的IO模型是顺序,则对需要访问的存储块预置零后写入数据,若当前的IO模型是随机,则直接将数据写入需要访问的存储块;另外,在主机的后台空闲时,在后台对虚拟机磁盘预置零;使得:
若当前的IO模型是随机,则可以避免预置零操作,提高当前IO操作的性能;若当前的IO模型是顺序,则通过预置零,使后续的IO请求对应的操作有较大几率落在已经置零的区域,相当于在厚磁盘中进行IO操作,速度很快,因而,可以提高后续IO操作的性能,使用户感知不到分配空间带来的性能损耗;
通过后台预置零,使得虚拟磁盘的存储空间不断增长,当进行IO操作,这些IO操作落入这些已被预置零的存储空间时,则不必随IO分配空间,提升了IO操作的性能;
从而,既利用了瘦磁盘文件能够降低存储空间及成本的优点,又提高了瘦磁盘文件的IO性能。
本发明实施例技术方案还可以被应用到稀疏文件(sparse file)的性能提升,在文件系统层次对sparse文件记录实际数据尾,并结合IO预判来对sparse文件进行预置零的操作,这样可以提升sparse文件的IO性能。
为便于更好的本发明实施例的上述方案,下面还提供用于配合实施上述方案的装置。
请参考图8,本发明一个实施例提供的虚拟磁盘的管理装置,可包括:
分配判断模块310,用于判断当前IO写请求是否已被分配存储块;
IO模型判断模块320,用于在分配判断模块310判断当前IO写请求没有被分配存储块时,判断当前的IO模型是顺序模型或是随机模型;
读写模块330,用于在IO模型判断模块320判断当前的IO模型的类型是顺序模型时,对当前IO写请求需要访问的存储块进行预置零操作,并将当前IO写请求的数据写入已被预置零的存储块;在IO模型判断模块320判断当前的IO模型的类型是随机模型时,直接将当前IO写请求的数据写入当前IO写请求需要访问的存储块。
在本发明的一些实施例中,IO模型判断模块320,具体用于根据用户态进程中各个IO写请求需要访问的存储块的相邻程度,判断当前的IO模型的类型。
一些实施例中IO模型判断模块320可以包括:第一计算单元,用于计算用户态进程中的第一类IO写请求的数量,该第一类IO写请求需要访问的存储块与当前IO写请求需要访问的存储块相邻;判断单元,用于判断第一计算单元计算得到的第一类IO写请求的数量是否达到第一临界值,若第一类IO写请求的数量达到第一临界值,则判断当前的IO模型是顺序模型,若第一类IO写请求的数量没有达到第一临界值,则判断当前的IO模型的类型是随机模型。
另一些实施例中,IO模型判断模块320可以包括:第二计算单元,用于计算用户态进程中各个IO写请求需要访问的存储块与当前IO写请求需要访问的存储块的距离,设定至少二个差值范围,并为每个差值范围设定不同的权重;计算距离在每个差值范围内的IO写请求的数量,根据距离在每个差值范围内的IO写请求的数量以及每个差值范围设定不同的权重,计算距离在每个差值范围内的IO写请求的数量与对应的权重的乘积,并对得到的所有乘积求和,计算求和得到的数值与用户态进程中各个IO写请求的总数量的比值;判断单元,用于判断第二计算单元计算得到的比值是否达到第二临界值,若比值达到第二临界值,则判断当前的IO模型是顺序模型,若比值没有达到第二临界值,则判断当前的IO模型的类型是随机模型。
可以理解,本发明实施例的虚拟磁盘的管理装置的各个功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可参照上述方法实施例中的相关描述,此处不再赘述。
由上可见,本发明的一些可行的实施方式中,提供了一种虚拟磁盘的管理装置,该装置判断当前IO写请求尚未被分配存储块时,对IO模型的类型进行预判,若当前的IO模型是顺序模型,则对需要访问的存储块预置零后写入数据,若当前的IO模型是随机模型,则直接将数据写入需要访问的存储块,使得:
若当前的IO模型是随机,则可以避免预置零操作,提高当前IO操作的性能;若当前的IO模型是顺序,则通过预置零,使后续的IO请求对应的操作有较大几率落在已经置零的区域,相当于在厚磁盘文件进行IO操作,因而,可以提高后续IO操作的性能;从而,既利用了瘦磁盘文件能够降低存储空间及成本的优点,又提高了瘦磁盘文件的IO性能。
如图9所示,在本发明另一个实施例提供的虚拟磁盘的管理装置可包括:
判断模块410,用于根据IO请求下发的频繁程度,判断主机的后台是否空闲;
预置零模块420,用于在判断模块410判断主机的后台空闲时,在后台对虚拟磁盘进行预置零操作。
在本发明的一些实施例中,判断模块410可以包括:第一判断单元,用于计算用户态进程中的IO请求的数量是否低于第三临界值,若用户态进程中的IO请求的数量低于第三临界值,则判断主机的后台空闲。
另一些实施例中,判断模块410可以包括:第二预判单元,用于计算用户态进程的每一种IO队列中的IO请求的数量,并为每一种IO队列设定不同的权重,计算不同IO队列的IO请求的数量与对应的权重的乘积,并对得到的所有乘积求和;判断求和得到的数值是否低于第四临界值,若求和得到的数值低于第四临界值,则判断主机的后台空闲。
在本发明的一些实施例中,预置零模块420,具体用于获取虚拟磁盘的置零阈值;在后台对虚拟磁盘的预置零范围进行预置零操作,该预置零范围是指置零阈值内未被实际分配给虚拟机的存储空间。
如图10所示,在本发明的一些实施例中,该虚拟磁盘的管理装置还可包括:第一调整模块430,用于计算设定周期内下发的IO请求的数量,在所述数量低于下限值时,增大所述置零阈值,在所述数量高于上限值时,减少所述置零阈值;相应的,预置零模块420,具体用于获取所述第一调整模块调整过的置零阈值。
在本发明的一些实施例中,该虚拟磁盘的管理装置还可包括:第二调整模块440,用于计算设定周期内的IO流量,该IO流量是指设定周期内需要写入虚拟磁盘的数据的多少;若IO流量大于上限值,则增大置零阈值;若IO流量小于下限值,则减少置零阈值;相应的,预置零模块420,具体用于获取所述第二调整模块调整过的置零阈值。
可以理解,本发明实施例的虚拟磁盘的管理装置的各个功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可参照上述方法实施例中的相关描述,此处不再赘述。
由上可见,本发明的一些可行的实施方式中,提供了一种虚拟磁盘的管理装置,该装置判断主机的后台空闲时,在后台对虚拟磁盘进行预置零,使得:虚拟磁盘除了包括虚拟机实际占用、存储了虚拟机数据的存储空间外,还包括了已被预置零的存储空间,且,已被预置零的存储空间不断增长,当进行IO操作,这些IO操作落入这些已被预置零的存储空间时,则不必随IO分配空间,提升了IO操作的性能。
本发明实施例还提供一种计算机存储介质,该计算机存储介质存储有程序,该程序执行时执行上述方法实施例中记载的虚拟磁盘管理方法的全部或部分步骤。
请参考图11,本发明实施例还提供一种计算机设备,该计算机设备包括:输入装置510,输出装置520,存储装置530和处理器540。该输入装置510,输出装置520,存储装置530和处理器540通过总线或其它方式连接。
其中,处理器540执行以下步骤:判断当前IO写请求是否已被分配存储块;若当前IO写请求没有被分配存储块,则判断当前的IO模型的类型;若当前的IO模型的类型是顺序模型,则对当前IO写请求需要访问的存储块进行预置零操作,并将当前IO写请求的数据写入已被预置零的存储块;若当前的IO模型的类型是随机模型,则直接将当前IO写请求的数据写入当前IO写请求需要访问的存储块。
在本发明的一些实施例中,处理器540判断当前的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性能。
请参考图12,本发明实施例还提供另一种计算机设备,该计算机设备包括:输入装置610,输出装置620,存储装置630和处理器640。该输入装置610,输出装置620,存储装置630和处理器640通过总线或其它方式连接。其中,处理器640执行以下步骤:根据IO请求下发的频繁程度,判断主机的后台是否空闲;若后台空闲,则在后台对虚拟磁盘进行预置零操作。
在本发明的一些实施例中,处理器640根据IO请求下发的频繁程度,判断后台是否空闲可以包括:计算用户态进程中的IO请求的数量是否低于第三临界值;若用户态进程中的IO请求的数量低于第三临界值,则判断主机的后台空闲。或者,计算用户态进程的每一种IO队列中的IO请求的数量,并为每一种IO队列设定不同的权重,计算每一种IO队列中的IO请求的数量与对应的权重的乘积,并对得到的所有乘积求和;判断求和得到的数值是否低于第四临界值,若求和得到的数值低于第四临界值,则判断主机的后台空闲。
在本发明的一些实施例中,处理器640在后台对虚拟磁盘进行预置零操作可以包括:在后台对当前的预置零范围进行预置零操作,所述的预置零范围是指预设的置零阈值内尚未被实际分配给虚拟机的存储空间。
本发明一些实施例中,处理器640还可以执行以下步骤:计算设定周期内下发的IO请求的数量,在该数量低于下限值时,增大置零阈值,在该数量高于上限值时,减少置零阈值。
本发明一些实施例中,处理器640还可以执行以下步骤:计算设定周期内的IO流量,该IO流量是指设定周期内需要写入虚拟磁盘的数据的多少;若IO流量大于上限值,则增大置零阈值;若IO流量小于下限值,则减少置零阈值。
可以理解,本发明实施例的计算机设备的各个功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可参照上述方法实施例中的相关描述,此处不再赘述。
由上可见,本发明的一些可行的实施方式中,提供了一种计算机设备,该计算机设备判断主机的后台空闲时,在后台对虚拟磁盘进行预置零,使得:虚拟磁盘除了包括虚拟机实际占用、存储了虚拟机数据的存储空间外,还包括了已被预置零的存储空间,且,已被预置零的存储空间不断增长,当进行IO操作,这些IO操作落入这些已被预置零的存储空间时,则不必随IO分配空间,提升了IO操作的性能。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详细描述的部分,可以参见其它实施例的相关描述。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述动作顺序的限制,因为依据本发明,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤可以通过硬件来完成,也可以通过程序指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器、随机读取存储器、磁盘或光盘等。
以上对本发明实施例所提供的虚拟磁盘的管理方法及装置进行了详细介绍,但以上实施例的说明只是用于帮助理解本发明的方法及其核心思想,不应理解为对本发明的限制。本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。

Claims (8)

1.一种虚拟磁盘的管理方法,其特征在于,包括:
判断当前输入输出IO写请求是否已被分配存储块;
若所述当前IO写请求没有被分配存储块,则判断当前的IO模型的类型;
若所述当前的IO模型的类型是顺序模型,则对所述当前IO写请求需要访问的存储块进行预置零操作,并将所述当前IO写请求的数据写入已被预置零的所述存储块;
若所述当前的IO模型的类型是随机模型,则直接将所述当前IO写请求的数据写入所述当前IO写请求需要访问的存储块。
2.根据权利要求1所述的方法,其特征在于,所述判断当前的IO模型的类型包括:
根据用户态进程中各个IO写请求需要访问的存储块的相邻程度,判断当前的IO模型的类型。
3.根据权利要求2所述的方法,其特征在于,所述根据用户态进程中各个IO写请求需要访问的存储块的相邻程度,判断当前的IO模型的类型包括:
计算所述用户态进程中的第一类IO写请求的数量,所述第一类IO写请求需要访问的存储块与所述当前IO写请求需要访问的存储块相邻;
判断所述第一类IO写请求的数量是否达到第一临界值,若所述第一类IO写请求的数量达到第一临界值,则判断所述当前的IO模型的类型是顺序模型,若所述第一类IO写请求的数量没有达到第一临界值,则判断所述当前的IO模型的类型是随机模型。
4.根据权利要求2所述的方法,其特征在于,所述根据用户态进程中各个IO写请求需要访问的存储块的相邻程度,判断当前的IO模型的类型包括:
计算所述用户态进程中各个IO写请求需要访问的存储块与所述当前IO写请求需要访问的存储块的距离;
设定至少二个差值范围,并为每个差值范围设定不同的权重;
统计距离在每个差值范围内的IO写请求的数量;
根据距离在每个差值范围内的IO写请求的数量以及所述每个差值范围设定不同的权重,计算距离在每个差值范围内的IO写请求的数量与对应的权重的乘积,并对得到的所有乘积求和,计算所述求和得到的数值与所述用户态进程中各个IO写请求的总数量的比值;
判断所述比值是否达到第二临界值,若所述比值达到第二临界值,则判断所述当前的IO模型的类型是顺序模型,若所述比值没有达到第二临界值,则判断所述当前的IO模型的类型是随机模型。
5.一种虚拟磁盘的管理装置,其特征在于,包括:
分配判断模块,用于判断当前输入输出IO写请求是否已被分配存储块;
IO模型判断模块,用于在所述分配判断模块判断当前IO写请求没有被分配存储块时,判断当前的IO模型的类型;
读写模块,用于在所述IO模型判断模块判断所述当前的IO模型的类型是顺序模型时,对所述当前IO写请求需要访问的存储块进行预置零操作,并将所述当前IO写请求的数据写入已被预置零的所述存储块;在所述IO模型判断模块判断所述当前的IO模型的类型是随机模型时,直接将所述当前IO写请求的数据写入所述当前IO写请求需要访问的存储块。
6.根据权利要求5所述的装置,其特征在于:
所述IO模型判断模块,具体用于根据用户态进程中各个IO写请求需要访问的存储块的相邻程度,判断当前的IO模型的类型。
7.根据权利要求6所述的装置,其特征在于,所述IO模型判断模块包括:
第一计算单元,用于计算所述用户态进程中的第一类IO写请求的数量,所述第一类IO写请求需要访问的存储块与所述当前IO写请求需要访问的存储块相邻;
判断单元,用于判断所述第一计算单元计算得到的所述第一类IO写请求的数量是否达到第一临界值,若所述第一类IO写请求的数量达到第一临界值,则判断所述当前的IO模型的类型是顺序模型,若所述第一类IO写请求的数量没有达到第一临界值,则判断所述当前的IO模型的类型是随机模型。
8.根据权利要求6所述的装置,其特征在于,所述IO模型判断模块包括:
第二计算单元,用于计算所述用户态进程中各个IO写请求需要访问的存储块与所述当前IO写请求需要访问的存储块的距离,设定至少二个差值范围,并为每个差值范围设定不同的权重;统计距离在每个差值范围内的IO写请求的数量,根据所述距离在每个差值范围内的IO写请求的数量以及所述每个差值范围设定不同的权重,计算距离在每个差值范围内的IO写请求的数量与对应的权重的乘积,并对得到的所有乘积求和,计算所述求和得到的数值与所述用户态进程中各个IO写请求的总数量的比值;
判断单元,用于判断所述第二计算单元计算得到的所述比值是否达到第二临界值,若所述比值达到第二临界值,则判断所述当前的IO模型的类型是顺序模型,若所述比值没有达到第二临界值,则判断所述当前的IO模型的类型是随机模型。
CN201310629173.5A 2013-11-29 2013-11-29 一种虚拟磁盘的管理方法及装置 Expired - Fee Related CN103631537B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310629173.5A CN103631537B (zh) 2013-11-29 2013-11-29 一种虚拟磁盘的管理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310629173.5A CN103631537B (zh) 2013-11-29 2013-11-29 一种虚拟磁盘的管理方法及装置

Publications (2)

Publication Number Publication Date
CN103631537A CN103631537A (zh) 2014-03-12
CN103631537B true CN103631537B (zh) 2016-09-14

Family

ID=50212648

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310629173.5A Expired - Fee Related CN103631537B (zh) 2013-11-29 2013-11-29 一种虚拟磁盘的管理方法及装置

Country Status (1)

Country Link
CN (1) CN103631537B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105159620B (zh) * 2015-09-29 2018-07-20 华为数字技术(成都)有限公司 存储QoS控制策略的实现方法及装置
CN105700826A (zh) * 2015-12-31 2016-06-22 华为技术有限公司 虚拟化方法和装置
CN107132996B (zh) * 2017-04-12 2020-02-21 杭州宏杉科技股份有限公司 基于智能精简配置的存储方法、模块及系统
CN107908512A (zh) * 2017-11-14 2018-04-13 郑州云海信息技术有限公司 一种磁盘性能的测试方法及测试装置
CN108874320A (zh) * 2018-06-28 2018-11-23 郑州云海信息技术有限公司 精简卷设置方法、装置、设备及计算机可读存储介质
CN110795043B (zh) * 2019-10-29 2023-06-06 北京浪潮数据技术有限公司 一种分布式存储块置零方法、装置、电子设备及存储介质
CN112596818B (zh) * 2020-12-30 2023-12-05 上海众源网络有限公司 一种应用程序控制方法、系统及装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101493795A (zh) * 2008-01-24 2009-07-29 杭州华三通信技术有限公司 存储系统和存储控制器以及存储系统中的缓存实现方法
CN101957729A (zh) * 2010-09-27 2011-01-26 中兴通讯股份有限公司 逻辑块变换方法及基于该方法兼容用户读写的方法和装置
CN102483684A (zh) * 2009-12-24 2012-05-30 株式会社日立制作所 提供虚拟卷的存储系统
CN102521152A (zh) * 2011-11-29 2012-06-27 成都市华为赛门铁克科技有限公司 一种分级存储方法及系统
CN102968279A (zh) * 2012-11-13 2013-03-13 浪潮电子信息产业股份有限公司 一种存储系统自动精简配置的方法
CN103389884A (zh) * 2013-07-29 2013-11-13 华为技术有限公司 处理输入/输出请求的方法、宿主机、服务器和虚拟机

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009043055A (ja) * 2007-08-09 2009-02-26 Hitachi Ltd 計算機システム、ストレージ装置及びデータ管理方法
US8239648B2 (en) * 2009-04-13 2012-08-07 Microsoft Corporation Reclamation of thin provisioned disk storage
US8726273B2 (en) * 2009-12-03 2014-05-13 Vmware, Inc. Space efficient virtual machines
US9052825B2 (en) * 2010-08-30 2015-06-09 Vmware, Inc. System software interfaces for space-optimized block devices
US8468303B2 (en) * 2010-09-27 2013-06-18 Hitachi, Ltd. Method and apparatus to allocate area to virtual volume based on object access type
US8874848B2 (en) * 2011-09-30 2014-10-28 Net App, Inc. Intelligence for controlling virtual storage appliance storage allocation

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101493795A (zh) * 2008-01-24 2009-07-29 杭州华三通信技术有限公司 存储系统和存储控制器以及存储系统中的缓存实现方法
CN102483684A (zh) * 2009-12-24 2012-05-30 株式会社日立制作所 提供虚拟卷的存储系统
CN101957729A (zh) * 2010-09-27 2011-01-26 中兴通讯股份有限公司 逻辑块变换方法及基于该方法兼容用户读写的方法和装置
CN102521152A (zh) * 2011-11-29 2012-06-27 成都市华为赛门铁克科技有限公司 一种分级存储方法及系统
CN102968279A (zh) * 2012-11-13 2013-03-13 浪潮电子信息产业股份有限公司 一种存储系统自动精简配置的方法
CN103389884A (zh) * 2013-07-29 2013-11-13 华为技术有限公司 处理输入/输出请求的方法、宿主机、服务器和虚拟机

Also Published As

Publication number Publication date
CN103631537A (zh) 2014-03-12

Similar Documents

Publication Publication Date Title
CN103631537B (zh) 一种虚拟磁盘的管理方法及装置
US10534542B2 (en) Dynamic core allocation for consistent performance in a non-preemptive scheduling environment
Dybdahl et al. An adaptive shared/private nuca cache partitioning scheme for chip multiprocessors
JP5756478B2 (ja) データ・センタにおける電力消費の最適化
JP6296304B2 (ja) 共有仮想メモリ・ページの管理モードを決定するための方法および関連装置
JP5208585B2 (ja) 代表的なトレースを得るための命令を識別する方法、コンピュータ・プログラム及びシステム
WO2016078178A1 (zh) 一种虚拟cpu调度方法
CN104424106B (zh) 为存储优化操作分配存储设备的资源的方法和系统
CN103442070A (zh) 基于统计预测的私有云存储资源调配方法
CN103514046A (zh) 一种虚拟机放置方法及集群管理服务器
CN104346284B (zh) 一种内存管理方法及内存管理设备
CN107526546A (zh) 一种Spark分布式计算数据处理方法及系统
CN109684074A (zh) 物理机资源分配方法及终端设备
CN106125888B (zh) 云数据中心中基于虚拟机迁移的资源利用高效的节能方法
CN108733308A (zh) 用于管理盘池的方法和设备
CN103810109A (zh) 内存分配方法、装置及系统
CN107408018A (zh) 用于在固态驱动器中适应垃圾收集资源分配的机制
CN114968588A (zh) 一种面向多并发深度学习训练任务的数据缓存方法和装置
US20220300323A1 (en) Job Scheduling Method and Job Scheduling Apparatus
US11513849B2 (en) Weighted resource cost matrix scheduler
TW202303401A (zh) 藉由超額認購由系統所支援的計算實體之間共用的實體記憶體來減少該系統中的記憶體
CN111338579A (zh) 基于存储池的读写缓存优化方法、系统、终端及存储介质
US20210390405A1 (en) Microservice-based training systems in heterogeneous graphic processor unit (gpu) cluster and operating method thereof
CN109412865A (zh) 一种虚拟网络资源分配方法、系统及电子设备
CN116483740B (zh) 内存数据的迁移方法、装置、存储介质及电子装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20160914

Termination date: 20181129

CF01 Termination of patent right due to non-payment of annual fee