【KVM-4】硬件虚拟化技术(详)
前言
大家好,我是秋意零。
经过前面章节的介绍,已经知道KVM虚拟化必须依赖于硬件辅助的虚拟化技术,本节就来介绍一下硬件虚拟化技术。
👿 简介
- 🏠 个人主页: 秋意零
- 🔥 账号:全平台同名, 秋意零 账号创作者、 云社区 创建者
- 🧑 个人介绍:在校期间参与众多云计算相关比赛,如:🌟 “省赛”、“国赛”,并斩获多项奖项荣誉证书
- 🎉 目前状况:24 届毕业生,拿到一家私有云(IAAS)公司 offer,目前已在实习
- 💕欢迎大家:欢迎大家一起学习云计算,走向年薪 30 万
- 💕推广:CSDN 主页左侧,是个人扣扣群推广。方便大家技术交流、技术博客互助。
一、硬件虚拟化技术
硬件虚拟机技术:它是对CPU、内存、I/O等硬件进行的虚拟化技术。
2005年年末lntel发布的VT-x硬件虚拟化技术,以及AMD于2006年发布的AMD-V。
注意:KVM必须需要CPU的虚拟化支持,也就是VT-x和AMD-V。
- CPU 虚拟化技术:将一台物理服务器上的 CPU 功能虚拟化,使多台虚拟机可以在同一台物理服务器上运行;
- 内存虚拟化技术:将物理服务器上的内存资源进行划分,使得每一台虚拟机都可以拥有自己的独立内存空间;
- I/O 虚拟化技术:可以让每台虚拟机独享物理设备,并通过模拟 I/O 设备来完成设备间的数据通信。
注意,I/O虚拟化有四种方式,如下:
- 设备模拟器:虚拟机监控器中模拟一个传统的I/O设备的特性,比如在QEMU中模拟一个Intel的千兆网卡或者一个IDE硬盘驱动器,在客户机中就暴露为对应的硬件设备。
- 前后端驱动接口:在虚拟机监控器与客户机之间定义一种全新的适合于虚拟化环境的交互接口,比如常见的virtio协议就是在客户机中暴露为virtio-net、 virtio-blk等网络和磁盘设备,在QEMU中实现相应的virtio后端驱动。
- 设备直接分配:将一个物理设备,如一个网卡或硬盘驱动器直接分配给客户机使用,这种情况下I/0请求的链路中很少需要或基本不需要虚拟机监控器的参与所以性能很好。
- 设备共享分配:其实是设备直接分配方式的一个扩展。在这种模式下,一个(具有特定特性的)物理设备可以支持多个虚拟机功能接口,可以将虚拟功能接口独立地分配给不同的客户机使用。如SR-IOV就是这种方式的一个标准协议。
二、Inter硬件虚拟化技术发展
Inter硬件虚拟化技术可以分为3个类别:
- VT-x技术:是指Intel处理器中进行的一些虚拟化技术支持,包括CPU中引入的最基础的VMX技术,使得KVM等硬件虚拟化基础的出现成为可能。同时也包括内存虚拟化的硬件支持EPT、VPID等技术。
- VT-d技术:是指Intel的芯片组的虚拟化技术支持,通过IntelIOMMU以实现对设备直接分配的支持。
- VT-c技术:是指Intel的I/O设备相关的虚拟化技术支持,主要包含两个技术:一个是借助虚拟机设备队列 (VMDg) 最大限度提高I/O吞吐率,VMDq由Intel网卡中的专用硬件来完成;另一个是借助虚拟机直接互连 (VMDc)大幅提升虚拟化性能,VMDc主要就是基于SR-IOV标准将单个Intel网卡产生多个VF设备,用来直接分配给客户机。
总结
本章中,我们了解到硬件虚拟化技术的支持和发展。