1、前提需求
1.1.简介
Xen是以GNU的GPL授权发布的自由软件,目的在于提供高效能、可支援不同操作系统同时运行且各个操作系统之间彼此相互独立的系统环境,Xen是基于X86架构开发出来的虚拟机控制器(Virtual Machine Hypervisor)。Xen虚拟化包括两种虚拟化方式,半虚拟化(Para-virtualization)和全虚拟化(Fully-virtualization)。这两种虚拟化都需要cpu的支持。半虚拟化的架构示意图:
确定cpu是否支持xen的运行:
半虚拟化:
x86_64的cpu都能支持半虚拟化的环境。x86的cpu需要支持物理地址扩展pae才可以支持。查看方式:
全虚拟化:全虚拟化需要cpu的支持,Intel提供VT技术,AMD提供SVM技术。
AMD cpu中需要有svm标签
2、两种方式安装Xen
2.1.新装操作系统时安装
如果是新安装操作系统,可以在安装的过程中选择Virtualization,其他步骤一样,系统安装好后,重启便可。
2.2.使用rpm包管理器安装
rpm ?ivh xen* xen-devel* virt-manager* kernel-xen*
说明:安装过程需要手工解决包依赖关系,所以实际的安装过程会由于环境不同略有不同。建议架设内部yum源,使用yum安装,一步到位。
3、开始使用Xen
3.1.启动Xen
重启机器,在grub初注意选择带有xen标签的启动项,登陆后使用使用命令查看xen的运行状况,当前由于并没有安装客户机,所以只能看到一个“Domain-0”,这就是控制其他虚拟机的平台。事实上它也是一个虚拟机,在xend启动的时候一起启动。
3.2. 创建一个虚拟机
1.创建一个lv,作为虚拟机的块设备
[[email protected] ~]# lvcreate -L 5G -n /dev/VolGroup/LogVol_Domain-3 VolGroup
说明:可以使用单独的硬盘分区、系统文件等作为虚拟机的块设备,这里使用lv作为例子。
2.准备好安装源,支持方式有http,nfs,等,本处使用nfs
把需要安装的Linux操作系统的安装光盘中的所有内容拷贝到一个目录,并使用nfs共享出来。本次例子中使用的目录是/usr/local/src/centos5.4,如下图所示:
3.使用virt-install工具安装虚拟机
virt-install ?n Domain-3 ?r 256 ?f /dev/VolGroup/LogVol_Domain-3 ?l nfs:10.100.2.202:/usr/local/src/centos5.4
说明:
-n 指定虚拟机名
-r 指定内存大小
-f 指定块设备
-l 指定安装介质
出现如上的界面后,只需要按照正常的安装步骤完成即可。
4.启动虚拟机。安装完成后,虚拟机会自动关闭,需要手工重启该虚拟机,注意前面的安装过程中,已经在/etc/xen下自动生成了一个配置文件“Domain-3”。
使用命令xm create /etc/xen/Domain-3启动虚拟机,使用xm list查看。
3.3. 分析虚拟机配置文件
name = "Domain-3"
uuid = "a24d5012-bc4d-8692-7d46-a7a661874b74"
maxmem = 256 #虚拟机可以使用的最大内存,用命令动态分配时,最大不能超过该大小
memory = 256 #启动虚拟机时的初始化分配的内存
vcpus = 1 #虚拟cpu的个数,最大为32
bootloader = "/usr/bin/pygrub" #虚拟器引导文件
on_poweroff = "destroy"
on_reboot = "restart"
on_crash = "restart"
disk = [ "phy:/dev/VolGroup/LogVol_Domain-3,xvda,w"] #虚拟机使用的块文件
vif = [ "mac=00:16:36:75:07:00,bridge=xenbr0,script=vif-bridge" ] #虚拟网卡参数
3.4. 部分优化(可选,供参考)
1.修改/boot/grub/menu.lst,在kernel后添加dom0_mem=512M dom0_max_vcpus=1
其中dom0_mem保留给Domain-0使用的内存数
dom0_max_vcpus限制Domain-0最大可见cpu数
2.将某个cpu给特定的虚拟机
xm vcpu-pin <Domain> <VCPU> <CPUs>
3.调整虚拟机的优先级
xm sched-credit -d <Domain> [-w[=WEIGHT]|-c[=CAP]]
3.5. 常见命令
xm create /path/to/config_file
xm shutdown DomainName
xm reboot DomainName
xm pause DomainName
xm resume DomainName
xm console DomainName
更多命令请使用 xm -help查看
鼎峰小胡
QQ.2881064155
[email protected]