kvm介绍
一、KVM概念
1、什么是KVM?
KVM 全称 Kernel-Based Virtual Machine。也就是说 KVM 是基于 Linux 内核实现的,这就使得linux内核本身就相当于一个Hypervisor。
Hypervisor是一种运行在物理服务器和操作系统之间的中间软件层,可允许多个操作系统和应用共享一套基础物理硬件,因此也可以看作是虚拟环境中的“元”操作系统,它可以协调访问服务器上的所有物理设备和虚拟机,也叫虚拟机监视器(Virtual Machine Monitor),即vmm。主要功能就是用来控制生成vm,并管理多个vm的运行,不同的vm中可以安装不同的操作系统,这些操作系统共用一台硬件主机,
因为直接使用linux内核的调度器进行管理,所以比xen的代码少很多
2、为何要用KVM?
虚拟化是云计算的基础之一,而无论是在部署,还是在研发、测试方面,kvm都是排在第一位的Hypervisor(即vmm,虚拟机监视器)。
kvm以高性能,可扩展性、高安全性,以及低成本而深受用户喜爱,这一切也与他基于linux内核实现有关。
3、KVM的功能
kvm用一个个进程来运行虚拟机。
(1)最主要的功能
- 基于kvm,可以执行热迁移,将一个运行的虚拟机从一个运行vm从一台物理机移动到另外一台物理主机,而vm里的运行不受影响(几台部署kvm虚拟化的物理机共享一个存储,存储内存放虚拟机的xml文件,这样在另外一台主机启一个虚拟机的进程是很快的,然后关联上待迁移主机的xml文件,就实现了热迁移);
- 可以保存当前虚拟机的运行状态到硬盘,然后可以重新启动虚拟机,这是虚拟机的运行状态和之前一样。
(2)其余功能
- 支持CPU 和 memory 超分(Overcommit)
- 支持半虚拟化I/O (virtio)
- 支持热插拔 (cpu,块设备、网络设备等)
- 支持对称多处理(Symmetric Multi-Processing,缩写为 SMP )
- 支持 PCI 设备直接分配和 单根I/O 虚拟化 (SR-IOV)
- 支持 内核同页合并 (KSM )
- 支持 NUMA (Non-Uniform Memory Access,非一致存储访问结构 )
二、常见虚拟化模式
按照Hypervisor的实现方式和位置不同,常见的形式分两种。(详细见虚拟化介绍)
1、全虚拟化
物理机上首先安装常规的操作系统( Redhat、Ubuntu 和 Centos等),然后在操作系统上安装kvm