Xen简介:
早期xen是基于半虚拟化的方式运行,大致损失硬件平台性能的5%。然而它十分怪异,因为它仅负责管理cpu和内存。所有I/O设备xen本身是不负责驱动和管理的。因为xen hypervisor仅提供最基本的管理功能,如虚拟化cpu,mmu,内存和中断等。然后将这些虚拟化资源向上输出接口供各虚拟机调用。因此,它必须先启动第一个虚拟机对硬件资源进行分配和管理。而Xen使用域来描述各虚拟机,并且根据ID号来唯一标识。因此第一个启动的虚拟机称为Dom0。虚拟机和hypervisor共同组成xen。
下面说说如何安装Dom0和以及在Dom0上安装启用虚拟机。
安装Dom0:
1.下载并安装好基本操作系统,本次操作使用CentOS6.5_x86-64为配置样例。
2.安装软件包bridge-utils,并且建立网桥并开启STP协议。
# yum install bridge-utils
建立和配置网桥部分,请查看上篇《虚拟化一之虚拟机网络模型简介》。
配置后信息如下:
3.下载官方的yum源:
4.选择要安装的Xen版本:
Xen 4.5
# yum install xen45
# ls -l /boot/xen.gz
lrwxrwxrwx 1 root root 12 Sep 10 02:54 /boot/xen.gz -> xen-4.5.0.gz
Xen 4.6
# yum install xen46
# ls -l /boot/xen.gz
lrwxrwxrwx 1 root root 12 Sep 10 02:54 /boot/xen.gz -> xen-4.6.0.gz
Xen 4.7
# yum install xen47
# ls -l /boot/xen.gz
lrwxrwxrwx 1 root root 12 Sep 10 02:54 /boot/xen.gz -> xen-4.7.0.gz
5.安装kernel-xen包。注意:在安装Xen之后必须单独执行此步骤。如果你同时安装xen
和kernel-xen,kernel-xen包可能会先安装。这将导致所需的grub.conf条目配置失败。
# yum install kernel-xen
6.关闭SElinux。
7.重启系统,并且使用xen内核。
[root@Xen ~]# xl info
host : Xen
release : 4.9.27-1.el7xen.x86_64
version : #1 SMP Mon May 8 18:16:09 AEST 2017
machine : x86_64
nr_cpus : 24
max_cpu_id : 31
nr_nodes : 2
cores_per_socket : 6
threads_per_core : 2
cpu_mhz : 2300
hw_caps : bfebfbff:2c100800:00000000:00003f00:17bee3ff:00000000:00000001:00000000
virt_caps : hvm hvm_directio
total_memory : 24498
free_memory : 23150
sharing_freed_memory : 0
sharing_used_memory : 0
outstanding_claims : 0
free_cpus : 0
xen_major : 4
xen_minor : 6
xen_extra : .3-14.el7
xen_version : 4.6.3-14.el7
xen_caps : xen-3.0-x86_64 xen-3.0-x86_32p hvm-3.0-x86_32 hvm-3.0-x86_32p hvm-3.0-x86_64
xen_scheduler : credit
xen_pagesize : 4096
platform_params : virt_start=0xffff800000000000
xen_changeset : Tue May 2 12:06:15 2017 +0100 git:2e27e86-dirty
xen_commandline : placeholder dom0_mem=1024M cpufreq=xen dom0_max_vcpus=1 dom0_vcpus_pin console=tty0 console=com1 com1=115200,8n1 dom0_mem=1024M,max:1024M cpuinfo com1=115200,8n1 console=com1,tty loglvl=all guest_loglvl=all
cc_compiler : gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-11)
cc_compile_by : mockbuild
cc_compile_domain : https://www.doczj.com/doc/8011915789.html,
cc_compile_date : Tue May 2 12:16:48 UTC 2017
xend_config_format : 4
创建虚拟机实例:
正常情况下,需要通过安装树的方式来安装系统。比如光盘映像文件的方式,或者网络引导安装的方式来完成。
如果通过网络引导的方式来完成安装需要定义网络:
vif=[‘name=value’]。比如vif = [‘ip=”192.168.100.11”,bridge=br0’]
参数:
a)Type:设备类型,默认为netfront
b)Mac:指定mac地址
c)Bridge:指定桥接到的物理设备
d)IP:指定IP地址
e)Script:指定配置此接口的脚本文件,默认已经存在脚本文件
f)Vifname:后端设备名称
步骤:
1.下载vmlinuz和initrd.img,此处这两个文件是通过cobbler提供的web页面下载
wget http://192.168.89.170/cobbler/ks_mirror/CentOS_6.5-x86_64/isolinux/vmlinuz
wget http://192.168.89.170/cobbler/ks_mirror/CentOS_6.5-x86_64/isolinux/initrd.img
2.为创建虚拟机提供配置文件:
# This is a fairly minimal example of what is required for a
# Paravirtualised Linux guest. For a more complete guide see xl.cfg(5)
# Guest name
name ="CentOS6.5"
# 128-bit UUID for the domain as a hexadecimal number.
# Use "uuidgen" to generate one if required.
# The default behavior is to generate a new UUID each time the guest is started. #uuid = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
# Kernel image to boot
kernel = "/root/xen/vmlinuz"
# Ramdisk (optional)
#ramdisk = "/boot/initrd.gz"
ramdisk = "/root/xen/initrd.img"
# Kernel command line options
#extra = "root=/dev/xvda1"
# Initial memory allocation (MB)
memory = 512
# Maximum memory (MB)
# If this is greater than `memory' then the slack will start ballooned
# (this assumes guest kernel support for ballooning)
#maxmem = 512
# Number of VCPUS
vcpus = 2
# Network devices
# A list of 'vifspec' entries as described in
# docs/misc/xl-network-configuration.markdown
vif = [ 'bridge=br0' ]
# Disk Devices
# A list of `diskspec' entries as described in
# docs/misc/xl-disk-configuration.txt
disk = [ 'file:/xen/vm2/centos6.img,xvda,rw' ]
3.为虚拟机创建磁盘映像:
# dd if=/dev/zero of=/xen/vm2/centos6.img oflag=direct seek=102399 count=1 bs=1M
4.创建虚拟机:xl create –c centos6。本次演示通过url安装,基于text的模式进行。注意需
要提供网络安装树。
安装过程中,可退出控制台:ctrl+ ] 然后通过xlconsolecentos6重新连接到虚拟机
5.安装完毕后,必须先关机,然后将配置文件加入bootloader.因为要使用虚拟机自己的内核,
因此必须使用pygrub来模拟grub以加载内核;并且注释kernel和ramdisk选项
6.安装完毕。
提示:可使用libvirt工具栈对Xen进行更加通用的管理。
本次干货到此结束,下篇文章将介绍kvm的基本部署和使用,敬请期待~
By赵建文