1.1KVM介绍
Kernel-based Virtual Machine的简称,是一个开源的系统虚拟化模块,自Linux 2.6.20之后集成在Linux的各个主要发行版本中。它使用Linux自身的调度器进行管理,所以相对于Xen,其核心源码很少。KVM目前已成为学术界的主流VMM之一。
KVM的虚拟化需要硬件支持(如Intel VT技术或者AMD V技术)。是基于硬件的完全虚拟化。而Xen早期则是基于软件模拟的Para-Virtualization,新版本则是基于硬件支持的完全虚拟化。但Xen本身有自己的进程调度器,存储管理模块等,所以代码较为庞大。广为流传的商业系统虚拟化软件VMware ESX系列是基于软件模拟的Full-Virtualization。
因为对进程管理比较麻烦,RedHat发布了一个开源项目libvirt。libvirt有命令行工具也有API,可以通过图形化界面,完成对虚拟机的管理。大多数管理平台通过libvirt来完成对KVM虚拟机的管理;比如Openstack、Cloudstack、OpenNebula等。
1.2虚拟化概念
1.软件模拟
优点:能够模拟任何硬件,包括不存在的
缺点:功能非常低效,一般用于研究,生产环境不同。
代表:QEM
2.虚拟化层翻译
2.1 软件全虚拟化----VMware
2.2 半虚拟化----改动虚拟机的内核(linux)xen(被淘汰)
2.3 硬件支持的全虚拟化----KVM
3.容器虚拟化 docker
4.虚拟化分类
1.硬件虚拟化 硬件虚拟化代表:KVM
2.软件虚拟化 软件虚拟化代表:Qemu
提示:硬件虚拟化是需要CPU支持,如果CPU不支持将无法创建KVM虚拟机。Qemu和KVM的最大区别就是,如果一台物理机内存直接4G,创建一个vm虚拟机分配内存分4G,在创建一个还可以分4G。支持超配,但是qemu不支持。
1.3QEMU与KVM
QUME十一个开源项目,实际就是一台硬件模拟器,可以模拟许多硬件,包括X86架构处理器、AMD64架构处理器等。
QEMU的优点是因为是纯软件模拟,所以可以在支持的平台模拟支持的设备。缺点是因为纯软件模拟,所以非常慢。
KVM只是一个内核模块,只能提供CPU和内存;所以还需要QEMU模拟IO设备;如磁盘、网卡等。
1.4Libvirt与KVM
Libvirt是一套开源的虚拟化管理工具,主要由3部分组成。
一套API的lib库,支持主流的编程语言包括C、Python、Ruby等
Libvirt服务
命令行工具virsh
Libvirt可以实现对虚拟机的管理,比如虚拟机的创建、启动、关闭、暂停、恢复、迁移、销毁,以及对虚拟网卡、硬盘、CPU、内存等多种设备的热添加。
下面是我创建的QQ运维群,欢迎热衷于运维技术、也感谢各位Linux运维工程师和来自五湖四海的朋友们,加入本群一起学习交流,共同研究进步、探讨Linux运维技术!
添加方式
企鹅裙号:483937430
或扫描下方二维码