CentOS 5.6下安装配置XEN虚拟机

  • 来源: 驱动中国 作者: itcom   2012-10-30/08:48
  • #=============================== XEN虚拟机复制 ==============================

    #关闭运行中的虚拟机

    xm shutdown web_001

    #复制虚拟机的镜像文件和配置文件

    cp /data/vm/web_001.img /data/vm/web_002.img

    cp /etc/xen/web_001 /etc/xen/web_002

    #修改新复制虚拟机的配置文件

    vi /etc/xen/web_002

    #原内容为:

    name = "web_001"

    uuid = "21e3bccf-4778-747e-c3b7-a87cadfa29fa"

    maxmem = 512

    memory = 512

    vcpus = 1

    bootloader = "/usr/bin/pygrub"

    on_poweroff = "destroy"

    on_reboot = "restart"

    on_crash = "restart"

    disk = [ "tap:aio:/data/vm/web_001.img,xvda,w" ]

    vif = [ "mac=00:16:36:64:98:f1,bridge=xenbr0,script=vif-bridge" ]

    #修改后的内容为:

    name = "web_002"

    uuid = "21e3bccf-4778-747e-c3b7-a87cadfa29fd"

    maxmem = 512

    memory = 512

    vcpus = 1

    bootloader = "/usr/bin/pygrub"

    on_poweroff = "destroy"

    on_reboot = "restart"

    on_crash = "restart"

    disk = [ "tap:aio:/data/vm/web_002.img,xvda,w" ]

    vif = [ "mac=00:16:36:64:98:f5,bridge=xenbr0,script=vif-bridge" ]

    #保证name、uuid、mac的唯一性,还有就是disk路径

    #启动并进入新复制的虚拟机

    xm create -c web_002

    #修改主机名

    vi /etc/hosts

    将web_001修改为web_002

    vi /etc/sysconfig/network

    将web_001修改为web_002

    #修改IP

    vi /etc/sysconfig/network-scripts/ifcfg-eth0

    # Xen Virtual Ethernet

    DEVICE=eth0

    BOOTPROTO=static

    BROADCAST=192.168.9.255

    HWADDR=00:16:36:64:98:f5

    IPADDR=192.168.9.222

    NETMASK=255.255.255.0

    NETWORK=192.168.9.0

    ONBOOT=yes

    #查看虚拟机列表及各虚拟机网络测试

    xm list

     

    Xen的半虚拟化:

    Xen通过一种叫做半虚拟化的技术获得高效能的表现(较少的效能损失,典型的情况下大约损失 2%,在最糟的情况下会有 8% 的效能耗损;与其它使用完全的虚拟化却造成最高到 20% 损耗的其他解决方案形成一个明显的对比),甚至在某些与传统虚拟技术极度不友好的架构上(x86),Xen也有极佳的表现。与那些传统透过软件模拟实现硬件的虚拟机不同,在3.0版本及在Intel VT-X支援前的Xen需要让客座作业系统(guest operating systems)与Xen API进行连接。到目前为止,这样连结已经可以运用在NetBSD,GNU/Linux,FreeBSD和贝尔实验室的Plan 9系统上。在Brainshare 2005会议上,Novell展示了NetWare与 Xen的连通。与Windows XP连通的技术曾在Xen开发初期进行,但微软的协议未能允许它发布。Sun微系统公司也正积极研究Solaris与Xen的连结,使其能在Xen平台上运作。

    Xen的完全虚拟化:

    Intel对Xen贡献修改以支持其VT-X 架构扩展,而AMD则修改以支持其AMD-V架构扩展。如系统处理器支持虚拟硬件扩展(Intel和AMD对本地支持虚拟化的扩展),这项技术将允许未修改的客操作系统运行在Xen虚拟机中。事实上,那意味着性能的提升,并且你可以在没有进行任何协议不允许的修改的情况下对Windows进行虚拟。

    虚拟机的迁移:

    Xen虚拟机可以在不停止的情况下在多个物理主机之间即时迁移(live migration)。在操作过程中,虚拟机在没有停止工作的情况下内存被反复的复制到目标机器。虚拟机在最终目的地开始执行之前,会有一次60-300毫秒的非常短暂的暂停以执行最终的同步化,给人无缝迁移的感觉。类似的技术被用来暂停一台正在运行的虚拟机到磁盘,并切换到另外一台,第一台虚拟机在以后可以恢复。

    系统平台支持:

    Xen目前可以运行在x86及x86-64系统上,并正在向IA64、PPC移植。移植到其他平台从技术上是可行的,未来有可能会实现

    #服务器信息

    HP DL380 G6

    #系统环境

    CentOS 5.6 64位

    #组件安装

    Base

    Development Libraries

    Development Tools

    Editors

    Text-based Internet

    #update yum

    cd /etc/yum.repos.d

    mv CentOS-Base.repo CentOS-Base.repo.bak

    cat >>/etc/yum.repos.d/CentOS-Base.repo<

    [base]

    name=CentOS-$releasever - Base

    baseurl=http://centos.ustc.edu.cn/centos/$releasever/os/$basearch/

    gpgcheck=1

    gpgkey=http://centos.ustc.edu.cn/centos/RPM-GPG-KEY-CentOS-5

    #released updates

    [updates]

    name=CentOS-$releasever - Updates

    baseurl=http://centos.ustc.edu.cn/centos/$releasever/updates/$basearch/

    gpgcheck=1

    gpgkey=http://centos.ustc.edu.cn/centos/RPM-GPG-KEY-CentOS-5

    #packages used/produced in the build but not released

    [addons]

    name=CentOS-$releasever - Addons

    baseurl=http://centos.ustc.edu.cn/centos/$releasever/addons/$basearch/

    gpgcheck=1

    gpgkey=http://centos.ustc.edu.cn/centos/RPM-GPG-KEY-CentOS-5

    #additional packages that may be useful

    [extras]

    name=CentOS-$releasever - Extras

    baseurl=http://centos.ustc.edu.cn/centos/$releasever/extras/$basearch/

    gpgcheck=1

    gpgkey=http://centos.ustc.edu.cn/centos/RPM-GPG-KEY-CentOS-5

    #additional packages that extend functionality of existing packages

    [centosplus]

    name=CentOS-$releasever - Plus

    baseurl=http://centos.ustc.edu.cn/centos/$releasever/centosplus/$basearch/

    gpgcheck=1

    enabled=0

    gpgkey=http://centos.ustc.edu.cn/centos/RPM-GPG-KEY-CentOS-5

    EOF

    #set ntp

    yum -y install ntp

    echo "* 3 * * * /usr/sbin/ntpdate 210.72.145.44 > /dev/null 2>&1" >> /etc/crontab

    service crond restart

    #set ulimit

    echo "ulimit -SHn 65535" >> /etc/rc.local

    #如果看到输出中有 pae,那么cpu就支持半虚拟化,如果输出中同时有pae和vmx/svm(注:vmx为intel,svm为amd),那么cpu支持全虚拟化

    cat /proc/cpuinfo |egrep '(flags|vmx)'

     

    #安装支持Xen的Linux内核和 Xen

    yum -y install xen kernel-xen xen-lib virt-manager python-virtinst

    kernel-xen:修改的 Linux 核心,使可以跑 Xen 的环境

    xen:主要的 xen 套件,包括配置文件、启动脚本和一些函数库

    xen-libs:Xen 所需要的函数库

    python-virtinst:提供终端安装的软件

    virt-manager:用于图形界面管理xen

    #修改默认以支持xen的内核启动

    vi /boot/grud/grub.conf

    default=0

    #重启系统

    reboot

    #检查内核

    uname -r

    2.6.18-238.9.1.el5xen

    #查看xen是否启动

     

    #============================= 安装xen虚拟机 ==========================

    #制作安装源

    #挂载系统光盘

    mkdir -p /mnt/cdrom

    mount /dev/cdrom /mnt/cdrom

    #安装httpd

    yum -y install httpd

    #修改httpd默认目录

    vi /etc/httpd/conf/httpd.conf

    将DocumentRoot "/var/www/html"修改为DocumentRoot "/mnt/cdrom"

    修改为

    sed -i 's#DocumentRoot "/var/www/html"#DocumentRoot "/mnt/cdrom"#' /etc/httpd/conf/httpd.conf

    sed -i 's###' /etc/httpd/conf/httpd.conf

    使用背景:

    最近做项目测试,每项业务需要运行独立的环境中,手头又无多余的服务器,决定在现有一台HP DL380G6的服务器上创建几个虚拟机以满足项目测试的需求
    #p#副标题#e#


    #重启httpd

    service httpd restart

    #制作客户机主要磁盘

    mkdir -p /data/vm

    dd if=/dev/zero of=/data/vm/web_001.img bs=2k seek=4096k count=1

    #制作客户机交换磁盘

    #dd if=/dev/zero of=/data/vm/swap.img bs=2k seek=512k count=1

    virt-install -n web_001 -r 512 --vcpus=1 --nographic -f /data/vm/web_001.img -l http://192.168.9.220 -x "ip=192.168.9.221 netmask=255.255.255.0 gateway=192.168.9.1"

    # -n :后面接虚拟机名称,配置 /etc/xen 底下

    # -r :后面接分配的内存大小,至少需要 256MB 才能夠執行

    # --vcpus : 分配多少个cpu

    # -f :后面接新建的磁盘文件!

    # --nographics :不使用图形化安装;

    # -p : 半虚拟化

    # -s : 虚拟机的硬盘空间

    # -l :后面接安装源。写法为:

    # NFS : nfs:主机IP:目录

    # WWW : http://主机IP/目录

    # FTP : ftp://主机IP/目录

    #然后根据系统提示安装系统,使用文本模式安装,安装过程跟真实机一样,虚拟机的配置文件存放在 /etc/xen 下面

     

    #安装完成后,查看真实机上的虚拟机列表

    xm list

     

    #附相关操作命令:

    ls /etc/xen #xen配置文件目录

    xm list #查看各个域状态

    xm shutdown web_001 #关闭web_001这个虚拟机

    xm console web_001 连接web_001控制台,连接到虚拟机上面可以用组合键 ctrl + ] 键切换到物理机

    #如果配置了IP,可以用ssh -l username IP 来连接

    xm create web_001 启动web_001

    #真实机开机如何自动启动虚拟机

    ln -s /etc/xen/web_001 /etc/xen/auto/web_001

    #也可以直接把配置文件拷贝到/etc/xen/auto/

    cp -r /etc/xen/web_001 /etc/xen/auto/

    XM命令:

    xm create vm1 #其中vm1 为虚拟机的配置文件,位于/etc/xen/vm/vm1

    xm create -c vm1 #如果需要启动控制台,则可以运行命令

    xm list #可以列出所有的虚拟机

    xm console #可以显示某虚拟机的控制台

    xm reboot|shutdown #可以重起和关闭id 为domid 的虚拟机

    xm destroy #可以销毁id 为domid 的虚拟机

    xm console fc5 #从终端或控制台登录正在运行的虚拟操作系统

    xm save # 存储正在运行的虚拟操作系统的状态

    xm restore # 唤醒虚拟操作系统

    xm pause #停止正在运行的虚拟操作系统

    xm unpause #激活停止的虚拟操作系统

    xm mem-set #调整虚拟平台/虚拟操作系统的占用内存

    xm shutdown 虚拟操作系统的Name或DomID #关闭被虚拟的系统

    xm destroy #立即停止虚拟的系统 (重要);

    xm vcpu-set #调整虚拟平台及虚拟操作系统的虚拟CPU个数

    xm top 或 xentop # 查看虚拟系统运行的状态

    xm save VM1 VM1.chk # stop the domain and save its current state into a file called VM1.chk

    xm restore VM1.chk #resume execution of this domain

    #如果觉得手动安装虚拟机比较麻烦,可以手动到 http://stacklet.com/去下载已经装好的镜像文件
     


    评论 {{userinfo.comments}}

    {{money}}

    {{question.question}}

    A {{question.A}}
    B {{question.B}}
    C {{question.C}}
    D {{question.D}}
    提交

    驱动号 更多