首先了解centos对Xen的支持:
RHEL5.7以前默认的虚拟化技术为Xen,kernel version : 2.6.18
RHEL 6 以后只支持KVM ,Dom0不再支持 ,但支持DomU
如何在centos 6.5上使用Xen:
(1). 编译3.0以上版本的内核,启动Dom0的支持;
(2). 编译Xen程序
制作好的相关程序包的项目有:
xen4centos
xen make easy
一、配置yum源,安装xen,kernel
我这里用的是aliyun的镜像源
vim /etc/yum.repos.d/CentOS-Xen.repo
[xen4centos]
name=Xen4 for CentOS 6
baseurl=https://mirrors.aliyun.com/centos/6.9/virt/x86_64/xen-44/
gpgcheck=0
保存退出,执行
yum install -y xen
二、编辑配置GRUB
vim /etc/grub.conf
原配置文件:
#boot=/dev/sda
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS (4.9.75-30.el6.x86_64)
root (hd0,0)
kernel /vmlinuz-4.9.75-30.el6.x86_64 ro root=UUID=11e50789-3089-4d97-8d21-e5322908194b rd_NO_LUKS KEYBOARDTYPE=pc KEYTABLE=us rd_NO_MD crashkernel=auto LANG=zh_CN.UTF-8 rd_NO_LVM rd_NO_DM rhgb quiet
initrd /initramfs-4.9.75-30.el6.x86_64.img
title CentOS (2.6.32-696.23.1.el6.x86_64)
root (hd0,0)
kernel /vmlinuz-2.6.32-696.23.1.el6.x86_64 ro root=UUID=11e50789-3089-4d97-8d21-e5322908194b rd_NO_LUKS KEYBOARDTYPE=pc KEYTABLE=us rd_NO_MD crashkernel=auto LANG=zh_CN.UTF-8 rd_NO_LVM rd_NO_DM rhgb quiet
initrd /initramfs-2.6.32-696.23.1.el6.x86_64.img
title CentOS (2.6.32-431.el6.x86_64)
root (hd0,0)
kernel /vmlinuz-2.6.32-431.el6.x86_64 ro root=UUID=11e50789-3089-4d97-8d21-e5322908194b rd_NO_LUKS KEYBOARDTYPE=pc KEYTABLE=us rd_NO_MD crashkernel=auto LANG=zh_CN.UTF-8 rd_NO_LVM rd_NO_DM rhgb quiet
initrd /initramfs-2.6.32-431.el6.x86_64.img
更改第一段title内容如下:
title CentOS (4.9.75-30.el6.x86_64)
root (hd0,0)
kernel /xen.gz dom0_mem=1024M cpufreq=xen dom0_max_vcpus=1 dom0_vcpus_pin
module /vmlinuz-4.9.75-30.el6.x86_64 ro root=UUID=11e50789-3089-4d97-8d21-e5322908194b rd_NO_LUKS KEYBOARDTYPE=pc KEYTABLE=us rd_NO_MD crashkernel=auto LANG=zh_CN.UTF-8 rd_NO_LVM rd_NO_DM rhgb quiet
module /initramfs-4.9.75-30.el6.x86_64.img
保存退出,重启系统
shutdown -r now
这里为大家提供一份官方的man手册:
http://xenbits.xen.org/docs/unstable/misc/xen-command-line.html
三、
在配置Xen PV模式前,讲一下,相关的配置知识
我们重启系统后
[root@node1 ~]# uname -r
4.9.75-30.el6.x86_64
可以查看当前系统的内核版本
[root@node1 ~]# xl list
Name ID Mem VCPUs State Time(s)
Domain-0 0 1024 1 r----- 547.3
#xl list 可以查看显示Domain的相关信息
关于xen虚拟机的状态
r: running
b: 阻塞
p: 暂停
s: 停止
c: 崩溃
d: dying,正在关闭中的过程中
xm与xl启动DomU使用的配置文件略有不同;
对于xl而言,其创建DomU使用的配置指令可通过man xl.cfg获取
常用指令:
1.name : 域名称,必须是唯一的
2.builder: 指明虚拟机的类型,generic表示pv,hvm表示hvm
3.vcpus: 虚拟CPU个数
maxvcpus: 最大虚拟cpu个数
cpus: vcpu可运行于其上物理CPU列表
4.memory=MBYTES: 内存大小
maxmem=MBYTES: 可以使用的最大内存空间
5.on_poweroff: 指明关机时采取的action
destroy ,restart,preserve
6.on_reboot="ACTION" : 指明重启时采取的action
7.on_crash="ACTION": 虚拟机崩溃时采取的action
8.disk=[ "DISK_SPEC_STRING", "DISK_SPEC_STRING", ...]: 指明磁盘设备,列表
9.vif=[ "NET_SPEC_STRING", "NET_SPEC_STRING", ...]: 指明网络接口,列表
10.vfb=[ "VFB_SPEC_STRING", "VFB_SPEC_STRING", ...]: 指明virtual frame buffer 显示图形界面,列表;
11.pci=[ "PCI_SPEC_STRING", "PCI_SPEC_STRING", ... ]: 指明pci设备接口
PV模式专用指令:
kernel="PATHNAME": 内核文件路径;
ramdisk="PATHNAME":为kernel指定内核提供的ramdisk文件路径
root="STRING": 指明根文件系统
extra="STRING" :额外传递给内核引导时使用的参数
bootloader="PROGRAM":如果DomU使用自己的kernel及ramdisk,此时需要一个Dom0中的应用程序来实现bootloader功能;
磁盘参数指定方式:
[,[,[vdev],[]]]]
tartet表示磁盘映像文件或设备文件路径
format表示磁盘格式,如果映像文件,有多种 格式,如raw,qcow2
vdev 此设备在DomU被识别为硬件设备类型,支持hd,sd[x],xvd[x]
access访问权限
ro,r : 只读
rw,w :读写
disk=["/images/xen/linux.img,raw,xvda,rw",]
使用qemu-img管理磁盘映像
create [-f fmt] [-o options] filename [size]
可创建sparse稀疏格式的磁盘映像文件
四、
示例:创建一个PV模式的VM:
(1) 准备磁盘映像文件
qemu-img create -f raw -o size=2G /images/xen/busybox.img
mke2fs -t ext2 busybox.img
mount -o /images/xen/busybox.img /mnt/
(2) 提供根文件系统
编译busybox,并复制到busybox.img映像中
yum groupinstall -y "Development Tools" "Server Platfrom Development"
yum install -y glibc-static #为了方便移值,安装glibc-static,不让它依赖其它库
wget https://busybox.net/downloads/busybox-1.22.1.tar.bz2
tar xf busybox-1.22.1.tar.bz2
cd busybox-1.22.1
make menuconfig
# Busybox Settings ---> Build Options ---> [*] Build BusyBox as a static binary (no shared libs)
make && make install
cp -a _install/* /mnt/
mkdir proc sys dev etc var boot home
到这里可以试一下
cd
chroot /mnt /bin/sh
(3) 提供DomU配置文件
cd /boot/
ln -s vmlinuz-2.6.32-431.el6.x86_64 vmlinuz
ln -s initramfs-2.6.32-431.el6.x86_64.img initramfs.img
cd /etc/xen
cp xlexample.pvlinux busybox
vim busybox
更改如下项:
name = "busybox-001"
kernel = "/boot/vmlinuz"
ramdisk = "/boot/initramfs.img"
extra = "selinux=0 init=/bin/sh"
memory = 256
vcpus = 1
disk = [ '/images/xen/busybox.img,raw,xvda,rw' ]
root = "/dev/xvda ro"
(4) 启动实例:
xl -v create busybox -n
xl list
xl -v create busybox
xl console busybox-001
退出ctrl+]