OpenStack 是云操作系统,要学习 OpenStack,首先需要掌握一些虚拟化和云计算的相关知识。
 
虚拟化
 
虚拟化是云计算的基础,简单的说,虚拟化使得在一台物理的服务器上可以跑多台虚拟机,虚拟机共享物理机的CPU、内存、IO、硬件资源,但逻辑上虚拟机之间是相互隔离的。
 
物理机我们一般称为宿主机(Host),宿主机上面的虚拟机被称为客户机(Guest)。那么Host是如何将自己的硬件资源虚拟化, 并提供给 Guest使用的呢?
 
这个主要是通过一个叫做 Hypervisor 的程序实现的。根据Hypervisor的实现方式和所处的位置,虚拟化又分为两种:1型虚拟化和2型虚拟化
 
1型虚拟化
 
Hypervisor 直接安装在物理机上,多个虚拟机在Hypervisor上运行,Hypervisor实现方式一般是一个特殊定制的Linux系统。Xen 和 Esxi 都属于这个类型
 
 
2型虚拟化
 
物理机上首先安装常规的操作系统,比如Redhat、Ubuntu和Windows。Hypervisor作为OS上的一个程序模块运行,并对虚拟机进行管理。KVM、VirtualBox 和 VMware Workstations都属于这种类型。
 
 
理论上讲:
    1型虚拟化一般对硬件虚拟化功能进行了特别的优化,性能上比2型要高
    2型虚拟化因为是基于普通的操作系统,会比较灵活,比如支持虚拟机嵌套。嵌套意味着可以在KVM虚拟机中再运行KVM
 
KVM
 
下面重点介绍KVM这种2型虚拟化技术。
 
在 x86 平台上最热门运用最广泛的虚拟化方案莫过于KVM了。OpenStack 对 KVM 支持的也很好,我们的教程也理所当然的选择KVM作为实验环境的Hypervisor。
 
KVM 全称是 Kernel-Based Virtual Machine 。也就是说KVM是基于Linux 内核实现的。KVM有一个内核模块叫做 kvm.ko ,只用于管理虚拟CPU和内存。
 
那IO的虚拟化,比如存储和网络设备是由谁来实现呢?
 
这个就交给Linux内核和Qemu来实现。说白了,作为一个Hypervisor ,KVM本身只关注虚拟机调度和内存管理这两个方面。IO 外设的任务交给Linux内核和Qemu。
 
libvirt
 
大家在网上看到KVM相关文章的时候肯定会经常看到libvirt这个东西,libvirt是啥?
 
简单的说就是KVM的管理工具。
 
其实 libvirt 除了能管理KVM这种Hypervisor,还能管理 Xen、VirtualBox 等。OpenStack底层也是用libvirt,所以有必要学习一下。
 
libvirt包含3个东西:后台daemon程序 libvirtd、API库 和命令行工具virsh
 
    1、libvirt是服务程序,接受和处理API请求
    2、API库使得其他人可以开发基于libvirt的高级工具,比如virt-manager,这是个图形化的KVM管理工具,后面我们会详细介绍
    3、virsh是我们经常要用的KVM命令行工具,后面会有示例。
 
作为KVM和OpenStack的实施人员,virsh和virt-manager是一定要会用的。
 

O002、虚拟化的更多相关文章

  1. [原] KVM 虚拟化原理探究(1)— overview

    KVM 虚拟化原理探究- overview 标签(空格分隔): KVM 写在前面的话 本文不介绍kvm和qemu的基本安装操作,希望读者具有一定的KVM实践经验.同时希望借此系列博客,能够对KVM底层 ...

  2. BIOS中未启用虚拟化支持系列~~例如:因此无法安装Hyper-V

    异常处理汇总-服务器系列:http://www.cnblogs.com/dunitian/p/4522983.html 一般都是启动一下CUP虚拟化就可以了 比如华硕的:

  3. [原] KVM 虚拟化原理探究 —— 目录

    KVM 虚拟化原理探究 -- 目录 标签(空格分隔): KVM KVM 虚拟化原理探究(1)- overview KVM 虚拟化原理探究(2)- QEMU启动过程 KVM 虚拟化原理探究(3)- CP ...

  4. [原] KVM 虚拟化原理探究(6)— 块设备IO虚拟化

    KVM 虚拟化原理探究(6)- 块设备IO虚拟化 标签(空格分隔): KVM [toc] 块设备IO虚拟化简介 上一篇文章讲到了网络IO虚拟化,作为另外一个重要的虚拟化资源,块设备IO的虚拟化也是同样 ...

  5. [原] KVM 虚拟化原理探究(5)— 网络IO虚拟化

    KVM 虚拟化原理探究(5)- 网络IO虚拟化 标签(空格分隔): KVM IO 虚拟化简介 前面的文章介绍了KVM的启动过程,CPU虚拟化,内存虚拟化原理.作为一个完整的风诺依曼计算机系统,必然有输 ...

  6. [原] KVM 虚拟化原理探究(4)— 内存虚拟化

    KVM 虚拟化原理探究(4)- 内存虚拟化 标签(空格分隔): KVM 内存虚拟化简介 前一章介绍了CPU虚拟化的内容,这一章介绍一下KVM的内存虚拟化原理.可以说内存是除了CPU外最重要的组件,Gu ...

  7. [原] KVM 虚拟化原理探究(3)— CPU 虚拟化

    KVM 虚拟化原理探究(3)- CPU 虚拟化 标签(空格分隔): KVM [TOC] CPU 虚拟化简介 上一篇文章笼统的介绍了一个虚拟机的诞生过程,从demo中也可以看到,运行一个虚拟机再也不需要 ...

  8. [原] KVM 虚拟化原理探究(2)— QEMU启动过程

    KVM 虚拟化原理探究- QEMU启动过程 标签(空格分隔): KVM [TOC] 虚拟机启动过程 第一步,获取到kvm句柄 kvmfd = open("/dev/kvm", O_ ...

  9. Linux虚拟化学习笔记<一>

    关于虚拟化,原理的东西是非常复杂的,要想完全理解,没有足够的耐心是不不能完全学透这部分内容的.那下面我主要以资源汇总的形式把一些资料罗列出来,帮助大家快速理解虚拟化,快速使用和配置. 为什么要虚拟化: ...

随机推荐

  1. ubuntu下如何检查nvidia显卡驱动是否安装OK?

    答:使用sudo lshw -c video即可,笔者的输出如下: jello~$ sudo lshw -c video*-display description: VGA compatible co ...

  2. windows实用cmd命令总结

    D: 进入D盘 cd D:\eclipse   进入D盘后进入D盘下的某个路径 Ipconfig 查看计算机ip Cls 清空命令行 ping ip(主机名) 测试网络是否畅通 Help 查看所有的d ...

  3. mysq乱码问题

    不乱码的思想 liunx字符集→linux客户端字符集(例如:ssh)→mysql客户端字符集→mysql服务端字符集→库的字符集→表的字符集→程序字符集统一 mysql表跟库,库跟服务端字符集 li ...

  4. LC 961. N-Repeated Element in Size 2N Array【签到题】

    In a array A of size 2N, there are N+1 unique elements, and exactly one of these elements is repeate ...

  5. 使用 certbot 自动给 nginx 加上 https

    概述 目前,Let's Encrypt 可以算是最好用的 https 证书申请网站了吧.而 certbot 可以算是它的客户端,能够很方便的自动生成 https 证书.我把自己的使用经历记录下来,供以 ...

  6. firefox浏览器插件---网址优化

    安装:YSlow插件 之后还必须安装firebug.否则YSlow不能使用. 安装:firebug 下面就可以了

  7. SQL Server里如何处理死锁 (转)

    http://www.cnblogs.com/woodytu/p/6437049.html 在今天的文章里,我想谈下SQL Server里如何处理死锁.当2个查询彼此等待时会发生死锁,没有一个查询可以 ...

  8. ERROR [org.hibernate.engine.jdbc.spi.SqlExceptionHelper] - Data truncation: Incorrect datetime value: '' for column 'pubdate' at row 1

    之前的Connector/J版本是:mysql-connector-java-5.0.4-bin.jar 后来换成mysql-connector-java-5.1.45-bin.jar,问题解决 20 ...

  9. EncryptionAndDecryptionC# 加密 解密

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  10. SQL常见面试题(借书卡表_图书表_借书记录表)

    问题描述: 本题用到下面三个关系表: CARD 借书卡:          CNO 卡号,NAME 姓名,CLASS 班级 BOOKS 图书:           BNO 书号,BNAME 书名,AU ...