1. 硬件要求
硬件需要满足如下要求:
1. 至少2G内存
2. 6G的硬盘空间
3. 对于全虚拟化需要CPU支持虚拟化技术
使用如下命令确认CPU的参数设置
- [root@test-19-227 ~]# cat /proc/cpuinfo | grep vmx
- flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx pdpe1gb rdtscp lm constant_tsc ida nonstop_tsc arat pni monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr sse4_1 sse4_2 popcnt lahf_lm
若要支持全虚拟机,则需要打开VT功能,如果没有开启VT,则需要进BIOS开启该功能
需要安装Xen 和 kernel-Xen软件包
Xen包:包含了Xen hypervisor 和Xen tools
kernel-xen: 是一个可以运行在Xen hypervisor虚拟机的linux内核
其他推荐工具:
- [root@test-19-227 ~]# yum install xen kernel-xen
python-virtinst:提供virt-install命令安装虚拟机
libvirt-python:提供了用python语言脚本管理Xen的接口
libvirt:提供了命令行工具管理Xen虚拟机
virt-manager:提供了图形化管理Xen虚拟机的工具
bridge-utils :该程序包存放的是用于配置以太网桥的实用程序,以太网桥的作用是将多个以太网设备连在一起。
Xen-libs :该程序包存放的是Xen的管理程序所需的程序库。
3. 编辑grub,使用Xen内核启动
修改前的grub文件:
- [root@test-19-227 ~]# vim /etc/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/vg_root/lv_root
- # initrd /initrd-version.img
- #boot=/dev/sda
- default=1
- timeout=5
- splashimage=(hd0,0)/grub/splash.xpm.gz
- hiddenmenu
- title CentOS (2.6.18-238.12.1.el5xen)
- root (hd0,0)
- kernel /xen.gz-2.6.18-238.12.1.el5
- module /vmlinuz-2.6.18-238.12.1.el5xen ro root=/dev/vg_root/lv_root
- module /initrd-2.6.18-238.12.1.el5xen.img
- title CentOS (2.6.18-194.el5)
- root (hd0,0)
- kernel /vmlinuz-2.6.18-194.el5 ro root=/dev/vg_root/lv_root
- initrd /initrd-2.6.18-194.el5.img
注意default=1,默认情况下用第二个内核启动,即使用title CentOS (2.6.18-194.el5)启动;
应该使用title CentOS (2.6.18-238.12.1.el5xen)启动,所以将default的值改为0。
修改后的grub文件:
- # 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/vg_root/lv_root
- # initrd /initrd-version.img
- #boot=/dev/sda
- default=0
- timeout=5
- splashimage=(hd0,0)/grub/splash.xpm.gz
- hiddenmenu
- title CentOS (2.6.18-238.12.1.el5xen)
- root (hd0,0)
- kernel /xen.gz-2.6.18-238.12.1.el5
- module /vmlinuz-2.6.18-238.12.1.el5xen ro root=/dev/vg_root/lv_root
- module /initrd-2.6.18-238.12.1.el5xen.img
- title CentOS (2.6.18-194.el5)
- root (hd0,0)
- kernel /vmlinuz-2.6.18-194.el5 ro root=/dev/vg_root/lv_root
- initrd /initrd-2.6.18-194.el5.img
启动参数的含义:
- title CentOS (2.6.18-238.12.1.el5xen) ##定义了内核的名称,该名称将在引导菜单时显示
- root (hd0,0) ##定义了引导系统的根分区
- kernel /xen.gz-2.6.18-238.12.1.el5 ##指定了需要引导的内核
- module /vmlinuz-2.6.18-238.12.1.el5xen ro root=/dev/vg_root/lv_root ##定义了用于DOM0的内核
- module /initrd-2.6.18-238.12.1.el5xen.img ##定义了内核初始化时加载的初始RAM磁盘镜像
重启前使用的内核:
- [root@test-19-227 ~]# uname -rm
- 2.6.18-194.el5 x86_64
重启后使用的内核:
- [root@test-19-227 ~]# uname -rm
- 2.6.18-238.12.1.el5xen x86_64
检查xend是否运行
- [root@test-19-227 ~]# ps -ef|grep xend
- root 5431 1 0 15:04 ? 00:00:00 /usr/bin/python /usr/sbin/xend start
- root 5432 5431 0 15:04 ? 00:00:00 /usr/bin/python
- root 5882 5846 0 15:09 pts/0 00:00:00 grep xend
检查domain0是否运行
- [root@test-19-227 ~]# xm list
- Name ID Mem(MiB) VCPUs State Time(s)
- Domain-0 0 15651 16 r----- 32.7
检查log输出
- [root@test-19-227 xen]# more xend-debug.log
- Nothing to flush.
- Nothing to flush
将centos的镜像文件挂载到服务器上,并且将文件复制到配置好的HTTP目录下即可。
安装vnc和vnc server
- [root@test-19-227 ~]# yum install vnc vnc-server
配置xend,配置如下选项
- [root@test-19-227 xen]# vim /etc/xen/xend-config.sxp
- (vnc-listen '192.168.19.227')
- (vncpasswd '')
重新启动Xend,如果重启不成功则需要重启机器
- [root@test-19-227 xen]# service xend restart
- [root@test-19-227 CentOS]# virt-install -n Centos_xen -r 8196 --vcpus=16 -f /opt/xen_centos/Centos_xen.disk -s 120 -v --os-type=linux --os-variant=rhel5 -l http://192.168.19.215/centos/
使用VNC客户端连接,开始安装
下面的过程和正常安装系统是一样的