我用的是centos 5.7 x64,最好是64位的,64位能够支持4G以上内存,否则你的物理机虚拟不了几个虚拟机
1.安装xen
1.1安装
-
yum -y install kernel-xen xen
-
yum install audit-libs-python.i386
-
yum install virt-viewer
1.2配置
安装完xen的rpm后,rpm会去修改grub.conf这个是控制系统登录地方(粉红色的表示系统登录入口硬盘)和多系统选择(红色的0表示默认选择多个系统中的第0个系统[大家在图形界面里经常会看到一个选择系统的地方,由于我的系统是文本界面,所以必须配置这个,第0个系统是xen系统,大家可以蓝色的文件中找到xen]),当然若是大家想不用xen系统,则修改default=1即可,另外timeout=5表示选择等待时间,这个大家可以改为0更快启动系统
把default=1改为0,
-
#boot=/dev/sda
-
default=0
-
timeout=5
-
splashimage=(hd0,0)/boot/grub/splash.xpm.gz
-
hiddenmenu
-
title CentOS (2.6.18-274.3.1.el5xen)
-
root (hd0,0)
-
kernel /boot/xen.gz-2.6.18-274.3.1.el5
-
module /boot/vmlinuz-2.6.18-274.3.1.el5xen ro root=LABEL=/
-
module /boot/initrd-2.6.18-274.3.1.el5xen.img
-
title CentOS (2.6.18-274.el5)
-
root (hd0,0)
-
kernel /boot/vmlinuz-2.6.18-274.el5 ro root=LABEL=/
-
initrd /boot/initrd-2.6.18-274.el5.img
-
title Xen 4.1 / XenLinux 2.6
-
kernel /boot/xen-4.1.gz dom0_mem=262144
-
module /boot/vmlinuz-2.6.18.8-xen0 root=/dev/sda4 ro console=tty0
然后重新启动系统
1.3 测试
重新启动后,输入,uname -a,若是见到xen字样,那恭喜你安装成功了
-
[root@manage-vm ~]# uname -a
-
Linux manage-vm.com 2.6.18-274.3.1.el5xen #1 SMP Tue Sep 6 20:57:11 EDT 2011 x86_64 x86_64 x86_64 GNU/Linux
2.安装xen虚拟机
2.1安装前准备
a.下载一个CentOS-5.5-i386-bin-DVD.iso,放到物理机上
b.安装web软件,例如apache,这个是必须的,一会会用到
c.卸载vir客户端,这个虚拟机客户端的网卡virbr0会影响虚拟机和外网通信,这个是血淋淋的教训,我就因为这个google和budai了好多遍,尝试了无数次才发现这个问题。
2.2开始安装虚拟机
a.挂载光驱
-
mount -t iso9660 -o loop,user CentOS-5.5-i386-bin-DVD.iso /var/www/html/iso
b.启动xend服务
c.安装
我的物理机是8核,16G内存,1TB硬盘,我估计能够装7个2GB内存,100GB的虚拟机和一个1GB内存,100GB的虚拟机
计划安装一个虚拟机交node001,内存为2G
-
service httpd start
-
virt-install --name=node001 --ram=2048 --vcpus=1 --file=/vm/node001.img --accelerate --vnc --os-type=linux --file-size=100 --location=http://localhost/iso
解释:
--name:虚拟机的名字,必须是唯一,一般是xxx001最好
--ram:虚拟机的内存大小,单位为MB
--vcpus:虚拟机cpu个数
--file:虚拟机文件存放文件,注意选择放在最大的分区中
--accelerate:使用内核加速功能
--vnc:用 VNC 进行图形支持,这个可以省略,用文本模式比较好
全虚拟客户端的操作系统类型,例如:'linux'、'unix'、'windows'
--file-size=DISKSIZE 磁盘映像大小(如果它不存在的话),以 GB 为单位
--location 安装源(例如:nfs:host:/path、http://host/path、ftp://host/path),注意必须是网络路径,不能是file://路径,这就是为什么需要apache的原因
执行完这个命令后就是安装系统的各个步骤了,我就不多说了
3.常用命令
所有的虚拟机的配置文件和xen的配置文件都在/etc/xen下
-
#启动虚机客户端,进入
-
virsh console node001
-
#开启虚机
-
virsh start node001
-
#关闭虚机
-
virsh shutdown node001
-
#克隆虚机 -o原虚拟机,-n克隆的虚拟机,-f存放位置
-
virt-clone -o node001 -n node002 -f /vm/node002.img
-
#列出所有虚拟机
-
virsh list
删除虚拟机过程
-
#删除一个域
-
virsh destroy node001
-
#取消定义一个非活跃的域
-
virsh undefine node001
-
#删除虚拟机文件
-
rm /vm/node001
4.安装中出现的问题
4.1
问题:
-
[root@localhost ~]# virt-install -n vm0 -r 256 -f /vm/vm01.img -s 4 -nographics -p -l /tmp/iso/
-
Traceback (most recent call last):
-
File "/usr/sbin/virt-install", line 31, in ?
-
import libvirt
-
File "/usr/lib/python2.4/site-packages/libvirt.py", line 25, in ?
-
raise lib_e
-
ImportError: /usr/lib/libvirt.so.0: undefined symbol: audit_encode_nv_string
解决:
-
yum install audit-libs-python.i386
4.2
问题:
-
[root@localhost ~]# xend start
-
ERROR Internal error: Could not obtain handle on privileged command interface (2 = No such file or directory)
-
ERROR Internal error: Could not obtain handle on privileged command interface (2 = No such file or directory)
-
Traceback (most recent call last):
-
File "/usr/sbin/xend", line 51, in ?
-
from xen.xend.server import SrvDaemon
-
File "/usr/lib/python2.4/site-packages/xen/xend/server/SrvDaemon.py", line 21, in ?
-
import relocate
-
File "/usr/lib/python2.4/site-packages/xen/xend/server/relocate.py", line 26, in ?
-
from xen.xend import XendDomain
-
File "/usr/lib/python2.4/site-packages/xen/xend/XendDomain.py", line 33, in ?
-
import XendDomainInfo
-
File "/usr/lib/python2.4/site-packages/xen/xend/XendDomainInfo.py", line 40, in ?
-
import image
-
File "/usr/lib/python2.4/site-packages/xen/xend/image.py", line 37, in ?
-
xc = xen.lowlevel.xc.xc()
-
xen.lowlevel.xc.Error: (1, 'Internal error', 'Could not obtain handle on privileged command interface (2 = No such file or directory)')
解决:
-
解决:没有运行xen内核
-
uname -a检查一下
4.3
问题:
-
root@localhost ~]# virsh list
-
错误:无法连接到 'localhost:8000': 拒绝连接
-
错误:连接到管理程序失败
解决:
-
错误:无法连接到 'localhost:8000': 拒绝连接
-
错误:连接到管理程序失败
-
解决
-
vi /etc/xen/xend-config.sxp
-
(xend-http-server yes)
-
(xend-unix-server yes)
-
-
(xend-port 8000)
-
xend restart
-
启动虚机xend start
4.4
问题:
-
安装虚机时出现unable to find any devices
解决:
-
xen不支持本地iso源必须是http或者nfs,ftp
-
virt-install --name=node002 --ram=256 --vcpus=1 --file=/vm/node002.img --file-size=4 --location=http://192.168.13.105:82/iso/iso
4.5
问题:
解决:
-
若是物理机能够正常上网的话,检查是否有peth0,peth0是虚拟机和物理机桥接的通道(类似于网关),每个虚拟机的的虚拟网卡为vifx.0,x为1-n
-
[root@manage-vm network-scripts]# ifconfig
-
eth0 Link encap:Ethernet HWaddr 14:FE:B5:CB:9F:1A
-
inet addr:192.168.60.7 Bcast:192.168.60.255 Mask:255.255.255.0
-
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
-
RX packets:2204442 errors:0 dropped:0 overruns:0 frame:0
-
TX packets:1264 errors:0 dropped:0 overruns:0 carrier:0
-
collisions:0 txqueuelen:0
-
RX bytes:238326360 (227.2 MiB) TX bytes:58256 (56.8 KiB)
-
-
eth1 Link encap:Ethernet HWaddr 14:FE:B5:CB:9F:1C
-
inet addr:192.168.60.9 Bcast:192.168.60.255 Mask:255.255.255.0
-
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
-
RX packets:2244978 errors:0 dropped:0 overruns:0 frame:0
-
TX packets:23217 errors:0 dropped:0 overruns:0 carrier:0
-
collisions:0 txqueuelen:1000
-
RX bytes:291179866 (277.6 MiB) TX bytes:2190094 (2.0 MiB)
-
Interrupt:26 Memory:d8000000-d8012800
-
-
lo Link encap:Local Loopback
-
inet addr:127.0.0.1 Mask:255.0.0.0
-
UP LOOPBACK RUNNING MTU:16436 Metric:1
-
RX packets:322 errors:0 dropped:0 overruns:0 frame:0
-
TX packets:322 errors:0 dropped:0 overruns:0 carrier:0
-
collisions:0 txqueuelen:0
-
RX bytes:40429 (39.4 KiB) TX bytes:40429 (39.4 KiB)
-
-
peth0 Link encap:Ethernet HWaddr 14:FE:B5:CB:9F:1A
-
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
-
RX packets:2225067 errors:0 dropped:0 overruns:0 frame:0
-
TX packets:67624 errors:0 dropped:0 overruns:0 carrier:0
-
collisions:0 txqueuelen:1000
-
RX bytes:290474214 (277.0 MiB) TX bytes:6094195 (5.8 MiB)
-
Interrupt:25 Memory:d6000000-d6012800
-
-
vif1.0 Link encap:Ethernet HWaddr FE:FF:FF:FF:FF:FF
-
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
-
RX packets:5268 errors:0 dropped:0 overruns:0 frame:0
-
TX packets:2204487 errors:0 dropped:40 overruns:0 carrier:0
-
collisions:0 txqueuelen:500
-
RX bytes:293456 (286.5 KiB) TX bytes:270094777 (257.5 MiB)
若是发现有virbr0,则表示是因为安装系统时安装了vir客户端则系统会出现virbr0,xen则没有peth0
-
brctl delbr virbr0
-
/etc/xen/scripts/network-bridge start
-
从setup里禁止 libvirt,libvirt-guest服务
网桥如果可以通信,vif0.0,vifX.0,peth0必须在一个网桥之下!
brctl可以管理所有的网桥
常用的是brctl show,brctl del,brctl add
end
(责任编辑:IT) |