Openstack简介

  •   OpenStack是一个由美国国家航空航天局(NASA)和Rackspace合作研发并发起的开源项目。其中Rackspace贡献了Swift, NASA贡献了Nova项目,这两个子项目发展到现在的大大小小十多个项目。其宗旨在于:帮助组织运行为虚拟计算或存储服务的云,为公有云、私有云,也为大云、小云提供可扩展的、灵活的云计算。这些项目之间的关系是松耦合。可以独立的安装,启动和停止。
    缺点是安装配置复杂;
    优点是扩展性好,安全性高,不会存在单点故障。
    总结:它是
    ①Rackspace和NASA共同发起的开源项目。
    ②是一系列开源软件项目的组合。
    ③是基础设施资源的系统管理平台。
      整个OpenStack是由控制节点,计算节点,网络节点,存储节点四大部分组成。(这四个节点也可以安装在一台机器上,单机部署)
    其中:
      1.控制节点负责对其余节点的控制,包含虚拟机建立,迁移,网络分配,存储分配等等
      2.计算节点负责虚拟机运行
      3.网络节点负责对外网络与内网络之间的通信
      4.存储节点负责对虚拟机的额外存储管理等等
  •   控制节点架构:
    控制节点包括以下服务
       ①管理支持服务
       ②基础管理服务
       ③扩展管理服务
     1)管理支持服务包含MySQL与Rabbit MQ两个服务
      MySQL:数据库作为基础/扩展服务产生的数据存放的地方
      Rabbit MQ:消息代理(也称消息中间件)为其他各种服务之间提供了统一的消息通信服务
     2)基础管理服务包含Keystone,Glance,Nova,Neutron,Horizon五个服务
      Keystone:认证管理服务,提供了其余所有组件的认证信息/令牌的管理,创建,修改等等,使用MySQL作为统一的数据库
        Glance:镜像管理服务,提供了对虚拟机部署的时候所能提供的镜像的管理,包含镜像的导入,格式,以及制作相应的模板
      Nova:计算管理服务,提供了对计算节点的Nova的管理,使用Nova-API进行通信
      Neutron:网络管理服务,提供了对网络节点的网络拓扑管理,同时提供Neutron在Horizon的管理面板
      Horizon:控制台服务,提供了以Web的形式对所有节点的所有服务的管理,通常把该服务称为DashBoard
      3)扩展管理服务包含Cinder,Swift,Trove,Heat,Centimeter五个服务
      Cinder:提供管理存储节点的Cinder相关,同时提供Cinder在Horizon中的管理面板
      Swift:提供管理存储节点的Swift相关,同时提供Swift在Horizon中的管理面板
      Trove:提供管理数据库节点的Trove相关,同时提供Trove在Horizon中的管理面板
      Heat:提供了基于模板来实现云环境中资源的初始化,依赖关系处理,部署等基本操作,也可以解决自动收缩,负载均衡等高级特性。
      Centimeter:提供对物理资源以及虚拟资源的监控,并记录这些数据,对该数据进行分析,在一定条件下触发相应动作
    控制节点一般来说只需要一个网络端口用于通信/管理各个节点
  •   网络节点架构
    网络节点仅包含Neutron服务
    Neutron:负责管理私有网段与公有网段的通信,以及管理虚拟机网络之间的通信/拓扑,管理虚拟机之上的防火等等
    网络节点包含三个网络端口
    eth0:用于与控制节点进行通信
    eth1:用于与除了控制节点之外的计算/存储节点之间的通信
    eth2:用于外部的虚拟机与相应网络之间的通信
    *   计算节点架构
    计算节点包含Nova,Neutron,Telemeter三个服务
      1)基础服务
      Nova:提供虚拟机的创建,运行,迁移,快照等各种围绕虚拟机的服务,并提供API与控制节点对接,由控制节点下发任务
      Neutron:提供计算节点与网络节点之间的通信服务
      2)扩展服务
      Telmeter:提供计算节点的监控代理,将虚拟机的情况反馈给控制节点,是Centimeter的代理服务
    计算节点包含最少两个网络端口
    eth0:与控制节点进行通信,受控制节点统一调配
    eth1:与网络节点,存储节点进行通信
  • 存储节点架构
    存储节点包含Cinder,Swift等服务
    Cinder:块存储服务,提供相应的块存储,简单来说,就是虚拟出一块磁盘,可以挂载到相应的虚拟机之上,不受文件系统等因素影响,对虚拟机来说,这个操作就像是新加了一块硬盘,可以完成对磁盘的任何操作,包括挂载,卸载,格式化,转换文件系统等等操作,大多应用于虚拟机空间不足的情况下的空间扩容等等
    Swift:对象存储服务,提供相应的对象存储,简单来说,就是虚拟出一块磁盘空间,可以在这个空间当中存放文件,也仅仅只能存放文件,不能进行格式化,转换文件系统,大多应用于云磁盘/文件
    存储节点包含最少两个网络接口
    eth0:与控制节点进行通信,接受控制节点任务,受控制节点统一调配
    eth1:与计算/网络节点进行通信,完成控制节点下发的各类任务
    Openstack各组件作用
    一、Horizon- (Dashboard)模块
    作用:主要负责为Openstack用户提供UI服务,即管理控制台。在管理控制台的操作转换为后端API的调用。面向云管理员和普通用户。
    二、Keystone-身份服务模块
    Keystone采用两种授权方式,一种基于用户名/密码,另一种基于令牌(Token)。
    ①几个基本概念:
    用户:代表可以通过Keystone进行访问的人或程序,用户通过认证信息(如密码、API keys等)进行验证。
    租户:它是各个服务中的一些可以访问的资源的集合
    角色:它代表一组用户可以访问的资源的权限
    ②对访问请求的控制
    访问的对象:
    1.Service:即服务,如Nova、Glance、Swift。服务在KeyStone进行注册。
    2.Endpoint:可以理解它是一个服务暴露出来的访问点。如果需要一个访问一个服务则必须知道他的endpoint。
    3.Token:访问资源的令牌,相当于现实中的钥匙。具有时效性。
    一段时间有效可能过一段时间就无效。
    ③Keystone提供的服务

    1. Identity服务验证了身份验证凭证。
    2. Token服务将会验证并管理用于验证请求身份的令牌
    3. Catalog服务提供了可用于端点发现的服务注册表,各类服务需现在KeyStone上注册。
    4. Policy服务暴露了一个基于规则的身份验证引擎。觉得哪些用户有访问控制的权限。
      三、Nova—计算服务
      ①Openstack的核心服务。主要功能包括:
      1.实例生命周期管理
      2.计算资源的管理
      3.向外提供REST风格的API
      这三个组件通过消息中间件rabbit MQ传输通信
      ②其中组件介绍
      Nova弹性云(OpenStack计算部件)包含以下主要部分:
      API Server(nova-API)位于表示层,用于接受外部请求
      消息队列(rabbit-mq server)
      运算工作站(nova-compute)负责虚拟机的创建和分配
      网络控制器(nova-network)
      卷管理(nova-volume)
      调度器(nova-scheduler)调度如选择哪个主机创建VM
      解释如下:
      1)API服务器(nova-api)
      API服务器提供了云设施与外界交互的接口,它是外界用户对云实施管理的唯一通道。通过使用web服务来调用各种EC2的API,接着API服务器便通过消息队列把请求送达至云内目标设施进行处理。作为对EC2-api的替代,用户也可以使用OpenStack的原生API,我们把它叫做“OpenStack API”。
      2)消息队列(Rabbit MQ Server)
      OpenStack内部在遵循AMQP(高级消息队列协议)的基础上采用消息队列进行通信。Nova对请求应答进行异步调用,当请求接收后便则立即触发一个回调。由于使用了异步通信,不会有用户的动作被长置于等待状态。例如,启动一个实例或上传一份镜像的过程较为耗时,API调用就将等待返回结果而不影响其它操作,在此异步通信起到了很大作用,使整个系统变得更加高效。
       3)调度器(nova-scheduler)  
      调度器负责把nova-API调用送达给目标。调度器以名为“nova-schedule”的守护进程方式运行,并根据调度算法从可用资源池中恰当地选择运算服务器。有很多因素都可以影响调度结果,比如负载、内存、子节点的远近、CPU架构等等。强大的是nova调度器采用的是可插入式架构。
      目前nova调度器使用了几种基本的调度算法:
        随机化:主机随机选择可用节点;
        可用化:与随机相似,只是随机选择的范围被指定;
        简单化:应用这种方式,主机选择负载最小者来运行实例。负载数据可以从别处获得,如负载均衡服务器。
      4)运算工作站(nova-compute)
      运算工作站的主要任务是管理实例的整个生命周期。他们通过消息队列接收请求并执行,从而对实例进行各种操作。在典型实际生产环境下,会架设许多运算工作站,根据调度算法,一个实例可以在可用的任意一台运算工作站上部署。
       5)网络控制器(nova-network)
      网络控制器处理主机的网络配置,例如IP地址分配,配置项目VLAN,设定安全群组以及为计算节点配置网络。
       6)卷工作站(nova-volume) 
      卷工作站管理基于LVM的 实例卷,它能够为一个实例创建、删除、附加卷,也可以从一个实例中分离卷。卷管理为何如此重要?因为它提供了一种保持实例持续存储的手段,比如当结束一个 实例后,根分区如果是非持续化的,那么对其的任何改变都将丢失。可是,如果从一个实例中将卷分离出来,或者为这个实例附加上卷的话,即使实例被关闭,数据 仍然保存其中。这些数据可以通过将卷附加到原实例或其他实例的方式而重新访问。
      因此,为了日后访问,重要数据务必要写入卷中。这种应用对于数据服务器实例的存储而言,尤为重要。
      四、Glance—镜像服务
      主要功能:
    5. 提供虚拟机镜像的存储、查询和检索服务。
    6. 为Nova组件提供服务。
    7. 依赖于存储服务和数据库。
      Glance构件:
      1)Glance-API:
        主要负责接收响应镜像管理命令的Restful请求,分析消息请求信息并分发其所带的命令(如新增,删除,更新等)。默认绑定端口是9292。
      2)Glance-Registry:
        主要负责接收响应镜像元数据命令的Restful请求。分析消息请求信息并分发其所带的命令(如获取元数据,更新元数据等)。默认绑定的端口是9191。
      五、Swift—对象存储服务
      主要功能:提供高可用分布式对象存储服务。
      主要特点:无限可扩展,并且没有单点故障。不用担心存储的对象意外丢失,因为会有其他的备份。
       
      六、Cinder-块存储服务
      主要功能:快速管理所有的块存储设备,为VM服务。
      总结“对象存储服务”和“块存储服务”区别:
      块存储服务:是本地的,它只能挂靠在VM上使用
      对象存储服务:主要存取分布式对象,在任意地方都可以发起请求去存储对象。
      七、Neutron—网络服务
      主要功能:
    8. 提供云计算环境下的虚拟网络功能。
    9. 给每个租户独立的网络环境。

八、Openstack各组件之间的关系
 

九、访问控制流程
以用户创建一个新的虚拟机为例:

转载于:https://blog.51cto.com/12036173/2379984

Openstack各个组件的关系简介相关推荐

  1. OpenStack Zun组件详解

    什么是ZUN? Zun是Openstack中提供容器管理服务的组件,于2016年6月建立.Zun的目标是提供统一的Openstack API用于启动和管理容器,支持多种容器技术.Zun原来称为Higg ...

  2. Openstack基础架构和各组件的关系

    Openstack基础架构和各组件的关系 原创SL_World 最后发布于2017-12-12 15:05:04 阅读数 15817  收藏 展开 Openstack简介         OpenSt ...

  3. 末学者笔记--openstack共享组件:rabbitmq(3)

    openstack共享组件:消息队列rabbitmq 一.MQ 全称为 Message Queue, 消息队列( MQ )                       是一种应用程序对应用程序的通信方 ...

  4. 五分钟学会企业的OpenStack(T版)——简介及安装方式

    五分钟学会企业的OpenStack(T版)--简介及安装方式 前言 一.OpenStack简介 二.OpenStack安装方式(T版)系列 前言 花了几天写完了OpenStack(T版)的系列文章,希 ...

  5. UML入门1:事物和事物关系简介

    本节参考<UML2.0基础与RSA建模实例教程>曹衍龙.汪杰 学习UML语言的最快方法是自己练习一下. 本人使用的是StarUML,界面简介,体积小,适合初学者. UML模型分为两大元素. ...

  6. OpenStack服务组件01--keystone

    OpenStack服务组件01--keystone Keyston身份服务 Keyston身份服务简介 1.主要功能: 2.管理对象 3.keystone认证过程 Keystone身份服务组件安装 1 ...

  7. (P72)stl(一):泛型程序设计,什么是STL,STL六大组件及其关系

    文章目录 1.泛型程序设计 2.什么是STL 3.STL六大组件及其关系 1.泛型程序设计 泛型编程(generic programming) 类属编程 将程序写得尽可能通用 将算法从数据结构中抽象出 ...

  8. OpenStack公共组件oslo之十二——oslo.policy

    众所周知,OpenStack使用基于角色的权限访问控制(RBAC),在RBAC中,权限与角色相关联,用户通过成为适当角色的成员而得到这些角色的权限.这就极大地简化了权限的管理.在一个组织中,角色是为了 ...

  9. 云系列---Openstack Nova组件 | 参数说明 | 详细讲解

    Openstack Nova组件 一.Nova 概念 二.Nova 系统架构 三.Nova 组件详讲 1.API 讲解 2.Scheduler 讲解 调度器类型 过滤调度器调度过程 过滤器类型 Sch ...

最新文章

  1. PTA团体程序设计天梯赛-L2-023 图着色问题
  2. 浅析中科红旗的生与死
  3. 算法课题(一) 贪心算法
  4. 皮一皮:沉迷游戏的下场...
  5. 成功解决numpy.linalg.LinAlgError: singular matrix
  6. ubuntu16.04上安装graphy-easy
  7. 数据结构-顺序表(C语言实现)
  8. .NET Core 3.0之深入源码理解Configuration(一)
  9. 【ArcGIS微课1000例】0023:ArcGIS将地理照片(无人机照片)转为点(航迹)案例教程
  10. .Net转Java自学之路—SpringMVC框架篇八(RESTful支持)
  11. pythonstdin_Python从Stdin读取参数
  12. 杭电 1060 Leftmost Digit
  13. csv文件 java_Java生成CSV文件实例详解
  14. directsound之播放pcm
  15. 多张图片合成一张jpg工具_比较好的拼图软件,多张图片合并工具
  16. vue中动态加载图片路径
  17. 网络系统设计综合布线方案
  18. centos7配置ntp服务器
  19. C语言实现原码一位乘法
  20. i5 6500 HD530 台式机黑苹果记录

热门文章

  1. 《C和指针》一1.7 问题
  2. POJ2955Brackets[区间DP]
  3. java核心技术读书笔记1
  4. Javascript创建select 以及获取select的值、文本;获取radio,check的值
  5. Pass4side CompTIA PK0-002题库下载
  6. react 禁止微信调整字体大小
  7. Javascript基础知识 - 基础部分
  8. WinForm控件查找奇思
  9. 使用一个月Windows 8.1优缺点汇总
  10. php采集 纠正一下