Centos 5.5下安装使用Xen的方法

来源:岁月联盟 编辑:exp 时间:2012-04-20

Centos 5.5安装使用Xen  Xen是主流虚拟机中性能损耗最小的(但是不支持windows平台),目前可以运行在x86系统上,并正在向x86_64、IA64、PPC移植。移植到其他平台从技术上是可行的,未来有可能会实现。
 1.安装支持Xen的Linux内核和 Xen1yum -y install xen kernel-xen xen-lib virt-manager python-virtinstkernel-xen:可以跑 Xen 的 Linux 核心  www.2cto.com  xen:主要的 xen 套件,包括配置文件、启动脚本和一些函数库 xen-libs:Xen 所需要的函数库 python-virtinst:提供终端安装的软件 virt-manager:用于图形界面管理xen
 2.修改默认以支持xen的内核启动1vi /boot/grub/grub.confdefault=0重启系统1reboot检查内核1uname -r2输出 2.6.18-238.9.1.el5xen查看xen是否启动1xm list2输出: Domain-0
 3.在xen中安装操作系统xen中安装操作系统时,可以支持三种安装源:NFS :   nfs:主机IP:目录  www.2cto.com  WWW :   http://主机IP/目录FTP :   ftp://主机IP/目录我们采用 WWW 方式(这种方式非常方便,安装源可以是一个包含安装文件的可以访问到的web环境):制作安装源(将光驱挂载到/mnt/cdrom)1mkdir -p /mnt/cdrom2mount /dev/cdrom /mnt/cdrom安装httpd(如果未安装)1yum -y install httpd修改httpd默认目录1vi /etc/httpd/conf/httpd.conf将DocumentRoot "/var/www/html"修改为DocumentRoot "/mnt/cdrom"将<Directory "/var/www/html">修改为<Directory "/mnt/cdrom">1sed -i 's#DocumentRoot "/var/www/html"#DocumentRoot "/mnt/cdrom"#' /etc/httpd/conf/httpd.conf2sed -i 's#<Directory "/var/www/html">#<Directory "/mnt/cdrom">#' /etc/httpd/conf/httpd.conf重启httpd1service httpd restart制作客户机主要磁盘1mkdir -p /data/vm2dd if=/dev/zero of=/data/vm/web_001.img bs=2k seek=4096k count=1制作客户机交换磁盘1dd if=/dev/zero of=/data/vm/swap.img bs=2k seek=512k count=1安装操作系统1virt-install -n web_001 -r 512 --vcpus=1 --nographic -f /data/vm/web_001.img  -l http://192.168.9.220  www.2cto.com  # -n :后面接虚拟机名称,配置 /etc/xen 底下# -r :后面接分配的内存大小,至少需要 256MB 才能夠執行# --vcpus : 分配多少个cpu# -f :后面接新建的磁盘文件!# --nographics :不使用图形化安装;# -p : 半虚拟化# -s : 虚拟机的硬盘空间# -l :后面接安装源。写法为:#   NFS :   nfs:主机IP:目录#   WWW :   http://主机IP/目录#   FTP :   ftp://主机IP/目录然后根据系统提示安装系统安装完成后,查看真实机上的虚拟机列表1xm list输出的列表中会包含新建的 web_001 虚拟机4.附相关操作命令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_0015.真实机开机如何自动启动虚拟机1ln -s /etc/xen/web_001 /etc/xen/auto/web_001#也可以直接把配置文件拷贝到/etc/xen/auto/1  www.2cto.com  cp -r /etc/xen/web_001 /etc/xen/auto/6.XM命令:    xm create vm1 #其中vm1 为虚拟机的配置文件,位于/etc/xen/vm/vm1    xm create -c vm1 #如果需要启动控制台,则可以运行命令    xm list #可以列出所有的虚拟机    xm console <domid> #可以显示某虚拟机的控制台    xm reboot|shutdown <domid> #可以重起和关闭id 为domid 的虚拟机    xm destroy <domid> #可以销毁id 为domid 的虚拟机    xm console fc5 #从终端或控制台登录正在运行的虚拟操作系统    xm save <DomId> <File> # 存储正在运行的虚拟操作系统的状态    xm restore <File> # 唤醒虚拟操作系统    xm pause <DomId> #停止正在运行的虚拟操作系统    xm unpause <DomId> #激活停止的虚拟操作系统    xm mem-set <DomId> <Mem> #调整虚拟平台/虚拟操作系统的占用内存    xm shutdown 虚拟操作系统的Name或DomID #关闭被虚拟的系统    xm destroy <DomId> #立即停止虚拟的系统 (重要);    xm vcpu-set <DomId> <VCPUs> #调整虚拟平台及虚拟操作系统的虚拟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
 7.XEN虚拟机复制关闭运行中的虚拟机1xm shutdown web_001复制虚拟机的镜像文件和配置文件1cp /data/vm/web_001.img /data/vm/web_002.img2cp /etc/xen/web_001 /etc/xen/web_002修改新复制虚拟机的配置文件1vi /etc/xen/web_002原内容为:01name = "web_001"02  www.2cto.com  uuid = "21e3bccf-4778-747e-c3b7-a87cadfa29fa"03maxmem = 51204memory = 51205vcpus = 106bootloader = "/usr/bin/pygrub"07on_poweroff = "destroy"08on_reboot = "restart"09on_crash = "restart"10disk = [ "tap:aio:/data/vm/web_001.img,xvda,w" ]11vif = [ "mac=00:16:36:64:98:f1,bridge=xenbr0,script=vif-bridge" ]修改后的内容为:01name = "web_002"02uuid = "21e3bccf-4778-747e-c3b7-a87cadfa29fd"03maxmem = 51204memory = 51205vcpus = 106bootloader = "/usr/bin/pygrub"07  www.2cto.com  on_poweroff = "destroy"08on_reboot = "restart"09on_crash = "restart"10disk = [ "tap:aio:/data/vm/web_002.img,xvda,w" ]11vif = [ "mac=00:16:36:64:98:f5,bridge=xenbr0,script=vif-bridge" ]*保证name、uuid、mac的唯一性,还有就是disk路径
 启动并进入新复制的虚拟机1xm create -c web_002修改主机名1vi /etc/hosts将web_001修改为web_0021vi /etc/sysconfig/network将web_001修改为web_002修改IP01vi /etc/sysconfig/network-scripts/ifcfg-eth002# Xen Virtual Ethernet03DEVICE=eth004BOOTPROTO=static05BROADCAST=192.168.9.25506HWADDR=00:16:36:64:98:f507  www.2cto.com  IPADDR=192.168.9.22208NETMASK=255.255.255.009NETWORK=192.168.9.010ONBOOT=yesQ:bs=2k seek=4096k count=1 参数详细意思bs=2k:设置读写块的大小为 2kseek=4096k:从输出文件开头跳过 4096k 个块后再开始复制(通常只有当输出文件是磁盘或磁带时才有效)count=1:仅拷贝 1 个块(块大小等于 bs 指定的字节数)   作者 雪人