---------------------------------------
一、前言
二、环境
三、安装与配置
四、创建xen虚拟机
1.图形安装(附:VNC安装)
2.字符安装
五、管理xen虚拟机
1.字符管理
2.图形管理
六、克隆xen虚拟机
七、xen虚拟机增加硬备盘(模拟)
八、xen虚拟机添加网卡
九、物理机连接xen虚拟机(安装有vmware的物理机)
---------------------------------------
一、前言
XEN 是一个基于X86架构、发展最快、性能最稳定、占用资源最少的开源虚拟化技术。Xen可以在一套物理硬件上安全的执行多个虚拟机,与 Linux 是一个完美的开源组合,Novell SUSE Linux Enterprise Server 最先采用了XEN虚拟技术。它特别适用于服务器应用整合,可有效节省运营成本,提高设备利用率,最大化利用数据中心的IT基础架构。Xen无需特殊硬件支持,就能达到高性能的虚拟化。
二、环境
系统:centos5.5 32位 在安装有vmware的物理机下测试
软件包:
xen.i386 xen工具套件
kernel-xen.i686 xen核心
virt-manager.i386 虚拟管理工具
virt-viewer.i386 图形终端
# cat /proc/cpuinfo |grep flags //半虚拟化为pae,全虚拟化为vmx(inter)或svm(AMD)的一个 flags: fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush dts mmx fxsr sse sse2 ss nx rdtscp lm constant_tsc up nonstop_tsc arat pni ssse3 cx16 sse4_1 sse4_2 popcnt lahf_lm [8]
请关闭防火墙和SELinux
三、安装与配置
# yum install xen kernel-xen virt-manager virt-viewer # ll /boot/ //查看内核 -rw-r--r-- 1 root root 69593 Apr 3 2010 config-2.6.18-194.el5 -rw-r--r-- 1 root root 69266 Apr 3 2010 config-2.6.18-194.el5xen drwxr-xr-x 2 root root 1024 Sep 20 00:13 grub -rw------- 1 root root 2623799 Sep 19 23:38 initrd-2.6.18-194.el5.img -rw------- 1 root root 2625199 Sep 20 00:13 initrd-2.6.18-194.el5xen.img drwx------ 2 root root 12288 Sep 19 23:32 lost+found -rw-r--r-- 1 root root 80032 Mar 13 2009 message -rw-r--r-- 1 root root 110979 Apr 3 2010 symvers-2.6.18-194.el5.gz -rw-r--r-- 1 root root 111145 Apr 3 2010 symvers-2.6.18-194.el5xen.gz -rw-r--r-- 1 root root 967675 Apr 3 2010 System.map-2.6.18-194.el5 -rw-r--r-- 1 root root 963308 Apr 3 2010 System.map-2.6.18-194.el5xen -rw-r--r-- 1 root root 1875796 Apr 3 2010 vmlinuz-2.6.18-194.el5 -rw-r--r-- 1 root root 2244980 Apr 3 2010 vmlinuz-2.6.18-194.el5xen -rw-r--r-- 1 root root 382542 Apr 3 2010 xen.gz-2.6.18-194.el5 -rwxr-xr-x 1 root root 829448 Apr 3 2010 xen-syms-2.6.18-194.el5 # vim /boot/grub/grub.conf default=0 //将1修改为0,启动2.6.18-194.el5xen内核 timeout=5 splashimage=(hd0,0)/grub/splash.xpm.gz hiddenmenu title CentOS (2.6.18-194.el5xen) root (hd0,0) kernel /xen.gz-2.6.18-194.el5 module /vmlinuz-2.6.18-194.el5xen ro root=LABEL=/ rhgb quiet module /initrd-2.6.18-194.el5xen.img title CentOS (2.6.18-194.el5) root (hd0,0) kernel /vmlinuz-2.6.18-194.el5 ro root=LABEL=/ rhgb quiet initrd /initrd-2.6.18-194.el5.img # reboot # uname -r //重启后查看内核 2.6.18-194.el5xen # yum install httpd //创建xen安装目录树(使用web服务器搭建) # mkdir /var/www/html/centos # mount /dev/cdrom /var/www/html/centos/ # service httpd start
浏览器访问web服务器:
四、创建xen虚拟机
0.VNC安装
# yum install vnc-server # vncserver You will require a password to access your desktops. Password: //输入密码 Verify: //重复密码 New 'localhost.localdomain:1 (root)' desktop is localhost.localdomain:1 Creating default startup script /root/.vnc/xstartup Starting applications specified in /root/.vnc/xstartup Log file is /root/.vnc/localhost.localdomain:1.log VNC客户端访问192.168.2.200:1 //无法正常显示桌面,显示为命令行 # vim .vnc/xstartup //将4和5行注释去掉即可 4 unset SESSION_MANAGER 5 exec /etc/X11/xinit/xinitrc # vncserver New 'localhost.localdomain:2 (root)' desktop is localhost.localdomain:2 Starting applications specified in /root/.vnc/xstartup Log file is /root/.vnc/localhost.localdomain:2.log VNC客户端访问192.168.2.200:2 //正常
1.图形工具(virt-manager)
按照图示进行操作,即可进入。
点击New,新建虚拟机。
提示配置虚拟机相关信息。
输入虚拟机名称。
选择半虚拟化。
选择安装树(http),及系统版本。
填写安装树地址,最后的斜杠别忘记写。
虚拟机保存位置,及虚拟机大小,必须先创建存放目录。
# mkdir /data //存放虚拟机目录
网络选择默认即可。
内存及cpu按需填写。
预览整个配置信息。
开始提取文件。
下面的操作和安装系统是一样的,不再截图,但是网卡那步选择默认,自动获得IP,否则,安装会失败。
安装完成后,系统可能重启中断,可以手动运行VM01。如下图
# cd /data/ //查看虚拟机文件 # ll -h total 4.0G -rwxr-xr-x 1 root root 4.0G Sep 21 00:55 VM01.img
2.命令行方式
# virt-install -h //查询各个命令含义 # virt-install -n VM02 -f /data/vm02.img -s 4 -r 128 nographics -l http://192.168.2.30/centos 也会出现图形安装方式,和安装操作系统一样。
五、管理xen虚拟机
1.字符管理
常用命令:
xm list 显示虚拟机运行状态
xm console 使用文本方式连接虚拟系统
xm create 开启虚拟系统
xm shutdown 关闭虚拟系统
注:虚拟机和宿主机之间切换使用ctrl+】(右方括号)
# xm create VM01 //开启VM01虚拟机 Using config file "/etc/xen/VM01". Started domain VM01 # xm console VM01 //进入VM01虚拟机,使用ctrl+】退出虚拟机 # xm list Name ID Mem(MiB) VCPUs State Time(s) Domain-0 0 2549 1 r----- 940.6 VM01 5 511 1 -b---- 22.5
2.图形管理
可以使用VNC客户端连接,选中虚拟机,点击Open进行操作。
可以进入系统,查看硬件等一系列操作。
六、xen虚拟机克隆
# virt-clone -h # virt-clone -o VM01 -n VM02 -f /data/VM02.img //克隆,vm01必须关机 Cloning /data/VM01.img | 3.9 GB 01:39 Clone 'VM02' created successfully.
克隆脚本
# vim clonexen.sh #!/bin/bash i=3 while [ $i -le $1 ] do /usr/bin/virt-clone -o vm01 -n vm$i -f /data/vm$i.img echo "vm$i clone successfully" i=$(($i+1)) done
# chmod a+x clonexen.sh #./clonexen.sh 20 //克隆虚拟机名称从2-20
七、为xen增加硬备盘
# xm shutdown VM01 //关闭系统 # dd if=/dev/zero of=/data/00.img bs=1M count=100 //创建一个100M大小的文件 100+0 records in 100+0 records out 104857600 bytes (105 MB) copied, 0.435551 seconds, 241 MB/s # ll /data/ total 5157840 -rw-r--r-- 1 root root 104857600 Sep 21 01:47 00.img -rwxr-xr-x 1 root root 4194304000 Sep 21 01:27 VM01.img -rwxr-xr-x 1 root root 4194304000 Sep 21 01:38 VM02.img # vim /etc/xen/VM01 name = "VM01" uuid = "d8840067-5161-d89b-642b-5d2dd6f5b95c" maxmem = 512 memory = 512 vcpus = 1 bootloader = "/usr/bin/pygrub" on_poweroff = "destroy" on_reboot = "restart" on_crash = "restart" vfb = [ "type=vnc,vncunused=1,keymap=en-us" ] disk = [ "tap:aio:/data/VM01.img,xvda,w","tap:aio:/data/00.img,xvdb,w" ] //将新增的文件添加即可,将xvda修改为xvdb vif = [ "mac=00:16:36:09:2d:0d,bridge=virbr0,script=vif-bridge" ] # xm create VM01 //启动VM01 Using config file "/etc/xen/VM01". Started domain VM01 # xm console VM01 //进入VM01 # fdisk -l Disk /dev/xvda: 4194 MB, 4194304000 bytes 255 heads, 63 sectors/track, 509 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/xvda1 * 1 25 200781 83 Linux /dev/xvda2 26 152 1020127+ 82 Linux swap / Solaris /dev/xvda3 153 509 2867602+ 83 Linux Disk /dev/xvdb: 104 MB, 104857600 bytes 255 heads, 63 sectors/track, 12 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Disk /dev/xvdb doesn't contain a valid partition table # fdisk /dev/xvdb //分区,格式化,挂载,测试 # mkfs.ext3 /dev/xvdb1 # mkdir /db # mount /dev/xvdb1 /db # df -h Filesystem Size Used Avail Use% Mounted on /dev/xvda3 2.7G 907M 1.7G 36% / /dev/xvda1 190M 13M 168M 7% /boot tmpfs 257M 0 257M 0% /dev/shm /dev/xvdb1 92M 5.6M 81M 7% /db # echo '123'>/db/1.txt # cat /db/1.txt 123
八、xen虚拟机添加网卡
# vim /etc/xen/VM01 //在宿主机上修改VM01的配置文件,vif name = "VM01" uuid = "d8840067-5161-d89b-642b-5d2dd6f5b95c" maxmem = 512 memory = 512 vcpus = 1 bootloader = "/usr/bin/pygrub" on_poweroff = "destroy" on_reboot = "restart" on_crash = "restart" vfb = [ "type=vnc,vncunused=1,keymap=en-us" ] disk = [ "tap:aio:/data/VM01.img,xvda,w","tap:aio:/data/00.img,xvdb,w" ] vif = [ "mac=00:16:36:09:2d:0d,bridge=virbr0,script=vif-bridge","mac=00:16:36:09:2d:1e,bridge=virbr0,script=vif-bridge" ] //在vif中添加一条即可,MAC须不同 # xm reboot VM01 # ifconfig eth0 Link encap:Ethernet HWaddr 00:16:36:09:2D:0D inet addr:192.168.122.90 Bcast:192.168.122.255 Mask:255.255.255.0 inet6 addr: fe80::216:36ff:fe09:2d0d/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:86 errors:0 dropped:0 overruns:0 frame:0 TX packets:48 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:10605 (10.3 KiB) TX bytes:7507 (7.3 KiB) eth1 Link encap:Ethernet HWaddr 00:16:36:09:2D:1E inet addr:192.168.122.58 Bcast:192.168.122.255 Mask:255.255.255.0 inet6 addr: fe80::216:36ff:fe09:2d1e/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:90 errors:0 dropped:0 overruns:0 frame:0 TX packets:39 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:10675 (10.4 KiB) TX bytes:7047 (6.8 KiB)
九、物理机连接xen虚拟机(在vmware中测试)
xen宿主机:即在vmware中安装有xen的centos
xen虚拟机:即通过安装有xen的centos虚拟出来的系统
xen宿主机选择桥接模式,且物理机后端必须要有交换机或路由器。
必须保证物理机(win7)、vmware中的xen宿主机和xen虚机的IP均在同一网段,通过物理机连接交换机或路由器相互ping通。
且xen宿主机中的xen虚拟机配置文件中的网卡桥接类型修改为xenbr0
vif = [ "mac=00:16:36:29:b1:a6,bridge=xenbr0,script=vif-bridge" ]