我用的是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=
解释:
--name:虚拟机的名字,必须是唯一,一般是xxx001最好
--ram:虚拟机的内存大小,单位为MB
--vcpus:虚拟机cpu个数
--file:虚拟机文件存放文件,注意选择放在最大的分区中
--accelerate:使用内核加速功能
--vnc:用 VNC 进行图形支持,这个可以省略,用文本模式比较好
全虚拟客户端的操作系统类型,例如:'linux'、'unix'、'windows'
--file-size=DISKSIZE 磁盘映像大小(如果它不存在的话),以 GB 为单位
--location 安装源(例如:nfs: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=
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
阅读(1013) | 评论(0) | 转发(0) |