读写请求处理方法及装置制造方法及图纸

技术编号:17911865 阅读:24 留言:0更新日期:2018-05-10 17:57
本申请公开了一种读写请求处理方法及装置。其中,该方法包括:接收来自虚拟机的IO读写请求,其中,IO读写请求用于请求读和/或写虚拟机的任意一个磁盘中的数据;获取预先映射得到的地址空间,并根据IO读写请求和地址空间获取物理机中存放数据的地址,其中,地址空间是映射得到的虚拟机的磁盘的地址;在向存储设备提交IO读写请求之后,接收数据在存储设备上的处理结果,其中,存储设备为物理机中存储数据的装置;通过地址空间向虚拟机返回处理结果。本申请实施例通过将来自虚拟机的IO读写请求对应的数据使用内存地址的方式进行处理的方式,从而减少了数据的拷贝环节,降低了IO Latency,进而解决了现有技术中IO latency升高的技术问题。

【技术实现步骤摘要】
读写请求处理方法及装置
本申请涉及软件领域,具体而言,涉及一种读写请求处理方法及装置。
技术介绍
在云计算环境中,一个数据中心的计算资源通过虚拟化技术切分为大量虚拟机(VirtualMachine,简称为VM,VM是一台服务器上虚拟出来的多个可以运行OS的实例),用户在VM中灵活部署自己的应用,例如web、社交、游戏、金融等,这些应用有的保存着重要数据,要求数据读写的时延越低越好,并且能做到7*24小时不间断服务、有足够好的可用性。对于这些数据的保存,可以根据不同的需要选择不同的存储方式。例如,有的应用要求有足够好的数据可靠性,因此,数据需要有多个冗余备份,这样即使单个服务器宕机也不影响使用,这种情况下,需要将VM磁盘接入到分布式存储。又例如,有的应用要求比较高的性能,IO的延时(IOLatency)要求的比较低,如果这些应用不需要进行冗余备份,此时,这些应用需要接入本地RAID存储。数据中心内部都由一个个集群组成,每个服务器上部署着虚拟化平台、后端存储(这里的后端存储包括上述段落中介绍的分布式存储和RAID存储)、业务管理监控系统等,这些系统本身也会消耗一些资源(如CPU、内存、网络等),并且虚拟机磁盘接入后端存储的链路,也会因此变长,这些因素都导致服务器上负载升级,让用户的IO时延(latency)升高。针对现有技术中IOlatency升高的问题,目前尚未提出有效的解决方案。
技术实现思路
本申请实施例提供了一种读写请求处理方法及装置,以至少解决现有技术中IOlatency升高的技术问题。根据本申请实施例的一个方面,提供了一种读写请求处理方法,包括:接收来自虚拟机的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的Latency。因此,通过本申请实施例所提供的方案,可以达到缩短IO链路,实现数据零拷贝,降低IOlatency的效果。由此,本申请提供的上述实施例解决了现有技术中IOlatency升高的技术问题。附图说明此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:图1是根据本申请实施例的一种用于实现读写请求处理方法的计算机终端的硬件结构框图;图2是根据本申请实施例的一种可选的物理机运行VM的示意图;图3是根据本申请实施例一的读写请求处理方法的流程图;图4是根据本申请实施例一的一种可选的IO接入装置的模块示意图;图5是根据本申请实施例一的一种可选的读写请求处理方法的交互图;图6是根据本申请实施例二的基于虚拟机的读写请求处理方法的流程图;图7是根据本申请实施例三的快速处理读写请求的方法的流程图;图8是根据本申请实施例四的一种读写请求处理装置的结构框图;图9是根据本申请实施例五的基于虚拟机的读写请求处理装置的结构框图;图10是根据本申请实施例六的快速处理读写请求的装置的结构框图;以及图11是根据本申请实施例的一种计算机终端的结构框图。具体实施方式为了使本
的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可本文档来自技高网
...
读写请求处理方法及装置

【技术保护点】
一种读写请求处理方法,其特征在于,包括:接收来自虚拟机的IO读写请求,其中,所述IO读写请求用于请求读和/或写所述虚拟机的任意一个磁盘中的数据;获取预先映射得到的地址空间,并根据所述IO读写请求和所述地址空间获取物理机中存放所述数据的地址,其中,所述地址空间是映射得到的所述虚拟机的磁盘的地址;在向存储设备提交所述IO读写请求之后,接收所述数据在所述存储设备上的处理结果,其中,所述存储设备为物理机中存储所述数据的装置;通过所述地址空间向所述虚拟机返回所述处理结果。

【技术特征摘要】
1.一种读写请求处理方法,其特征在于,包括:接收来自虚拟机的IO读写请求,其中,所述IO读写请求用于请求读和/或写所述虚拟机的任意一个磁盘中的数据;获取预先映射得到的地址空间,并根据所述IO读写请求和所述地址空间获取物理机中存放所述数据的地址,其中,所述地址空间是映射得到的所述虚拟机的磁盘的地址;在向存储设备提交所述IO读写请求之后,接收所述数据在所述存储设备上的处理结果,其中,所述存储设备为物理机中存储所述数据的装置;通过所述地址空间向所述虚拟机返回所述处理结果。2.根据权利要求1所述的方法,其特征在于,获取预先映射得到的地址空间,并根据所述IO读写请求和所述地址空间获取物理机中存放所述数据的地址,包括:获取所述IO读写请求的上下文;根据所述IO读写请求的上下文计算得到所述数据的地址。3.根据权利要求2所述的方法,其特征在于,根据所述IO读写请求的上下文计算得到所述数据的地址包括:根据所述IO读写请求的上下文中携带的所述IO读写请求的信息以及所述地址空间的信息计算所述数据的地址,其中,所述IO读写请求的信息包括以下至少之一:所述IO读写请求的编号、所述IO读写请求的偏移、所述IO读写请求的大小、所述IO读写请求的相对地址;所述地址空间的信息包括至少之一:所述地址空间的起始地址、所述地址空间的长度。4.根据权利要求2或3所述的方法,其特征在于,在获取所述IO读写请求的上下文之前,所述方法还包括:在创建所述虚拟机的磁盘时,将所述磁盘对应的地址空间映射到所述物理机中得到所述地址空间,其中,所述地址空间的信息包括以下至少之一:该地址空间的起始地址、该地址空间的长度。5.根据权利要求1所述的方法,其特征在于,向所述存储设备提交所述IO读写请求包括:根据预先设置的限制条件判断是否允许向所述存储设备提交所述IO读写请求;在判断结果为允许的情况下,向所述存储设备提交所述IO读写请求。6.根据权利要求5所述的方法,其特征在于,向所述存储设备提交所述IO读写请求包括:在判断结果为不允许的情况下,在预定时间后向所述存储设备提交所述IO读写请求;或者,在预定时间后根据预先设置的限制条件再次判断是否允许向所述存储设备提交所述IO读写请求。7.根据权利要求5或6所述的方法,其特征在于,所述限制条件包括以下至少之一:对于所述虚拟机的磁盘,在第一预定时长内的处理的IO读写请求个数和/或处理的数据的量不超过阈值;对于所有虚拟机的磁盘,在第二预定时长内的处理的IO读写请求个数和/或处理的数据的量不超过阈值;所述IO读写请求的优先级;所述虚拟机的优先级。8.根据权利要求1所述的方法,其特征在于,所述方法还包括:在创建所述虚拟机的磁盘过程中,从线程池中为来自所述虚拟机的IO读写请求分配线程,其中,在所述线程上执行所述读写请求处理方法以处理所述虚拟机的磁盘的所有IO读写请求,所述线程池中包括至少一个线程,所有虚拟机的磁盘的IO读写请求均从所述线程池中分配线程进行处理。9.根据权利要求8所述的方法,其特征在于,一个虚拟机的磁盘的IO读写请求的所有处理均在一个线程上,一个线程能够同时处理多个虚拟机的磁盘的IO读写请求。10.根据权利要求8所述的方法,其特征在于,在所述线程上执行所述读写请求处理方法包括:在所述线程上运行事件循环;通过事件触发的方式在所述线程上执行所述读写请求处理方法。11.根据权利要求1所述的方法,其特征在于,所述存储设备包括以下至少之一:分布式存储设备、本地磁盘阵列RAID存储设备。12.一种基于虚拟机的读写请求处理方法,其特征在于,包括:接收读写所述虚拟机上的虚拟磁盘时产生的IO读写请求,其中,所述虚拟机为物理机上部署的任意一个虚拟机;获取所述IO读写请求所要请求的数据的映射地址,其中,所述映射地址用于将所述IO读写请求映射至所述物理机中后端存储装置的所述数据;按照所述映射地址提交所述IO读写请求至所述物理机中的后端存储装置,得到请求结果;接收所述后端存储装置处理所述IO读写所产生的请求结果;向所述虚拟机返回所述请求结果。13.根据权利要求12所述的方法,其特征在于,在读写所述虚拟机上的虚拟磁盘时产生IO读写请求之前,所述方法还包括:在所述虚拟机中创建所述虚拟磁盘之后,映射得到所述虚拟磁盘对应的地址空间,并从线程池中分配一个线程,其中,所述线程用于在读写所述虚拟磁盘时运行所述IO读写请求所触发的事件。14.根据权利要求13所述的方法,其特征在于,获取所述IO读写请求所要请求的数据的映射地址,包括:映射得到所述虚拟磁盘对应的地址空间的起始地址和长度;读取所述IO读写请求的信息,所述信息至少包括:请求编号、请求的相对地址;根据所述IO读写请求的相对地址和所述地址空间的起始地址,计算得到存放所述IO读写请求所要请求的数据的内存地址;按照计算得到的内存地址生成所述映射地址。15.根据权利要求13所述的方法,其特征在于,在获取所述IO读写请求所要请求的数据的映射地址之后,所述方法还包括:计算所述IO读写请求的请求量是否超过预设值;如果超出,则将所述IO读写请求放入等待队列;如果检测到定时时间到达,则从所述等待队列中读取所述IO读写请求;其中,所述定时时间为在所述线程池中注册的定时任务所限定的时长。16.根据权利要求12至15中...

【专利技术属性】
技术研发人员:田世坤
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛,KY

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1