Linux折腾记二十二:虚拟机体验之Xen篇——令人脑洞大开的奇异架构XEN虚拟机




Linux折腾记二十二:虚拟机体验之Xen篇——令人脑洞大开的奇异架构XEN虚拟机

2022-07-20 20:28:09 网络知识 官方管理员

  这一篇我要体验的虚拟机系统是Xen。在虚拟机领域,Xen具有非常高的知名度,其名字经常在各类文章中出现。同时Xen也具有非常高的难度,别说玩转,就算仅仅只是理解它,都不是那么容易。之所以如此,那是因为Xen采用了和我前面介绍的那几个虚拟机完全不同的架构。在这里,我称之为令人脑洞大开的奇异架构。

  比如说在经典的虚拟机架构中,虚拟机软件运行于HostSystem之中,而GuestSystem运行于虚拟机软件之中。为了提高GuestSystem的运行速度,虚拟机软件一般会在HostSystem中使用内核模块开一个洞,将GuestSystem的运行指令直接映射到物理硬件上。但是在Xen中,则根本没有HostSystem的概念,传说它所有的虚拟机都直接运行于硬件之上,虚拟机运行的效率非常的高,虚拟机之间的隔离性非常的好。

  当然,传说只是传说。我刚开始也是很纳闷,怎么可能让所有的虚拟机都直接运行于硬件之上。后来我终于知道,这只是一个噱头。虚拟机和硬件之间,还是有一个管理层的,那就是XenHypervisor。当然XenHypervisor的功能毕竟是有限的,怎么样它也比不上一个操作系统,因此,在XenHypervisor上运行的虚拟机中,有一个虚拟机是具有特权的,它称之为Domain0,而其它的虚拟机都称之为DomainU。

  Xen的架构如下图:

Linux折腾记,虚拟机,Xen

  从图中可以看出,Xen虚拟机架构中没有HostSystem,在硬件层之上是薄薄的一层XenHypervisor,在这之上就是各个虚拟机了,没有HostSystem,只有Domain0,而GuestSystem都是DomainU,不管是Domain0还是DomainU,都是虚拟机,都是被虚拟机软件管理的对象。

  既然Domain0也是一个虚拟机,也是被管理的对象,所以可以给它分配很少的资源,然后将其余的资源公平地分配到其它的Domain。但是很奇怪的是,所有的虚拟机管理软件其实都是运行在这个Domain0中的。同时,如果要连接到其它GuestSystem的控制台,而又不是使用远程桌面(VNC)的话,这些控制台也是显示在Domian0中的。所以说,这是一个奇异的架构,是一个让人很不容易理解的架构。

  这种架构桌面用户不喜欢,因为HostSystem变成了Domain0,本来应该掌控所有资源的主操作系统变成了一个受管理的虚拟机,本来用来打游戏、编程、聊天的主战场受到限制了,可能不能完全发挥硬件的性能了,还有可能运行不稳定了,自然会心里不爽。(Domain0确实不能安装专用显卡驱动,确实会运行不稳定,这个后面会讲。)但是企业级用户喜欢,因为所有的Domain都是虚拟机,所以可以更加公平地分配资源,而且由于DomainU不再是运行于Domian0里面的软件,而是和Domain0平级的系统,这样即使Domain0崩溃了,也不会影响到正在运行的DomainU。(真的不会有丝毫影响吗?我表示怀疑。)

  下面开始在Ubuntu系统中体验Xen。使用如下命令可以在Ubuntu的软件源中搜索和Xen相关的软件包以及安装XenHypervisor:

复制代码

发表评论:

最近发表
网站分类
标签列表