openstack各组件总结

一、keystone
1、keystone的功能
(1)管理用户及其权限
(2)维护openstack各服务的endpoint
(3)认证和鉴权

2、与keystone相关的名词:user、credentials、authentication、token、project、service、endpoint、role
(1)user:用户或者其他服务
(2)Credentials(证明):user用来证明自己身份的信息,通常是用户名/密码或者Token
(3)Authentication(认证):是keystone验证user身份的过程,user提供用户名/密码,keystone签发Token的过程
(4)Token:由数字和字母组成,user成功认证后,由keystone分配给user,有效期默认24小时
(5)Project:用于将OpenStack的资源(计算、存储、网络)进行分组和隔离
(6)Service:计算、存储、镜像、网络等服务,每个服务都会提供若干个endpoint,user通过endpoint访问资源和执行操作
(7)Endpoint:是一个网络上可访问的地址,通常是一个URL(统一资源定位符),service通过endpoint暴露自己的API

二、Glance
1、Glance架构及组件功能(画图)
(1)Glance-api:对外提供REST API,响应image查询、获取和存储的调用,glance-api不会真正处理请求。
(2)Glance-registry:处理image的元数据。
(3)Store backend:存放image。支持多种方式存储,包括文件系统、Swift、http、Amazon S3等。
(4)Database:image的元数据会保存到database中,默认是MySQL。

三、Nova
1、描述“从虚机创建流程看nova-*子服务如何协同工作”(画图)
(1)nova-api:接收和响应客户的调用
(2)RabbitMQ:作为自服务的信息中转站,协调各子服务之间的通信。
(3)Scheduler:根据计算节点的资源使用情况,选择最合适的计算节点来运行虚机。
涉及到Filter scheduler调度器:调度过程分为两步:
a:通过过滤器filter选择满足条件的计算节点
b:通过权重计算选择最优的计算节点创建虚机
(4)nova-compute:在计算节点上运行,负责管理节点上的虚机。
(5)nova-conductor:nova-compute需要获取和更新数据库中虚机的信息,但不会直接访问数据库,是通过nova-conductor实现访问数据库。
(6)Database:存放组件的状态数据等。
流程:
(1)客户向nova-api发送请求:“帮我创建一个虚机”。
(2)nova-api接收请求并处理后,向RabbitMQ发送消息:“让Scheduler创建一个虚机”。
(3)Scheduler接收到RabbitMQ的请求,开始执行调度算法,从若干计算节点中选出计算节点A。
(4)Scheduler发送消息到RabbitMQ:“在计算节点A上创建这个虚机”。
(5)RabbitMQ向计算节点A的nova-compute发送消息,然后在本节点的Hypervisor上启动虚机。
(6)nova-compute如果需要查询和更新数据库信息,会通过RabbitMQ发送消息到nova-conductor,nova-conductor负责数据库访问。

四、Cinder
1、Cinder架构及组件功能(画图)
(1)cinder-api:接收API请求,调用cinder-volume执行操作。
(2)Message queue(RabbitMQ):通过消息队列,实现进程间通信和相互协作。
(3)Cinder-scheduler:scheduler通过调度算法选择最合适的存储节点创建volume。
(4)Cinder-volume:管理volume的服务,与volume provider协同工作,管理volume的生命周期。运行cinder-volume服务的节点被称作为存储节点。
(5)Volume provider:为volume提供物理存储空间(创建volume)。
(6)Database:cinder的数据需要存放在数据库中,一般使用MySQL。数据库是装在控制节点上的。

五、Neutron
1、Neutron架构及组件功能(画图)
(1)neutron server:对外提供openstack网络API,接收请求,并调用Plugin处理请求。
(2)Plugin:接收neutron server请求,调用Agent处理请求。
(3)Agent:接收Plugin请求,负责在network provider上真正实现各种网络功能。
(4)Network provider:提供网络服务的虚拟或者物理网络设备,例如Linux Bridge、Open vSwitch虚拟交换机或者其他支持Neutron的物理交换机。
(5)Queue:负责各子服务之间的通信。
(6)Database:存放网络状态信息,包括network、subnet、port、router等。

猜你喜欢

转载自www.cnblogs.com/onemusk/p/11275193.html