一种虚拟机域间通信模式的动态透明切换方法技术

技术编号:11448552 阅读:95 留言:0更新日期:2015-05-13 20:49
本发明专利技术公开了一种虚拟机域间通信模式的动态透明切换方法,目的是解决现有切换方法要么不能保证用户透明性、要么通信效率较低的问题。技术方案是在客户机操作系统中构造由初始化、系统调用截获、共生VM集合维护、共生VM判定、通信优化功能注销5个子模块构成的域间通信优化内核模块;在宿主机操作系统中构造由共生VM动态发现子模块与共生VM发布子模块构成的共生VM动态发现与发布模块;由域间通信优化内核模块和共生VM动态发现与发布模块优化虚拟机域间通信,通过动态发现共生VM、截获网络请求相关的系统调用等手段实现虚拟机域间通信时本地模式与远程模式之间的透明切换,提高了通信效率,且支持VM在线迁移、无需修改操作系统内核。

【技术实现步骤摘要】
一种虚拟机域间通信模式的动态透明切换方法
本专利技术涉及云计算、操作系统、网络通信虚拟化领域中基于系统调用截获的虚拟机域间通信模式的动态透明切换方法。
技术介绍
虚拟化技术已成为云计算环境IaaS(InfrastructureasaService)层的重要使能技术之一。它通过虚拟机监控器VMM(VirtualMachineMonitor)软件对物理计算机的CPU、内存、I/O等设备进行虚拟化,在一台物理计算机(简称物理机)上虚拟出多个虚拟机VM(VirtualMachine,也称虚拟机域),每个VM都运行一个客户操作系统(GuestOS,客户机)。VMM与一个特权虚拟机域(Dom0或HostOS,宿主机)协调,保证位于同一物理计算机上的VM之间的相互隔离,支持无需宕机的前提下将VM从一台物理机在线迁移(LiveMigration)到另一台物理机。虚拟化技术在VM功能和性能隔离、基于VM在线迁移的负载均衡和系统容错、应用移植性、提高资源利用率、降低运维难度和成本等方面的优势使其被广泛应用于以Amazon为代表的大型数据中心和云计算环境的IaaS平台中,其典型应用涵盖高性能计算、大规模分布式计算、Web事务处理,等等,对于这类应用,网络通信是其负载的重要组成部分。通常将位于同一物理机上的VM称为共生(co-located)VM。导致VM间通信性能折损的一个重要原因在于基于VMM的VM间通信并不区分数据传输请求是否来自于共生VM,即并不判断通信双方是否具有共生关系。这就使得无论通信双方VM是否位于同一物理机上,都将采用基于TCP/IP的虚拟网络远程通信模式,通信数据的发送和接收均需经过多层网络协议栈,通信路径比较长,且各VM与Dom0/VMM之间的上下文切换比较频繁,通信性能开销较大。而共生VM间的通信已成为虚拟网络通信负载中不可忽视的组成部分,对于位于同一物理机上的共生VM间通信而言,基于TCP/IP的远程通信模式会产生不必要的性能损耗。因此,如何面向共生VM进行通信优化成为一个值得关注的问题。一类现有的方法是建立共生关系感知(Co-locationAware)的虚拟机域间通信优化机制,即通过判断通信双方VM是否在同一台物理机上来区别处理:对于共生VM域间的通信,采用本地共享内存机制建立共享内存通道,以取代通信路径较长的基于TCP/IP的通信路径,从而降低通信开销,该通信模式称为本地模式;对于不在同一台物理机上的非共生VM,仍采用基于TCP/IP的传统方式进行通信,该通信模式称为远程模式。该方法支持面向共生VM的域间通信优化,可有效缩短基于TCP/IP的虚拟网络通信路径长度、并减少上下文切换次数,从而提高运行在VM中的以Web系统、高性能Grid应用、在线事务处理、分布和并行计算系统等为代表的网络通信密集型应用的通信效率。VM在线迁移是虚拟化技术的重要特性,VM在线迁移是指在不中断服务的前提下,将正在运行的VM从一台物理机移植到另一台物理机上,该特性能够有效支持系统负载平衡、容错恢复、降低能耗及提高可管理性,设计良好的共生关系感知的虚拟机域间通信优化机制在提高虚拟机域间通信效率的同时不应破坏该特性,这就为该类机制的构建带来了一定难度,为了保持VM在线迁移特性,需支持虚拟机域间通信的本地模式和远程模式之间的透明切换。如何在保证通信模式切换对用户透明的前提下,支持VM在线迁移、共生VM动态发现和共生VM集合维护、以及虚拟机域间通信模式的切换,且以较小的性能开销实现虚拟机域间通信模式切换,是本领域技术人员极为关注的技术问题。目前,已有的支持VM在线迁移的共生关系感知的虚拟机域间通信机制有IVC(Inter-VMCommunication)、XWAY、XenLoop和MMNet(Memory-MappedNetwork)。然而,IVC和XWAY采用预先设置的方式来静态确定参与通信的各台物理机上的共生VM集合,能够支持共生VM之间本地通信模式与非共生VM之间远程通信模式之间的自动切换,但由于VM在线迁移发生的时机并不总是预先确定的,这类方法不能支持两种通信模式之间对用户的透明切换。而XenLoop和MMNet均支持VM在线迁移、共生VM动态发现和共生VM集合维护、以及虚拟机域间通信模式的透明切换。但XenLoop和MMNet都是IP层之下完成网络请求的截获,由于其请求截获机制在TCP/IP网络协议栈中所处层次较低,与更高层次的截获方法相比,数据传输需要经过更长的通信路径,且需要在所经过的网络协议栈中逐层进行数据封装或解封,带来的性能开销较大。鉴于此,本专利技术提出一种新的支持VM在线迁移的共生关系感知且开销更小的虚拟域间通信机制。
技术实现思路
本专利技术要解决的技术问题是:针对目前Linux系统中共生关系感知的虚拟机域间通信模式切换方法的不足,即要么不能在支持在线迁移的同时保证用户透明性、要么实现层次偏底层、通信效率较低,提出一种基于系统调用截获的虚拟机域间通信模式的透明切换方法,该方法通过动态发现共生VM、以及截获网络请求相关的系统调用(系统调用是由操作系统实现提供的所有系统调用所构成的集合即程序接口或应用编程接口,是应用程序同系统之间的接口)的手段来实现虚拟机域间通信时本地模式与远程模式之间的透明切换,使得用户透明性和通信效率得以兼顾,同时,该方法还具有支持VM在线迁移、无需修改操作系统内核等特点。其基本思想是:为网络通信相关的系统调用分别构造对应的自定义处理函数,将系统调用的原有缺省处理函数替换为自定义函数,自定义函数根据在截获网络通信相关系统调用请求时所获取的通信双方VM信息、利用已构造的共生VM动态发现和发布、共生VM集合维护机制来判定通信双方VM是否是共生VM,若是共生VM,则采用基于共享内存的本地通信模式,否则,重定向到操作系统中原有的面向TCP/IP的缺省处理函数进行处理。本专利技术的技术方案是:在客户机操作系统中构建域间通信优化内核模块,在宿主机中构建共生VM动态发现与发布模块,该模块由共生VM动态发现和共生VM发布两个子模块组成。在描述本专利技术的具体思想之前,首先对本专利技术所用到的几大重要数据结构及其操作进行说明。1.系统调用表(sys_call_table):Linux系统分为内核态和用户态,用户程序无法直接运行内核态的函数,必须借助系统调用实现,如建立网络连接,发送网络数据,接收网络数据等。系统调用表是Linux系统内核中固有的数据结构,由系统调用号和处理函数地址组成,在用户程序进行系统调用时,首先会传入系统调用号和参数,系统再通过系统调用号在系统调用表中找到相应的处理函数地址,最后找到相应的处理函数对参数进行处理。本专利技术的技术方案针对系统调用表的操作主要有:a)更改系统调用表所在页的读写属性:为了安全起见,系统调用表的初识属性是只读,为了能够替换处理函数地址,需要将系统调用表的属性更改为可写属性。b)备份原处理函数地址:即将原处理函数地址值取出,赋给函数备份指针。c)替换处理函数地址:将系统调用表中的处理函数地址更改为自定义的处理函数地址。d)恢复系统调用原处理函数地址:将原处理函数备份指针重新写到系统调用表相应位置。在本专利技术技术方案中,要截获的系统调用是网络请求相关系统调用,主要有:建立网络连接本文档来自技高网
...
一种虚拟机域间通信模式的动态透明切换方法

【技术保护点】
一种虚拟机域间通信模式的动态透明切换方法,其特征在于包括以下步骤:第一步,在客户机操作系统中构造域间通信优化内核模块,该模块由客户机共生VM列表、本地通信连接Hash表、初始化子模块、系统调用截获子模块、共生VM集合维护子模块、共生VM判定子模块、通信优化功能注销子模块组成:初始化子模块在VM成功启动且加载域间通信优化内核模块之后被触发,负责构建并初始化客户机共生VM列表、获取系统调用表地址、备份系统调用表中网络请求相关的各个系统调用的缺省处理函数地址、用系统调用截获子模块中入口处理组件替换系统调用缺省处理函数地址,与宿主机共生VM动态发现子模块、通信优化功能注销子模块、系统调用截获子模块连接,将本客户机使用了共生VM域间通信优化功能这一消息发送给宿主机共生VM动态发现子模块,将备份的缺省处理函数地址送给通信优化功能注销子模块,从系统调用截获子模块收到入口处理组件,用入口处理组件中自定义的函数替换系统调用缺省处理函数地址;所述系统调用表是Linux系统内核中固有的数据结构,由系统调用号和处理函数地址组成,在用户程序进行系统调用时,首先会传入系统调用号和参数,系统再通过系统调用号在系统调用表中找到相应的处理函数地址,最后找到相应的处理函数对参数进行处理,系统调用表在操作系统内核中对应一段连续的内存,系统调用表地址即这段内存的起始地址;所述客户机共生VM列表存放与客户机存在共生关系的VM,每个列表项由<DomID,IP>二元组和一个Hash表指针组成,DomID是共生VM的ID,IP是共生VM的IP地址,Hash表指针指向一个本地通信连接Hash表;若系统中存在n个共生VM,则每个客户机中的共生VM列表中有n-1项,第i项代表代表第i个共生VM,表项中的Hash表指针指向客户机与VMi之间的本地通信连接Hash表;所述本地通信连接Hash表中存放的每一项代表Hash表所在的客户机与某共生VM之间的一组本地通信连接,若客户机与VMi存在n组本地通信连接,则客户机共生VM列表第i项Hash表指针所指向的Hash表就存在n项;Hash表项以通信端口号为关键字做Hash运算并存放以下数据:通信端口号;发送缓冲区地址和大小、接收缓冲区地址和大小;系统调用截获子模块由入口处理组件、本地通信连接管控组件、数据发送与接收组件组成;入口处理组件与通信优化功能注销子模块、共生VM判定子模块连接,负责触发本地通信连接管控组件或数据发送与接收组件,将备份的原缺省处理函数地址送给通信优化功能注销模块,将请求的数据发送或接收地址送给共生VM判定模块;本地通信连接管控组件与共生VM集合维护子模块、数据发送与接收组件连接,负责建立或关闭通信双方VM间的基于共享内存的连接,它从共生VM集合维护子模块中接收当前共生VM集合的变化信息,更新通信双方VM间的基于共享内存的连接状态,将基于共享内存的连接状态送给数据发送与接收组件;数据发送与接收组件与共生VM集合维护子模块、入口处理组件及本地通信连接管控组件连接,负责处理数据发送或接收请求,它从入口处理组件接收数据接收或者发送的请求地址及数据,将其送给本地通信管控组件;从共生VM集合维护子模块收到共生VM变更信息,将共生VM变更信息送给本地通信管控组件;共生VM判定子模块与共生VM集合维护子模块和系统调用截获子模块的入口处理组件相连,负责判定通信双方VM是否是共生VM;共生VM判定子模块从系统调用入口处理组件接收请求的IP信息,从共生VM集合维护子模块接收最新的客户机共生VM列表,对客户机共生VM列表执行查找操作,将查找结果送给入口处理组件;共生VM集合维护子模块与宿主机、系统调用截获子模块的本地通信连接管理组件相连,负责更新本客户机中客户机共生VM列表中共生VM集合成员信息;共生VM集合维护子模块接收来自宿主机的共生VM集合成员变更事件和对应的VM的<DomID,IP>、更新本客户机的客户机共生VM列表;通信优化功能注销子模块负责在用户卸载域间通信优化内核模块时注销当前客户机的域间通信优化功能,使得客户机与共生VM之间通信重新采用基于TCP/IP的远程模式;通信优化功能注销子模块与初始化子模块、宿主机、系统调用截获子模块的本地通信管控组件连接,从初始化子模块收到原系统调用缺省处理函数地址,将这些函数地址重写到系统调用表中,将注销消息送给宿主机的共生VM动态发现子模块,将关闭所有共生VM连接的消息发送给客户机的本地通信连接管控组件;第二步,在宿主机操作系统中构造共生VM动态发现与发布模块,该模块由共生VM动态发现子模块与共生VM发布子模块构成;共生VM动态发现子模块负责创建并维护宿主机共生VM列表,它与客户机的初始化子模块、客户机通信优化功能注销子模块连接,将该客户机的DomID和IP添加到宿主机共...

【技术特征摘要】
1.一种虚拟机域间通信模式的动态透明切换方法,其特征在于包括以下步骤:第一步,在客户机操作系统中构造域间通信优化内核模块,该模块由客户机共生VM列表、本地通信连接Hash表、初始化子模块、系统调用截获子模块、共生VM集合维护子模块、共生VM判定子模块、通信优化功能注销子模块组成:初始化子模块在VM成功启动且加载域间通信优化内核模块之后被触发,负责构建并初始化客户机共生VM列表、获取系统调用表地址、备份系统调用表中网络请求相关的各个系统调用的缺省处理函数地址、用系统调用截获子模块中入口处理组件中的自定义的处理函数地址替换系统调用缺省处理函数地址,与宿主机共生VM动态发现子模块、通信优化功能注销子模块、系统调用截获子模块连接,将本客户机使用了共生VM域间通信优化功能这一消息发送给宿主机共生VM动态发现子模块,将备份的缺省处理函数地址送给通信优化功能注销子模块,从系统调用截获子模块收到入口处理组件,用入口处理组件中的自定义的处理函数地址替换系统调用缺省处理函数地址;所述系统调用表是Linux系统内核中固有的数据结构,由系统调用号和处理函数地址组成,在用户程序进行系统调用时,首先会传入系统调用号和参数,系统再通过系统调用号在系统调用表中找到相应的处理函数地址,最后找到相应的处理函数对参数进行处理,系统调用表在操作系统内核中对应一段连续的内存,系统调用表地址即这段内存的起始地址;所述客户机共生VM列表存放与客户机存在共生关系的VM,每个列表项由<DomID,IP>二元组和一个Hash表指针组成,DomID是共生VM的ID,IP是共生VM的IP地址,Hash表指针指向一个本地通信连接Hash表;若系统中存在n个共生VM,则每个客户机中的共生VM列表中有n-1项,第i项代表第i个共生VM,表项中的Hash表指针指向客户机与VMi之间的本地通信连接Hash表;所述本地通信连接Hash表中存放的每一项代表Hash表所在的客户机与某共生VM之间的一组本地通信连接,若客户机与VMi存在n组本地通信连接,则客户机共生VM列表第i项Hash表指针所指向的Hash表就存在n项;Hash表项以通信端口号为关键字做Hash运算并存放以下数据:通信端口号;发送缓冲区地址和大小、接收缓冲区地址和大小;系统调用截获子模块由入口处理组件、本地通信连接管控组件、数据发送与接收组件组成;入口处理组件与通信优化功能注销子模块、共生VM判定子模块连接,负责触发本地通信连接管控组件或数据发送与接收组件,将自定义的处理函数地址送给通信优化功能注销模块,将请求的数据发送或接收地址送给共生VM判定模块;本地通信连接管控组件与共生VM集合维护子模块、数据发送与接收组件连接,负责建立或关闭通信双方VM间的基于共享内存的连接,它从共生VM集合维护子模块中接收当前共生VM集合的变化信息,更新通信双方VM间的基于共享内存的连接状态,将基于共享内存的连接状态送给数据发送与接收组件;数据发送与接收组件与共生VM集合维护子模块、入口处理组件及本地通信连接管控组件连接,负责处理数据发送或接收请求,它从入口处理组件接收数据接收或者发送的请求地址及数据,将其送给本地通信管控组件;从共生VM集合维护子模块收到共生VM变更信息,将共生VM变更信息送给本地通信管控组件;共生VM判定子模块与共生VM集合维护子模块和系统调用截获子模块的入口处理组件相连,负责判定通信双方VM是否是共生VM;共生VM判定子模块从系统调用入口处理组件接收请求的IP信息,从共生VM集合维护子模块接收最新的客户机共生VM列表,对客户机共生VM列表执行查找操作,将查找结果送给入口处理组件;共生VM集合维护子模块与宿主机、系统调用截获子模块的本地通信连接管理组件相连,负责更新本客户机中客户机共生VM列表中共生VM集合成员信息;共生VM集合维护子模块接收来自宿主机的共生VM集合成员变更事件和对应的VM的<DomID,IP>、更新本客户机的客户机共生VM列表;通信优化功能注销子模块负责在用户卸载域间通信优化内核模块时注销当前客户机的域间通信优化功能,使得客户机与共生VM之间通信重新采用基于TCP/IP的远程模式;通信优化功能注销子模块与初始化子模块、宿主机、系统调用截获子模块的本地通信管控组件连接,从初始化子模块收到原系统调用缺省处理函数地址,将这些函数地址重写到系统调用表中,将注销消息送给宿主机的共生VM动态发现子模块,将关闭所有共生VM连接的消息发送给客户机的本地通信连接管控组件;第二步,在宿主机操作系统中构造共生VM动态发现与发布模块,该模块由共生VM动态发现子模块与共生VM发布子模块构成;共生VM动态发现子模块负责创建并维护宿主机共生VM列表,它与客户机的初始化子模块、客户机通信优化功能注销子模块连接,将该客户机的DomID和IP添加到宿主机共生VM列表中;从客户机通信优化功能注销子模块接收客户机注销了域间通信优化功能的消息,将该客户机从共生VM列表中删除;共生VM发布子模块负责将共生VM列表发布给本物理机上加载了域间通信优化内核模块的客户机,它与客户机的共生VM集合维护子模块连接,将最新共生VM列表送给客户机的共生VM集合维护子模块;第三步,采用客户机中的域间通信优化内核模块和宿主机中的共生VM动态发现与发布模块优化虚拟机域间通信,具体步骤为:3.1在客户机中加载虚拟域间通信优化内核模块:3.1.1客户机触发域间通信优化内核模块中的初始化子模块,初始化子模块进行以下初始化:3.1.1.1将本客户机“使用了共生VM域间通信优化功能”这一消息发送给宿主机;3.1.1.2构建并初始化客户机共生VM列表,即向系统申请一段内存空间,列表数目为0;3.1.1.3获取本客户机操作系统中的系统调用表地址,备份系统调用表中网络请求相关的各个系统调用的缺省处理函数地址,将系统调用表所在内存页映射到一片新的可写的虚地址空间;3.1.1.4将系统调用截获模块的入口处理组件的地址写入所映射到的内核内存页面中的系统调用表中网络通信请求相关的各表项中,以替换系统调用的原有缺省处理函数地址;3.1.1.5请求操作系统预留连续的虚地址空间,并向VMM发出请求,由其建立共享内存缓冲区,用于存放相互通信的VM的本地通信连接、待传输的数据和待处理的事件;3.2在宿主机中加载共生VM动态发现与发布模块:3.2.1宿主机触发共生VM动态发现子模块;3.2.1.1共生VM动态发现子模块初始化宿主机共生VM列表,即向系统申请一段内存空间,列表数目为0;3.2.1.2共生VM动态发现子模块请求从VMM获取宿主机共生VM列表中的相关客户机的<DomID,IP>映射关系项,以及监...

【专利技术属性】
技术研发人员:任怡吴庆波刘仁仕戴华东孔金珠管剑波邵立松阳国贵高珑史佩昌刘晓东吕品
申请(专利权)人:中国人民解放军国防科学技术大学
类型:发明
国别省市:湖南;43

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

1