云计算运营—03 KVM虚拟化技术方案介绍

这篇具有很好参考价值的文章主要介绍了云计算运营—03 KVM虚拟化技术方案介绍。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

KVM虚拟化技术方案介绍

1.背景介绍

KVM(Kernel-based Virtual Machine)

开源全虚拟化方案

  • 支持体系结构
    • x86(32位,64位)、IA64、PowerPC、S390
  • 依赖x86硬件支持:Intel VT-x/ AMD-V
  • 内核模块,使得linux内核成为hypervisor

XEN架构

  • domainU:普通用户虚拟机

  • domain0:特权虚拟机

    • 唯一

    • 拥有设备驱动,可以直接认识硬件设备

    • 拥有后端驱动,可以与众多普通虚拟机交互,实现IO虚拟化

    • 最先启动。

    • 可以管理其他domainU虚拟机

早期是半虚拟化,现在是全虚拟化。性能较差,但是安全性较好。

云计算运营—03 KVM虚拟化技术方案介绍

KVM架构:

  • KVM:内核中的一个模块,部署在linux kernel中,使得linux kernel变为hypervisor。可以实现CPU虚拟化、内存虚拟化。无法实现IO虚拟化。运行内核态。
  • QEMU-KVM:实现IO虚拟化。运行在用户空间中,用户态。

优点:全虚拟化性能较好

QEMU:与KVM、XEN一样,也是属于虚拟化解决方案的一种,也就是说,它能够实现CPU虚拟化、内存虚拟化、IO虚拟化。轻量级,性能较差。单线程。

KVM调用QEMU实现IO虚拟化,反过来,也可以认为是QEMU调用KVM,增强CPU、内存虚拟化的性能。

KVM使用的QEMU不一样的。多线程。QEMU-KVM

云计算运营—03 KVM虚拟化技术方案介绍

2.KVM简介

UVP虚拟化架构中KVM架构

FusionCompute,简称FC。有2部分组成:CNA+VRM。

  • CNA又由两部分组成:UVP+VNA。UVP实现底层硬件的虚拟化,VNA实现对接VRM。
  • VRM是集群级的一个管理平台(具体是以2台虚拟机主备形式部署在2个管理节点上)。

云计算运营—03 KVM虚拟化技术方案介绍

libvirtd

libvirtd:统一的接口。兼容不同的虚拟化方案,统一管理。

  • 南向可以接入不同虚拟化产品。
  • 北向提供统一接口,通过不同工具(cli\图形化),管理虚拟机。
  • 通过xml文件,统一定义虚拟机。

云计算运营—03 KVM虚拟化技术方案介绍

CPU虚拟化

X86架构CPU拥有四种等级的指令:

  • ring0特权指令,给操作系统使用

  • ring1\2给驱动程序使用

  • ring3非特权指令,给应用程序使用

操作系统对CPU的认识与管理达成以下两点认识:

  1. CPU资源永远就绪
  2. OS对CPU具有最高权限

云计算运营—03 KVM虚拟化技术方案介绍

引入虚拟化后出现的问题:

  • 多个VM之间共享CPU资源
  • 部分指令只有hypervisor有权限使用
  1. 多个VM之间共享CPU资源的问题?
    将VM的vCPU调度到CPU的线程上运行,实现物理CPU资源的分时复用

  2. 虚拟机指令越级的问题?
    传统架构中,操作使用ring0,应用程序使用ring3。
    在虚拟化架构当中,VM可看作上面的应用程序,只能使用ring3。但里面实际上有OS,需要使用ring0。所以,指令越级。

    经典虚拟化:特权解除、陷入模拟。
    当虚拟机操作系统需要使用ring0指令,解除特权,由host os的ring1模拟。
    缺点:在X86架构中,遇到问题:在非特权指令中,有19条敏感指令。

解决方案
1、操作系统辅助的全虚拟化

修改host OS,接收VM全部指令进行处理。优点:解决敏感指令的问题。
缺点:1、host OS压力较大,2、host 0S需要修改,难度较大。

云计算运营—03 KVM虚拟化技术方案介绍

2、半虚拟化

修改guest os,VM不发出敏感指令。优点: host OS压力较小
缺点:需要修改guest 0S,只有开源可以修改,不能运行闭源操作系统。

云计算运营—03 KVM虚拟化技术方案介绍

3、硬件辅助的全虚拟化:

在CPU层面,引入根与非根,分别拥有ring0-3,根给host os 使用,非根给Guest os

云计算运营—03 KVM虚拟化技术方案介绍

全虚、半虚
区别:虚拟机操作系统是否修改。如果修改就是半虚,不修改就是全虚

KVM CPU虚拟化

  • 非根模式:客户机模式
  • 根模式ring0:内核态模式
  • 根模式ring3:用户态模式

云计算运营—03 KVM虚拟化技术方案介绍

vm entry:由内核态进入客户机模式

vm exit:由客户机模式进入内核态

以上两个切换,会有切换开销。本身VMM运行,也需要消耗性能。所以,虚拟化后的性能损耗,来自切换开销、VMM的性能消耗。

云计算运营—03 KVM虚拟化技术方案介绍

内存虚拟化

操作系统对内存的认识与管理达成以下两点认识:

  1. 内存都是从物理地址0开始的
  2. 内存都是连续的

引入虚拟化后出现的问题:

  • 从物理地址0开始的:物理地址0只有一个,无法同时满足所有客户机从0开始的要求;
  • 地址连续:虽然可以分配连续的物理地址,但是内存使用效率不高,缺乏灵活性。

云计算运营—03 KVM虚拟化技术方案介绍

GVA: Guest virtual Address 客户机虚拟地址 客户机给应用程序分配地址,可能是真实内存,也可能是硬盘
GPA: Guest Physical Address 客户机物理地址 客户机以为真实内存
HVA: Host Virtual Address 宿主机虚拟地址 宿主机给应用程序(VM)分配地址,可能是真实内存,也可能是硬盘
HPA: Host Physical Address 宿主机物理地址 实际上就是服务器真实内存

HPA-》 HVA-》GPA-》GVA

HPA-》HVA 本身OS具有MMU,就可以实现
HVA-》GPA MMU虚拟化
GPA-》GVA VM本身OS也具有MMU,也可以实现

MMU虚拟化**(MMU本质是是内存管理模块)**
  • 软件 XEN 可以是半虚、全虚

    • 直接模式:半虚化,知道自己是处于虚拟化环境当中,可以直接在hypervisor当中实现HVA-》GVA的转化。(宿主机虚拟地址-》客户机虚拟地址)

    • 影子列表:全虚化,不知道自己运行··在物理服务器或虚拟化环境中,可以在hypervisor当中实现HVA-》GPA的转化。再由虚拟机本身实现GPA-》GVA的转化。(宿主机虚拟地址-》客户机物理地址-》客户机虚拟地址)

  • 硬件:由CPU直接实现HVA-》GPA的转化。

    • EPT: intel
    • NPT: amd
大页内存

MMU

会拥有内存映射表,记录物理地址—》虚拟地址(包含真实内存、硬盘)

该表,一般存在于内存当中

为了配置大页内存把MMU表存放在CPU寄存器上

配置主机大页内存,优化主机内存访问效率,从而提升性能。大页虚拟机不支持计算资源调度,无法给出正确的调度策略,建议将大页虚拟机部署到独立集群,所在集群无需开启计算资源调度。

云计算运营—03 KVM虚拟化技术方案介绍

I/O虚拟化

软件与软件、硬件的通信:

需要CPU)——》数据拷进去写入在拷出来

  • Port IO 使用专门的IO空间,由CPU拷贝
  • MMIO 使用内存空间,由CPU拷贝

(服务器里面专门负责)——》数据拷进去写入在拷出来

  • DMA 由DMA控制器拷贝

云计算运营—03 KVM虚拟化技术方案介绍

I/0虚拟化需要解决两个问题

设备发现:
需要控制各虚拟机能够访问的设备

访问截获:

  1. 通过I/0端口或者MMIO对设备的访问
  2. 设备通过DMA与内存进行数据交换
全模拟(完全由软件实现)

原理:

  1. VM中的APP进行IO,通过VM中驱动发送虚拟设备
  2. 虚拟设备往外发送
  3. KVM拦截
  4. KVM发送IO共享环,告诉QEMU,完成操作
  5. QEMU从IO共享环中取出
  6. 通过真实设备驱动,发送设备

优点:兼容很好

缺点:IO路径长,需要上下文切换,开销大。性能差

云计算运营—03 KVM虚拟化技术方案介绍

virtio(主流)

云计算运营—03 KVM虚拟化技术方案介绍

原理:

  1. VM中的APP进行I0,通过前端驱动发送出去
  2. 发送IO共享环,告诉后端驱动,完成操作
  3. QEMU从IO共享环中取出
  4. 通过真实设备驱动,发送设备

优点:相比全模拟,路径较短,性能较好

缺点:某些操作系统不支持,比如windows默认不支持,需要额外的驱动

云计算运营—03 KVM虚拟化技术方案介绍

vhost

相比virtio,路径更短,不需要经过qemu,直接由kernel的vhost模块处理。

缺点:兼容性更差。

对比virtio

Virtio

HW=> Host Kernel

Host Kerne=>qemu

Qemu=>guest

Vhost

HW=> Host Kernel(内核)

Host Kernel=> Guest

云计算运营—03 KVM虚拟化技术方案介绍文章来源地址https://www.toymoban.com/news/detail-485587.html

到了这里,关于云计算运营—03 KVM虚拟化技术方案介绍的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • KVM 虚拟化技术高级特性详解

    KVM高级功能包括半虚拟化驱动、VT-d、SR-IOV、热插拔、动态迁移、KSM、AVX、cgroups、从物理机或虚拟机中迁移到KVM,以及QEMU监控器和qemu-kvm命令行的各种选项的使用。 1、半虚拟化驱动 1. virtio概述 KVM是必须使用硬件虚拟化辅助技术(如Intel VT-x、AMD-V)的Hypervisor,在CPU运行效率方

    2024年01月23日
    浏览(28)
  • 初探KVM虚拟化技术:新手指南

    虚拟化是指对资源的逻辑抽象、隔离、再分配、管理的一个过程,通常对虚拟化的理解有广义狭义之分。广义包括平台虚拟化、应用程序虚拟化、存储虚拟化、网络虚拟化、设备虚拟化等等。狭义的虚拟化专门指计算机上模拟运行多个操作系统平台。 虚拟化的目的是通过对硬

    2024年02月16日
    浏览(30)
  • KVM虚拟化解决方案系列之KVM部署篇(1-4)

    通过《KVM虚拟化解决方案系列之KVM架构篇》我们了解了KVM的基本架构之后,那么接下来继续介绍如何使用KVM来搭建自己的虚拟化环境,搭建环境如表1所示。 表1. KVM搭建环境 主机名 角色 操作系统 IP地址 备注 kvm01 KVM主机1 CentOS-7-x86_64-DVD-1810.ISO 192.168.150.151 kvm02 KVM主机2 ubuntu-

    2024年02月14日
    浏览(30)
  • [ 云计算相关 ] KVM虚拟化平台windows虚拟机迁移到openstack虚拟化平台(KVM虚拟化环境中Windows虚拟机安装Virtio驱动程序)

    👨‍🎓 博主介绍:大家好,我是 _PowerShell ,很高兴认识大家~ ✨主攻领域:【渗透领域】【数据通信】 【通讯安全】 【web安全】【面试分析】 🎉点赞➕评论➕收藏 == 养成习惯(一键三连)😋 🎉欢迎关注💗一起学习👍一起讨论⭐️一起进步📝文末有彩蛋 🙏作者水平有

    2024年02月02日
    浏览(41)
  • KVM虚拟化解决方案系列之KVM管理工具-libvirt介绍篇

    KVM作为后起之秀,在公有云Hytervisor市场中占主宰地位,如一大批基于OpenStack二次开发的云厂商。而老牌的商业VMware则在私有云Hytervisor市场中占主宰地位,仍然是各大中小企业搭建私有云的首选,不过目前也受到Hyper-V的挑战。 Hypervisor虚拟化技术有很多种实现方式,如KVM、Q

    2024年02月06日
    浏览(41)
  • 云计算虚拟化技术与开发-------虚拟化技术应用第五章内容(纯软件/半虚拟化/直接分配三种I/O虚拟化方案的对比、virtio实现I/O半虚拟化的原理、气球技术的作用和原理、V2V在线迁移的特点)

    目录 第五章:KVM高级功能讲解 纯软件/半虚拟化/直接分配三种I/O虚拟化方案的对比 I/O 全虚拟化 I/O 半虚拟化 I/O 直通或透传技术  virtio实现I/O半虚拟化的原理 气球技术的作用和原理  V2V在线迁移的特点、作用及KVM中的运行步骤 KVM虚拟化的安全技术架构 QEMU monitor的基本使用

    2024年02月07日
    浏览(38)
  • 01 openEuler虚拟化-KVM虚拟化简介

    1.1 简介 在计算机技术中,虚拟化是一种资源管理技术,它将计算机的各种实体资源(处理器、内存、磁盘、网络适配器等)予以抽象、转换后呈现,并可分割、组合为一个或多个计算机配置环境。这种资源管理技术打破了实体结构不可分割的障碍,使这些资源在虚拟化后不

    2023年04月26日
    浏览(58)
  • 【云计算学习教程】云计算虚拟化技术和容器技术详解_云计算虚拟化技术与容器技术

    这跟交通网络很相似,连接两个城市的交通网络具备的第一个功能就是汽车从一个城市到达另一个城市;第二个功能是控制到底走哪条线路最好。前者就是由公路组成的交通网络,后者就是交通控制系统。 下面我们再来看看传统的网络设备(比如一台路由器)的逻辑分层结构

    2024年04月22日
    浏览(38)
  • 虚拟化技术 — 虚拟机计算

    NUMA CPU 的主要优势是: 高内存带宽 :每一个 NUMA Node 内部有专用的内存总线访问本地内存,而所有 NUMA Nodes 之间使用共享总线访问远端内存。假设:一个具有 4 个 NUMA Nodes 的系统,每一个 Node 内部有 1GB/s 的存储带宽,同时共享总线也具有 1GB/s 的带宽。如果所有的 Core 总是使

    2024年02月04日
    浏览(40)
  • 【KVM虚拟化】· KVM中的网络

      目录 🍎虚拟机的网络模式 🍒网络配置文件 🍒virsh查看命令 🍎基于NAT的虚拟网络 🍎基于网桥的虚拟网络 🍎基于隔离的虚拟网络     🦐博客主页:大虾好吃吗的博客     🦐专栏地址:KVM虚拟化专栏 基于NAT(Network Address Translation)的虚拟网络 基于网桥(Bridge)的虚拟

    2024年02月06日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包