【云计算学习笔记(十八)】之OpenStack服务拓扑设计,Keystone,Glance

本文章由公号【开发小鸽】发布!欢迎关注!!!


老规矩–妹妹镇楼:

一.OpenStack的服务拓扑设计

       OpenStack是一个分布式系统,由若干个节点构成,每个节点上可以部署OpenStack中的不同服务,同时每个服务的不同组件也可以分布式地部署在不同的节点上。

(一)控制节点Controller

       Controller节点上运行的服务有Keystone,Glance,Horizon以及Nova和Neutron中管理相关的组件。

       还有支持OpenStack的服务,如Mysql,RabbitMQ和网络时间服务NTP。

(二)网络节点Network

       运行的服务是Neutron,为OpenStack提供L2和L3网络,包括虚拟机网络,DHCP,路由,NAT等。

(三)存储节点Storage

       提供块存储服务Cinder或对象存储服务Swift。

(四)计算节点Compute

       运行Hpervisor(默认使用KVM),该组件用于创建以及管理虚拟机,同时还运行着Neutron服务的agent代理,为虚拟机提供网络支持。

二.KeyStone服务

(一)用户User

       User指代任何使用OpenStack的实体,可以是真正的用户,其他系统。当User请求访问OpenStack时,Keystone会对其进行验证。除了admin和demo,OpenStack也为nova, cinder, glance ,neutron服务创建了相应的User,admin可以管理这些User。

(二)凭证Credentials

       Credentials是User用来证明自己身份的信息,可以是账户/密码,令牌Token等。

(三)认证Authentication

       Authentication是Keystone验证User身份的过程。

(四)令牌Token

       Token是由数字和字母组成的字符串,User成功Authentication之后,它由KeyStone分配给User,Token就会作为访问服务的Credential,服务会向Keystone验证Token的有效性,Token的默认有限期是24H。

(五)项目Project

       Project用于将OpenStack的资源(计算,存储和网络)进行分组和隔离。根据OpenStack服务的对象不同,Project可以是一个客户(公有云中的租户),部门。

       注意,资源的所有权是属于Project的,而不是User,每个User(包括admin)都必须挂在Project里才能够访问该Project的资源,一个User可以属于多个Project。

(六)地址Endpoint

       Endpoint 是一个网络上可以访问的URL,Service通过Endpoint暴露自己的API,Keystone负责管理和维护每个Service的Endpoint。

(七)角色Role

       安全包含两部分:Authentication(认证)和Authrization(鉴权)。

       Keystone通过Role来实现鉴权的,在Keystone中定义不同的Role,每个Role可能有不同的权限,可以为User分配多个Role。

       每个Service决定每个Role可以做什么事情,通过各自的policy.json文件对Role进行访问控制。

三.Glance服务

(一)Glance服务的功能

  1. 提供REST API,让用户能够查询和获取Image的元数据和Image本身;

  2. 支持多种方式存储Image,包括普通的文件系统,Swift,Amazon S3;

  3. 对实例Instance执行快照snapshot可以创建新的Image;

(二)Glance服务组件架构

       Glance的架构如下所示:
在这里插入图片描述

可以看到Glance由三部分组成:

1.glance-api

       后台运行的服务进程,对外提供Rest API,响应Image查询,获取和存储的调用,它不会真真的处理请求。

       如果是和Image metadata(元数据)相关的操作,glance-api会将请求转发给glance-registry,再和数据库进行交互取出相应的数据;

       如果是和Image自身存取相关的操作,glance-api会将请求转发给Image的存储系统store backend;

2.glance-registry

       系统后台运行的服务进程,负责处理和存取Image的metadata(元数据),如Image的大小和类型,都会存储在database数据库中,默认是Mysql。

       Glance支持多种类型的Image。如下所示:
在这里插入图片描述

3.store backend

       Glance服务自己不会存储Image的,而是存储在backend中,Glance支持多种类型的backedn,如:默认本地文件系统,Amazon S3,Cinder,Swift,VMware ESX。

       具体使用哪种backend,是在/etc/glance/glance-api.conf中配置的。

(三)Glance的操作

       OpenStack提供了Web UI(Horizon)和命令行CLI两种交互界面,命令行支持的功能更多,且参数更多,执行速度更快,且CLI可以放在脚本中批处理,同时对于耗时的操作CLI更加适合。

1.创建Image

       如果设置Image为public,则其他Project可以使用该Image;如果设置为Protected,则该Image不允许被删除。建议使用CLI命令行操作,还可以显示创建的状态。

glance image-create –name cirrors—file /tmp/xxxx.img –disk-format qcow2 –container-format bare –progress

       最后一个参数—progress可以显示Image文件上传的百分比,更加直观。

2.删除Image
glance image-delete xxxx

       后面的是Image的ID。

(四)Glance的日志

       OpenStack排查问题的方法主要是通过日志,每个Service都有自己的日志。Glance的日志有两个,glanceapi.log和glanceregistry.log。glace-api日志记录了Rest API的调用情况,glance-registry日志记录了Glance服务处理请求的过程以及数据库的操作。如果需要得到更加详细的日志,可以在/etc/glance/*.conf中打开debug选项。

(五) OpenStack的命令行操作

1.执行命令之前,需要设置环境变量

       这些变量包含用户名,Project,密码等,如果不设置,那么每次执行命令时都必须设置相关的命令行参数。

2.各个服务的命令都有增删改查的操作

格式是:

CMD <obj>-create [param1][param2]…
CMD <obj>-delete [param1][param2]…
CMD <obj>-update [param1][param2]…
CMD <obj>-list [param1][param2]…
CMD <obj>-show [param1][param2]

       如glance中管理的是image,那么CMD就是glance,obj就是image;

       netron中管理的是网络和子网,那么CMD就是neutron,obj就是net和subnet;

       nova的obj可以省略,如针对instance的操作:

nova boot , nova delete, nova list, nova show;

3.help查看命令的用法

格式是:

CMD help [sub-CMD]

       如glance help image-update可以查询image-update的用法。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值