xen虚拟化基础篇

Xen介绍:

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

  • 第一部分: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中;

    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:

原文发布于微信公众号 - 马哥Linux运维(magedu-Linux)

原文发表时间:2015-12-02

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏沈唁志

说一说平时遇到技术问题时的解决方法以及如何有效提问

56030
来自专栏灯塔大数据

盘点 | 史上最明了的“编程语言琅琊榜”介绍

导读:小时候对掌握中、英、日、阿拉伯等多门语言的人羡慕不已,当时就许下一个心愿「我一定要成为掌握多门语言的男人」。今天,我的梦想终于实现了,我成为了一个程序员,...

39140
来自专栏北京马哥教育

xen虚拟化基础篇

Xen介绍: xen是一个开放的源代码虚拟机监视器,有剑桥大学研发。它打算在单个计算机上运行多达128个满足特征的操作系统,操作系统必须进行显示地修改("移...

33340
来自专栏HaHack

Wixo - a wiki theme for Hexo

24330
来自专栏竹清助手

安卓开发方式的进化之路

做安卓时间长了,接触到各种各样的框架,前前后后遇到了很多问题,这里顺便记录一下那些年在安卓开发的发展过程中的那些跨平台开发技术框架,大致如下: 如有错误,欢迎指...

24640
来自专栏phodal

RePractise前端篇: 前端演进史

细细整理了过去接触过的那些前端技术,发现前端演进是段特别有意思的历史。人们总是在过去就做出未来需要的框架,而现在流行的是过去的过去发明过的。如,响应式设计不得不...

20790
来自专栏编程微刊

jQuery点击checkbox选择标签到指定的位置

祖传代码的存在,这个项目自我进公司以来,就一直在改写加上维护,没有什么太厉害的技术,据说在我进公司之前,是经过两个Java后台来编写遗留下来的代码,公司觉得若是...

9510
来自专栏CDA数据分析师

电商数据分析时的excel的基本操作(吐血总结)

一般的使用Excel的工作习惯 1.保留原始文件,新建一个Sheet进行处理数据存放,或者另外COPY一份新的文档,尽量保持原始数据的原貌,因为我们都不知道啥时...

466100
来自专栏HBStream流媒体与音视频技术

DirectShow捕获+mencoder+ffmpeg+sox 打造小巧的音视频制作、加工软件

40570
来自专栏web前端教室

从node事件到观察者 -- 学习要有一根线索

做事要有条理,学习要有方向,方向需要指引,那用什么指引呢?有二种,一是问题,以问题为指引学习的方向;二是新知识点,每遇到一个新知识点,就开一个学习的分支出来,最...

20090

扫码关注云+社区

领取腾讯云代金券