ReleaseNotes/Havana
OpenStack 2013.2 (Havana) 发布说明
在本文档中,您将找到关于 2013.2 (Havana) 版本 OpenStack 的主要新特性、已知错误和升级技巧的描述。
可以在 简体中文、日语、韩语 和 巴西葡萄牙语 中找到翻译后的发布说明。
目录
- 1 OpenStack 2013.2 (Havana) 发布说明
- 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.9.1 主要新特性
- 1.9.1.1 文档大幅改进
- 1.9.1.2 与 Tempest 的初步集成
- 1.9.1.3 并发资源操作
- 1.9.1.4 网络/Neutron 支持大幅改进
- 1.9.1.5 对原生模板语言 (HOT) 的初步支持
- 1.9.1.6 提供程序和环境抽象
- 1.9.1.7 Ceilometer 集成用于指标/监控/警报
- 1.9.1.8 UpdateStack 改进
- 1.9.1.9 与 Keystone trusts 功能的初步集成
- 1.9.1.10 资源文档改进
- 1.9.1.11 更多原生资源类型
- 1.9.1.12 新的 Rackspace 资源类型
- 1.9.1.13 堆栈挂起/恢复
- 1.9.1.14 将配置合并到单个 heat.conf 和单个 paste-api.ini
- 1.9.1.15 Heat 独立模式
- 1.9.1.16 已知问题
- 1.9.1.17 升级说明
- 1.9.1 主要新特性
- 1.10 OpenStack 文档
OpenStack 对象存储 (Swift)
主要新特性
- 全局集群支持
Swift 1.8.0 中引入的“区域”概念已通过支持使用单独的复制网络和配置读写亲和力来增强。这些特性结合起来,为跨广阔地理区域的单个 Swift 集群提供支持。
- 添加了 conf.d 配置文件支持
允许 Swift 守护程序和服务器选择性地接受目录作为配置参数。这允许配置文件不同部分由单独的文件管理,例如,每个中间件可以使用单独的文件来管理其特定的配置设置。
- 磁盘性能
对象服务器现在可以配置为使用线程池来提高性能并平滑系统中的延迟。此外,许多磁盘操作已重新排序,以提高可靠性和性能。
- 添加了对池化 memcache 连接的支持
- 选择交接节点计算速度更快
已修复的重要错误
- 修复了 memcache 条目不会过期的错误
- 修复了代理继续从存储读取的错误
即使客户端已断开连接
- 修复了版本写入中 UTF-8 处理问题
额外的操作优化
- 将默认 wsgi worker 设置为 cpu_count
将 wsgi worker 的默认值从 1 更改为自动。代理、容器、帐户和对象 wsgi 服务器中的 worker 默认新值将为每个进程生成与 CPU 核心数量相同的 worker。这对于某些配置来说可能不是理想的,但更有可能产生一个成功的开箱即用的部署。
- 添加了 reveal_sensitive_prefix 配置设置以过滤身份验证令牌
由代理服务器记录。
- 添加了对首先复制对象复制分区的功能
复制。现在还可以配置存储节点在删除本地交接分区之前必须与多少个远程节点通信。
- 添加了 crossdomain.xml 中间件。请参阅
https://docs.openstack.org/developer/swift/crossdomain.html 以获取详细信息
- 许多改进使 Swift 能够在 PyPy 下运行
已知问题
升级说明
阅读完整的变更日志说明 https://github.com/openstack/swift/blob/master/CHANGELOG 以查看任何会影响升级的配置更改。
与往常一样,Swift 可以在不中断服务的情况下升级。
OpenStack Compute (Nova)
主要新特性
API
- Compute (Nova) REST API 包含一个实验性的新版本 (v3)。新版本的 API 包含许多清理,以及实现和版本化 API 扩展的框架。预计此 API 将在 Icehouse 版本中最终确定。(蓝图)。
- 已添加以下扩展到 Compute (Nova) REST API
- CellCapacities:添加了确定 Cell 中 RAM 量以及 Cell 中可用 RAM 量的功能 (蓝图)。
- ExtendedFloatingIps:为添加浮动 IP 命令添加了可选的 fixed_address 参数,允许将浮动 IP 与固定 IP 地址关联 (蓝图)。
- ExtendedIpsMac:将 Mac 地址添加到服务器响应 (蓝图)。
- ExtendedQuotas:允许管理员删除租户的非默认配额,将其恢复为配置的默认配额 (蓝图)。
- ExtendedServices:添加了存储服务已禁用的原因的功能 (蓝图)。
- ExtendedVolumes:将附加的卷添加到实例信息 (蓝图)。
- Migrations:添加了通过 Cell 或 Region 列出正在进行的调整大小和迁移操作的功能 (蓝图)。
- ServerUsage:将 launched_at 和 terminated_at 值添加到实例显示响应 (蓝图)。
- UsedLimitsForAdmin:允许通过管理 API 获取租户特定的配额限制 (蓝图)。
- Compute 服务的 EC2 API 已更新为使用与 官方 EC2 API 更加一致的错误代码。(蓝图)
Cells
- Cells 调度程序已更新为支持通过新的 scheduler_filter_classes 和 scheduler_weight_classes 选项在 [cells] 配置组中进行过滤和加权。还添加了新的 ram_by_instance_type 和 weight_offset 加权模块,消除了先前版本中使用的 Cell 的随机选择。此外,一个过滤器类 TargetCellFilter 允许管理员指定调度程序提示,以将构建定向到特定的 Cell。这使得 Cell 调度的工作原理在概念上与现有的主机调度类似。(蓝图)
- 现在支持在单个 Cell 内迁移虚拟机实例。不支持在 Cell 之间迁移虚拟机实例。(蓝图)
- Cinder 现在在 Nova 使用 Cells 时受支持。(蓝图)
计算
通用
- Nova 有一个新功能,允许您“搁置”一个实例。这允许停止较长时间的实例被移出超visor 以释放资源 (蓝图)。
- 已向元数据服务和配置驱动设施添加了一个 vendor_data 部分。这允许扩展可用于来宾的元数据,以包含供应商或站点特定的数据 (蓝图)。
Baremetal 驱动程序
Hyper-V 驱动程序
- 支持 Windows Server / Hyper-V Server 2012 R2 (蓝图)。
- VHDX 格式支持 (蓝图)。
- 动态内存支持 (蓝图)。
- 临时存储支持 (蓝图)。
- 用于 Ceilometer 集成的计算指标支持 (蓝图)。
libvirt (KVM) 驱动程序
- 为使用 hw_qemu_guest_agent 属性设置为 yes 的虚拟机添加了对 QEMU 客体代理 (qemu-guest-agent) 的支持 ( 蓝图)。
- Nova 添加了将物理计算节点上的 PCI 设备直通到虚拟机的支持。目前只有 libvirt 驱动程序提供了可用的实现 ( 基础蓝图, libvirt 蓝图)。
- 添加了从 Cinder 提取 QoS 参数的支持,并在使用基于 libvirt 的虚拟机管理程序时,根据这些参数限制磁盘访问 (蓝图)。
- 添加了 Indigo Virtual Switch 虚拟接口驱动程序 (蓝图)。
- RBD 现在被支持作为存储镜像的后端 (蓝图)。
PowerVM 驱动程序
vmwareapi (VMWare) 驱动程序
- 添加了管理多个集群的支持 (蓝图)。
- 镜像克隆策略 - 允许镜像指定是作为链接克隆还是完整克隆镜像 (蓝图)
- 添加了使用配置驱动程序的支持 (蓝图)
XenServer 驱动程序
- 支持显示服务器控制台的日志 (蓝图)
- 支持将大型临时磁盘拆分为 1024GB 或 2000GB 的块,以解决 VHD 最大磁盘大小限制 (蓝图)
- 允许镜像具有 AutoDiskConfig=disabled 的设置,这意味着用户无法在这些镜像和服务器上设置 AutoDiskConfig=Manual (蓝图)
- 改进了 nova 与 Nova agent 通信的方式,以便能够在同一个云中使用 cloud-init 和 Nova agent (蓝图)。
- 能够将虚拟机引导到运行 Linux 发行版安装程序的状态,以帮助用户构建自己的自定义镜像 (蓝图)
- 对 XenServer core 的实验性支持,以及在 XenServer core Dom0 中运行 nova-compute (蓝图)。
- 对使用 LVHD 存储 SR 的实验性支持,以及对从压缩原始 glance 镜像启动的支持 (蓝图)
- 大量工作以提高稳定性和可支持性。例如,能够配置发送到 glance 的快照使用的压缩比率,以及由于磁盘对于目标大小太小而导致的服务器降级期间的错误自动回滚。
配额
- 默认配额现在可编辑,以前此配额的值是固定的。使用 nova quota-class-update default <key> <value> 命令更新默认配额 (蓝图)。
- 现在可以按用户定义配额 (蓝图)。
- 现在可以删除给定租户或用户的配额,并且其配额将重置为默认值 (蓝图)。
Networking
- 网络和 IP 地址分配现在与实例配置涉及的其他操作并行执行,从而加快了启动时间 (蓝图)。
- Nova 现在将选择用于托管实例的计算节点的 hostname 传递给 Neutron。Neutron 插件现在可以使用此信息来根据需要更改计算节点的物理网络配置 (蓝图)。
通知
- 当主机聚合被创建、删除、扩展、收缩或以其他方式更新时,现在会生成通知 (蓝图)。
- 现在在构建实例失败时生成通知 (蓝图)。
调度器
- 添加了 force_nodes 到过滤属性中,允许操作员在使用 baremetal 驱动程序时显式指定用于配置的节点 (蓝图)。
- 添加了使 IsolatedHostsFilter 限制性更小的能力,允许隔离主机使用所有镜像,方法是操作 nova.conf 中新配置指令 restrict_isolated_hosts_to_isolated_images 的值 (蓝图)。
- 添加了一个 GroupAffinityFilter 作为现有 GroupAntiAffinityFilter 的对应物。新的过滤器允许将实例调度到特定主机组中的主机 (蓝图)。
- 添加了过滤器设置新的 run_filter_once_per_request 参数为 True 的能力,如果它们的过滤决策预计对请求中的所有实例都有效。这可以防止在不需要时为请求中的每个实例重新运行过滤器。此设置已应用于许多现有过滤器 (蓝图)。
- 添加了按聚合过滤的 AggregateRamFilter 和 AggregateCoreFilter,它们在主机聚合上而不是全局强制执行自身。AggregateDiskFilter 将在未来的版本中添加 (蓝图)。
- 通过删除从所有计算节点到所有调度器的周期性消息,提高了调度器性能 (蓝图)。
- 通过允许过滤器指定它们只需要为多个实例的给定请求运行一次,提高了调度器性能 (蓝图)。
存储
- 附加的 Cinder 卷现在可以加密。数据在读取和写入时按需解密,同时向实例呈现正常的块存储设备 (蓝图)。
- 添加了透明地交换附加到实例的 Cinder 卷的能力。虽然实例可能会暂停片刻,但不会丢失任何读取或写入操作 (蓝图)。
- 当连接到 NFS 或 GlusterFS 后端卷时,Nova 现在使用 Cinder 配置中设置的挂载选项。以前,必须在将访问这些卷的每个计算节点上设置挂载选项 (蓝图)。
- 添加了对 GlusterFS 的原生支持。如果 qemu_allowed_storage_drivers 设置为 gluster 在 nova.conf 中,则配置 QEMU 使用 libgfapi 直接访问卷,而不是通过 fuse (蓝图)。
- QEMU 辅助快照现在用于提供创建 cinder 卷快照的能力,即使使用的存储后端本身不支持它们,例如 GlusterFS (蓝图)。
- 现在支持 iSER 传输协议以访问存储,与通过 TCP 使用 iSCSI 相比,它提供了性能改进 (蓝图)。
Conductor
- Conductor 现在能够生成多个并行运行的 worker 线程,要生成的线程数由 nova.conf 中 workers 的值决定 (蓝图)。
内部更改
- Nova 现在使用 Oslo 提供的通用服务基础设施 (蓝图)。
- 已经进行了更改,以便可以回溯需要数据库迁移的错误修复 (蓝图)。
- 在最终支持 Nova 部署的实时升级方面取得了重大进展。在 Havana 中,改进包括对服务之间发送的消息版本进行更多控制 (请参阅 nova.conf 中的 [upgrade_levels] 部分) (蓝图),以及新的对象层,有助于将代码库与数据库模式的细节解耦 (蓝图)。
已知问题
- 如果您使用的是 cells,在删除实例时会出现问题。与 Grizzly 不同,删除实例将立即从顶级 (API) cell 中删除它们,然后再告诉子 cell 删除实例。这不是预期的行为。这种副作用是会发送 delete.start 和 delete.end 通知。如果子 cell 中的实例删除成功,则会发送第二个 delete.start 和 delete.end 通知。如果失败,数据库将不同步,实例似乎从 API cell 中消失,但仍然存在于子 cell 中。cells 中内置的自然修复代码最终会纠正此问题并在一段时间后将实例恢复到 API cell DB 中,具体取决于修复配置。此错误将在 havana-stable 发布后不久得到修复。
- 请查看 https://bugs.launchpad.net/nova/+bug/1240247
升级说明
- 请注意,周期性任务现在将比以前更频繁地运行。周期性任务运行的频率始终是可配置的。但是,以前启动下一次任务计时器是在上次任务运行完成后启动的。现在,任务以恒定频率运行,无论给定运行需要多长时间。这使得清楚任务应该何时运行。但是,副作用是任务现在默认情况下会更频繁地运行。(https://review.openstack.org/#/c/26448/)
- security_groups_handler 选项已从 nova.conf 中删除。它是为 Quantum 添加的,不再需要。(https://review.openstack.org/#/c/28384/)
- 此更改不应影响升级,但这是所有新部署的行为变化。以前的版本创建的默认 m1.tiny flavor 磁盘大小为 0。默认值现在为 1。0 表示不进行任何磁盘调整,而只是使用镜像中设置的磁盘大小。1 表示施加 1 GB 限制。如果您希望创建或修改 flavor 以使用它,仍然支持特殊值 0。(https://review.openstack.org/#/c/27991/)。
- 已删除插件框架,因为可以通过其他方式提供它所提供的功能。(https://review.openstack.org/#/c/33595)
- 删除了 notify_on_any_change 配置选项。(https://review.openstack.org/#/c/35264/)
- compute_api_class 选项已被弃用,将在未来的版本中删除。(https://review.openstack.org/#/c/28750/)
- Nova 现在使用 Neutron,Quantum 已更名。(https://review.openstack.org/#/c/35425/)
- Nova 现在将拒绝在定义了多个 Neutron 网络但服务器创建请求中未指定任何网络时创建服务器的请求。以前 Nova 会将服务器附加到 *所有* 网络,但共识是这种行为没有意义。(https://review.openstack.org/#/c/33996/)
- vmware 配置变量 'vnc_password' 现在已被弃用。用户不再需要输入密码即可访问 VNC。现在它的工作方式与其他 virt 驱动程序相同。(https://review.openstack.org/#/c/43268/)
OpenStack Image Service (Glance)
主要新特性
属性保护
现在可以授权特定用户组创建、更新和读取任意实体的不同属性。Image Service 中有两种类型的镜像属性
- 核心属性,由镜像模式指定。
- 元属性,是可以添加到镜像的任意键值对。
现在可以通过 Image Service 的公共 API 调用限制对元属性的访问,方法是使用属性保护配置文件 (在 glance-api.conf 文件中指定)。例如
- 仅允许管理员限制所有属性交互。
- 允许同时具有 billing 角色的管理员和用户读取和修改所有以 ``x_billing_code_`` 开头的属性。
注册表 API
已为注册表服务 (符合 db_api) 创建了一个新的 API,使用基于 HTTP 的 RPC。该 API
- 允许 Glance 继续支持使用早期注册表服务的旧版部署。Glance v2 完全放弃了注册表服务的使用,这在某些情况下可能导致安全漏洞 (所有数据库参数必须存在于 glance-api.conf 中,如果作为“公共”服务部署)。
- 使向数据库 API 实现新方法更容易,而无需修改注册表的 API。
更新包括一个与远程注册表服务通信的注册表数据库驱动程序,该服务又直接与数据库后端通信。注册表服务实现了从 API 外部实际使用的所有数据库 API 公共函数。必须启用 Image Service 的 API v2,并且 Image Service 客户端必须指向此服务。 蓝图
存储支持
Image Service 现在支持以下后端存储
- Sheepdog。Image Service 现在可以将镜像存储在后端 Sheepdog 集群中。Sheepdog 是一个开源项目,为 QEMU 提供分布式存储系统。
- Cinder。OpenStack Cinder 现在可以用作 Image Service 的块存储后端。 蓝图
- GridFS。Image Service 现在支持 GridFS 分布式文件系统。使用新的 .conf 选项 mongodb_store_uri 和 mongodb_store_db 启用支持。支持 `gridfs://<IMAGE>` 格式的 GridFS 位置。 “GridFS 网站” 蓝图
多个镜像位置
Image service 镜像现在可以存储在多个位置。这可以有效地消耗镜像数据,并在主镜像发生故障时使用备份镜像。
相关更新包括
- 用于位置 API 的策略层,以启用更改镜像位置的策略检查。 蓝图
- 直接 URL 元数据。每个 Image Service 存储系统现在可以将位置元数据存储在镜像位置数据库中,从而使其能够在启用 direct_url 时将特定于直接 URL 的元数据返回给客户端。例如,给定一个 file://URL,可以向客户端返回 NFS 导出主机、挂载点和 FS 类型。
- 下载镜像时支持多个位置。这允许 API 客户端从多个后端存储消耗镜像。 蓝图
- 索引的校验和镜像属性。校验和镜像属性现在已索引,允许用户通过指定校验和来搜索镜像。 蓝图
- Scrubber 更新。Scrubber 是一个清理已删除镜像的工具。Scrubber 现在支持 'pending_delete' 镜像的多个位置。 蓝图
- 元数据检查。现在可以在位置更改时启用位置代理层上的元数据检查。 蓝图
等等!
- 可配置的容器和磁盘格式。Glance 以前仅支持一组特定的容器和磁盘格式,这些格式很少是任何给定部署实际支持的格式。现在可以配置可接受的容器和磁盘格式集。 蓝图
- 存储配额。现在可以将用户限制为所有存储系统(在 .conf 文件中配置的 total_storage_quota)的总计 N 字节。
- 成员策略。已为成员 API 添加策略执行(类似于镜像/位置策略执行)。新的策略包括 'new_member'、'add_member'、'get_member'、'modify_member'、'get_members' 和 'delete_member'。 蓝图
升级说明
- 跳过 glance 注册表中的身份验证选项。如果部署者已保护 Glance API 服务器和 Glance 注册表服务器之间的通信,现在可以作为性能优化让注册表服务器跳过重新身份验证。在注册表配置中选择 glance-registry-trusted-auth 管道,并在 API 配置中将 'send_identity_headers' 配置值设置为 True。然后 glance api 会将所需身份标头(如用户和租户信息)发送到 glance 注册表。如果您考虑采用此配置,请注意安全权衡。
- Swift Store SSL 压缩选项。'swift_store_ssl_compression' 配置值可以禁用 http swift 请求的 SSL 层压缩。这可以提高已经压缩格式的镜像的性能。
- Context Admin 策略。已添加新的策略规则 `"context_is_admin": "role:admin"` 以确定请求上下文是否为管理员。请确保使用此规则更新 policy.json 文件。
已知问题
OpenStack Dashboard (Horizon)
发布概述
Havana 发布周期带来了 *三个* 新项目的支持,以及对几个现有项目的重大新功能。除此之外,用户体验的许多方面都得到了改进,无论是对于最终用户还是管理员。社区不断发展壮大。Havana 版本是迄今为止 OpenStack Dashboard 项目的最佳版本!
亮点
新特性
Heat
OpenStack Orchestration 项目 (Heat) 在 Havana 中首次亮相,Horizon 提供了完全支持来管理您的 Heat 堆栈。亮点包括从支持的 Heat 模板格式动态生成表单、堆栈拓扑可视化以及完全堆栈资源检查。
Ceilometer
在 Havana 中首次亮相的还有 OpenStack Metering 项目 (Ceilometer)。Horizon 包含对 Ceilometer 的初步支持,以便管理员能够查询云的使用情况,从而更好地了解系统的运行和利用方式。
域、组等:Identity API v3 支持
随着 OpenStack Identity Service (Keystone) v3 API 在 Havana 版本中完全成熟,Horizon 已经添加了对所有新功能的完全支持,例如域和组、角色管理以及分配给域和组、基于域的身份验证和域上下文切换。
Trove 数据库
OpenStack Database as a Service 项目 (Trove) 在 Havana 周期中从孵化阶段毕业,并且他们辛勤工作,为 OpenStack dashboard 交付了一组面板,用于配置和管理您的 Trove 数据库和备份。免责声明:鉴于 Trove 作为集成项目的第一个官方版本要到 Icehouse 才会发布,此功能仍应被视为实验性的,并且可能随时更改。
Nova 功能
Horizon 支持的 OpenStack Compute (Nova) 功能数量不断增加。Havana 版本中的新功能包括
- 可编辑的默认配额。
- 管理员可以重置服务器/实例的密码的能力。
- 可用区支持。
- 改进的区域支持。
- 实例调整大小。
- 改进的从卷启动支持。
- 每个项目的风味支持。
所有这些都提供了一套更丰富的选项,用于控制何时以及如何启动实例,并改进启动后如何管理它们。
Neutron 功能
许多重要的 OpenStack Networking (Neutron) 新功能在 Havana 版本中得到展示,最值得注意的是
- VPN 即服务。
- 防火墙即服务。
- 可编辑且交互式的网络拓扑可视化。
- Neutron 和 Nova 网络之间的完全安全组和配额对等。
这些功能允许在构建使用 Neutron 的云的软件定义网络时具有极大的灵活性。
用户体验改进
自助密码更改
得益于 Identity API v2.0 (Keystone) 的更改,用户现在可以更改自己的密码,而无需涉及管理员。这更安全,并且使每个人都摆脱了麻烦。此功能尚未在 Identity API v3 的用户中提供。
更好的管理员信息架构
Admin dashboard 的几个部分已重新排列,以便更逻辑地将信息分组在一起。此外,已添加新的信息源,以便管理员更好地了解云中主机的状态及其与主机聚合、可用区等的关系。
改进的注销用户消息
已添加几个新的指示器,以告知用户为什么在意外地登陆登录屏幕时被注销。这些指示器清楚地表明用户的会话是否已过期、由于不活动而超时,或者他们未被授权访问他们尝试访问的 dashboard 部分。
安全组规则模板
由于有许多非常常见的安全组规则,用户每次都费力地重新添加(例如 SSH 和 ping 的规则),Horizon 团队添加了常见规则的预配置模板,用户可以单击两次选择并将其添加到安全组。这些规则可以通过 SECURITY_GROUP_RULES 设置进行配置。
社区
翻译团队
OpenStack 翻译团队在 Havana 周期中完全成熟,Horizon 中的翻译质量是迄今为止最好的。祝贺该团队成功地构建了最初在 OpenStack Dashboard 项目中启动的社区。
用户体验组
一个新兴的 OpenStack 用户体验组在 Havana 周期中形成,其使命是改进整个 OpenStack 的用户体验。他们迅速成为设计和改进 OpenStack Dashboard 中功能的过程不可或缺的一部分。现在有了专门的人员积极协作以提高标准,预计未来用户体验将得到显着改善。
底层改进
更不复杂的 LESS 编译:不再需要 NodeJS
由于各方的抗议,并且由于 Python 社区对 LESS 的支持得到改善,Horizon 已从项目中删除了所有 NodeJS 痕迹。现在我们使用 lesscpy 模块将 LESS 编译成最终样式表。这不应以任何方式影响大多数用户,但它应该使下游发行版等更容易。
基于角色的访问控制
Horizon 已开始过渡到使用其他 OpenStack 项目的 policy.json 文件来强制执行 dashboard 中的访问控制(如果提供了这些文件)。这意味着访问控制更可配置,并且可以在源项目和 Horizon 之间保持同步。目前,这仅受 Keystone 和 Nova policy 文件部分支持。完全支持将在下一个版本中提供。您需要设置 POLICY_FILES_PATH 和 POLICY_FILES 设置才能启用此功能。
Other Improvements and Fixes
- 现在支持 Swift 容器和对象元数据。
- 新的利用率和配额可视化。
- Cisco N1K 路由器插件的附加功能通过一个特殊的附加 dashboard 提供,在 Neutron 中启用和支持时。
- 支持对自签名或其他指定的 SSL 证书进行检查。
- Glance 镜像类型现在是可配置的。
- 改进了 dashboard 中的排序。
- API 调用效率优化。
- 表单中的必填字段现在得到更好的指示。
- 可以启用会话超时,以在用户不活动一段时间后注销用户,作为一项安全功能。
- PEP8 和代码质量合规性得到显着改进。
- 数百个错误修复和次要用户体验改进。
升级信息
允许的主机
对于 Horizon 的生产部署,必须将 ALLOWED_HOSTS 设置添加到您的 settings.py 或 local_settings.py 文件中。此设置是在 Django 1.5 中添加的,是一项重要的安全功能。有关更多信息,请参阅 local_settings.py.example 文件或 Django 的文档。
启用 Keystone 和 Neutron 功能
如果您对 OPENSTACK_KEYSTONE_BACKEND 或 OPENSTACK_NEUTRON_NETWORK 设置有现有的配置,则需要查阅 local_settings.example.py 文件,以了解添加的新选项。现有配置将继续工作,但可能没有正确的密钥来启用 Havana 中的某些新功能。
已知问题和限制
会话创建和健康检查
如果您使用健康监控服务来 ping 主页,并结合基于数据库的会话后端,您可能会遇到过多的会话创建。这个问题很快将得到解决,但在此期间,建议的解决方案是编写一个定期作业,以定期从会话存储中删除过期的会话。
Deleting large numbers of resources simultaneously
使用“全选”复选框一次删除大量资源可能会导致网络超时(具体取决于配置)。这是因为底层 API 本身不支持批量删除,因此 Horizon 必须在后台逐个发送请求来删除每个资源。
与 Neutron 冲突的安全组名称
虽然 Nova Network 在实例启动时指定安全组时仅使用安全组的名称,但 Neutron 可以接受名称或 UUID。为了支持两者,Horizon 会传递所选安全组的名称。但是,由于 Neutron 中存在一些数据隔离问题,如果管理员用户尝试指定与另一个项目中的同名安全组(他们也具有访问权限)时,可能会出现问题。Neutron 将找到多个匹配的安全组名称,并且将无法启动实例。当前的解决方法是对于管理员用户,将安全组名称视为唯一。
非计算资源的图表损坏
资源使用页面折线图在选择“按分组”时不会显示非计算资源 -- https://bugs.launchpad.net/horizon/+bug/1243796
向后兼容性
Havana Horizon 版本应与 OpenStack 集成项目的 Havana 和 Grizzly 版本(Nova、Swift 等)完全兼容。其他 OpenStack 项目中不存在于 Grizzly 中的新功能显然只有在其余堆栈支持它们时才能在 Horizon 中工作。
总的来说,已经做出了很大的努力来保持与迄今为止基于 Horizon 构建的第三方开发人员的兼容性。
OpenStack Identity (Keystone)
主要新特性
- 改进的部署灵活性
- 授权数据(租户/项目、角色、角色分配;例如 SQL)现在可以存储在与身份验证数据(用户、组;例如 LDAP)不同的后端中,由“assignments”驱动程序确定,而身份验证数据由“identity”驱动程序确定
- 凭据(例如 ec2 令牌)现在可以存储在与身份验证数据不同的后端中,由“credentials”驱动程序确定
- 能够指定更细粒度的基于角色的访问控制策略规则(例如,基于 API 请求/响应主体中的属性)
- 使用
REMOTE_USER进行外部身份验证的可插拔处理 - 令牌生成,当前是 UUID 或 PKI 基于的,现在是可插拔的,并且与令牌持久性分离。部署者可以编写
keystone.token.provider.Provider接口的自定义实现,并配置 keystone 以使用它,并使用[token] provider。因此,[signing] token_format现在已被弃用,以支持这个新的配置选项。 - 通过 Apache httpd 部署的一流支持
- 新的部署功能
- 能够在键值存储(例如 memcached 或 redis)中缓存驱动程序调用的结果
-
keystone-manage token_flush命令,以帮助清除过期的令牌
- 新的 API 功能
- 使用 OAuth 1.0a 向任意消费者委派基于角色的授权
- API 客户端现在可以选择不将服务目录包含在令牌响应中
- 域角色分配现在可以由该域的项目继承
- 聚合的角色分配 API
- 外部身份验证提供程序现在可以将绑定引用嵌入到令牌中,以便远程服务可以选择性地根据呈现的外部身份验证机制验证呈现令牌的用户的身份。目前,仅支持
kerberos。 - 端点现在可以显式地映射到项目,有效地防止某些端点根据令牌的项目范围出现在服务目录中。但这不会阻止最终用户通过其他方式访问或使用他们知道的端点。
- 针对用户和项目/租户的创建、更新和删除操作发出的事件通知
- 常规性能改进
- v2 和 v3 API 现在使用相同的逻辑来计算在身份验证期间分配给用户-项目对的角色列表,基于用户+项目、组+项目、用户+域继承和组+域继承的角色分配(其中域继承的角色分配允许域级别的角色分配应用于该域拥有的所有项目)。v3 API 现在使用类似的方法来计算域作用域令牌的用户+域角色分配。
- 日志处理现在使用来自 Oslo-incubator 的通用日志记录实现,与其他 OpenStack 项目保持一致
- 扩展的 SQL 迁移现在可以使用
keystone-manage db_sync --extension=«extension-name»从主迁移仓库独立管理。
已知问题
- 使用 LDAP 分配后端时,尝试从实际上没有该角色的用户那里取消分配角色,反而会意外地将该角色分配给用户(请参阅 bug 1242855)
- six v1.4.1 或更高版本是未记录的需求(bug 1237089)。如果没有 six,Keystone 将在启动时失败,并显示
ImportError: No module named six或pkg_resources.DistributionNotFound: six。 - 一个 特定于域的身份后端(例如,每个域的唯一 LDAP 配置)的实验性实现始于 Havana,但仍然不完整,将在 Icehouse 中完成。
OpenStack 网络服务 (Neutron)
主要新特性
新名称
OpenStack Networking 项目在此版本中有一个新名称:Neutron。Havana 版本将使用来自 Grizzly Quantum 的配置文件;但是,Quantum 的使用已被弃用,部署者应尽快更新所有引用。对 Quantum 配置文件和可执行名称的支持将在 2014.1 (Icehouse) 中删除。
高级服务
Neutron 在最新的开发周期中添加了两个新的高级服务,并修改了负载均衡器服务。
负载均衡器 (LBaaS) 负载均衡服务和 API 扩展在 2013.1 (Grizzly) 版本中作为实验性功能发布,现在适合部署。此版本附带更新的 API 和 HAProxy 驱动程序支持。预计在 Icehouse 中会有供应商驱动程序,Radware 已经发布了一个与 Havana 兼容的树外驱动程序供下载。负载均衡服务可以在多个网络节点上运行。
VPN (VPNaaS) 站点到站点 IPSec VPN 现在通过 VPN 服务插件支持。VPN API 支持 IPSec,并且 L3 代理附带一个 OpenSwan 驱动程序。
防火墙 (FWaaS) 新的边缘防火墙服务包含在此版本中。防火墙服务使租户能够配置纵深防御,因为规则可以同时在边缘通过防火墙 API 和在 VIF 上通过安全组 API 应用。FWaaS API 和驱动程序被认为是实验性的,因为 Neutron 将在下一个发布周期中继续开发。团队欢迎社区对该扩展的反馈。
新插件
模块化 Layer 2 (ML2) 模块化 Layer 2 (ML2) 插件是 Neutron 的一个新开源插件。该插件是一个框架,允许 OpenStack Networking 同时利用复杂现实世界数据中心中发现的各种 Layer 2 网络技术。它当前适用于现有的 Open vSwitch、Linux Bridge 和 L2 代理。ML2 插件通过类型驱动程序和不同的机制驱动程序支持本地、平面、VLAN、GRE 和 VXLAN 网络类型。有适用于 Arista、Cisco Nexus、Hyper-V 和 Tail-f NCS 的供应商驱动程序。ML2 是 Linux Bridge 和 Open vSwitch 插件的替代品,现在这些插件已被弃用。 更多 ML2 信息
其他功能
- 在创建端口时支持 PXE 启动选项
- 改进的翻译支持
已知问题
从 Grizzly 升级
在升级代码后启动 neutron-server,但在迁移之前,会导致一些数据库模型在没有发生适当的迁移的情况下被创建。应采取以下升级设置以确保正确升级的数据库。
- 确保数据库已为 Grizzly 盖章,然后再停止服务。
quantum-db-manage --config-file /path/to/quantum.conf --config-file /path/to/plugin/conf.ini stamp grizzly - 停止 quantum-server 并部署 Neutron 代码 此时不要启动 neutron-server。
- 运行 Havana 迁移
neutron-db-manage --config-file /path/to/quantum.conf --config-file /path/to/plugin/conf.ini upgrade havana - 启动 neutron-server
代理可能报告不同的主机名
Neutron 更改了确定主机名的方法,从使用主机的 FQDN 到 gethostname(2) 调用返回的结果。此更改是为了与 OpenStack 的其余部分保持一致。代理报告的主机名可能会有所不同,并且在代理更新到 Havana 后会发生变化。如果是这样,则需要将所有网络重新安排到新的 L3 和 DHCP 代理名称,以恢复服务。部署者重新安排网络时,此更改将导致短暂的数据平面中断。
L3 代理不再默认发送 Gratuitous ARP
L3 代理以前默认发送 Gratuitous ARP。在某些发行版上使用网络命名空间部署时,发送 Gratuitous ARP 的调用会导致内核崩溃。部署者可以通过在 L3 代理的配置文件中设置 send_arp_for_ha=3 来启用 Gratuitous ARP。
防火墙即服务
实验性的 FWaaS API 扩展仅支持每个租户一个活动策略。在 Icehouse 开发周期中,该行为将更改为允许将不同的策略附加到不同的租户路由器。
升级说明
- 对 neutron-dhcp-agent 的更改要求您先升级您的 dhcp-agent。然后等待 dhcp_lease 时间到期。至少等待 dhcp_lease 时间后,更新 neutron-server。否则,可能会导致实例被删除并且 dnsmasq 进程尚未释放租约,并且 neturon 将该 ip 分配给新的端口。(https://review.openstack.org/#/c/37580/)
- 有一个新的默认 policy.json 文件。具有现有部署的部署者应更新其文件,因为许多选项已更改:policy.json
弃用通知
- 在配置文件和可执行文件名中使用“quantum”或“Quantum”已正式弃用。这是将支持这些名称的最后一个版本,新的部署应使用适当的 Neutron 名称。对兼容性的支持仅存在于此版本中。
- Linux Bridge 和 Open vSwitch 插件已被功能冻结,将在 J (2014.2) 版本中删除。新的部署应选择 ML2,而不是单独的 Open vSwitch 或 Linux Bridge 插件。
OpenStack Block Storage (Cinder)
主要新特性
- 卷迁移 - 管理员 API 将卷迁移到不同的 Cinder 后端
- 调度器提示扩展添加到 V2 API
- 添加了本地块存储驱动程序以允许使用原始磁盘而无需 LVM
- 添加了扩展现有卷大小的功能
- 添加了将卷从一个租户转移到另一个租户的功能
- 添加了 API 调用以启用编辑默认配额设置
- 添加了配置选项以允许自动展平快照,用于依赖于创建卷的后端
- 允许 API 在 volume-attach 中接受“host-name”,而不仅仅是实例 uuid
- 启用通用的备份层,以允许来自任何没有内部优化的 iSCSI 设备的备份
- 添加了 Ceph 驱动程序到备份服务(允许 Ceph 作为备份目标,以及 Ceph 到 Ceph 的差异备份)
- 添加了速率限制信息到提供者信息,可以传递给 Nova 并由超visor 使用
- 新的 Windows Storage Server 驱动程序功能(蓝图)
新的供应商驱动程序
- Dell EqualLogic 卷驱动程序
- VMware VMDK cinder 驱动程序
- IBM General Parallel File System (GPFS)
现有驱动程序的重大添加
- 为华为存储系统添加 Fibre Channel 驱动程序
- 添加一个 NFS 卷驱动程序以支持 Cinder 中的 Nexenta 存储
- 对现有驱动程序的各种更新和设备特定添加也已完成,几乎所有现有的供应商驱动程序
- 针对 IBM Storwize 驱动程序的优化卷迁移
新的备份驱动程序
- 允许 Ceph 作为卷备份的选项
- IBM Tivoli Storage Manager (TSM)
已知问题
- Bug #1237338:将卷上传到镜像时使用 VMWare 卷驱动程序失败
- Bug: #1240299:清除卷操作在所有 LVM vol 删除时调用,即使是精简配置的。在发布修复之前,请确保在 cinder.conf 中设置 volume_clear=None
升级说明
- ThinLVM 卷驱动程序功能现在是标准 LVM ISCSI 卷驱动程序的一部分。应更新配置以使用 volume_driver="cinder.volume.drivers.lvm.LVMISCSIDriver" 并设置选项 lvm_type="thin"。如果 volume_driver 设置为 "cinder.volume.drivers.lvm.ThinLVMVolumeDriver",Havana 将自动执行此操作,但 Icehouse 将要求在 cinder.conf 中更新这些选项。
OpenStack 计量 (Ceilometer)
主要新特性
API
- 现在可以使用 groupby 参数使用统计端点按某些字段对样本进行分组
- 现在可以使用新的警报 API(请参阅 警报)
- 用户现在可以通过 API 发布他们自己的样本和计量
警报
警报是一项新功能,允许用户和操作员根据将统计趋势与一段时间内的阈值进行比较来触发操作。它由以下服务组成
- ceilometer-api 现在公开了新的 /v2/alarms 端点,提供对警报生命周期的控制;
- ceilometer-alarm-evaluator 定期评估警报,以检测警报状态何时发生变化;
- ceilometer-alarm-notifier 接收 ceilometer-alarm-evaluator 在触发警报时发送的通知,并执行关联的操作
警报 API 还公开了警报状态转换和规则更改的历史记录。
收集器
- 新的 HBase 驱动程序
- 新的 DB2 (NoSQL) 驱动程序
- 改进的 SQLAlchemy 驱动程序
- (但尚未完全完成,因为缺乏 Horizon 和 Ceilometer 警报所需的元数据查询支持)
- 改进的 MongoDB 驱动程序
- 添加了一个 TTL 功能,允许从数据库中删除旧样本
- 添加了存储事件的功能
- 在 SQLAlchemy 上添加了事件存储功能
发布者驱动程序
- 添加了一个基于 UDP 的发布者
转换器
- 添加了新的单位缩放和变化率转换器
计量
- 使用特殊的 Python 中间件添加了 API 请求上的计量
- 添加了从新的 Neutron 带宽计量功能记录样本的能力
计算代理
- 添加了对 Hyper-V 的支持
已知问题
OpenStack Orchestration (Heat)
主要新特性
改进了文档
与 Tempest 的初步集成
并发资源操作
- 非依赖的创建、更新和删除操作现在并行执行
改进了网络/Neutron 支持
- 新的 LBaaS、FWaaS 和 VPNaaS 资源
对本机模板语言 (HOT) 的初步支持
: 请注意,HOT 仍在积极开发中,规范可能会发生变化(我们肯定会对其进行补充),因此请将其视为预览,如果您需要接口稳定性,请继续使用 CFN 模板语法。
提供者和环境抽象
Ceilometer 集成用于计量/监控/警报
- 添加了一个新的资源类型 OS::Ceilometer::Alarm,它配置一个 ceilometer 警报
- 我们还与 Ceilometer 警报集成了 AutoScaling 操作,这些操作现在由 Ceilometer 警报触发。以前由 Heat 处理计量/警报的机制仍然存在,但现在已被弃用,并且很可能在 Icehouse 中删除。
UpdateStack 改进
- 现在,几种资源类型提供了更好的非破坏性更新支持,包括调整实例大小。此外,我们现在在删除旧资源之前创建替换资源,从而提供更好的升级连续性和回滚能力。
与 keystone trusts 功能的初步集成
- 与 keystone trusts 的初步集成,因此当 heat.conf 指定 deferred_auth_method=trusts 时,我们不再存储加密凭据来执行延迟操作(例如 AutoScaling 调整),而是创建 trust 并存储 trust 的 ID。
- (请参阅下面的已知问题)
改进的资源文档
- 生成所有资源类型的文档 https://docs.openstack.org/developer/heat/template_guide/
- 已安装资源类型的模式现在可以通过 API 获得
更多原生资源类型
- OS::Cinder::VolumeAttachment
- OS::Neutron::Firewall
- OS::Neutron::FirewallPolicy
- OS::Neutron::FirewallRule
- OS::Neutron::HealthMonitor
- OS::Neutron::LoadBalancer
- OS::Neutron::VPNService
- OS::Neutron::IPsecSiteConnection
- OS::Neutron::IKEPolicy
- OS::Neutron::IPsecPolicy
- OS::Nova::Server
新的 Rackspace 资源类型
- Rackspace::Cloud::DBInstance
- Rackspace::Cloud::LoadBalancer
- Rackspace::Cloud::Server
堆栈暂停/恢复
- 支持新的 API “actions” 路径,该路径启用堆栈暂停/恢复
配置合并到单个 heat.conf 和单个 paste-api.ini
- 请参阅下面的升级说明
- 还添加了新的配置选项以提供限制
- 模板大小
- 每个租户的堆栈数量
- 每个堆栈的事件数量
- 堆栈嵌套深度
Heat 独立模式
- Heat 现在可以配置为以独立模式运行,使其能够编排到外部 OpenStack
已知问题
- Heat 不支持从 keystone 获取 API 端点时指定区域名称,请参阅 bug
- 与 keystone trusts 的集成 (deferred_auth_method=trusts) 仅在使用最新的 keystoneclient 0.4.1 时才有效,但是这尚未反映在 Heat 的 requirements.txt 中
- 与 keystone trusts 的集成需要至少 keystone 的 RC3 版本,因为此问题
升级说明
- Heat 现在使用一个配置文件 (/etc/heat/heat.conf) 而不是每个服务的配置文件。
- API 进程现在使用单个 paste 配置文件 (/etc/heat/api-paste.ini) 而不是每个服务的配置文件。
- 现在支持在 /etc/heat/environment.d/ 中定义全局环境 (请参阅 环境文档)
- 所有 OS::Neutron* 资源已重命名为 "OS::Quantum*",如果您安装提供的默认环境,旧名称仍然有效,该环境将旧名称别名为新资源。
OpenStack 文档
主要新特性
- 现在每个页面都有一个错误报告链接,因此您可以轻松地报告文档页面的错误。
- 手册已完全重组。在 Havana 版本中,存在以下指南
- 安装 OpenStack
- Red Hat Enterprise Linux、CentOS 和 Fedora 的安装指南
- Ubuntu 12.04 (LTS) 的安装指南
- openSUSE 和 SUSE Linux Enterprise Server 的安装指南
- 配置并运行 OpenStack 云
- 云管理员指南
- 配置参考
- 操作指南
- 高可用性指南
- 安全指南
- 虚拟机镜像指南
- 使用 OpenStack 仪表板和命令行客户端
- API 快速入门
- 终端用户指南
- 管理员用户指南
- 安装 OpenStack
已知问题
- 其中一些指南尚未完全更新,可能缺少信息