Atom feed of this document
  

 缓存层

OpenStack认证支持上述配置的子系统的缓存层(例如,令牌,赋值)。OpenStack认证使用 dogpile.cache库,此库支持灵活的后端缓存系统。主要的缓存配置在文件keystone.conf[cache]一节,然而,其它的节都有是否支持缓存的布尔值定义,用来切换是否支持缓存。

所以要仅仅启用令牌的后端缓存的话,按下面值设置即可:

[cache]
enabled=true

[assignment]
caching=false

[token]
caching=true
[注意]注意

Juno版本发布后,默认的设置是启用了子系统的缓存的。但是全局的开关是关闭的。那结果就是,如果不将[cache] 全局开关的值设置为true的话,是用不了缓存的。

 令牌缓存以及令牌合法性

令牌系统有单独的cache_time配置项,既可以设置为上述的项,也可以设置为下面全局的expiration_time,允许OpenStack认证中其它系统有不同的缓存行为。此属性在配置文将中的[token] 一节设置。

令牌废弃列表缓存时间由[token]一节中的配置属性 revocation_cache_time来掌控。该废弃列表会在每个令牌撤销就刷新一次。通常可看到是请求显著的多于令牌检索或令牌的合法验证调用。

这里是一个受缓存时间影响的行为列表:获取新的令牌,撤销令牌,验证令牌,检查v2令牌,以及检查v3令牌。

删除令牌API调用无效,所操作的高速缓存令牌,以及无效的高速缓存撤销令牌列表和验证/检查令牌调用。

令牌缓存单独配置revocation_list 缓存。从令牌驱动到令牌管理释放过期的检查,这确保了令牌即使过期了可以发出 TokenNotFound标志。

对于缓存一致性,所有的令牌ID都在提供者和令牌驱动级别转换为短的令牌哈希值。其中一些方法可以访问全ID(PKI 令牌),另外一些则不可以。缓存失效是没有令牌ID规范化的不一致。

 围绕CRUD分配的缓存

分配系统拥有分离的cache_time配置属性,其可以设置为上述的值,或者是下面的默认全局expiration_time,允许认证服务内部不同的系统有不同的缓存行为。此属性在配置文件中的[assignment]一节设置。

目前 分配project, domain, 和 role指定的需求(主要围绕CRUD动作)提供缓存。缓存目前实现还不是很全面。list方法都是不能实现缓存的。

下面是受影响的分配操作的列表:分配域API,分配项目API,以及分配角色API。

要对域,项目和角色进行创建,更新和删除的操作,得执行上述所列出的缓存方法的合法性验证。

[注意]注意

如果使用了只读的assignment 后端,缓存在后端就不会立即体现出变更。在作出反应之前任何的变更都需要cache_time(如果在配置文件设置了[assignment])或者是全局的expiration_time (在配置文件的[cache]一节设置)。如果此类型有延迟的问题的话(当使用了只读 assignment后端),建议将缓存的assignment禁用。要禁用指定的assignment,在[assignment]一节中的配置,设置cachingFalse

更多关于不同后端的信息(以及配置属性),请参考:

 

例 2.1. 配置后端的Memcached

以下实例展示了如何配置memcached后端:

[cache]

enabled = true
backend = dogpile.cache.memcached
backend_argument = url:127.0.0.1:11211

你需要给backend_argument指定URL参数以访问memcached实例。


Questions? Discuss on ask.openstack.org
Found an error? Report a bug against this page


loading table of contents...