跳转到: 导航, 搜索

ReleaseNotes/Diablo

Release Notes, Diablo

新特性

OpenStack 对象存储 (Swift)

swift (1.4.3)

  • 添加了额外的隔离捕获代码。
  • 将 client_ip 添加到所有代理日志行中,除非这些日志行已经包含该信息。
  • 对于 "GET services/bucket" swift3 中间件请求,Content-Type 现在是 application/xml。
  • Swift Recon 实验的 Alpha 版本发布
  • 修复 swift3 中间件的最后修改日期。
  • 修复在账户/容器删除时清除账户/容器元数据的错误。
  • 修复与 X-Newest 相关的边缘情况错误。
  • 修复对象审计器耗尽文件描述符的错误。
  • 修复返回清单对象的所有正确标头的错误。
  • 修复 swift 工具在上传文件时去除文件名开头的斜杠的错误。

swift (1.4.2)

  • 移除了 Swift 中的统计/日志记录代码 [现在在单独的 slogging 项目中]。
  • 容器同步功能 - 第一版
  • 修复 swift3 认证错误,关于 Date 和 X-Amz-Date 处理的问题。
  • 更改限速,使其仅限制 PUTs/DELETEs。
  • 对象 POST 现在默认实现为 COPY (可以通过 conf object_post_as_copy = false 恢复到之前的实现)。
  • 您可以在 GET 和 HEAD 请求中指定 X-Newest: true,以指示您希望 Swift 查询所有后端副本并返回检索到的最新版本。
  • 对象 COPY 请求现在始终复制它们可以找到的最新对象。
  • 账户和容器 GET 和 HEAD 请求现在会打乱它们使用的节点,以平衡负载。
  • 修复了无限 charset: utf-8 错误
  • 此修复解决了 drop_buffer_cache() 在 off_t 不是 64 位的情况下不起作用的错误。

swift (1.4.1)

  • st 重命名为 swift
  • swauth 从 swift 中分离出来。现在它是一个独立的工程,可以在 https://github.com/gholt/swauth 找到。
  • 添加了 tempauth 中间件作为开发工作中的一个非常有限的认证系统。
  • 账户和容器列表现在正确地标记为 UTF-8 (之前标记为 "utf8")。
  • 如果认证令牌有效并且 account_autocreate 代理配置参数设置为 true,则会自动创建账户。

swift (1.4.0)

  • swift-bench 现在会清理它创建的容器。
  • WSGI 服务器现在在分叉后加载 WSGI 过滤器和应用程序,以获得更好的插件支持。
  • swauth-cleanup-tokens 现在更好地处理了 token 容器和 token 上的 404 错误。
  • 代理日志记录远程 IP 地址作为在没有 X-Forwarded-For 和 X-Cluster-Client-IP 标头的情况下客户端 IP,而不是像以前那样使用 -。
  • Swift3 WSGI 中间件添加了对 param-signed URL 的支持。
  • swauth- 脚本现在以正确的退出代码退出。
  • 修复了一个 HEAD 请求中未遵守 allowed_headers 的错误。
  • 双重隔离损坏的 sqlite3 数据库现在可以正常工作。
  • 修复了对象复制器在服务器上没有对象时崩溃的问题。
  • 为 GET 和 HEAD 请求添加了 Accept-Ranges 标头。
  • 当单个对象在单个设备上具有多个异步待处理更新时,现在仅发送最新的异步待处理更新。
  • 修复了 Swift3 WSGI 中间件在对象名称中包含 '/' 时无法正常工作的问题。
  • 将 swift-stats-* 重命名为 swift-dispersion-* 以避免与日志统计信息混淆。
  • 为每个响应添加了 X-Trans-Id 事务 ID 标头。
  • 修复了一个 Python 2.7 兼容性问题。
  • 现在在 rsync 调用中使用方括号表示法表示 IP 字面量,因此压缩的 IPv6 字面量可以正常工作。
  • 添加了容器统计信息收集器并重构了一些统计信息代码。
  • 更改了 XML 格式的对象列表中 subdir 节点,以与对象节点对齐。现在:<subdir name="foo"><name>foo</name></subdir>。之前:<subdir name="foo" />。
  • 修复了 Swauth 以支持多个 swauth 实例。
  • swift-ring-builder: 添加了 list_parts 命令,该命令显示给定设备列表的常见分区。
  • 对象审计器现在在日志中显示更好的统计信息更新。
  • 统计信息上传器现在允许覆盖 source_filename_pattern 和 new_log_cutoff 值。

OpenStack 计算 (Nova)

  • 跨区域分布式调度
  • 从卷快照、克隆和启动
  • 与 Keystone 认证集成
  • OpenStack API 1.1 (包括浮动 IP 支持)
  • 配置驱动器
  • KVM 暂停/挂起支持
  • 实例迁移
  • 通知系统
  • 基于实例类型和能力的调度
  • 多个 NIC
  • KVM 块迁移支持
  • FlatDHCP 网络模型的 HA 模式
  • 对虚拟存储阵列的支持
  • 全局防火墙规则
  • 对多种卷类型的支持
  • Quantum NaaS 集成点

OpenStack 镜像注册和分发服务 (Glance)

升级说明

Swift

Swift 可以就地升级,不会影响连接的用户。最好一次升级一个区域,以便在不影响集群正常运行时间的情况下查看任何潜在问题。Swift 1.2 (openstack cactus) 和 Swift 1.4.3 (openstack diablo) 之间有各种配置文件已更改。在升级生产集群之前,请务必阅读变更日志并了解所做的更改。强烈建议在生产环境之前在暂存环境中测试您的升级过程。

升级 Swift 的基本流程

显然,这些说明并不全面。它们旨在作为升级正在运行的集群的大致指南。

  • 关闭后台作业,例如;updater、replicator、auditor、crond ... 等。
   You can do that with swift-init rest stop and /etc/init.d/crond stop
  • 升级 Swift 包和依赖项。
  • 安装 python-slogging 包和 swauth 包(如果需要)。
  • 更新配置文件
  • 重新加载服务器。
   You can do that with with swift-init <server> reload
  • 重新启动后台作业。
   You can do that with swift-init rest start and /etc/init.d/crond start

Nova

从 Cactus 升级到 Diablo 的概述见 从 Cactus 升级到 Diablo。这里还提到了其他注意事项。

认证选项

  • --use_deprecated_auth 标志的默认值为 True,这是 euca- 工具使用的认证,并包含在 novarc 文件中的项目中。请注意,Ubuntu 包默认启用旧式认证,因此如果您从 ppa 包安装,您仍然将使用较旧的 Cactus 风格认证。有关更多信息和认证选项,请参阅 配置认证
  • 有一个单独的命令可用于将用户从弃用的认证系统迁移到 Identity Service,'nova-manage shell export users.txt',其中 users.txt 是导出文件的名称。在 Identity Service 代码库(Keystone 项目)中,有一个 keystone-import 脚本可以运行来导入这些用户。

其他变更

  • nova-manage network 命令需要一个额外的 label 参数,更改用法为 nova-manage network create private CIDR/nn n n,其中 "private" 是网络的标签。
  • nova-manage network 命令需要一个 bridge 参数用于 flatdhcp 模式,如果未设置 --flat_network_bridge。它以前默认设置为 br100。您可以通过在 flagfile 中添加 --flat_network_bridge=br100 来保持旧行为。
  • nova-manage floating create <hostname> 68.99.26.170/31 命令不再接受 hostname 参数,更改用法为 nova-manage floating create 68.99.26.170/31。
  • 通过 v1.1 API 发起的服务器创建请求现在使用 flavorRef 和 imageRef 属性,而不是 flavorId 和 imageId。这是为了为未来的版本支持远程资源做准备。
  • --glance_host 和 --glance_port 标志已更改为单个标志:--glance_api_servers。它需要包含 Glance API 服务器的 IP 地址和端口值。默认值为 '$my_ip:9292'。
  • --allow_project_net_traffic 标志已重命名为 --allow_same_net_traffic。此标志将允许同一网络中的所有其他虚拟机(和主机)之间的所有流量。默认值为 true。如果您希望阻止所有虚拟机之间的流量并使用安全组来管理虚拟机之间的流量,请将此标志设置为 false。
  • Nova 实现的安全组与其他云实现略有不同。安全组内的流量不会自动启用。如果您希望允许给定安全组内的端口(或所有流量),则可以使用相同的源和目标组创建一个规则。

KVM 与 XenServer 的功能差异

  • KVM 独有功能
    • 块设备映射
    • 实时迁移
    • 块迁移
    • 安全组
  • XenServer 独有功能
    • 调整大小
    • 重置 root 密码

Glance

从 Cactus 安装升级涉及下载和安装新的 Diablo Glance 包,运行 glance-manage db_sync 以迁移注册数据库模式,并更新各种配置文件。如果使用 Keystone 进行认证,则需要在 Keystone 中进行一些额外的设置,以及 Glance 配置文件中的一些更改。您可以在 Glance 手册中 了解有关使用 Keystone 在 Glance 中进行认证的更多信息。

Glance 配置文件包含大量文档和注释掉的部分,这些部分在配置文件中进行了说明。

已知问题和限制

Nova

  • XenServer 和 KVM 处理本地存储的方式不同:XenServer 代码将根驱动器的大小调整为本地存储中使用的实际大小,而 KVM 代码会将根驱动器的大小调整为最多 10G(如果小于该值),然后将一个大小为 local_gb 的磁盘作为第二个驱动器附加(Bug 834189)
  • Hyper-V 超visor 未更新以匹配 Diablo 中的新功能,因此不建议使用它 (Bug 843704)
  • XenServer VDI 未调整为初始启动时实例类型中指定的正确 local_gb。在后续调整大小期间,磁盘已更正 (Bug 845714)

OpenStack API 1.1 问题

  • 实例响应中仍然显示 both ids 和 UUIDs (Bug 804093)
  • 镜像详细信息不包含 minDisk 和 minRam 设置 (Bug 819990)
  • 无法通过 content-type 标头指定所需的 API 版本 (Bug 844905)
  • 缺少多个集合资源中的分页链接 (Bug 844912)
  • Flavor 资源缺少一些过滤选项 (Bug 844926)

Glance

  • Glance PTL 忘记在 Diablo 最终包中包含一个重要错误修复的补丁。此补丁修复了 845788 错误。该补丁已包含在 Oneiric Ubuntu 版本中,并将上传到 PyPI 中的下一个包。

Diablo 版本中实现的蓝图