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. 参考文献




Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐