kvm-虚拟化基础【理论知识】
1、基础知识
1.1、技术发展趋势
1.2、虚拟化是什么
虚拟化技术: 在现有物理主机基础上创造多个彼此独立的具有完整功能主机的技术。 将底层的计算机资源,抽象为彼此互相隔离的多组计算平台,每个计算平台都包含计算机的五大部件:cpu(控制器+寄存器)、mem(内存储)、IO(输入+输出), 简单来说就是: 本来没有,但是通过某种特殊的手段,让你以为有,而且确信不已。这些手段就是虚拟化技术。
1.3、虚拟化目标
在时间上和空间上突破我们工作的限制,提升工作效率。
时间上:多种工作在一时间段内同时进行
空间上:在一台物理主机上,虚拟出来多台主机,多台主机共同做一件事情。
1.4、虚拟机与物理机之间关系图
1.5、虚拟化发展
起始:
60年代ibm公司,成本巨大的大型机,企业负担不起业务多环境,虚拟化技术实现多环境。
没落:
80年代pc机,pc机很便宜,可以解决虚拟化多环境的问题。
风云再起:
随着x86主机硬件性能的增强,各企业业务对资源的需求量增加,自03年以来,虚拟化技术风云归来,现在越来越火
2、虚拟分类
2.1、虚拟化技术(系统级别)
2.1.1、模拟
使用模拟器技术,模拟出来一套完整的主机功能,虚拟出来的主机平台可以跟宿主机平台不一样。
2.1.2、全虚拟化
使用软件方式,虚拟出一个功能完整,底层平台与宿主机一致的主机,虚拟机自以为是一个真实的主机
常见的技术:kvm(2008年发布)
最早出现在1966年
2.1.3、半虚拟化
结合软件方式,虚拟出一个部分功能,底层平台与宿主机一致的主机,虚拟机知道自己是一个傀儡。
常见的技术:xen(2003年发布)
2.1.4、硬件辅助虚拟化
借助主机硬件的功能,虚拟出一个完全功能的主机。他是全虚拟化技术的一个特殊表现形式 常见技术:VT-x/EPT或者AMD-v/RVI 最早出现在1972年
2.2、代表软件
开源的虚拟化技术非常多,著名的就是Xen和KVM。 Xen是2003年发布,当时全球虚拟化/公有云,基本都是Xen的天下。 2006年,为了对抗Xen,intel,红帽,IBM,联手搞出一个KVM。并与2008年发布,自从2010年kvm添加到RHEL6.0内核中,kvm终于成为了主流。 经过了5年的PK,特别是硬件辅助虚拟化技术的应用,xen的性能优势被一点点的超越,目前现在已经是KVM独大。AWS,阿里云,已经全面转向KVM。
2.3、虚拟化技术(软件级别)
容器:通过技术手段,将软件应用的运行状态保留下拉,
2.4、虚拟化实现方式
2.4.1、方式图
2.4.2、实现特点
type-I: 实现虚拟化的方面更彻底,更可靠。 常见软件:xen, vmware ESX/ESXi type-II: 借助于宿主机的软件来实现各种虚拟机管理 常见软件:kvm, vmware workstation, virtualbox
3、kvm简介
3.1、官方介绍
3.2、原理解析
3.2.1、原理图
3.2.2、原理介绍
kvm依赖于HVM技术,只能运行在支持硬件虚拟化的CPU上,也就是说CPU支持VT-x或AMD-v,并且只支持x86_64bits系统。
只要基于硬件的操作系统内核一旦装载了kvm模块,那么kvm模块就和linux内核组合成了hypervisor,变成了type-I模型的虚拟机。 kvm类似于寄生虫,linux内核一旦被寄宿,就没有自主权,跟着kvm一起变成hypervisor的一部分。原来的用户空间就变成了hypervisor的管理控制台运行位置,而kvm以字符设备/dev/kvm的形式作为kvm整个的调用管理接口。 kvm创建的虚拟机就是一个进程,ps查看,kill杀死
3.3、kvm特点介绍
3.3.1、优势
支持 CPU 和 memory 超载(Overcommit) 支持 半虚拟化I/O (virtio) 支持 热插拔 (cpu,块设备、网络设备等) 支持 多存储管理 支持 实时迁移(Live Migration) 支持 PCI 设备直接分配和 单根I/O 虚拟化 (SR-IOV) 支持 内核同页合并 (KSM ) 支持 NUMA (Non-Uniform Memory Access,非一致存储访问结构 )
3.3.2、关键点
CPU 支持硬件虚拟化
CPU 不建议超过当前核心数
迁移时候,基础环境要一致