【技术实现步骤摘要】
一种虚拟机域间通信模式的动态透明切换方法
本专利技术涉及云计算、操作系统、网络通信虚拟化领域中基于系统调用截获的虚拟机域间通信模式的动态透明切换方法。
技术介绍
虚拟化技术已成为云计算环境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列表、本地通信连接Hash表、初始化子模块、系统调用截获子模块、共生VM集合维护子模块、共生VM判定子模块、通信优化功能注销子模块组成:初始化子模块在VM成功启动且加载域间通信优化内核模块之后被触发,负责构建并初始化客户机共生VM列表、获取系统调用表地址、备份系统调用表中网络请求相关的各个系统调用的缺省处理函数地址、用系统调用截获子模块中入口处理组件替换系统调用缺省处理函数地址,与宿主机共生VM动态发现子模块、通信优化功能注销子模块、系统调用截获子模块连接,将本客户机使用了共生VM域间通信优化功能这一消息发送给宿主机共生VM动态发现子模块,将备份的缺省处理函数地址送给通信优化功能注销子模块,从系统调用截获子模块收到入口处理组件,用入口处理组件中自定义的函数替换系统调用缺省处理函数地址;所述系统调用表是Linux系统内核中固有的数据结构,由系统调用号和处理函数地址组成,在用户程序进行系统调用时,首先会传入系统调用号和参数,系统再通过系统调用号在系统调 ...
【技术特征摘要】
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
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。