Jump to: navigation, search

Difference between revisions of "ReleaseNotes/Kilo/zh-hans"

 
(46 intermediate revisions by 2 users not shown)
Line 22: Line 22:
 
==== 纠删码(beta) ====
 
==== 纠删码(beta) ====
  
Swift现在支持纠删码(EC)存储策略类型。这样部署人员、以极少的RAW容量达到极高的可用性,如同在副本存储中一样。然后,EC需要更多的CPU和网络资源,所以并不适合所有应用场景。EC非常适合在一个独立的区域内极少访问的、大容量数据。
+
Swift现在支持纠删码(EC)存储策略类型。这样部署人员、以极少的RAW容量达到极高的可用性,如同在副本存储中一样。然而,EC需要更多的CPU和网络资源,所以并不适合所有应用场景。EC非常适合在一个独立的区域内极少访问的、大容量数据。
  
 
Swift纠删码的实现对于用户是透明的。对于副本存储和纠删码存储的类型,在API上没有任何区别。
 
Swift纠删码的实现对于用户是透明的。对于副本存储和纠删码存储的类型,在API上没有任何区别。
Line 34: Line 34:
 
复合型令牌允许其他OpenStack服务以客户端名义将数据存储于Swift中,所以无论是客户端还是服务在更新数据时,都不需要双方彼此的授权。
 
复合型令牌允许其他OpenStack服务以客户端名义将数据存储于Swift中,所以无论是客户端还是服务在更新数据时,都不需要双方彼此的授权。
  
一个典型的例子就是一个用户调用Nova存放一个VM的快照。Nova将指令传递给Glance,Glance将镜像写入Swift容器中的一组对象中。在这种场景下,用户在没有服务的合法的令牌情况下,无法直接修改快照数据。同样,服务自身也无法在没有用户合法令牌的情况下更新数据。但是数据的确存在于用户的Swift账户中,这样使得账户管理更简单。
+
一个典型的例子就是一个用户请求Nova存放一个VM的快照。Nova将请求传递给Glance,Glance将镜像写入Swift容器中的一组对象中。在这种场景下,用户没有来自服务的合法令牌时,无法直接修改快照数据。同样,服务自身也无法在没有用户合法令牌的情况下更新数据。但是数据的确存在于用户的Swift账户中,这样使得账户管理更简单。
  
 
更详细的文档请参阅http://swift.openstack.org/overview_backing_store.html
 
更详细的文档请参阅http://swift.openstack.org/overview_backing_store.html
Line 64: Line 64:
 
==== API v2.1 ====
 
==== API v2.1 ====
  
* 我们有了下一代Nova API的第一个更新版本v2.1。v2.1版本的目的是向回兼容v2.0版本,并且拥有增强的API校验。API所有更新的发现是通过微版本(microversion)发布。更多信息请参阅:http://specs.openstack.org/openstack/nova-specs/specs/kilo/implemented/api-microversions.html
+
* 我们有了下一代Nova API的第一个更新版本v2.1。v2.1版本的目的是向回兼容v2.0版本,并且拥有增强的API校验。API所有更新是通过发布微版本(microversion)发现的。更多信息请参阅:http://specs.openstack.org/openstack/nova-specs/specs/kilo/implemented/api-microversions.html
  
 
* kilo版本中,我们仍然使用v2.0 API的代码提供v2.0 API的请求。我们希望v2.1将能够同时为v2.0和v2.1请求提供服务。
 
* kilo版本中,我们仍然使用v2.0 API的代码提供v2.0 API的请求。我们希望v2.1将能够同时为v2.0和v2.1请求提供服务。
Line 78: Line 78:
 
** 对于单一的API,去掉了重复性规则
 
** 对于单一的API,去掉了重复性规则
 
** 所有的v2.1 API的策略规则使用'os_compute_api'作为前缀,以区别于v2 API。
 
** 所有的v2.1 API的策略规则使用'os_compute_api'作为前缀,以区别于v2 API。
** 之前,由于在db层面权限检查的硬编码(hard-code),部分Nova API并不支持策略的配置。总是需要admin用户权限。在Nova v2.1 API中硬编码(hard-code)权限检查被移除,使得API策略可配置。其余的硬编码(hard-code)将在Liberty版本被移除掉。
+
** 之前,由于在db层面权限检查的硬编码(hard-code),部分Nova API并不支持策略的配置。总是需要admin用户权限。部分在Nova v2.1 API中硬编码(hard-code)权限检查被移除,使得API策略可配置。其余的硬编码(hard-code)将在Liberty版本被移除掉。
  
 
==== 升级支持 ====
 
==== 升级支持 ====
  
* 我们减少了使用DB迁移脚本执行数据迁移,现在这部分使用一种"懒(lazy)"方式在DB的对象代码中完成。在nova-manage命令中可以帮助强制进行数据迁移。更多的设计请见:http://specs.openstack.org/openstack/nova-specs/specs/kilo/approved/flavor-from-sysmeta-to-blob.html
+
* 我们减少了使用DB迁移脚本执行数据迁移,现在这部分使用一种"懒(lazy)"方式在DB的对象代码中完成。在nova-manage命令中可以帮助强制进行数据迁移。更多的信息请见:http://specs.openstack.org/openstack/nova-specs/specs/kilo/approved/flavor-from-sysmeta-to-blob.html
  
* https://review.openstack.org/#/c/97946/ 增加了编号为267的数据库迁移脚本,这个脚本主要扫描为空(null)的instances.uuid记录并且一旦发现就会导致失败,因为迁移中需要保证instances.uuid非空并且在那个字段加入了UniqueConstraint限制。为了避免数据库迁移失败,提供了一个帮助脚本用来搜索空(null)的instances.uuid的记录。运行'nova-manage db sync'之前,运行帮助脚本‘nova-manage db null_instance_uuid_scan’,默认情况下,该脚本只会检索记录,并将结果输出,不会改变任何内容。如果在参数中加入--delete,就会自动删除所有instances.uuid为空的记录。
+
* https://review.openstack.org/#/c/97946/ 增加了编号为267的数据库迁移脚本,这个脚本主要扫描instances.uuid为空(null)的记录并且一旦发现就会导致失败,因为迁移中需要保证instances.uuid非空并且在那个字段加入了UniqueConstraint限制。为了避免数据库迁移失败,提供了一个帮助脚本用来搜索空(null)的instances.uuid的记录。运行'nova-manage db sync'之前,运行帮助脚本‘nova-manage db null_instance_uuid_scan’,默认情况下,该脚本只会检索记录,并将结果输出,不会改变任何内容。如果在参数中加入--delete,就会自动删除所有instances.uuid为空的记录。
  
 
==== 调度器(Scheduler) ====
 
==== 调度器(Scheduler) ====
  
* 一些列的性能优化
+
* 一系列的性能优化
 
* 我们在优化scheudler的代码结构,这将帮助我们能够演进和优化调度过程。这一点对于终端用户不可见。
 
* 我们在优化scheudler的代码结构,这将帮助我们能够演进和优化调度过程。这一点对于终端用户不可见。
  
Line 186: Line 186:
  
 
* 移除废弃的选项db_enforce_mysql_charset。 相应的commit: efeb69f9033a57a1c806f71ee3ed9fd3f4d2475e
 
* 移除废弃的选项db_enforce_mysql_charset。 相应的commit: efeb69f9033a57a1c806f71ee3ed9fd3f4d2475e
* metadef资源的通知现在被支持,相应的commit: fd547e3717dc4a3a92c1cb2104c18608a4f4872a
+
* 现在支持metadef资源的通知,相应的commit: fd547e3717dc4a3a92c1cb2104c18608a4f4872a
 
* VMware多datastore支持可以通过几个选项进行配置,相应的commit: 96fb31d7459bd4e05e052053177dce4d38cdaf90
 
* VMware多datastore支持可以通过几个选项进行配置,相应的commit: 96fb31d7459bd4e05e052053177dce4d38cdaf90
 
* 移除eventlet执行方法,并且增加一个新的Taskflow的执行方法,用于异步任务,相应的commits: ae3135e1d67df77697a24fddaee3efeadb34a0dd和 a39debfd55f6872e5f4f955b75728c936d1cee4b
 
* 移除eventlet执行方法,并且增加一个新的Taskflow的执行方法,用于异步任务,相应的commits: ae3135e1d67df77697a24fddaee3efeadb34a0dd和 a39debfd55f6872e5f4f955b75728c936d1cee4b
Line 258: Line 258:
 
=== 新功能 ===
 
=== 新功能 ===
  
==== 分层多租户 ====
+
==== 分层multitenancy ====
  
 
[http://specs.openstack.org/openstack/keystone-specs/api/v3/identity-api-v3.html#create-project 创建一个新的project]时,可以设置属性<code>parent_id</code>的值为一个已存在project,使
 
[http://specs.openstack.org/openstack/keystone-specs/api/v3/identity-api-v3.html#create-project 创建一个新的project]时,可以设置属性<code>parent_id</code>的值为一个已存在project,使
 
[http://specs.openstack.org/openstack/keystone-specs/api/v3/identity-api-v3.html#projects-v3-projects Projects]嵌套在其他projects下。
 
[http://specs.openstack.org/openstack/keystone-specs/api/v3/identity-api-v3.html#projects-v3-projects Projects]嵌套在其他projects下。
  
Role assignments can now be assigned to both [https://github.com/openstack/keystone-specs/blob/master/api/v3/identity-api-v3-os-inherit-ext.rst#assign-role-to-user-on-projects-in-a-subtree users] and [https://github.com/openstack/keystone-specs/blob/master/api/v3/identity-api-v3-os-inherit-ext.rst#assign-role-to-group-on-projects-in-a-subtree groups] on subtrees in the project hierarchy.
+
Role现在可以分配给project分层子树上的 [https://github.com/openstack/keystone-specs/blob/master/api/v3/identity-api-v3-os-inherit-ext.rst#assign-role-to-user-on-projects-in-a-subtree users][https://github.com/openstack/keystone-specs/blob/master/api/v3/identity-api-v3-os-inherit-ext.rst#assign-role-to-group-on-projects-in-a-subtree groups]
  
This feature will require corresponding support across other OpenStack services (such as hierarchical quotas) in order to become broadly useful.
+
这项功能还需要其他Openstack服务(例如hierarchical quotas)的相应支持使其广泛的生效
  
 
==== Fernet tokens ====
 
==== Fernet tokens ====
  
Unlike UUID tokens which must be persisted to a database, Fernet tokens are entirely non-persistent. Deployers can enable the Fernet token provider using <code> [token] provider = keystone.token.providers.fernet.Provider</code> in <code>keystone.conf</code>.
+
区别于UUID tokens只能持久化存入数据库,Fernet tokens完全不需要持久化。部署人员可以通过设置<code>keystone.conf</code>中的<code> [token] provider = keystone.token.providers.fernet.Provider</code>来启用Fernet token
  
Fernet tokens require symmetric encryption keys which can be established using <code>keystone-manage fernet_setup</code> and periodically rotated using <code>keystone-manage fernet_rotate</code>. These keys must be shared by all Keystone nodes in a multi-node (or multi-region) deployment, such that tokens generated by one node can be immediately validated against another.
+
Fernet tokens需要symmetric encryption keys,这些keys可以使用<code>keystone-manage fernet_setup</code>建立, 并且使用<code>keystone-manage fernet_rotate</code>周期性地轮换。这些keys必须被在一个multi-node(或者multi-region)部署中的所有Keyston nodes共享,这样就能使一个node生成的tokens可以立即被其他节点验证。
  
 
==== Identity federation ====
 
==== Identity federation ====
  
* Keystone can now act as a [http://docs.openstack.org/developer/keystone/configure_federation.html#keystone-as-an-identity-provider-idp federated identity provider (IdP)] for another instance of Keystone by issuing SAML assertions for local users, which may be ECP-wrapped.
+
* Keystone现在可以作为[http://docs.openstack.org/developer/keystone/configure_federation.html#keystone-as-an-identity-provider-idp 联邦身份提供者(IdP: federated identity provider)]为另外一个Keystone实例提供本地用户的SAML断言(SAML assertions),可能是ECP封装(ECP-wrapped)。
* Added support for [http://docs.openstack.org/developer/keystone/extensions/openidc.html OpenID Connect] as a federated identity authentication mechanism.
+
* 支持[http://docs.openstack.org/developer/keystone/extensions/openidc.html OpenID连接]作为联邦身份鉴权机制(federated identity authentication mechanism)。
* Added the ability to associate many "Remote IDs" to a single identity provider in Keystone. This will help in a case where many identity providers use a common mapping.
+
* 在Keystone中增加对多"Remote IDs"关联到单一的鉴权提供者。这有助于有多身份提供者使用一个通用的映射。
* Added the ability for a user to authenticate via a web browser with an existing IdP, through a Single Sign-On page.
+
* 增加为已经拥有Idp用户通过web浏览器鉴权的能力,实现单点登录。
* Federated tokens now use the <code>token</code> authentication method, although both <code>mapped</code> and <code>saml2</code> remain available.
+
* 联邦令牌(federated tokens)现在使用<code>token</code>鉴权方法,<code>mapped</code><code>saml2</code>仍然有效。
* Federated users may now be mapped to existing local identities.
+
* 联邦用户(federated users)可以映射到本地已经存在的身份上。
* Groups specified in the mapping rulesets can be identified by name and domain.
+
* 在规则集(rulesets)映射中定义的组可以用名字和域鉴权
* Groups appearing in federated identity assertions may now be automatically mapped as locally existing groups with local user membership mappings (filtered by white and blacklists).
+
* 出现在联邦身份断言(federated identity assertions)中的组,可以被自动的映射为本地已经存在的组中,并且拥有本地用户关系映射(通过白名单和黑名单过滤)
  
 
==== LDAP ====
 
==== LDAP ====
  
* Filter parameters specified by API users are now processed by LDAP itself, instead of by Keystone.
+
* 用户指定的API过滤项现在由LDAP本身处理,现在由keystone取代
* ''Experimental'' support was added to store domain-specific identity backend [http://docs.openstack.org/developer/keystone/configuration.html#domain-specific-drivers configuration in SQL] using the HTTP API. The primary use case for this is to create a new domain with the HTTP API, and then immediately configure a domain-specific LDAP driver for it without restarting Keystone.
+
* "试验性"支持存储指定域(domain-specific)鉴权后端HTTP API[http://docs.openstack.org/developer/keystone/configuration.html#domain-specific-drivers 在SQL中配置]。这个主要用户场景是,当使用HTTP API创建一个新的域(domain),并且马上配置一个指定域(domain-specific)的LDAP驱动,而不需要重启keystone。
  
==== Authorization ====
+
==== 鉴权 ====
  
* The "assignment" backend has been split into a "resource" backend (containing domains, projects, and roles) and an "assignment" backend, containing the authorization mapping model.
+
* "分配(assignment)"后端已经被分离到"资源(resource)"后端(包含domains, projects和roles),并且"分配(assignment)"的后端包含了授权的映射模型
* Added support for trust redelegation. If allowed when the trust is initially created, a trustee can redelegate the roles from the trust via another trust.
+
* 支持再次信任授权。当信任关系建立后,被信任人可以通过另外一个信任重新授权该信任的角色。
* Added support for explicitly requesting an unscoped token from Keystone, even if the user has a <code>default_project_id</code> attribute set.
+
* Keystone支持无范围(unscoped)的token请求,即使用户设置了<code>default_project_id</code>
* Deployers may now opt into disallowing the re-scoping of scoped tokens by setting <code>[token] allow_rescope_scoped_token = false</code> in <code>keystone.conf</code>.
+
* 部署人员可以修改配置来限制已经有范围的令牌重新获取范围(re-scoping),在<code>keystone.conf</code>设置<code>[token] allow_rescope_scoped_token = false</code>
  
  
=== Upgrade Notes ===
+
=== 升级提示 ===
  
* XML support in Keystone has been removed as of Kilo. When upgrading from Juno to Kilo, it is recommended that references to XML and XmlBodyMiddleware be removed from the [https://github.com/openstack/keystone/blob/master/etc/keystone-paste.ini Keystone Paste configuration]. This includes removing the XML middleware filters and the references from the public_api, admin_api, api_v3, public_version_api, admin_version_api and any other pipelines that may contain the XML filters.
+
* Keystone的XML支持将在Kilo版本删除。当从Juno升级到Kilo,建议将XML和XmlBodyMiddleware相关的信息从[https://github.com/openstack/keystone/blob/master/etc/keystone-paste.ini Keystone Paste p配置]删除。这包含删除XML中间层过滤器以及public_api, admin_api, api_v3, public_version_api, admin_version_api相关的和其他包含XML过滤器的流水线(pipelines)。
* All previous extensions (OS-FEDERATION, OS-OAUTH1, OS-ENDPOINT-POLICY and OS-EP-FILTER) are now enabled by default, and are [http://docs.openstack.org/developer/keystone/extensions.html correspondingly marked] as either "experimental" or "stable".
+
* 所有之前的扩展(OS-FEDERATION, OS-OAUTH1, OS-ENDPOINT-POLICY and OS-EP-FILTER)现在被默认支持,并且在[http://docs.openstack.org/developer/keystone/extensions.html 相关标记]中,标记为"试验"或者"稳定"
* [http://specs.openstack.org/openstack/openstack-specs/specs/no-downward-sql-migration.html SQL Schema Downgrades are no longer supported]. This change is the result of evaluation that downward SQL migrations are not well tested and become increasingly difficult to support with the volume of data-change that occurs in many of the migrations.
+
* [http://specs.openstack.org/openstack/openstack-specs/specs/no-downward-sql-migration.html 不在支持SQL结构的回退]。这个变化主要是回退并没有经过良好的测试,而且在很多迁移中需要支持数据变化,难度越来越大。
* The following python libraries are now required: [https://pypi.python.org/pypi/cryptography cryptography], [https://pypi.python.org/pypi/msgpack-python msgpack-python], [https://pypi.python.org/pypi/pysaml2 pysaml2] and [https://pypi.python.org/pypi/oauthlib oauthlib].
+
* 需要以下Python库:[https://pypi.python.org/pypi/cryptography cryptography], [https://pypi.python.org/pypi/msgpack-python msgpack-python], [https://pypi.python.org/pypi/pysaml2 pysaml2] [https://pypi.python.org/pypi/oauthlib oauthlib]
* <code>keystone.middleware.RequestBodySizeLimiter</code> is now deprecated in favor of <code>oslo_middleware.sizelimit.RequestBodySizeLimiter</code> and will be removed in Liberty.
+
* <code>keystone.middleware.RequestBodySizeLimiter</code>被废弃,取而代之的是 <code>oslo_middleware.sizelimit.RequestBodySizeLimiter</code> 并且在Liberty移除。
* Eventlet-specific configuration options such as <code>public_bind_host</code>, <code>bind_host</code>, <code>admin_bind_host</code>, <code>admin_port</code>, <code>public_port</code>, <code>public_workers</code>, <code>admin_workers</code>, <code>tcp_keepalive</code>, <code>tcp_keepidle</code> have been moved from the <code>[DEFAULT]</code> configuration section to a new configuration section called <code>[eventlet_server]</code>. Similarly, Eventlet-specific SSL configuration options such as <code>enable</code>, <code>certfile</code>, <code>keyfile</code>, <code>ca_certs</code>, <code>cert_required</code> have been moved from the <code>[ssl]</code> configuration section to a new configuration section called <code>[eventlet_server_ssl]</code>.
+
* Eventlet相关的配置项,如:<code>public_bind_host</code>, <code>bind_host</code>, <code>admin_bind_host</code>, <code>admin_port</code>, <code>public_port</code>, <code>public_workers</code>, <code>admin_workers</code>, <code>tcp_keepalive</code>, <code>tcp_keepidle</code>被从<code>[DEFAULT]</code>移除掉,移到了<code>[eventlet_server]</code>. 相似的,Eventlet相关的SSL配置选项如:<code>enable</code>, <code>certfile</code>, <code>keyfile</code>, <code>ca_certs</code>, <code>cert_required</code>已经从<code>[ssl]</code>配置项移动到<code>[eventlet_server_ssl]</code>.
* <code>keystone.token.backends.sql</code> has been removed in favor of <code>keystone.token.persistence.backends.sql</code>.
+
* <code>keystone.token.backends.sql</code><code>keystone.token.persistence.backends.sql</code>取代.
* <code>keystone.token.backends.kvs</code> has been removed in favor of <code>keystone.token.persistence.backends.kvs</code>.
+
* <code>keystone.token.backends.kvs</code><code>keystone.token.persistence.backends.kvs</code>取代.
* <code>keystone.token.backends.memcache</code> has been removed in favor of <code>keystone.token.persistence.backends.memcache</code>.
+
* <code>keystone.token.backends.memcache</code><code>keystone.token.persistence.backends.memcache</code>取代.
* <code>keystone.assignment.backends.kvs</code> has been removed in favor of <code>keystone.assignment.backends.sql</code>.
+
* <code>keystone.assignment.backends.kvs</code><code>keystone.assignment.backends.sql</code>取代.
* <code>keystone.identity.backends.kvs</code> has been removed in favor of <code>keystone.identity.backends.sql</code>.
+
* <code>keystone.identity.backends.kvs</code><code>keystone.identity.backends.sql</code>取代.
* <code>keystone.contrib.stats.core.StatsMiddleware</code> has been removed in favor of external tooling.
+
* <code>keystone.contrib.stats.core.StatsMiddleware</code>被外部工具取代.
* <code>keystone.catalog.backends.templated.TemplatedCatalog</code> has been removed in favor of <code>keystone.catalog.backends.templated.Catalog</code>.
+
* <code>keystone.catalog.backends.templated.TemplatedCatalog</code><code>keystone.catalog.backends.templated.Catalog</code>取代.
* <code>keystone.contrib.access.core.AccessLogMiddleware</code> has been removed in favor of external access logging.
+
* <code>keystone.contrib.access.core.AccessLogMiddleware</code>被外部访问日志取代.
* <code>keystone.trust.backends.kvs</code> has been removed in favor of <code>keystone.trust.backends.sql</code>.
+
* <code>keystone.trust.backends.kvs</code><code>keystone.trust.backends.sql</code>取代.
* <code>[catalog] endpoint_substitution_whitelist</code> has been removed from <code>keystone.conf</code> as part of a related security hardening effort.
+
* <code>[catalog] endpoint_substitution_whitelist</code>已经从<code>keystone.conf</code>删除,作为加强安全的一部分。
* <code>[signing] token_format</code> has been removed from <code>keystone.conf</code> in favor of <code>[token] provider</code>.
+
* <code>[signing] token_format</code>被从<code>keystone.conf</code>删除,取代的是<code>[token] provider</code>.
  
== OpenStack Network Service (Neutron) ==
+
== OpenStack网络服务(Neutron) ==
  
=== Key New Features ===
+
=== 新功能 ===
  
* DVR now supports VLANs in addition to VXLAN/GRE
+
* DVR现在除了VXLAN/GRE外还支持VLANs
* ML2 Hierarchical Port Binding
+
* ML2分层端口绑定(Port Binding)
* New LBaaS Version 2 API
+
* 新的V2版本的LBaas(负载均衡即服务)API
* Portsecurity support for the OVS ML2 Driver
+
* 支持OVS ML2驱动的端口安全
  
* New Plugins supported in Kilo include the following:
+
* 在Kilo版本中支持的新插件:
 
** A10 Networks LBaaS V2 Driver
 
** A10 Networks LBaaS V2 Driver
 
** Brocade LBaaS V2 Driver
 
** Brocade LBaaS V2 Driver
Line 340: Line 340:
 
** IPSEC Strongswan VPNaaS Driver
 
** IPSEC Strongswan VPNaaS Driver
  
=== Known Issues ===
+
=== 已知问题 ===
  
* The Firewall-as-a-Service project is still marked as experimental for the Kilo release.
+
* 在Kilo版本中,防火墙即服务仍然标记为试验性功能
 
* Bug [https://bugs.launchpad.net/neutron/+bug/1438819 1438819]
 
* Bug [https://bugs.launchpad.net/neutron/+bug/1438819 1438819]
** When a new subnet is created on an external network, all existing routers with gateways on the network will get a new address allocated from it. For IPv4 networks, this could consume the entire subnet for router gateway ports.
+
** 当创建一个新的可访问外部网络的子网,所有与该网络相关的、已经存在的具有网关的路由都会得到一个新的地址。对于IPv4网络,这样会为路由的网关消耗掉子网中的全部接口。
  
=== Upgrade Notes ===
+
=== 升级提示 ===
  
From Havana, Neutron no longer supported an explicit lease database (https://bugs.launchpad.net/bugs/1202392). This left dead code including unused environment variable. In order to remove the dead code (https://review.openstack.org/#/c/152398/), a change to the dhcp.filter is required, so that line:
+
从Havana版本开始,Neutron不再支持存放指定的租约(https://bugs.launchpad.net/bugs/1202392)。这部分剩余的残留代码包含了一些不曾使用的环境变量。为了删除掉这些残余代码 (https://review.openstack.org/#/c/152398/),需要修改dhcp.filter,所以这一行:
  
 
'''dnsmasq: EnvFilter, dnsmasq, root, NEUTRON_NETWORK_ID='''
 
'''dnsmasq: EnvFilter, dnsmasq, root, NEUTRON_NETWORK_ID='''
  
Be replaced by:
+
需要被替换为:
  
 
'''dnsmasq: CommandFilter, dnsmasq, root'''
 
'''dnsmasq: CommandFilter, dnsmasq, root'''
  
After advanced services were split into separate packages and received their own service configuration files (specifically, etc/neutron/neutron_lbaas.conf, etc/neutron/neutron_fwaas.conf and etc/neutron/neutron_vpnaas.conf), active service provider configuration can be different after upgrade (specifically, default load balancer (haproxy) and vpn (openswan) providers can be enabled for you even though you previously disabled them in neutron.conf). Please make sure you review configuration after upgrade so that it reflects the desired state of service providers.
+
在一些高级服务被划分到独立的包,并且有自己的配置文件后(特别是:etc/neutron/neutron_lbaas.conf, etc/neutron/neutron_fwaas.conf and etc/neutron/neutron_vpnaas.conf),当前活跃的服务在升级后,配置会产生变化(特别是,默认的负载均衡软件(haxproxy)和vpn(oepnswn)在升级后会被开启,尽管你之前可能在neutron.conf关闭了他们)。请务必在升级后检查你的配置,保证你的新配置和你之前想要启动的服务一致。
  
Note: this will have no effect if the related service plugin is not loaded in neutron.conf.
+
注意:如果在neutron.conf没有加载相关插件,不会受到影响。
  
  
* The default value of api_workers is now equal to the number of CPUs in the host. If you currently use the default, ensure you set api_workers to a reasonable number for your installation. (https://review.openstack.org/#/c/140493/)
+
* 默认的api workers的数量变为物理主机CPU的个数。如果你当前用的是默认值,需要保证为你的api worker设置一个合理的数量。(https://review.openstack.org/#/c/140493/)
* The neutron.allow_duplicate_networks config option is deprecated in Kilo and will be removed in Liberty where the default behavior will be to just allow multiple ports attached to an instance on the same network in Neutron. (https://review.openstack.org/163581)
+
* neutron. allow_duplicate_networks配置项在Kilo版本废弃并且将从Liberty移除,默认的行为是允许同一虚拟机可以绑定在同一子网的多个接口。(https://review.openstack.org/163581)
*   The linuxbridge agent now enables VXLAN by default (https://review.openstack.org/160826)
+
* linuxbridge agent现在默认支持VXLAN(https://review.openstack.org/160826)
* neutron-ns-metadata-proxy can now be run as non-root (https://review.openstack.org/147437)
+
* neutron-ns-metadata-proxy可以使用非root用户执行(https://review.openstack.org/147437)
  
=== Other Notes (Deprecation/EOL etc) ===
+
=== 其他的注意信息(废弃/终止等) ===
  
* Deprecation
+
* 废弃
** Brocade Monolithic plugin for Brocade's VDX/VCS series of hardware switches will be deprecated in the L-Release. The functionality provided by this plugin is now addressed by the ML2 Driver available for the VDX series of hardware. The plugin is slated for removal after this release cycle.
+
** Brocade的VDX/VCS系列硬件的Monolithic插件将在L版本中废弃。原有插件提供的功能已经在ML2中实现。插件将在这个更新之后被删除。
** The monolithic Cisco Meta plugin for Nexus1000V will be deprecated in the L-Release. The functionality provided by this plugin is now available with the Cisco Nexus1000V ML2 mechanism driver. The monolithic plugin is slated for removal after this release cycle.
+
** Cisco的Nexus1000V Meta插件将在L版本中废弃。原有插件功能已经在ML2的Cisco Nexus1000V策略驱动实现。插件将在这个更新之后被删除。
  
 
== OpenStack块存储(Cinder) ==
 
== OpenStack块存储(Cinder) ==
Line 395: Line 395:
 
=== 新功能 ===
 
=== 新功能 ===
  
* Support to add jitter to polling cycles to ensure pollsters are not querying service's api at the same time
+
* 支持在polling循环中增加抖动,保证pollsters不要在同一时间查询服务的API
* Ceilometer API RBAC support
+
* 支持Ceilometer API RBAC(基于权限的访问控制)
* Improved Event support:
+
* 优化的事件支持:
** Multi-pipeline support to enable unique processing and publishing of events
+
** 多流水线(Multi-pipeline)支持开启唯一的处理和发布的事件
** Enabled ability to capture raw notification messages for auditing and postmortem analysis
+
** 支持捕获RAW消息格式,便于审计和事后分析
** Support for persisting events into ElasticSearch
+
** 在弹性搜索中支持持久化事件
** Publishing support to database, http, file, kafka and oslo.messaging supported message queues
+
** 发布支持对数据库、http、分拣、kafka和oslo.messaging支持的消息队列
** Option to split off the events persistence into a separate database
+
** 增加一个选项,可以将消息的持久化数据存放在一个单独的数据库中
** Telemetry now supports to collect and store all the event type meters as events. A new option, ''disable_non_metric_meters'', was added to the configuration in order to provide the possibility to turn off storing these events as samples. For further information please see the [http://docs.openstack.org/trunk/config-reference/content/ch_configuring-openstack-telemetry.html Telemetry Configuration Reference]
+
** Ceilometer现在支持使用时间(events)采集和存储所有事件类型的测量(meters)。一个新的选项,''disable_non_metric_meters''被加入到配置中,为了关闭将这些事件作为Samples存取的开关。更多信息请参阅[http://docs.openstack.org/trunk/config-reference/content/ch_configuring-openstack-telemetry.html Ceilometer配置指南]
** The Administrator Guide in OpenStack Manuals was updated with a new [http://docs.openstack.org/admin-guide-cloud/content/section_telemetry-events.html Events section], where you can find further information about this functionality.
+
** OpenStack手册中的管理员指南增加了新的[http://docs.openstack.org/admin-guide-cloud/content/section_telemetry-events.html 事件的选择], 你能通过这篇文档获取更多信息。
* Improved pipeline publishing support:
+
* 优化了流水线(pipeline)发布支持:
** Support to publish events and samples to Kafka or HTTP targets
+
** 支持将事件(events)和samples发布到Kafka或者Http目标中
** Publish data to multiple queues
+
** 将数据发送到多个队列中
* Additional meters
+
* 更多的测量(meters)
** memory and disk meters for Hyper-V
+
** Hyper-V的内存和磁盘测量(meters)
** disk meters for LibVirt
+
** LibVirt的磁盘测量(meters)
** power and thermal related IPMI meters, more meters from NodeManager
+
** IPMI相关的电源和热量的测量(meters),更多的测量指标查看NodeManager
** ability to meter Ceph
+
** Ceph测量
* IPv6 support enabled in Ceilometer udp publisher and collector
+
* 在Ceilometer中upd的发布和采集支持IPv6格式
* [http://launchpad.net/gnocchi Gnocchi] dispatch support for ceilometer-collector
+
* [http://launchpad.net/gnocchi Gnocchi]支持ceilometer-collector分派
* Self-disabled pollster mechanism
+
* pollster自我关闭机制
  
  
=== Upgrade Notes ===
+
=== 升级提示 ===
  
 
* 失效的测量(meters):
 
* 失效的测量(meters):
Line 427: Line 427:
 
   samples:
 
   samples:
 
   ceilometer sample-list -m instance -q metadata.instance_type=<value>
 
   ceilometer sample-list -m instance -q metadata.instance_type=<value>
* 用户Swift测量的中间件之前被打包到Ceilometer中,现在被废弃了。现在被分拆到独立的库:ceilometermiddleware
+
* 用于Swift测量的中间件之前被打包到Ceilometer中,现在被废弃了。现在被分拆到独立的库:ceilometermiddleware
 
** Juno配置: http://docs.openstack.org/juno/install-guide/install/apt/content/ceilometer-swift.html
 
** Juno配置: http://docs.openstack.org/juno/install-guide/install/apt/content/ceilometer-swift.html
 
** Kilo配置: http://docs.openstack.org/kilo/install-guide/install/apt/content/ceilometer-swift.html
 
** Kilo配置: http://docs.openstack.org/kilo/install-guide/install/apt/content/ceilometer-swift.html
Line 471: Line 471:
  
 
* 下列资源被废弃了OS::Heat::HARestarter和OS::Heat::CWLiteAlarm
 
* 下列资源被废弃了OS::Heat::HARestarter和OS::Heat::CWLiteAlarm
 +
* CloudWatch API (heat-api-cw)
  
  
Line 480: Line 481:
 
** 当前一个API调用支持从一个单master节点创建n个副本
 
** 当前一个API调用支持从一个单master节点创建n个副本
 
** 使用新的'eject-master' API,我们也能支持从一个未响应的master节点,恢复到最近更新的slave节点上   
 
** 使用新的'eject-master' API,我们也能支持从一个未响应的master节点,恢复到最近更新的slave节点上   
* Trove guest支持以下新的数据存储:
+
* Trove guest管理支持以下新的数据存储:
 
**Vertica, and Vertica Cluster
 
**Vertica, and Vertica Cluster
 
**DB2
 
**DB2
Line 487: Line 488:
 
** 新的管理API用来获取列表或查看已经删除的trove虚拟机
 
** 新的管理API用来获取列表或查看已经删除的trove虚拟机
 
** 新的管理API用来ping一个数据存储的guest agent,基于RPC机制
 
** 新的管理API用来ping一个数据存储的guest agent,基于RPC机制
* Horizon支持重置Trove实例的规格
+
* Horizon支持重置Trove实例(instances)的规格
* 用户现在可以编辑/更新Trove虚拟机的名字
+
* 用户现在可以编辑/更新Trove虚拟机(instances)的名字
 
* 集成跨项目的OpenStack性能分析库(OSProfiler)
 
* 集成跨项目的OpenStack性能分析库(OSProfiler)
  
Line 507: Line 508:
 
** 添加了Apache Hadoop 2.6.0, Apache Hadoop 2.4.1被废弃
 
** 添加了Apache Hadoop 2.6.0, Apache Hadoop 2.4.1被废弃
 
** 新的服务CDH插件加入HDFS, YARN, Spark, Oozie, HBase, Zookeeper和其他服务  
 
** 新的服务CDH插件加入HDFS, YARN, Spark, Oozie, HBase, Zookeeper和其他服务  
* 为了更好的浮动IP的利用率,增加非直接的虚拟机访问
+
* 增加非直接的虚拟机(instances)访问,以更好地利用floating ip
 
* 增加事件日志支持注入过程中的详细信息
 
* 增加事件日志支持注入过程中的详细信息
 
* 每个插件可选择的默认节点组和集群模板
 
* 每个插件可选择的默认节点组和集群模板
Line 529: Line 530:
 
=== 新功能 ===
 
=== 新功能 ===
  
==== 状态机 ====
+
==== 状态机(State Machine) ====
  
 
Ironic现在使用一个正式的模式管理每个节点的逻辑状态。<ref name="states">[http://specs.openstack.org/openstack/ironic-specs/specs/kilo/new-ironic-state-machine.html#proposed-change]Ironic新的状态机</ref>。这样就开启了两个附属的进程:'''清理(cleaning)''' and '''检查(inspection)'''
 
Ironic现在使用一个正式的模式管理每个节点的逻辑状态。<ref name="states">[http://specs.openstack.org/openstack/ironic-specs/specs/kilo/new-ironic-state-machine.html#proposed-change]Ironic新的状态机</ref>。这样就开启了两个附属的进程:'''清理(cleaning)''' and '''检查(inspection)'''
* 项目间的自动磁盘清除默认被支持了。这可能需要为'''清理(cleaning)'''扩展额外的步骤,例如重新申请fireware,重置BIOS设置等<ref name="cleaning">[http://docs.openstack.org/developer/ironic/deploy/cleaning.html]节点清理</ref>
+
* 现在默认支持项目间的自动磁盘清除。这可能需要为'''清理(cleaning)'''扩展额外的步骤,例如重新申请fireware,重置BIOS设置等<ref name="cleaning">[http://docs.openstack.org/developer/ironic/deploy/cleaning.html]节点清理</ref>
  
 
* 硬件的'''检查(inspect)''',同时支持带内(in-band)和带外(out-of-band)两种方式。这些方法可能会自动更新节点设置。<ref name="inspect">[http://docs.openstack.org/developer/ironic/deploy/install-guide.html#hardware-inspection]硬件检查</ref>
 
* 硬件的'''检查(inspect)''',同时支持带内(in-band)和带外(out-of-band)两种方式。这些方法可能会自动更新节点设置。<ref name="inspect">[http://docs.openstack.org/developer/ironic/deploy/install-guide.html#hardware-inspection]硬件检查</ref>
Line 538: Line 539:
 
==== 版本头信息  ====
 
==== 版本头信息  ====
  
Ironic REST API在HTTP[S]请求的头信息中增加了一个新的''X-OpenStack-Ironic-API-Version''。这个头信息允许客户端和服务端在协商时支持一个统一的借口。<ref name="api-version">[http://specs.openstack.org/openstack/ironic-specs/specs/kilo/api-microversions.html]REST API "micro"版本 </ref>。如果头信息缺失,REST服务会默认进入兼容模式,并且产生一个兼容Juno客户端的响应。这种模式是被限制访问Kilo提供的最新功能的。
+
Ironic REST API在HTTP[S]请求的头信息中增加了一个新的''X-OpenStack-Ironic-API-Version''。这个头信息允许客户端和服务端在协商时支持一个统一的接口。<ref name="api-version">[http://specs.openstack.org/openstack/ironic-specs/specs/kilo/api-microversions.html]REST API "micro"版本 </ref>。如果头信息缺失,REST服务会默认进入兼容模式,并且产生一个兼容Juno客户端的响应。这种模式是被限制访问Kilo提供的最新功能的。
  
 
==== 硬件驱动更新 ====
 
==== 硬件驱动更新 ====
Line 601: Line 602:
 
* 全新的 [http://docs.openstack.org docs.openstack.org]访问页面和全新设计的 [http://docs.openstack.org/user-guide/ 用户使用指南(End User Guide)]和 [http://docs.openstack.org/user-guide-admin/ 管理员指南(Admin User Guide)]
 
* 全新的 [http://docs.openstack.org docs.openstack.org]访问页面和全新设计的 [http://docs.openstack.org/user-guide/ 用户使用指南(End User Guide)]和 [http://docs.openstack.org/user-guide-admin/ 管理员指南(Admin User Guide)]
 
* 第一个版本的 [http://docs.openstack.org/networking-guide/ 网络指南(Networking Guide)]
 
* 第一个版本的 [http://docs.openstack.org/networking-guide/ 网络指南(Networking Guide)]
* 将RST迁移至 [http://docs.openstack.org/user-guide/ 用户使用指南(End User Guide)]和 [http://docs.openstack.org/user-guide-admin/ 管路员指南(Admin User Guide)]
+
* 将RST迁移至 [http://docs.openstack.org/user-guide/ 用户使用指南(End User Guide)]和 [http://docs.openstack.org/user-guide-admin/ 管理员指南(Admin User Guide)]
 
* 全新的专业团队:
 
* 全新的专业团队:
 
** 安装指南(Install Guides)
 
** 安装指南(Install Guides)

Latest revision as of 02:44, 4 May 2015

Other languages:
English • ‎日本語 • ‎한국어 • ‎русский • ‎中文(简体)‎ • ‎中文(台灣)‎

OpenStack 2015.1.0 (Kilo)更新日志

以此OpenStack Kilo版本的更新日志告慰Chris Yeoh在天之灵,虽然你已远离你的家人和我们,但你的心永远与我们同在。

Contents


OpenStack对象存储(Swift)

新功能

纠删码(beta)

Swift现在支持纠删码(EC)存储策略类型。这样部署人员、以极少的RAW容量达到极高的可用性,如同在副本存储中一样。然而,EC需要更多的CPU和网络资源,所以并不适合所有应用场景。EC非常适合在一个独立的区域内极少访问的、大容量数据。

Swift纠删码的实现对于用户是透明的。对于副本存储和纠删码存储的类型,在API上没有任何区别。

为了支持纠删码,Swift现在需要依赖PyECLib和liberasurecode。liberasurecode是一个可插件式的库,允许在你选择的库中实现EC算法。

更详细文档请参阅 http://swift.openstack.org/overview_erasure_code.html

复合型令牌(Composite tokens)

复合型令牌允许其他OpenStack服务以客户端名义将数据存储于Swift中,所以无论是客户端还是服务在更新数据时,都不需要双方彼此的授权。

一个典型的例子就是一个用户请求Nova存放一个VM的快照。Nova将请求传递给Glance,Glance将镜像写入Swift容器中的一组对象中。在这种场景下,用户没有来自服务的合法令牌时,无法直接修改快照数据。同样,服务自身也无法在没有用户合法令牌的情况下更新数据。但是数据的确存在于用户的Swift账户中,这样使得账户管理更简单。

更详细的文档请参阅http://swift.openstack.org/overview_backing_store.html

更小规模、不平衡集群的数据位置更新

Swift数据的存放位置现在根据硬件权重决定。当前,允许运维人员逐渐的添加新的区域(zones)和地域(regions),而不需要立即触发大规模数据迁移。同时,如果一个集群是非平衡的(例如,在一个区域(zones)的集群中,其中一个的容量是另外一的两倍),Swift会更有效的使用现有空间并且当副本在集群空间不足时发出警告。

全局性集群复制优化

区域(regions)之间复制时,每次复制只迁移一个副本。这样远程的区域(region)可以在内部复制,避免更多的数据在广域网(WAN)拷贝。

已知问题

  • 作为beta更新,纠删码(EC)的功能接近完成,但是对于某些功能仍然不完整(像多范围(multi-range)读取),并且没有一个完整的性能测算。这个功能为了持久性依赖于ssync。部署人员督促我们做更大规模的测试,并且不要在生产环境部署中使用纠删码存储策略。

升级提示

像往常一样,你能在不影响最终用户体验的前提下,升级到这个版本的Swift。

  • 为了支持纠删码,Swift需要一个新的依赖PyECLib(和liberasurecode等)。并且eventlet的最低版本要求也升高了。


OpenStack 计算服务(Nova)

新功能

API v2.1

  • kilo版本中,我们仍然使用v2.0 API的代码提供v2.0 API的请求。我们希望v2.1将能够同时为v2.0和v2.1请求提供服务。
  • liberty v2.0现在被冻结了,所有功能被添加在v2.1 API中使用微版本(microversions)机制实现。kilo版本中微版本(microversion)更新包括:
    • 扩展keypair API支持x509证书,能够和Windows WinRM使用,这个功能是v2.1 API中第一个被以微版本(microversions)添加的功能。
    • 在os-extended-server-attributes暴露扩展属性
  • python-novaclient现在还不支持v2.1 API
  • Nova v2.1 API的策略执行得到优化。
    • 只在API入口执行策略
    • 对于单一的API,去掉了重复性规则
    • 所有的v2.1 API的策略规则使用'os_compute_api'作为前缀,以区别于v2 API。
    • 之前,由于在db层面权限检查的硬编码(hard-code),部分Nova API并不支持策略的配置。总是需要admin用户权限。部分在Nova v2.1 API中硬编码(hard-code)权限检查被移除,使得API策略可配置。其余的硬编码(hard-code)将在Liberty版本被移除掉。

升级支持

  • https://review.openstack.org/#/c/97946/ 增加了编号为267的数据库迁移脚本,这个脚本主要扫描instances.uuid为空(null)的记录并且一旦发现就会导致失败,因为迁移中需要保证instances.uuid非空并且在那个字段加入了UniqueConstraint限制。为了避免数据库迁移失败,提供了一个帮助脚本用来搜索空(null)的instances.uuid的记录。运行'nova-manage db sync'之前,运行帮助脚本‘nova-manage db null_instance_uuid_scan’,默认情况下,该脚本只会检索记录,并将结果输出,不会改变任何内容。如果在参数中加入--delete,就会自动删除所有instances.uuid为空的记录。

调度器(Scheduler)

  • 一系列的性能优化
  • 我们在优化scheudler的代码结构,这将帮助我们能够演进和优化调度过程。这一点对于终端用户不可见。

Cells v2

  • 已经开始添加了对cell v2版本的支持,但是还没达到能够使用的程度。
  • 新的'nova-manage api_db sync' 和 'nova-manage api_db version'命令用于支持cell新的api数据库结构,但是还没有任何代码使用该数据库,所有没有必要建立。

计算资源驱动

Hyper-V

Libvirt (KVM)
VMware
Ironic

已知问题

  • Evacuate恢复部分代码存在损坏数据的潜在危险。在nova-compute启动过程中,虚拟化端会汇报instance的状态,用于检查物理机发生故障过程中,虚拟机是否被移走了(i.e. 被evacuated)。如果此时发现的确发生迁移了,那么本地的数据就会被彻底删除。这样就存在潜在的可能出现选择错误,虚拟机被错误的销毁。在libvirt节点上,这样的情况可能会由于改变系统的主机名引发。在vmware节点中,这个可能会由于尝试从两个不同的主机(不同的主机名)管理同一个vcenter引发。这个Bug可能会在Liberty中得到修复,但是在当前部署中,关闭这种行为的建议是设置destroy_after_evacuate=False。

注意:这个并不是回归(regression)并且在evacuate的设计中已经提到这个瑕疵。这个并不容易修复,所以使用这种方式绕过去(workaround)解决这个潜在的数据损坏。在liberty的修复记录:https://review.openstack.org/#/c/161444/。

  • 生成的配置文件样例可能会缺少某些oslo相关的配置

升级提示

下面是你在升级中需要了解的内容。在可能的情况下,git提交的hash编码会提供你找到更多更详细的信息:

  • 如果你的Neutron端口(ports)是在Nova之外建立的,在你的服务器删除后并不会删除这些端口:1153a46738fc3ffff98a1df9d94b5a55fdd58777
  • EC2 API支持现在被废弃了,可能要在kilo删除掉:f098398a836e3671c49bb884b4a1a1988053f4b2
  • Websocket代理需要被和API节点一起升级,由于旧的API节点在鉴权控制台权限时不会发送access_url,新的代理服务(这个提交和以后的)处理类似请求时会鉴权失败9621ccaf05900009d67cdadeb1aac27368114a61
  • 在全部升级到kilo后(例如,所有节点都运行kilo代码),你需要在后台运行一个flavor信息更新的迁移,把旧名字改为新名字。Kilo的conductor节点会根据需要进行处理,但是其余的空闲数据需要在后台完成迁移。这个要在Liberty更新后全部完成,到时候旧的位置会被废弃。使用"nova-manage migrate-flavor-data"完成迁移。
  • 由于Nova v2.1 API强制策略的优化。在v2.1 API策略上有一系列改变发生。因为v2.1 API之前一直没有更新,所以这些改变无法向前兼容。所以最好使用策略的样例配置取代之前的版本。
  • VMware拯救(rescue)虚拟机的行为不再生成一个新的虚拟机而是直接在当前镜像上进行:cd1765459a24e52e1b933c8e05517fed75ac9d41
  • force_config_drive = always被废弃了,需要使用force_config_drive = True替换:c12a78b35dc910fa97df888960ef2b9a64557254
  • 运行hyper-v,如果你已经部署的代码晚于这个commit b4d57ab65836460d0d9cb8889ec2e6c3986c0a9b,但是早于这个commit c8e9f8e71de64273f10498c5ad959634bfe79975,那么你可能存在问题,需要手动解决,查看这个commit c8e9f8e71de64273f10498c5ad959634bfe79975
  • 改变multi_instance_display_name_template的默认值:609b2df339785bff9e30a9d67d5c853562ae3344
  • 使用"nova-manage db null_instance_uuid_scan"确保DB迁移之前数据是干净的,c0ea53ce353684b48303fc59393930c3fa5ade58


OpenStack镜像服务 (Glance)

新功能

已知问题

升级提示

  • 移除废弃的选项db_enforce_mysql_charset。 相应的commit: efeb69f9033a57a1c806f71ee3ed9fd3f4d2475e
  • 现在支持metadef资源的通知,相应的commit: fd547e3717dc4a3a92c1cb2104c18608a4f4872a
  • VMware多datastore支持可以通过几个选项进行配置,相应的commit: 96fb31d7459bd4e05e052053177dce4d38cdaf90
  • 移除eventlet执行方法,并且增加一个新的Taskflow的执行方法,用于异步任务,相应的commits: ae3135e1d67df77697a24fddaee3efeadb34a0dd和 a39debfd55f6872e5f4f955b75728c936d1cee4b
  • 在配置中使用endpoint配置替代snet配置,相应的commit: 41a9a065531ec946b4a9baf999f97d10fa493826
  • Digest算法现在可以配置,相应的commit: 82194e0c422966422f7a4e2157125c7ad8fbc5b5
  • 清理已经被删除的镜像,镜像在'保存中'状态时删除。相应的commit: 0dc8fbb3479a53c5bba8475d14f4c7206904c5ea
  • Glance现在使用毕业的oslo.policy模块。相应的commit: cb7d5a4795bbdaf4dc3eaaf0a6fb1add52c09011
  • 镜像现在可以设置为非激活状态。一个新的'非激活'状态已经添加到镜像数据中。相应的commit: b000c85b7fabbe944b4df3ab57ff73883328f40d


OpenStack面板(Horizon)

新功能

  • 支持通过Web单点登陆的统一认证方式——在keystone中做配置后,用户就能选择认证机制来使用已部署的功能。这些功能的使用能够通过更改local_settings.py配置实现。相关启用设置和配置可以在这里找到:here
  • 支持主题 —— 包含了可以为Horizon指定自定义主题的简单功能。允许使用Bootstrap的CSS值,Horizon定义的变量,以及自定义CSS。更多信息参见:here
  • Sahara UX 改进 —— 集cluster创建和job创建引导页的增加极大改进了Sahara用户体验。
  • Launch Intance向导(beta) —— 用AngularJS实现了launch instance workflow的全面替代,用以解决现有的launch instance workflow的可用性问题。这项功能最近才引入并且缺乏测试,所以在Kilo版本中标记为beta并且默认是不启用的。要使用新的workflow,需要对local_settings.py做如下更改:LAUNCH_INSTANCE_NG_ENABLED = True。另外,可以做如下更改来禁用默认的启用instance向导:LAUNCH_INSTANCE_LEGACY_ENABLED = False。这项新功能体现了Horizon未来的发展。
  • Nova
    • 允许service在Hypervisor中 禁用/启用
    • 从host迁移所有instance
    • 暴露serial console
  • Cinder
    • 默认为Cinder v2
    • 支持已管理/未管理的volume —— 允许管理员管理已存在的volume不再被cinder管理,未管理的被cinder管理。
    • 支持project间的volume转移
    • 支持volume加密元数据
  • Glance
    • 增加了界面以允许管理员查看/新增/修改 Glance元数据定义
  • Heat
    • Stack Template界面
    • 操作资源控制板
    • Stacks的挂起/恢复操作
    • 预览Stack界面允许用户在定义模板中的stacks前可以先预览。
  • Trove
    • 调整Trove实例 —— 更改instance的flavor
  • Ceilometer
    • 展示来源于Ceilometer的IPMI测量数据
  • Horizon中新的可重复使用的AngularJS widgets:
    • AngularJS 表格实现
    • Table 绘制 —— 扩展的表格内容
    • 改进的 client/server 查找
    • 转换表格widget
  • 可为Horizon配置web root不仅仅限于“/”

已知问题

升级提示

  • 目前支持Django 1.7


OpenStack鉴权服务(Keystone)

新功能

分层multitenancy

创建一个新的project时,可以设置属性parent_id的值为一个已存在project,使 Projects嵌套在其他projects下。

Role现在可以分配给project分层子树上的 usersgroups

这项功能还需要其他Openstack服务(例如hierarchical quotas)的相应支持使其广泛的生效

Fernet tokens

区别于UUID tokens只能持久化存入数据库,Fernet tokens完全不需要持久化。部署人员可以通过设置keystone.conf中的 [token] provider = keystone.token.providers.fernet.Provider来启用Fernet token

Fernet tokens需要symmetric encryption keys,这些keys可以使用keystone-manage fernet_setup建立, 并且使用keystone-manage fernet_rotate周期性地轮换。这些keys必须被在一个multi-node(或者multi-region)部署中的所有Keyston nodes共享,这样就能使一个node生成的tokens可以立即被其他节点验证。

Identity federation

  • Keystone现在可以作为联邦身份提供者(IdP: federated identity provider)为另外一个Keystone实例提供本地用户的SAML断言(SAML assertions),可能是ECP封装(ECP-wrapped)。
  • 支持OpenID连接作为联邦身份鉴权机制(federated identity authentication mechanism)。
  • 在Keystone中增加对多"Remote IDs"关联到单一的鉴权提供者。这有助于有多身份提供者使用一个通用的映射。
  • 增加为已经拥有Idp用户通过web浏览器鉴权的能力,实现单点登录。
  • 联邦令牌(federated tokens)现在使用token鉴权方法,mappedsaml2仍然有效。
  • 联邦用户(federated users)可以映射到本地已经存在的身份上。
  • 在规则集(rulesets)映射中定义的组可以用名字和域鉴权
  • 出现在联邦身份断言(federated identity assertions)中的组,可以被自动的映射为本地已经存在的组中,并且拥有本地用户关系映射(通过白名单和黑名单过滤)

LDAP

  • 用户指定的API过滤项现在由LDAP本身处理,现在由keystone取代
  • "试验性"支持存储指定域(domain-specific)鉴权后端HTTP API在SQL中配置。这个主要用户场景是,当使用HTTP API创建一个新的域(domain),并且马上配置一个指定域(domain-specific)的LDAP驱动,而不需要重启keystone。

鉴权

  • "分配(assignment)"后端已经被分离到"资源(resource)"后端(包含domains, projects和roles),并且"分配(assignment)"的后端包含了授权的映射模型
  • 支持再次信任授权。当信任关系建立后,被信任人可以通过另外一个信任重新授权该信任的角色。
  • Keystone支持无范围(unscoped)的token请求,即使用户设置了default_project_id
  • 部署人员可以修改配置来限制已经有范围的令牌重新获取范围(re-scoping),在keystone.conf设置[token] allow_rescope_scoped_token = false


升级提示

  • Keystone的XML支持将在Kilo版本删除。当从Juno升级到Kilo,建议将XML和XmlBodyMiddleware相关的信息从Keystone Paste p配置删除。这包含删除XML中间层过滤器以及public_api, admin_api, api_v3, public_version_api, admin_version_api相关的和其他包含XML过滤器的流水线(pipelines)。
  • 所有之前的扩展(OS-FEDERATION, OS-OAUTH1, OS-ENDPOINT-POLICY and OS-EP-FILTER)现在被默认支持,并且在相关标记中,标记为"试验"或者"稳定"。
  • 不在支持SQL结构的回退。这个变化主要是回退并没有经过良好的测试,而且在很多迁移中需要支持数据变化,难度越来越大。
  • 需要以下Python库:cryptography, msgpack-python, pysaml2oauthlib
  • keystone.middleware.RequestBodySizeLimiter被废弃,取而代之的是 oslo_middleware.sizelimit.RequestBodySizeLimiter 并且在Liberty移除。
  • Eventlet相关的配置项,如:public_bind_host, bind_host, admin_bind_host, admin_port, public_port, public_workers, admin_workers, tcp_keepalive, tcp_keepidle被从[DEFAULT]移除掉,移到了[eventlet_server]. 相似的,Eventlet相关的SSL配置选项如:enable, certfile, keyfile, ca_certs, cert_required已经从[ssl]配置项移动到[eventlet_server_ssl].
  • keystone.token.backends.sqlkeystone.token.persistence.backends.sql取代.
  • keystone.token.backends.kvskeystone.token.persistence.backends.kvs取代.
  • keystone.token.backends.memcachekeystone.token.persistence.backends.memcache取代.
  • keystone.assignment.backends.kvskeystone.assignment.backends.sql取代.
  • keystone.identity.backends.kvskeystone.identity.backends.sql取代.
  • keystone.contrib.stats.core.StatsMiddleware被外部工具取代.
  • keystone.catalog.backends.templated.TemplatedCatalogkeystone.catalog.backends.templated.Catalog取代.
  • keystone.contrib.access.core.AccessLogMiddleware被外部访问日志取代.
  • keystone.trust.backends.kvskeystone.trust.backends.sql取代.
  • [catalog] endpoint_substitution_whitelist已经从keystone.conf删除,作为加强安全的一部分。
  • [signing] token_format被从keystone.conf删除,取代的是[token] provider.

OpenStack网络服务(Neutron)

新功能

  • DVR现在除了VXLAN/GRE外还支持VLANs
  • ML2分层端口绑定(Port Binding)
  • 新的V2版本的LBaas(负载均衡即服务)API
  • 支持OVS ML2驱动的端口安全
  • 在Kilo版本中支持的新插件:
    • A10 Networks LBaaS V2 Driver
    • Brocade LBaaS V2 Driver
    • Brocade ML2 driver for MLX and ICX switches
    • Brocade L3 routing plugin for MLX switch
    • Brocade Vyatta vRouter L3 Plugin
    • Brocade Vyatta vRouter Firewall Driver
    • Brocade Vyatta vRouter VPN Driver
    • Cisco CSR VPNaaS Driver
    • Dragonflow SDN based Distributed Virtual Router L3 Plugin
    • Freescale FWaaS Driver
    • Intel Mcafee NGFW FWaaS Driver
    • IPSEC Strongswan VPNaaS Driver

已知问题

  • 在Kilo版本中,防火墙即服务仍然标记为试验性功能
  • Bug 1438819
    • 当创建一个新的可访问外部网络的子网,所有与该网络相关的、已经存在的具有网关的路由都会得到一个新的地址。对于IPv4网络,这样会为路由的网关消耗掉子网中的全部接口。

升级提示

从Havana版本开始,Neutron不再支持存放指定的租约(https://bugs.launchpad.net/bugs/1202392)。这部分剩余的残留代码包含了一些不曾使用的环境变量。为了删除掉这些残余代码 (https://review.openstack.org/#/c/152398/),需要修改dhcp.filter,所以这一行:

dnsmasq: EnvFilter, dnsmasq, root, NEUTRON_NETWORK_ID=

需要被替换为:

dnsmasq: CommandFilter, dnsmasq, root

在一些高级服务被划分到独立的包,并且有自己的配置文件后(特别是:etc/neutron/neutron_lbaas.conf, etc/neutron/neutron_fwaas.conf and etc/neutron/neutron_vpnaas.conf),当前活跃的服务在升级后,配置会产生变化(特别是,默认的负载均衡软件(haxproxy)和vpn(oepnswn)在升级后会被开启,尽管你之前可能在neutron.conf关闭了他们)。请务必在升级后检查你的配置,保证你的新配置和你之前想要启动的服务一致。

注意:如果在neutron.conf没有加载相关插件,不会受到影响。


其他的注意信息(废弃/终止等)

  • 废弃
    • Brocade的VDX/VCS系列硬件的Monolithic插件将在L版本中废弃。原有插件提供的功能已经在ML2中实现。插件将在这个更新之后被删除。
    • Cisco的Nexus1000V Meta插件将在L版本中废弃。原有插件功能已经在ML2的Cisco Nexus1000V策略驱动实现。插件将在这个更新之后被删除。

OpenStack块存储(Cinder)

新功能

  • 从这一刻起,任何新的数据库结构的更新将不需要Cinder服务立即重启。服务本身和数据库结构间没有直接关联。这是Cinder支持滚动更新(rolling upgrades)的第一部分!
  • 在已经存在的一致性组中添加或者删除卷。获取更多信息.
  • 从一个已经存在的一致性组的景象中创建一个新的一致性组。获取更多信息.
  • 创建了更多已经优化的filters/weighers来设定scheduler如何选择一个卷的后端。获取更多信息.
  • 加密卷现在可以使用Cinder备份服务进行备份。获取更多信息.
  • 允许创建私有卷类型。你可以让卷类型只对特定的租户可见,或者在更新到正式环境前进行测试。可以用过'cinder type-create <name> --is-public'设置。
  • Thin Provision(精简配置)的超额认购是可以配置的。Read docs for more info.
  • 可以为卷类型增加描述信息。使用'cinder type-create <name> <description>'命令创建。
  • Cinder现在可以返回多个iSCSI路径信息,这样连接方就能在主路径(Primary Path)挂掉后,使用其他路径(当连接方多路径支持开启 or 未开启)。

升级提示

  • cinder.conf中的'host'配置选项被重命名为'backend_host',目的为了避免与redis配置中的'host'命名冲突。如果你使用了这个选项,请务必更新你的配置文件。


OpenStack遥测服务(Ceilometer)

新功能

  • 支持在polling循环中增加抖动,保证pollsters不要在同一时间查询服务的API
  • 支持Ceilometer API RBAC(基于权限的访问控制)
  • 优化的事件支持:
    • 多流水线(Multi-pipeline)支持开启唯一的处理和发布的事件
    • 支持捕获RAW消息格式,便于审计和事后分析
    • 在弹性搜索中支持持久化事件
    • 发布支持对数据库、http、分拣、kafka和oslo.messaging支持的消息队列
    • 增加一个选项,可以将消息的持久化数据存放在一个单独的数据库中
    • Ceilometer现在支持使用时间(events)采集和存储所有事件类型的测量(meters)。一个新的选项,disable_non_metric_meters被加入到配置中,为了关闭将这些事件作为Samples存取的开关。更多信息请参阅Ceilometer配置指南
    • OpenStack手册中的管理员指南增加了新的事件的选择, 你能通过这篇文档获取更多信息。
  • 优化了流水线(pipeline)发布支持:
    • 支持将事件(events)和samples发布到Kafka或者Http目标中
    • 将数据发送到多个队列中
  • 更多的测量(meters)
    • Hyper-V的内存和磁盘测量(meters)
    • LibVirt的磁盘测量(meters)
    • IPMI相关的电源和热量的测量(meters),更多的测量指标查看NodeManager
    • Ceph测量
  • 在Ceilometer中upd的发布和采集支持IPv6格式
  • Gnocchi支持ceilometer-collector分派
  • pollster自我关闭机制


升级提示

  • 失效的测量(meters):
    • instance:<flavor>测量在Kilo版本中废弃。如果想获取flavor的samples或者统计你能使用以下查询:
  统计:
  ceilometer statistics -m instance -g resource_metadata.instance_type
  samples:
  ceilometer sample-list -m instance -q metadata.instance_type=<value>


OpenStack编排服务(Heat)

新功能

升级提示

  • "num_engine_workers"选项默认值从1变为CPU个数。现在这也是其他项目设置worker数量的方法。
  • "max_nested_stack_depth"默认值增加为5.
  • 新增的"convergence"默认为关闭。这个功能还没有完成,应该保持关闭。
  • 为了准备即将到来的主要更新(convergence),有一些明显的数据库结构变化。建议在升级过程中关闭heat-engine。

其他的注意信息(废弃/终止等)

废弃

  • 下列资源被废弃了OS::Heat::HARestarter和OS::Heat::CWLiteAlarm
  • CloudWatch API (heat-api-cw)


OpenStack数据库服务(Trove)

新功能

  • 支持一个新的复制策略,基于异步的GTID复制(MySQL 5.6新功能)
    • 当前一个API调用支持从一个单master节点创建n个副本
    • 使用新的'eject-master' API,我们也能支持从一个未响应的master节点,恢复到最近更新的slave节点上
  • Trove guest管理支持以下新的数据存储:
    • Vertica, and Vertica Cluster
    • DB2
    • CouchDB
  • 扩展当前管理API层:
    • 新的管理API用来获取列表或查看已经删除的trove虚拟机
    • 新的管理API用来ping一个数据存储的guest agent,基于RPC机制
  • Horizon支持重置Trove实例(instances)的规格
  • 用户现在可以编辑/更新Trove虚拟机(instances)的名字
  • 集成跨项目的OpenStack性能分析库(OSProfiler)

升级提示

  • 我们从已经废弃的oslo-incubator消息代码迁移至官方的oslo.messaging模块中。配置变更详情请查看git.openstack.org/cgit/openstack/trove/tree/etc/trove/trove.conf.sample#n18,(更新)
  • 没有经过任何CI测试过的数据存储和策略被移入'测试'段中的各自模块中。一旦这些数据存储和策略在CI中通过测试和gate验证,他们就会被标记为'稳定'。
  • 添加了新文档帮助为不同的数据存储创建镜像 http://docs.openstack.org/developer/trove/dev/building_guest_images.html


OpenStack数据处理服务(Sahara)

新功能

  • 新插件,功能和版本:
    • MAPR
    • Apache Storm
    • 添加了Apache Hadoop 2.6.0, Apache Hadoop 2.4.1被废弃
    • 新的服务CDH插件加入HDFS, YARN, Spark, Oozie, HBase, Zookeeper和其他服务
  • 增加非直接的虚拟机(instances)访问,以更好地利用floating ip
  • 增加事件日志支持注入过程中的详细信息
  • 每个插件可选择的默认节点组和集群模板
  • Horizon更新:
    • 向导式创建集群和任务调度
    • 查找对象时过滤
  • 实现了节点组模板编辑和集群模板
  • 为集群运行Oozie增加了Shell任务类型
  • 新的任务类型端点(endpoint),用于查询已知的任务类型列表


升级提示

更多详细信息:http://docs.openstack.org/developer/sahara/userdoc/upgrade.guide.html#juno-kilo

  • Sahara现在支持policy.json配置文件。


OpenStack裸金属服务(Ironic)

新功能

状态机(State Machine)

Ironic现在使用一个正式的模式管理每个节点的逻辑状态。[1]。这样就开启了两个附属的进程:清理(cleaning) and 检查(inspection)

  • 现在默认支持项目间的自动磁盘清除。这可能需要为清理(cleaning)扩展额外的步骤,例如重新申请fireware,重置BIOS设置等[2]
  • 硬件的检查(inspect),同时支持带内(in-band)和带外(out-of-band)两种方式。这些方法可能会自动更新节点设置。[3]

版本头信息

Ironic REST API在HTTP[S]请求的头信息中增加了一个新的X-OpenStack-Ironic-API-Version。这个头信息允许客户端和服务端在协商时支持一个统一的接口。[4]。如果头信息缺失,REST服务会默认进入兼容模式,并且产生一个兼容Juno客户端的响应。这种模式是被限制访问Kilo提供的最新功能的。

硬件驱动更新

以下驱动被添加:


对于已经存在的驱动,有以下增强点:


支持第三方和未列出的驱动,通过以下两点得到增强:

  • 驱动可以存储节点"内部的"信息
  • 驱动可以注册自己的定时任务,并且由Conductor执行
  • vender_passthru方法现在支持额外的HTTP方法(例如PUT和POST)
  • vendor_passthru方法现在可以在REST API中被发现。查看node vendor passthrudriver vendor passthru

其他更新

  • 除了正式的UUID之外,逻辑名称可以被用来标识节点。
  • 对于拥有多个本地磁盘的服务器,提示可以提供哪些OS在注入时产生影响
  • 支持从HTTP[S]源中直接获取kernel, ramdisk和实例镜像,并且从Glance移除了依赖使用Ironic作为独立服务
  • 可以通过REST API将节点设置为维护模式维护模式。一个可选项维护模式原因可以标识原因。

已知问题

  • 运行一个以上的nova-compute没有被正式的支持
    • 当然Ironic包含了ClusteredComputeManager,允许多余一个以上的nova-compute进程,这个功能被视为实验阶段,并且已经存在了很多问题
  • 使用“agent”驱动的部署策略不支持"rebuild --preserve-ephemeral"

升级提示

  • IPMI的密码使REST API请求混乱。可以通过API策略设定关闭。
  • 驱动的"agent"类现在支持全盘或者分区镜像。
  • "pxe_deploy_kernel"和"pxe_deploy_ramdisk"的driver_info参数被废弃,取而代之的是"deploy_kernel"和"deploy_ramdisk"。
  • 驱动自己实现的版本的方法vendor_passthru()被废弃,取而代之的是使用装饰器@passthru。

Juno升级到Kilo

升级文档请参考:

从Icehouse的"nova-baremetal"升级

直接从Icehouse的Nova安装中使用“baremetal”驱动直接到Kilo的Ironic,没有经过测试也不支持。替代方案,请遵循以下升级顺序:

  1. Icehouse Nova "baremetal" -> Juno Nova "baremetal"
  2. Juno Nova "baremetal" -> Juno Ironic
  3. Juno Ironic -> Kilo Ironic

第一步和第二步的文档:https://wiki.openstack.org/wiki/Ironic/NovaBaremetalIronicMigration


OpenStack文档

  • [1]Ironic新的状态机
  • [2]节点清理
  • [3]硬件检查
  • [4]REST API "micro"版本