OpenStack(理论篇)

发布时间:2020-05-29 07:36:41 作者:caozhengtao1213
来源:网络 阅读:417

OpenStack基础理论

云计算概述

概念

OpenStack服务框架

OpenStack(理论篇)

服务 项目名称 描述
Compute (计算服务) Nove 负责实例生命周期的管理,计算资源的单位。对Hypervisor进行屏蔽,支持多种虚拟化技术(红帽默认为KVM),支持横向扩展
Network(网络服务) Neutron 负责虚拟网络的管理,为实例创建网络的拓扑结构。是面向租户的网络管理,可以自己定义自己的网络,各个租户之间互不影响
Identity(身份认证服务) Keystone 类似于LDAP服务,对用户、租户和角色、服务进行认证与授权,且支持多认证机制
Dashboard(控制面板服务) Horizon 提供一个WEB管理界面,与OpenStack底层服务进行交互
Image Service (镜像服务) Glance 提供虚拟机镜像模板的注册和管理,将做好的操作系统拷贝为镜像模板,在创建虚拟机时直接使用,可支持多格式的镜像
Block Storage(块存储服务) Cinder 负责为运行实例提供持久的快存储设备,可进行方便的扩展,按需付费,支持多种后端存储
Object Storage(对象存储服务) Swift 为OpenStack提供基础云的弹性存储,支持集群无单点故障
Telemetry(计量服务) Ceilometer 用于度量、监控和控制数据资源的集中来源,

OpenStack重要组件介绍

OpenStack认证服务(Keystone)

Keystone为所有的OpenStack组件提供认证和访问策略服务,它依赖自身REST(基于Identity API)系统进行工作,主要对(但不限于)Swift、Glance、Nova等进行认证与授权。事实上,授权通过对动作消息来源者请求的合法性进行鉴定。下图显示了身份认证服务流程图:

OpenStack(理论篇)
Keystone采用两种授权方式,一种基于用户名/密码,另一种基于令牌(Token)。

除此之外,Keystone提供以下三种服务:
令牌服务:含有授权用户的授权信息
目录服务:含有用户合法操作的可用服务列表
策略服务:利用Keystone具体指定用户或群组某些访问权限

keystone认证服务注意事项:

功能及特点: 
解释如下:
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的 实例卷,它能够为一个实例创建、删除、附加卷,也可以从一个实例中分离卷。卷管理为何如此重要?因为它提供了一种保持实例持续存储的手段,比如当结束一个 实例后,根分区如果是非持续化的,那么对其的任何改变都将丢失。可是,如果从一个实例中将卷分离出来,或者为这个实例附加上卷的话,即使实例被关闭,数据 仍然保存其中。这些数据可以通过将卷附加到原实例或其他实例的方式而重新访问。

因此,为了日后访问,重要数据务必要写入卷中。这种应用对于数据服务器实例的存储而言,尤为重要

OpenStack镜像服务器----Glance

OpenStack镜像服务器是一套虚拟机镜像发现、注册、检索系统,我们可以将镜像存储到以下任意一种存储中:

Glance构件:

OpenStack存储设施----Swift

Swift为OpenStack提供一种分布式、持续虚拟对象存储,它类似于Amazon Web Service的S3简单存储服务。Swift具有跨节点百级对象的存储能力。Swift内建冗余和失效备援管理,也能够处理归档和媒体流,特别是对大数据(千兆字节)和大容量(多对象数量)的测度非常高效。

swift功能及特点:  
Swift组件
Swift对象服务器

对象服务器是一种二进制存储,它负责处理本地存储中的对象数据的存储、检索和删除。对象都是文件系统中存放的典型的二进制文件,具有扩展文件属性的元数据(xattr)。

注意:xattr格式被Linux中的ext3/4,XFS,Btrfs,JFS和ReiserFS所支持,但是并没有有效测试证明在XFS,JFS,ReiserFS,Reiser4和ZFS下也同样能运行良好。不过,XFS被认为是当前最好的选择。

Swift容器服务器

容器服务器将列出一个容器中的所有对象,默认对象列表将存储为SQLite文件(译者注:也可以修改为MySQL,安装中就是以MySQL为例)。容器服务器也会统计容器中包含的对象数量及容器的存储空间耗费。

Swift账户服务器

账户服务器与容器服务器类似,将列出容器中的对象。

Ring(索引环)

Ring容器记录着Swift中物理存储对象的位置信息,它是真实物理存储位置的实体名的虚拟映射,类似于查找及定位不同集群的实体真实物理位置的索引服务。这里所谓的实体指账户、容器、对象,它们都拥有属于自己的不同的Rings。

OpenStack管理的Web接口----Horizon

Horizon是一个用以管理、控制OpenStack服务的Web控制面板,它可以管理实例、镜像、创建密匙对,对实例添加卷、操作Swift容器等。除此之外,用户还可以在控制面板中使用终端(console)或VNC直接访问实例。

总之,Horizon具有如下一些特点:  

其中:
控制节点负责对其余节点的控制,包含虚拟机建立,迁移,网络分配,存储分配等等
计算节点负责虚拟机运行
网络节点负责对外网络与内网络之间的通信
存储节点负责对虚拟机的额外存储管理等等



### 控制节点架构:

控制节点包括以下服务
 - 管理支持服务
 - 基础管理服务
 - 扩展管理服务

  #### 1)管理支持服务包含MySQL与Qpid两个服务

 - MySQL:数据库作为基础/扩展服务产生的数据存放的地方
 - Qpid:消息代理(也称消息中间件)为其他各种服务之间提供了统一的消息通信服务

  ####  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:用于与控制节点进行通信
 - eth2:用于与除了控制节点之外的计算/存储节点之间的通信
 - eth3:用于外部的虚拟机与相应网络之间的通信

### 计算节点架构

##### 计算节点包含Nova,Neutron,Telemeter三个服务

  1)基础服务

 - Nova:提供虚拟机的创建,运行,迁移,快照等各种围绕虚拟机的服务,并提供API与控制节点对接,由控制节点下发任务
 - Neutron:提供计算节点与网络节点之间的通信服务

  2)扩展服务

 - Telmeter:提供计算节点的监控代理,将虚拟机的情况反馈给控制节点,是Centimeter的代理服务

##### 计算节点包含最少两个网络端口

 - eth0:与控制节点进行通信,受控制节点统一调配
 - eth2:与网络节点,存储节点进行通信

### 存储节点架构

##### 存储节点包含Cinder,Swift等服务

 - Cinder:块存储服务,提供相应的块存储,简单来说,就是虚拟出一块磁盘,可以挂载到相应的虚拟机之上,不受文件系统等因素影响,对虚拟机来说,这个操作就像是新加了一块硬盘,可以完成对磁盘的任何操作,包括挂载,卸载,格式化,转换文件系统等等操作,大多应用于虚拟机空间不足的情况下的空间扩容等等
 - Swift:对象存储服务,提供相应的对象存储,简单来说,就是虚拟出一块磁盘空间,可以在这个空间当中存放文件,也仅仅只能存放文件,不能进行格式化,转换文件系统,大多应用于云磁盘/文件

##### 存储节点包含最少两个网络接口

 - eth0:与控制节点进行通信,接受控制节点任务,受控制节点统一调配
 - eth2:与计算/网络节点进行通信,完成控制节点下发的各类任务
推荐阅读:
  1. OpenStack Swift 对象存储管理(六)
  2. 实验环境下OpenStack多节点的部署

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

openstack st

上一篇:Mac下安装社区版MongoDB

下一篇:leetCode242. Valid Anagram 合法的由颠倒字母顺序而构成的字 sort

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》