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—镜像服务

主要功能:
1. 提供虚拟机镜像的存储、查询和检索服务。
2. 为Nova组件提供服务。
3. 依赖于存储服务和数据库。

Glance构件:
1)Glance-API:
  主要负责接收响应镜像管理命令的Restful请求,分析消息请求信息并分发其所带的命令(如新增,删除,更新等)。默认绑定端口是9292。
2)Glance-Registry:
  主要负责接收响应镜像元数据命令的Restful请求。分析消息请求信息并分发其所带的命令(如获取元数据,更新元数据等)。默认绑定的端口是9191。

五、Swift—对象存储服务

主要功能:提供高可用分布式对象存储服务。
主要特点:无限可扩展,并且没有单点故障。不用担心存储的对象意外丢失,因为会有其他的备份。
 

六、Cinder-块存储服务

主要功能:快速管理所有的块存储设备,为VM服务。
总结
“对象存储服务”和“块存储服务”区别
块存储服务:是本地的,它只能挂靠在VM上使用
对象存储服务:主要存取分布式对象,在任意地方都可以发起请求去存储对象。

七、Neutron—网络服务

主要功能:
1. 提供云计算环境下的虚拟网络功能。

2. 给每个租户独立的网络环境。

八、Openstack各组件之间的关系

九、访问控制流程

以用户创建一个新的虚拟机为例:

Openstack基础架构相关推荐

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

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

  2. OpenStack(Kilo版本)基础架构学习笔记

    一.OpenStack项目简介 OpenStack是一个由NASA(美国国家航空航天局)和Rackspace合作研发并发起的,以Apache许可证授权的自由软件和开放源代码项目. OpenStack  ...

  3. 云计算平台2017年盘点——真正成为新技术新应用的基础架构

    作者简介: 吴凯,北京云途腾科技有限责任公司首席运营官,具有20年的IT和软件服务行业管理经验,历任多家著名外资及民营IT企业的核心高级管理职位,是中国云计算专家委员会专家委员,中国开源云联盟及云计算 ...

  4. 边缘计算架构_边缘计算与开放基础架构的重要性

    边缘计算架构 古老的科幻电影描绘了计算机如何渗透到未来生活的方方面面. 它已经过去了,并且几乎没有引起我们的注意:它使家用PC变得司空见惯,我们的手机变成了小型智能设备,并且我们的汽车开始由数千个传感 ...

  5. 云中台技术架构_为什么开放基础架构在云中很重要

    云中台技术架构 在阅读红帽首席执行官Jim Whitehurst的最新文章时,我对OpenStack与州际公路系统之间的比较感到震惊. < 华尔街与科技>上的文章名为" Open ...

  6. 超融合架构的优缺点_知道 超融合基础架构吗

    一"融合"架构的起源 "融合"架构最初的解决方案通常包括了服务器.SAN存储和网络(以太网或InfiniBand).一般是由单一供应商提供的包括服务器.存储和网 ...

  7. O记云基础架构大跃进:甲骨文睡醒了

    甲骨文上周发布了一系列云基础架构特性,涉及到弹性计算.文件和归档存储.软件定义网络.大数据和容器即服务.这些特性在很多方面上都是对于亚马逊最近一些列动作的回应,亚马逊最近在吸引企业的核心应用转移到云端 ...

  8. 人工智能都这么火了,底层基础架构还有必要开源吗?

    开源是技术圈永不过时的话题,而作为目前最成功的开源项目,OpenStack在开源世界的成功有目共睹. 虽然近年来越来越多的云计算厂商开始走自主研发路线,一时之间引起了业界对于OpenStack的热烈争 ...

  9. DCOS :私有云的物理基础架构管理引擎

    https://cloud.tencent.com/developer/article/1005598 一.引言 云计算经过多年的发展,逐渐从概念到渐为人认知.到接受.到现在全行业拥抱上云,云的客户也 ...

最新文章

  1. scau 1142 巡逻的士兵(分治)
  2. -bash: /usr/java/jdk1.8.0_101/bin/java: Permission denied
  3. html项目_学完html+css就可以做的前端项目实战
  4. HDU2050 折线分割平面
  5. python六十三: __call__
  6. stm32g474教程_STM32-开发入门教程
  7. 利用真值表法求取主析取范式以及主合取范式的实现(C++)
  8. java代码调用python_java调用python代码-阿里云开发者社区
  9. javascript中的原型
  10. c语言 ++ --运算符_C / C ++中的按位运算符
  11. MacOS开发必备工具brew,安装nginx反向代理,替代linux工具 apt-get和 yum
  12. vue+element+node构建单片机控制系统
  13. 最详细的选型攻略!选择工业相机必须搞懂这10大要素!(建议收藏)
  14. 【回波损耗(dB)和电压驻波比(VSWR)之间的关系】
  15. csr驱动程序linux版,CSR8510蓝牙驱动下载
  16. 笔记本电脑频繁自动重启_笔记本电脑频繁自动重启的原因和纠正
  17. 【文章翻译】Reinforced Variational Inference
  18. Silverlight 减小 Xap 的大小
  19. Sorted Adjacent Differences
  20. 当保险遇上AI,泰康保险集团智能化升级有秘籍

热门文章

  1. HashSet 原理结构
  2. x86保护模式——全局描述符表GDT详解
  3. 入门 Teams Toolkit
  4. C语言 队列 的基本功能和详细代码(含详细注释)
  5. Android 根据心电图(ECG)数据绘制心电图
  6. 基于CORBA规范的中间件——CORBA基本原理
  7. hmmlearn使用简介
  8. 湖北省钟祥一中2021高考成绩查询,钟祥2021中考分数线查询
  9. AWD平台搭建--Cardinal
  10. 剖析环境加密与文档加密