跳转到: 导航, 搜索

ReleaseNotes/Essex

OpenStack 2012.1 (Essex) 发布说明

OpenStack 对象存储 (Swift)

发布概述

Swift 在 Essex 发布周期内发布了 1.4.4 到 1.4.8 版本。完整的变更日志在 GitHub 上。

Swift 添加了几个重要的功能。Swift 现在支持对象过期、带有临时签名 URL 的 HTML 表单 POST,以及 Swift CLI 中的 OpenStack auth 2.0 API。其他新功能包括新的配置选项、中间件中的可选功能以及更多的运维工具。

对象过期允许 Swift 用户为对象设置过期时间或 TTL,之后该对象将无法访问并从系统中删除。此功能为 Swift 开启了新的用例。例如,此功能可用于具有数据保留要求的文档管理系统。

新的 formpost 和 tempurl 中间件模块允许 Swift 用户创建一个具有写入权限的 URL,然后将该 URL 作为 HTML 表单 POST 的目标。此功能旨在用于控制面板用例。由于 Swift 使用基于请求标头中信息的身份验证方法,浏览器通常无法直接访问 Swift。有了这两个新的中间件模块,构建 Swift 控制面板的人员可以让浏览器直接将内容上传到 Swift 集群。由于请求直接发送到 Swift,而无需通过控制面板 Web 服务器进行身份验证,因此控制面板部署者只需根据控制面板的使用情况来扩展基础设施,而无需根据 Swift 的使用情况来扩展。

除了新功能外,还修复了许多错误。Swift 开发者发现了并修复了内存泄漏、改进了数据损坏检测、改进了复制以及改进了环的构建方式。

升级说明

流程通常如下

  • 关闭后台作业,例如;updater、replicator、auditor、crond ... 等。(您可以使用 swift-init rest stop 和 /etc/init.d/crond stop 来执行此操作)
  • 升级 Swift 包。
  • 根据需要升级其他包。
  • 重新加载服务器 (swift-init main reload)
  • 重新启动后台作业 (swift-init rest start 和 /etc/init.d/crond start)

OpenStack 计算 (Nova)

发布概述

大量的精力投入到了 Nova 的 Essex 版本中。到目前为止,Nova 项目已经有超过 200 名贡献者,自 Diablo 版本以来大约有 3000 次提交。对于一个不到两年的项目来说,这是一个难以置信的快速步伐。该项目的流动性和速度证明了致力于该项目的开发人员的适应性和奉献精神。

在此发布周期内,我们花费了大量时间专注于稳定性和错误修复。由于这种关注,这是迄今为止 Nova 最适合生产环境的版本。尽管专注于稳定性,我们仍然设法合并了一些强大的功能。下面是一些最有趣的功能。

主要特性

Keystone 集成: Keystone 是通用的 OpenStack 身份管理系统。Nova 无需再内部管理用户、项目和角色。一切都由 Keystone 处理。

基于角色的访问控制: Nova 现在支持可配置的操作和扩展的访问控制。虽然还需要完成一些工作才能使配置更加用户友好,但目前可以对谁可以在系统中执行什么做出非常详细的决策。

openstack-common: Mark McLoughlin 领导了一项艰巨的工作,将配置解析引入 openstack-common。他的努力成果在配置部分中概述,但这为 OpenStack 项目之间的共享代码铺平了道路。预计在 Folsom(下一个版本)中,将更加关注 openstack-common。

Hypervisor 功能奇偶校验: 我们花费了大量时间来尝试使跨 hypervisor 的功能尽可能一致。这里的最终目标是能够运行 OpenStack 云,并且用户不知道或不关心底层 hypervisor 是什么。这里的主要变化是磁盘配置奇偶校验。Flavor/实例类型现在有两个字段,一个用于根磁盘的大小,另一个用于“ephemeral”第二个磁盘。

管理 API 扩展: 许多管理功能已被推送到 API 扩展中。这意味着可以通过远程工具自动执行更多任务,而无需直接处理数据库。

支持 upload-bundle: 对通过 ec2-api 上传镜像进行了一些改进。第一个是 keystone 支持 ec2 和 s3 凭据。第二个是允许将证书管理集中到一个工作器中,以便 API 节点不必共享公共文件系统。最后,添加了配置以允许 nova-objectstore 被 swift 替换为临时镜像存储。

Volume 端点: nova-volume 现在有自己的 API 端点。这为最终将此功能分离成一个独立服务铺平了道路。

网络解耦: 网络和计算相关对象的数据库模型已被解耦,以便网络可以作为自己的服务进行管理。在计算层中添加了缓存,用于网络数据,以便 API 调用仍然快速。

RPC 改进: 许多错误修复都进入了 RPC 层。添加了超时支持。为消息队列添加了一个额外的后端:Apache Qpid。rpc 代码将在 Folsom 中移动到一个公共库中,以便可以在多个 OpenStack 项目之间共享。

元数据分离: 元数据服务器现在可以与其它 API 服务分开运行。这允许用户在计算节点上本地运行元数据服务器,同时单独公开面向用户的 API。

浮动 IP 池: 现在可以拥有多个浮动 IP 池。这允许您拥有一个内部网络 NAT IP 的集合,例如。

其它特性: 包含大量其它特性。虽然详细描述所有特性超出了本文档的范围,但您可以在

  https://launchpad.net/nova/essex/2012.1

配置

我们已经退出了 python-gflags 作为我们的主要配置系统。配置现在应该使用 ini 样式的语法提供。旧的“flagfiles”仍然有效,并在内部转换为新的配置语法。如果您想手动转换文件,可以使用

 nova-manage config convert <infile> <outfile>

作为参考,包含所有可用选项的配置在

 etc/nova.conf.sample

一个重要的变化需要注意,只有少数重要的配置作为命令行标志可用。因此,如果您习惯于通过在命令行中指定它们来覆盖选项,那么您将需要开始将它们添加到配置文件中。所有二进制文件都在其目录中查找 nova.conf,然后在 /etc/nova.conf 中查找

API 文档

我们一直在努力改进文档

 http://api.openstack.org

我们目前正在努力为代码库中发运的所有 API 扩展添加文档和示例。预计在未来几天内会出现这些文档。

已知问题

对外部 Glance 服务器的镜像引用不起作用。API 规范允许您在引导时指定 Glance URL 而不是仅仅指定 UUID。目前此功能已损坏。在此处跟踪修复

 https://bugs.launchpad.net/bugs/883328

使用 libvirt,如果您对运行在不再在 Glance 中的镜像上的实例进行快照,则快照将被上传到 Glance,既没有 container_format,也没有 disk_format,并且 Glance 将拒绝它。在此处跟踪修复

 https://bugs.launchpad.net/nova/+bug/973980

所有数据库查询当前都会阻塞事件驱动的工作器。由于这种关注,我们选择牺牲性能以换取稳定性。这意味着对于生产部署,建议在负载均衡器前面运行多个 API 工作器。我们将在 Folsom 时间范围内调查删除此限制。进度将在以下蓝图跟踪

 https://blueprints.launchpad.net/nova/+spec/db-threadpool

由于我们的翻译导入链失败,与 Nova 捆绑的翻译文件未与最新的字符串保持更新。这可能导致 Nova 无法以美国英语以外的语言记录。

 https://bugs.launchpad.net/openstack-ci/+bug/960060

在多宿主网络中的实时或块迁移期间,浮动 IP 未自动移动(仅限 KVM)。虽然这不会立即对虚拟机造成问题,因为旧主机的 NAT 会继续工作,但强烈建议您确保使用以下解决方法正确移动浮动 IP

  • 从虚拟机分离任何浮动 IP
  • 迁移虚拟机
  • 将浮动 IP 重新关联到虚拟机

上述问题的错误在这里

 https://bugs.launchpad.net/nova/+bug/966529

列出实例时,浮动 IP 不会立即显示。这是由于计算网络信息缓存未立即更新。在此处跟踪此错误的进度

 https://bugs.launchpad.net/nova/+bug/939122

对于具有“admin”角色的用户,某些资源在租户之间可见。我们计划在 folsom 中区分系统范围的管理员和特定租户的管理员,但目前请注意,将“admin”角色授予租户将允许他操作所有卷,并可能列出所有虚拟机。蓝图在这里

 https://blueprints.launchpad.net/nova/+spec/differentiate-admin

Nova 仍然将租户称为“项目”。这主要是内部命名问题,但它会泄露到一些地方(例如,cloudpipe API 扩展)。我们希望完成迁移并在内部也使用 tenant/tenant_id。进度可以在这里跟踪

 https://blueprints.launchpad.net/nova/+spec/remove-project-id

配置 RBAC 比较困难。我们认识到我们正在使用的策略引擎并不是最用户友好的。这将在 Folsom 版本中处理。蓝图在这里

 https://blueprints.launchpad.net/nova/+spec/user-configurable-rbac

Essex 版本中的 Compute API 的 os-hosts 和 os-networks 扩展已损坏,但我们计划将修复移植到这些扩展。跟踪这些错误的进度在这里

OpenStack 镜像服务 (Glance)

在 Essex 发布周期的大部分时间里,都致力于稳定性和可用性。我们的贡献者修复了 185 个错误并实施了 11 个蓝图,其中一些亮点如下

主要特性

基于角色的访问控制:根据从 Keystone 返回的身份验证角色控制谁可以执行某些操作的能力。文档蓝图

镜像保护:通过“protected”属性防止意外删除镜像。在创建镜像时立即保护镜像,或在注册后更新它。用户必须显式取消保护镜像才能删除它。蓝图

可配置的 Glance API 进程数:跨多个进程部署 Glance API 端点。蓝图

可配置的数据缓冲目录:选择在本地文件系统上缓冲数据的位置,因为数据上传到 Swift。蓝图

从外部位置复制镜像数据:引用 Glance API 服务器应从外部位置检索其镜像数据并将其放置在其本地配置的存储中的位置。蓝图

支持在复制镜像数据时使用 sendfile(2):有效地将数据流式传输到 Glance API 服务器。蓝图

支持 Qpid 用于 Glance 通知:允许部署者使用 Qpid 作为通知策略,而不是 Kombu。蓝图

镜像上传进度条:通过 Glance CLI 流式传输镜像数据时,查看数据传输的图形表示。蓝图

您可以在此处找到 Glance 完成的蓝图和错误修复的完整列表

  https://launchpad.net/glance/essex/2012.1

OpenStack 仪表盘 (Horizon)

发布概述

在 Essex 发布周期内,Horizon 经历了大量的内部变化,以允许可扩展性和自定义,同时添加了大量新功能,并为与底层组件的每个交互带来了更大的稳定性。

亮点

可扩展性

使 Horizon 能够被第三方开发人员扩展是 Essex 发布周期的一个核心目标。已经取得了巨大的进展,可以添加新的“插件”组件并自定义 OpenStack 仪表盘部署。

为了支持这种可扩展性,用于构建 Horizon 界面上的所有组件现在都是模块化的和可重用的。Horizon 自己的仪表盘使用这些组件,并且它们都已为第三方开发人员设计。

仪表盘和面板

Horizon 的结构已划分为逻辑分组,称为仪表盘和面板。Horizon 代表这些概念的类处理与构建完整的用户界面相关的所有结构问题(导航、访问控制、URL 结构等)。

数据表

用户界面中最常见的活动之一就是简单地显示资源或数据的列表,并允许用户对这些数据采取操作。为此,Horizon 将此任务的共同点抽象成一组可重用的类,这些类允许开发人员以最少的努力和零样板代码以编程方式创建其数据的显示和交互。

选项卡和 选项卡组

另一个非常常见的用户界面元素是使用“选项卡”将离散的数据组分解为可管理的块。由于这些选项卡通常包含截然不同的数据,可能具有完全不同的访问限制,并且有时最好动态加载而不是随初始页面加载,Horizon 包含选项卡和选项卡组类,以便优雅地构建这些界面,而无需了解涉及的 HTML、CSS 或 JavaScript

Nova 特性

在 Essex 中,Nova 的支持得到了极大的改进

  • 支持 Nova 卷,包括
    • 卷的创建和管理。
    • 卷快照。
    • 处于转换状态的卷的实时 AJAX 更新。
  • 改进了 Nova 实例的显示和交互,包括
    • 从卷启动实例。
    • 暂停/挂起实例。
    • 显示实例电源状态。
    • 处于转换状态的实例的实时 AJAX 更新。
  • 支持管理浮动 IP 地址池。
  • 新的实例和卷详细信息视图。

设置

添加了一个新的“设置”区域,提供了一些有用的功能

  • EC2 凭证下载。
  • OpenStack RC 文件下载。
  • 用户语言偏好设置自定义。

用户体验改进

  • 支持对多个资源执行批量操作(例如,终止多个
 instances at once).
  • 整个 UI 中的模态交互。
  • 用于就地验证的 AJAX 表单提交。
  • 改进了表单的上下文帮助(工具提示和验证消息)。

社区

  • 创建和发布一套人类界面指南 (HIG)。
  • 为开发者提供了大量的文档。

底层改进

  • 完全启用了国际化,所有字符串均已标记用于翻译。
  • 客户端库变更
    • 完全迁移到 python-novaclient,放弃了过时的 openstackx 库。
    • 迁移到 python-keystoneclient,放弃了过时的 keystone 部分
     of the python-novaclient library.
  • 客户端模板功能,以便更轻松地创建动态
 interactions.
  • 前端改造,使用 Bootstrap CSS/JS 框架。
  • 集中式错误处理,大大提高了稳定性和可靠性
 across APIs/clients.
  • 完全重构的测试套件,包含全面的测试数据。
  • 与 Django 1.4 的向前兼容性,以及基于 cookie 的会话选项。

您可以在以下位置找到 Horizon 完成的蓝图和错误修复的完整列表:

  https://launchpad.net/horizon/essex/2012.1

已知问题和限制

Quantum

Quantum 的支持已从 Horizon 中移除,用于 Essex 版本。它将在 Folsom 中恢复,并与 Quantum 作为核心 OpenStack 项目的首次发布一起进行。

Keystone

由于 Keystone 确定用户“管理员”身份的机制,管理员用户与“项目”仪表板交互时可能会看到一些不一致的行为,例如列出所有资源而不是仅属于该项目,或者只能在访问某些项目时返回“管理员”仪表板。

自定义期间的异常

通过“customization_module”设置覆盖内置 Horizon 行为时引发的异常可能会触发错误处理中的一个错误,从而掩盖原始异常。

向后兼容性

Essex Horizon 版本与 Diablo OpenStack 组件的向后兼容性仅为部分兼容。虽然可以登录和交互,但 Nova、Glance 和 Keystone 中的许多功能在 Essex 中发生了太大变化,无法保持完全兼容性。

OpenStack Identity (Keystone)

Identity 服务的实现方式在 Essex 版本中发生了彻底变化。大部分设计都是基于以下预期:大多数部署的身份验证后端实际上是现有用户系统前面的包装器。文档已更新以支持此更改,并且迁移路径已记录在 http://keystone.openstack.org 上。

您可以在以下位置找到 Keystone 完成的蓝图和错误修复的完整列表:

  https://launchpad.net/keystone/essex/2012.1

Keystone 迁移的关键亮点

  • 外部 API - 面向“管理员”和“用户”的 API 保持稳定,与 Diablo 版本相同。在更改底层实现时,我们非常小心地保持外部组件稳定,以便我们能够更快地在未来取得进展。
  • 其他 OpenStack 项目使用的中间件组件也得到了实质性的重写,以简化代码。
  • 服务授权的实现方式已从单个共享密钥(以前称为“管理员令牌”)更改为每个服务的帐户和密码凭证对。
    • 这意味着 nova、glance、swift 等的配置发生了变化,特别是在 api-paste.ini 文件中,现在为这些凭证定义了新值,并且现在可以为每个服务实现它们。
  • Keystone 服务和中间件实现现在会记录更多的日志,以便系统管理员和 OpenStack 部署者能够调试身份验证和授权问题。
  • Keystone 现在支持 S3 令牌验证和额外的 Swift 存储功能
    • 现在支持 Swift ACL,您可以允许/拒绝租户内的不同用户。
    • 通过 ACL 进行匿名访问,以允许对容器的公共访问。
    • Reseller 帐户支持,使 nova 能够访问 swift 并用它来替换 nova-objectstore。

Keystone 的已知问题和限制

  • 使用 SSL 证书进行授权而不是 userid/credentials
  • 任何用于驱动基于角色的访问控制策略定义的 API
  • 将身份映射到预先存在的 LDAP 后端
  • 用户面临的 API,以支持身份更新(例如,用户更改密码或“注销”)

已知的打包发行版

OpenSUSE 12.1 / SLES11 SP2

您可以在我们的包装站点上的 wiki 中找到有关 OpenSUSE 12.1 和 SLES11 SP2 存储库的所有详细信息:Packaging/SUSE

Fedora 17 / Fedora 16 / EPEL 6

Ubuntu 12.04 LTS (Precise Pangolin)

所有核心 OpenStack Essex 组件均在 Main Precise Ubuntu 存档中正式支持并可用

~-注意:Horizon 和 Keystone 当前位于 Universe 中,因为它们正在进行安全审查,然后再在 2012 年 4 月 26 日的 12.04 Precise 版本中推广到 Main-~

孵化项目 Quantum 和 Melange 可用于 Precise 的 Universe

可以使用 MAAS 和 Juju 在 Ubuntu Server 上部署 Essex。

Martin Loschwitz 编写了一份出色的逐步指南,用于手动在 Ubuntu 12.04 上安装 Essex

http://www.hastexo.com/resources/docs/installing-openstack-essex-4-ubuntu-1204-precise-pangolin

Debian GNU/Linux wheezy

所有核心 OpenStack Essex 组件均在 Main wheezy 存档中正式支持并可用

可以使用 HOWTOpuppet 模块 部署 Essex。