| Centos5.5安装使用Xen: |
| Xen是主流虚拟机中性能损耗最小的(但是不支持windows平台),目前可以运行在x86系统上,并正在向x86_64、IA64、PPC移植。移植到其他平台从技术上是可行的,未来有可能会实现。 |
| #================================安装支持Xen的Linux内核和 Xen================================================================= |
| 安装支持Xen的Linux内核和 Xen |
| yum -y install xen kernel-xen xen-lib virt-manager python-virtinst |
| kernel-xen:可以跑 Xen 的 Linux 核心 |
| 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是否启动 |
| xm list |
| 输出: Domain-0 |
| #===============================在xen中安装操作系统=================================================================================== |
| xen中安装操作系统时,可以支持三种安装源: |
| NFS : nfs:主机IP:目录 |
| WWW : http://主机IP/目录 |
| FTP : ftp://主机IP/目录 |
| 我们采用 WWW 方式(这种方式非常方便,安装源可以是一个包含安装文件的可以访问到的web环境): |
| 制作安装源(将光驱挂载到/mnt/cdrom) |
| 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 |
| 重启httpd |
| service httpd restart |
| 制作客户机主要磁盘(4GB) |
| mkdir -p /data/vm |
| dd if=/dev/zero of=/data/vm/web_001.img bs=1M count=4096 |
| |
| bs:读写块大小 |
| count:读写块数量 count=4096 拷贝4096块 |
| 4096 * 1M = 4096M = 4G |
| |
| 制作客户机交换磁盘(可以省略) |
| dd if=/dev/zero of=/data/vm/swap.img bs=2k count=1 |
| 安装操作系统 |
| virt-install -n web_001 -r 512 --vcpus=1 --nographic -f /data/vm/web_001.img -l http://192.168.9.220 |
| # -n :后面接虚拟机名称,配置 /etc/xen 底下 |
| # -r :后面接分配的内存大小,至少需要 256MB 才能夠執行 |
| # --vcpus : 分配多少个cpu |
| # -f :后面接新建的磁盘文件! |
| # --nographics :不使用图形化安装; |
| # -p : 半虚拟化 |
| # -s : 虚拟机的硬盘空间 |
| # -l :后面接安装源。写法为: |
| # NFS : nfs:主机IP:目录 |
| # WWW : http://主机IP/目录 |
| # FTP : ftp://主机IP/目录 |
| 然后根据系统提示安装系统 |
| 安装完成后,查看真实机上的虚拟机列表 |
| xm list |
| 输出的列表中会包含新建的 web_001 虚拟机 |
| #================================附相关操作命令================================================================= |
| 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 |
| #=============================== 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 |
| |
| Q: |
| bs=2k seek=4096k count=1 参数详细意思 |
| bs=2k:设置读写块的大小为 2k |
| seek=4096k:从输出文件开头跳过 4096k 个块后再开始复制(通常只有当输出文件是磁盘或磁带时才有效) |
| count=1:仅拷贝 1 个块(块大小等于 bs 指定的字节数) |
| |
| 拷贝光盘文件到文件系统安装 |
| |
| |
| ============================================================================================================================== |
| 宿主机启动时自动运行虚拟机: |
| 在 /etc/xen/auto 下拷贝一个虚拟机的配置文件 或 新建一个链接到虚拟机的配置文件 |
| |
| cd /etc/xen/auto/ |
| ln -s ../virt001 virt001 |