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. 阿里云服务器yum源更新问题

    阿里云官网也给出了yum卸载重装以及修改源为阿里云内网的文档.步骤这里就不说了,可点击下面的链接进行参考 https://help.aliyun.com/knowledge_detail/670864 ...

  2. win10无法连接windows服务器,无法连接SENS服务

    本文链接:https://blog.csdn.net/weixin_38374974/article/details/80475566 膜拜大佬 首先,进入windows界面的时候,前期加载速度变得极 ...

  3. LeetCode 136. 只出现一次的数字(Single Number)

    题目描述 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次.找出那个只出现了一次的元素. 说明: 你的算法应该具有线性时间复杂度. 你可以不使用额外空间来实现吗? 示例 1: ...

  4. IDEA问题java: -source 1.6 中不支持diamond、 lambda 表达式

    文章目录 一.问题:连片的java: -source 1.6 中不支持 diamond 运算符.lambda 表达式 二.解决方法: 1.在微信群里问大佬,大佬在玩游戏,回复的比较慢 2.自己查Goo ...

  5. 黑马vue---14、v-model双向绑定

    黑马vue---14.v-model双向绑定 一.总结 一句话总结: 1.v-bind 只能实现数据的单向绑定,从 M 自动绑定到 V, 无法实现数据的双向绑定 2.v-model 指令,可以实现 表 ...

  6. legend3---lavarel多对多模型操作实例

    legend3---lavarel多对多模型操作实例 一.总结 一句话总结: 在多对多模型中,增加关系表的数据 需要 弄一个和关系表一对多的模型关系 1.在lavarel关系模型中,课程和标签表是多对 ...

  7. Chrome Development Tool: [VM] file from javascript

    Chrome Development Tool: [VM] file from javascript [VM] (scriptId) has no special meaning. It's a du ...

  8. Sql语法树示例 select username, ismale from userinfo where age > 20 and level > 5 and 1 = 1

    select username, ismale from userinfo where age > 20 and level > 5 and 1 = 1 --END-2019年9月5日17 ...

  9. python 学习笔记(一):在列表、字典、集合中根据条件筛选数据

    一.在列表中筛选数据 在列表中筛选出大于等于零的数据,一般通用的用法代码如下: data = [3, -9, 0, 1, -6, 3, -2, 8, -6] #要筛选的原始数据列表 result = ...

  10. SAS数据挖掘实战篇【五】

    SAS数据挖掘实战篇[五] SAS--预测模型 6.1 测模型介绍 预测型(Prediction)是指由历史的和当前的数据产生的并能推测未来数据趋势的知识.这类知识可以被认为是以时 间为关键属性的关联 ...