KVM基本原理

一、 KVM介绍

1. KVM简介

KVM 全称是 基于内核的虚拟机(Kernel-based Virtual Machine),它是一个 Linux 的一个内核模块,该内核模块使得 Linux 变成了一个 Hypervisor。
KVM最初是由以色列的公司Qumranet(//kju'ma,net//)开发的。KVM在2007年2月被正式合并到Linux 2.6.20核心中,成为内核源代码的一部分。
KVM必须在具备Intel VT或AMD-V功能的X86平台上运行。

- 它由 Quramnet 开发,该公司于 2008 年被 Red Hat 收购。
- 它支持 x86 (32 and 64), s390, Powerpc 等 CPU。
- 它从 Linux 2.6.20 起就作为一模块被包含在 Linux 内核中。
- 它需要支持虚拟化扩展的 CPU。
- 它是完全开源的。[官网](http://www.linux-kvm.org/page/Main_Page)

2. KVM的优势

  1. 开源

    	KVM是一个开源项目,这就决定了KVM一直是开放的姿态,许多虚拟化的新技术都是首先在KVM上应用,再到其他虚拟化引擎上推广。
    	KVM背靠Linux这棵大树,和Linux系统紧密结合,在Linux上的新技术都可以马上应用到KVM上。围绕KVM的是一个开源的生态链,从底层的Linux系统,到中间层的Libvirt管理工具,到云管理平台OpenStack,莫不是如此。
    
  2. 性能

    	KVM吸引许多人使用的一个动因就是性能,在同样的硬件条件下,能提供更好的虚拟机性能,主要是因为KVM架构简单,代码只有2万行,一开始就支持硬件虚拟化,这些技术特点保证了KVM的性能。
    
  3. 免费

    	KVM因为是开源项目,绝大部分KVM的解决方案都是免费方案,随着KVM的发展, KVM虚拟机越来越稳定,兼容性也越来越好,因而也就得到越来越多的应用。
    
  4. 广泛免费的技术支持

    	免费并不意味着KVM没有技术支持。在KVM的开源社区,数量巨大的KVM技术支持者都可以提供KVM技术支持。另外,如果需要商业级支持,也可以购买红帽公司的服务.
    

3. KVM与常用企业级虚拟化产品的PK

目前常见的企业级的虚拟化产品有4款:分别是VMware、HyperV、Xen、KVM。

二、 虚拟化技术演变过程

虚拟化技术的演变过程可以分为软件模拟、虚拟化层翻译、容器虚拟化三个大的阶段。
其中,虚拟化层翻译又可以分为:

  • 基于二进制翻译的全虚拟化,即软件全虚拟化
  • 改造虚拟机系统内核加虚拟化层翻译,即半虚拟化(超虚拟化或者操作系统辅助虚拟化)。
  • 硬件支持的虚拟化层翻译,即硬件辅助的全虚拟化

1. 软件模拟的技术方式

软件模拟是通过软件完全模拟CPU、芯片组、磁盘、网卡等计算机硬件,如下图所示

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XhEyEDm0-1622158530876)(images/QEMU虚拟架构.png)]

2. CPU运行级别

X86平台指令集划分为4个特权模式(环ring[rɪŋ]):Ring0、Ring1、Ring2、Ring3,操作系统一般使用Ring0级别,应用程序使用Ring3级别,驱动程序使用Ring1和Ring2级别。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TpPtDsec-1622158530879)(images/X86cpu指令级别.png)]

虚机怎么通过 VMM 实现 Guest CPU (客户[ɡest]CPU)对硬件的访问,根据其原理不同有三种实现技术:
软件全虚拟化
半虚拟化

硬件辅助的全虚拟化 

三、 虚拟化架构分类

1. 寄居架构

 	寄居架构 (Hosted Architecture [ˈɑːrkɪtektʃər] 建筑) 就是在操作系统之上安装和运行虚拟化程序,依赖于主机操作系统对设备的支持和物理资源的管理。

2. 裸金属架构

	裸金属架构 (“Bare [ber]  Metal [ˈmetl] ” Architecture) 就是直接在硬件上面安装虚拟化软件,再在其上安装操作系统和应用,依赖虚拟层内核和服务器控制台进行管理。 代表产品:xen server 、 VMware ESXi、RHEV(Red Hat Enterprise[ˈentərpraɪz] virtualization )

四、 KVM的功能列表

KVM 所支持的功能包括:

1.支持CPU 和 memory 超分(Overcommit [ˈoʊvər kəˈmɪt] 过度承诺)
2.支持半虚拟化I/O (virtio)
3.支持热插拔 (cpu,块设备、网络设备等)
4.支持对称多处理(Symmetric Multi-Processing,缩写为 SMP,指在一个计算机上汇集了一组处理器(多CPU),所有的CPU共享全部资源,如总线,内存和I/O系统等,操作系统或管理数据库的复本只有一个,这种系统有一个最大的特点就是共享所有资源。多个CPU之间没有区别,平等地访问内存、外设、一个操作系统。SMP 服务器的主要问题,那就是它的扩展能力非常有限。实验证明, SMP 服务器 CPU 利用率最好的情况是 24 个 CPU 。
5.支持实时迁移(Live Migration)
6.支持 PCI 设备直接分配和 单根I/O 虚拟化 (Single Root I/O Virtualization(SR-IOV) 允许Windows操作系统和微软的Hyper-V或VMware的ESXi等hypervisor对服务器的磁盘I/O设备,如现在SR-IOV对网卡设备一样进行封装,管理甚至共享。 )
7.支持 内核同页合并 (KSM )( 简单说,就是把相同的内存合并,这样可以让物理机跑更多的虚拟机。 )
8.支持 NUMA (Non-Uniform Memory Access,非一致存储访问结构, 一种计算机体系结构技术,它由多个 SMP 服务器通过一定的节点互联网络进行连接,协同工作,完成相同的任务,从用户的角度来看是一个服务器系统。其基本特征是由多个 SMP 服务器 ( 每个 SMP 服务器称节点 ) 通过节点互联网络连接而成,每个节点只访问自己的本地资源 ( 内存、存储等 ) ,是一种完全无共享 (Share Nothing) 结构。)

五、 KVM 工具集合

KVM主要工具:

1.libvirt:操作和管理KVM虚机的虚拟化 API,使用 C 语言编写,可以由 Python,Ruby, Perl, PHP, Java 等语言调用。可以操作包括 KVM,VMware,XEN,Hyper-v, LXC 等 Hypervisor。
2.Virsh:基于 libvirt 的 命令行工具 (CLI)
3.Virt-Manager:基于 libvirt 的 GUI 工具
4.virt-v2v:虚机格式迁移工具
5.virt-* 工具:包括 Virt-install (创建KVM虚机的命令行工具), Virt-viewer - - (连接到虚机屏幕的工具),Virt-clone(虚机克隆工具),virt-top 等
6.sVirt:安全工具和selinux相关
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 《KVM实战:原理、进阶与性能调优》是一本介绍KVM虚拟化技术的书籍。KVM,全称为Kernel-based Virtual Machine,是一种基于Linux内核的虚拟化解决方案。 这本书首先介绍了KVM的原理。KVM利用Linux内核的虚拟化功能,通过将物理设备的请求转发到虚拟机(VM)来实现虚拟化。它利用虚拟化扩展(Intel VT或AMD-V)来实现快速的虚拟机切换。书中详细介绍了KVM的基本概念、VM的创建与配置以及与其他虚拟化解决方案的对比。 然后,书籍进一步探讨了KVM的进阶技术。它介绍了如何使用KVM进行网络配置、存储管理和虚拟机迁移。此外,书中还介绍了如何集成KVM与云计算、容器等技术,以提高整个系统的性能和可靠性。 最后,这本书还包括了性能调优的内容。它介绍了如何通过对KVM和虚拟机的配置进行调整来提高性能。书中讨论了虚拟CPU和内存管理的最佳实践,以及如何合理分配物理资源给虚拟机以提高性能。 通过阅读《KVM实战:原理、进阶与性能调优》,读者可以了解KVM虚拟化技术的原理、基本操作和进阶技术,以及如何通过调优来提高性能。这本书对于想要深入了解KVM技术的从业人员和技术爱好者来说,是一本很好的参考资料。 ### 回答2: KVM是一种开源的虚拟化技术,全称是Kernel-based Virtual Machine,它能够将Linux内核转变为一个虚拟机监控器,通过这种方式可以在一台物理计算机上运行多个虚拟机,提供类似于物理机的计算资源。在《kvm实战:原理,进阶与性能调优》这本书中,作者详细介绍了KVM虚拟化技术的原理、进阶应用和性能调优方法。 这本书首先讲解了KVM虚拟化技术的原理,包括虚拟化的基本概念、KVM的架构和工作原理等。读者可以了解KVM是如何通过虚拟化硬件和内核模块,实现虚拟机的创建、运行和管理的。 接着,书中详细介绍了KVM的进阶应用。例如,如何利用KVM创建高可用性的虚拟机集群,如何通过虚拟机快照功能实现快速备份和恢复等。同时,书中还介绍了与KVM相关的其他开源技术,如QEMU、libvirt等,以及它们在KVM中的应用。 最后一部分是关于KVM性能调优的内容。作者介绍了KVM虚拟化技术的性能瓶颈和优化方法,如CPU调度策略、内存和存储性能优化等。读者可以了解如何根据实际应用场景,调整KVM虚拟机的参数,以达到最佳的性能表现。 通过阅读《kvm实战:原理,进阶与性能调优》,读者可以全面了解KVM虚拟化技术的原理和应用。同时,书中提供了大量实例和案例,帮助读者更好地理解和应用这一技术。这本书对于计算机技术爱好者、系统管理员和云计算从业者来说,都是一本非常实用的参考书。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值