桉树的部署依赖于虚拟机,桉树可以支持Xen和KVM两种虚拟机。比较稳定的虚拟机随Linux发行版本发布,建议在Linux发行版上部署桉树平台。如果在RHEL5.5/CentOS5.5上部署桉树,建议使用Xen虚拟机管理软件。
为了更好的管理虚拟机,桉树使用了libvirt API。选择那一种虚拟机要取决与计算机的硬件(有些支持Xen较好,有些支持KVM较好)和个人爱好。
另外还要考虑桉树对虚拟机的支持。桉树有些功能在某些组合下无法完成预期的效果。其中我们常见的问题有:在某些内核下出现”WARN_ON”消息,KVM无法指定设备,EBS无法正常工作(如:Debian "squeeze"2.6.30-2-amd64 kernel 和 KVM v88)。
B.1 RHEL5.5/CentOS5.5上安装Xen
请先确定”yum”是可用的,如果是RHEL,还要确保已经获得了序列号:
[root@node1]# yum install xenkernel-xen libvirt
安装Xen工具,Xen内核,libvirt管理层。下一步配置Xen守护进程。
B.1.1 配置Xen
安装完Xen和Xen内核之后,需要配置从Xen启动:
打开/etc/grub.conf文件,修改默认启动内核为xen,修改如下所示:
default=1timeout=5 splashimage=(hd0,0)/grub/splash.xpm.gz hiddenmenu
title CentOS (2.6.18-164.11.1.el5)
root (hd0,0)
kernel /vmlinuz-2.6.18-164.11.1.el5ro
root=/dev/VolGroup00/LogVol00
initrd /initrd-2.6.18-164.11.1.el5.img
title CentOS (2.6.18-164.11.1.el5xen)
root (hd0,0)
kernel /xen.gz-2.6.18-164.11.1.el5
module /vmlinuz-2.6.18-164.11.1.el5xenro
root=/dev/VolGroup00/LogVol00
module /initrd-2.6.18-164.11.1.el5xen.img
在本例中default为1时表示使用xen内核,否则为普通内核,下一步是设置xen。
打开/etc/xen/xend-config.sxp文件,设置如下:
(xend-http-server yes) (xend-unix-server yes)
(xend-unix-path /var/lib/xend/xend-socket) (xend-address localhost)
(network-scriptnetwork-bridge) (vif-script vif-bridge)
(dom0-min-mem 196) (dom0-cpus 0)(vncpasswd '')
在RHEL5.5和CentOS5.5上默认xend-http-server是no,所以必须修改为yes,并且重启。
B.1.2 使用Xen工具运行一个测试虚拟机
安装完Xen之后,最好使用命令行运行一下虚拟机,测试一下环境。如果命令行下无法运行虚拟机,那么在桉树平台下就更无法运行虚拟机。创建和运行虚拟机的命令为”xm create”。
B.2 RHEL5.5/CentOS5.5上安装KVM
首先确保yum可用,如果是RHEL还要获取许可权。此外还要从BIOS中确认硬件支持虚拟技术,并且要设置为可用状态,然后安装如下软件包:
[root@node1]# yum install kvmkmod-kvm kvm-qemu-img kvm-tools libvirt
[root@node1]# ln –s /usr/libexec/qemu-kvm/usr/bin/kvm
B.2.1 在KVM上运行一个测试虚拟机
运行KVM虚拟机使用kvm命令,命令支持较多参数,详细使用方法可以参考Linux发行版本中的文档说明。
B.3 配置libvirt
在Xen和KVM环境下,桉树是通过libvirt来管理虚拟机的,所以要正确配置libvirt的配置文件:
/etc/libvirt/libvirtd.conf
删除如下几行内容前面的注释符(#):
unix_sock_group = “libvirt”
unix_sock_ro_perms = “0777”
unix_sock_rw_perms = “0770”
注意,如果修改了libvirtd.conf配置文件,必须重启libvirtd守护进程。
B.3.1 使用virsh测试libvirt配置
首先,确认libvirtd守护进程是否运行:
[root@node1]#/etc/init.d/libvirtd start
然后,确认”eucalyptus”用户可以使用virsh list命令:
[root@node1]# su –c “virsh list” eucalyptus
Id Name State
--------------------------------
0 Domain-0
[root@node1]#
如果”virsh list”运行成功(提示:Domain-0说明成功),说明已经准备好,可以继续后面的操作。