虚拟化技术简介

第1章 虚拟化技术的演变过程

1.1 软件模拟

软件模拟理论上可以模拟任何硬件,甚至是不存在的硬件。但是因为这种方式全部是模拟硬件,所以非常低效,一般只用于研究测试场景。采用这种技术的典型产品有Bochs、QEMU等。

图片[1]|虚拟化技术简介|leon的博客

1.2 虚拟化层翻译

1.2.1 全虚拟化:软件捕获翻译

全虚拟化软件有一个专门虚拟化引擎,通过虚拟化引擎捕获虚拟机的指令并进行处理,这也是为什么在虚拟机上虽然使用的是物理机一样的指令,但是虚拟机不能对硬件进行操作的原因,比如重启虚拟机不会引起宿主机的重启。这种解决方案也叫做软件全虚拟化方案,如VMware。

图片[2]|虚拟化技术简介|leon的博客

1.2.2 半虚拟化:改造虚拟机系统内核加虚拟化层翻译

半虚拟化软件对虚拟机的操作系统内核进行改造,使虚拟机自己对特殊的指令进行更改,然后和虚拟化层一起配合工作,这也是Xen早期一直要使用一个特殊内核的原因,并且不支持Windows系统虚拟化。改造的虚拟机虽然使用上有限制,配置比较麻烦,但是这种方式效率非常高,这种方式也被称为半虚拟化方案。

1.2.3 硬件支持的全虚拟化:硬件支持的虚拟化层翻译

2005年Intel推出了硬件的方案,对CPU指令进行改造(即VT-x),因为是基于硬件的,所以效率非常高,这种方案也称为硬件支持的全虚拟化方案。

图片[3]|虚拟化技术简介|leon的博客

1.3 容器虚拟化

容器虚拟化的原理是基于CGroups、Namespace等技术将进程隔离,每个进程就像一台单独的虚拟机一样,有自己被隔离出来的资源,也有自己的根目录、独立的进程编号、被隔离的内存空间。基于容器的虚拟化可以实现在单一内核上运行多个实例,因此是一个更高效率的虚拟化方式。目前最热的容器虚拟化技术就是Docker。
容器虚拟化就像一个某层大楼,如果此层作为住宅,那就需要每个房间都要有厨房、卫生间等必备设施,此时可能这层只有2-3户人家;但是如果改建成宿舍,厨房、卫生间只要各有一个就可以了,然后每个宿舍可以打隔断,很节省资源,基本可以隔出10-20个房间。

1.4 虚拟化的优势

图片[4]|虚拟化技术简介|leon的博客

第2章 KVM介绍

2.1 KVM简介

KVM(Kernel-based Virtual Machine)最初是由以色列的公司Qumranet开发的。KVM在2007年2月被正式合并到Linux 2.6.20核心中,成为内核源代码的一部分。2008年9月4日RedHat公司收购了Qumranet,开始在RHEL中有KVM替换Xen,第一个包含KVM的版本RHEL5.4。从RHEL6开始KVM成为默认的虚拟化引擎。KVM必须在具备Intel VT或AMD-V功能的x86平台上运行。它也被移植到S/390、PowerPC与IA-64平台上。在Linux内核3.9版中,加入了对ARM架构的支持。

2.2 KVM的架构

KVM的架构非常简单,如图所示,KVM就是内核的一个模块,用户空间通过QEMU模拟硬件提供给虚拟机使用,一台虚拟机就是一个普通的Linux进程,通过对这个进程的管理就可以完成对虚拟机的管理。

因为对进程的管理非常麻烦,RedHat发布了一个开源项目Libvirt。Libvirt有API,也有一套命令行工具,可以完成对虚拟机的管理,大多数的管理平台都是通过Libvirt来完成对KVM虚拟机的管理,比如OpenStack、CloudStack、OpenNebula等。

图片[5]|虚拟化技术简介|leon的博客

2.3 KVM小结

2.3.1 KVM结构特性

  • 设备驱动/dev/kvm
  • 针对模拟PC硬件的用户空间组件

2.3.2 KVM虚拟化特性

  • 嵌入到Linux正式Kenel(提高兼容性)
  • 代码级调用(提高性能)
  • 虚拟机就是一个进程(内存易于管理)
  • 直接支持NUMA技术(提高扩展性)
  • 保持开源发展模式
  • 更好的商业支持及服务保障(RedHat收购KVM后)

2.4 QEMU与KVM

QEMU是一个开源项目,实际就是一台硬件模拟器,可以模拟许多硬件,包括x86架构处理器、AMD64架构处理器等,使用的是纯软件模拟。
QEMU的好处是可以在支持的平台模拟支持的设备,缺点是非常慢。
KVM只是个内核模块,只提供CPU和内存,所以还是用QEMU模拟器模拟IO设备,如磁盘、网卡等。
KVM虚拟机=KVM内核模块 + QEMU模拟器

2.5 Libvirt与KVM

Libvirt是一套开源的虚拟化的管理工具,主要由3部分组成:一套API的lib库,支持主流的变成语言,包括C、Python、Ruby等;Libvirtd服务;命令行工具virsh。
Libvirt可以实现对虚拟机的管理,比如虚拟机的创建、启动、关闭、暂停、恢复、迁移、销毁以及虚拟机网卡、硬盘、CPU、内存等多种设备的热添加。

温馨提示:本文最后更新于2023-10-21 11:28:49,已超过181天没有更新。某些文章具有时效性,若文章内容或图片资源有错误或已失效,请联系站长。谢谢!
转载请注明本文链接:https://blog.leonshadow.cn/763482/119.html
© 版权声明
THE END
喜欢就支持一下吧
点赞6 分享