Difference between revisions of "ReleaseNotes/Kilo/zh-hans"
(Created page with "=== 升级提示 ===") |
|||
(133 intermediate revisions by 2 users not shown) | |||
Line 22: | Line 22: | ||
==== 纠删码(beta) ==== | ==== 纠删码(beta) ==== | ||
− | Swift现在支持纠删码(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账户中,这样使得账户管理更简单。 | |
更详细的文档请参阅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. | + | * 我们有了下一代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 | + | ** 之前,由于在db层面权限检查的硬编码(hard-code),部分Nova API并不支持策略的配置。总是需要admin用户权限。部分在Nova v2.1 API中硬编码(hard-code)权限检查被移除,使得API策略可配置。其余的硬编码(hard-code)将在Liberty版本被移除掉。 |
==== 升级支持 ==== | ==== 升级支持 ==== | ||
− | * 我们减少了使用DB迁移脚本执行数据迁移,现在这部分使用一种"懒(lazy)"方式在DB的对象代码中完成。在nova- | + | * 我们减少了使用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/ | + | * 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 159: | Line 159: | ||
* 使用已经毕业的oslo.policy项目。账户配置信息更新,升级在etc/config下的配置文件。http://specs.openstack.org/openstack/glance-specs/specs/kilo/pass-targets-to-policy-enforcer.html | * 使用已经毕业的oslo.policy项目。账户配置信息更新,升级在etc/config下的配置文件。http://specs.openstack.org/openstack/glance-specs/specs/kilo/pass-targets-to-policy-enforcer.html | ||
− | * | + | * 可以使一个镜像变为非激活状态。增加了两个新的API调用可能会需要改变策略配置。http://specs.openstack.org/openstack/glance-specs/specs/kilo/deactivate-image.html |
* 在镜像导入过程中,支持基本的镜像格式转换。 http://specs.openstack.org/openstack/glance-specs/specs/kilo/conversion-of-images.html | * 在镜像导入过程中,支持基本的镜像格式转换。 http://specs.openstack.org/openstack/glance-specs/specs/kilo/conversion-of-images.html | ||
* Glance排序增强。v2版本的镜像API支持新的排序语法,排序时可以指定排序字段和方向:http://specs.openstack.org/openstack/glance-specs/specs/kilo/sorting-enhancements.html | * Glance排序增强。v2版本的镜像API支持新的排序语法,排序时可以指定排序字段和方向:http://specs.openstack.org/openstack/glance-specs/specs/kilo/sorting-enhancements.html | ||
Line 185: | Line 185: | ||
=== 升级提示 === | === 升级提示 === | ||
− | * | + | * 移除废弃的选项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配置实现。相关启用设置和配置可以在这里找到:[http://docs.openstack.org/developer/horizon/topics/settings.html#websso-enabled here]。 |
− | * | + | * 支持主题 —— 包含了可以为Horizon指定自定义主题的简单功能。允许使用Bootstrap的CSS值,Horizon定义的变量,以及自定义CSS。更多信息参见:[http://docs.openstack.org/developer/horizon/topics/settings.html#custom-theme-path here]。 |
− | * Sahara UX | + | * Sahara UX 改进 —— 集cluster创建和job创建引导页的增加极大改进了Sahara用户体验。 |
− | * Launch | + | * Launch Intance向导(beta) —— 用AngularJS实现了launch instance workflow的全面替代,用以解决现有的launch instance workflow的可用性问题。这项功能最近才引入并且缺乏测试,所以在Kilo版本中标记为beta并且默认是不启用的。要使用新的workflow,需要对local_settings.py做如下更改:<code>LAUNCH_INSTANCE_NG_ENABLED = True</code>。另外,可以做如下更改来禁用默认的启用instance向导:<code>LAUNCH_INSTANCE_LEGACY_ENABLED = False</code>。这项新功能体现了Horizon未来的发展。 |
* Nova | * Nova | ||
− | ** | + | ** 允许service在Hypervisor中 禁用/启用 |
− | ** | + | ** 从host迁移所有instance |
− | ** | + | ** 暴露serial console |
* Cinder | * Cinder | ||
− | ** | + | ** 默认为Cinder v2 |
− | ** | + | ** 支持已管理/未管理的volume —— 允许管理员管理已存在的volume不再被cinder管理,未管理的被cinder管理。 |
− | ** | + | ** 支持project间的volume转移 |
− | ** | + | ** 支持volume加密元数据 |
* Glance | * Glance | ||
− | ** | + | ** 增加了界面以允许管理员查看/新增/修改 Glance元数据定义 |
* Heat | * Heat | ||
− | ** Stack | + | ** Stack Template界面 |
− | ** | + | ** 操作资源控制板 |
− | ** | + | ** Stacks的挂起/恢复操作 |
− | ** | + | ** 预览Stack界面允许用户在定义模板中的stacks前可以先预览。 |
* Trove | * Trove | ||
− | ** | + | ** 调整Trove实例 —— 更改instance的flavor |
* Ceilometer | * Ceilometer | ||
− | ** | + | ** 展示来源于Ceilometer的IPMI测量数据 |
− | * | + | * Horizon中新的可重复使用的AngularJS widgets: |
− | ** AngularJS | + | ** AngularJS 表格实现 |
− | + | ** Table 绘制 —— 扩展的表格内容 | |
− | ** | + | ** 改进的 client/server 查找 |
− | ** | + | ** 转换表格widget |
− | * | + | * 可为Horizon配置web root不仅仅限于“/” |
− | === | + | === 已知问题 === |
− | * | + | * 从快照创建的Volumes是空的-https://bugs.launchpad.net/horizon/+bug/1447288 |
− | * | + | * 还没有完全支持Django 1.8 |
− | === | + | === 升级提示 === |
− | * | + | * 目前支持Django 1.7 |
− | == | + | == OpenStack鉴权服务(Keystone) == |
− | === | + | === 新功能 === |
− | ==== | + | ==== 分层multitenancy ==== |
− | [http://specs.openstack.org/openstack/keystone-specs/api/v3/identity-api-v3.html# | + | [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下。 | ||
− | + | 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] | |
− | + | 这项功能还需要其他Openstack服务(例如hierarchical quotas)的相应支持使其广泛的生效 | |
==== Fernet tokens ==== | ==== Fernet tokens ==== | ||
− | + | 区别于UUID tokens只能持久化存入数据库,Fernet tokens完全不需要持久化。部署人员可以通过设置<code>keystone.conf</code>中的<code> [token] provider = keystone.token.providers.fernet.Provider</code>来启用Fernet token | |
− | Fernet | + | 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现在可以作为[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)。 |
− | * | + | * 支持[http://docs.openstack.org/developer/keystone/extensions/openidc.html OpenID连接]作为联邦身份鉴权机制(federated identity authentication mechanism)。 |
− | * | + | * 在Keystone中增加对多"Remote IDs"关联到单一的鉴权提供者。这有助于有多身份提供者使用一个通用的映射。 |
− | * | + | * 增加为已经拥有Idp用户通过web浏览器鉴权的能力,实现单点登录。 |
− | * | + | * 联邦令牌(federated tokens)现在使用<code>token</code>鉴权方法,<code>mapped</code>和<code>saml2</code>仍然有效。 |
− | * | + | * 联邦用户(federated users)可以映射到本地已经存在的身份上。 |
− | * | + | * 在规则集(rulesets)映射中定义的组可以用名字和域鉴权 |
− | * | + | * 出现在联邦身份断言(federated identity assertions)中的组,可以被自动的映射为本地已经存在的组中,并且拥有本地用户关系映射(通过白名单和黑名单过滤) |
==== LDAP ==== | ==== LDAP ==== | ||
− | * | + | * 用户指定的API过滤项现在由LDAP本身处理,现在由keystone取代 |
− | * | + | * "试验性"支持存储指定域(domain-specific)鉴权后端HTTP API[http://docs.openstack.org/developer/keystone/configuration.html#domain-specific-drivers 在SQL中配置]。这个主要用户场景是,当使用HTTP API创建一个新的域(domain),并且马上配置一个指定域(domain-specific)的LDAP驱动,而不需要重启keystone。 |
− | ==== | + | ==== 鉴权 ==== |
− | * | + | * "分配(assignment)"后端已经被分离到"资源(resource)"后端(包含domains, projects和roles),并且"分配(assignment)"的后端包含了授权的映射模型 |
− | * | + | * 支持再次信任授权。当信任关系建立后,被信任人可以通过另外一个信任重新授权该信任的角色。 |
− | * | + | * Keystone支持无范围(unscoped)的token请求,即使用户设置了<code>default_project_id</code>。 |
− | * | + | * 部署人员可以修改配置来限制已经有范围的令牌重新获取范围(re-scoping),在<code>keystone.conf</code>设置<code>[token] allow_rescope_scoped_token = false</code> 。 |
− | === | + | === 升级提示 === |
− | * | + | * 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)。 |
− | * | + | * 所有之前的扩展(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 | + | * [http://specs.openstack.org/openstack/openstack-specs/specs/no-downward-sql-migration.html 不在支持SQL结构的回退]。这个变化主要是回退并没有经过良好的测试,而且在很多迁移中需要支持数据变化,难度越来越大。 |
− | * | + | * 需要以下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> | + | * <code>keystone.middleware.RequestBodySizeLimiter</code>被废弃,取而代之的是 <code>oslo_middleware.sizelimit.RequestBodySizeLimiter</code> 并且在Liberty移除。 |
− | * | + | * 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> | + | * <code>keystone.token.backends.sql</code>被 <code>keystone.token.persistence.backends.sql</code>取代. |
− | * <code>keystone.token.backends.kvs</code> | + | * <code>keystone.token.backends.kvs</code>被 <code>keystone.token.persistence.backends.kvs</code>取代. |
− | * <code>keystone.token.backends.memcache</code> | + | * <code>keystone.token.backends.memcache</code>被 <code>keystone.token.persistence.backends.memcache</code>取代. |
− | * <code>keystone.assignment.backends.kvs</code> | + | * <code>keystone.assignment.backends.kvs</code>被<code>keystone.assignment.backends.sql</code>取代. |
− | * <code>keystone.identity.backends.kvs</code> | + | * <code>keystone.identity.backends.kvs</code>被<code>keystone.identity.backends.sql</code>取代. |
− | * <code>keystone.contrib.stats.core.StatsMiddleware</code> | + | * <code>keystone.contrib.stats.core.StatsMiddleware</code>被外部工具取代. |
− | * <code>keystone.catalog.backends.templated.TemplatedCatalog</code> | + | * <code>keystone.catalog.backends.templated.TemplatedCatalog</code>被<code>keystone.catalog.backends.templated.Catalog</code>取代. |
− | * <code>keystone.contrib.access.core.AccessLogMiddleware</code> | + | * <code>keystone.contrib.access.core.AccessLogMiddleware</code>被外部访问日志取代. |
− | * <code>keystone.trust.backends.kvs</code> | + | * <code>keystone.trust.backends.kvs</code>被<code>keystone.trust.backends.sql</code>取代. |
− | * <code>[catalog] endpoint_substitution_whitelist</code> | + | * <code>[catalog] endpoint_substitution_whitelist</code>已经从<code>keystone.conf</code>删除,作为加强安全的一部分。 |
− | * <code>[signing] token_format</code> | + | * <code>[signing] token_format</code>被从<code>keystone.conf</code>删除,取代的是<code>[token] provider</code>. |
− | == | + | == OpenStack网络服务(Neutron) == |
− | === | + | === 新功能 === |
− | * | + | * DVR现在除了VXLAN/GRE外还支持VLANs |
− | * | + | * ML2分层端口绑定(Port Binding) |
− | * | + | * 新的V2版本的LBaas(负载均衡即服务)API |
− | * | + | * 支持OVS ML2驱动的端口安全 |
− | * | + | * 在Kilo版本中支持的新插件: |
** A10 Networks LBaaS V2 Driver | ** A10 Networks LBaaS V2 Driver | ||
** Brocade LBaaS V2 Driver | ** Brocade LBaaS V2 Driver | ||
Line 339: | Line 340: | ||
** IPSEC Strongswan VPNaaS Driver | ** IPSEC Strongswan VPNaaS Driver | ||
− | === | + | === 已知问题 === |
− | * | + | * 在Kilo版本中,防火墙即服务仍然标记为试验性功能 |
* Bug [https://bugs.launchpad.net/neutron/+bug/1438819 1438819] | * Bug [https://bugs.launchpad.net/neutron/+bug/1438819 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: EnvFilter, dnsmasq, root, NEUTRON_NETWORK_ID=''' | ||
− | + | 需要被替换为: | |
'''dnsmasq: CommandFilter, dnsmasq, root''' | '''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没有加载相关插件,不会受到影响。 | |
− | * | + | * 默认的api workers的数量变为物理主机CPU的个数。如果你当前用的是默认值,需要保证为你的api worker设置一个合理的数量。(https://review.openstack.org/#/c/140493/) |
− | * | + | * neutron. allow_duplicate_networks配置项在Kilo版本废弃并且将从Liberty移除,默认的行为是允许同一虚拟机可以绑定在同一子网的多个接口。(https://review.openstack.org/163581) |
− | * | + | * linuxbridge agent现在默认支持VXLAN(https://review.openstack.org/160826) |
− | * neutron-ns-metadata- | + | * neutron-ns-metadata-proxy可以使用非root用户执行(https://review.openstack.org/147437) |
− | === | + | === 其他的注意信息(废弃/终止等) === |
− | * | + | * 废弃 |
− | ** | + | ** Brocade的VDX/VCS系列硬件的Monolithic插件将在L版本中废弃。原有插件提供的功能已经在ML2中实现。插件将在这个更新之后被删除。 |
− | ** | + | ** Cisco的Nexus1000V Meta插件将在L版本中废弃。原有插件功能已经在ML2的Cisco Nexus1000V策略驱动实现。插件将在这个更新之后被删除。 |
− | == | + | == OpenStack块存储(Cinder) == |
− | === | + | === 新功能 === |
− | * | + | * 从这一刻起,任何新的数据库结构的更新将不需要Cinder服务立即重启。服务本身和数据库结构间没有直接关联。这是Cinder支持滚动更新(rolling upgrades)的第一部分! |
− | * | + | * 在已经存在的一致性组中添加或者删除卷。[http://docs.openstack.org/admin-guide-cloud/content/consistency-groups.html 获取更多信息]. |
− | * | + | * 从一个已经存在的一致性组的景象中创建一个新的一致性组。[http://docs.openstack.org/admin-guide-cloud/content/consistency-groups.html 获取更多信息]. |
− | * | + | * 创建了更多已经优化的filters/weighers来设定scheduler如何选择一个卷的后端。[http://docs.openstack.org/admin-guide-cloud/content/driver_filter_weighing.html 获取更多信息]. |
− | * | + | * 加密卷现在可以使用Cinder备份服务进行备份。[http://docs.openstack.org/admin-guide-cloud/content/volume-backup-restore.html 获取更多信息]. |
− | * | + | * 允许创建私有卷类型。你可以让卷类型只对特定的租户可见,或者在更新到正式环境前进行测试。可以用过'cinder type-create <name> --is-public'设置。 |
− | * | + | * Thin Provision(精简配置)的超额认购是可以配置的。[http://docs.openstack.org/admin-guide-cloud/content/over_subscription.html Read docs for more info]. |
− | * | + | * 可以为卷类型增加描述信息。使用'cinder type-create <name> <description>'命令创建。 |
− | * | + | * Cinder现在可以返回多个iSCSI路径信息,这样连接方就能在主路径(Primary Path)挂掉后,使用其他路径([https://review.openstack.org/#/c/134681/ 当连接方多路径支持开启] or [https://review.openstack.org/#/c/140877/ 未开启])。 |
− | === | + | === 升级提示 === |
− | * | + | * cinder.conf中的'host'配置选项被重命名为'backend_host',目的为了避免与redis配置中的'host'命名冲突。如果你使用了这个选项,请务必更新你的配置文件。 |
− | == | + | == OpenStack遥测服务(Ceilometer) == |
− | === | + | === 新功能 === |
− | * | + | * 支持在polling循环中增加抖动,保证pollsters不要在同一时间查询服务的API |
− | * | + | * 支持Ceilometer API RBAC(基于权限的访问控制) |
− | * | + | * 优化的事件支持: |
− | ** Multi-pipeline | + | ** 多流水线(Multi-pipeline)支持开启唯一的处理和发布的事件 |
− | ** | + | ** 支持捕获RAW消息格式,便于审计和事后分析 |
− | ** | + | ** 在弹性搜索中支持持久化事件 |
− | ** | + | ** 发布支持对数据库、http、分拣、kafka和oslo.messaging支持的消息队列 |
− | ** | + | ** 增加一个选项,可以将消息的持久化数据存放在一个单独的数据库中 |
− | ** | + | ** Ceilometer现在支持使用时间(events)采集和存储所有事件类型的测量(meters)。一个新的选项,''disable_non_metric_meters''被加入到配置中,为了关闭将这些事件作为Samples存取的开关。更多信息请参阅[http://docs.openstack.org/trunk/config-reference/content/ch_configuring-openstack-telemetry.html Ceilometer配置指南] |
− | ** | + | ** OpenStack手册中的管理员指南增加了新的[http://docs.openstack.org/admin-guide-cloud/content/section_telemetry-events.html 事件的选择], 你能通过这篇文档获取更多信息。 |
− | * | + | * 优化了流水线(pipeline)发布支持: |
− | ** | + | ** 支持将事件(events)和samples发布到Kafka或者Http目标中 |
− | ** | + | ** 将数据发送到多个队列中 |
− | * | + | * 更多的测量(meters) |
− | ** | + | ** Hyper-V的内存和磁盘测量(meters) |
− | ** | + | ** LibVirt的磁盘测量(meters) |
− | ** | + | ** IPMI相关的电源和热量的测量(meters),更多的测量指标查看NodeManager |
− | ** | + | ** Ceph测量 |
− | * | + | * 在Ceilometer中upd的发布和采集支持IPv6格式 |
− | * [http://launchpad.net/gnocchi Gnocchi] | + | * [http://launchpad.net/gnocchi Gnocchi]支持ceilometer-collector分派 |
− | * | + | * pollster自我关闭机制 |
− | === | + | === 升级提示 === |
− | * | + | * 失效的测量(meters): |
− | ** | + | ** instance:<flavor>测量在Kilo版本中废弃。如果想获取flavor的samples或者统计你能使用以下查询: |
− | + | 统计: | |
ceilometer statistics -m instance -g resource_metadata.instance_type | ceilometer statistics -m instance -g resource_metadata.instance_type | ||
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 |
− | ** | + | ** 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 |
− | == | + | == OpenStack编排服务(Heat) == |
− | === | + | === 新功能 === |
− | * | + | * 使用嵌套stacks优化扩展性 |
− | ** | + | ** Heat在任何资源的远程调用(PRC)动作都是基于一个模板(template)。这样对处理复杂stacks时有利于分担负载。 |
− | * | + | * oslo版本化对象 |
− | ** | + | ** 数据库层现在使用oslo版本化对象来帮助未来的升级。这样允许一个新的升级的heat-engine使用一个旧的数据库结构。注意这并不会帮助升级到kilo版本。 |
− | * | + | * 新模板方法 |
− | ** | + | ** 一个新的HOT模板,版本为"20150430",包含了两个新的方法"digest"和"repeat" |
− | * | + | * 多区域stacks |
** http://docs.openstack.org/hot-reference/content/OS__Heat__Stack.html | ** http://docs.openstack.org/hot-reference/content/OS__Heat__Stack.html | ||
− | * | + | * 访问Heat服务 |
− | ** | + | ** 管理员现在能像其他项目一样访问服务状态。使用"heat-manage service-list"和Horizon。这个功能将汇报heat-engines的活跃状态。 |
− | * | + | * 优化Nova和Neutron资源(properties)的校验。 |
− | * | + | * 在特定资源时(stack钩子),暂停stack的创建/更新 |
** http://specs.openstack.org/openstack/heat-specs/specs/juno/stack-breakpoint.html | ** http://specs.openstack.org/openstack/heat-specs/specs/juno/stack-breakpoint.html | ||
** http://docs.openstack.org/developer/heat/template_guide/environment.html?highlight=hooks#pause-stack-creation-update-on-a-given-resource | ** http://docs.openstack.org/developer/heat/template_guide/environment.html?highlight=hooks#pause-stack-creation-update-on-a-given-resource | ||
− | * | + | * 新贡献的资源 |
− | ** | + | ** Mistral资源 |
− | ** | + | ** gnocchi告警 https://blueprints.launchpad.net/heat/+spec/ceilometer-gnocchi-alarm |
− | ** | + | ** Keystone资源支持v3版本,项目、角色、用户和组 |
− | * | + | * Stack生命周期调度提示 |
− | * | + | * 软件配置优化 |
− | ** | + | ** 使用Swift TempURLs选项作为部署信号 http://specs.openstack.org/openstack/heat-specs/specs/kilo/software-config-swift-signal.html |
− | ** | + | ** 使用heat命令创建和监控一个部署,在stack之外 http://specs.openstack.org/openstack/heat-specs/specs/kilo/software-config-trigger.html |
− | === | + | === 升级提示 === |
− | * | + | * "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 | **Vertica, and Vertica Cluster | ||
**DB2 | **DB2 | ||
**CouchDB | **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,([https://review.openstack.org/#/c/94484/ 更新]) |
− | * | + | * 没有经过任何CI测试过的数据存储和策略被移入'测试'段中的各自模块中。一旦这些数据存储和策略在CI中通过测试和gate验证,他们就会被标记为'稳定'。 |
− | * | + | * 添加了新文档帮助为不同的数据存储创建镜像 http://docs.openstack.org/developer/trove/dev/building_guest_images.html |
− | == | + | == OpenStack数据处理服务(Sahara) == |
− | === | + | === 新功能 === |
− | * | + | * 新插件,功能和版本: |
** MAPR | ** MAPR | ||
** Apache Storm | ** 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 ==== | + | ==== 状态机(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)''' | |
− | * | + | * 现在默认支持项目间的自动磁盘清除。这可能需要为'''清理(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> |
− | + | ==== 版本头信息 ==== | |
− | = | + | 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提供的最新功能的。 |
− | + | ==== 硬件驱动更新 ==== | |
+ | |||
+ | 以下驱动被添加: | ||
* [http://docs.openstack.org/developer/ironic/drivers/amt.html AMT] | * [http://docs.openstack.org/developer/ironic/drivers/amt.html AMT] | ||
* [http://docs.openstack.org/developer/ironic/deploy/drivers.html#irmc iRMC] | * [http://docs.openstack.org/developer/ironic/deploy/drivers.html#irmc iRMC] | ||
Line 547: | Line 549: | ||
− | + | 对于已经存在的驱动,有以下增强点: | |
− | * [http://docs.openstack.org/developer/ironic/deploy/install-guide.html#enabling-the-configuration-drive-configdrive Configdrives] | + | * [http://docs.openstack.org/developer/ironic/deploy/install-guide.html#enabling-the-configuration-drive-configdrive Configdrives] 可以用于"agent"驱动替代metadata服务。 |
− | * | + | * SeaMicro驱动支持串口控制台 |
− | * [http://docs.openstack.org/developer/ironic/drivers/ilo.html#uefi-secure-boot-support | + | * [http://docs.openstack.org/developer/ironic/drivers/ilo.html#uefi-secure-boot-support iLO驱动支持UEFI安全启动] |
− | * [http://docs.openstack.org/developer/ironic/drivers/ilo.html#hardware-inspection | + | * [http://docs.openstack.org/developer/ironic/drivers/ilo.html#hardware-inspection iLO驱动支持带外(out-of-band)节点检查] |
− | * [http://docs.openstack.org/developer/ironic/drivers/ilo.html#ilo-node-cleaning | + | * [http://docs.openstack.org/developer/ironic/drivers/ilo.html#ilo-node-cleaning iLO驱动在清理过程中支持ilo和bios重置] |
− | + | 支持第三方和未列出的驱动,通过以下两点得到增强: | |
− | * | + | * 驱动可以存储节点"内部的"信息 |
− | * | + | * 驱动可以注册自己的定时任务,并且由Conductor执行 |
− | * '' | + | * ''vender_passthru''方法现在支持额外的HTTP方法(例如PUT和POST) |
− | * ''vendor_passthru'' | + | * ''vendor_passthru''方法现在可以在REST API中被发现。查看[http://docs.openstack.org/developer/ironic/dev/drivers.html#node-vendor-passthru node vendor passthru]和 [http://docs.openstack.org/developer/ironic/dev/drivers.html#driver-vendor-passthru driver vendor passthru] |
− | ==== | + | ==== 其他更新 ==== |
− | * [http://docs.openstack.org/developer/ironic/deploy/install-guide.html#logical-names | + | * 除了正式的UUID之外,[http://docs.openstack.org/developer/ironic/deploy/install-guide.html#logical-names 逻辑名称]可以被用来标识节点。 |
− | * | + | * 对于拥有多个本地磁盘的服务器,[http://docs.openstack.org/developer/ironic/deploy/install-guide.html#specifying-the-disk-for-deployment ''提示'']可以提供哪些OS在注入时产生影响 |
− | * | + | * 支持从HTTP[S]源中直接获取kernel, ramdisk和实例镜像,并且从Glance移除了依赖[http://docs.openstack.org/developer/ironic/deploy/install-guide.html#using-ironic-as-a-standalone-service 使用Ironic作为独立服务] |
− | * | + | * 可以通过REST API将节点设置为维护模式''[http://docs.openstack.org/developer/ironic/deploy/install-guide.html#maintenance-mode 维护模式]''。一个可选项''维护模式原因''可以标识原因。 |
− | === | + | === 已知问题 === |
− | * | + | * 运行一个以上的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 ==== |
− | + | 升级文档请参考: | |
* http://docs.openstack.org/developer/ironic/deploy/upgrade-guide.html#upgrading-from-juno-to-kilo | * http://docs.openstack.org/developer/ironic/deploy/upgrade-guide.html#upgrading-from-juno-to-kilo | ||
− | ==== | + | ==== 从Icehouse的"nova-baremetal"升级 ==== |
− | + | 直接从Icehouse的Nova安装中使用“baremetal”驱动直接到Kilo的Ironic,没有经过测试也不支持。替代方案,请遵循以下升级顺序: | |
# Icehouse Nova "baremetal" -> Juno Nova "baremetal" | # Icehouse Nova "baremetal" -> Juno Nova "baremetal" | ||
# Juno Nova "baremetal" -> Juno Ironic | # Juno Nova "baremetal" -> Juno Ironic | ||
# Juno Ironic -> Kilo Ironic | # Juno Ironic -> Kilo Ironic | ||
− | + | 第一步和第二步的文档:https://wiki.openstack.org/wiki/Ironic/NovaBaremetalIronicMigration | |
Line 600: | 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/ | + | * 将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
OpenStack 2015.1.0 (Kilo)更新日志
以此OpenStack Kilo版本的更新日志告慰Chris Yeoh在天之灵,虽然你已远离你的家人和我们,但你的心永远与我们同在。 |
Contents
- 1 OpenStack 2015.1.0 (Kilo)更新日志
- 1.1 OpenStack对象存储(Swift)
- 1.2 OpenStack 计算服务(Nova)
- 1.3 OpenStack镜像服务 (Glance)
- 1.4 OpenStack面板(Horizon)
- 1.5 OpenStack鉴权服务(Keystone)
- 1.6 OpenStack网络服务(Neutron)
- 1.7 OpenStack块存储(Cinder)
- 1.8 OpenStack遥测服务(Ceilometer)
- 1.9 OpenStack编排服务(Heat)
- 1.10 OpenStack数据库服务(Trove)
- 1.11 OpenStack数据处理服务(Sahara)
- 1.12 OpenStack裸金属服务(Ironic)
- 1.13 OpenStack文档
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
- 我们有了下一代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请求提供服务。
- 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版本被移除掉。
升级支持
- 我们减少了使用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的数据库迁移脚本,这个脚本主要扫描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
- 支持生成两个虚拟机:https://blueprints.launchpad.net/nova/+spec/hyper-v-generation-2-vms
- 支持SMB为基础的卷,和已经存在的ISCSI卷:http://specs.openstack.org/openstack/nova-specs/specs/kilo/implemented/hyper-v-smbfs-volume-support.html
- 支持x509证书的keyparis:http://specs.openstack.org/openstack/nova-specs/specs/kilo/implemented/keypair-x509-certificates.html
- 主机电源操作已经在Hyper-V中可用了:https://blueprints.launchpad.net/nova/+spec/hyper-v-host-power-actions
Libvirt (KVM)
- NFV相关功能:
- 以NUMA为基础的调度 : http://specs.openstack.org/openstack/nova-specs/specs/kilo/implemented/input-output-based-numa-scheduling.html
- 虚拟机使用固定的物理CPU: http://specs.openstack.org/openstack/nova-specs/specs/kilo/implemented/virt-driver-cpu-pinning.html
- 超大页(Large Page)支持: http://specs.openstack.org/openstack/nova-specs/specs/kilo/implemented/virt-driver-large-pages.html
- vhostuser VIF驱动: http://specs.openstack.org/openstack/nova-specs/specs/kilo/implemented/libvirt_vif_vhostuser.html
- 支持在IBM System z运行KVM: http://specs.openstack.org/openstack/nova-specs/specs/kilo/implemented/libvirt-kvm-systemz.html
- 支持parallels云服务: http://specs.openstack.org/openstack/nova-specs/specs/kilo/implemented/pcs-support.html
- 支持SMB卷: http://specs.openstack.org/openstack/nova-specs/specs/kilo/implemented/libvirt-smbfs-volume-support.html
- 使用QEMU agent静默(Quiesce)文件系统(例如:做快照之前): http://specs.openstack.org/openstack/nova-specs/specs/kilo/implemented/quiesced-image-snapshots-with-qemu-guest-agent.html
- Quobyte卷支持: http://specs.openstack.org/openstack/nova-specs/specs/kilo/implemented/quobyte-nova-driver.html
- 支持QEMU iSCSI initiator: http://specs.openstack.org/openstack/nova-specs/specs/kilo/implemented/qemu-built-in-iscsi-initiator.html
VMware
- 支持Ephemeral磁盘: http://specs.openstack.org/openstack/nova-specs/specs/kilo/approved/vmware-ephemeral-disk-support.html
- 支持vSAN: http://specs.openstack.org/openstack/nova-specs/specs/kilo/implemented/vmware-vsan-support.html
- 支持OVA镜像: http://specs.openstack.org/openstack/nova-specs/specs/kilo/implemented/vmware-driver-ova-support.html
- 支持SPBM存储策略: http://specs.openstack.org/openstack/nova-specs/specs/kilo/implemented/vmware-spbm-support.html
Ironic
- 对于ironic支持传递flavor扩展属性:http://specs.openstack.org/openstack/nova-specs/specs/kilo/implemented/pass-flavor-capabilities-to-ironic-virt-driver.html
已知问题
- 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)
新功能
- 使用已经毕业的oslo.policy项目。账户配置信息更新,升级在etc/config下的配置文件。http://specs.openstack.org/openstack/glance-specs/specs/kilo/pass-targets-to-policy-enforcer.html
- 可以使一个镜像变为非激活状态。增加了两个新的API调用可能会需要改变策略配置。http://specs.openstack.org/openstack/glance-specs/specs/kilo/deactivate-image.html
- 在镜像导入过程中,支持基本的镜像格式转换。 http://specs.openstack.org/openstack/glance-specs/specs/kilo/conversion-of-images.html
- Glance排序增强。v2版本的镜像API支持新的排序语法,排序时可以指定排序字段和方向:http://specs.openstack.org/openstack/glance-specs/specs/kilo/sorting-enhancements.html
- 通知支持metadefs:http://specs.openstack.org/openstack/glance-specs/specs/kilo/metadefs-notifications.html
- VMware存储驱动支持多datastore:http://specs.openstack.org/openstack/glance-specs/specs/kilo/vmware-store-multiple-datastores.html
- 在镜像导入过程中获取镜像信息:http://specs.openstack.org/openstack/glance-specs/specs/kilo/introspection-of-images.html
- 在Metadefs中支持多个值的操作。http://specs.openstack.org/openstack/glance-specs/specs/kilo/metadata-multivalue-operators-support.html
- 增加新的taskflow执行方法(executor)并且移除了旧的eventlet执行方法。http://specs.openstack.org/openstack/glance-specs/specs/kilo/taskflow-integration.html
- Digest算法现在是可以配置的。SHA-1现在不适合作为通用的数字签名应用,从安全角度考虑,对于每个FIPS需要112字节,我们提供了一个配置可以在这些标准中进行选择。
- Metadef标签支持。http://specs.openstack.org/openstack/glance-specs/specs/kilo/metadefs-tags.html
- 允许API返回空值。Glance的v2版本API现在也返回为空值的字段。
- 目录索引服务实验性API。http://specs.openstack.org/openstack/glance-specs/specs/kilo/catalog-index-service.html
- 存储驱动更细粒度的支持。 http://specs.openstack.org/openstack/glance-specs/specs/kilo/store-capabilities.html
- 数据存储使用语义版本(Semver, Semantic Versioning)工具。http://specs.openstack.org/openstack/glance-specs/specs/kilo/semver-support.html
- 重新加载配置文件时使用SIGHUP信号。配置重新加载零down机。http://specs.openstack.org/openstack/glance-specs/specs/kilo/sighup-conf-reload.html
- 软件Metadata定义。http://specs.openstack.org/openstack/glance-specs/specs/kilo/software-metadefs.html
- Glance Swift存储使用多个容器(Containers)存储镜像。http://specs.openstack.org/openstack/glance-specs/specs/kilo/swift-store-multiple-containers.html
已知问题
- 当镜像名称大于255个字符时,添加镜像时抛出500错误:https://bugs.launchpad.net/glance/+bug/1424038
- Glance v2版本API与v1版本更换镜像所有者的API不兼容:https://bugs.launchpad.net/glance/+bug/1420008
- Glance的scrubber在操作者使用信任模式鉴权下不工作:https://bugs.launchpad.net/glance/+bug/1439666
升级提示
- 移除废弃的选项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不仅仅限于“/”
已知问题
- 从快照创建的Volumes是空的-https://bugs.launchpad.net/horizon/+bug/1447288
- 还没有完全支持Django 1.8
升级提示
- 目前支持Django 1.7
OpenStack鉴权服务(Keystone)
新功能
分层multitenancy
创建一个新的project时,可以设置属性parent_id
的值为一个已存在project,使
Projects嵌套在其他projects下。
Role现在可以分配给project分层子树上的 users和groups
这项功能还需要其他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
鉴权方法,mapped
和saml2
仍然有效。 - 联邦用户(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, pysaml2 和 oauthlib。
-
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.sql
被keystone.token.persistence.backends.sql
取代. -
keystone.token.backends.kvs
被keystone.token.persistence.backends.kvs
取代. -
keystone.token.backends.memcache
被keystone.token.persistence.backends.memcache
取代. -
keystone.assignment.backends.kvs
被keystone.assignment.backends.sql
取代. -
keystone.identity.backends.kvs
被keystone.identity.backends.sql
取代. -
keystone.contrib.stats.core.StatsMiddleware
被外部工具取代. -
keystone.catalog.backends.templated.TemplatedCatalog
被keystone.catalog.backends.templated.Catalog
取代. -
keystone.contrib.access.core.AccessLogMiddleware
被外部访问日志取代. -
keystone.trust.backends.kvs
被keystone.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没有加载相关插件,不会受到影响。
- 默认的api workers的数量变为物理主机CPU的个数。如果你当前用的是默认值,需要保证为你的api worker设置一个合理的数量。(https://review.openstack.org/#/c/140493/)
- neutron. allow_duplicate_networks配置项在Kilo版本废弃并且将从Liberty移除,默认的行为是允许同一虚拟机可以绑定在同一子网的多个接口。(https://review.openstack.org/163581)
- linuxbridge agent现在默认支持VXLAN(https://review.openstack.org/160826)
- neutron-ns-metadata-proxy可以使用非root用户执行(https://review.openstack.org/147437)
其他的注意信息(废弃/终止等)
- 废弃
- 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>
- 用于Swift测量的中间件之前被打包到Ceilometer中,现在被废弃了。现在被分拆到独立的库:ceilometermiddleware
OpenStack编排服务(Heat)
新功能
- 使用嵌套stacks优化扩展性
- Heat在任何资源的远程调用(PRC)动作都是基于一个模板(template)。这样对处理复杂stacks时有利于分担负载。
- oslo版本化对象
- 数据库层现在使用oslo版本化对象来帮助未来的升级。这样允许一个新的升级的heat-engine使用一个旧的数据库结构。注意这并不会帮助升级到kilo版本。
- 新模板方法
- 一个新的HOT模板,版本为"20150430",包含了两个新的方法"digest"和"repeat"
- 多区域stacks
- 访问Heat服务
- 管理员现在能像其他项目一样访问服务状态。使用"heat-manage service-list"和Horizon。这个功能将汇报heat-engines的活跃状态。
- 优化Nova和Neutron资源(properties)的校验。
- 在特定资源时(stack钩子),暂停stack的创建/更新
- 新贡献的资源
- Mistral资源
- gnocchi告警 https://blueprints.launchpad.net/heat/+spec/ceilometer-gnocchi-alarm
- Keystone资源支持v3版本,项目、角色、用户和组
- Stack生命周期调度提示
- 软件配置优化
- 使用Swift TempURLs选项作为部署信号 http://specs.openstack.org/openstack/heat-specs/specs/kilo/software-config-swift-signal.html
- 使用heat命令创建和监控一个部署,在stack之外 http://specs.openstack.org/openstack/heat-specs/specs/kilo/software-config-trigger.html
升级提示
- "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提供的最新功能的。
硬件驱动更新
以下驱动被添加:
对于已经存在的驱动,有以下增强点:
- Configdrives 可以用于"agent"驱动替代metadata服务。
- SeaMicro驱动支持串口控制台
- iLO驱动支持UEFI安全启动
- iLO驱动支持带外(out-of-band)节点检查
- iLO驱动在清理过程中支持ilo和bios重置
支持第三方和未列出的驱动,通过以下两点得到增强:
- 驱动可以存储节点"内部的"信息
- 驱动可以注册自己的定时任务,并且由Conductor执行
- vender_passthru方法现在支持额外的HTTP方法(例如PUT和POST)
- vendor_passthru方法现在可以在REST API中被发现。查看node vendor passthru和 driver 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,没有经过测试也不支持。替代方案,请遵循以下升级顺序:
- Icehouse Nova "baremetal" -> Juno Nova "baremetal"
- Juno Nova "baremetal" -> Juno Ironic
- Juno Ironic -> Kilo Ironic
第一步和第二步的文档:https://wiki.openstack.org/wiki/Ironic/NovaBaremetalIronicMigration
OpenStack文档
- 全新的 docs.openstack.org访问页面和全新设计的 用户使用指南(End User Guide)和 管理员指南(Admin User Guide)
- 第一个版本的 网络指南(Networking Guide)
- 将RST迁移至 用户使用指南(End User Guide)和 管理员指南(Admin User Guide)
- 全新的专业团队:
- 安装指南(Install Guides)
- 网络指南(Networking Guide)
- 高可靠指南(High Availability Guide)
- 用户指南(包含管理员和最终用户)
- 第一个App指导(First App Tutorial sprint)
- 驱动文档说明和关系说明(Driver documentation clarification and connections)