Xen 是一个开放源代码虚拟机监视器,由剑桥大学开发。它打算在单个计算机上运行多达100个满特征的操作系统。操作系统必须进行显式地修改(“移植”)以在Xen上运行(但是提供对用户应用的兼容性)。这使得Xen无需特殊硬件支持,就能达到高性能的虚拟化。
1.在vmware中安装好centos5.5系统
2.进入系统直接用yum -y install xen*//安装xen软件包本人已经在安装的时候直接选择server--base和虚拟化了。
3.查看/boot文件
[root@xenserver ~]# ls -hl /boot
total 7.1M
-rw-r--r-- 1 root root 68K Apr 3 2010 config-2.6.18-194.el5xen
drwxr-xr-x 2 root root 1.0K Nov 28 23:53 grub
-rw------- 1 root root 2.6M Nov 28 23:52 initrd-2.6.18-194.el5xen.img
drwx------ 2 root root 12K Nov 28 23:47 lost+found
-rw-r--r-- 1 root root 79K Mar 13 2009 message
-rw-r--r-- 1 root root 109K Apr 3 2010 symvers-2.6.18-194.el5xen.gz
-rw-r--r-- 1 root root 941K Apr 3 2010 System.map-2.6.18-194.el5xen
-rw-r--r-- 1 root root 2.2M Apr 3 2010 vmlinuz-2.6.18-194.el5xen//已经看见了xen
-rw-r--r-- 1 root root 374K Apr 3 2010 xen.gz-2.6.18-194.el5
-rwxr-xr-x 1 root root 811K Apr 3 2010 xen-syms-2.6.18-194.el5
4.查看/boot/grub/grub.conf文件是否正确
[root@xenserver ~]# cat /boot/grub/grub.conf
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You have a /boot partition. This means that
# all kernel and initrd paths are relative to /boot/, eg.
# root (hd0,0)
# kernel /vmlinuz-version ro root=/dev/hda3
# initrd /initrd-version.img
#boot=/dev/hda
default=0
timeout=5
splashp_w_picpath=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.18-194.el5xen) //
root (hd0,0)
kernel /xen.gz-2.6.18-194.el5
module /vmlinuz-2.6.18-194.el5xen ro root=LABEL=/
module /initrd-2.6.18-194.el5xen.img
修改其中的default=1为default=0,启用xen内核
5.重新启动linux系统。
6.启动检查xm是否正常。
[root@xenserver ~]# xm list
Name ID Mem(MiB) VCPUs State Time(s) //说明启动正常。
Domain-0 0 703 1 r----- 2226.1
7.检查/var/log/xen
[root@xenserver ~]# ls -hl /var/log/xen
total 200K
drwx------ 2 root root 4.0K Apr 3 2010 console
-rw-r--r-- 1 root root 44K Nov 29 17:17 domain-builder-ng.log
-rw-r--r-- 1 root root 324 Nov 29 16:30 xend-debug.log
-rw-r--r-- 1 root root 118K Nov 29 17:47 xend.log
-rw-r--r-- 1 root root 198 Nov 29 17:17 xen-hotplug.log
[root@xenserver ~]# cat /var/log/xen/xend-debug.log
Nothing to flush.
Nothing to flush.
以上说明xen启动正常,没什么问题。接下来就是创建客户机系统。
8.安装客户机系统是centos5.7从http网络安装系统,如下图所示:
上面是用virt-install --prompt交互模式来创建客户机的,也可以直接用3条命令即可。
dd if=/dev/zero of=/data/vm/centos.img bs=2k seek=4096k count=1
dd if=/dev/zero of=/data/vm/swap.img bs=2k seek=512k count=1
virt-install -n whoami -r 300 --vcpus=1 --nographic -f /data/vm/centos.img -l http://mirrors.163.com/centos/5.7/os/i386/
开始网络http安装了。
这里是选择安装方式是用text文本模式还是vnc模式。
正在安装系统
完成安装启动系统。
安装过后就是XEN虚拟机的管理,大家在命令行输入#xm --help
系统就会把所有关于XEN的命令都列出来,前面是命令,后面是解释
常用的有以下命令
显示虚拟机运行状态:xm list
开启虚拟系统:xm create <虚拟机名称>
使用文本方式连接虚拟系统:xm console <虚拟机名称>
关闭虚拟系统:xm shutdown <虚拟机名称> xm destroy <虚拟机名称>
重新启动虚拟系统:xm reboot <虚拟机名称>
X将虚拟系统当前状态保存到文件中:xm save <虚拟机名称> <文件名>
恢复已保存的虚拟系统:xm restore <文件名>
暂停虚拟系统:xm pause <虚拟机名称>
恢复被暂停的虚拟系统:xm unpause <虚拟机名称>
[root@xenserver ~]# xm list
Name ID Mem(MiB) VCPUs State Time(s)
Domain-0 0 703 1 r----- 2331.2
whoami 2 300 1 ------ 910.2
[root@xenserver ~]# xm console whoami
[root@xen1 ~]# fdisk -l
Disk /dev/xvda: 8589 MB, 8589936640 bytes
255 heads, 63 sectors/track, 1044 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/xvda1 * 1 13 104391 83 Linux
/dev/xvda2 14 89 610470 82 Linux swap / Solaris
/dev/xvda3 90 1044 7671037+ 83 Linux
从中遇到的问题就是在http安装客户机系统的时候就自动重启宿主机,不是进入文本安装界面,起初是选择centos 6.0,后来选择了5.7就可以进入安装界面了,xen的切换用ctrl+]切换即可,如果要再次连接用xm console 虚拟机name即可。
#如果觉得手动安装虚拟机比较麻烦,可以手动到 http://stacklet.com/去下载已经装好的镜像文件
[root@xenserver ~]# ls /etc/xen //xen的配置文件
auto qemu-ifup whoami xmexample1
centos scripts xend-config.sxp xmexample2
hao test xend-pci-permissive.sxp xmexample.hvm
ko web_001 xend-pci-quirks.sxp xmexample.vti
[root@xenserver ~]# cat /etc/xen/whoami //查看name为whoami的客户机
name = "whoami"
uuid = "90cb8fcb-6504-901e-4646-f093e96dcf3f"
maxmem = 300
memory = 300
vcpus = 1
bootloader = "/usr/bin/pygrub"
on_poweroff = "destroy"
on_reboot = "restart"
on_crash = "restart"
disk = [ "tap:aio:/data/vm/centos.img,xvda,w" ]
vif = [ "mac=00:16:3e:3b:d2:0a,bridge=xenbr0,script=vif-bridge" ]