【技术实现步骤摘要】
读写请求处理方法及装置
本申请涉及软件领域,具体而言,涉及一种读写请求处理方法及装置。
技术介绍
在云计算环境中,一个数据中心的计算资源通过虚拟化技术切分为大量虚拟机(VirtualMachine,简称为VM,VM是一台服务器上虚拟出来的多个可以运行OS的实例),用户在VM中灵活部署自己的应用,例如web、社交、游戏、金融等,这些应用有的保存着重要数据,要求数据读写的时延越低越好,并且能做到7*24小时不间断服务、有足够好的可用性。对于这些数据的保存,可以根据不同的需要选择不同的存储方式。例如,有的应用要求有足够好的数据可靠性,因此,数据需要有多个冗余备份,这样即使单个服务器宕机也不影响使用,这种情况下,需要将VM磁盘接入到分布式存储。又例如,有的应用要求比较高的性能,IO的延时(IOLatency)要求的比较低,如果这些应用不需要进行冗余备份,此时,这些应用需要接入本地RAID存储。数据中心内部都由一个个集群组成,每个服务器上部署着虚拟化平台、后端存储(这里的后端存储包括上述段落中介绍的分布式存储和RAID存储)、业务管理监控系统等,这些系统本身也会消耗一些资源(如CPU、内存、网络等),并且虚拟机磁盘接入后端存储的链路,也会因此变长,这些因素都导致服务器上负载升级,让用户的IO时延(latency)升高。针对现有技术中IOlatency升高的问题,目前尚未提出有效的解决方案。
技术实现思路
本申请实施例提供了一种读写请求处理方法及装置,以至少解决现有技术中IOlatency升高的技术问题。根据本申请实施例的一个方面,提供了一种读写请求处理方法,包括:接收来 ...
【技术保护点】
一种读写请求处理方法,其特征在于,包括:接收来自虚拟机的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
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。