OpenStack Ussuri-Victoria-Wallaby版本新功能介绍

社区目标

每个Release,社区都会定义几个社区目标,期望所有项目能够实现,这有利于对OpenStack下众多的项目能够有统一整体性,而不是各自发展各自的。OpenStack 从Ussuir到Victoria到Wallaby版本,社区定义了如下几个社区目标:

阅读更多

OpenStack Stein-Train版本新功能介绍

社区目标

每个Release,社区都会定义几个社区目标,期望所有项目能够实现,这有利于对OpenStack下众多的项目能够有统一整体性,而不是各自发展各自的。OpenStack Stein到Train版本,社区定义了如下几个社区目标:

阅读更多

Glance多后端功能介绍

所谓Glance多后端,其实是针对Cinder的多后端功能对比的,我们知道在Cinder中,cinder-volume后面可以接多个存储后端,并且通过cinder types来选择使用哪个存储后端,Cinder中的这个功能很早就有了,因为Cinder要纳管多种存储,对外提供统一的接口,这个功能是刚需。但是对于Glance来说,类似Cinder的这种Glance多后端就没那么刚了,没有多后端也是可以用的,拿Ceph作为后端存储来说,如果镜像只是存在其中一个存储池A的话,要在另外的存储池B中建虚拟机,发现不能执行rbd clone操作,那么它会将该镜像下载到本地,然后再传到存储池B中,而且下载下来的镜像会缓存到本节点,只要在该节点下载过一次,后面在该节点再使用相同的镜像建虚拟机,就不需要再下载了,这种方式虽然效率低一些,但是不影响使用。但是毕竟不完美啊,所以社区一直到R版,才实现了这个功能,到T版算是生产可用,但是仍然有一些bug还在修复,不过不影响使用。

阅读更多

Glance Interoperable Image Import功能介绍

Glance最核心的功能就是镜像管理,我们最常做的操作就是管理员给Glance上传一个镜像,然后大家就都可以从这个镜像创建虚拟机了,这在私有云场景下,没有任何问题。但是在公有云场景下,需要考虑的问题就比较多了,像“应用市场”就是可以让普通用户上传自己制作的镜像,并且共享给其他人,这一方面是请求量比在私有云场景大了很多,可能同时有很多人在传镜像,而且镜像一般都很大,如果不做优化,Glance API可能很快就卡死了;另一方面是安全性问题,普通用户是不可信的,管理员要对其上传的镜像做各种安全性、合法性检查;其他的,像管理员可能需要对用户上传的镜像自动做类型转换,以及打一些元数据标签之类的;所以,Glance的核心功能虽然简单,但是随着需求的不断提出,它还是经历过了一个比较“漫长”的演进过程。

阅读更多

Keystone Fernet Token解析

Token的一点历史

Keystone在早期的版本中,其认证Token有好几种类型,最早期的也是当时最成熟的是UUID类型的Token,它将token以及其元数据存储在数据库中,以一个UUID来标识一个Token,这种方式一个明显的问题就是当Token量很大时,会往数据库中写大量的Token,一个中等集群,往往数据库中有十几G的数据都是Token,需要定期清理,否则会拖慢其他请求;后来发展出了基于公私钥非对称加密的PKI/PKIZ Token,这种Token不需要存数据库,Token元数据直接被编码到Token ID中,而且因为是非对称的,甚至都不需要跟Keystone交互,本地就可以完成验证以及解析Token,但是这种Token,因为Token元数据都在Token ID中,随着集群大小以及复杂度的变化,其长度也会变化,有时会变得非常长,超过了HTTP对Header的长度限制,再加上公私钥的管理也比较复杂,所以PKI体系的Token基本没有被用起来;于是就有了Fernet Token,它可以看成是UUID和PKI折中的一种方案,它有以下几个特点:

阅读更多

Keystone认证公共库(keystoneauth)

keystoneauth是一个认证的公共库,它把和keystone进行认证的逻辑单独抽出来,提供了一个标准的认证过程,其实这个库就是把keystoneclient里的一部分和认证相关的代码拿了出来,单独作为一个库,然后就可以在各个服务的client中复用,这么做有下面的好处:

  1. 各个服务在和keystone进行认证时,就可以直接使用复用这个库,不用关心认证的逻辑了
  2. 安全相关的代码维护在一个地方,如果有问题,可以很快的进行修复
阅读更多

Keystone Federated Identity with Google Saml App

背景介绍

作为一个私有云平台,能够和其他账户中心打通,使用外部平台的账户体系,这是一个非常有用的功能,尤其是作为企业中的私有云,是企业中众多平台的一部分,搞多套账户体系必定增加管理成本,能够和现有的账户体系对接,账户统一管理,是一个成熟企业的标志。OpenStack作为最流行的开源IaaS私有云平台,也是具备这种能力的,Keystone可以直接和LDAP等账户中心对接,也可以通过SAML2和OpenID Connect等协议,和外部账户中心进行联合认证,即实现类似SSO的功能。

阅读更多

OpenStack Heat嵌套Stack解析

Stack是Heat里面抽象出来的概念,是一组资源的集合,Stack之间是可以嵌套的,也就是说一个Stack可以有子Stack,子Stack又可以有子Stack,关于Heat Stack的基础知识,见这篇文章:Heat基础知识

阅读更多

OpenStack可靠性验证和故障演练-Gremlin

最近做了一个项目,叫做OpenStack可靠性验证和故障演练,主要是使用Ansible把平台运维过程中遇到的一些经典问题给编排了一下,算是将这些运维经验通过代码的方式给积累下来,当然,该项目不仅仅是一些故障case的累积,它还系统性的对OpenStack云平台的可靠性,可用性进行验证,通过关停一些服务,down一些节点,验证其鲁棒性。

阅读更多

Heat基础知识

在TripleO中使用到了很多Heat中的语法,需要理解这些基本的语法才能够理解Heat Template。Heat中自定义了一套描述式语言,称为HOT(Heat Orchestration Template),用来描述整个软件栈,包括如何创建资源,如何配置资源等等,HOT中描述的软件栈被抽象成stack,可以定义输入,输出,参数,资源等等,一个stack还可以嵌套其他stack,Heat默认集成了OpenStackh很多组件,可以通过HOT来管理OpenStack资源,此外,还集成了Puppet/Ansible等配置管理工具,形成了一套完整的体系,功能十分强大,这里就主要介绍下部署TripleO过程中用到的Heat一些基础知识。

阅读更多