OpenStack 基础知识


文章目录

  • OpenStack 基础知识
  • 前言
  • 一、虚拟化
    • 1.I型虚拟化
    • 2.II型虚拟化
  • 二、KVM & Libvirt

前言

了解openstack之前需要掌握虚拟化、云计算等基础知识


一、虚拟化

首先我们先了解一下什么是虚拟化,虚拟化是云计算的基础。简单来说,虚拟化就是在一台物理服务器上,运行多台“虚拟服务器”。这种虚拟服务器,也叫虚拟机(VM,Virtual Machine)。

从表面来看,这些虚拟机都是独立的服务器,但实际上,它们共享物理服务器的CPU、内存、硬件、网卡等资源。物理机,通常称为“宿主机(Host)”。虚拟机,则称为“客户机(Guest)”。

虚拟化使用软件来模拟硬件并创建虚拟计算机系统。这样一来,企业便可以在单台服务器上运行多个虚拟系统,也就是运行多个操作系统和应用,而这可以实现规模经济以及提高效益。

在云计算上虚拟化技术能为我们解决很多以前解决不了的技术:

服务器整合技术:这个技术在没有虚拟化技术之前是很难完成的。因为什么东西都是实际存在的,想把两个工作相对较少的服务器整合到一起是很困难的。然而当有了虚拟化技术以后使这种服务器整合技术变得非常容易。

灵活的资源调派:通过虚拟化技术,我们可以动态调配资源给VM,并让它在不同的实体主机之间做到不停机地移转(VMotion),避免硬件因为计划性的停机维护而不能提供服务。当虚拟机无法在实体机中取得足够硬件资源的时候,我们还可以让它自动去找寻闲置有足够资源的实体机,并在线转移过去,进行服务器的资源负载平衡(DRS 功能)。经过虚拟化之后,原本困难费心的事情变得很轻松容易实现。

快速大量部署、降低维护工作:要快速产生一台或多台合乎标准的虚拟机是非常容易的,这省下了采购硬件的流程、安装软件时间、后续硬件维护等多道麻烦手续,非常快速与方便地用于开发、测试、维运等环境上面。

增加可用性与备份:使用虚拟快照技术是将虚拟机此时的状态像照片一样保存下来,当然我说的很容易,其实现原理需要非常复杂,包括cpu运行状态,内存中的数据等等。这样保存下这些虚拟技术当发生灾难或者某些失误导致虚拟机出问题时,可以很快恢复。

虚拟化技术最早是IBM公司在上世纪60年代末所提出的,当时 IBM 公司为实现多用户对大型计算机同时交互访问而开发的一套被称之为虚拟机监视器(Virtual Machine Monitor 简称为 VMM)的软件。在现在的虚拟化技术中,VMM 是运行在硬件服务器和操作系统中间层的软件,它方便同时有多个相同或不同的操作系统和应用共享底层硬件基础设施。在云计算中常提及的Hypervisor与 VMM 具有相同含义,其实质是一种资源配置的管理技术。

Hypervisor,汉译过来是“超级监督者”,也叫做VMM(Virtual Machine Monitor,虚拟机监视器)。它不是一款具体的软件,而是一类软件的统称。

Hypervisor分为两大类:

第一类,hypervisor直接运行在物理机之上。虚拟机运行在hypervisor之上。第二类,物理机上安装正常的操作系统(例如Linux或Windows),然后在正常操作系统上安装hypervisor,生成和管理虚拟机。

像VMware、KVM、Xen、Virtual Box,都属于Hypervisor。

VMware大家应该很熟悉,就是VMware Workstation。学习Linux的话,很多人都是在windows系统下安装WMware,然后创建Linux虚拟机。

但是,真正厉害的,是 KVM(kernel-based virtual machine,基于Linux内核的虚拟机)。它是目前最热门最受追捧的虚拟化方案,在云计算领域目前用的虚拟机技术最多的也是KVM。

1.I型虚拟化

Hypervisor 直接安装在物理机上,多个虚拟机在 Hypervisor 上运行。Hypervisor 实现方式一般是一个特殊定制的 Linux 系统。Xen 和 VMWare 的 ESXi 都属于这个类型。

2.II型虚拟化

物理机上首先安装常规的操作系统,比如 Redhat、Ubuntu 和 Windows。Hypervisor 作为 OS 上的一个程序模块运行,并对管理虚拟机进行管理。KVM、VirtualBox 和 VMWare Workstation 都属于这个类型。

理论上讲:

I型虚拟化一般对硬件虚拟化功能进行了特别优化,性能上比2型要高;

II型虚拟化因为基于普通的操作系统,会比较灵活,比如支持虚拟机嵌套。嵌套意味着可以在KVM虚拟机中再运行KVM。

二、KVM & Libvirt

在 x86 平台上最热门运用最广泛的虚拟化方案莫过于 KVM 了。OpenStack 对 KVM 支持得也最好。

KVM 全称是 Kernel-Based Virtual Machine。也就是说 KVM 是基于 Linux 内核实现的。KVM有一个内核模块叫 kvm.ko,只用于管理虚拟 CPU 和内存。

那 IO 的虚拟化,比如存储和网络设备由谁实现呢?

这个就交给 Linux 内核和Qemu来实现。说白了,作为一个 Hypervisor,KVM 本身只关注虚拟机调度和内存管理这两个方面。IO 外设的任务交给 Linux 内核和 Qemu。

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 是一定要会用的。


OpenStack 基础知识相关推荐

  1. rackspace_Rackspace专家指导的OpenStack基础知识

    rackspace 作为最近在纽约州立大学奥尔巴尼分校举行的第四届开源节的一部分,举办了一次OpenStack培训讲习班 . 该研讨会聚集了40多位参与者,历时三个小时,以学习OpenStack的一些 ...

  2. OpenStack基础知识

    什么是云计算 地址规划 主机名 IP OpenStack01 172.30.2.135         有了云主机可以灵活扩展 OpenStack分为agent 和server端 是虚拟化的管理平台 ...

  3. OpenStack基础知识及搭建云平台先电的基本虚拟机配置

    目录 一.认识云平台OpenStack 二.云平台之虚拟机 一.认识云平台OpenStack 1.云计算概念:分布式计算技术,通过网络将庞大的计算处理程序分拆成无数个较小的子程序,再交个多台服务器进行 ...

  4. OpenStack基础知识-virtualenv工具详解

    1.virtualenv介绍 virtualenv通过创建一个单独的虚拟化python运行环境,将我们所需的依赖安装进去,不同项目之间相互不干扰,从而解决不同的项目之间依赖不同,造成的冲突问题 2.安 ...

  5. 【转】《从入门到精通云服务器》第六讲—OpenStack基础

    前五期的<从入门到精通云服务器>受到了广泛好评,收到留言,有很多读者对云计算相关的技术非常感兴趣.应观众要求,我们这期要安利一条纯技术内容.准备好瓜子.花生,随小编一起进入OpenStac ...

  6. 2021-7-19-OpenStack基础知识学习

    OpenStack基础知识学习 参考文献:Wolf_Coder,百度百科 1,云计算 1.1,出现原因 由亚马逊公司提出.1.随着业务增加公司内部的服务器不够使用,进行虚拟化技术->2.随着公司 ...

  7. 云计算之OpenStack基础

    云计算之OpenStack基础 一.OpenStack基础知识 二.虚拟化 2.1 虚拟化类型 2.1.1 Ⅰ型虚拟化 2.1.2 Ⅱ型虚拟化 2.1.3 比较 2.2 KVM(Ⅱ型虚拟化) 2.2. ...

  8. 通过demo学习OpenStack开发所需的基础知识 -- 单元测试

    本文将进入单元测试的部分,这也是基础知识中最后一个大块.本文将重点讲述Python和OpenStack中的单元测试的生态环境. 单元测试的重要性 github上有个人画了一些不同语言的学习曲线图:Le ...

  9. RESTful_基础知识

    目录 目录 前言 RESTful REST原则 REST的Web原则 分层系统原则 RESTful的实现 SOA 面向服务的体系结构 RPC样式 Web服务 RPC的实现过程 SOAP 简单对象访问协 ...

最新文章

  1. 第1关:实现一个顺序存储的线性表
  2. deepin 15.11 docker 安装命令
  3. zsh性能分析(没搞完)
  4. Ajax全接触(1)
  5. TFS2010 删除工作区(同时删除工作区中所有的目录映射)
  6. 事务连接中断_一文搞懂分布式事务-CAP理论
  7. python 枚举类型
  8. flutter应用开发中文本样式 TextStyle 篇
  9. Windows Mobile 6.5 新功能widget开发
  10. 联想陈旭东:我们有工匠精神
  11. arg是什么函数_CTF必备技能丨Linux Pwn入门教程——针对函数重定位流程的相关测试(上)...
  12. 360修复上不了网络连接服务器失败,360断网急救箱网络连接配置修复不了怎么办-修复不了的解决办法...
  13. php自动生成word目录,word怎么自动生成目录
  14. matlab s域转时域,时域 S域 Z域转换
  15. 瑞幸自曝虚假交易22亿,App却反冲 TOP 1
  16. 互联网服务器信息检索,网络信息检索的一般方法
  17. 电话销售话术模板有哪些 电话销售技巧
  18. 浅析2022年6月六级翻译真题
  19. air换电池 macbook_macbook怎么换电池?macbook换电池图文教程
  20. 为什么TCP服务端需要调用bind函数而客户端通常不需要呢

热门文章

  1. 上传并在地图中显示Shp文件
  2. 水滴筹 2021秋招 后台开发
  3. 猿团股权投资:开启短平快的全新投融模式
  4. python爬虫有要求会redis么_Python爬虫-Redis
  5. Cause: java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; mysql的xml文件出现异常解决方案
  6. 马云再一次颠覆革命!支付宝又逆天:不用钱包不用手机照样支付
  7. 给图像增加一种噪声并利用至少两种低通或高通滤波器实现频率域的滤波
  8. 38个优秀博客站点推荐
  9. 重磅炸弹 诺基亚N71简体中文版全国抢先预览
  10. 嘉兴碧桂园云栖里土拍价格_奥山深耕嘉兴,再下一城!以总价5.73亿元竞得王店镇宅地...