系统相关
首页 > 系统相关> > 虚拟化技术xen的简介和安装

虚拟化技术xen的简介和安装

作者:互联网

虚拟化技术的分类:

1,模拟:Emulation

​ Qemu,PearPC,Bochs

2,完全虚拟化:Full Virtualization,Native Virtualization

​ HVM:hardware virtualization machine

​ vmware workstation,virtualBox,Parallels desktop(mac),KVM,xen

3,半虚拟化:pava-virtualization

​ 必须修改guestOS的内核,让它知道自己不是允许在物理机器删上,而是允许在虚拟环境中。

​ 使用hypercall调用物理机的cpu

​ xen,UML(user-mode Linux)

4,容器虚拟化

​ docker,openvz,LXC(linux container),libcontainer,virtuozzo,linux V Server

5,库级别虚拟化

​ wine

xen

剑桥大学开发的开源vmm(virtual machine monitor),虚拟机监视器。

xen是安装在物理机器上的。

xen只控制物理机器的cpu和内存,I/O控制,交给了在它上面安装的第一个虚拟内核(叫dom0)。处理dom0的虚拟机叫:domU,在domU上的I/O操作,都是直接发给dom0,dom0再去操作硬件控制器。domU上的I/O接口叫frontend,dom0上的I/O叫backend。

组成部分:

xen的PV技术

不依赖于CPU的HVM特性,但要求guestOS的内核要做出修改,以达到知晓自己不是允许在物理机上。

运行于domu上的os:linux(2.6.24+),Netbsd,Freebsd,openSolaris

xen的HVM技术

依赖于Intel VT或AMD的AMD-V,还有依赖Qemu来模拟I/O设备

运行于domu上的os:几乎所有支持x86平台的

PV on HVM

cpu为HVM模式运行,I/O设备为PV模式运行。

运行于domu上的os:只要OS能驱动PV接口类型的IO设备(net-front,block-front)

xen的pv架构

xen的工具栈

下图是xm和xl的对比:

统一的虚拟化管理工具

背景:虚拟化技术有xen,kvm,qemu等,每个虚拟化铲平都有自己的管理工具,学习这么多的管理工具太费劲了,所有就出现了一个救世主,virsh。它可以管理下面的3个虚拟化产品,只用一套命令即可。

virsh/libvirt:用python开发的图像化管理工具,类似VMware的图形界面,对应用户很友好。但是它必须启动libvirtd守护进程,也挺消耗资源。

RHCL对Xen的支持:

如何在centos6+上安装xen?

1,编译3.0以上版本的内核,启动对Dom0的支持

2,编译xen程序

可以使用制作好的程序包项目:

在Centos6.10上安装xen

1,去清华的yum源上找到xen的rpm下载网址,自己做一个repo文件(文件名为xen4.repo),指向那个地址即可

xen4.repo内容:注意url不要写错。

[xen4centos]
name=xen4 for centos 6
baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos/6.10/virt/x86_64/xen-410/
gpgcheck=0

2,yum install xen

由于要更新内核,所以有点慢。成功后,/boot目录下多了下面的文件。

# ls /boot/xen*
/boot/xen-4.10.4.36.g6cb1cb9c63-1.el6.config  /boot/xen-4.10.4.36.g6cb1cb9c63-1.el6.gz  /boot/xen.gz

3,修改/etc/grub.conf文件

修改前:

kernel /vmlinuz-4.9.206-36.el6.x86_64 ro root=/dev/mapper/vg_c610-lv_root rd_NO_LUKS  KEYBOARDTYPE=pc KEYTABLE=us LANG=\
en_US.UTF-8 rd_NO_MD rd_LVM_LV=vg_c610/lv_swap SYSFONT=latarcyrheb-sun16 crashkernel=auto rd_LVM_LV=vg_c610/lv_root rd_NO_DM rh\
gb quiet
initrd /initramfs-4.9.206-36.el6.x86_64.img

修改后:

kernel /xen.gz dom0_mem=1024M cpufrep=xen dom0_max_vcpus=2 dom0_vcpus_pin
module /vmlinuz-4.9.206-36.el6.x86_64 ro root=/dev/mapper/vg_c610-lv_root rd_NO_LUKS  KEYBOARDTYPE=pc KEYTABLE=us LANG=\
en_US.UTF-8 rd_NO_MD rd_LVM_LV=vg_c610/lv_swap SYSFONT=latarcyrheb-sun16 crashkernel=auto rd_LVM_LV=vg_c610/lv_root rd_NO_DM rh\
gb quiet
module /initramfs-4.9.206-36.el6.x86_64.img

修改内容:

修改后的/etc/grub.conf文件

# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE:  You have a /boot partition.  This means that
#          all kernel and initrd paths are relative to /boot/, eg.
#          root (hd0,0)
#          kernel /vmlinuz-version ro root=/dev/mapper/vg_c610-lv_root
#          initrd /initrd-[generic-]version.img
#boot=/dev/sda
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS (4.9.206-36.el6.x86_64)
        root (hd0,0)
        kernel /xen.gz dom0_mem=1024M cpufrep=xen dom0_max_vcpus=2 dom0_vcpus_pin
        module /vmlinuz-4.9.206-36.el6.x86_64 ro root=/dev/mapper/vg_c610-lv_root rd_NO_LUKS  KEYBOARDTYPE=pc KEYTABLE=us LANG=\
en_US.UTF-8 rd_NO_MD rd_LVM_LV=vg_c610/lv_swap SYSFONT=latarcyrheb-sun16 crashkernel=auto rd_LVM_LV=vg_c610/lv_root rd_NO_DM rh\
gb quiet
        module /initramfs-4.9.206-36.el6.x86_64.img
title CentOS 6 (2.6.32-754.el6.x86_64)
        root (hd0,0)
        kernel /vmlinuz-2.6.32-754.el6.x86_64 ro root=/dev/mapper/vg_c610-lv_root rd_NO_LUKS  KEYBOARDTYPE=pc KEYTABLE=us LANG=\
en_US.UTF-8 rd_NO_MD rd_LVM_LV=vg_c610/lv_swap SYSFONT=latarcyrheb-sun16 crashkernel=auto rd_LVM_LV=vg_c610/lv_root rd_NO_DM rh\
gb quiet
        initrd /initramfs-2.6.32-754.el6.x86_64.img

4,重启系统

5,确认结果

# uname -r
4.9.206-36.el6.x86_64
# xl list
Name                                        ID   Mem VCPUs      State   Time(s)
Domain-0                                     0  1024     2     r-----      28.2

发现内核升级了,并且在dom0上安装了centos,分配的内存是1024M,分配的cpu是2个。

正确的做法是在物理机器上安装xen,然后在xen上安装dom0和其他domu。

# c/c++ 学习互助QQ群:877684253 ![](https://www.icode9.com/i/l/?n=18&i=blog/1414315/201811/1414315-20181106214320230-961379709.jpg) # 本人微信:xiaoshitou5854

标签:el6,x86,虚拟化,简介,xen,rd,dom0,root
来源: https://blog.csdn.net/qq_45533800/article/details/113816365