虚拟化技术的分类:

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 hypervisor

    分配cpu,memory,interrupt

  • dom0:

    特权域,I/O分配

    • 网络设备

      net-front(guestOS),net-backend(dom0)

    • 块设备

      block-front(guestOS),block-backend(dom0)

    linux kernel:

    ​ 2.6.37开始支持允许dom0

    ​ 3.0对关键特性进行了优化

    提供管理domu的工具:

    ​ 实现对虚拟机的添加,启动,快照,停止,删除等类似在,virtualBox上的操作。

  • domU:非特权域,根据虚拟化方式,有多种类型

    • PV:半虚拟化

    • HVM:硬件提供虚拟化支持,有的cpu提供虚拟化支持

    • PV ON HVM

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/xend:在xen hypervisor的dom0中要启动xend服务。是最早的控制台,好像已经被弃用了。
  • xl:不需要启动xend服务。是轻量级的

下图是xm和xl的对比:

  • xe/xapi:提供了多xen管理的api,因此多用于cloud环境。

    上面的cloud环境:

    • xen server(也是linux内核)
    • XCP(xen cloud platform)
  • xenstore:为各个domainU提供的共享信息存储空间,有层级结构的名称空间,位于Dom0

统一的虚拟化管理工具

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

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

RHCL对Xen的支持:

  • RHCL 5.7:默认的虚拟化技术是xen

  • RHCL 6+:仅支持kvm(红帽收购了以色列的kvm公司)

    Dom0上无法安装centos6+

    DomU上可以安装centos6+

如何在centos6+上安装xen?

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

2,编译xen程序

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

  • xen4centos:xen官方专门为centos制作的rpm包
  • xen made easy

在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

修改内容:

  • 加了一行:kernel /xen.gz dom0_mem=1024M cpufrep=xen dom0_max_vcpus=2 dom0_vcpus_pin

    宣告说kernel已经不是centos了,而是我xen了,原来的kernel降级成module了。
    xen的命令行参数说明的官方文档

  • 把原来的2行,其中的第一行的kernel替换成module;第二行的initrd替换成module。

修改后的/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_pinmodule /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 quietmodule /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 quietinitrd /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。

  • 安装xen之前的的学习环境是:物理机器上装的是window,在window上装的virtualbox,在virtualBox上装的是centos6(内核是2.6.32-754.el6.x86_64)。
  • 安装xen之后的的学习环境是:物理机器上装的是window,在window上装的virtualbox,在virtualBox上装的是xen,在xen上装的dom0,dom0里的系统是centos6(内核是4.9.206-36.el6.x86_64)。

# c/c++ 学习互助QQ群:877684253 ![](https://img2018.cnblogs.com/blog/1414315/201811/1414315-20181106214320230-961379709.jpg) # 本人微信:xiaoshitou5854

虚拟化技术xen的简介和安装相关推荐

  1. 主流服务器虚拟化技术 xen,主流的服务器虚拟化技术包括哪些

    主流服务器虚拟化技术包括KVM.Xen.Hyper-V.KVM是基于虚拟化扩展的X86硬件的开源的Linux原生的全虚拟化解决方案:Xen是一个开放源代码虚拟机监视器:Hyper-V是基于hyperv ...

  2. docker技术(七)--docker-compse简介与安装

    Compose 简介 上节介绍了使用一个 Dockerfile 模板文件,可以让用户很方便的定义一个单独的应用容器.然而,在日常工作中,经常会碰到需要多个容器相互配合来完成某项任务的情况.例如要实现一 ...

  3. Xen与KVM虚拟化技术调研报告

    1.概述 随着计算机硬件的制作工艺提高,如CPU单位面积可容纳的器件多了好几倍,其他硬件的也快速发展,促使单机性能远远超出满足一个应用的需求.同时,目前传统服务器的利用率大约为20%-30%,通过虚拟 ...

  4. 云计算大数据:Xen、KVM、VMware、hyper-v等虚拟化技术的比较

    1.Xen.KVM.VMware.hyper-v等虚拟化技术的比较,xen和kvm,是开源免费的虚拟化软件. vmware是付费的虚拟化软件. hyper-v比较特别,是微软windows 2008 ...

  5. Xen和虚拟化技术学习指南

    1. 引言 现代计算机具有足够强大的能力来利用技术支持多个虚拟机(VM: virtual machines),并且在每个虚拟机上各自运行单独的操作系统实例.这直接导致了虚拟机技术发展的又一个春天.在本 ...

  6. 基于KVM、Xen、OpenVZ等虚拟化技术的WEB在线管理工具

    KVM能基于WEB管理吧?有没有开源的?基于WEB创建,修改,动态迁移 https://blog.csdn.net/enweitech/article/details/51668952 能够管理KVM ...

  7. 浅谈Xen和半虚拟化技术

    研究生入学的时候,看了一篇论文--<Xen and the art of virtualization>.现在时隔一年,准备对此进行一番整理.下文是我Xen为例的半虚拟化技术的理解: 虚拟 ...

  8. 新一代的桌面虚拟化技术

    第二代桌面虚拟化技术 第一代技术实现了远程操作和虚拟技术的结合,降低的成本使得虚拟桌面技术的普及称为可能,但是影响普及的并不仅仅是采购成本,管理成本和效率在这个过程中也是非常重要的一环. 纵观IT技术 ...

  9. 虚拟化技术:KVM介绍及试用

    KVM介绍及试用 服务器虚拟化是云计算最核心的技术,而KVM是当前最主流的开源的服务器虚拟化技术.从Linux2.6.20起,KVM作为内核的一个模块 集成到Linux主要发行版本中.从技术架构(代码 ...

最新文章

  1. Docker核心技术之镜像
  2. 【java】java反射机制,动态获取对象的属性和对应的参数值,并属性按照字典序排序,Field.setAccessible()方法的说明【可用于微信支付 签名生成】...
  3. 对象必须实现 iconvertible_Java I/O 流之数据流_对象流
  4. GPUImageMovieWriter实现暂停录制,重新录制
  5. Origin Pro中常用的快捷键
  6. 微信开发者工具 wxmi修改模版颜色_网站建设公司讲解:微信小程序的开发者工具界面...
  7. 位运算中的左移和右移的计算详解
  8. oracle保存type类型,oracle type类型
  9. pep3评估报告解读_quot;聚焦慢病、助力医改,检验项目风险评估培训计划“大兴区第四期培训班成功举办...
  10. 开发者的福利,报名即可领取代金券,赢运动手环
  11. linux物理网卡地址没有,Linux更改网卡物理地址
  12. 张开涛 shiro 博客地址
  13. python等额本息和等额本金_房贷利率有没有套路?这是我见过最透彻的Python版解读!...
  14. 视频转换器如何将视频MKV转换成MP4格式 1
  15. 美团加载Dialog(小人奔跑)
  16. 数字图像处理期末复习总结
  17. MES系统是什么?如何提高设备的使用效率和使用寿命
  18. 镜头调制传递函数MTF
  19. 小程序错误:Setting data field collected to undefined is invalid.
  20. Vmware+Ubuntu18.04配置桥接模式,并解决虚机中网络慢的问题

热门文章

  1. health4j—Java项目的全面体检工具
  2. 出门没带本子记的单词|10:20~10:40
  3. DAY12-----生成器
  4. css hover同级,CSS hover改变子标签/同级标签样式
  5. A+CLUB 2022第十期 | 量化专题金秋会
  6. CTO离职前悄悄传了我一招,和我说吃透跳槽涨薪指日可待
  7. 怎么制作电影台词混剪短视频?
  8. 对数组中的对象按照年龄大小进行从大到小排序
  9. Java小游戏 猜丁壳( 石头、剪刀、布)
  10. BPG边界网关协议知识(一)