Xen服务的安装配置及管理

二、安装Xen服务

注:这里用的系统环境是CentOS5.8。

1、查看是否已经安装

使用下面的命令检查系统是否已经安装了Xen或者查看已经安装了何种版本,以及Linux内核是否有针对Xen的补丁

查看系统没有安装xen:

[root@xen ~]# rpm -qa |grep xen

/boot目录下无xen的补丁:

[root@xen ~]# ls /boot/

config-2.6.18-308.el5  initrd-2.6.18-308.el5.img  message                    System.map-2.6.18-308.el5

grub                   lost+found                 symvers-2.6.18-308.el5.gz  vmlinuz-2.6.18-308.el5


2、安装XEN

1)安装Xen核心

注:这里我们用阿里云的镜像yum源!

[root@xen ~]#yum install xen kernel-xen

xen-3.0.3-146.el5_11           -------》Xen工具套件

kernel-xen-2.6.18-406.el5      -------》核心

virt-manager-0.6.1-16.el5      -------》虚拟化管理工具

virt-viewer-0.0.2-3.el5        -------》图形终端


2)安装图形管理工具

yum install virt-manager       

yum install virt-viewer


3)查看安装后产生的内核文件

[root@xen ~]# ls /boot

config-2.6.18-308.el5      initrd-2.6.18-406.el5xen.img  symvers-2.6.18-406.el5xen.gz  vmlinuz-2.6.18-406.el5xen

config-2.6.18-406.el5xen   lost+found                    System.map-2.6.18-308.el5     xen.gz-2.6.18-406.el5

grub                       message                       System.map-2.6.18-406.el5xen  xen-syms-2.6.18-406.el5

initrd-2.6.18-308.el5.img  symvers-2.6.18-308.el5.gz     vmlinuz-2.6.18-308.el5


4)引导XENLinux的GRUB配置

(1)修改GRUB引导文件:

[root@xen ~]# cat /boot/grub/grub.conf

default=0

timeout=5

splashimage=(hd0,0)/grub/splash.xpm.gz

hiddenmenu

title CentOS (2.6.18-406.el5xen)

        root (hd0,0)

        kernel /xen.gz-2.6.18-406.el5

        module /vmlinuz-2.6.18-406.el5xen ro root=LABEL=/ rhgb quiet

        module /initrd-2.6.18-406.el5xen.img

title CentOS (2.6.18-308.el5)

        root (hd0,0)

        kernel /vmlinuz-2.6.18-308.el5 ro root=LABEL=/ rhgb quiet

        initrd /initrd-2.6.18-308.el5.img

(2)重启机器

[root@xen ~]# reboot

成功启动之后,查看内核的变化:

[root@xen ~]# uname -a

Linux xen 2.6.18-406.el5xen #1 SMP Tue Jun 2 18:07:09 EDT 2015 x86_64 x86_64 x86_64 GNU/Linux


三、实例CentOS+Xen虚拟CentOS5.8

1、创建Xen虚拟系统安装树

 在Xen虚拟机半虚拟环境中安装Linux虚拟系统时需要使用系统的安装树。安装树是一个包含所有的系统安装文件及相关程序的目录,这个目录可以使用http、FTP或NFS等方式提供给Xen虚拟机用于系统的安装

使用http做安装树,将Linux系统文件放在Apache目录下,为了方便这里使用将ISO文件直接挂载方式。

安装httpd服务:

[root@xen ~]# yum -y install httpd

[root@xen ~]# service httpd start

[root@xen ~]# mkdir /var/www/html/centos

[root@xen ~]# mount /dev/cdrom  /var/www/html/centos/

mount: block device /dev/cdrom is write-protected, mounting read-only

[root@xen ~]# df -h

Filesystem            Size  Used Avail Use% Mounted on

/dev/sda3             8.6G  3.2G  5.0G  39% /

/dev/sda1             190M   20M  161M  11% /boot

tmpfs                 101M     0  101M   0% /dev/shm

none                  101M  104K  101M   1% /var/lib/xenstored

/dev/hdc              4.3G  4.3G     0 100% /var/www/html/centos

测试安装树:http://服务器IP地址或域名的方式访问

wKioL1YKEozQGbeLAAHposcxW-Y928.jpg


2、创建Xen虚拟机

 有两种方式来创建Xen虚拟机,分别为:使用字符工具virt-install创建Xen虚拟系统、使用图形工具virt-manager创建Xen虚拟系统

1)virt-manager创建Xen虚拟系统(图形界面安装)

(1)在X-Window中打开“应用程序”---》“系统工具”---》“Virtual Machine Manager”---》新建,启动创建新的虚拟系统向导:输入虚拟系统的名称如:“vm01”,单击“前进”按钮

(2)在“选择虚拟化方式”界面选择“半虚拟化”单选按钮,然后点击“前进”按钮。

(3)在“定位安装介质”界面中输入安装介质路径http://10.10.10.106/centos/,单击“前进”按钮(自动安装脚本文件,内核参数等为可选项,不填写也可以)。

wKioL1YKLpfj_QkCAAG1vuCJgIY311.jpg

(4)选择“文件镜像”单选按钮,并输入镜像文件保存位置:在“分配内存及CPU”界面中,根据实际情况为虚拟系统分配相应的内存和CPU数量。

(5)在“准备就绪,开始安装”界面中,创建向导列出以上步骤所设置的各个参数。

wKiom1YKMZDi3LCtAAGJc_6xMug235.jpg

之后一直下一步到安装界面,安装系统完成!!!

创建虚拟系统的配置文件在/etc/xen/vm01,并自动开启虚拟系统终端,后面和正常装系统一样!!!

注意:安装的时候,图形界面下方的下一步按钮可能显示不出来,这时可以用组合键Alt+n执行下一步!)


2)virt-install创建Xen虚拟系统(命令行安装)

可以查看命令帮助

[root@xen ~]# virt-install --help 

usage: virt-install --name NAME --ram RAM STORAGE INSTALL [options]


options:

  -h, --help            show this help message and exit

  --connect=CONNECT     Connect to hypervisor with URI   (使用URI连接到监控程序)

通用选项:

    -n NAME, --name=NAME     (客户端事件名称

    -r MEMORY, --ram=MEMORY  (以MB为单位为客户端事件分配的内存)                   

    --arch=ARCH              (模拟的CPU架构)

    -u UUID, --uuid=UUID      (客户端UUID)

                        

    --vcpus=VCPUS             (配置你的客户端的vcpu数目)

    --check-cpu         Check that vcpus do not exceed physical CPUs and warn

                        if they do.

    --cpuset=CPUSET     Set which physical CPUs Domain can use.

例如:创建一个Xen虚拟机

[root@xen ~]#virt-install -n vm022 -f /data/vm022.img -s 4 -r 128 nographics -l http://10.10.10.106/centos/

开始安装..........................

按照提示,进行安装(后面步骤略)


四、管理Xen虚拟机

安装一个Xen虚拟机有两种方式,命令行和GUI,那么同样也可以用这两种方式来管理

1、使用字符工具管理Xen虚拟机

命令的详细使用方法可以看命令的帮助   xm -h 

常见的命令有一下几个:

A:显示虚拟机运行状态 xm list B:使用文本方式连接虚拟机 xm console 

C:开启虚拟系统 xm create     D:关闭虚拟系统 xm shutdown

注:虚拟机和宿主机之间的切换用ctrl+](右方括号)即可。


2、图形工具virt-manager管理Xen虚拟机

在X-Window中打开“应用程序”---》“系统工具”---》“Virtual Machine Manager”

管理方式都是图形化的,不多做说明了。


3、XEN虚拟机的克隆

了解此命令virt-clone的用法

usage: virt-clone [options]


options:

  -h, --help            show this help message and exit

  --connect=CONNECT     Connect to hypervisor with URI(使用URI连接到监控程序)

 通用选项:

  -o ORIGINAL_GUEST, --original=ORIGINAL_GUEST

  -n NEW_NAME, --name=NEW_NAME

复制XEN虚拟机实例

[root@xen ~]#virt-clone -o vm01 -n vm02 -f /data/vm02.img

启动vm02机器:

xm create vm02 


如果要批量复制多个XEN虚拟机,使用shell脚本。如:要一次生成机名为vm11到vm40的虚拟机

[root@xen ~]#cat /server/scripts/clonexen.sh

#!/bin/bash

i=11

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 +x /server/scripts/clonexen.sh

执行脚本:sh /server/scripts/clonexen.sh 40


4、为XEN虚拟机增加硬备盘

关闭系统创建设备文件

xm shutdown vm02

建立设备文件

dd if=/dev/zero of=/data/vm02b.img bs=1M count=8


编辑原来配置文件,添加新磁盘文件

[root@xen ~]# cat /etc/xen/vm02

name = "vm02"

uuid = "ba6c86f3-1cbb-5781-36a2-de8574b4f5e2"

maxmem = 64

memory = 64

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/vm02.img,xvda,w","tap:aio:/data/vm02b.img,xvdb,w" ]

vif = [ "mac=00:16:3e:7f:3d:98,bridge=virbr0,script=vif-bridge" ]


启动XEN虚拟机并登陆测试新加的磁盘

fdisk -l 

fdisk /dev/xvdb

mkfs.ext3 /dev/xvdb1

mkdir -p /test/xendb

mount /dev/xvdb1 /test/sendb


5、XEN虚拟机加网卡

[root@xen xen]# cat /etc/xen/vm02

name = "vm02"

uuid = "d8a1f961-289a-80de-9584-e45479e2c5c8"

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/vm02.img,xvda,w","tap:aio:/data/vm02b.img,xvdb,w" ]

vif = [ "mac=00:16:3e:7f:3d:98,bridge=virbr0,script=vif-bridge","mac=00:16:3e:7f:3d:99,bridge=virbr0,script=vif-bridge" ]

上面网卡的配置类似于VMware中的host-only,走的是NAT模式!!


或者,此时类似于VMware中的VM8(物理机和vm02能够互通):

vif = [ "mac=00:16:3e:7f:3d:98,bridge=xenbr0,script=vif-bridge","mac=00:16:3e:7f:3d:99,bridge=xenbr0,script=vif-bridge" ]


启动vm02服务,登陆vm02虚拟机查看网卡已经有两个:

xm create vm02 

[root@localhost ~]# ifconfig 

eth0      Link encap:Ethernet  HWaddr 00:16:3E:7F:3D:98  

          inet addr:192.168.122.201  Bcast:192.168.122.255  Mask:255.255.255.0

          inet6 addr: fe80::216:3eff:fe7f:3d98/64 Scope:Link

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

          RX packets:112 errors:0 dropped:0 overruns:0 frame:0

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

          collisions:0 txqueuelen:1000 

          RX bytes:6790 (6.6 KiB)  TX bytes:1288 (1.2 KiB)


eth1      Link encap:Ethernet  HWaddr 00:16:3E:7F:3D:99  

          inet addr:192.168.122.214  Bcast:192.168.122.255  Mask:255.255.255.0

          inet6 addr: fe80::216:3eff:fe7f:3d99/64 Scope:Link

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

          RX packets:98 errors:0 dropped:0 overruns:0 frame:0

          TX packets:9 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1000 

          RX bytes:5720 (5.5 KiB)  TX bytes:1194 (1.1 KiB)


或者,此时类似于VMware中的VM8(物理机和vm02能够互通):

vif = [ "mac=00:16:3e:7f:3d:98,bridge=xenbr0,script=vif-bridge","mac=00:16:3e:7f:3d:99,bridge=xenbr0,script=vif-bridge" ]

注:物理网卡的IP地址为10.10.10.109/24


启动vm02服务,登陆vm02虚拟机再次查看网卡已经有两个:

xm create vm02 

[root@localhost ~]# ifconfig 

eth0      Link encap:Ethernet  HWaddr 00:16:3E:7F:3D:98  

          inet addr:10.10.10.111  Bcast:10.10.10.255  Mask:255.255.255.0

          inet6 addr: fe80::216:3eff:fe7f:3d98/64 Scope:Link

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

          RX packets:43 errors:0 dropped:0 overruns:0 frame:0

          TX packets:18 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1000 

          RX bytes:7363 (7.1 KiB)  TX bytes:2044 (1.9 KiB)


eth1      Link encap:Ethernet  HWaddr 00:16:3E:7F:3D:99  

          inet addr:10.10.10.112  Bcast:10.10.10.255  Mask:255.255.255.0

          inet6 addr: fe80::216:3eff:fe7f:3d99/64 Scope:Link

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

          RX packets:43 errors:0 dropped:0 overruns:0 frame:0

          TX packets:16 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1000 

          RX bytes:7363 (7.1 KiB)  TX bytes:1960 (1.9 KiB)


附一:centos安装vncserver

1、安装软件包

[root@xen ~]# rpm -qa |grep vnc

vnc-server-4.1.2-14.el5_6.6

vnc-4.1.2-14.el5_6.6

若是没有上面两包,则用yum -y install vnc-server vnc安装!

2、设置用户密码

[root@xen ~]# vncpasswd 

设置用户密码之后会在/root目录下新建一个.vnc的隐藏目录

3、编辑服务配置文件

[root@xen ~]# tail -2 /etc/sysconfig/vncservers

 VNCSERVERS="2:root"

 VNCSERVERARGS[2]="-geometry 400x400 -nolisten tcp -nohttpd -localhost"

4、创建xstartup脚本

[root@xen ~]# service vncserver start

[root@xen ~]# ls .vnc/

passwd  xen:2.log  xen:2.pid  xstartup

5、编辑xstatup文件,把红色的注释去掉

[root@xen ~]# cat .vnc/xstartup

#!/bin/sh

# Uncomment the following two lines for normal desktop:

 unset SESSION_MANAGER

 exec /etc/X11/xinit/xinitrc

6、重启vnc服务

[root@xen ~]# serivce vncserver restart

7、把防火墙关闭

[root@xen ~]# service iptables stop

[root@xen ~]# chkconfig iptables off


上面的配置操作完,在Windows下就可以用vnc的客户端连接服务器了!!


附二、改IP脚本

做服务的Linux主机,使用的是静态IP,XEN克隆后的主机都需要手动改IP,因此简单写一个脚本

#!/bin/bash

netmask=255.255.255.0

gateway=10.10.10.1

IP_PATH=/etc/sysconfig/network-scripts/ifcfg-eth0

GW_PATH=/etc/sysconfig/network

echo -e "Please input IP(FORMAT:10.10.10.2):\c"

read ip

##change ip address

echo "DEVICE=eth0">$IP_PATH

echo "BOOTPROTO=static">>$IP_PATH

echo "IPADDR=$ip">>$IP_PATH

echo "NETMASK=255.255.255.0">>$IP_PATH

echo "ONBOOT=yes">>$IP_PATH

##change gateway

echo "GATEWAY=$gateway" >>$GW_PATH

/etc/init.d/network restart


你可能感兴趣的:(xen虚拟化)