XEN平台由XEN HYPERVISOR(在物理硬件之上),DOMAINS(虚拟机,位于HYPERVISOR之上)组成。HYPERVISOR控制GUEST DOMAIN对物理机器硬件的访问。GUEST DOMAINS采用HYPERCALLS来通知HYPERVISOR以执行特权级别的指令,而不能直接执行特权级指令,HYPERVISOR正是通过这种方式处理GUEST DOMAINS请求。为了保证可靠的有效地硬件支持,所有的硬件驱动由IDD(ISOLATED DRIVER DOMAIN,也就是DOM0)来保护,IDD有特殊的优先级。GUEST DOMAINS访问DOM0的设备是通过POINT-TO-POINT LINKS。
XEN的网络设备块模型在每一个I/O通道连接以太网。在DOM0中的设备通道称为BACK-END接口,也就是VIFX.Y,其中X表示DomU的ID,Y表示对应于每一个DOMU的BACK-END接口的ID(同时,在DOMU中对应I/O通道叫ethY,也叫FRONT-END接口,这是GUEST DOMAIN中真正的物理接口).所有的包从I/O通道的一端进入,通过HYPERVISOR,才能到达另一端。
见fig 1:
有两个可能的地方来为每一个路由器实例进行转发:
1,在虚拟路由器的DOMU实例中,操作系统实行普通转发,这显然很简单(不需要对普通操作系统作修改)
2,所有的转发由DOM0来实行,这比较复杂(因为需要隔离每一个虚拟路由器)
用DOMU来转发的方法很简洁,是最有吸引力的解决方案,但是包在DOM0与DOMU之间流动的代价是多少,如果DOMU数量增加了呢?
A. XEN的包转发设置
XEN提供了三种机制来实现包在BACK-END接口与网络设备(物理机器的)之间的流动:BRIDGING(桥接),ROUTING(路由),NETWORK ADDRESS TRANSLATION(NAT,网络地址转换)。这些机制将由物理接口进入的流量转发到GUEST DOMAINS,把源于GUEST DOMAINS的包转发出去。默认地,XEN在DOM0中使用桥接方式桥接真实物理连接与虚拟接口,保证了运行于GUEST DOMAINS的应用程序与服务连接网络时的透明性。
FIG 1显示了DRIVER DOMAIN(DOM0)与GUEST DOMAIN的网络内部结构。XEN的默认配置采用软件实现的网桥(在DOM0中实现)来实现包在真实网络接口与BACK-END(与DOMUs相关联的)的传送。这样配置,所有的GUEST DOMAIN可以共享网络,但是DOM0的复杂程度加大了(当DOM0仅是提供基本服务时这并不是大事),这样的配置隔离了硬件设备,为GUEST DOMAIN访问设备提供了安全的方式。
当一个包到来时,DOM0中的设备驱动来处理它,包首先到达PETHY,PETHY是物理设备上的真实接口,它也被附加在网桥上。因此,这个网桥解包,并且根据目的GUEST DOMAIN的MAC地址把它转发到合适的BACK-END VIFX.Y接口。BACK-END接口把包交给HYPERVISOR,由HYPERSOR来传送到正确的FRONT-END接口。发向DOM0的一个接口的包也是这样的过程。
除了桥接模式之外,路由模式也是可以选择的方法。在后者的配置中,DOM0的ETHY接口就是真实的物理NIC(网卡)的接口(见FIG 2)
这种方式xx了附在每块网卡上的网桥。
在DOM0中,当包从一个物理接口转发到另一个物理接口时,将由本地的LINUX系统完成。
对于发送到或来自DOMU的包,BACK-END接口也将分配到IP地址,发至任何一个DOMU时,包将从DOM0的ETHY被路由到合适的VIFX.Y BACK-END接口,再通过HYPERVISOR将包传送到有地址DOMU ETHY接口(与桥接模式相似)。来自DOMU的包首先通过HYPERVISOR,然后被路由到对外接口(这是由路由协议与包中的目的地址决定的)。我们把这种模式称作“路由模式”。
待续…
译自:Evaluating Xen for Router Virtualization
Norbert Egi§ Adam Greenhalgh? Mark Handley? Micka¨el Hoerdt§ Laurent Mathy§ Tim Schooley?
§Computing Dept., Lancaster University,UK
fn:egi;m:hoerdt; l:mathyg@lancaster:ac:uk
?Dept. of Computer Science,University College London,UK
fa:greenhalgh;m:handley; t:schooleyg@cs:ucl:ac:uk