且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

Xen基础学习

更新时间:2022-09-15 19:28:38

完整的Xen虚拟环境如下图:

Xen基础学习

图片来自Xen官方网站:http://www.xen.org/products/cloudxen.html
可以看到,整个Xen虚拟环境逻辑上分成四个部分:
Control Interface;
Domain 0;
Domai U;
Xen Hypervisor;
 
关于Control Interfaces:
包括XE Command Line Tool,用于控制Xen虚拟机和资源池。更多的,我们使用一些第三方的管理工具。官方列出的第三方工具:http://wiki.xen.org/wiki/XenManagementTools。
关于Domain 0(Dom 0):
它需要在其它 Domain U之前启动。用于和系统上运行的其他虚拟机进行交互,和物理I/O资源直接通信。Domain 0内部又包含一些XAPI、XAPI Lib、Ctrl IF等组件。
关于XEN Hypervisor:
它是介于操作系统和硬件之间的一个软件描述层。它负责在各个虚拟机之间进行 CPU 调度和内存分配,抽象出虚拟机的硬件,但不处理网络、磁盘等I/O请求。
我们一般所说的Xen,指的就是Hypervisor(管理程序或虚拟层)。可以参考官方wiki中关于Xen 4.0的描述。
官方wiki:http://wiki.xen.org/wiki/Xen_4.0_Release_Notes。
关于Guest Operating Systems:
图片右边的Linux和Windows称为Domain U,Doamin U分为PV Guest和HVM Guest。Linux就是Domain U PV Guest,Windows称为Domain U HVM Guest。
 
Xen_4.0_Release_Notes提到的相关知识(如无特别指明,下文提到的Xen一般指的是Xen Hypervisor。):
Xen对硬件的要求:
Xen主要是针对X86架构开发的,但目前的4.0版本也支持Intel IA-64。
Xen Doamin U PV Guest与硬件无关,但是HVM Guest(Windows)要求物理CPU支持虚拟化扩展(Intel VT或AMD-V)。另一方面,Xen对64位CPU的支持比32位CPU要好。
 Xen 4.0对硬件的所有要求同样适用于Xen 4.1,同时Xen 4.1有其额外的一些要求。
 
查看CPU是否支持虚拟化:

  1. cat /proc/cpuinfo |egrep -o '(pae|vmx|svm)' 
如果看到输出中有 pae,那么cpu就支持半虚拟化,如果输出中同时有pae和vmx/svm(注:vmx为intel,svm为amd),那么cpu支持全虚拟化。
 
关于Intel VT(VT与HT是不同的两个概念),参考:
http://publish.it168.com/2007/0608/20070608033501.shtml
http://baike.baidu.com/view/2236017.htm
 
对软件的需求: 

  1. yum groupinstall "Development Libraries" "Development Tools" 
  2. yum install glibc-devel.i686 
  3. yum install transfig wget texi2html libaio-devel dev86 glibc-devel e2fsprogs-devel gitk mkinitrd iasl xz-devel bzip2-devel pciutils-libs pciutils-devel SDL-devel libX11-devel gtk2-devel bridge-utils PyXML qemu-common qemu-img mercurial libidn-devel 
整个Xen基础环境的安装分为两个部分:Xen Hypervisor和Domain 0
关于Domain 0:
官方建议,如果有可能,强力推荐使用Debian、Fedora等Linux发行版,这些发行版都提供了一个Xen Domain 0,具有易于安装,与操作系统契合度高,安全的升级等优点。
各个Linux发行版中,官方首推RHEL5 / CentOS5。参考:http://wiki.xen.org/wiki/XenDom0Kernels。
 
Domain 0的安装:前面说过,Domain 0是一个修改过的Linux内核,所以它安装一般的Linux内核是一样的。安装过程可以参考官方文档:
http://wiki.xen.org/wiki/Compiling_Kernel_2.6.32
http://wiki.xen.org/wiki/RHEL6Xen4Tutorial
中文文档可以参考:
http://blog.csdn.net/philips123/article/details/6434747
想要省事,直接在Linux发行版中使用命令yum / apt-get kernel-xen!
 
关于Xen Hypervisor:
这个更简单,跟一般的软件安装相似。 

本文转自 li_qinshan 51CTO博客,原文链接:http://blog.51cto.com/share/723817