您好,欢迎访问代理记账网站
移动应用 微信公众号 联系我们

咨询热线 -

电话 15988168888

联系客服
  • 价格透明
  • 信息保密
  • 进度掌控
  • 售后无忧

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相关

分享:

低价透明

统一报价,无隐形消费

金牌服务

一对一专属顾问7*24小时金牌服务

信息保密

个人信息安全有保障

售后无忧

服务出问题客服经理全程跟进