1. 问题
实验室有节点node1和node2,现在想在节点上安装xen虚拟机,node1上安装VM1、VM2,node2上安装VM3和VM4。配置之后,VM1、VM2、VM3、VM4之间可以相互通信。效果如下图所示
我安装的思路是先通过脚本安装VM1,然后将VM1克隆到VM2,再通过复制的方式生成VM3和VM4。具体过程如下。
2. 安装xen
Step1. 通过yum安装xen
[root@node1]# yum install xen kernel-xen [root@node1]# yum install virt-manager libvirt libvirt-python python-virtinst |
---|
查看xen版本
[root@node1]# rpm -qa|grep xen xen-3.0.3-142.el5_9.3 xen-libs-3.0.3-142.el5_9.3 xen-libs-3.0.3-142.el5_9.3 kernel-xen-2.6.18-371.1.2.el5 |
---|
Step2. 配置系统引导顺序
Xen安装好后,系统会出现两个可以引导的操作系统:Linux、包含xen的linux。将包含xen的linux设置成系统的默认引导。
即编辑/etc/grub.conf,找到“default=1”这行,把数字改成“0”,表示启动第一个内核,即Xen内核。
[root@node1 ~]# vi /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/VolGroup00/LogVol00 # initrd /initrd-version.img #boot=/dev/sda default=0 timeout=5 splashimage=(hd0,0)/grub/splash.xpm.gz hiddenmenu title Red Hat Enterprise Linux Server (2.6.18-371.1.2.el5xen) root (hd0,0) kernel /xen.gz-2.6.18-371.1.2.el5 module /vmlinuz-2.6.18-371.1.2.el5xen ro root=/dev/VolGroup00/LogVol00 rhgb quiet module /initrd-2.6.18-371.1.2.el5xen.img title Red Hat Enterprise Linux Server (2.6.18-164.el5) root (hd0,0) kernel /vmlinuz-2.6.18-164.el5 ro root=/dev/VolGroup00/LogVol00 rhgb quiet initrd /initrd-2.6.18-164.el5.img |
---|
重启系统
[root@node1 ~]# reboot |
---|
Step3. 验证是否安装成功
通过命令virt-manager启动VirtualMachine的图形化界面,当出现下图时,表示Xen安装成功。
[root@node1 ~]# virt-manager |
---|
Step4. node2上安装xen
按照node1的方法在node2上安装xen。
3. 配置桥接网络
为了让VM1、VM2和VM3、VM4间能互相通信,必须在node1、node2上创建桥接网络。下面介绍node1上的桥接网络创建过程。node2和此类似
可以 参考http://bloodiron888.blog.163.com/blog/static/1647332712010101853023528/
root@node1 ~]# cd /etc/sysconfig/network-scripts/ [root@node1 network-scripts]# vi ifcfg-eth0 # Broadcom Corporation NetXtreme II BCM5709 Gigabit Ethernet DEVICE=eth0 HWADDR=84:2b:2b:18:e2:bf ONBOOT=yes BRIDGE=br0 [root@node1 network-scripts]# vi ifcfg-br0 DEVICE=br0 TYPE=Bridge BOOTPROTO=static ONBOOT=yes IPADDR=192.168.130.11 NETMASK=255.255.255.0 [root@node1 network-scripts]# service network restart |
---|
4.脚本安装VM1
Step1. 配置http服务
使用脚本安装VM时,需要指定nfs或者http安装源,本文使用的是http安装源:http://192.168.130.11/centos5.10。配置过程如下
[root@node1 ~]# yum install httpd [root@node1 ~]# cd /var/www/html/ [root@node1 html]# mkdir centos5.10 [root@node1 html]# cd centos5.10 [root@node1 html]# wget http://mirrors.163.com/centos/5.10/isos/x86_64/CentOS-5.10-x86_64-bin-DVD-1of2.iso [root@node1 html]# wget http://mirrors.163.com/centos/5.10/isos/x86_64/CentOS-5.10-x86_64-bin-DVD-2of2.iso |
---|
下载完成后,解压到当前目录,先解压DVD-1of2.iso,再解压DVD-2of2.iso。
之后,就可以指定安装源为http://192.168.130.11/centos5.10
Step2. 安装
[root@node1 ~]# service httpd start [root@node1 ~]# service iptables down [root@node1 ~]#dd if=/dev/zero of=/var/lib/xen/images/VM1.img bs=1M count=20480 [root@node1 ~]# virt-install -n VM1 -r 512 -s 20 -f /var/lib/xen/images/VM1.img --nographics -l http://192.168.130.11/centos5.10 --network bridge:br0 |
---|
之后出现安装界面,选择手工指定IP。详细步骤,可以参考http://linux.vbird.org/linux_enterprise/xen.php#other_inst_virt
5. 克隆VM1到VM2
Step1. 克隆
创建VM2时,可以将VM1克隆到VM2,方法如下
<table border="0" cellspacing="0" cellpadding="0" background-color:rgb(217,217,217)">
[root@node1] #xm pause VM1
[root@node1]#virt-clone -o VM1 -n VM2 -f /var/lib/xen/images/VM2.img
[root@node1]# cd /etc/xen
[root@node1 xen]# vi VM2
name = "VM2"
uuid = "8ed06a0d-e88c-8825-3f60-e250aa2fba30"
maxmem = 512
memory = 512
vcpus = 1
bootloader = "/usr/bin/pygrub"
kernel = "/var/lib/xen/boot_kernel.p8Gdgp"
ramdisk = "/var/lib/xen/boot_ramdisk.VLCaC8"
extra = "ro root=LABEL=/ console=xvc0"
on_poweroff = "destroy"
on_reboot = "restart"
on_crash = "restart"
disk = [ "tap:aio:/var/lib/xen/images/VM2.img,xvda,w" ]
vif = [ "mac=00:16:3e:7d:47:bf,bridge=br0,script=vif-bridge,vifname=vif5.0" ]
Step2. 修改VM2的配置文件
启动虚拟机VM2,并修改主机名和网络配置。
修改主机名
[root@node1]# cd /etc/xen [root@node1 xen]# xm create VM2 [root@node1 xen]# xm console VM2 [root@VM1 ~]# vi /etc/sysconfig/network NETWORKING=yes NETWORKING_IPV6=no HOSTNAME=VM2 |
---|
修改网络
[root@VM1 ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0 # Xen Virtual Ethernet DEVICE=eth0 BOOTPROTO=static BROADCAST=192.168.130.255 IPADDR=192.168.130.112 NETMASK=255.255.255.0 NETWORK=192.168.130.0 ONBOOT=yes HWADDR=00:16:3e:7d:47:bf |
---|
重启电脑
[root@VM1 ~]# reboot |
---|
查看系统是否已经配置成功
[root@node1]# cd /etc/xen [root@node1 xen]# xm create VM2 [root@node1 xen]# xm console VM2 [root@VM2 ~]# ifconfig eth0 Link encap:Ethernet HWaddr 00:16:3E:7D:47:BF inet addr:192.168.130.112 Bcast:192.168.130.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:5042 errors:0 dropped:0 overruns:0 frame:0 TX packets:30 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:1314008 (1.2 MiB) TX bytes:3330 (3.2 KiB) 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:108 errors:0 dropped:0 overruns:0 frame:0 TX packets:108 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:7136 (6.9 KiB) TX bytes:7136 (6.9 KiB) |
---|
6. 复制虚拟机
从node1上复制虚拟机到node2,通过修改配置文件,可以让node2上拥有虚拟机VM3和VM4。
下面主要介绍VM3的生成过程,VM4的过程类似。
Step1. 复制文件
复制node1上虚拟机的配置文件和磁盘映像到node2
[root@node1 ~]# xm pause VM1 [root@node1 ~]# xm pause VM2 [root@node1 ~]# scp -r /var/lib/xen/images/ node2:/var/lib/xen [root@node1 ~]# scp -r /etc/xen/VM* node2:/etc/xen |
---|
Step2. 修改配置文件
进入node2,并修改VM3配置文件。
修改name、uuid、mac保持唯一,通常将最后一位加1,同时修改disk路径
[root@node2 ]# mv /var/lib/xen/images/VM1.img /var/lib/xen/images/VM3.img [root@node2 ]# cd /etc/xen [root@node2 xen]# mv VM1 VM3 [root@node2 xen]# vi VM3 name = " VM3" uuid = "19117efc-ff8c-21b7-e87f-04a69a932349"" maxmem = 512 memory = 512 vcpus = 1 bootloader = "/usr/bin/pygrub" on_poweroff = "destroy" on_reboot = "restart" on_crash = "restart" disk = [ "tap:aio:/var/lib/xen/images/VM3.img,xvda,w" ] vif = [ "mac=00:16:3e:31:8f:75,bridge=br0,script=vif-bridge" ] |
---|
Step3. 修改VM3里面的配置文件
启动虚拟机,修改主机名
[root@node2 ]#cd /etc/xen [root@node2 xen]# xm create VM3 [root@node2 xen]# xm console VM3 [root@VM1 ~]# vi /etc/sysconfig/network NETWORKING=yes NETWORKING_IPV6=no HOSTNAME=VM3 |
---|
修改网络
[root@VM1 ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0 # Xen Virtual Ethernet DEVICE=eth0 BOOTPROTO=static BROADCAST=192.168.130.255 IPADDR=192.168.130.113 NETMASK=255.255.255.0 NETWORK=192.168.130.0 ONBOOT=yes HWADDR=00:16:3e:31:8f:75 |
---|
重启电脑
[root@VM1 ~]# reboot |
---|
Step4. 配置VM4
按照VM3的配置过程,配置虚拟机VM4。
7. 总结
本文介绍了如何在节点node1和node2上进行虚拟机的安装和配置。本文介绍了Xen上虚拟机常用的安装方法:脚本安装、虚拟机 克隆、虚拟机复制。
在安装的过程中,为了让VM1、VM2和VM3、VM4间相互通信,需要配置桥接网络。
8. 参考文献
XEN网络配置综述http://www.5iops.com/html/2012/keyinfra_0603/53_2.html
利用Xen设计虚拟机器http://linux.vbird.org/linux_enterprise/xen.php#other_inst_virt
linux kvm 网卡Bridge设置 http://bloodiron888.blog.163.com/blog/static/1647332712010101853023528/