openstack基本组件基础知识
Openstack:
⼀.云计算+openstack概念:
1.云计算是⼀种按使⽤量付费的模式,这种模式提供可⽤的,便捷的,按需的访问,通过互联⽹进⼊可配置的计算资源共享池(资源包括⽹络,计算,存储,应⽤软件,服务);
2.OpenStack:是⼀个开源的云计算管理平台项⽬,由⼏个主要的组件组合起来完成具体⼯作,项⽬⽬标是提供实施简单、可⼤规模扩展、丰富、标准统⼀的云计算管理平台。
⼆.Openstack组件
共享服务组件(6个):
数据库服务(database service):Mariadb及Mongodb
消息传输(Message Queues): RabbitMQ
缓存(cache):Memcached
时间同步(time sync):ntp
存储(storge provider):ceph,GFS,LVM,ISICI等
⾼可⽤及负载均衡:pacemaker,HAproxy,keepalived,lvs
核⼼组件:
⾝份服务(Identity Service):Keystone
计算服务(compute):Nova
镜像服务(Image Service):Glance
⽹络服务(Network):Neutron
块存储服务(Block Storage):Cinder
Web界⾯服务(Dashboard):Horizon
对象存储(Object Storage):Swift
测量(Metering):Ceillrmeter
部署编排(Orchestration):Heat
三.RabbitMQ
1.概念:属于⼀个流⾏的开源消息队列系统。属于AMQP( ⾼级消息队列协议 ) 标准的⼀个 实现。是应⽤层协议的⼀个开放标准,为⾯向消息的中间件设计。⽤于在分布式系统中存储转发消息,在 易⽤性、扩展性、⾼可⽤性等⽅⾯表现不俗。
2.耦合/解耦合
3.rabbitmq中的概念:
Broker:简单来说就是消息队列服务器实体。
Exchange:消息交换机,它指定消息按什么规则,路由到哪个队列。
Queue:消息队列载体,每个消息都会被投⼊到⼀个或多个队列。
Binding:绑定,它的作⽤就是把exchange和queue按照路由规则绑定起来。
Routing Key:路由关键字, exchange根据这个关键字进⾏消息投递。
vhost:虚拟主机,⼀个broker⾥可以开设多个vhost,⽤作不同⽤户的权限分离。
producer:消息⽣产者,就是投递消息的程序。
consumer:消息消费者,就是接受消息的程序。
channel:消息通道,在客户端的每个连接⾥,可建⽴多个channel,每个channel代表⼀个会话任务。
4.⼯作原理
( 1)客户端连接到消息队列服务器,打开⼀个channel。
( 2)客户端声明⼀个exchange,并设置相关属性。
( 3)客户端声明⼀个queue,并设置相关属性。
( 4)客户端使⽤routing key,在exchange和queue之间建⽴好绑定关系。
( 5)客户端投递消息到exchange。
( 6) exchange接收到消息后,就根据消息的key和已经设置的binding,进⾏消息路由,将消息投递到⼀个或多个队列⾥。
5.rabbitmq集部署: 注意必须⾄少要有⼀个disk node
四.Memcache
1.概念:
Memcached 是⼀个开源的、⾼性能的分布式内存对象缓存系统。通过在内存中缓存数据和对象来减少读取数据库的次数,从⽽提⾼⽹站访问速度,加速动态WEB应⽤、减轻数据库负载。
2.缓存流程:
(1). 检查客户端请求的数据是否在 Memcache 中,如果存在,直接将请求的数据返回,不在对数据进⾏任何操作。
(2).如果请求的数据不在 Memcache 中,就去数据库查询,把从数据库中获取的数据返回给客户端,同时把数据缓存⼀份 Memcache 中
(3).每次更新数据库的同时更新 Memcache 中的数据库。确保数据信息⼀致性。
(4).当分配给 Memcache 内存空间⽤完后,会使⽤LRU(least Recently Used ,最近最少使⽤ ) 策略加到其失效策略,失效的数据⾸先被替换掉,然后在替换掉最近未使⽤的数据
五.Keystone
1.概念:
⽤于为OpenStack家族中的其它组件成员提供统⼀的认证服务,包括⾝份验证、令牌的发放和校验、服务列表、⽤户权限的定义等。云环境中所有的服务之间的授权和认证都需要经过 keystone.
(1).管理⽤户及其权限;
(2).维护 OpenStack Services 的 Endpoint;
(3).Authentication(认证)和 Authorization(鉴权)
2.keystone中概念:
(1).user:指代任何使⽤open stack的实体,可以是真正的⽤户,其他系统或服务;
(2).Credentials:是user⽤来证明⾃⼰⾝份的信息,可以是1. ⽤户名/密码;2.Token;3. API Key;4. 其他⾼级⽅式.
(3). Authentication:是 Keystone 验证 User ⾝份的过程。User 访问 OpenStack时向 Keystone 提交⽤户名和密码形式的Credential,Keystone 验证通过后会给 User 签发⼀个 Token 作为后续访问的 Credential。
(4).Token: Token 是由数字和字母组成的字符串,user成功Authentication后成Token并分配给user。Token⽤作访问Service的Credential;Service会通过Keystone验证Token的有限性;Token的有效期默认24⼩时。
(5).Project:⽤于将open stack的资源进⾏分组和隔离。根据openstack的服务对象不同,project可以是⼀个客户,部门或者项⽬组。
(6).Service:包括nova,glance,cinder,neutron等,每个service会提供若⼲个Endpoint,user通过Endpoint访问资源和执⾏操作。
(7).Endpoint:是⼀个⽹络上可访问的地址,通常是⼀个URL。Service通过Endpoint暴露⾃⼰的API,Keystone负责管路和维护每个service的Endpoint.
(8).Role:可以为user分配⼀个或多个Role,Service决定每个role能做什么事,系统基本⾓⾊有两个:管理员admin和租户_member_
3.Keystone基本框架
Token: ⽤来⽣成和管理token
Catalog: ⽤来存储和管理service/endpoint
Identity: ⽤来管理tenant/user/role和验证
Policy: ⽤来管理访问权限浏览器json格式化
4.通过’查询可⽤image’这个实际操作让⼤家更加清晰keystone的⼯作过程及原理:
第⼀步:登⼊。
⽤户admin拿着credential请求登⼊,Authentication认证通过,并给admin⽤户⼀个token;
第⼆步:显⽰操作界⾯。
进⼊操作界⾯后,这时admin需要访问image服务。在访问image前发⽣了:admin询问keystone询问到了能访问admin和demo两个project,同时可以访问instance,Volume,glance等服务。因为这时admin已经从keystone拿到了service的Endpoints.
第三步:显⽰image列表。
Admin要查看project admin中的image,先是把将请求发送到Glance的Endpoint,Glance向keystone询问admin⾝份是否有效,接下来Glance会查看/etc/glance/policy.json判断admin是否有查看image的权限。权限判定后,Glance将image列表发给admin。
5.keystone主要有两个⽇志:keystone.log和keystone_access.log,保存在/var/log/apache2/⽬录⾥
6.集搭建图
六.Glance
1.glance介绍:是openstack项⽬中负责镜像管理的模块,其功能包括虚拟机镜像的查,注册和检索等。Glance提供restful api可以查询虚拟机镜像的metadata及获取镜像。Glance可以将镜像保存到多种后端存储上,⽐如简单的⽂件存储或者对象存储。
2.Glance架构
Glance-api
Glance-api是系统后台运⾏的服务进程,对外提供REST API,响应Image查询,获取和存储的调⽤。Glance-api不会真正处理请求,如果操作是与image metadata相关,glance-api会把请求转发给glance-registry;如果操作是与image⾃⾝存取相关,glance-api会把请求转发给image的store backend.
Glance-registry
Glance-registry是系统后台运⾏的服务进程,负责处理和存取image的metadata,例如image的⼤⼩和类型。Glance⽀持多种格式的image,⽐较常⽤的有:Raw,vmdk,ISO,QCOW2.Image的metadata会保持到database中,默认是MySQL。
Store backend
Glance⾃⼰并不存储image,真正的image是存放在backend中。Glance⽀持多种backend,默认是:A directory on a local file
system(Filesystem)具体使⽤哪种backend,实在/etc/f 中配置。
3.创建Image
⽅法⼀:在web界⾯中创建(步骤见博客)
⽅法⼆:在命令⾏创建
1. 将image上传到控制节点的⽂件系统中,例如: /tmp/cirros-0.3.5-x86_64-disk.img
2. glance image-create --name cirros1 --file /tmp/cirros-0.
3.5-x86_64-disk.img --disk-format qcow2 --container-format bare --progress
⼀般创建⽐较⼤的镜像⽤命令⾏创建会更快和⽅便。
Image放在/var/lib/glance/images/下
4.glance⽇志:glance_api.log 和glance_registry.log,保存/var/log/glance⽬录中
七.Nova
从上图可以看出,nova处于openstack架构的中⼼,其他组件都为nova提供⽀持glance为VM提供image,cinder和swift分别为VM提供块存储和对象存储,neutron提供⽹络连接。
是整个nova的门户,所有对nova的请求都⾸先由nova-api处理。Nova-api向外暴露若⼲HTTP rest api 接⼝在keystone中,客户端可以将请求发送到endpoint指定的地址,向nova-api请求操作。
Nova-api对收到的HTTP api请求会做如下处理:
(1).检查客户端传⼊的参数是否合法;
(2).调⽤nova其他⼦服务的处理客户端HTTP请求;
(3).格式化nova其他⼦服务返回的结果并返回给客户端。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论