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

这篇具有很好参考价值的文章主要介绍了云计算虚拟化技术与开发-------虚拟化技术应用第五章内容(纯软件/半虚拟化/直接分配三种I/O虚拟化方案的对比、virtio实现I/O半虚拟化的原理、气球技术的作用和原理、V2V在线迁移的特点)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

第五章:KVM高级功能讲解

纯软件/半虚拟化/直接分配三种I/O虚拟化方案的对比

I/O 全虚拟化

I/O 半虚拟化

I/O 直通或透传技术

 virtio实现I/O半虚拟化的原理

气球技术的作用和原理 

V2V在线迁移的特点、作用及KVM中的运行步骤

KVM虚拟化的安全技术架构

QEMU monitor的基本使用 


  • 第五章:KVM高级功能讲解

纯软件/半虚拟化/直接分配三种I/O虚拟化方案的对比

 

I/O 全虚拟化

        这种方式比较好理解,简单来说,就是通过纯软件的形式来模拟虚拟机的 I/O 请求。以 qemu-kvm 来举例,内核中的 kvm 模块负责截获 I/O 请求,然后通过事件通知告知给用户空间的设备模型 qemu,qemu 负责完成本次 I/O 请求的模拟。

优点:

不需要对操作系统做修改,也不需要改驱动程序,因此这种方式对于多种虚拟化技术的「可移植性」和「兼容性」比较好。

缺点:

纯软件形式模拟,自然性能不高,另外,虚拟机发出的 I/O 请求需要虚拟机和 VMM 之间的多次交互,产生大量的上下文切换,造成巨大的开销。

I/O 半虚拟化

        针对 I/O 全虚拟化纯软件模拟性能不高这一点,I/O 半虚拟化前进了一步。它提供了一种机制,使得 Guest 端与 Host 端可以建立连接,直接通信,摒弃了截获模拟这种方式,从而获得较高的性能。值得关注的有两点:1)采用 I/O 环机制,使得 Guest 端和 Host 端可以共享内存,减少了虚拟机与 VMM 之间的交互;2)采用事件和回调的机制来实现 Guest 与 Host VMM 之间的通信。这样,在进行中断处理时,就可以直接采用事件和回调机制,无需进行上下文切换,减少了开销。

要实现这种方式, Guest 端和 Host 端需要采用类似于 C/S 的通信方式建立连接,这也就意味着要修改 Guest 和 Host 端操作系统内核相应的代码,使之满足这样的要求。为了描述方便,我们统称 Guest 端为前端,Host 端为后端。

        前后端通常采用的实现方式是驱动的方式,即前后端分别构建通信的驱动模块,前端实现在内核的驱动程序中,后端实现在 qemu 中,然后前后端之间采用共享内存的方式传递数据。关于这方面一个比较好的开源实现是 virtio,后面会有专门的文章来讲述之。

优点:

性能较 I/O 全虚拟化有了较大的提升

缺点:

要修改操作系统内核以及驱动程序,因此会存在移植性和适用性方面的问题,导致其使用受限。

 

I/O 直通或透传技术

        上面两种虚拟化方式,还是从软件层面上来实现,性能自然不会太高。最好的提高性能的方式还是从硬件上来解决。如果让虚拟机独占一个物理设备,像宿主机一样使用物理设备,那无疑性能是最好的。I/O 直通技术就是提出来完成这样一件事的。它通过硬件的辅助可以让虚拟机直接访问物理设备,而不需要通过 VMM 或被 VMM 所截获。

        由于多个虚拟机直接访问物理设备,会涉及到内存的访问,而内存是共享的,那怎么来隔离各个虚拟机对内存的访问呢,这里就要用到一门技术——IOMMU,简单说,IOMMU 就是用来隔离虚拟机对内存资源访问的。

        I/O 直通技术需要硬件支持才能完成,这方面首选是 Intel 的 VT-d 技术,它通过对芯片级的改造来达到这样的要求,这种方式固然对性能有着质的提升,不需要修改操作系统,移植性也好。

        但该方式也是有一定限制的,这种方式仅限于物理资源丰富的机器,因为这种方式仅仅能满足一个设备分配给一个虚拟机,一旦一个设备被虚拟机占用了,其他虚拟机时无法使用该设备的。

        为了解决这个问题,使一个物理设备能被更多的虚拟机所共享。学术界和工业界都对此作了大量的改进,PCI-SIG 发布了 SR-IOV (Single Root I/O Virtualizmion) 规范,其中详细阐述了硬件供应商在多个虚拟机中如何共享单个 I/O 设备硬件。

        SR-IOV标准定义了设备原生共享所需的「软硬件支持」。硬件支持包括芯片组对 SR-IOV 设备的识别,为保证对设备的安全、隔离访问还需要北桥芯片的 VT-d 支持,为保证虚拟机有独立的内存空间,CPU 要支持 IOMMU。软件方面,VMM 将驱动管理权限交给 Guest,Guest 操作系统必须支持SR-IOV 功能。

SR-IOV 单独引入了两种软件实体功能:

  • PF(physical function):包含轻量级的 PCIe 功能,负责管理 SR-IOV 设备的特殊驱动,其主要功能是为 Guest 提供设备访问功能和全局贡献资源配置的功能。
  • VF(virtual function):包含轻量级的 PCIe 功能。其功能包含三个方面:向虚拟机操作系统提供的接口;数据的发送、接收功能;与 PF 进行通信,完成全局相关操作。

        每个 SR-IOV 设备都可有一个物理功能 PF,并且每个 PF 最多可有 64,000 个与其关联的虚拟功能 VF。

        一般,Guest 通过物理功能 PF 驱动发现设备的 SR-IOV 功能后将包括发送、接收队列在内的物理资源依据VF数目划分成多个子集,然后 PF 驱动将这些资源子集抽象成 VF 设备,这样,VF 设备就可以通过某种通信机制分配给虚拟机了。

        尽管 I/O 直通技术消除了虚拟机 I/O 中 VMM 干预引起的额外开销,但在 I/O 操作中 I/O 设备会产生大量的中断,出于安全等因素考虑,虚拟机无法直接处理中断,因此中断请求需要由 VMM 安全、隔离地路由至合适的虚拟机。所以,其实实际使用中,都是软硬件虚拟化方式结合使用的。

 virtio实现I/O半虚拟化的原理

        Virtio模拟I/O设备 其中前端驱动(frondend,如virtio-blk、 virtio-net等)是在客户机中存在的驱动程序模 块,而后端处理程序(backend)是在QEMU中实 现的。在这前后端驱动之间,还定义了两层来 支持客户机与QEMU之间的通信。

        其中, “ virtio ”这一层是虚拟队列接口,它在概念 上将前端驱动程序附加到后端处理程序。 一个前端驱动程序可以使用0个或多个队列, 具体数量取决于需求。虚拟队列实际上被实现 为跨越客户机操作系统和hypervisor的衔接点, 但它可以通过任意方式实现,前提是客户机操 作系统和virtio后端程序都遵循一定的标准, 以相互匹配的方式实现它。

        virtio-ring实现了环形缓冲区(ring buffer),用于保存前端驱动和后端处理程序执 行的信息,并且它可以一次性保存前端驱动的 多次I/O请求,并且交由后端去批量处理,最后 实际调用宿主机中设备驱动实现物理上的I/O操 作,这样做就可以根据约定实现批量处理而不 是客户机中每次I/O请求都需要处理一次,从而 提高客户机与hypervisor信息交换的效率.

  • virtio为半虚拟化提供了一系列通用设备仿真的接口,它可以抽象为两部分: 1. Front-end drivers:通过 半虚拟化 在客户机操作系统中修改 Guest OS代码实现driver 2. Back-end Drivers:Hyptervisor提供设备仿真的后端驱动,实现前端接口.云计算虚拟化技术与开发,云计算大数据,虚拟化技术,大数据基础,云计算,运维,网络,大数据,开发语言

气球技术的作用和原理 

         作用: 通常来说,要改变客户机占用的宿主机内存, 要先关闭客户机,修改启动时的配置,然后重启客 户机才实现,而ballooning技术可以在客户机运行 时动态地调整它所占用的宿主机内存资源,而不是 关闭客户机。它是客户机的balloon driver通过virtio 虚 拟 队 列 接 口 和 宿 主 机 协 同 工 作 来 完 成 的 。 balloonDriver的作用在于它既可以膨胀自己使用内 存大小也可以缩减内存使用量.

        原理:气球中的内存是可以供宿主机使用的,不 能被客户机访问或使用。当宿主机内存使 用紧张,空余内存不多时,可以请求客户 机回收利用已分配给客户机的部分内存, 客户机就会释放其空闲的内存,使得内存 气球充气膨胀,从而让宿主机回收气球中 的内存可用于其他进程(或其他客户机); 反之,当客户机中内存不足时,也可以让 客户机的内存气球压缩,释放出内存气球 中的部分内存,让客户机使用更多的内存。
        balloon driver本身并不直接管理balloon, 而是通过virtio通道与主机通信并接受主机 的伸缩信号。因此它的扩容与缩减都是通 过virtio队列由宿主机发送信号管理。
        
使用气球技术可以扩展客户机的内存

V2V在线迁移的特点、作用及KVM中的运行步骤

 V2V即虚拟机到虚拟机的迁移

V2V在线迁移的作用: V2V 在线迁移大大的减少了虚拟机的迁移的停机时间。

V2V在线迁移的特点:V2V迁移是在虚拟机之间移动操作系统和数据,考虑宿 主机级别的差异和处理不同的虚拟硬件。虚拟机从一个物理 机上的VMM迁移到另一个物理机的VMM,这两个VMM的类 型可以相同,也可以不同。如VMware迁移到KVM,KVM迁 移到KVM。可以通过多种方式将虚拟机从一个VM Host系统 移动到另一个VM Host系统。

KVM中的运行步骤:

(1)系统验证目标服务器的存储器和网络设置是否正确,并预保留目标服 务器虚拟机的资源。 (2)当虚拟机还在源服务器上运转时,第一个循环内将全部内存镜像复制 到目标服务器上。在这个过程中,KVM 依然会监视内存的任何变化。

(3)以后的循环中,检查上一个循环中内存是否发生了变化。 假如发生了 变化,那么VMM 会将发生变化的内存页即dirty pages重新复制到目标服务 器中,并覆盖掉先前的内存页。在这个阶段,VMM依然会继续监视内存的变 化情况。

(4)VMM持续内存复制循环,陆续需要复制的脏页逐渐减少,直到达到一 定条件时(如源、目标服务器内存差异达到一定标准),内存复制操作结束, 同时停止源服务器。

(5)在源、目标服务器都停机的情况下,将最后一个循环的脏页和原服务 器设备的工作状态传输复制到目标服务器

(6)最后,将存储从源服务器上解锁,并锁定到目标服务器上。启动目标 服务器,恢复与存储网络资源的连接,接替原服务器继续运行。

KVM虚拟化的安全技术架构

 (1)QEMU与Libvirt间的通信安全

(2)QEMU模块的安全性

(3)QEMU与KVM模块间的通信安全

(4)KVM模块安全

(5)虚拟机完整性检查

(6)虚拟机数据保护

(7)虚拟机网络安全

QEMU monitor的基本使用 

        QEMU监控器(monitor)是QEMU与实现用户交互的一 种控制台,一般用于为QEMU模拟器提供较为复杂的功能, 包括为客户机添加和移动一些媒体镜像,暂停和继续客户 机的运行,快照的建立和删除,从磁盘文件中保存和恢复 客户机状态,客户机动态迁移,查询客户机当前各种状态 参数等。

        云计算虚拟化技术与开发,云计算大数据,虚拟化技术,大数据基础,云计算,运维,网络,大数据,开发语言

QEMU Monitor 常用命令
1.辅助类命令
        如info和helphelp可以查询显示某个命令的简要帮助信息; info命令主要用来显示虚拟机的运行信息。
云计算虚拟化技术与开发,云计算大数据,虚拟化技术,大数据基础,云计算,运维,网络,大数据,开发语言

 

info 命令显示当前系统状态的各种信息,其命令格式如下:
info subcommand
显示 subcommand 中描述的系统状态。如果 subcommand 为空,则显示 当前可用的所有的各种 info 命令组合及其介绍。
常用的info命令的基本功能如下表所示: 云计算虚拟化技术与开发,云计算大数据,虚拟化技术,大数据基础,云计算,运维,网络,大数据,开发语言

 云计算虚拟化技术与开发,云计算大数据,虚拟化技术,大数据基础,云计算,运维,网络,大数据,开发语言

 2 设备类命令

        change命令改变一个设备的配置,如“change vnc localhost:2”改变VNC的配置, “change vnc password”更改VNC连接的密码, “change ide1-cd0 /path/a.iso”改变客户机中光驱加载的光盘。

usb_add和usb_del命令添加和移除一个USB设备,如“usb_add host:002.004”表示添加宿主机的 002号USB总线中的004设备到客户机中, “usb_del 0.2”表示删除客户机中某个USB设备。

         d e v i c e _ a d d 和 d e v i c e _ d e l 命 令 动 态 添 加 或 移 除 设 备 , 如 “ d e v i c e _ a d d p c i - assign,host=02:00.0,id=mydev”将宿主机中的BDF编号为0.2:00.0的PCI设备分配给客户机,而 “device_del mydev”移除刚才添加的设备。

         mouse_move命令移动鼠标光标到指定坐标,例如“mouse_move 500 500”将鼠标光标移动到坐标 为(500,500)的位置。

        mouse_button命令模拟点击鼠标的左中右键,1为左键, 2为中间键,4为右键。

        sendkey keys命令向客户机发送keys按键(或组合键),就如同非虚拟环境中那样的按键效果。如果 同时发送的是多个按键的组合,则按键之间用“-”来连接。如“sendkey ctrl-alt-f2”命令向客户机发 送“ctrl-alt-f2”键,将会切换客户机的显示输出到tty2终端; “snedkey ctrl-alt-delete”命令则会发送 “ctrl-alt-delete”键,在文本模式中该组合键会重启系统。

3 客户机类命令

        savevm、loadvm和delvm命令创建、加载和删除客户机的快照, 如“savevm mytag”表示根据当前客户机状态创建标志为“mytag”的快照, “loadvm mytag”表示加载客户机标志为“mytag”快照时的状态,而“del mytag”表示删除“mytag”标志的客户机快照。

        migrate和migrate_cancel命令动态迁移和取消动态迁移,如 “migrate tcp:des_ip:6666”表示动态迁移当前客户机到IP地址为“des_ip” 的宿主机的TCP6666端口上去,而“migrate_cancel”则表示取消当前进 行中的动态迁移过程。

        commit命令提交修改部分的变化到磁盘镜像中(在使用了“- snapshot”启动参数),或提交变化部分到使用后端镜像文件。

        system_powerdown、system_reset和system_wakeup命令,其中 system_powerdown命令向客户机发送关闭电源的事件通知,一般会让 客户机执行关机操作;system_reset命令让客户机系统重置,相当于直 接拔掉电源,然后插上电源,按开机键开机;system_wakeup将客户机 从暂停中唤醒.文章来源地址https://www.toymoban.com/news/detail-728705.html

到了这里,关于云计算虚拟化技术与开发-------虚拟化技术应用第五章内容(纯软件/半虚拟化/直接分配三种I/O虚拟化方案的对比、virtio实现I/O半虚拟化的原理、气球技术的作用和原理、V2V在线迁移的特点)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 【云计算学习教程】云计算虚拟化技术和容器技术详解_云计算虚拟化技术与容器技术

    【云计算学习教程】云计算虚拟化技术和容器技术详解_云计算虚拟化技术与容器技术

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

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

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

    2024年02月04日
    浏览(15)
  • 云计算与虚拟化技术详解

    云计算与虚拟化技术详解

    1、云计算资源类型 下图所示为计算机科学的虚拟化层次: 节点和网络物理硬件通过多层虚拟化的逻辑简化过程形成弹性化的计算、存储和网络带宽三者整合的虚拟资源池,也就是所讲的云计算模式。 可见云计算的概念是对最底层的物理硬件经过多次虚拟化抽象而形成的,这

    2024年01月17日
    浏览(11)
  • 《虚拟化与云计算技术》实训

    《虚拟化与云计算技术》实训

    1.《虚拟化与云计算技术》 课程综合实训是计算机信息管理专业的一门重要的实践课程。通过实训,考核自身对云计算技术的理解,利用云服务器去部署各种环境的的能力;培养自身解决实际问题的职业综合能力,具备收集信息、制定计划、实施计划和自我评价的能力,锻炼

    2024年02月03日
    浏览(12)
  • 云计算资源虚拟化技术实现原理

    说到云计算,我们通常会看到这样的描述,“通过虚拟化技术实现”,不难看出,在云计算的概念中,虚拟化是非常基础,但又相当重要的一环,也是实现云计算的隔离性、扩展性、安全性等诸多问题的关键。 云计算的基础是虚拟化,但虚拟化只是云计算的一部分,云计算是

    2024年02月08日
    浏览(10)
  • 云计算与虚拟化技术【课堂笔记】

    云计算与虚拟化技术【课堂笔记】

    鲲鹏产业学院 云计算与虚拟化技术 课堂笔记 目录 一、云计算系统及演进 云计算的定义 云计算的三个阶段 云计算的三种服务模式 云计算的四种部署模型 二、未完待续 总结          云计算的本质是一种服务提供模型 ,通过这种模型可以随时、随地、按需地通过网络访

    2024年02月01日
    浏览(11)
  • 虚拟化技术和云计算的关系

    虚拟化技术和云计算的关系

    1、云计算底层就是虚拟化技术。 (1)常见的虚拟化技术:VMware(闭源的,需要收费)、XEN、KVM (2)大部分公司用的虚拟化方案:XEN、KVM 2、虚拟化的历史 (1)1999年VMware首先推出了X86架构虚拟化产品 (2)2002年XEN开源了 (3)2006年以色列公司qumaranet开发了KVM虚拟化 (4)

    2024年02月03日
    浏览(7)
  • 云计算采用的各种虚拟化技术比较

    KVM 是一个全虚拟化的解决方案。可以在 x86 架构的计算机上实现虚拟化功能。但 KVM 需要 CPU 中虚拟化功能的支持,只可在具有虚拟化支持的 CPU 上运行,即具有 VT 功能的 Intel CPU 和具有 AMD-V 功能的 AMD CPU。 Xen 也是 Linux 下的一个虚拟化解决方案,也将很快被编入内核中。Xen

    2024年02月01日
    浏览(10)
  • 云计算——ACA学习 虚拟化技术概述

    云计算——ACA学习 虚拟化技术概述

    作者简介:一名云计算网络运维人员、每天分享网络与运维的技术与干货。  公众号:网络豆云计算学堂  座右铭:低头赶路,敬事如仪 个人主页:  网络豆的主页​​​​​     本系列将会持续更新云计算阿里云ACA的学习,了解云计算及网络安全相关从业的基础知识,以

    2024年02月05日
    浏览(9)
  • 云计算虚拟化技术分析及其演进路线

    云计算虚拟化技术分析及其演进路线

    作者:禅与计算机程序设计艺术 云计算(Cloud Computing)是一种新的计算方式,它把计算能力从中心服务器扩展到一系列网络端点上。随着云计算的发展,越来越多的人将注意力集中在如何利用云资源来提高效率、节约成本以及加强竞争力上。因此,云计算技术的最新研究也就

    2024年02月08日
    浏览(9)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包