码迷,mamicode.com
首页 > 其他好文 > 详细

nova系列二:kvm介绍

时间:2017-02-17 18:50:16      阅读:174      评论:0      收藏:0      [点我收藏+]

标签: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,并且将它的视频显示映射回宿主的显示屏。

技术分享

 

 

Libvirt

大家在网上看 KVM 相关文章的时候肯定经常会看到 Libvirt 这个东西。

Libvirt 是啥?
简单说就是 KVM 的管理工具

其实,Libvirt 除了能管理 KVM 这种 Hypervisor,还能管理 Xen,VirtualBox 等。
OpenStack 底层也使用 Libvirt,所以很有必要学习一下。

Libvirt 包含 3 个东西:后台 daemon 程序 libvirtd、API 库和命令行工具 virsh

  1. libvirtd是服务程序,接收和处理 API 请求;

  2. API 库使得其他人可以开发基于 Libvirt 的高级工具,比如 virt-manager,这是个图形化的 KVM 管理工具,后面我们也会介绍;

  3. virsh 是我们经常要用的 KVM 命令行工具,后面会有使用的示例。

作为 KVM 和 OpenStack 的实施人员,virsh 和 virt-manager 是一定要会用的。

今天5分钟差不多了,下一次我们来玩 KVM

 

nova系列二:kvm介绍

标签:class   地址空间   list   接收   src   平台   解决   api   strong   

原文地址:http://www.cnblogs.com/linhaifeng/p/6411174.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!