此篇简要介绍一下Xen和KVM。
虚拟化
- 虚拟化:是指通过虚拟化技术将一台计算机虚拟为多台逻辑计算机。在一台计算机上同时运行多个逻辑计算机,每个逻辑计算机可运行不同的操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率。
- 全虚拟化:运行在虚拟环境的虚拟机无法感知到自己是运行在虚拟环境之上,只会觉得自己是运行在硬件之上
- 半虚拟化:运行在虚拟环境的虚拟机可以感知到自己不是直接运行在硬件环境之上
Xen
- Xen是Linux上的一种应用
- Xen的实现方法是运行支持Xen功能的kernel,这个kernel是工作在 Xen的控制之下,叫做Domain0,使用这个kernel启动机器后,你可以在这个机器上使用qemu软件,虚拟出多个系统
- Xen较为老旧,后期发展没有KVM迅猛
KVM
- KVM即Kernel-based Virtual Machine
- 内置于Linux内核中的一种虚拟化技术
- KVM更轻量,更易管理,并且版本更新也可以随着内核的更新
- KVM的内核模块叫做kvm.ko,实现对Linux的CPU和内存虚拟化,是Linux的一个进程,负责VCPU和内存的分配,而其他设备的虚拟就交给了qemu
- qemu运行在用户空间,KVM运行在内核,两者通过/dev/kvm进行交互,KVM仅支持全局虚拟化
- 磁盘I/O方面KVM更胜一筹