1.安装xen

1.1安装

点击(此处)折叠或打开

  1. yum -y install kernel-xen xen

  2. yum install audit-libs-python.i386

  3. 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,


点击(此处)折叠或打开

  1. #boot=/dev/sda

  2. default=0

  3. timeout=5

  4. splashp_w_picpath=(hd0,0)/boot/grub/splash.xpm.gz

  5. hiddenmenu

  6. title CentOS (2.6.18-274.3.1.el5xen)

  7. root (hd0,0)

  8. kernel /boot/xen.gz-2.6.18-274.3.1.el5

  9. module /boot/vmlinuz-2.6.18-274.3.1.el5xen ro root=LABEL=/

  10. module /boot/initrd-2.6.18-274.3.1.el5xen.img

  11. title CentOS (2.6.18-274.el5)

  12. root (hd0,0)

  13. kernel /boot/vmlinuz-2.6.18-274.el5 ro root=LABEL=/

  14. initrd /boot/initrd-2.6.18-274.el5.img

  15. title Xen 4.1 / XenLinux 2.6

  16. kernel /boot/xen-4.1.gz dom0_mem=262144

  17. module /boot/vmlinuz-2.6.18.8-xen0 root=/dev/sda4 ro console=tty0


然后重新启动系统

reboot

1.3 测试

重新启动后,输入,uname -a,若是见到xen字样,那恭喜你安装成功了


点击(此处)折叠或打开

  1. [root@manage-vm ~]# uname -a

  2. 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了好多遍,尝试了无数次才发现这个问题。


点击(此处)折叠或打开

  1. yum -y intall httpd

2.2开始安装虚拟机

a.挂载光驱


点击(此处)折叠或打开

  1. mount -t iso9660 -o loop,user CentOS-5.5-i386-bin-DVD.iso /var/www/html/iso

b.启动xend服务


点击(此处)折叠或打开

  1. service xend start

c.安装

我的物理机是8核,16G内存,1TB硬盘,我估计能够装7个2GB内存,100GB的虚拟机和一个1GB内存,100GB的虚拟机

计划安装一个虚拟机交node001,内存为2G

点击(此处)折叠或打开

  1. service httpd start

  2. 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下

安装xen和虚拟机以及解决其中出现的问题 _安装xen和虚拟机以及解决其中出现的问题


点击(此处)折叠或打开

  1. #启动虚机客户端,进入

  2. virsh console node001

  3. #开启虚机

  4. virsh start node001

  5. #关闭虚机

  6. virsh shutdown node001

  7. #克隆虚机 -o原虚拟机,-n克隆的虚拟机,-f存放位置

  8. virt-clone -o node001 -n node002 -f /vm/node002.img

  9. #列出所有虚拟机

  10. virsh list

安装xen和虚拟机以及解决其中出现的问题 _安装xen和虚拟机以及解决其中出现的问题_02

删除虚拟机过程


点击(此处)折叠或打开

  1. #删除一个域

  2. virsh destroy node001

  3. #取消定义一个非活跃的域

  4. virsh undefine node001

  5. #删除虚拟机文件

  6. rm /vm/node001

4.安装中出现的问题

4.1

  问题:

  


点击(此处)折叠或打开

  1. [root@localhost ~]# virt-install -n vm0 -r 256 -f /vm/vm01.img -s 4 -nographics -p -l /tmp/iso/

  2. Traceback (most recent call last):

  3. File "/usr/sbin/virt-install", line 31, in ?

  4. import libvirt

  5. File "/usr/lib/python2.4/site-packages/libvirt.py", line 25, in ?

  6. raise lib_e

  7. ImportError: /usr/lib/libvirt.so.0: undefined symbol: audit_encode_nv_string


解决:

  

点击(此处)折叠或打开

  1. yum install audit-libs-python.i386

4.2

  问题:

点击(此处)折叠或打开

  1. [root@localhost ~]# xend start

  2. ERROR Internal error: Could not obtain handle on privileged command interface (2 = No such file or directory)

  3. ERROR Internal error: Could not obtain handle on privileged command interface (2 = No such file or directory)

  4. Traceback (most recent call last):

  5. File "/usr/sbin/xend", line 51, in ?

  6. from xen.xend.server import SrvDaemon

  7. File "/usr/lib/python2.4/site-packages/xen/xend/server/SrvDaemon.py", line 21, in ?

  8. import relocate

  9. File "/usr/lib/python2.4/site-packages/xen/xend/server/relocate.py", line 26, in ?

  10. from xen.xend import XendDomain

  11. File "/usr/lib/python2.4/site-packages/xen/xend/XendDomain.py", line 33, in ?

  12. import XendDomainInfo

  13. File "/usr/lib/python2.4/site-packages/xen/xend/XendDomainInfo.py", line 40, in ?

  14. import p_w_picpath

  15. File "/usr/lib/python2.4/site-packages/xen/xend/p_w_picpath.py", line 37, in ?

  16. xc = xen.lowlevel.xc.xc()

  17. xen.lowlevel.xc.Error: (1, 'Internal error', 'Could not obtain handle on privileged command interface (2 = No such file or directory)')

解决:


点击(此处)折叠或打开

  1. 解决:没有运行xen内核

  2. uname -a检查一下

4.3

  问题:


点击(此处)折叠或打开

  1. root@localhost ~]# virsh list

  2. 错误:无法连接到 'localhost:8000': 拒绝连接

  3. 错误:连接到管理程序失败

解决:


点击(此处)折叠或打开

  1. 错误:无法连接到 'localhost:8000': 拒绝连接

  2. 错误:连接到管理程序失败

  3. 解决

  4. vi /etc/xen/xend-config.sxp

  5. (xend-http-server yes)

  6. (xend-unix-server yes)


  7. (xend-port 8000)

  8. xend restart

  9. 启动虚机xend start

4.4

  问题:


点击(此处)折叠或打开

  1. 安装虚机时出现unable to find any devices

解决:


点击(此处)折叠或打开

  1. xen不支持本地iso源必须是http或者nfs,ftp

  2. 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

  问题:


点击(此处)折叠或打开

  1. 安装完虚拟机后,发现无法访问网络

解决:


点击(此处)折叠或打开

  1. 若是物理机能够正常上网的话,检查是否有peth0,peth0是虚拟机和物理机桥接的通道(类似于网关),每个虚拟机的的虚拟网卡为vifx.0,x为1-n

  2. [root@manage-vm network-scripts]# ifconfig

  3. eth0 Link encap:Ethernet HWaddr 14:FE:B5:CB:9F:1A

  4. inet addr:192.168.60.7 Bcast:192.168.60.255 Mask:255.255.255.0

  5. UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

  6. RX packets:2204442 errors:0 dropped:0 overruns:0 frame:0

  7. TX packets:1264 errors:0 dropped:0 overruns:0 carrier:0

  8. collisions:0 txqueuelen:0

  9. RX bytes:238326360 (227.2 MiB) TX bytes:58256 (56.8 KiB)


  10. eth1 Link encap:Ethernet HWaddr 14:FE:B5:CB:9F:1C

  11. inet addr:192.168.60.9 Bcast:192.168.60.255 Mask:255.255.255.0

  12. UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

  13. RX packets:2244978 errors:0 dropped:0 overruns:0 frame:0

  14. TX packets:23217 errors:0 dropped:0 overruns:0 carrier:0

  15. collisions:0 txqueuelen:1000

  16. RX bytes:291179866 (277.6 MiB) TX bytes:2190094 (2.0 MiB)

  17. Interrupt:26 Memory:d8000000-d8012800


  18. lo Link encap:Local Loopback

  19. inet addr:127.0.0.1 Mask:255.0.0.0

  20. UP LOOPBACK RUNNING MTU:16436 Metric:1

  21. RX packets:322 errors:0 dropped:0 overruns:0 frame:0

  22. TX packets:322 errors:0 dropped:0 overruns:0 carrier:0

  23. collisions:0 txqueuelen:0

  24. RX bytes:40429 (39.4 KiB) TX bytes:40429 (39.4 KiB)


  25. peth0 Link encap:Ethernet HWaddr 14:FE:B5:CB:9F:1A

  26. UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

  27. RX packets:2225067 errors:0 dropped:0 overruns:0 frame:0

  28. TX packets:67624 errors:0 dropped:0 overruns:0 carrier:0

  29. collisions:0 txqueuelen:1000

  30. RX bytes:290474214 (277.0 MiB) TX bytes:6094195 (5.8 MiB)

  31. Interrupt:25 Memory:d6000000-d6012800


  32. vif1.0 Link encap:Ethernet HWaddr FE:FF:FF:FF:FF:FF

  33. UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

  34. RX packets:5268 errors:0 dropped:0 overruns:0 frame:0

  35. TX packets:2204487 errors:0 dropped:40 overruns:0 carrier:0

  36. collisions:0 txqueuelen:500

  37. RX bytes:293456 (286.5 KiB) TX bytes:270094777 (257.5 MiB)

安装xen和虚拟机以及解决其中出现的问题 _安装xen和虚拟机以及解决其中出现的问题_03

若是发现有virbr0,则表示是因为安装系统时安装了vir客户端则系统会出现virbr0,xen则没有peth0


点击(此处)折叠或打开

  1. brctl delbr virbr0

  2. /etc/xen/scripts/network-bridge start

  3. 从setup里禁止 libvirt,libvirt-guest服务

网桥如果可以通信,vif0.0,vifX.0,peth0必须在一个网桥之下!

brctl可以管理所有的网桥

常用的是brctl show,brctl del,brctl add

安装xen和虚拟机以及解决其中出现的问题 _安装xen和虚拟机以及解决其中出现的问题_03

end