一种高效的虚拟网络结构

2022-03-17 09:19:07 | 浏览次数:

zoޛ)j馟ii申请并添加更多的虚拟资源来提高自身的服务能力;而在服务低谷期,能把空闲的虚拟资源释放给其它应用组。不仅如此,本文提出的虚拟网络结构还能根据虚拟资源在物理平台上的实时分布状态,选择不同的信息传送机制。当虚拟资源位于不同的物理服务器上的时候,使用基于虚拟网络的通信机制;而当虚拟资源位于同一台物理服务器上的时候,使用基于共享内存的通信机制,满足云计算平台上虚拟资源之间的高性能通信的要求。最后,虚拟网络还对进出虚拟机的数据帧进行安全标记管理,只允许同一个应用组内的虚拟机交换信息,保证系统的安全性。

2 相关研究

虚拟化为云计算管理的简化和资源优化提供了解决方案,Xen虚拟化技术就是其中的代表,并通过虚拟局域网技术来构建虚拟化网络的安全防护体系。

2.1 Xen的虚拟网络

Xen是剑桥大学开发的一款开源的、优秀的虚拟化软件,由于有Intel开发的VT-X和AMD的SVM硬件虚拟化技术的支持,从3.0版本开始, Xen开始支持完全虚拟化技术,可以运行不加修改的操作系统。Xen上虚拟机之间通信的主要方式就是通过虚拟网络,即通过虚拟网卡实现网络通信。目前,同一台物理机上的不同虚拟机之间的通信和两台物理机之间通信的效率是一样的。然而位于同一台物理机上的虚拟机使用的是相同的物理硬件,它们之间的通信效率,理论上应该比两台物理机之间的通信效率要高,但目前的Xen虚拟化技术并没有考虑到这一点。物理机上的虚拟机之间通过虚拟网络通信时,虚拟机要调用套接字(Socket)接口,通过TCP/IP协议栈;同时还需要在客户虚拟机和特权虚拟机之间进行切换,这都大大影响了通信性能。

2.2 虚拟局域网

在交换式以太网中,利用虚拟局域网(Virtual Local Area Networks,以下简称VLAN)技术,可以将局域网设备划分成多个逻辑子网,从而实现虚拟工作组这种数据交换技术。通过将局域网络划分为虚拟网络VLAN网段,可以强化网络管理和网络安全,控制不必要的数据广播。虚拟局域网可以限制用户的访问域,控制工作组的大小和位置。同一个VLAN中的消息只有VLAN中的成员才能听到,而不会传输到其他VLAN中去,不同的VLAN之间不能相互通讯,增强了网络的安全性。VLAN网络中的站点与其所处的物理位置无关,可以根据需要灵活的加入不同的逻辑子网中。使用支持IEEE802.1Q VLAN协议的虚拟局域网技术能够满足云计算平台上不同应用群组的划分要求。

3 一种新的虚拟网络的设计

通过对以上技术的了解,我们在基于Xen虚拟化技术的系统平台上设计了一种高效的虚拟网络结构。如图1所示。

系统平台通过虚拟网络把完成相同工作或者运行相同应用的虚拟资源划分到同一个应用组中,当这些属于同一个应用组的虚拟资源位于同一台物理主机上时,它们之间会通过共享内存交换信息。这样的通信方式就不需要虚拟资源调用套接字和使用TCP/IP进行分装,同时也大大减少了和特权虚拟机之间的切换次数,能有效提高整个系统的通信效率。此外,应用组还能根据需要添加或释放组内的虚拟资源,实现系统平台对于资源的动态调度。为满足系统对于安全性的要求,该虚拟网络结构对进出虚拟机的数据帧进行安全标记管理,即根据安全标记管理策略对虚拟机向外发送的数据帧设置安全标记;而相应的要删除进入虚拟机的数据帧的安全标记。这样,虚拟网络就能禁止不同应用组内的虚拟机之间在VMM层的网络通信。

这种结构在保证系统安全性要求的同时,还具有许多优点。

(1)应用组是跨物理机的。不仅同一台物理机上的虚拟机可以分配到同一个应用组内,位于不同物理机上的虚拟机也可以分配到同一个应用组内,因此对于虚拟机所处的物理位置没有要求,便于对虚拟资源的规划和管理。

(2)虚拟资源的高利用率。应用组内的虚拟资源能够动态的增加和释放,在服务高峰期能够添加更多的虚拟资源以满足服务要求,而在服务低谷期能把空闲的虚拟资源释放给其它应用组,合理的调度有限的虚拟资源,提高资源的利用率。为了保证用户信息的安全,在释放之前需先把该虚拟资源还原到最初状态。

(3)高效的通信机制。由于同一个应用组里的虚拟机可能位于不同的物理服务器上,虚拟资源需要根据其实际物理位置选择不同的通信机制。当相互通信的虚拟机位于不同的物理机上时,虚拟机需要使用虚拟网络通过服务器的物理网卡实现同其它服务器上的虚拟机之间的通信;当虚拟机位于同一台服务器上的时候,由于它们使用相同的物理硬件,通过在特权虚拟机(Domain0)中实现一种基于共享内存的机制来实现它们之间的通信。该机制通过Xen中的虚拟机中介查询到同一台物理机上虚拟机的信息,然后通过超级调用(Hypercall)在Domain0上建立起共享内存,通过共享内存实现数据的传递。这样连接建立就不需要按照Socket的流程进行封装、传输与解包,同时只在共享内存建立时需要Domain0参与,极大减少了通信时同Domain0的切换次数,提高了通信性能。

4 虚拟网络及通信优化的实现

4.1 自适应的虚拟网络配置管理机制的实现原理

这种自适应的虚拟网络配置管理机制需要改进Xen上原本的虚拟网络结构,整个过程通过三个步骤来实现:划分应用组,应用组之间的通信隔离和应用组的跨物理机实现。其中,划分应用组是通过Xen上的网桥(Bridge)来实现的, Xen上的Bridge是被创建出来的逻辑设备,在Xen上通过多个Bridge把不同的虚拟资源关联起来构成一个个逻辑的VLAN,以此实现不同应用组的划分。

为了保证系统的安全性要求,需要隔离不同应用组之间的通信,这是通过对进出虚拟机的网络帧进行安全标记管理来实现的。如图2所示,物理机的网口eth0上创建了多个逻辑子网口,这些逻辑子网口关联到不同应用组的Bridge设备,同虚拟机在虚拟机监视器(Hypervisor)中的虚拟网络接口(vif设备)桥接起来。当应用组内的虚拟资源通过eth0发出数据帧之前会被加上标识该应用组ID的安全标记(以下简称Tag),因此eth0能区别属于不同应用组的数据帧。而当eth0转发数据帧到逻辑子网口的时候,如果该数据帧所携带的Tag和该应用组的ID相同,则eth0去掉该数据帧的Tag以便逻辑子网口能够识别;如果该数据帧的Tag同应用组的ID不同,则eht0不会去掉该数据帧的Tag,逻辑子网口无法识别带有Tag的数据帧,将直接丢弃这些数据帧。这样就保证了应用组内的消息只能被应用组内的虚拟资源所接收,实现了隔离不同应用组的目的。

最后,虚拟网络还要跨物理机实现应用组,这需要确保同一个应用组在多台物理机上使用相同的安全标记。安全标记的处理是在eth0处实现的,不同物理机上的应用组通过Bridge关联到eth0上ID相同的逻辑子网口上,这些不同的物理机上的应用组就属于同一个应用组,会使用相同的安全标记。如图3所示,虚拟机3和虚拟机4还有虚拟机5都通过Bridge桥接到各自物理主机上的逻辑子网口eth0.10,它们都属于同一个应用组10,相互之间能够通信,同时无法同其它应用组内的虚拟机通信,如属于组30的虚拟机1无法与属于组10的虚拟机3通信。

基于以上的虚拟网络结构,管理员可以根据需要动态调度系统平台上的虚拟资源。如果应用组内的服务正处于低谷期,管理员可以把组内处于空闲状态的虚拟资源释放给其它应用组使用。这时只需把空闲的虚拟资源从当前应用组中移除,然后添加到处于服务高峰期的应用组中。这只改变了虚拟资源的逻辑位置,而不用改变其具体的物理位置,简化了管理过程。

4.2 基于共享内存的通信机制的实现方法

实现虚拟机通信的最主要方式就是虚拟网络,即通过使用虚拟网卡实现网络通信。当云计算平台上的虚拟资源处于运行状态时,网络传输方面的开销非常大,这直接影响到整个平台的性能。因此,这种自适应的虚拟网络结构通过一种使用共享内存的机制来实现同一台物理服务器上虚拟资源之间的通信,提高系统通信性能。

整个通信优化方法由两个部分构成:虚拟机0中的一个通信中介,以及客户虚拟机中的通信代理。通信中介的主要功能是记录一台物理机上所有客户虚拟机的信息,包括Domain id, mac地址,应用组ID等信息存放在一个表中。客户虚拟机通过查询这个表,获得同一台物理机上其它客户虚拟机信息,如果其通信的目标客户虚拟机位于同一台物理机上且组ID相同,它们之间建立起共享内存进行通信。

共享内存是Xen中虚拟机之间交互的一种很好的机制,通过由Xen提供的一种共享内存页的机制,虚拟机可以实现一些共享策略,完成相互之间的通信。Xen虚拟机的共享内存是以页为基本单位的,通过一个整数来简单表示,这一系列整数指向了Grant Table中相应的入口,即Grant Table的索引。在Xen虚拟机中,每个虚拟机都有一个相应的Grant Table,它是一个和Xen共享的数据结构。

当虚拟机1和虚拟机2通信时,虚拟机1的通信代理向通信中介发起查询请求,通信中介查询自己维护的表格,如果虚拟机1和虚拟机2位于同一台物理机上,且应用组ID相同,则通信中介会告知虚拟机1其通信的目标虚拟机(虚拟机2)的Domain id,接着虚拟机1将自己内存页的访问权限授予虚拟机2,虚拟机2借助Hypercall将这些内存页映射到自己的地址空间中。这样,共享内存就建立起来了。因此,同一台物理机上相同应用群组内的虚拟机通信时,通信过程不需要通过TCP/IP协议栈对数据进行封装,以Hypercall代替了VMExit,同时以共享内存的形式代替了页映射机制,这样就在很大程度上提高了虚拟机之间的通信性能。

5 结束语

本文提出了一种高效的虚拟网络结构,通过在网络层划分应用群组,把运行相同应用或协作处理相同工作的虚拟资源划分到一起,根据需求动态调度虚拟资源,能够方便的对虚拟资源进行配置管理。同时这种虚拟网络结构对虚拟资源之间的通信进行优化,能根据虚拟资源在物理平台上的实时分布状态使用不同的通信机制,同时兼顾了系统的安全性。当同一应用组内的虚拟资源位于不同物理机上时,它们之间选择通过虚拟网卡进行通信;而当其位于同一台物理机上时,通过建立共享内存来交互信息,提高了通信效率。

参考文献

[1] 滕萍.云计算技术发展分析及其应用研究[J].信息网络安全,2012,(11):89-91.

[2] 胡春辉.云计算安全风险与保护技术框架分析[J].信息网络安全,2012,(07):87-89.

[3] 郭晓琼.虚拟机XEN及其内存管理研究[D].上海:上海交通大学.2008.

[4] Zhang jian, Li xiao yong, Guan hai bin. The optimization of xen network virtualization[J]. Proceedings International Conference on Computer Science and Software Engineering, (CSSE), p431-436,2008.

[5] Baraham P, Dragovic B, Fraser K, et al. Xen and Art of virtualization [C]. Proceedings of the 19th ACM SOSP, October 2003.

[6] 张建.Xen虚拟机间通信优化研究与实现[D].上海:上海交通大学.2008.

[7] 朱团结,艾丽蓉.基于共享内存的Xen虚拟机通信的研究[J].计算机技术与发展,2011,21(7):5-8.

作者简介:

陈涛(1989-),男,湖南益阳人,硕士研究生;主要研究方向:信息安全。

马威(1985-):男,河南郑州人,博士研究生;主要研究方向:可信计算。

刘刚(1973-):男,北京人,高级工程师;主要研究方向:网络及网络安全。

推荐访问: 高效 结构 虚拟 网络