Xen是一个开放源代码虚拟机监视器,由剑桥大学开发。它打算在单个计算机上运行多达128个有完全功能的操作系统。
在旧(无虚拟硬件)的处理器上执行Xen,操作系统必须进行显式地修改(“移植”)以在Xen上运行(但是提供对用户应用的兼容性)。这使得Xen无需特殊硬件支持,就能达到高性能的虚拟化。
Xen的架构如图:
Xen虚拟机的组成:
Xen Hypervisor:
虚拟化技术通过在现有平台(机器)上添加一层薄的虚拟机监控程序(Virtual Machine Monitor,简称 VMM)软件而实现对系统的虚拟化,如虚拟处理器,虚拟内存管理器(MMU)和虚拟 I/O 系统等。虚拟机监控程序又被称之为监管程序(Hypervisor)。
Domain(Dom0,DomU):
特权虚拟机:Dom0;特权域
为Xen提供控制工具的;直接驱动IO硬件设备;
与DomU交互;
Linux-2.6.37内核开始直接运行在Dom0上;
其他普通虚拟机:DomU;非特权域
Linux-2.6.24+内核开始支持
Xen的虚拟化实现方式:
Type-I型:二级虚拟化技术;直接在硬件上安装hypervisor,直接接管硬件资源,运行在其上的系统都是虚拟机;
管理方面更彻底;必须让hypervisor驱动硬件,
出现的问题是必须开发驱动程序?
解决方案:Xen只是驱动CPU和内存,不驱动IO设备
当系统启动时,硬件设备加载后加载hypervisor,hypervisor拥有访问硬件权限,hypervisor加载完成后启动一个虚拟机,虚拟机有自己的内核和用户空间,这个虚拟机是 特权虚拟机,为底层hypervisor提供管理程序,能功能是为hypervisor提供IO设备硬件驱动 程序的;
我们新建的虚拟机调用IO设备硬件时,是通过特权虚拟机驱动程序连接硬件实现;
xen虚拟化实现在CentOS 6.7上安装所需要的条件:
1).需要在物理机上安装CentOS 6.7操作系统
2).安装Xen软件包
3).安装4.9.188的内核,可以使Xen运行在Dom0上
4).配置好grub,然后启动Xen
5).在用户空间上安装虚拟机Guest OS即可;
注意:最新版本的xen在CentOS 6.7平台上是只有DomU可以使用,Dom0是不能通过CentOS 6.6的原有内核实现,我这里是安装的xen-4.2.5版本的xen,还有将内核版本更新到了4.9.188;
简单介绍一些XEN和KVM:
Xen:CentOS4-CentOS5是支持的;后续就是xen了,但是在内核版本Linux 2.6.37将xen收录进内核,CentOS7收录进内核;可以实现内核直接运行在Dom0上;
KVM:2006才出现;CentOS5.8开始支持;但是不稳定,红帽的收购造成了KVM的发展;
CentOS6.6的内核为2.6.32,不直接支持内核运行Xen的Dom0特权域;
可以支持直接运行在DomU
红帽为了支持KVM这个亲儿子的发展,将xen给赶出家门了。 -_-!
后来意识到XEN的使用率还是很高,所以又在后来收录进内核。
xen虚拟机的安装和配置
上面安装好Dom0D虚拟机后,下面我们就可以在其之上配置安装DomU虚拟机了。
DomU虚拟机的安装问题思考:
1).DomU虚拟机的内核文件存放位置。
我们是在Dom0上构建DomU虚拟机,所以我们的内核文件存放在Dom0上;
第二种方式就是我们将内核文件存放在DomU虚拟机的虚拟磁盘中;
2).DomU虚拟机的创建:
内核kernel,ramdisk都由Dom0提供,而DomU只提供用户空间;
由于Dom0虚拟机有完整的用户空间,我们可以将其复制进DomU虚拟机上使用;
1.简单DomU虚拟机构建
内核kernel和ramdisk都由Dom0提供,使用busybox为DomU虚拟机提供简单的用户空间;
1).模拟创建虚拟机磁盘设备,构建本地环回文件:
配置如下图所示:
选择“Busybox settings”:
复制完成后卸载虚拟机磁盘:
# umount /mnt
| 欢迎光临 黑帽联盟 (https://bbs.cnblackhat.com/) | Powered by Discuz! X2.5 |