共计 2996 个字符,预计需要花费 8 分钟才能阅读完成。
本文由 LinuxProbe.Com 团队成员 魏丽猿 整理发布,原文来自:Linux 运维笔记。
因为从 RHEL6 版本开始,RedHat 就不在原生支持 Xen,改为投奔 KVM 的怀抱,尽管 KVM 号称支援 HVM 技术的全虚拟化,但 KVM 毕竟起步晚,远不如 Xen 技术成熟,运行多个实例时经常发生系统崩溃的现象,当然也不排斥未来 KVM 会更加高效的可能,所以安装 Xen 的方法只有两种,一种是自己下载源代码自行编译,但这种方法太耗费精力,所以忽略,另一中就是使用第三方软件源进行安装,互联网有大量的第三方源以及开源组织提供编译好的源码,其中 Xen made Easy 开源项目为我们提供了 Xen4 在 RHEL6/CentOS6 的安装,本文采用 Xen Made Easy 项目网站提供的第三方安装源,方便快捷。
硬件:HP DL360 G6(E5520,16G,2*146GB)
系统版本:CentOS-6.6-x86_64-minimal.iso
wget http://blog.linuxeye.com/lnmp-full.tar.gz | |
tar xzf lnmp-full.tar.gz | |
cd lnmp | |
./install.sh #所有都选择 no | |
chkconfig iptables off #关闭 iptables |
yum -y install bridge-utils
yum -y install http://au1.mirror.crc.id.au/repo/el6/x86_64/kernel-xen-release-6-7.noarch.rpm
yum -y install xen | |
ls -l /boot/xen.gz | |
lrwxrwxrwx 1 root root 12 Dec 1 18:42 /boot/xen.gz -> xen-4.2.5.gz | |
chkconfig xend on |
yum -y install kernel-xen
注意:kernel-xen 安装依赖 kernel-xen-firmware,由于这两个包比较大,建议下载到本地用 yum -y localinstall kernel-xen* 完成安装
cat /boot/grub/grub.conf
# 如下图:
新建文件/etc/sysconfig/network-scripts/ifcfg-xenbr0,保持内容如下:
DEVICE=xenbr0 | |
TYPE=Bridge | |
ONBOOT=yes | |
DELAY=0 | |
NM_CONTROLLED=no | |
BOOTPROTO=static | |
IPADDR=192.168.3.20 | |
NETMASK=255.255.255.0 | |
GATEWAY=192.168.3.1 |
修改/etc/sysconfig/network-scripts/ifcfg-eth0,保持内容如下:
DEVICE=eth0 | |
HWADDR=F4:CE:46:85:64:34 | |
TYPE=Ethernet | |
UUID=c27373b9-a698-4ac8-9afe-a4dee87f5704 | |
ONBOOT=yes | |
BRIDGE=xenbr0 | |
NM_CONTROLLED=no | |
service network restart #重启网络 |
重新启动系统并进入 Xen 内核的 Linux,测试如下图:
yum -y install libvirt
libvirt 提供一种虚拟机监控程序不可知的 API 来安全管理运行于主机上的来宾操作系统。libvirt 本身不是一种工具,它是一种可以建立工具来管理来宾操作系统的 API。libvirt 本身构建于一种抽象的概念之上。它为受支持的虚拟机监控程序实现的常用功能提供通用的 API。libvirt 起初是专门为 Xen 设计的一种管理 API,后来被扩展为可支持多个虚拟机监控程序。
service libvirtd start | |
yum -y install python-virtinst |
包含一个使用 libvirt 在虚拟机内部启动安装操作系统版本的 Python 模块(如命令:virt-install、virt-clone)
在 192.168.3.10:81 挂载 CentOS-6.6-x86_64-minimal.iso,并将里面文件拷贝到 apache 网站根目录下 centos6.6,使在 192.168.3.20 上能通过 http://192.168.3.10:81/centos6.6 访问到安装镜像
注意:镜像文件.treeinfo 缺少一行,导致安装系统时找不到 kernel,保持中间段如下:
[images-xen] | |
kernel = images/pxeboot/vmlinuz | |
initrd = images/pxeboot/initrd.img |
mkdir -p /data/xen | |
virt-install -n vm21 -r 2048 --vcpus=2 --nographic --disk path=/data/xen/vm21.img,size=20 \ | |
-l http://192.168.3.10:81/centos6.6/ --bridge=xenbr0,model=virtio |
virt-install 命令参数:
-n --name= 客户端虚拟机名称 | |
-r --ram= 客户端虚拟机分配的内存 | |
-u --uuid= 客户端 UUID | |
--vcpus=2 客户端的 vcpu 个数 | |
-v --hvm 全虚拟化 | |
-p --paravirt 半虚拟化 | |
-l --location=localdir 安装源 | |
--vnc 使用 vnc | |
-c --cdrom= 光驱 安装途径 | |
-s --file-size= 使用磁盘映像的大小 单位为 GB | |
-f --file= 作为磁盘映像使用的文件 | |
--disk= 使用不同选项作为磁盘使用安装介质 |
virt-clone -o vm21 -n vm22 -f /data/xen/vm22.img
ls /etc/xen #xen 配置文件目录 | |
xm list #显示虚拟机运行状态 | |
xm shutdown linux1 #关闭 linux1 虚拟机 | |
xm console linux1 #连接虚拟机 linux1 控制台, 连接到虚拟机上面可以用组合键 ctrl + ] 键切换到物理机 | |
xm pause linux1 #暂停虚拟机 linux1 | |
xm resume linux1 #恢复被暂停的虚拟机 linux1 | |
virt-clone -o linux1 -n linux2 -f /data/xen/linux2.img #克隆镜像 | |
xm create linux2 #开启虚拟机 linux2 | |
xm console linux2 | |
sed -i 's@HWADDR=@#HWADDR=@g' /etc/sysconfig/network-scripts/ifcfg-eth0 | |
sed -i 's@IPADDR=.*$@IPADDR=192.168.1.112@g' /etc/sysconfig/network-scripts/ifcfg-eth0 | |
sed -i 's@HOSTNAME=.*$@HOSTNAME=linux2@g' /etc/sysconfig/network |
