标签:class 地址空间 list 接收 src 平台 解决 api strong
一 常见虚拟化模式
Hypervisor即vmm,主要功能就是用来控制生成vm,并管理vm的运行,按照Hypervisor的实现方式和位置不同,常见的形式分两种
1. 全虚拟化
物理机上首先安装常规的操作系统,比如 Redhat、Ubuntu 和 Centos。Hypervisor 作为 OS 上的一个程序模块运行,并对管理虚拟机进行管理。KVM、VirtualBox 和 VMWare Workstation 都属于这个类型。
2. 半虚拟化
Hypervisor 直接安装在物理机上,多个虚拟机在 Hypervisor 上运行。Hypervisor 实现方式一般是一个特殊定制的 Linux 系统。Xen 和 VMWare 的 ESXi 都属于这个类型。
二 KVM
openstack可以兼容很多虚拟化解决方案,其中最主要的就是针对x86平台的kvm。
KVM 全称 Kernel-Based Virtual Machine。也就是说 KVM 是基于 Linux 内核实现的,这就使得linux内核本身就相当于一个Hypervisor。
具体的:
基于kvm创建的vm就是普通的linux进程,由linux内核调度程序进行调度,vm因此可以使用linux内核已有的功能。因为vm的执行本质就是vm中cpu的执行,因此vm的每个cpu就是普通的linux进程。
KVM有一个内核模块叫 kvm.ko,只提供 CPU 和内存的虚拟化,而针对于IO及其他硬件设备(网络及存储等)的虚拟化,则是交给qemu实现,qemu运行在用户态通过/dev/kvm接口设置一个客户机虚拟机服务器的地址空间,向kvm提供模拟的I/O,并且将它的视频显示映射回宿主的显示屏。
大家在网上看 KVM 相关文章的时候肯定经常会看到 Libvirt 这个东西。
Libvirt 是啥?
简单说就是 KVM 的管理工具。
其实,Libvirt 除了能管理 KVM 这种 Hypervisor,还能管理 Xen,VirtualBox 等。
OpenStack 底层也使用 Libvirt,所以很有必要学习一下。
Libvirt 包含 3 个东西:后台 daemon 程序 libvirtd、API 库和命令行工具 virsh
libvirtd是服务程序,接收和处理 API 请求;
API 库使得其他人可以开发基于 Libvirt 的高级工具,比如 virt-manager,这是个图形化的 KVM 管理工具,后面我们也会介绍;
virsh 是我们经常要用的 KVM 命令行工具,后面会有使用的示例。
作为 KVM 和 OpenStack 的实施人员,virsh 和 virt-manager 是一定要会用的。
今天5分钟差不多了,下一次我们来玩 KVM
标签:class 地址空间 list 接收 src 平台 解决 api strong
原文地址:http://www.cnblogs.com/linhaifeng/p/6411174.html