虚拟化技术原理

每一个I/O设备的组成由两部分组成:
  设备控制器和设备本身

    控制器:集成在主板上的一块芯片或一组芯片

        真正的硬件操作都是由驱动完成

    驱动程序:通常由设备生产商制作的,一般位于内核中

         每个控制器都有少量的用于通信的寄存器,每个一寄存器表现为一个I/O端口,所有寄存器组合成为设备的IO地址空间

         IO端口是在开机时,向主机的I/O端口空间注册使用的(0-65535),是cup通过总线跟设备打交道的地址

实现输入、输出:
  三种方式:
    1、轮训:cpu处于忙等待状态
    2、中断:网卡收到数据时,立即向中断控制器发起中断请求,让cpu中断正在执行的任务,并且激活内核,内核从网卡的接收缓冲区中将数据复制到内核接收缓冲区(内存中的一小段地址)中,然后让内核处理接收到的数据报文。
  内核处理中断分为两步:
    1、中断的上半部:将请求的数据从网卡接收缓冲区中接收就内核接收缓冲区。
    2、中断的下半部:处理内核接收缓冲区中的数据。
    3、DMA:直接内存访问。自动将接收缓冲区中的数据直接接收进特定的内存中,当接收完毕之后,通知cpu接收完毕。减少cpu的中断频率,提高cpu的利用率

OS:
  在OS角度,将计算机组成部件抽象化:
    cpu:时间片
    memory:虚拟地址空间
    I/O:文件

  进程:
    资源集:
      cpu时间
      memory:抽象为虚拟地址空间
  I/O:打开的多个文件。由文件描述符来标示(输入0,标准输出1,错误输出2)
     普通文件
     设备文件
     管道文件

x86架构提供了四种特权级别:ring0,1,2,3
cpu可分为四个环:用户空间运行在环3,内核空间运行在环0

内核在设定的时候,都自认为是运行在环0上

虚拟化:
  cpu虚拟化:
    1、模拟:纯软件方式实现,性能很差。虚拟机运行在模拟出来的cpu上。(模拟出环1,2,3,4)
    2、虚拟
      完全虚拟化:full-virtulization,不知道自己运行在虚拟环境中,需要调用特权命令时直接调用。虚拟出来的架构与地参架构要保持一致
        BT技术:二进制翻译(软件),边翻译边执行。上层架构和底层架构要保持一致(即虚拟机系统架构和物理机的系统架构保持一致)。虚拟机用户空之间可直接运行在物理cpu的环3,只需要虚拟出ring0

        HVM技术:硬件辅助虚拟化,此cpu为特制cpu,比普通cpu多了一个环(环-1,0,1,2,3),物理机的内核运行在环-1上,虚拟机的内核运行在环0上,用户空间都运行在环3上(性能优秀)

       半虚拟化:para-virtulization,知道自己运行在虚拟环境中,需要调用特权指令时,向物理机的内核发起请求,由物理内核进行调用(性能优秀,切需要对虚拟机的内核进行修改)。虚拟出来的架构与底层架构要保持一致

 

  memory:
    进程:线性地址空间
    内核:物理空间

  

  内存虚拟:
    shadow page table技术(影子页表):需要经过两次的内存地址转换。cpu在不同虚拟机之间切换时,需要清空MMU中的缓存,所以TLB中的缓存很难命中,效率低下。
      虚拟机是进程,进程运行时需要申请内存,虚拟机把自己看作是运行在申请来的内存上(虚拟内存),实际上是运行在物理内存上。当虚拟机中的进程需要调用内存时,先将进程所需的线性地址空间地址发送给MMU,由MMU映射到虚拟机申请来的虚拟内存地址,在由shadow page table技术将虚拟内存地址转换到物理内存地址中。

  硬件虚拟化
    MMU Virtulization:MMU虚拟化(硬件虚拟化,需要特定cpu支持)
    Intel:EPT,ExtendedPage Table
    AMD:NTP,Nested Page Table

    TLB virtulization
      tagged TLB

I/O:
外存:
硬盘、光盘、U盘
网络设备:
网卡
显示设备:
VGA:frame buffer机制
键盘鼠标:
ps/2,usb

  I/O虚拟化的方式
    模拟(性能较差):完全使用软件来模拟真实硬件

    半虚拟化(性能优秀):只能运用在网卡和硬盘设备上。如果虚拟机向外发一个包,直接由虚拟机中的IO前端驱动(IO frontend)直接转发到物理机中的IO站(IO stack),然后又由物理机的内核直接将IO站中的包通过IO后端驱动(IO backend)来驱动网卡将包发送出去。此方法与模拟的方法比较,减少了在虚拟机中通过软件模拟网卡,然后由虚拟机中的驱动来驱动网卡,再由模拟的网卡将包转发进物理机中的步骤,性能大大提升。

    IO-through:IO透传
多个硬件设备,每台虚拟机通过物理机上内核中的IO管理器(IO Manager)调度到自己专属的硬件设备上。如:有五块硬盘,物理机使用了两块硬盘,剩下的三块硬盘分配到3台虚拟机上,每个虚拟机有自己的专属硬盘。

      需要主板支持透传技术
      Intel:VT-d 在虚拟技术中,实现IO的可靠性,灵活性,和性能的提升。基于北桥的硬件辅助的虚拟化技术。

虚拟化类型:
  Type-I型:xen,vmware ESX/ESXi
    在硬件上不安装操作系统,直接安装一个虚拟化软件,此软件直接接管cpu和内存,所有运行在当前硬件上的主机都是虚拟机

  Type-II型:kvm,vmware workstation,virtul box
    在操作系统上,装上一个虚拟化软件,然后通过虚拟化软件创建并管理多个虚拟机

虚拟化技术的分类:
  模拟:IO,CPU,Memory全都是用软件模拟出来。著名的模拟器有PearPC,Bochs,QEMU。
    在硬件上运行着一台主机,主机上运行一个虚拟化模拟软件,此软件可以模拟出一个或多个硬件环境。模拟出的硬件环境就是虚拟机。

  完全虚拟化:也称为native virtulization
    cpu不做模拟,只对其做相应的分配和管理,IO需要做模拟,Memory也不需要做模拟。虚拟的cpu架构和底层的cpu架构要保持一致。

      两种加速方式:
        BT
        HVM
        著名产品:VMware Workstation,VMware Server,Parallels Desktop,KVM,Xen(HVM)

    半虚拟化:xen,uml(user-mode linux)。虚拟出来的架构与物理架构也必须完全一致
      通常需要修改虚拟机的内核,然后实现就请求转发给物理机内核(hypervisor),让物理机内核执行之后再返回(hyper call)给虚拟机

    OS级别的虚拟化:Openvz,lxc,Solaris Containers
      多个用户空间共用一个内核空间,每个用户空间就是一个虚拟机,由一个虚拟机管理器分别多所有虚拟机进行管理。

    库虚拟化:
      wine

    应用程序虚拟化:
      jvm

网络的虚拟化:
  桥接(bridge mode):
    物理机上有虚拟机,把物理机上的物理网卡当做交换机,然后再在物理机上虚拟出一个网卡当做物理机的网卡,所有到达此主机的数据都由虚拟出来的交换机根据MAC地址转发

  仅主机模式(host-only mode,开启路由转发功能之后为路由模式(route mode)):需要在宿主机上用软件模拟一个交换机和一个网卡,然后使虚拟机和模拟出来的网卡在同一个网络中。
    虚拟机只能和宿主机通信,不能和宿主机以为的其他主机通信。如果要和外部主机通信,需要将网关直接指向宿主机中模拟出来的网卡上的地址,然后再宿主机上开启路由转发功能,然后再所需与其建立通信关系的外部主机上配置静态路由,网关指向宿主机地址

  nat模式(nat mode)

  自定义虚拟网络(isolation mode)

TUN与TAP

  在计算机网络中,TUN与TAP是操作系统内核中的虚拟网络设备。不同于普通靠硬件网路板卡实现的设备,这些虚拟的网络设备全部用软件实现,并向运行于操作系统上的软件提供与硬件的网络设备完全相同的功能。

TAP等同于一个以太网设备,它操作第二层数据包如以太网数据帧。TUN模拟了网络层设备,操作第三层数据包比如IP数据封包。

操作系统通过TUN/TAP设备向绑定该设备的用户空间的程序发送数据,反之,用户空间的程序也可以像操作硬件网络设备那样,通过TUN/TAP设备发送数据。在后种情况下,TUN/TAP设备向操作系统的网络栈投递(或“注入”)数据包,从而模拟从外部接受数据的过程。

时间: 2024-07-31 14:35:12

虚拟化技术原理的相关文章

虚拟化技术原理(CPU、内存、IO)

本文来自:http://www.ywnds.com/?p=5856 虚拟化 云计算现在已经非常成熟了,而虚拟化是构建云计算基础架构不可或缺的关键技术之一. 云计算的云端系统, 其实质上就是一个大型的分布式系统. 虚拟化通过在一个物理平台上虚拟出更多的虚拟平台, 而其中的每一个虚拟平台则可以作为独立的终端加入云端的分布式系统. 比起直接使用物理平台, 虚拟化在资源的有效利用. 动态调配和高可靠性方面有着巨大的优势. 利用虚拟化, 企业不必抛弃现有的基础架构即可构建全新的信息基础架构,从而更加充分地

虚拟化技术原理(上)

现在很流行什么大数据,虚拟化,云计算什么一堆堆的,听着就高端大气上档次,那么什么是虚拟化呢,笔者也在学习中,和大家分享下最近学的虚拟化,希望大家一起学习虚拟化前言在生产环境中,可能会需要很多服务来应用,但是有的服务可能占用的资源会很少,如果每个服务用一台服务器来跑的话,可能会很浪费资源,而且增大消费,但是如果把很多服务在一台服务器上跑的话,文件会很混乱.所以希望服务运行在很多个不会影响的OS,并且减少服务器数量.因此,虚拟化技术应用而生,简单的说,虚拟化技术就是一台服务器上运行多个OS.列如VM

49 Linux操作系统原理、虚拟化技术基础原理

04 虚拟化技术基础原理 一.配置虚拟化网络 1.编辑配置文件 #关闭NetworkManager [[email protected] ~]# service NetworkManager stop [[email protected] ~]# chkconfig NetworkManager off    [[email protected] ~]# chkconfig --list NetworkManager NetworkManager  0:关闭  1:关闭  2:关闭  3:关闭

Xen,VMware ESXi,Hyper-V和KVM等虚拟化技术的原理解析

Xen,VMware ESXi,Hyper-V和KVM等虚拟化技术的原理解析 2018年04月03日 13:51:55 阅读数:936 XEN 与 VMware ESXi,Hyper-V 以及 KVM 特点比较: XEN 有简化虚拟模式,不需要设备驱动,能够保证每个虚拟用户系统相互独立,依赖于 service domains 来完成一些功能: Vmware ESXI 与 XEN 比较类似,包含设备驱动以及管理栈等基本要素,硬件支持依赖于 VMware 创建的驱动: Hyper-V 是基于 XEN

虚拟化技术基础原理详解

DISK : IO调度模式 CFQ deadline anticipatory NOOP /sys/block/<device>/queue/scheduler Memory: MMU TLB vm.swappiness={0..100},使用交换分区的倾向性,默认60% overcommit_memory=2过量使用内存 RAM,swap overcommit_ratio=50 允许使用交换分区的比例 所有的swap +RAM*ratio swap=4G RAM=8G 可以使用为4+8*50

虚拟化技术基础原理(一)

虚拟化技术: 虚拟化技术类型: 主机虚拟化:xen, kvm, virtualbox, ... 容器(用户空间隔离): lxc(LinuX Container), openvz, ... 系统库虚拟化:wine, ... 应用程序级虚拟化:jvm, pvm,... 主机虚拟化: CPU: 模拟:emulation, 虚拟机的arch与物理平台的arch可以不相同:qemu: 虚拟:virtualization 完全虚拟化(full-virt) BT: 二进制转换 (软件) HVM:硬件辅助的虚拟

让网络更轻盈——网络功能虚拟化技术的现状和未来(中兴通讯)

让网络更轻盈--网络功能虚拟化技术的现状和未来 2014-08-19     作者:周宇翔(中兴通讯) 随着智能终端和移动互联网的发展,"通信"早已脱离传统的话音和短信,人与人广泛连接,甚至物物相连也成为可期的未来,各种OTT类新业务和商业模式不断在挑战运营商的传统优势地位.传统电信网络基于私有平台部署,采用专用设备,部署周期长.运维复杂,一些运营商意识到想要轻盈转身,必须向这些互联网运营商学习,从根本上改变电信网络的部署和运维方式.2012年10月,AT&T.英国电信.德国电

虚拟化技术概览

本篇文章所有资料均收集自网上,本文仅做了一下梳理和汇总.本文首先介绍了虚拟化技术:全虚拟化和半虚拟化,然后介绍了KVM.Xen.Hyper-V.VMWARE EXSI的原理和架构,接着重点对KVM和Xen做了比较,并对两者的未来发展提供了一些业界人士的观点,最后对Google.Amazon.IBM.Microsoft的云计算产品进行了介绍. 一.虚拟化技术:全虚拟化.半虚拟化 1. 全虚拟化(Full Virtualization) 全虚拟化也成为原始虚拟化技术,该模型使用虚拟机协调guest操

Citrix桌面虚拟化&shy; &shy;技术方案建议书

Citrix桌面虚拟化- -技术方案建议书 北京四通管理软件有限责任公司 二〇一〇年五月 目录 一.方案背景. 3 二.Citrix技术方案. 5 2.1.技术架构. 8 2.2.虚拟化系统概要介绍. 8 三.方案优势. 12 3.1.安全性加强. 12 3.2.运维成本减少. 12 四.技术方案. 13 4.1.部署架构:. 13 4.2.容量估算. 13 五 附录. 16 5.1. Citrix公司简介. 16 ` 一.方案背景 XXX现约有500左右的计算机用户,其中200左右为普通知识工