#XEN虚拟机复制#关闭运行中的虚拟机xmshutdownweb_001#复制虚拟机的镜像文件和配置文件cp/data/vm/web_001.img/data/vm/web_002.imgcp/etc/xen/web_001/etc/xen/web_002#修改新
#=============================== 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的服务器上创建几个虚拟机以满足项目测试的需求