天天看点

xen

xen

一、安装相关软件

rpm -ivh kernel-xen-*

rpm -ivh xen-libs-3.0.3-80.el5.i386.rpm

rpm -ivh gnome-python2-gnomekeyring-2.16.0-2.el5.i386.rpm  gnome-python2-desktop-2.16.0-2.el5.i386.rpm

rpm -ivh gnome-desktop-2.16.0-1.el5.centos.1.i386.rpm

rpm -ivh gnome-menus-2.16.0-2.fc6.i386.rpm

rpm -ivh gnome-applet-vm-0.1.2-1.el5.i386.rpm libvirt-0.3.3-14.el5.i386.rpm virt-manager-0.5.3-10.el5.i386.rpm xen-3.0.3-80.el5.i386.rpm bridge-utils-1.1-2.i386.rpm gtk-vnc-python-0.3.2-3.el5.i386.rpm python-virtinst-0.300.2-12.el5.noarch.rpm bridge-utils-1.1-2.i386.rpm python-virtinst-0.300.2-12.el5.noarch.rpm libvirt-python-0.3.3-14.el5.i386.rpm libvirt-python-0.3.3-14.el5.i386.rpm gtk-vnc-0.3.2-3.el5.i386.rpm

rpm -ivh Virtualization-en-US-5.2-11.el5.centos.noarch.rpm Virtualization-zh-CN-5.2-11.el5.centos.noarch.rpm

rpm -ivh xen-devel-3.0.3-80.el5.i386.rpm

安装时最好使用yum省事,软件也是最新少bug

二、更改grup文件

[root@Centos CentOS]# vi /etc/grub.conf

default=0

timeout=5

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

hiddenmenu

title CentOS (2.6.18-128.el5xen)

        root (hd0,0)

        kernel /xen.gz-2.6.18-128.el5

        module /vmlinuz-2.6.18-128.el5xen ro root=/dev/VolGroup00/LogVol00 rhgb quiet

        module /initrd-2.6.18-128.el5xen.img

title CentOS (2.6.18-128.el5)

        kernel /vmlinuz-2.6.18-128.el5 ro root=/dev/VolGroup00/LogVol00 rhgb quiet

        initrd /initrd-2.6.18-128.el5.img

更改完配置文件后重启机器

三、虚拟机安装操作系统

virt-install -n VMRHEL2 -r 400 --vcpus=1 -f /vmserver/VMRHEL2 -s 80 -p -l /mnt/RedhatASV4.0 --nographics

-n名称 -r内存大小单位为M -vcpus cpu个数 -f 虚拟机文件存放的位置可以是分区,我这是一个文件 -s 虚拟机的硬盘空间单位为G -l 后面是本地文件已解压开的ISO文件在安装过程中得有一个HTTP 或NFS之类的ISO文件位置

------------------------------------------相关知识------------------------------------------------------------------

挂载NFS是第一行为IP 第二行为目录如下

192.168.6.219

/qeedoodb

nfs配置

主配置该文件

/etc/exports

/qeedoodb *(ro,sync)#sync当服务端资料有变时会通知客户端

权限没有设置权限时默认权限为ro,sync

chown -R nfsnobody /qeedoodb/  允许匿名帐户写入

/qeedoodb *.exmple.com(ro,sync) server1.redhat.com(rw,sync)

/data1 192.168.0.0/255.255.255.0(sync)

exportfs -r 重新加载配置文件

在客户端机器使用showmount -e NFSserverip查看NFS的共享

mount NFSserverIP:/tmp /mnt/nfs

NFS使用RPC 管理,通知rpcinfo 查看NFS使用的相关服务及端口

[root@a211-155-229-83 ~]# rpcinfo -p localhost

   program vers proto   port

    100000    2   tcp    111  portmapper

    100000    2   udp    111  portmapper

    100024    1   udp    904  status

    100024    1   tcp    907  status

    100003    2   udp   2049  nfs

    100003    3   udp   2049  nfs

    100003    4   udp   2049  nfs

    100021    1   udp  56226  nlockmgr

    100021    3   udp  56226  nlockmgr

    100021    4   udp  56226  nlockmgr

    100003    2   tcp   2049  nfs

    100003    3   tcp   2049  nfs

    100003    4   tcp   2049  nfs

    100021    1   tcp  51857  nlockmgr

    100021    3   tcp  51857  nlockmgr

    100021    4   tcp  51857  nlockmgr

    100005    1   udp   1011  mountd

    100005    1   tcp   1011  mountd

    100005    2   udp   1011  mountd

    100005    2   tcp   1011  mountd

    100005    3   udp   1011  mountd

    100005    3   tcp   1011  mountd

在防火墙上开放111:tcp 111:udp 1011:tcp 1011:udp 2049:tcp 2049:udp端口即可远程访问NFS

参考文档http://linux.vbird.org/linux_server/0330nfs.php

mount 211.155.229.83:/qeedoodb/439920/mcdb /mnt

chown -R nfsnobody /qeedoodb/

挂载windows的共享目录至linux

[root@localhost ~]# mount -o --username=administrator //192.168.6.176/Redhat /mnt

Password:

挂载一个ISO至文件夹

mount -o loop /qeedoodb/RHEL4.8-i386-ES-DVD.iso /mnt

--------------------------------------------------------------------------------------------------------------------------

四、xen 内存及CPU调整

vi /etc/xen/xen_vm2 编辑xen配置文件把内存及cpu个数调至和物理的差不多,之后通过如下命令动态调整CPU个数及内存

xm mem-set xen_vm2 1000

xm vcpu-set  xen_vm2 5

name = "xen_vm2"

uuid = "65ed1ddf-8f29-c024-dae8-ce7432c1e366"

maxmem = 10000

memory = 10000

vcpus = 7

bootloader = "/usr/bin/pygrub"

on_poweroff = "destroy"

on_reboot = "restart"

on_crash = "restart"

vfb = [  ]

disk = [ "tap:aio:/xen/xen_vm2,xvda,w" ]

vif = [ "mac=00:16:3e:5e:eb:72,bridge=xenbr0" ]

五、虚拟机克隆

virt-clone -o VM_3 -n VM_4 -f /vmserver/VM_4

-o原虚拟机 -n克隆的虚拟机 -f存放位置 克隆完之后需要更改下主机名为避免管理混乱(克隆机器前需要把被克隆的主机关闭掉才能克隆)

六、部分命令操作

xm list 查看正在运行的虚拟机

xm create VM_3开启VM_3机器

xm console VM_3 在实体机上进入虚拟机的控制

xm shutdown VM_3 关闭虚拟机,也可能过ssh进入虚拟机IP后 执行相关的关闭等操作

关于虚拟机的时间问题 如果实体机的时间不正确,此时更正虚拟机的时间也是白操作

七、硬盘空间的扩充

新建一块6G的设备作为XEN的磁盘

dd if=/dev/zero of=/vmserver/disk_1.img bs=1M count=6000

查看相关权限并设置相同权限

ll /vmserver/

chmod 755 disk_1.img

更改下面配置前需先关闭虚拟机,试验时,有一虚拟机未关闭加入下面选项导致不能开启

[root@Centos ~]#vi /etc/xen/VM_3

disk = [ "tap:aio:/vmserver/VM_3,xvda,w","tap:aio:/vmserver/disk_1.img,xvdb,w" ]

启动虚拟机后,fdisk -l查看新加入的虚拟机的硬盘

xen突然停止服务,机器连接不上

xen开机后的日志与dmesg日志的错误,此错误导致xen机器间隔性的突然死机问题。。

Feb  9 12:51:43 a211-155-229-83 kernel: PCI: BIOS Bug: MCFG area at e0000000 is not E820-reserved

Feb  9 12:51:43 a211-155-229-83 kernel: PCI: Not using MMCONFIG.

[root@a211-155-229-83 ~]# dmesg |grep BIOS

BIOS-provided physical RAM map:

PCI: BIOS Bug: MCFG area at e0000000 is not E820-reserved

方法更改/etc/grub.conf 在 module /vmlinuz-2.6.18-128.el5xen ro root=LABEL=/ 加入 pci=nommconf不让其检测

        module /vmlinuz-2.6.18-128.el5xen pci=nommconf ro root=LABEL=/

title CentOS (2.6.18-128.el5PAE)

        kernel /vmlinuz-2.6.18-128.el5PAE ro root=LABEL=/

        initrd /initrd-2.6.18-128.el5PAE.img

使用此方法目前已有一段没有出现问题了,现象描述为xen跟主系统争用pci资源导致系统突然访问不了,此前是周期性比较强的出现机器歇菜,有朋友说他们装xen从来就没有出现过这个问题,可能硬件不太好也有关系吧,配置是xeon 5506两颗4核的CPU 内存16G 硬盘120G  啥牌子的就不知道了,说是DELL的正牌机

[root@a211-155-229-83 ~]# xm console xen_vm1

xenconsole: Could not open tty `/dev/pts/0': No such file or directory

ps -ef|grep xenconsole查看下这个进程是否存在

/usr/sbin/xenconsoled运行下就可以了 当然如果虚拟机上没有运行什么东西可以service xend restart一把

考虑换xen为KVM了目前redhat打算在RHEL 6不再内置xen而使用KVM取而代之

参考资料

http://linux.chinaunix.net/bbs/viewthread.php?tid=1002876

基于Redhat Enterprise Linux AS 5 的XEN安装与配置

xen用户手册 Xen v3.0

本文出自 51CTO.COM技术博客

继续阅读