xen虚拟化基础篇

Xen介绍:

 xen是一个开放的源代码虚拟机监视器,有剑桥大学研发。它打算在单个计算机上运行多达128个满足特征的操作系统,操作系统必须进行显示地修改("移植")以在Xen上运行(但是提供对用户应用的兼容性)。这使得无需特殊硬件支持,就能达到高性能的虚拟化。

Xen由三部分组成:

XEN-schema.png  

 第一部分:Xen Hypervisor,又称虚拟机监控程序(Virtual Machien Monitor简称VMM),VMM工作原有linux系统内核位置,替代了linux系统内核,用于虚拟CPU、Memeory等;

 第二部分:Xen Dom0,又称特殊区域;为vmm提供硬件驱动程序,用于协助vmm驱动各个底层硬件,同时又为Xen DomU提供模拟IO等功能;由于特殊原因Linux-2.6.37以后的内核才支持Xen Dom0,建议大家在使用xen时使用linxu-3.0以后的内核;

 第三部分:Xen DomU,非特权区域;实际生产中的操作系统

Xen虚拟技术分类:

 (1)完全虚拟化:DomU中的各个硬件都是由VMM和Dom0虚拟和模拟实现;

 (2)半虚拟化:DomU中的CPU、Memory有VMM模拟实现,IO等设备分为前端(Front)和后端(Back),前端工作在DomU中,而后端工作在Dom0中;

1.png

 DomU中的网卡eth0与Dom0中的viif#中的设备对应,不再由Dom0模拟,这大大提升了IO性能

 (3)借助于硬件设备的半虚拟化;例如Intel的vt-d技术

 Xen Hypervisor分类

  (1)default/xm(Xen-4.1):需要依赖于xend守护进程

  (2)defualt/xl(Xen-4.2):无须启动xend服务进程

CPU虚拟化实现的方式: 

 (1)模拟(emulation): 纯软件方式,性能较差

 (2)虚拟化(Virtualization):虚拟化由分为两类

   第一类:完全虚拟化

    BT: VMware软件实现的技术;称为二进制翻译

    HVM: 硬件辅助的虚拟化

   第二类:半虚拟化

Memroy虚拟化实现的方式:

 在进程角度看memory是线性地址空间,而站在内核角度看memroy是物理地址空间;

 虚拟化实现方式:

  Intel:Intel的Extended Page Table技术,简称为EPT

  AMD: AMD的Nested Page Table技术,简称为NPT

IO的虚拟化实现方式:

 (1)模拟:完全有软件来模拟真实的硬件来实现

 (2)半虚拟化:借助于前端(front)和后端(back)实现

 (3)IO透传(IO-Through): 例如Intel的VT-d技术,基于北桥硬件的辅助虚拟化

虚拟化网络:由TUN或TAP实现

 在计算机网络中,TUN与TAP是操作系统内核中的虚拟网络设备。不同于普通靠硬件网络板卡实现的网络设备,这些虚拟的网络设备全部用软件实现,并向运行于操作系统的软件提供与硬件的网络设备完全相同的功能。TAP等同于一个以太网设备,它操作第二次数据包如以太网数据帧;TUN模拟了网络层设备,操作三层数据包比如IP数据包;操作系统通过TUN/TAP设备向绑定该设备的用户空的程序发送数据,反之,用户空间的程序也可以像操作硬件网络设备那样,通过TUN/TAP设备发送数据,在后中情况下,TUN/TAP设备向操作系统的网络栈投递(或"注入")数据包,从而模拟从外部接受数据报的过程。

常见的方式有以下几类:

 (1)nat mode;(2)bridge mode;(3)host-only;4)route mode;(5)isolation mode:

以上是本人的学习总结,总结的不是很好,希望大家多多给意见; O(∩_∩)O

原创文章,作者:马行空,如若转载,请注明出处:http://www.178linux.com/7290

(3)
上一篇 2015-08-26 09:19
下一篇 2015-08-27 09:26

相关推荐

  • 磁盘分区管理与文件系统的创建

    磁盘分区管理与文件系统的创建   不光是linux文件系统,所有的大结构,多数据凑到一块的时候,单一的管理是没有能力处理这样庞大规模的存在的。所谓“君王不下县”也就是这个道理。要系统的,规范的管理一个国家,存在着省、市这样的层级结构。linux系统也是这样,将整个系统划分为若干个分区,实现不同功能,不同层级的规范管理,这就是创建磁盘分区的意义。既然…

    Linux干货 2016-09-01
  • JVM性能调优监控工具jps、jstack、jmap、jhat、jstat、hprof使用详解

    摘要: JDK本身提供了很多方便的JVM性能调优监控工具,除了集成式的VisualVM和jConsole外,还有jps、jstack、jmap、jhat、jstat、hprof等小巧的工具,本博客希望能起抛砖引玉之用,让大家能开始对JVM性能调优的常用工具有所了解。     现实企业级Java开发中,有时候我们会碰到下面这些问题: Out…

    2017-08-17
  • 第七周作业

    第七周 1,创建一个10G分区,并格式化为ext4文件系统;(1) 要求其block大小为2048,预留空间百分比为2,卷标为MYDATA,默认挂载属性包含acl;(2) 挂载至/data/mydata目录,要求挂载时禁止程序自动运行,且不更新文件的访问时间戳; [root@www ~]# fdisk /dev/sda <————-fd…

    Linux干货 2017-09-03
  • 探究PHP底层

    1、PHP是什么? PHP 指的是我们从外面看到的一套完整的系统。这听起来有点糊涂,但其实并不复杂(PHP4 内部结构图)。从功能上来分:我们可以分为三部分: 1、 解释器部分(Zend 以引擎),负责对输入代码的分析、翻译和执行;2、 功能性部分(PHP功能函数以及扩展),负责具体实现语言的各种功能(比如它的函数等等);3、 接口部分(SAPI),负责同 …

    Linux干货 2015-04-10
  • 硬链接与软链接的简述

    我们知道文件都有文件名与数据,这在 Linux 上被分成两个部分:用户数据 (user data) 与元数据 (metadata)。用户数据,即文件数据块 (data block),数据块是记录文件真实内容的地方;而元数据则是文件的附加属性,如文件大小、创建时间、所有者等信息。在 Linux 中,元数据中的 inode 号(inode 是文件元数据的一部分但…

    Linux干货 2016-10-20
  • 马哥教育网络班21期+第6周课程练习

    请详细总结vim编辑器的使用并完成以下练习题 1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#; [root@centos ~]# cp /etc/rc.d/rc.sysinit /tmp/ [root@centos&nbs…

    Linux干货 2016-07-27