官方文档学习

  https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/pdf/Virtualization_Getting_Started_Guide/Red_Hat_Enterprise_Linux-7-Virtualization_Getting_Started_Guide-en-US.pdf

CPU虚拟化

模拟 emulation

  对于CPU来说,需要模拟ring 0、1、2、3

  虚拟机内核运行在ring 1上

  

虚拟 virtualization

  完全虚拟化 full-virtualization

    对于CPU来说,需要虚拟ring 0

    虚拟机内核运行在ring -1 上

    Guest认为自己直接运行在物理主机上,没有意识到自己是虚拟机

    BT 二进制翻译,基于软件的方式

    HVM 硬件辅助的虚拟化,基于底层硬件支持虚拟化指令集

  半虚拟化 para-virtualization

    Guest清楚的知道自己是虚拟机

    如果虚拟机要运行特权指令,但这条特权指令不会影响到其它的虚拟机和物理机,则由虚拟机的内核直接调用硬件资源,减少了中间的指令转换层

    如果虚拟机要运行的特权指令,会影响虚拟机和物理机,则发出hyper call,交由hypervisor调用硬件资源

Memory虚拟化

在虚拟机中

  Shadow Page Table 实现虚拟机中逻辑地址到虚拟机物理地址的转换

    MMU 将虚拟机的物理地址转换为物理主机的物理地址

    GVA ---> GPA ---> HPA

  MMU Virtualization 硬件实现,能使得虚拟机中的逻辑地址直接转换成为物理主机的物理地址

    Intel EPT Extended Page Table

    AMD NTP Nested Page Table

    GVA ---> HPA

  TLB Virtualization

    Translation Lookaside Buffer 转换检测缓冲区是一个内存管理单元

    tagged TLB

      存储虚拟机中逻辑地址到物理机的物理地址的转化

I/O虚拟化

  存储设备

    硬盘、光盘、U盘、软盘

  网络设备

    网卡

  显示设备

    VGA

      frame buffer机制

      给每个驱动一个缓冲窗口,一般使用完全虚拟化

  字符设备

    键盘

      ps/2、usb

    鼠标

      ps/2、usb

    使用焦点捕获方式,将字符设备和虚拟机建立临时关联,一般使用完全虚拟化

  I/O虚拟化方式

    完全虚拟化

      完全使用软件来模拟真实硬件

      适用于所有的设备

    半虚拟化

      移除了虚拟机中不必要的模拟驱动使用,而是调用I/O前端驱动,I/O前端驱动和物理主机上的I/O后端驱动交互,从而直接调用物理驱动

      通常仅适用于

        磁盘、网卡

      IO-through IO透传

        让虚拟机直接使用物理设备,仍然需要hypervisor协调

        需要硬件支持透传技术

          Intel VT-d

            在IO MMU层隔离各虚拟机的IO数据,避免因为集中的DMA设备管理,导致多虚拟机的IO数据混淆

            并且还能完成中断映射的对应关系,明确各IO中断对应的处理虚拟机

            基于北桥的硬件辅助的虚拟化技术,主要提升I/O设备可靠性、灵活性以及性能

虚拟化技术两种实现

  Type-I

    hypervisor ---> vm

    Xen、RHEV、ESXi

  Type-II

    host vmm ---> vms

    KVM、VMware Workstation、Virtual Box

    依赖底层操作系统

KVM、Xen缺陷

  它们都不能完整意义上的实现IO,必须通过qemu、virtio实现IO传输

虚拟化技术分类

  模拟

    PearPC

    Bochs

    QEMU

    (模拟器)

  完全虚拟化

    native virtualization

    底层硬件架构必须和虚拟机架构一致

    VMware Workstation、VMware Server、Parallels Desktop、KVM、Xen(HVM)

  半虚拟化

    para-virtualization

    底层硬件架构必须和虚拟机架构一致

    xen、uml(user-mode linux)

  OS级别虚拟化

    OpenVZ

    lxc

    Solaris Containers

    FreeBSD jails

    (性能好)

  库虚拟化

    wine

    在Linux上模拟Windows库,可以玩Windows上的游戏、软件

  应用程序虚拟化

    jvm

TUN与TAP

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

  TAP等同于一个以太网设备,它操作第二层数据包如以太网数据帧

  TUN模拟了网络层设备,操作第三层数据包比如IP数据包

  操作系统通过TUN/TAP设备向绑定该设备的用户空间的程序发送数据。反之,用户空间的程序也可以像操作硬件网络设备那样,通过TUN/TAP设备发送数据,数据包投递至操作系统的网络栈,从而模拟外部接受数据的过程

虚拟化网络

  nat

  bridge

  route

  isolation

网桥设备管理

NetworkManager不支持桥设备管理

 chkconfig NetworkManager off
chkconfig networ on

桥设备管理软件包安装

 yum install -y bridge-utils

编辑桥配置文件

cp ifcfg-eth0 ifcfg-br0

vim ifcfg-br0

    DEVICE=br0
NM_CONTROLLED=no
TYPE=Bridge
# 下面IP、掩码、DNS直接使用原网卡的
# 如果有mac地址最好删除掉 vim ifcfg-eth0 # 将 IP、掩码、DNS等删除
BRIDGE=br0 service network restart

使用brctl配置桥设备(不持久)

brctl addbr br0

brctl stp br0 on 

ifconfig eth0 0 up

brctl addif br0 eth0

ifconfig br0 IP/NETMASK up

route add default gw GW_IP

Virtualization基础的更多相关文章

  1. Spark入门实战系列--2.Spark编译与部署(上)--基础环境搭建

    [注] 1.该系列文章以及使用到安装包/测试数据 可以在<倾情大奉送--Spark入门实战系列>获取: 2.Spark编译与部署将以CentOS 64位操作系统为基础,主要是考虑到实际应用 ...

  2. 20145212 实验四《Andoid开发基础》

    20145212 实验四<Andoid开发基础> 实验内容 安装Android Studio 运行安卓AVD模拟器 使用Android运行出模拟手机并显示自己的学号 实验过程 一.安装An ...

  3. 20145215实验四 Android开发基础

    20145215实验四 Android开发基础 实验内容 基于Android Studio开发简单的Android应用并部署测试; 了解Android组件.布局管理器的使用: 掌握Android中事件 ...

  4. [Virtualization][SDN] VXLAN到底是什么 [转]

    写在转发之前: 几个月以前,在北大机房和燕园大厦直接拉了一根光钎.两端彼此为校园内公网IP.为了方便连接彼此机房,我做个一个VPN server在燕园的边界,北大机房使用client拨回.两个物理机房 ...

  5. 云计算服务模型,第 1 部分: 基础架构即服务(IaaS)

    英文原文:Cloud computing service models, Part 1: Infrastructure as a Service 本文介绍三个云类别中的第一个:基础架构即服务(infr ...

  6. Docker - Docker基础讲义

    Docker Docker - 官网 Docker - Hub GitHub - Docker Docker中文社区 虚拟化技术 硬件级虚拟化(hardware-level-virtualizatio ...

  7. <Mastering KVM Virtualization>:第三章 搭建独立的KVM虚拟化

    在第二章,你了解了KVM的内部结构:在本章中,您将了解如何将Linux服务器设置为虚拟化主机.我们正在讨论将KVM用于虚拟化并将libvirt作为虚拟化管理引擎. KVM开启了虚拟化并利用你的服务器或 ...

  8. Linux基础 - 系统优化及常用命令

    目录 Linux基础系统优化及常用命令 Linux基础系统优化 网卡配置文件详解 ifup,ifdown命令 ifconfig命令 ifup,ifdown命令 ip命令 用户管理与文件权限篇 创建普通 ...

  9. Linux基础系统优化及常用命令

    # Linux基础系统优化及常用命令 [TOC] ## Linux基础系统优化 Linux的网络功能相当强悍,一时之间我们无法了解所有的网络命令,在配置服务器基础环境时,先了解下网络参数设定命令. - ...

随机推荐

  1. MIPS——递归调用

    嵌套过程 不调用其他过程的过程称为叶过程(leaf procedure).如果所有过程都是叶过程,那么情况就很简单.但是某个过程可以调用其他过程,甚至调用的是自身的“克隆”.在调用非叶过程时使用寄存器 ...

  2. DAG上的动态规划---嵌套矩形(模板题)

    一.DAG的介绍 Directed Acyclic Graph,简称DAG,即有向无环图,有向说明有方向,无环表示不能直接或间接的指向自己. 摘录:有向无环图的动态规划是学习动态规划的基础,很多问题都 ...

  3. python基础面试题整理---从零开始 每天十题(02)

    书接上回,我们继续来说说python的面试题,我在各个网站搜集了一些,我给予你们一个推荐的答案,你们可以组织成自己的语言来说出来,让我们更好的做到面向工资编程 一.Q:说说你对zen of pytho ...

  4. mysql dump 参数大全

    Mysqldump参数大全   摘自:https://www.cnblogs.com/qq78292959/p/3637135.html 参数 参数说明 --all-databases  , -A 导 ...

  5. 【数位dp】bzoj3209: 花神的数论题

    Description 背景众所周知,花神多年来凭借无边的神力狂虐各大 OJ.OI.CF.TC …… 当然也包括 CH 啦.描述话说花神这天又来讲课了.课后照例有超级难的神题啦…… 我等蒟蒻又遭殃了. ...

  6. (48)zabbix报警媒介:自定义脚本Custom alertscripts

    自定义脚本媒介.zabbix会将信息传递给脚本,接下来你在脚本里面随意处理,一共会传递三个参数,按顺序接受也就是$1,$2,$3了,为了方便记忆,一般分别给他们赋值到To\Subject\body 配 ...

  7. 设计模式之建造者模式——Builder

    一.概述 Builder模式,中文名为建造者模式,又名生成器模式.构建者模式等,是创建型设计模式之一.用于将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示. 1.适用性: 对象 ...

  8. MFC CString 和int相互转化

    CString str = _T("123"); int i = _ttoi(str); =============== int i = 123; CString str ; st ...

  9. python 四——线程、进程、协程

    内容概要 1.进程与线程优.缺点的比较 2.适用情况 3.线程 线程的创建 setDaemon join event RLock 队列 4.进程 创建进程 setDaemon join 线程与进程,数 ...

  10. python 三——列表、字典、元祖、字符串、set

    本节内容 1.列表 2.元祖 3.字典 4.字符串 不可变类型:整型.字符串.元组tuple 可变类型:列表list.字典dict 1.列表 >>> names ['Alex', ' ...