当前位置: 首页 > news >正文

KVM-4、KVM 高级功能详解

1. 半虚拟化驱动

1.1 virtio 概述

KVM 是必须使用硬件虚拟化辅助技术(如 Intel VT-x 、AMD-V)的 Hypervisor,在CPU 运行效率方面有硬件支持,其效率是比较高的;在有 Intel EPT 特性支持的平台上,内存虚拟化的效率也较高。 QEMU/KVM 提供了全虚拟化环境,可以让客户机不经过任何修改就能运行在 KVM 环境中。不过 KVM 在 I/O虚拟化方面,传统的方式是使用 QEMU 纯软件的方式来模拟 I/O 设备(如网卡、磁盘、显卡等),其效率并不非常高。

CPU 和 内存的虚拟化由KVM内核模块提供,I/O设备虚拟化由QEMU负责实现。

在KVM中,可以在客户机中使用半虚拟化驱动的方式是采用 Virtio 这个 Linux 上的设备驱动标准框架。

完全虚拟化:GuestOS 运行在物理机上的 Hypervisor 之上,GuestOS 并不知道它已经被虚拟化,并不需要任何修改就能工作;

半虚拟化:GuestOS 不仅知道它运行在 Hypervisor 之上,还包括让 GuestOS 更高效的过度到 Hypervisor 的代码。

在完全虚拟化模式中,hypervisor 必须模拟设备硬件,它是在会话的最低级别进行模拟的,尽管在该抽象中模拟很干净,但它同时也是最低效的,最复杂的。

在半虚拟化中,GuestOS 和 hypervisor 能够共同合作,让模拟更加高效,缺点是操作系统知道它被虚拟化,并且需要修改才能工作

http://www.lryc.cn/news/12196.html

相关文章:

  • 【Linux】进程状态
  • 2023河南省第二届职业技能大赛郑州市选拔赛“网络安全”项目比赛样题任务书
  • pygame8 扫雷游戏
  • c/c++开发,无可避免的模板编程实践(篇四)
  • c++11 标准模板(STL)(std::unordered_set)(二)
  • GEE学习笔记 七十二:【GEE之Python版教程六】命令行简介
  • DDD单根 聚合根 实体 值对象
  • SpringMvc介绍。
  • 华为OD机试 - 最小传递延迟(JS)
  • 学生信息管理系统(通讯录)----------通俗易懂、附源码、C语言实现
  • Python抽奖系统
  • 真实景观渲染技巧【Three.js】
  • MySQL知识汇总:MySQL函数CASE WHEN用法详解
  • Python学习-----模块1.0(模块的简介、定义与使用)
  • Linux进程学习【二】
  • 我问chatGPT,在JavaScript中构造函数和类的区别
  • 软考高级-信息系统管理师之沟通管理(最新版)
  • PyQt5 自定义富文本编辑器
  • 【高可用系统架构设计】SLA服务可用性4个9是什么意思?如何保证服务的高可用性 HA(High Availability)?...
  • 微服务架构设计模式-(14)面向生产环境
  • HTML5新增用法
  • 富足金字塔:人的努力是为了扩大选择的范围
  • C++类基础(十七)
  • LeetCode刷题复盘笔记—一文搞懂贪心算法之56. 合并区间(贪心算法系列第十四篇)
  • Andriod入门级开发
  • DCL 数据控制语言
  • 全网超详细的下载与安装VMware虚拟机以及为什么要安装VMware虚拟机
  • Python获取zabbix问题触发器
  • 原型链污染
  • ClickHouse详解