Jump to: navigation, search

ReleaseNotes/Havana/zh cn

Contents

OpenStack 2013.2 (Havana) 版本说明

你可以找到OpenStack Havana版本的主要新特性的描述,已知问题,和升级建议。

OpenStack 对象存储 (Swift)

主要新特性

  • 全局集群支持

Swift 1.8.0引入了“区域”的概念,增强了对独立复制网络的使用和临近读写配置的支持。这些特性组合起来可以提供跨越广阔地域的单一Swift集群。

  • 增加配置文件conf.d的支持

允许Swift守护进程和服务可选的接受一个目录作为配置参数。这可以允许分开管理不同的配置文件,例如,每个中间件可以使用不同的文件来设置自己特定的参数。

  • 磁盘性能

对象服务器限制可以配置线程池来提高性能,消除整个系统的延迟。并且,许多磁盘操作被重新排序来增加可靠性和提高性能。

  • 增加memcache池化连接的支持
  • 选择切换节点的计算更快

修复的重要缺陷

  • 修复了memcache条目不过期的bug
  • 修复了客户端连接断开后代理服务器继续读取存储服务器的问题
  • 修复了版本控制写操作的UTF-8处理问题

其它的运行优化

  • 设置缺省的wsgi工作进程数目为cpu_count

修改缺省的wsgi进程数值从1到auto。新的缺省值会在proxy,container,account和object wsgi服务器中派生出与CPU核数相等的工作进程。这对于某些配置来说不是最理想的,却更像是提供一个开箱即用的部署。

  • 增加的reveal_sensitive_prefix配置选项来过滤proxy服务器日志里所记录的认证令牌。
  • 增加在对象复制时先复制切换分区的支持。现在可以在移除一个本地切换节点之前配置多个远程节点与存储节点通讯。
  • 增加了crossdomain.xml中间件。详情请参考http://docs.openstack.org/developer/swift/crossdomain.html
  • 对Swift运行在PyPy下的大量改进

已知问题

  • 如果你使用单元(cell),当删除云主机时会碰到问题。与Grizzly不同,删除云主机会在告知子单元删除之前立即从顶级(API)单元中删除。这本不是我们的初衷。这是因为当删除时,delete.start和delete.end通知被发送,如果子单元的云主机删除成功,第2个delete.start和delete.end通知会被发送。如果不这样,数据库会导致不一致,云主机已经从API单元中消失,但是仍存在于子单元中。自动治愈代码会更正这个错误,经过一段时间,API单元数据库中的云主机会被恢复,这段时间的长短取决于治愈代码的配置。该错误很快会在havana-stable内修订。
  • 查看http://bugs.launchpad.net/nova

升级注意事项

在https://github.com/openstack/swift/blob/master/CHANGELOG上阅读所有变更日志,可以看到任何影响升级的配置变更。

Swift可以一如既往进行升级而不停机。

OpenStack计算(Nova)

主要新特性

API

  • 计算(Nova) REST API包含一个试验性的新版本(v3)。新版本的API包括了大量清理,以及一个用于实现和版本化API扩展的框架。该API预期在Icehouse版本中被确定下来。(blueprint).
  • 添加了对于计算 (Nova) REST API的以下扩展:
    • CellCapacities: 添加了确定一个单元中的RAM数量,以及一个单元中的可用RAM数量的能力(blueprint)。
    • ExtendedFloatingIps: 为增加浮动IP命令添加了可选的fixed_address参数,允许一个浮动IP地址被关联至一个固定IP地址 (blueprint)。
    • ExtendedIpsMac: 向服务器响应中添加(多个)Mac地址 (blueprint).
    • ExtendedQuotas: 为管理员增加能力,以使其可以删除租户的非默认配额,并将其反转至配置过的默认配额(blueprint)。
    • ExtendedServices: 添加能力以存储和显示服务被禁止的原因(blueprint)。
    • ExtendedVolumes: 添加连接至云主机的云硬盘信息(blueprint)。
    • Migrations: 添加能力,以便逐单元或逐区域列出正在进行中的改变大小操作和迁移操作 (blueprint)。
    • ServerUsage: 在云主机显示响应中添加launched_atterminated_at值(blueprint)。
    • UsedLimitsForAdmin: 允许通过管理员API获取针对某个租户的配额限制(blueprint)。
  • 计算服务的EC2 API已经被更新,以使用与official EC2 API更为一致的错误代码。(blueprint)

单元

  • 单元调度器已经被更新,以支持通过[cells]配置组中的新的scheduler_filter_classesscheduler_weight_classes选项,来支持过滤和权重计算。 新的ram_by_instance_typeweight_offset权重计算模块也已被加入,以替代以前版本中的单元随机选择。 此外,一个过滤器类,TargetCellFilter,允许管理员指定一个调度器提示来指导一个特定单元上的建立过程。这使得单元调度在概念上与已有的宿主机调度类似。(blueprint)
  • 在一个单元范围内的虚拟机实例热迁移目前已经支持。单元间的虚拟机实例在线迁移尚不支持。 (blueprint)
  • 在使用单元时,Nova已经支持Cinder。 (blueprint)

计算

综合
  • 增加了对于使用Docker创建和管理的容器的虚拟机监控程序支持 (blueprint)。
  • Nova具备了一个新特性以允许你"搁置"一个云主机。这允许那些被停止一段时间的云主机被从虚拟机监控程序上移走以便释放资源(blueprint)。
  • 一个vendor_data段被添加到元数据服务和配置驱动器工具中。这允许客户机可见的元数据扩展中包含针对供应商或站点的数据 (blueprint)。
裸金属驱动
  • 在裸金属驱动中增加了一个后端以支持Tilera裸金属自动配置 (blueprint)。
Hyper-V驱动
  • 支持Windows Server / Hyper-V Server 2012 R2 (blueprint)。
  • 为Ceilometer集成提供的计算计量支持 (blueprint)。
libvirt (KVM) 驱动
  • 对于在创建时hw_qemu_guest_agent特性值设置为yes的客户机,已经添加对QEMU客户机代理(qemu-guest-agent)的支持( blueprint)。
  • 在Nova中已经添加从物理计算节点向虚拟客户机直通PCI设备的支持。目前仅有libvirt驱动提供了一个可用实现( base blueprint, libvirt blueprint)。
  • 在使用基于libvirt的虚拟机管理程序时,添加了从Cinder中提取QoS参数的支持,以及基于这些参数实现速率受限磁盘访问的支持(blueprint)。
  • RBD目前被支持作为一种镜像存储后端(blueprint)。
PowerVM 驱动
  • 添加了硬重启支持(change).
vmwareapi (VMWare) 驱动
  • 镜像克隆策略 - 允许镜像指定它们是否被用作链接克隆或全克隆镜像(blueprint)
  • 支持使用一个配置驱动器(blueprint)
XenServer 驱动
  • 支持显示服务器控制台的日志 (blueprint)
  • 支持将大易失磁盘分裂为1024GB或2000GB的块,以规避VHD的最大磁盘容量限制(blueprint)
  • 允许镜像具有AutoDiskConfig=disabled设定,这意味着用户不能在这些镜像和服务器上设定AutoDiskConfig=Manual (blueprint)
  • 改进Nova与Nova代理之间的通信方式,以使你可以在同一个云里同时使用cloud-init和Nova代理。(blueprint)
  • 能够启动虚拟机至一个运行Linux分发安装器的状态,以帮助用户建立他们自己的定制镜像(blueprint)
  • 对XenServer核心的实验性支持,以及在XenServer核心Dom0中运行nova-compute。(blueprint)
  • 对使用LVHD存储SR的实验性支持,并支持从压缩的raw格式Glance镜像中启动(blueprint)
  • 改进稳定性与可支持性的许多工作。例如:为发送至Glance的镜像配置压缩率的能力,和在服务器向下改变大小的过程中,由于磁盘对于目标空间而言过小而导致的错误的自动回滚能力。

配额

  • 默认配额现在是可编辑的,而以前这个配额的值是固定的。使用nova quota-class-update default <key> <value>来更新默认配额(blueprint)。
  • 现在可以针对每个用户定义配额(blueprint)。
  • 一个给定租户或用户的配额现在可以被删除,然后他们的配额将被重置为默认值(blueprint)。

网络

  • 网络和IP地址的分配现在与云主机自动配置过程中的其他操作并行执行,以缩短启动时间(blueprint)。
  • Nova现在可以将被选定承载一个云主机的计算节点的主机名传递给Neutron。Neutron 插件现在可以在需要时使用这些信息改变计算节点的物理网络配置(blueprint)。

通知

  • 现在,通知将在宿主机聚合被创建、删除、扩张、订约和以其他方式更新时生成(blueprint)。
  • 现在,通知将在云主机建立失败时被生成(blueprint)。

调度器

  • 在过滤器特性中添加了force_nodes,允许运营者在使用裸金属驱动自动配置时显性指定节点(blueprint)。
  • 添加了使得IsolatedHostsFilter约束性更弱的能力,通过操作nova.conf中的新的restrict_isolated_hosts_to_isolated_images配置指令的值,来允许隔离的宿主机使用所有镜像(blueprint)。
  • 添加了与已有的GroupAntiAffinityFilter相对的GroupAffinityFilter。这个新的过滤器允许向一个特定的宿主机组中的一个宿主机上调度一个云主机(blueprint)。
  • 为过滤器增加了新的能力,使得如果希望它们的过滤决策对于一个申请中的所有云主机均保持有效,则可将新的run_filter_once_per_request参数设定为True。这防止了过滤器在不必要的情况下对每一云主机被迫重新运行一次。 这一设置已经被应用于若干已有过滤器(blueprint)。
  • 添加了针对每个聚合的过滤器 AggregateRamFilterAggregateCoreFilter,它们对宿主机聚合而不是全局有效。AggregateDiskFilter将在未来的版本中被加入(blueprint)。
  • 通过去除曾经从所有计算节点广播至所有调度器的周期性消息,改进了调度器性能(blueprint)。
  • 通过允许调度器设定它们对申请多个云主机的申请只需运行一次,改进了调度器的性能(blueprint)。

存储

  • 连接的Cinder云硬盘现在可以被加密。当作为云主机的正常块存储设备时,数据根据需要在读写时被解密(blueprint)。
  • 添加了对连接至云主机的云硬盘进行透明换出的能力。当云硬盘换出时云主机可以短暂暂停而不会发生读写丢失(blueprint)。
  • 现在,当连接至基于NFS或GlusterFS的云硬盘时,Nova使用Cinder配置中设定的挂载选项。此前挂载选项必须在每个可能访问云硬盘的计算节点上设置(blueprint)。
  • 添加了本地GlusterFS支持。如果在nova.conf中将qemu_allowed_storage_drivers设定为gluster,则QEMU将被配置为直接使用libgfapi而不是通过fuse访问云硬盘(blueprint)。
  • 现在使用QEMU辅助快照来提供创建Cinder云硬盘快照的能力,即便支撑使用中的存储的后端存储不提供本地支持,例如GlusterFS (blueprint)。
  • 现在支持iSER传输协议用以访问存储,以提供相对于iSCSI over TCP的性能改进(blueprint)。

Conductor 协调器

  • 协调器目前可以创建多个并行执行的工作线程,创建的线程数由nova.confworkers 的值决定(blueprint)。

内部变化

  • Nova现在使用由Oslo提供的公共服务架构(blueprint).
  • 引入修改,以允许反向移植那些需要数据库迁移的bug修正 (blueprint)。
  • 为最终支持Nova部署的在线升级而进行的努力已经取得显著进展。在Havana中,改进包括通过服务间互发的消息版本实现的附加控制(参见nova.conf的[upgrade_levels]小节) (blueprint),以及一个新的、帮助将代码基础与数据库schema细节解耦合的对象层(blueprint)。

已知问题

  • 如果你使用cell,当删除云主机时会碰到问题。与Grizzly不同,删除云主机会在告知子cell删除之前立即从顶级(API)cell中删除。这本不是我们的初衷。这是因为当删除时,delete.start和delete.end通知被发送,如果子cell的云主机删除成功,第2个delete.start和delete.end通知会被发送。如果不这样,数据库会导致不一致,云主机已经从API cell中消失,但是仍存在于子cell中。自动治愈代码会更正这个错误,经过一段时间,API cell数据库中的云主机会被恢复,这段时间的长短取决于治愈代码的配置。该bug很快会在havana-stable内修订。
  • 查看http://bugs.launchpad.net/nova

升级注意事项

  • 注意:周期性任务现在将比以前运行得更加频繁。周期性任务的运行频率始终是可以配置的。然而,控制任务何时再次运行的定时器以前是在任务上一次运行完成后启动。而现在任务则以恒定频率运行,无论一个任务运行多长时间。这使得任务应该运行的时刻更为清楚。但是,其附带效应是,任务默认将运行得更为频繁。(https://review.openstack.org/#/c/26448/)
  • security_groups_handler选项已经被从nova.conf中移除。这一选项是为Quantum添加的,现在已经不再需要。 (https://review.openstack.org/#/c/28384/)
  • 这一变化不应影响升级,但对于所有新的部署,它是一个行为中的变化。以前的版本创建的m1.tiny默认类型,其磁盘空间为0。而这一默认值现在是1。0意味着不进行任何磁盘大小调整,并且使用镜像中设定的任何磁盘大小。1意味着强加以1GB限制。特殊值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/)
  • 在Quantum被重命名后,Nova目前使用Neutron。(https://review.openstack.org/#/c/35425/)
  • 当定义了多个Neutron网络时,Nova将拒绝一个没有指定网络的创建服务器申请。Nova以前将把这一服务器连接至 *全部* 网络,但是这一行为并不合理。(https://review.openstack.org/#/c/33996/)
  • vmware 配置变量'vnc_password'已经不被认可。用户将不再被要求输入密码以访问VNC连接。这与其他所有virt驱动的工作方式一致。 (https://review.openstack.org/#/c/43268/)


OpenStack Image Service (Glance)

主要新特性

属性保护

现在被授权的特定用户组可以创建,更新,和读取任何实体的不同属性。镜像服务中有两类镜像属性:

  • 核心属性,被镜像schema所指定;
  • 元属性,可以在镜像上任意添加键/值对。使用属性保护配置文件(在 glance-api.conf 文件中指定),通过镜像服务公共API访问元属性的能力,现在可以被限制给某些用户集合。例如:
    • 只有管理员才能访问所有属性。
    • 允许管理员和计费用户读取和修改前缀为``x_billing_code_``的所有属性。

blueprint

注册表API

使用RPC-over-HTTP为注册表服务(Registry service)提供了新的API(兼容db_api):

  • 支持使用早期注册表服务的旧的部署方法。Glance v2曾经彻底去掉了注册表服务,在某些情况下会导致安全漏洞 (如果被部署为'公开'服务,则所有的数据库参数会被呈现在glance-api.conf中)。
  • 不需要修改注册表API,就可以很容易的实现数据库API的新方法。

blueprint

更新包含了注册表数据库驱动程序,与远程注册服务和后台数据库通话。注册表服务实现了所有数据库API的公开服务。镜像服务API v2必须启用,镜像服务客户端必须指向这里。blueprint


存储支持

镜像服务支持如下的后台存储:

  • Sheepdog. 镜像服务如今可以把镜像存储在一个后台Sheepdog群里。Sheepdoc是个开源项目,为QEMU提供了一个分布式存储系统。

"Sheepdog Website" blueprint

  • Cinder. OpenStack Cinder现在可以被用做镜像服务的后台块存储。 blueprint
  • GridFS. 镜像服务现在支持GridFS分布式文件系统。使用新的.conf选项mongodb_store_uri和mongodb_store_db来启用这个功能。支持格式为`gridfs://<IMAGE>`的GridFS地址. "GridFS Website" blueprint

多镜像地址

镜像服务中的镜像可以被存储在多个地址中。使得镜像数据得以高效使用,主镜像失败后备份镜像可以使用。blueprint

相关的更新包括:

  • 地址API的策略层,可以进行改变镜像地址的策略检查. blueprint
  • 直接URL元数据。每个镜像服务存储系统可以在镜像地址数据库中存储地址元数据,当direct_url启用时,URL相关的元数据直接被返回客户端。例如,对于file://URL来说,NFS导出主机,加载点,和FS类型可被直接返回客户端。 blueprint
  • 下载镜像时支持多地址。允许API客户端从多个后台存储中读取镜像。 blueprint
  • 索引的镜像属性校验和。镜像属性校验和上建立了索引,允许用户通过校验和来查找镜像。blueprint
  • Scrubber更新。Scrubber是清除已删除镜像的工具。Scrubber支持'pending_delete'镜像的多地址。blueprint
  • 元数据检查。当地址改变时,允许检查镜像地址策略层的元数据。blueprint

等等,这里还有更多!

  • 可配置的容器和磁盘格式. Glance之前只支持指定的容器和磁盘格式,却是实际的格式集合中很少见的几种。如今,可接受的容器和磁盘格式可以被配置了。blueprint
  • 存储配额. 用户在所有的存储系统中的用量可以被限制为N字节(总计)(配置.conf文件中的total_storage_quota). blueprint
  • 成员策略. 策略执行被加入了成员API(类似镜像/地址的策略执行). 新策略包括'new_member', 'add_member', 'get_member', 'modify_member', 'get_members', 和'delete_member'. blueprint

已知问题

  • 查看http://bugs.launchpad.net/glance


OpenStack 仪表盘(Horizon)

版本概述

Havana版本支持了*三个*新项目,以及已有项目的重大新特性。基于此,最终用户的管理员用户的很多方面的用户体验都被提升了。Havana版本目前是OpenStack仪表盘项目的最佳版本。

亮点

新特性

Heat

The OpenStack编排项目(Heat)在Havana中首次登场,Horizon对Heat堆层提供全面支持。亮点包括支持从Heat模板格式动态生成表格,堆层拓扑可视化,和全面堆层资源查看。

Ceilometer

OpenStack计量项目(Ceilometer)也在Havana中亮相。最初的支持包括管理员能够通过OpenStack仪表盘查询云计算的使用情况,更好的理解系统如何运行和利用。

域, 组, 更多: 身份API v3的支持

随着Havana版本中OpenStack身份服务(Keystone) v3 API的全面成熟,Horizon对新功能如域和组,域和组上的角色管理和分配,基于域的认证,和域上下文切换,提供了全面支持。

Trove数据库

OpenStack数据库即服务的项目(Trove)在Havana中从孵化状态毕业了。经过他们的勤奋工作,他们在OpenStack仪表盘中发布了一系列的面板,允许你生产和管理你的Trove数据库以及备份. 免则声明:鉴于Trove的第一个集成的正式版本将在Icehouse中发布,目前这项功能只可看作实验,可能会被修改。

Nova 功能

Horizon中支持的OpenStack计算(Nova)功能在持续发展。Havana版本中的新功能包括:

  • 缺省配额可以编辑
  • 管理员可以重置服务器/云主机中的密码
  • Availability zone支持
  • 提高的区域支持
  • 调整云主机大小
  • 提高的boot-from-volume支持
  • 每个项目的flavor支持

对于控制哪里、何时以及如何启动云主机,所有这些都对此提供了丰富的选项,改善了云主机启动和运行中的管理。

Neutron功能

Havana版本增加了许多OpenStack网络(Neutron)的重要的新功能,最重要的包括:

  • VPN即服务.
  • 防火墙即服务.
  • 可编辑的交互式的可视化网络拓扑.
  • 全部安全组和Neutron和Nova network之间的配额平分.

当通过Neutron构造软件定义网络时,这些功能将给你提供巨大的灵活性。

用户体验的改善

密码修改自服务

由于身份API v2.0 (Keystone)的改进,用户如今无需经过管理员就可以改变密码。这样做更安全。但是该功能在身份API v3中还没有生效。

更好的组织管理员信息

管理员面板的几个部分被重新调整,使得更符合逻辑。而且,增加了新的信息来源,允许管理员更好的了解云中的主机状态和它们之间的关系,以便运载可用区域、聚合等。

改善用户登出后的通知

增加了几个新的指标,用于指示在意外出现登录页面时用户登出的原因。这些指标指示了用户会话是否过期,是否因为不活跃而超时,或者试图访问不被授权的部分。

安全组规则模板

由于许多非常常见的安全组规则用户每次都乏味地反复添加 (例如,SSH和ping的那些规则) Horizon团队已经为常见规则添加了预配置的模板,用户可以通过两次点击从中进行选择,并添加至他们的安全组。这些规则可以通过SECURITY_GROUP_RULES设置进行配置。

社区

翻译团队

OpenStack翻译团队的作用在Havana周期中完全显露出来,此次Horizon的翻译质量是目前为止最好的。向这个团队在建立社区中取得的成功表示祝贺,这些努力最初开始于OpenStack仪表盘项目。

用户体验团队

在Havana周期中,一个初创的OpenStack体验团队已经组建,其使命为改善整个OpenStack的用户体验。 他们迅速地使自己成为了OpenStack仪表盘特性设计与改进流程中不可或缺的一部份。由于现在有专门团队与外界进行积极开放地交流,可以预期未来的重要改进将进一步提升用户体验水平。

在后台

减少复杂的LESS编译:不再需要NodeJS

由于多方的负面评价,以及Python社区通过改进LESS支持提供的可能性,Horizon已经从项目中去除了所有NodeJS的部分。我们目前使用lesscpy来编译我们的LESS以生成最终的样式表。这将不会以任何形式影响大部分用户,但它可以使得下游分发和类似事务更为容易。

基于角色的访问控制

Horizon已经开始过渡,以使用其他OpenStack项目提供的policy.json来强化仪表盘中的访问控制。这意味着访问控制更加可配置,并且可以在其所属项目和Horizon之间保持同步。目前这只对Keystone和Nova的部分策略文件提供支持。完整支持将在下一个发布版本中提供。你将需要设置 POLICY_FILES_PATH和POLICY_FILES以使用这一特性。

其他改进与修正

  • Swift容器和对象元数据现在已经支持。
  • 新的使用率及配额可视化效果。
  • 当在Neutron中打开和支持以后,通过一个特殊的附加仪表盘,Cisco N1K路由器插件的附加特性已经可用。
  • 支持自签名或其他指定的SSL认证检查。
  • Glance镜像类型现在可配置。
  • 仪表盘许多地方的排序已经改进。
  • API调用效率优化。
  • 表单中需要填写的域被更好地指明。
  • 作为一个安全特性,会话超时现在可以被打开,以在一个用户超过一段时间不活跃以后将其登出。
  • 显著的PEP8和代码质量一致性改进。
  • 数百项错误修正和用户体验改进。

升级注意事项

允许的主机

对于Horizon的产品部署,你必须向你的your settings.py或 local_settings.py文件中添加ALLOWED_HOSTS设定。 这一设定是在Django 1.5中加入的,并且是一项重要的安全特性。对于相关的更多信息,请参考local_settings.py.example文件或Django文档。

打开Keystone和Neutron特性

如果你有已有的OPENSTACK_KEYSTONE_BACKEND或OPENSTACK_NEUTRON_NETWORK设定的配置,你将需要参考local_settings.example.py文件,以获取新的已添加选项的信息。已有的配置将继续可用,但可能无法打开Havana版本中的一些新特性。

已知问题与限制

对话创建与健康检查

如果你使用健康监管服务ping主页,并且后端使用的是支持数据库会话的那种,你会碰到过多的会话被创建这个问题。 该问题很快会被修订,但是短期内推荐的解决方法是,写一个周期任务来从你的会话存储中删除过期的会话。

同时删除巨大数量的资源

使用"全部选择"选项以一次删除巨大数量的资源可能引起网络超时(与配置有关)。这是由于底层API不能原生支持巨量删除,因此Horizon必须在后台分别发送删除各个资源的要求。

与Neutron冲突的安全组名

虽然Nova Network只使用在云主机创建并指定安全组时指定的那个安全组名,Neutron则可以接受名字或者UUID。为了同时支持两者,Horizon传入了被选择的安全组的名字。然而,由于Neutron中的一些数据隔离问题,如果一个admin用户试图指定一个与其他项目中的其他安全组同名的安全组名,可能会发生一些问题。Neutron将发现对这个安全组名的多个匹配结果,并且无法创建这个云主机。目前的一个回避办法是使安全组名对于admin用户是独一无二的。

后向兼容性

Havana Horizon发布版本将与Havana和Grizzly版本中的其他OpenStack集成项目(Nova, Swift, etc.)完全兼容。 如果栈的其余部分提供支持,则其他在Grizzly中不存在的项目中的新特性则只能在Horizon中工作。总体而言,为了维护与以Horizon为基础的第三方开发者的兼容性,已经付出了巨大努力。


OpenStack 身份(Keystone)

主要新特性

  • 改善了部署灵活性
    • 认证数据(用户,组; 例如LDAP),可以由"身份"驱动程序的决定,存储在一个后端中,而授权数据(租户/项目, 角色, 角色分配; 例如SQL) 则由"分配"驱动程序的决定,存储在另一个分开的后端中。
    • 不同于认证数据,证书(例如ec2令牌)如今由"证书"驱动程序来指定,存储在另一个分开的后端中。
    • 有能力指定更小粒度的RBAC策略规则(例如,基于API请求/应答消息体中的某个属性)
    • 使用REMOTE_USER可插入地处理外部认证。
    • 令牌生成,目前基于UUID或者PKI, 是可插入式的,与令牌持久存储是分开的。部署人员可实现一个定制化的keystone.token.provider.Provider接口,通过配置 [token] provider使Keystone使用它。为了支持这个新的配置项,[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项目一致

  • 使用keystone-manage db_sync --extension=«extension-name»,SQL 迁移扩展现在被从主存储迁移中分离出来管理,.

已知问题

  • six 一个没有记录下来的需求是版本要求v1.4.1或者更高 (bug 1237089)。没有six,Keystone会在启动时失败,错误将会是ImportError: No module named six或者pkg_resources.DistributionNotFound: six.
  • 基于域的身份认证后端的试实现 (例如,每个域有唯一的LDAP配置)从Havana开始,但是不完备,将在Icehouse中继续完善。

OpenStack Network Service (Neutron)

主要新特性

新的名称

OpenStack的网络服务,在此版本中有一个新的名字:Neutron。Havana版将允许向下兼容Grizzly版Quantum的配置文件,但使用Quantum的配置文件是不推荐使用的,部署人员应当尽快更新所有的引用配置到新版。Quantum配置文件和可执行文件名将支持到2014.1(Icehuose版)。

高级服务

Neutron 的最新发展周期过程中增加了两个新的先进的服务和修订的负载均衡服务。

负载均衡 (LBaaS) 以前是发布在2013.1版本(Grizzly)版的实验性功能,负载平衡服务和API扩展,现在已适合部署。此版本发布了更新后的API和HAProxy的

驱动程序支持。供应商的驱动程序,预计在Icehouse 和Radware两个版本已经分成了Havana 版兼容的驱动程序供下载。负载均衡服务可以运行在多个网络节点上。

VPN (VPNaaS)端到端的IPSec VPN通过VPN服务插件进行支持。 VPN API支持IPSec和L3代理并且附带openswan的驱动程序。

Firewall (FWaas)一个新的边缘防火墙服务。防火墙服务允许租户通过防火墙API或者通过VIF API安全组配置深度安全规则 。 FWaaS API和驱动程序是试验

性的,Neutron会在下一个发布周期继续进步。开发团队欢迎各界人士对这个扩展提出自己的意见。

新插件

Modular Layer 2 (ML2) 模块化第2层

(ML2) 是Neutron的一个新的开源插件。这个插件是一个框架,使得OpenStack的网络可以利用2层网络技术实现复杂的真实数据中心的各种功能,目前兼容Open

vSwitch, Linux Bridge, 和 L2代理。 ML2插件通过各种驱动和不同技术支持local,flat, VLAN , GRE和VXLAN网络。有多重供应商驱动程序可用 Arista,

Cisco Nexus, Hyper-V, and Tail-f NCS。 ML2用来代替Linux Bridge,并且Open vSwitch插件现在也进入不建议使用列表。更多ML2信息参考 [

https://wiki.openstack.org/wiki/Neutron/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代理不再默认发送空ARP消息

L3代理以前默认发送空ARP。在一些版本的系统中,当使用网络命名空间发送空的ARP将导致内核崩溃。用户可以在L3代理

配置文件中通过设置send_arp_for_ha= 3"来启用空ARP。

防火墙as服务

这个版本中的FWaaS API插件只支持每租户一个活动的策略。这一功能将在ICE版中继续改进,到时将允许不同租户的不同的策略。

升级注意事项

  • 升级neutron-dhcp首先升级dhcp-agents。然后等到dhcp_lease超时。当dhcp_lease超时时,升级neutron-server。如果不执行这个步骤将导致dnsmasq在云主机删除后不释放ip给新的port。

(https://review.openstack.org/#/c/37580/)

  • 新的policy.jsonfile需要更新新的变化后的选项:policy.json

弃用声明

  • 使用 "quantum" 或 "Quantum"的配置文件和可执行文件名已正式弃用。这是最后将支持这些名称的版本,新部署必须使用适当的Neurton名称。后续版本将不保证

兼容性。

  • LinuxBridge和Open vSwitch的插件功能已经在J (2014.2)版本冻结,删除。新部署应该选择使用ML2代替OpenvSwitch或LinuxBridge插件。

OpenStack 块存储 (Cinder)

主要的新特征

  • 卷迁移 - 实现了一个管理员API,它可以把卷迁移到一个不同的后台存储设备上
  • V2 API 中增加了调度器提示扩展
  • 增加了本地块存储驱动可以跳过LVM直接使用原始磁盘
  • 增加了扩展已有卷容量的能力
  • 增加了将卷由一个租户转移给另一个租户的的能力
  • 增加了API调用,使得用户可以编辑默认配额设置
  • 增加了配置选项为后台存储实现 auto-flatten 快照,从而决定在从快照创建卷时是否产生依赖关系
  • 增加了API可以接受“hostname”来进行卷挂载,而不仅仅限于虚拟机的 uuid
  • 增加了一个备份层使得任何没有内部优化的iSCSI设备的备份都可以进行备份
  • 增加了新的 Ceph 驱动用于提供备份服务 (允许Ceph 可以作为备份目标)
  • 在供应者信息中增加了速率限制信息,该信息可以传递给 Nova 并由虚拟机管理器使用
  • 新的 Windows 存储服务器驱动特征 (blueprint)

新的厂商驱动

  • Dell EqualLogic volume driver
  • VMware VMDK cinder driver
  • IBM General Parallel File System (GPFS)

已有驱动的主要补充

  • 华为存储系统添加了光纤通道驱动支持
  • Nexenta 存储添加了NFS卷驱动
  • 几乎每个已有的厂商驱动都进行了各式各样的、设备特定的更新
  • IBM Storwize 驱动的卷迁移实现了优化

新的备份驱动

  • Ceph成为了用于卷备份的选择
  • IBM Tivoli Storage Manager (TSM)

已知问题

  • Bug #1237338 : 上传卷到镜像会因为VMWare卷驱动失败
  • Bug: #1240299 : 清除卷的操作会导致所有的LVM卷被删除。在这个错误被修订之前,确保在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新增加的一项特性,通过将一定时段内的统计和监测数据结果与设定的阈值相比较从而允许用户和操作人员触发系统进行相关反应和动作。警报功能主要由以下服务组成:

  • "ceilometer-api"通过“/v2/alarms”接口对外提供对警报生命周期的控制和管理;
  • "ceilometer-alarm-evaluator"周期性地评估各个警报以探测警报状态的变化;
  • 当警报被触发时,"ceilometer-alarm-notifier"将接收来自“ceilometer-alarm-evaluaotr"服务的通知并执行相关联的反应和动作警报也同时提供了API以供查询警报状态变迁和相关规则变化等历史数据

数据收集器

  • 新的HBase驱动
  • 新的DB2(NoSQL)驱动
  • 改进的SQLAlchemy驱动
  • 改进的MongoDB驱动
  • 添加了TTL功能用于从数据库中删除旧有的监测数据
  • 添加了存储事件的功能
  • 在SQLAlchemy上添加了事件存储的特性

数据发布器驱动

  • 增加了一个UDP数据发布器

数据转换器

  • 增加了两种新型数据转换器: unit-scaling数据转换器以及rate-of-change数据转换器

监测方法

  • 增加了一个利用Python middleware监测API请求的监测方法
  • 增加了从新的Neutron带宽监测方法记录监测数据的功能

计算节点Ceilometer代理

  • 增加了针对Hyper-V的支持

已知问题


OpenStack 编排 (Heat)

主要新特性

完善的文档

开始与Tempest集成

并发资源操作

  • 非依赖性创建,更新和删除操作目前可以并发执行

完善的网络/Neutron支持

  • 新的LBaaS, FWaaS以及VPNaaS资源

开始支持原生模板语言(HOT)

标准

提供者和环境摘要

  • 摘要是一种利用嵌套模板定制资源类型的方法, 参见 文档 以及

博客发布

与Ceilometer的集成,包括监测方法/监控/警报

  • 与Ceilometer的集成也包括由Ceilometer警报触发的AutoScaling动作。以往版本中由Heat自身处理的监测、警报等流程依然存在,但已经不推荐使用并很有可能在Icehouse版本中被移除。

UpdateStack改进

  • 若干资源类型目前提供对非破坏性更新,包括调整云主机大小等操作的更好的支持。 同时,我们也会在删除资源前创建替补资源,从而能够提供更好的连续性和回滚能力。

开始与keystone的信托功能集成

  • 开始与keystone信托功能集成, 因而当heat.conf指定配置deferred_auth_method为trusts时,我们不再存储加密的凭据信息以执行延迟的操作(例如AutoScaling调整等),而是创建一个信托并记录信托的标识。
  • (参见下文中的"已知问题"一节)

完善的资源文档

  • 通过API可以查看所安装资源类型的概要

更多原生资源类型

新的Rackspace资源类型

  • Rackspace::Cloud::DBInstance
  • Rackspace::Cloud::LoadBalancer
  • Rackspace::Cloud::Server

Stack挂起/恢复

  • 提供了一个新的API "actions"用以支持整个stack的挂起/恢复

在heat.conf和paste-api.ini中统一所有配置信息

  • 参见下文中的"升级记录"一节
  • 增加了新的配置选项,提供了以下功能和限制
模板尺寸
每个tenant中的stack数量
每个tenant中的event数量
stack嵌套深度

Heat单独模式

  • Heat目前可以被配置成为在单独模式下运行, 允许在外部Openstack上实现编排

已知问题

升级注意事项

  • Heat当前使用一个配置文件(/etc/heat/heat.conf),不再使用每个服务一个文件的方式
  • API使用一个配置文件(/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快速入门
      • 最终用户指南
      • 管理员用户指南

已知问题

  • 一些指南没有彻底更新,可能缺失一些信息。