ReleaseNotes/Kilo
OpenStack 2015.1.0 (Kilo) 发布说明
| OpenStack Kilo 版本献给Chris Yeoh的深切怀念,他过早地离开了他的家人和我们。 |
目录
- 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) 存储策略类型。这允许部署者使用比复制存储更少的原始容量来实现非常高的持久性。但是,EC 需要更多的 CPU 和网络资源,因此并不适用于所有用例。EC 非常适合在单个区域中存储大型、不常访问的数据。
Swift 对擦除码的实现旨在对最终用户透明。复制存储和 EC 存储之间没有 API 差异。
为了支持擦除码,Swift 现在依赖于 PyECLib 和 liberasurecode。liberasurecode 是一个可插拔库,允许实际的 EC 算法在您选择的库中实现。
完整文档请参见 http://swift.openstack.org/overview_erasure_code.html
组合令牌
组合令牌允许其他 OpenStack 服务代表客户端在 Swift 中存储数据,以便客户端和该服务都无法在没有双方同意的情况下更新数据。
例如,用户请求 Nova 保存 VM 的快照。Nova 将请求传递给 Glance,Glance 将镜像写入 Swift 容器作为一组对象。在这种情况下,用户无法在没有来自服务的有效令牌的情况下修改快照。同样,该服务也无法在没有来自用户的有效令牌的情况下更新数据。但是,数据仍然存储在 Swift 中的用户帐户中,这使得会计更容易。
完整文档请参见 http://swift.openstack.org/overview_backing_store.html
较小、无法平衡的集群的数据放置更新
Swift 的数据放置现在考虑了设备权重。这允许操作员逐步添加新的区域和地区,而无需立即导致大量数据移动。此外,如果集群不平衡(例如,一个区域的容量是另一个区域的两倍),Swift 将更有效地利用可用空间,并在副本放置在集群中没有足够分散时发出警告。
全局集群复制改进
区域之间的复制现在每次运行只会移动一个副本。这使远程区域有机会在内部复制,从而避免更多数据通过 WAN 移动
已知问题
- 作为 beta 版本,EC 支持几乎完全完成了所有功能,但它缺乏对某些功能(如多范围读取)的支持,并且尚未进行完整的性能表征。此功能依赖于 ssync 以实现持久性。强烈建议部署者进行广泛的测试,不要使用擦除码存储策略部署生产数据。
升级说明
与往常一样,您可以升级到此版本的 Swift 而不会导致最终用户停机
- 为了支持擦除码,Swift 对 PyECLib(以及通过它传递的 liberasurecode)有新的依赖关系。此外,eventlet 的最低所需版本已提高。
OpenStack Compute (Nova)
主要新特性
API v2.1
- 我们发布了下一代 Nova API 的第一个版本,即 v2.1。v2.1 旨在与 v2.0 具有向后兼容性,并增加了强大的 API 验证。API 的所有更改都可以通过广告的微版本发现。有关详细信息,请参见:https://specs.openstack.org/openstack/nova-specs/specs/kilo/implemented/api-microversions.html
- 对于 Kilo,默认情况下,我们仍然使用 v2.0 API 代码来服务 v2.0 API 请求。希望在 Liberty 中,v2.1 将用于服务 v2.0 和 v2.1 的请求。
- 对于 Liberty,v2.0 现在已冻结,所有新功能现在都将添加到 v2.1 API 中,使用微版本机制。Kilo 中发布的微版本包括
- 扩展密钥对 API 以支持 x509 证书,用于与 Windows WinRM 一起使用,是 v2.1 API 中添加的第一个 API 功能:https://specs.openstack.org/openstack/nova-specs/specs/kilo/implemented/keypair-x509-certificates.html
- 公开 os-extended-server-attributes 中的其他属性
- python-novaclient 尚未支持 v2.1 API
- Nova v2.1 API 的策略执行得到了改进。
- 策略仅在 API 入口处执行。
- 不再为单个 API 存在重复规则。
- 所有 v2.1 API 策略规则都使用“os_compute_api”作为前缀,以与 v2 API 区分开。
- 由于数据库层面的硬编码权限检查,Nova API 的一部分在之前无法通过策略配置。始终需要管理员用户。Nova v2.1 API 的一部分硬编码权限检查已被删除,从而使 API 策略可配置。剩余的硬编码权限检查将在 Liberty 中删除。
升级支持
- 我们减少了数据库迁移脚本中发生的数据迁移,现在这发生在数据库对象代码中的“延迟”方式。nova-manage 命令可以帮助强制迁移数据。有关详细信息,请参见:https://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 选项传递给 null_instance_uuid_scan 命令,以自动删除 instances.uuid 为 null 的任何 null 记录。
调度器
- 一系列性能优化
- 我们正在进行结构性更改,以改进调度器,这将有助于提高我们发展和改进调度的能力。这不应从最终用户角度可见。
Cells v2
- 支持 Cells v2 的初始部分已添加,但此功能尚未准备好使用。
- 用于使用新的 api 数据库的 nova-manage api_db sync 和 nova-manage api_db version 命令,但由于没有任何东西在使用此数据库,因此无需设置它。
计算驱动程序
Hyper-V
- 支持第 2 代虚拟机:https://blueprints.launchpad.net/nova/+spec/hyper-v-generation-2-vms
- 支持基于 SMB 的卷,与现有的 iSCSI 卷支持一起使用:https://specs.openstack.org/openstack/nova-specs/specs/kilo/implemented/hyper-v-smbfs-volume-support.html
- 支持基于 x509 证书的密钥对:https://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 的调度:https://specs.openstack.org/openstack/nova-specs/specs/kilo/implemented/input-output-based-numa-scheduling.html
- 固定来宾 vCPU:https://specs.openstack.org/openstack/nova-specs/specs/kilo/implemented/virt-driver-cpu-pinning.html
- 大页支持:https://specs.openstack.org/openstack/nova-specs/specs/kilo/implemented/virt-driver-large-pages.html
- vhostuser VIF 驱动程序:https://specs.openstack.org/openstack/nova-specs/specs/kilo/implemented/libvirt_vif_vhostuser.html
- 支持在 IBM System z 上运行 KVM:https://specs.openstack.org/openstack/nova-specs/specs/kilo/implemented/libvirt-kvm-systemz.html
- 支持 parallels:https://specs.openstack.org/openstack/nova-specs/specs/kilo/implemented/pcs-support.html
- 支持基于 SMB 的卷:https://specs.openstack.org/openstack/nova-specs/specs/kilo/implemented/libvirt-smbfs-volume-support.html
- 使用 QEMU 来宾代理进行静默:https://specs.openstack.org/openstack/nova-specs/specs/kilo/implemented/quiesced-image-snapshots-with-qemu-guest-agent.html
- Quobyte 卷支持:https://specs.openstack.org/openstack/nova-specs/specs/kilo/implemented/quobyte-nova-driver.html
- 支持 QEMU 内置 iSCSI 发起程序:https://specs.openstack.org/openstack/nova-specs/specs/kilo/implemented/qemu-built-in-iscsi-initiator.html
VMware
- 支持 Ephemeral 磁盘:https://specs.openstack.org/openstack/nova-specs/specs/kilo/approved/vmware-ephemeral-disk-support.html
- 支持 vSAN:https://specs.openstack.org/openstack/nova-specs/specs/kilo/implemented/vmware-vsan-support.html
- 支持基于 OVA 的镜像:https://specs.openstack.org/openstack/nova-specs/specs/kilo/implemented/vmware-driver-ova-support.html
- 支持基于 SPBM 的存储策略:https://specs.openstack.org/openstack/nova-specs/specs/kilo/implemented/vmware-spbm-support.html
- 从单个 nova-compute 服务运行多个 vmware 集群的功能在 Kilo 中已被弃用,并且可能在 Liberty 中删除。请参见:https://review.openstack.org/#/c/163426/
Ironic
- 支持将 flavor 功能传递给 ironic:https://specs.openstack.org/openstack/nova-specs/specs/kilo/implemented/pass-flavor-capabilities-to-ironic-virt-driver.html
已知问题
- 撤销恢复码有破坏数据的潜在风险。在 nova-compute 启动时,会检查超visor报告的实例,以查看它们是否在停机期间从当前主机迁移(即被撤销)。如果确定它们确实迁移了,则会在本地销毁这些实例。这有可能会错误地选择实例并意外地销毁它们。在 libvirt 类似的节点上,可以通过更改系统主机名来触发此问题。在 vmware 类似的节点上,可以通过尝试从两个不同的主机(具有不同的主机名)管理单个 vcenter 部署来触发此问题。这个问题将在 Liberty 中得到正确修复,但现在希望禁用此行为作为预防措施的部署可以设置 workarounds.destroy_after_evacuate=False。注意:这不是一个回归问题,自 evacuate 功能引入以来,一直是设计上的缺陷。没有简单的解决方法,因此此 workaround 用于限制潜在的损害。Liberty 中的提议修复方案在此处:https://review.openstack.org/#/c/161444/。
- 在使用 libvirt 1.2.2 时,负载下的实时快照会间歇性地失败,因此默认情况下禁用实时快照。部署者可以在 nova.conf 中设置 workarounds.disable_libvirt_livesnapshot=True 以启用实时快照支持。详情请参阅 https://bugs.launchpad.net/nova/+bug/1334398。
- rootwrap 报告了性能问题,请参阅 bug https://bugs.launchpad.net/nova/+bug/1415106。部署者可以通过设置 workarounds.disable_rootwrap=True 来禁用 rootwrap 并回退到仅使用 sudo。
- 生成的 nova.conf.sample 可能缺少一些 oslo 相关的配置选项。
升级说明
以下是您在升级时应注意的更改。在可能的情况下,提供了 git 提交哈希值,以便您查找更多信息
- Neutron 端口在删除服务器后不再被删除,如果您在 Nova 之外创建了它们:1153a46738fc3ffff98a1df9d94b5a55fdd58777
- EC2 API 支持已被弃用,并且可能在 kilo 中删除,请参阅 f098398a836e3671c49bb884b4a1a1988053f4b2
- WebSocket 代理需要与 API 节点同步升级,因为旧的 API 节点在授权控制台访问时不会发送 access_url,而较新的代理服务(此提交及以后)将无法授权此类请求 9621ccaf05900009d67cdadeb1aac27368114a61
- 完全升级到 kilo(即所有节点都在运行 kilo 代码)后,您应该启动 flavor 信息从其旧位置迁移到其新位置的后台迁移。Kilo conductor 节点会在必要时动态地执行此操作,但其余的空闲数据需要在后台迁移。在 Liberty 版本发布之前完成此操作至关重要,届时将停止对旧位置的支持。使用 "nova-manage db migrate_flavor_data <max_server_count>" 来执行此转换。
- 注意:在线 flavor 迁移将对 conductor 节点施加额外的负载。在 Kilo 期间,您可能需要扩展这些节点以处理额外的负载,直到您升级到 Liberty,届时将停止在线 flavor 迁移。
- 由于 v2.1 API 之前未得到官方支持,因此 policy.conf 已经发生了很大变化,以便大多数内容都可以通过 policy.conf 进行配置,而不是数据库 API 中的硬编码管理检查。在部署 v2.1 API 时,应使用 Nova 提供的示例 policy 文件。
- VMware 救援 VM 行为不再创建新的 VM,而是在原地发生:cd1765459a24e52e1b933c8e05517fed75ac9d41
- force_config_drive = always 已被弃用,应使用 force_config_drive = True:c12a78b35dc910fa97df888960ef2b9a64557254
- 运行 hyper-v,如果您部署了此提交之后的代码:b4d57ab65836460d0d9cb8889ec2e6c3986c0a9b 但在此提交之前:c8e9f8e71de64273f10498c5ad959634bfe79975,您可能会遇到手动解决问题,请参阅:c8e9f8e71de64273f10498c5ad959634bfe79975
- 更改了以下内容的默认值:multi_instance_display_name_template,请参阅:609b2df339785bff9e30a9d67d5c853562ae3344
- 请使用 "nova-manage db null_instance_uuid_scan" 确保数据库迁移可以干净地应用,请参阅:c0ea53ce353684b48303fc59393930c3fa5ade58
OpenStack Image Service (Glance)
主要新特性
- 使用渐进的 oslo.policy。更改了配置选项并更新了树内 etc/config 文件。https://specs.openstack.org/openstack/glance-specs/specs/kilo/pass-targets-to-policy-enforcer.html
- 启用图像停用。添加了 2 个新的 API 调用,可能需要策略更改。https://specs.openstack.org/openstack/glance-specs/specs/kilo/deactivate-image.html
- 在图像导入过程中支持基本的图像转换。https://specs.openstack.org/openstack/glance-specs/specs/kilo/conversion-of-images.html
- Glance 排序增强。Image v2 API 支持新的排序语法,包括为每个键指定排序方向的能力。https://specs.openstack.org/openstack/glance-specs/specs/kilo/sorting-enhancements.html
- metadefs 的通知支持。https://specs.openstack.org/openstack/glance-specs/specs/kilo/metadefs-notifications.html
- VMware 存储驱动程序的多数据存储支持。https://specs.openstack.org/openstack/glance-specs/specs/kilo/vmware-store-multiple-datastores.html
- 在图像导入过程中进行 Glance 图像内省。https://specs.openstack.org/openstack/glance-specs/specs/kilo/introspection-of-images.html
- Metadefs 对多值运算符的支持。https://specs.openstack.org/openstack/glance-specs/specs/kilo/metadata-multivalue-operators-support.html
- 添加新的 taskflow 执行器并删除旧的 eventlet 执行器。https://specs.openstack.org/openstack/glance-specs/specs/kilo/taskflow-integration.html
- 摘要算法现在是可配置的。由于 SHA-1 不适合需要 112 位安全性的通用数字签名应用程序,因此我们提供了一种配置来选择这些标准。
- Metadef 标签支持。https://specs.openstack.org/openstack/glance-specs/specs/kilo/metadefs-tags.html
- 允许从 API 返回 None 值。Glance 的 v2 API 现在也返回值为 None 的字段。
- 目录索引服务实验性 API。https://specs.openstack.org/openstack/glance-specs/specs/kilo/catalog-index-service.html
- 存储驱动程序更精细的功能可选支持。https://specs.openstack.org/openstack/glance-specs/specs/kilo/store-capabilities.html
- Semver 数据库存储实用程序。https://specs.openstack.org/openstack/glance-specs/specs/kilo/semver-support.html
- 在 SIGHUP 信号上重新加载配置文件。零停机时间配置重新加载。https://specs.openstack.org/openstack/glance-specs/specs/kilo/sighup-conf-reload.html
- 软件元数据定义。https://specs.openstack.org/openstack/glance-specs/specs/kilo/software-metadefs.html
- Glance Swift 存储使用多个容器来存储图像。https://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 在注册表以 trusted-auth 模式运行时不起作用。https://bugs.launchpad.net/glance/+bug/1439666
升级说明
- 已删除弃用的选项 db_enforce_mysql_charset。相应的提交:efeb69f9033a57a1c806f71ee3ed9fd3f4d2475e
- 现在支持 metadef 资源的通知。相应的提交:fd547e3717dc4a3a92c1cb2104c18608a4f4872a
- 可以通过一些配置更改启用 VMware 多个数据存储。相应的提交:96fb31d7459bd4e05e052053177dce4d38cdaf90
- 删除了 eventlet 执行器并添加了一个新的 taskflow 执行器来执行异步任务。相应的提交:ae3135e1d67df77697a24fddaee3efeadb34a0dd 和 a39debfd55f6872e5f4f955b75728c936d1cee4b
- 替换 snet 配置为端点配置。相应的提交:41a9a065531ec946b4a9baf999f97d10fa493826
- 摘要算法现在是可配置的。相应的提交:82194e0c422966422f7a4e2157125c7ad8fbc5b5
- 清理已删除图像的块,该图像处于“保存”状态时被删除。相应的提交:0dc8fbb3479a53c5bba8475d14f4c7206904c5ea
- Glance 现在使用渐进的 oslo.policy。相应的提交:cb7d5a4795bbdaf4dc3eaaf0a6fb1add52c09011
- 现在可以停用图像。已向 Image 数据资产添加了一种名为 deactivated 的新状态。相应的提交:b000c85b7fabbe944b4df3ab57ff73883328f40d
OpenStack Dashboard (Horizon)
主要新特性
- 支持通过 Web 单点登录进行联合身份验证——如果配置在 keystone 中,用户将能够从部署支持的身份验证机制中选择要使用的身份验证机制。必须通过更改 local_settings.py 来启用此功能才能使用它。相关的设置可以在 此处找到。
- 支持主题——已包含一个更简单的机制来指定 Horizon 的自定义主题。允许使用 CSS 值来设置 Bootstrap 和 Horizon 变量,以及包含自定义 CSS。更多详细信息请参见 此处。
- Sahara UX 改进——通过添加引导式集群创建和引导式作业创建页面,对 Sahara 用户体验进行了重大改进。
- 启动实例向导(beta)——已使用 AngularJS 实现了一个完整的启动实例工作流的替代方案,以解决现有启动实例工作流中的可用性问题。由于包含日期较晚且测试有限,此功能在 Kilo 中标记为 beta 且默认情况下未启用。要使用新的工作流,需要在 local_settings.py 中进行以下更改:
LAUNCH_INSTANCE_NG_ENABLED = True。此外,您可以使用以下命令禁用默认启动实例向导:LAUNCH_INSTANCE_LEGACY_ENABLED = False。这项新工作是 Horizon 未来发展的展望。
- Nova
- 允许在 Hypervisor 上禁用/启用服务
- 从主机迁移所有实例
- 暴露串口控制台
- Cinder
- 默认使用 Cinder v2
- 托管/非托管卷支持——允许管理员管理未由 cinder 管理的现有卷,以及取消管理卷。
- 项目之间的卷传输支持
- 卷加密元数据支持
- Glance
- 添加了用于查看/添加/更新 Glance 元数据定义的视图
- Heat
- 堆栈模板视图
- 编排资源面板
- 堆栈的暂停/恢复操作
- 预览堆栈视图允许用户在创建堆栈之前预览在模板中指定的堆栈。
- Trove
- Trove 实例的大小调整——更改实例 flavor
- Ceilometer
- 显示来自 Ceilometer 的 IPMI 指标值
- Horizon 中新的可重用 AngularJS 组件
- AngularJS 表格实现
- 表格抽屉——可展开的表格内容
- 改进的客户端/服务器搜索
- 传输表组件
- AngularJS 表格实现
- 可配置的 Horizon Web 根目录,而不仅仅是 '/'
已知问题
- 从快照创建的卷是空的 - https://bugs.launchpad.net/horizon/+bug/1447288
- Django 1.8 尚未完全支持。
升级说明
- 现在支持 Django 1.7。
OpenStack Identity (Keystone)
主要新特性
分层多租户
项目可以通过在 创建新项目时将 parent_id 属性设置为现有的项目来嵌套在其他项目下。您还可以通过现有的 /v3/projects API 发现父子层次结构。
此功能需要在其他 OpenStack 服务(例如分层配额)中提供相应的支持才能变得有用。
Fernet 令牌
与必须持久保存到数据库的 UUID 令牌不同,Fernet 令牌完全是非持久的。部署者可以通过在 keystone.conf 中使用 [token] provider = keystone.token.providers.fernet.Provider 来启用 Fernet 令牌提供程序。
Fernet 令牌需要对称加密密钥,可以使用 keystone-manage fernet_setup 建立这些密钥,并使用 keystone-manage fernet_rotate 定期轮换这些密钥。这些密钥必须由多节点(或多区域)部署中的所有 Keystone 节点共享,以便由一个节点生成的令牌可以立即在另一个节点上进行验证。
身份联合
- Keystone 现在可以充当另一个 Keystone 实例的 联合身份提供程序 (IdP),为本地用户颁发 SAML 断言,这些断言可能是 ECP 包装的。
- 添加了对 OpenID Connect 作为联合身份验证机制的支持。
- 添加了将许多“远程 ID”与 Keystone 中的单个身份提供程序关联的能力。这将在许多身份提供程序使用通用映射的情况下有所帮助。
- 添加了允许用户通过现有的 IdP 通过单点登录页面使用 Web 浏览器进行身份验证的能力。
- 联合令牌现在使用
token身份验证方法,尽管mapped和saml2仍然可用。 - 现在可以将联合用户映射到现有的本地身份。
- 映射规则集中指定的组可以按名称和域标识。
- 出现在联合身份断言中的组现在可以自动映射为本地现有的组,并进行本地用户成员关系映射(由白名单和黑名单过滤)。
LDAP
- API 用户指定的筛选参数现在由 LDAP 本身处理,而不是由 Keystone 处理。
- 实验性支持将特定于域的身份后端 配置存储在 SQL 中 使用 HTTP API。此用例的主要目的是使用 HTTP API 创建新域,然后立即为该域配置特定于域的 LDAP 驱动程序,而无需重新启动 Keystone。
授权
- “分配”后端已拆分为“资源”后端(包含域、项目和角色)和“分配”后端,包含授权映射模型。
- 添加了对信任重新委托的支持。如果在创建信任时允许,受托人可以通过另一个信任重新委托信任中的角色。
- 添加了对 Keystone 显式请求取消范围令牌的支持,即使用户设置了
default_project_id属性。 - 部署者现在可以选择通过在
keystone.conf中设置[token] allow_rescope_scoped_token = false来禁止重新范围化范围令牌。
升级说明
- Keystone 中的 XML 支持已在 Kilo 中删除。从 Juno 升级到 Kilo 时,建议删除 Keystone Paste 配置中的 XML 引用和 XmlBodyMiddleware。这包括删除 XML 中间件过滤器以及公共 API、admin_api、api_v3、public_version_api、admin_version_api 和可能包含 XML 过滤器的任何其他管道中的引用。
- 所有之前的扩展(OS-FEDERATION、OS-OAUTH1、OS-ENDPOINT-POLICY 和 OS-EP-FILTER)现在默认启用,并且相应地标记为“实验性”或“稳定”。
- SQL 模式降级不再受支持。 此更改是评估结果,表明向下的 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)
主要新特性
- 子网分配功能允许从预定义的地址池创建子网,而不是提供显式地址。
- python-neutron-client 中支持(subnetpool-create/update/list/show/delete 和 subnet-create --subnetpool)。
- API 文档工作正在进行中。
- Horizon 支持由 neutron-subnet-allocation 蓝图跟踪。
- DVR 现在支持 VLAN,除了 VXLAN/GRE。
- ML2 分层端口绑定。
- 新的 LBaaS 版本 2 API(实验性)。
- OVS ML2 驱动程序支持端口安全。
- IPv6 的多个前缀(租户访客接口现在可以获得多个 IPv6 地址)。
- IPv6 路由器(允许访客获得全局 IPv6 地址并与世界通信,而无需 NAT)。
- MTU 选择和通告的 API 扩展。
- API 扩展,用于检查 NFV 的 VLAN 中继网络的兼容性。
- Kilo 中支持的新插件包括以下内容
- A10 Networks LBaaS V2 驱动程序。
- Brocade LBaaS V2 驱动程序。
- Brocade ML2 驱动程序,用于 MLX 和 ICX 交换机。
- Brocade L3 路由插件,用于 MLX 交换机。
- Brocade Vyatta vRouter L3 插件。
- Brocade Vyatta vRouter 防火墙驱动程序。
- Brocade Vyatta vRouter VPN 驱动程序。
- Cisco CSR VPNaaS 驱动程序。
- Dragonflow SDN 基于分布式虚拟路由器 L3 插件。
- Freescale FWaaS 驱动程序。
- Intel Mcafee NGFW FWaaS 驱动程序。
- IPSEC Strongswan VPNaaS 驱动程序。
已知问题
- 防火墙即服务项目在 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 和 etc/neutron/neutron_vpnaas.conf)后,活动服务提供商配置在升级后可能会不同(特别是,默认负载均衡器(haproxy)和 VPN(openswan)提供程序可能会为您启用,即使您之前在 neutron.conf 中禁用了它们)。 请确保在升级后查看配置,以反映服务提供商的期望状态。
注意:如果 neutron.conf 中未加载相关的服务插件,则此操作将无效。
- neutron.allow_duplicate_networks 配置选项在 Kilo 中已被弃用,将在 Liberty 中移除,届时 Neutron 中的默认行为将只是允许同一网络上的实例附加多个端口。
- linuxbridge 代理现在默认启用 VXLAN。
- neutron-ns-metadata-proxy 现在可以作为非 root 用户运行。
其他说明(弃用/EOL 等)
- 弃用
- Brocade 专有插件,用于 Brocade 的 VDX/VCS 系列硬件交换机,将在 L 版本中弃用。 此插件提供的功能现在由适用于 VDX 系列硬件的 ML2 驱动程序提供。 该插件计划在此发布周期结束后移除。
- Cisco Meta 专有插件,用于 Nexus1000V,将在 L 版本中弃用。 此插件提供的功能现在可通过 Cisco Nexus1000V ML2 机制驱动程序获得。 专有插件计划在此发布周期结束后移除。
OpenStack Block Storage (Cinder)
主要新特性
- 从现在开始,任何新的数据库模式升级都不需要立即重新启动 Cinder 服务。 服务现在独立于模式升级。 这是 Cinder 支持滚动升级的第一部分!
- 能够将卷添加到现有的一致性组中。 阅读文档了解更多信息。
- 能够从现有的快照创建一致性组。 阅读文档了解更多信息。
- 创建更精细的过滤器/称重器,以设置调度程序选择卷后端的方式。 阅读文档了解更多信息。
- 加密卷现在可以使用 Cinder 备份服务进行备份。 阅读文档了解更多信息。
- 能够创建私有卷类型。 当您只想将卷类型提供给特定租户或在将其提供给您的云之前对其进行测试时,这非常有用。 为此,请使用 cinder type-create <name> --is-public。
- 执行卷的增量备份。 阅读文档了解更多信息。
- 使用稀疏配置进行过度订阅。 阅读文档了解更多信息。
- 能够为卷类型添加描述。 为此,请使用 cinder type-create <name> <description>
- Cinder 现在可以返回多个 iSCSI 路径信息,以便连接器即使在主路径中断时也能附加卷(当连接器的多路径功能启用时或未启用时)。
- 添加指定本地 lvm.conf 文件的能力。 当使用 LVM 驱动程序时,此选项允许您在 /etc/cinder/lvm.conf 中设置 Cinder 专用的 lvm.conf 文件。 这可以启用仅由 Cinder 选择和使用的特定 LVM 设置和过滤器。 有关详细信息,请参阅以下更改
- Cinder 备份服务现在可以备份到 NFS 导出的文件系统。 阅读文档了解更多信息。
升级说明
- 如果您使用的是 HA 代理,则应将新的配置选项“public_endpoint”设置为 HA 代理的 URL。 Cinder 客户端版本 1.2.0 引入了版本发现,需要此设置。
- cinder.conf 中多个存储后端中的“host”配置选项已重命名为“backend_host”,以避免与定位 redis 的“host”冲突。 如果您使用此选项,请确保更新您的配置文件。
- 由于不符合 Cinder 的持续集成要求来验证它们在本版本中是否正常工作,因此删除了以下驱动程序。 如果在 Liberty 版本中满足要求,可以重新添加它们
- Zadara
- Fujitsu
- Nexenta
OpenStack Telemetry (Ceilometer)
主要新特性
- 支持向轮询周期添加抖动,以确保轮询器不会同时查询服务的 API。
- Ceilometer API RBAC 支持。
- 改进的事件支持。
- 多管道支持,以实现事件的独特处理和发布。
- 启用捕获原始通知消息以进行审计和事后分析。
- 支持将事件持久化到 ElasticSearch。
- 发布支持到数据库、http、文件、kafka 和 oslo.messaging 支持的消息队列。
- 将事件持久化分离到单独的数据库的选项。
- Telemetry 现在支持收集和存储所有事件类型度量作为事件。 添加了一个新的选项,disable_non_metric_meters,以便配置中提供关闭将这些事件存储为样本的可能性。 有关更多信息,请参见Telemetry 配置参考
- OpenStack 手册中的管理员指南已更新,其中包含一个新的事件部分,您可以在其中找到有关此功能的更多信息。
- 改进的管道发布支持。
- 支持将事件和样本发布到 Kafka 或 HTTP 目标。
- 发布到多个队列的数据。
- 其他度量
- Hyper-V 的内存和磁盘度量。
- LibVirt 的磁盘度量。
- 与电源和热相关的 IPMI 度量,来自 NodeManager 的更多度量。
- 能够计量 Ceph。
- Ceilometer udp 发布者和收集器中启用 IPv6 支持。
- Gnocchi dispatch 支持 ceilometer-collector。
- 自禁用轮询器机制。
升级说明
- 弃用的度量
- 在 Kilo 版本中,instance:<flavor> 度量已被弃用。 为了检索基于风味的样本或统计信息,您可以使用以下查询
statistics: ceilometer statistics -m instance -g resource_metadata.instance_type
samples: ceilometer sample-list -m instance -q metadata.instance_type=<value>
- 用于计量 Swift 的中间件以前打包在 Ceilometer 中,现在已被弃用。 它现在被分离到它自己的库中:ceilometermiddleware。
OpenStack Orchestration (Heat)
主要新特性
- 改进的嵌套堆栈缩放。
- Heat 将 RPC 操作发送到基于模板的任何资源。 这应该有助于处理大型复杂堆栈时的负载分散。
- oslo 版本对象。
- 数据库层现在使用 oslo 版本对象来帮助未来的升级。 这将允许新升级的 heat-engine 使用具有旧模式的数据库。 请注意,这不会帮助升级到 kilo。
- 新的模板函数。
- 有一个新的 HOT 模板版本“20150430”,其中包含两个新函数“digest”和“repeat”。
- 多区域堆栈。
- 访问 Heat 服务。
- 管理员现在与项目一样可以访问服务。 这表现为“heat-manage service-list”和通过 horizon。
- 改进了 nova 和 neutron 属性的验证。
- 在给定资源上暂停堆栈创建/更新(堆栈钩子)。
- 新的贡献资源。
- Mistral 资源。
- gnocchi 警报 https://blueprints.launchpad.net/heat/+spec/ceilometer-gnocchi-alarm
- 支持 Keystone v3 服务器的项目、角色、用户和组的 keystone 资源。
- 堆栈生命周期调度程序提示。
- 软件配置改进。
- 选项使用 Swift TempURLs 进行部署信号 https://specs.openstack.org/openstack/heat-specs/specs/kilo/software-config-swift-signal.html
- 能够从堆栈外部从命令行创建和监视部署 https://specs.openstack.org/openstack/heat-specs/specs/kilo/software-config-trigger.html
升级说明
- 配置选项“num_engine_workers”的默认值已从 1 更改为基于 CPU 数量的值。 现在这与项目设置工作者数量的方式相同。
- 配置选项“max_nested_stack_depth”的默认值已增加到 5。
- 有一个新的配置选项“convergence”,默认情况下它是关闭的。 此功能尚未完成,此选项应保持关闭状态。
- 为了准备即将推出的主要功能(convergence),进行了一些重要的 DB 模式更改。 建议在模式升级期间关闭 heat-engine。
其他说明(弃用/EOL 等)
弃用
- 以下资源已被弃用 OS::Heat::HARestarter 和 OS::Heat::CWLiteAlarm
- CloudWatch API(heat-api-cw)
OpenStack 数据库服务 (Trove)
主要新特性
- 支持基于异步 GTID 复制的新复制策略(MySQL 5.6 新增)
- 现在支持通过一个 API 调用从单个主节点创建 n 个副本
- 现在可以使用新的 'eject-master' API 从无响应的主节点故障转移到最新的从节点
- 支持 Trove 客体管理器支持以下新的数据存储
- Vertica 和 Vertica 集群
- DB2
- CouchDB
- 扩展了当前的管理 API 层
- 现在有一个新的管理 API 来支持列出和查看已删除的 trove 实例
- 我们还添加了一个新的管理 API 来通过 RPC 机制 ping 数据存储的 guestagent
- Horizon 更新以支持 Trove 实例的调整大小。
- 用户现在可以编辑/更新 Trove 实例的名称
- 与跨项目的 OpenStack 性能分析库 (OSProfiler) 集成
升级说明
- 我们从弃用的 oslo-incubator 消息传递代码迁移到官方的 oslo.messaging python 模块。请查看 git.openstack.org/cgit/openstack/trove/tree/etc/trove/trove.conf.sample#n18 以获取有关为支持此而添加的更改配置值的更多详细信息,(变更)
- 当前未被任何 CI 测试的数据存储和策略已被移动到其各自模块中的“实验”部分。一旦这些数据存储和策略拥有适当的测试来对其进行练习和在 CI 中进行门控,它们将被提升到“稳定”状态。
- 添加了新的文档来帮助构建不同数据存储的 trove 客体镜像的过程,网址为 https://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 和其他服务
- 添加了间接 VM 访问以更好地利用浮动 IP
- 添加了事件日志支持以提供有关配置进度的详细信息
- 每个插件可选的默认节点组和集群模板
- Horizon 更新
- 引导式集群创建和作业执行
- 对象搜索的过滤
- 实现了节点组模板和集群模板的编辑
- 为运行 Oozie 的集群添加了 Shell 作业类型
- 新的作业类型端点以查询支持的作业类型列表
升级说明
详情:https://docs.openstack.org/developer/sahara/userdoc/upgrade.guide.html#juno-kilo
- Sahara 现在需要 policy.json 配置文件。
OpenStack 裸机服务 (Ironic)
主要新特性
状态机
Ironic 现在使用正式的模型来表示其管理的每个节点的状态 (新的 Ironic 状态机)。这使得添加了两个新流程:清理和检查。
- 租户之间的自动磁盘擦除现在默认启用。这可以扩展到执行其他清理步骤,例如重新应用固件、重置 BIOS 设置等 (节点清理)。
- 可以使用带内和带外方法来检查硬件。这些方法可用于自动更新节点属性 (硬件检查)。
版本头
Ironic REST API 期望每个 HTTP[S] 请求都传递一个新的 X-OpenStack-Ironic-API-Version 头。此标头允许客户端和服务器协商相互支持的接口 (REST API “微”版本)。如果没有此标头,REST 服务将默认设置为兼容模式,并产生与 Juno 客户端兼容的响应。但是,此模式会阻止访问 Kilo 中引入的大多数功能。
硬件驱动程序更改
添加了以下新驱动程序
对现有驱动程序进行了以下增强
- Configdrives 可以与“agent”驱动程序一起使用,代替元数据服务(如果需要)。
- SeaMicro 驱动程序支持串行控制台
- iLO 驱动程序支持 UEFI 安全启动
- iLO 驱动程序支持带外节点检查
- iLO 驱动程序支持在清理期间重置 ilo 和 bios
通过以下两个更改增强了对第三方和树外驱动程序的支持
- 驱动程序可以存储其自身的关于节点的“内部”信息。
- 驱动程序可以注册自己的定期任务,由 Conductor 运行。
- vendor_passthru 方法现在支持其他 HTTP 方法(例如,PUT 和 POST)。
- vendor_passthru 方法现在可以在 REST API 中发现。请参阅 节点 vendor passthru 和 驱动程序 vendor passthru
其他更改
- 逻辑名称 可以用于寻址节点,除了它们的规范 UUID 之外。
- 对于具有不同本地磁盘的服务器,可以提供影响操作系统配置到哪个磁盘设备的提示 (指定磁盘以进行部署)。
- 已添加从 HTTP[S] 来源直接获取内核、ramdisk 和实例镜像的支持,以删除对 Glance 的依赖。 将 ironic 作为独立服务使用
- 节点可以通过 REST API 调用置于维护模式。在这样做时,可以指定一个可选的维护原因。
已知问题
- 运行多个 nova-compute 进程不受官方支持。
- 虽然 Ironic 包含一个 ClusteredComputeManager,它允许使用 Ironic 运行多个 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
推荐的升级过程记录如下
- https://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”
- Juno Nova “baremetal” -> Juno Ironic
- Juno Ironic -> Kilo Ironic
有关步骤 1 和 2 的文档,请参见:https://wiki.openstack.org/wiki/Ironic/NovaBaremetalIronicMigration