Difference between revisions of "ReleaseNotes/Liberty/zh-hans"
(Created page with "==== 不推荐使用的功能 ====") |
|||
(33 intermediate revisions by the same user not shown) | |||
Line 469: | Line 469: | ||
* [https://github.com/openstack/searchlight/tree/master/devstack Devstack deployment] | * [https://github.com/openstack/searchlight/tree/master/devstack Devstack deployment] | ||
− | ==== | + | ==== 新的资源类型索引 ==== |
− | * [http://docs.openstack.org/developer/searchlight/plugins/nova.html OS::Nova::Server] | + | * [http://docs.openstack.org/developer/searchlight/plugins/nova.html OS::Nova::Server] Nova虚拟机 |
− | * [http://docs.openstack.org/developer/searchlight/plugins/glance.html OS::Glance::Image & OS::Glance::Metadef] | + | * [http://docs.openstack.org/developer/searchlight/plugins/glance.html OS::Glance::Image & OS::Glance::Metadef] Glance镜像和Metadata定义 |
− | * [http://docs.openstack.org/developer/searchlight/plugins/designate.html OS::Designate::Zone & OS::Designate::RecordSet] | + | * [http://docs.openstack.org/developer/searchlight/plugins/designate.html OS::Designate::Zone & OS::Designate::RecordSet]Designate域和记录集 |
=== 升级提示 === | === 升级提示 === | ||
Line 482: | Line 482: | ||
N/A | N/A | ||
− | == | + | == OpenStack域名解析服务(Designate) == |
− | === | + | === 新功能 === |
− | * ''''' | + | * '''''实验性''''': 钩子点(Hook Point)API |
− | * | + | * 将Horizon代码移除掉 |
− | * | + | * 清理删除的域名 |
− | * | + | * Ceilometer为每个域名“存在”定时事件 |
− | * | + | * 异步动作 |
− | ** | + | ** 导入 |
− | ** | + | ** 导出 |
− | * | + | * 为designate-pool-manager周期任务提供主动/被动的容错 |
− | * | + | * OpenStack客户端集成 |
− | ==== | + | ==== 额外的DNS服务后端 ==== |
* InfoBlox | * InfoBlox | ||
* Designate | * Designate | ||
− | === | + | === 升级提示 === |
− | * | + | * 新的服务<code>designate-zone-manager</code> |
− | ** | + | ** 建议使用tooz后端 |
− | ** | + | ** 建议使用ZooKeeper,或者其他支持tooz的 |
− | ** | + | ** 如果后端没有使用tooz,所有的zone-managers将假定是所有区域的所有者,每个小时将有n个存在的消息,n是zone-manager进程数 |
− | * <code>designate-pool-manager</code> | + | * <code>designate-pool-manager</code>能够为周期性任务执行主动/被动的容错 |
− | ** | + | ** 建议使用支持tooz的后端 |
− | ** | + | ** 如果tooz后端没有使用,所有的pool-managers将假定是所有池的所有者,并且多个周期任务将运行。这将引起不可预知的后果。 |
− | === | + | ==== 不推荐使用的功能 ==== |
* V1 API | * V1 API | ||
− | ** | + | ** indent的初始化提示,因为所有的操作仍然需要Designate CLI接口与V1通讯,并且Horizon面板仅仅和V1通讯 |
− | == | + | == OpenStack消息服务(Zaqar) == |
− | === | + | === 新功能 === |
− | * | + | * 预签名URL - 一个新的REST API endpoint支持预签名URL,提供在共享资源之上充足的控制,没有安全问题。 |
− | * | + | * 电子邮件通知 - 通知服务新的任务驱动,能够接受Zaqar订阅者的电子邮件地址。当一个新的消息提交到队列中,订阅者将使用电子邮件接受消息。 |
− | * | + | * 策略支持 - 支持细粒度的权限控制,与其他OpenStack模块类似使用<code>policy.json</code>文件。 |
− | * | + | * 持久化的传输 - 为Zaqar添加了websocket作为持久化传输的一种选择。现在用户将可以建议在他们的应用和Zaqar之间建立长连接,来交换数据量较大的数据,而并不需要额外的连接设置。 |
== OpenStack控制面板(Horizon) == | == OpenStack控制面板(Horizon) == | ||
Line 606: | Line 606: | ||
== OpenStack裸金属服务(Ironic)== | == OpenStack裸金属服务(Ironic)== | ||
− | + | Ironic已经切换到[http://git.openstack.org/cgit/openstack/governance/tree/reference/tags/release_cycle-with-intermediary.rst intermediate release model]并且在Liberty发布了4.0版本,主要有两个小更新。在OpenStack集成的Libery更新中,4.2版包含了基本部分并且将接收到稳定的更新。 | |
− | + | 查看完整的更新日志:http://docs.openstack.org/developer/ironic/releasenotes/index.html | |
− | === | + | === 新功能 === |
− | * | + | * 添加了"ENROLL"硬件状态,这是对于每个新创建的节点默认的状态。 |
− | * | + | * 添加了"abort"动作,允许用户中断一个正在进行的操作 |
− | * | + | * 优化查询并且在REST API支持过滤 |
− | * | + | * 添加对CORS中间层支持 |
− | ==== | + | ==== 硬件驱动更新 ==== |
− | * | + | * 为硬件驱动添加了一个新的BootInterface,从DeployInterface里剥离 |
− | * | + | * iLO虚拟机磁盘驱动现在可以脱离Swift工作 |
− | * | + | * 添加了Cisco IMC驱动 |
− | * | + | * 添加了OCS驱动 |
− | * | + | * 添加了UCS驱动 |
− | * | + | * 添加了网络唤醒的电源驱动 |
− | * | + | * ipmitool驱动支持IPMI v1.5 |
− | * | + | * 为"APC MasterSwitchPlus"系列PDU's添加SNMP驱动 |
− | * | + | * pxe_ilo驱动现在吃吃UEFI安全启动(之前的theiLO驱动的版本仅支持agent_ilo和iscsi_ilo) |
− | * | + | * 支持iRMC驱动的虚拟媒体 |
− | * | + | * 为DRAC驱动添加BIOS配置 |
− | * | + | * PXE驱动现在支持GRUB2 |
− | === | + | ==== 不推荐使用的功能 ==== |
− | * | + | * DriverInterface里的"vendor_passthru"和"driver_vendor_passthru"方法已经被删除。在Kilo版本中不推荐使用,并且被@passthru装饰器替代 |
− | * | + | * 从Nova"裸金属"部署中导入数据的迁移工具被删除了 |
− | * | + | * 不推荐使用的"parallel"选项,推荐使用周期性任务装饰器 |
− | * | + | * 删除不推荐的'admin_api'策略规则 |
− | * | + | * 不推荐使用原生的"bash"部署ramdisk,并且将在两个版本内删除。ironic-python-agent项目应该被所有的部署驱动使用。 |
− | === | + | === 升级提示 === |
− | * | + | * 新创建的节点的状态为ENROLL。之前的,节点默认为AVAILABLE,这样会导致硬件过早的暴露给Nova |
− | * | + | * 在Kilo中,头部的API版本信息意外着任何客户端需要和Liberty API交互必须传入适当的版本信息在每一个HTTP请求中。现在API版本是1.14 |
− | == | + | == OpenStack密钥管理(Barbican) == |
− | === | + | === 新功能 === |
− | * | + | * 项目管理员为每个项目创建授权证书。同时,项目管理员也能够为每个项目定义和管理一系列首选的授权证书。这样允许项目内获取项目特定的安全域。 |
− | * | + | * Barbican现在支持每个项目的配额,用于限制在一个项目下Barbican创建的资源数量。默认的情况下,这个值不受限制,使用Barbican配置覆盖该设置。 |
− | * | + | * 支持旋转式(rotating)的master key,用于包裹住项目级别key。在这种轻量级解决方案中,只有项目级别key(KEK)会重新使用新的master key(MKEK)包装。当前仅支持PKCS11插件。(http://specs.openstack.org/openstack/barbican-specs/specs/liberty/add-crypto-mkek-rotation-support-lightweight.html) |
− | * | + | * 更新Barbican根资源返回版本信息,样式匹配Keystone、Nova和Manila。这是被keystoneclient具有版本的endpoint发现功能使用的。 |
− | * | + | * 使用已经删除的管理员endpoint所有操作可以作为一个普通的endpoint。通过Oslo plicy,不需要单独的endpoint作为强制限制访问。 |
− | * | + | * 增加配置sqlalchemy池的配置,用于管理SQL链接。 |
− | * | + | * 增加显示所有secrets的请求,通过ACL使用GET /v1/secrets?acl-only=true |
− | * | + | * 优化Barbican APIs与ACL操作、RBAC策略和secret功能测试覆盖率 |
− | * | + | * 修复建立SnakeOil CA虚拟机插件的创建 |
− | * | + | * Barbican客户端CLI现在能够使用Keystone token鉴权。早期只能使用用户名和密码的鉴权。 |
− | * | + | * Barbican客户端现在能够创建和列出证书的顺序 |
− | === | + | === 升级提示 === |
− | * | + | * 删除了项目secret相关表。Secret项目关系现在由外键维护。更多信息请见:http://specs.openstack.org/openstack/barbican-specs/specs/liberty/data-remove-tenant-secret-assoc.html |
− | * | + | * 重新命名barbican配置文件<code>barbican.conf</code> |
== OpenStack镜像服务 (Glance) == | == OpenStack镜像服务 (Glance) == | ||
Line 700: | Line 700: | ||
* 配置项<code>scrubber_datadir</code>, <code>cleanup_scrubber</code>和 <code>cleanup_scrubber_time</code>,已经被删除,同时被删除的还有scrubber文件后端队列。 | * 配置项<code>scrubber_datadir</code>, <code>cleanup_scrubber</code>和 <code>cleanup_scrubber_time</code>,已经被删除,同时被删除的还有scrubber文件后端队列。 | ||
− | == | + | == OpenStack共享文件系统(Manila) == |
− | === | + | === 新功能 === |
− | * | + | * 支持avaliability zone |
− | * | + | * 增加管理员API模块来共享虚拟机 |
− | * | + | * 增加pool weigher,允许Manila调度器在资源池中使用现有的共享服务器提供新的共享 |
− | * | + | * 支持共享迁移从一个hostpool到另外一个(实验性) |
− | * | + | * 在通用驱动中增加共享扩展能力 |
− | * | + | * 支持添加一致性组,允许为多个共享文件系统进行快照,及时在同一时间点进行快照(实验性)。 |
− | * | + | * 在NetAPP cDOT驱动和通用性驱动中支持一致性组 |
− | * | + | * 在thin provision中支持超分 |
− | * | + | * 新的Windows SMB驱动 |
− | ** | + | ** 支持处理Windows服务的实例和导出SMB贡献 |
− | * | + | * 增加新的<code>osapi_share_workers</code>配置项来优化Manila API服务总的吞吐量 |
− | * | + | * 增加share hooks功能,允许在驱动调用之前或者之后执行额外的动作,没N次调用附加的周期性hook,并且更新驱动执行后的结果 |
− | * | + | * 针对NetApp cDOT驱动的优化: |
− | ** | + | ** 添加变量netapp:dedup和netapp:compression,当创建flexvol,备份一个新的manila共享 |
− | ** | + | ** 添加了manage/unmanage支持和shrink_share支持。 |
− | ** | + | ** 支持<code>extended_share</code>API模块 |
− | ** | + | ** 支持netapp-lib PyPI项目和存储阵列通讯 |
− | * | + | * 优化HP 3PAR驱动: |
− | ** | + | ** 为dedupe、thin provisioning和hp3par_flash_cache容量增加报告。这样允许共享类型和CapabilitiesFilter根据请求的容量在主机分配共享 |
− | ** | + | ** 支持共享服务 |
− | * | + | * 优化Huawei Manila驱动: |
− | ** | + | ** 支持存储资源池、extend_share、manage_existing、shrink_share、read-only共享、smartcache和smartpartitioin |
− | ** | + | ** 增加dedupe、thin provisioning和压缩容量的报告 |
− | * | + | * 为VNX Manila服务增加访问级别控制 |
− | * | + | * 支持Manila HDS HNAS驱动 |
− | * | + | * 支持GulsterFS本地驱动 |
− | ** | + | ** GlusterFS驱动现在能够指定所有兼容共享布局的列表 |
− | * | + | * 增加微版本支持(v2 API) |
− | === | + | ==== 不推荐使用的功能 ==== |
− | * | + | * <code>share_reset_status</code> API模块不推荐使用,并且被替换为<code> share_instance_reset_status </code> |
Latest revision as of 10:38, 29 October 2015
OpenStack Liberty版本更新说明
Contents
- 1 OpenStack Liberty版本更新说明
- 1.1 OpenStack对象存储(Swift)
- 1.2 OpenStack网络服务(Neutron)
- 1.3 OpenStack 计算服务(Nova)
- 1.4 OpenStack计量服务(Ceilometer)
- 1.5 OpenStack鉴权服务(Keystone)
- 1.6 OpenStack块存储(Cinder)
- 1.7 OpenStack编排服务(Heat)
- 1.8 OpenStack数据处理服务(Sahara)
- 1.9 OpenStack搜索(Searchlight)
- 1.10 OpenStack域名解析服务(Designate)
- 1.11 OpenStack消息服务(Zaqar)
- 1.12 OpenStack控制面板(Horizon)
- 1.13 OpenStack Trove(数据库即服务)
- 1.14 OpenStack裸金属服务(Ironic)
- 1.15 OpenStack密钥管理(Barbican)
- 1.16 OpenStack镜像服务 (Glance)
- 1.17 OpenStack共享文件系统(Manila)
OpenStack对象存储(Swift)
完整的版本更新说明请参阅 https://github.com/openstack/swift/blob/master/CHANGELOG
新功能
- 通过设置一个大于0的整数值,允许部署一个以上的、每个磁盘一个object服务(object-servers-per-disk),通过在[DEFAULT]中的"servers_per_port"配置,设置object-server或者复制服务的配置。这个整数配置决定了有多少个不同的object-server的workers,响应一个唯一的本地ring里的port。在这种模式下,父级的swift-object-server进程继续使用原有用户执行(例如,如果需要low-port绑定是必须的,使用root用户)。它会绑定所有在ring定义的ports。之后,为每一个监听socket分离出一个指定数量的workers。子级别的,每个port服务,放弃权限并且表现出object-server的workers固有状态,但是一个唯一的例外:ring在每个磁盘拥有唯一ports,object-servers仅仅为一个磁盘响应请求。父进程检测到死掉的服务并且重启他们(拥有正确监听socket)。当发现一个更新的ring文件后,它启动丢失的服务,并且在服务中加载一个新的port,并且当他们的接口在ring里找不到的时候,杀掉不相关的服务。ring文件启动是在每个object-server配置中由"ring_check_interval"参数进行配置(默认15秒)。在测试中,部署的配置是更低的请求延时(配置为3秒),优化了每秒的请求,与存在的"workers"配置相比较,隔离速度慢的磁盘IO请求。如果使用这个配置,每个设备必须要加入到ring中,并且使用一个不同的port。
- 对象服务包含了一个"container_update_timeout"设置(默认配置为1秒)。这个值的含义就是对象服务等待容器服务在返回对象PUT操作之前更新列表的时间。之前,对象服务会等待容器服务3秒响应。当集群内的容器非常繁忙的时候(例如,当容器非常大的时候),新的行为明显降低了对象PUT延时。将这个值设置过低会引起客户端在PUT一个对象过程中无法及时在列表中找到对象。但是设置太高了,在容器服务繁忙的时候,会增加客户端延时。
- 可以为静态超大对象(Static Large Object, SLO)分段指定范围。
- 运行SLO PUT操作放弃预分段完整性的检查。之前的方式是,在manifest中的每个分段引用也需要一个正确的etag和字节设定。这些字段不允许在制定的分段中,设置null值来跳过这些特定的检查。
- Replicator配置现在支持"rsync_module"来允许每个设置加载rsync模块。这些值允许运维人员能够更好的在swift集群中设置并调优复制的流量,并且分离复制磁盘的IO到指定的设备。详情请见文档和配置样例。
- Ring的更新
- Paritition的放置不在使用port数。这个更新主要优化在一个小集群内的扩散,例如运行一个设备上运行一个object,并且保证扩散不影响一个object服务一个服务器的集群。
- 增加ring-builder-analyzer工具来简化测试和分析ring管理运维
- Ring校验中,如果一个位置分区得到得到一个设备多次,就会出现警告。这种情况发生在一个ring是不平衡的情况下(例如:两个服务器,一个服务器的容量要明显比另外一个多)。
- TempURL修复了(CVE-2015-5223关闭)
不要允许PUT tempurls创建指向其他数据的指针。具体来说,不允许通过PUT tempurl创建DLO对象manifests。这样保护了易暴露的攻击,这种攻击能够利用任何的PUT tempurl探测到被DLO对象manifest创建的私有数据,并且使用PUT tempurl指向对象
- Swift现在在每一个策略基础上发出StatsD测量。
- 修复了一个Keystone整合的问题,这个问题会导致到服务账户的复制的请求成功,即使这个服务token没有包含在这个请求中。
- 批量上传现在在文件上处理用户xattrs,在处理创建对象时,使用给定的存档作为对象metadata。
- 在对象复制中提交警告日志,如果"handoffs_first"和"handoff_delete"设置了
- 允许在Swift-recon开启对象复制失败的次数
- 在扩散工具中添加支持存储策略
- 在swift-dispersion支持keystone v3域
- 在/info端点中添加domain_remap信息
- 在domain_remap中间件配置中支持"default_reseller_prefix"
- 通过设置"rsync_compress"配置,允许rsync使用压缩。如果设置为true,压缩仅仅在不同区域rsync时生效。在一些情况下,这能加速跨域复制时的数据传输。
- 在swift-recon中添加时间同步检查(--time参数)
- 在一个大型的accounts上account收割机运行速度加快。
- 各种各样的其他小bug修复和优化。
升级提示
- 依赖变化
- 添加six依赖。这个部分作为支持Python 3的一部分。
- 放弃了对Python 2.6的支持。
- 配置变化
- 最近Python版本将请求头的数量限制为100。对于定制化的中间层来说有些低。swift.conf新的"extra_header_count"配置值能够用来增加头的数量。
- 将"run_pause"设置为"interval"(当前配置使用run_pause仍然工作)。未来的版本将去掉run_pause。
- 已经版本化的写功能已经重构,并且在中间层重新实现。你需要明确的在versioned_writes中间层添加你的代理pipeline,但是不要去掉或者禁用已经存在的容器服务配置("allow_versions")。这个已经存在的容器服务配置开启保证已经存在的容器继续被版本化。更多详细升级信息请参阅:http://swift.openstack.org/middleware.html#how-to-enable-object-versioning-in-a-swift-cluster
OpenStack网络服务(Neutron)
- Neutron现在支持IPv6前缀代表,用于自动分配IPv6的子网的CIDRs。更多信息和使用说明请详见OpenStack Networking Guide。
- Neutron现在暴露了一个Qos API,在port级别提供端口带宽限制。API,CLI、配置和其他信息请参阅:[1]。
- 路由的高可靠(L3 HA/VRRP)现在在二层population(l2pop)被打开时工作 [2]。
- VPNaas相关驱动现在和HA路由器兼容。
- 为HA路由,使用VRRP的网络现在需要配置使用特定的分区类型或者物理网络标记[3]。
- OVS代理的重启不影响数据层面连接。
- Neutron网络现在支持基于角色的访问控制[4]。
- LBaaS V2相关驱动现在基于Octavia,一个运维级别可扩展、可靠的负载均衡平台。
- LBaaS V2 API is no longer experimental. It is now stable.
- LBaas V2 API现在不再为测试。已经稳定了。
- Neutron现在提供给管理员手动方式的调度代理,允许主机再远能够在为租户使用前进行测试[5]。
- Neutron现在有一套可插拔的IP地址管理框架,允许使用可选择的或者第三方IPAM。原来的,不可插拔版本的IPAM仍然被默认使用。
不推荐使用和被删除的插件和驱动
- metaplugin在Liberty版本被删除
- IBM SDN-VE整体插件在Liberty版本被删除
- 思科N1kV整体插件在Liberty版本被删除(被ML2策略驱动取代)
- Embrane插件被废弃,将在Mitaka版本中被删除。
不推荐使用的功能
- FWaas API在Liberty版本被标记为测试。未来,当前的API将在Mitaka版本删除,并且被一套全新的FWaaS API取代,相关的团队正在全力以赴。
- LBaaS v1 API被标记为废弃,并且在未来版本删除。未来,LBaaS V2 API将被使用。
- L3代理中使用bridge_mapping的physnet的'external_network_bridge'参数已经被废弃,更多信息,请参考网络指导中的"网络节点"的场景:http://docs.openstack.org/networking-guide/scenario_legacy_ovs.html
性能建议
- 常用的Trusty Tahr内核(3.13)在命名空间增加以后执行"ip netns exec"会出现线性性能下降。当然比例很重要,未来的内核版本(例如3.19)应该被使用。[在3.13出现的问题。大多数版本应该已经修复了]
注意:这个回归应该在Trusty Thar 3.13.0-36.63及以后的版本中修复。更多信息请参阅:https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1328088
- 在使用Octavia驱动时,创建Neutron-LBaas负载均衡在没有硬件虚拟化的环境下可能会很慢。这是因为QEMU使用TCG加速替代了KVM加速在没有硬件加速的环境中。当在虚拟化环境中使用Octavia驱动时,我们建议在计算节点开启硬件虚拟机化,或者开启嵌套式虚拟化。查看下面的链接,如何为运行在KVM环境中的Devstack开启嵌套式虚拟化:http://docs.openstack.org/developer/devstack/guides/devstack-with-nested-kvm.html。
OpenStack 计算服务(Nova)
新功能
API
- 为所有的endpoints默认使用v2.1的API,v2.0和v1.1使用了新的兼容模式,对已经使用API的用户过渡更平稳。(https://blueprints.launchpad.net/nova/+spec/api-relax-validation)
- Evacuate机制更加健壮(局部)(https://blueprints.launchpad.net/nova/+spec/robustify-evacuate)
- New "mark host down"/"force down" API for external high availability tools to notify Nova in the event of a host failure (http://specs.openstack.org/openstack/nova-specs/specs/liberty/approved/mark-host-down.html).
- 新的"将主机标记为down"/"强制down"的API,当主机故障时,可以让外部的高可靠工具通知Nova(http://specs.openstack.org/openstack/nova-specs/specs/liberty/approved/mark-host-down.html)。
- 合并获取consoles的API https://blueprints.launchpad.net/nova/+spec/consolidate-console-api
- 在os-fixed-ipsAPI中显示'保留'状态(https://blueprints.launchpad.net/nova/+spec/show-reserved-status-in-os-fixed-ips-api)
- 允许非管理员用户根据IPv6查询(
https://blueprints.launchpad.net/nova/+spec/allow-ip6-search-for-non-admin)
- 在添加租户访问权限前检查规格类型(https://blueprints.launchpad.net/nova/+spec/check-flavor-type-before-add-tenant)
- 在rebuild_instance(重建虚拟机)中,将参数on_shared_storage(是否在共享存储)标记可选(https://blueprints.launchpad.net/nova/+spec/optional-on-shared-storage-flag-in-rebuild-instance)
- 策略检查已经从数据库层面删除,所以现在只存在于API层(https://blueprints.launchpad.net/nova/+spec/nova-api-policy-final-part)
- 在虚拟机网卡列表的API请求中增加VIF net-id(https://blueprints.launchpad.net/nova/+spec/add-vif-net-id-in-vif-list)
- 将glance镜像meta属性转化为NovaObject(部分)(https://blueprints.launchpad.net/nova/+spec/convert-image-meta-into-nova-object)
- 在server获取的返回中增加锁定信息(https://blueprints.launchpad.net/nova/+spec/add-locking-information-in-server-get-response)
- 允许管理员用户查看任何keypair(https://blueprints.launchpad.net/nova/+spec/admin-query-any-keypair)
- Metadata:将project_id加入liberty版本的metadata(https://blueprints.launchpad.net/nova/+spec/project-id-in-metadata)
- Metadata:将路由信息注入网络模板引擎(https://blueprints.launchpad.net/nova/+spec/network-template-routes-injection)
- Metadata:API:为guest实例添加neutron代理配置(部分)(https://blueprints.launchpad.net/nova/+spec/metadata-service-network-info)
调度器(Scheduler)
scheduler的架构演进仍然在继续,修复了一些bug:
- 在生成请求的定义中添加对象模型(部分完成)(https://blueprints.launchpad.net/nova/+spec/request-spec-object)
- 将资源分配比例从调度器移到资源跟踪(https://blueprints.launchpad.net/nova/+spec/allocation-ratio-to-resource-tracker)
- 修复了在主机之间移动虚拟机时资源跟踪问题(https://blueprints.launchpad.net/nova/+spec/migration-fix-resource-tracking)
- 当返回"无可用主机”时候,优化了调度器给用户反馈(http://specs.openstack.org/openstack/nova-specs/specs/liberty/approved/add_exceeded_max_retries_exception.html)。
Cells v2
Cells v2版本现在并不是一个可用状态,但是我们添加了一些更多的支持:
- Cells主机映射(https://blueprints.launchpad.net/nova/+spec/cells-host-mapping)
- Cells主机迁移(https://blueprints.launchpad.net/nova/+spec/cells-instance-migration)
计算节点驱动新功能
Libvirt
- 开始使用os-brick库作为libvirt卷驱动,这样可以使Nova和Cinder共享卷发现和删除逻辑(http://specs.openstack.org/openstack/nova-specs/specs/liberty/implemented/use-os-brick-library.html)。
- 添加live_migration_completion_timeout和live_migration_progress_timeout配置来辅助在线迁移时的最大运行时间,特别是过程已经停止(https://launchpad.net/bugs/1429220)。
- 在在线迁移过程中,增加逻辑来管理和最长down机时间比例,用以提供更好的完成迁移的更大的guest大小(https://launchpad.net/bugs/1429220)
- 限制同时在线迁移的过程(https://launchpad.net/bugs/1478108)。
- 可以选择开启增加与guest VCPU相关的VirtIO队列,如果hw_vif_multiqueue_enabled磁盘属性设置为true(默认false),为guests超过一个vCPU的,许多并发连接或者相对较大的数据包提供网络性能增强(http://specs.openstack.org/openstack/nova-specs/specs/liberty/implemented/libvirt-virtiomq.html).
- 如果QEMU客户端agent被安装并且通过hw_qemu_guest_agent镜像属性打开,允许管理设置guest Administrator/root密码(http://specs.openstack.org/openstack/nova-specs/specs/liberty/approved/libvirt-set-admin-password.html)
- 新的VIF类型允许路由虚拟机数据替代桥接(https://blueprints.launchpad.net/nova/+spec/vif-type-tap)
- 添加InfiniBand SR-IOV的libvirt虚拟化支持(https://blueprints.launchpad.net/nova/+spec/vif-driver-ib-passthrough)
- 为libvirt虚拟化添加新的MacVTap作为新的虚拟化接口类型(https://blueprints.launchpad.net/nova/+spec/libvirt-macvtap-vif)
- 加强FS-style libvirt驱动(https://blueprints.launchpad.net/nova/+spec/consolidate-libvirt-fs-volume-drivers)
- EMC ScaleIO Data Client(SDC) Libvirt卷驱动(https://blueprints.launchpad.net/nova/+spec/emc-sdc-libvirt-volume-driver)
- 为libvirt实现基于`rsync`的远程FS驱动(https://blueprints.launchpad.net/nova/+spec/remote-fs-driver)
- Virtuozzo包含从卷启动(https://blueprints.launchpad.net/nova/+spec/virtuozzo-container-boot-from-volume)
- 添加HGST卷类型支持w/os-brick(https://blueprints.launchpad.net/nova/+spec/add-os-brick-volume-driver-hgst-solutions)
- virtio-net多队列(部分)(https://blueprints.launchpad.net/nova/+spec/libvirt-virtio-net-multiqueue)
VMware
- VMware驱动域metadata(https://blueprints.launchpad.net/nova/+spec/vmware-driver-domain-metadata)
- 允许设置内存、磁盘和vnic限制(部分)(https://blueprints.launchpad.net/nova/+spec/vmware-limits)
- VMware本地HTML5控制台(https://blueprints.launchpad.net/nova/+spec/vmware-webmks-console)
- 在VMware驱动中支持swap磁盘(https://blueprints.launchpad.net/nova/+spec/vmware-swap-support)
- VMware NSXv支持(https://blueprints.launchpad.net/nova/+spec/vmware-nsxv-support)
- VMware:在VMware驱动中支持控制台日志(部分)(https://blueprints.launchpad.net/nova/+spec/vmware-console-log)
Hyper-V
- Hyper-V单元测试重构(持续中+部分)(https://blueprints.launchpad.net/nova/+spec/hyper-v-test-refactoring-liberty)
Ironic
- 将实例名称传给Ironic驱动(https://blueprints.launchpad.net/nova/+spec/pass-down-instance-name-to-ironic-driver)
其他更新
- 可以指定多个instance_type名字到AggregateTypeAffinityFilter(https://blueprints.launchpad.net/nova/+spec/aggregatetypeaffinityfilter-multi-value-support)。
- 添加实验在线DB结构变更选项(https://blueprints.launchpad.net/nova/+spec/online-schema-changes)
- 优化配置文件样例的生成(https://blueprints.launchpad.net/nova/+spec/oslo-config-generator)
- 将DB2作为数据库的可选项(https://blueprints.launchpad.net/nova/+spec/db2-database)
- Cells:different_cells调度过滤器(https://blueprints.launchpad.net/nova/+spec/cells-scheduler-anti-affinity-filter)
- 开始向Python 3.4迁移(https://blueprints.launchpad.net/nova/+spec/nova-python3)
- 可以在Apache2上运行部分Nova服务(https://blueprints.launchpad.net/nova/+spec/run-nova-services-under-apache2)
- 升级架构:添加了一个全体服务版本号码(https://blueprints.launchpad.net/nova/+spec/service-version-number)
- 使用rootwrap运行Nova启动守护进程 (https://blueprints.launchpad.net/nova/+spec/nova-rootwrap-daemon-mode)
- 在nova instances表中删除了'scheduled_at'字段(https://blueprints.launchpad.net/nova/+spec/cleanup-scheduled-at)
- 在DEFAULT组中添加了一个新的配置"handle_virt_lifecycle_events",允许禁止事件回调处理从虚拟化驱动层发出的instance生命周期事件(在Liberty仅在libvirt和hyper-v驱动中实现)。这更多的是一种变通的方法,当回调在高负载的情况下产生竞争,并且产生诸如关闭运行虚拟机的状况。更多细节请查看https://review.openstack.org/#/c/159275/。
升级提示
- 如果你使用的是Kilo稳定版本,在部署Liberty之前一定要确认升级到最新版本。根据Bug https://bugs.launchpad.net/nova/+bug/1474074 在这之前的Kilo版本升级Liberty节点会出现问题。
- RAM和CPU的分配比例现在是在nova-compute服务内部定义(可以根据每个计算节点单独定义)。对于scheduler服务也同样需要提供比例。取决于计算节点运行的版本Kilo或者是Liberty,这个比例设置的表现有区别:如果计算节点运行Kilo,则这个计算节点的CPU和内存的分配比例是在控制节点的nova.conf定义的默认值。或者,如果计算节点是Liberty则你能在每个计算节点设置CPU和内存分配比例。为了让运维人员为所有计算节点提供分配比例,默认的分配比例设置为0.0(包括控制节点上)。但是这并不代表分配比例真的为0.0,仅仅表示运维人员需要在下一个版本前(例如Mitaka)设置。简单来说,对于cpu_allocation_ratio默认的分配比例仍然为16.0倍,ram_allocation_ratio为1.5倍。
- 在为每个Neutron服务配置"network-vif-deleted"事件前,nova-compute应该升级到Liberty,https://review.openstack.org/#/c/187871/
- Rootwrap过滤器必须要升级,添加了'touch'命令
- 在Lauchpad的Bug1256838中提到了关于imagebackend和imagecache的竞争
- 在这种情况下,如果当imagebackend正在将镜像拷贝到instance路径,基础镜像被ImageCacheManager删除,则虚拟机就会变为error状态
- 为了解决这个问题,需要在compute.filters添加一个'touch'命令来一起解决这个问题 https://review.openstack.org/#/c/217579/
- 在竞争发生的情况下,在imagebackend拷贝镜像过程中,当libvirt已经改变了基础文件的所属权限到libvirt-qemu,这样我们在使用os.utime更新文件的访问时间时就会得到权限不足的错误。为了解决这个错误,我们需要使用root用户权限使用'touch'命令更新基础文件的访问时间。
- 在Liberty版本中,DiskFilter现在是scheduler_default_filters一部分 https://review.openstack.org/#/c/207942/
- 根据https://review.openstack.org/#/c/103916/,你只能映射一个vCenter集群到一个唯一的nova-compute节点上
- Libvrit驱动parallels重新命名为virtuozzo
- 孤立的表——iscsi_targets, volumes已经被删除
- 默认pate.ini中已经升级使用新的v2.1 API为所有endpoints提供服务,v3的endpoint已经被删除。兼容的中间层用来释放v2.1验证,包括/v2和/v1.1 endpoints。
- DB结构降级的代码已经被删除:https://blueprints.launchpad.net/nova/+spec/nova-no-downward-sql-migration
- 默认的数据库驱动测试的是pymysql而不是Python-MySQL
- "powervm" hv_type的夹片(shim)已经被删除。这仅影响使用使用旧的镜像,并且在镜像metadata中设置了hv_type=powervm的用户 PowerVC driver on stackforge
- 在Mitaka中libvirt最低版本要求为0.10.2。对于版本小于0.10.2的Libvirt在Liberty中被废弃了:https://review.openstack.org/#/c/183220/
- The libvirt.remove_unused_kernels config option is deprecated for removal and now defaults to True: https://review.openstack.org/#/c/182315/
- libvirt.remove_unused_kernels配置项被废弃了并且以后被删除,而且默认配置为True,https://review.openstack.org/#/c/182315/
不推荐使用的功能
- 不赞成使用禁用树级API扩展(https://blueprints.launchpad.net/nova/+spec/nova-api-deprecate-extensions)
- 从2.21.0开始不赞成使用novaclient.v1_1模块[[6]][[7]],并且我们将在Mitaka的第一个python-novaclient版本中删除。
- 从2.29.0开始不赞成使用`novaclient.client.get_client_class`方法[[8]]。这个方法将在Mitaka中删除。
- 不赞成在weighers使用mute_weight_value,包括在Cells中使用
- 不赞成在Libvirt驱动中使用remove_unused_kernels
- 使用vcenter的最低版本为5.1.0。在Liberty里这会以警告方式提示,在Mitaka中对于低于5.1.0的版本将不在提供支持。
- 不赞成使用v3 API特定的组件,将会在默认的paste.ini中删除
OpenStack计量服务(Ceilometer)
关键的新功能
- 创建Aodh处理告警服务
- Metadata缓存 - 降低nova api polling的压力。
- 关于meters的声明
- 可以根据meter定义模板生成meters
- 能够poll定义特定的SNMP meters
- 支持从Ceilometer到Gnocchi的数据发布
- 强制限制 - 限制约束查询。限制必须在查询中显示声明,否则结果集会按照默认限制。
- 分布式的、协调的通知agent - 支持跨多个通知agent负载分区
- 支持按照RBAC的事件
- 支持PowerVM虚拟化
- 优化MongoDB查询 - 统计查询性能优化
- 额外的meter支持:
- Magnum meters
- DBaaS meters
- DNSaaS meters
Gnocchi功能
- 实现了第一个版本的influxdb驱动
Aodh功能
- 事件告警 - 当时间被接收后能够触发一个动作
- 在告警中支持信任link。
升级提示
- ceilometer使用的一些中间层的名字变化采用向后不兼容方式。在升级前,编辑
paste.ini
文件,修改oslo.middleware
为oslo_middleware
。例如,使用sed -ri 's/oslo\.middleware/oslo_middleware/' api_paste.ini - 在Ceilometer,通知的agent是一个收集数据的核心服务。这个agent用于处理所有的变形和发布。Polling代理现在延缓所有进程到通知代理,并且必须要部署为tandem。
- 强制限制添加到每个请求中。如果没有限制,默认强制使用默认配置。
不赞成使用的功能
- 不赞成使用Ceilometer告警,推荐使用Aodh
- 不推荐使用RPC发布和收集,推荐使用基于通知发布。
- 仍然不推荐使用Non-metric meters,在未来版本将被删除。
OpenStack鉴权服务(Keystone)
新功能
- 实验性:域相关配置能够存在SQL中替代配置文件,使用新的REST APIs。
- 实验性: Keystone现在支持无token验证,使用X.509 SSL客户端证书
- 现在支持为每个鉴权提供者配置WebSSO
-
openstack_user_domain
和openstack_project_domain
属性被添加到SAML断言中,用来分别映射用户、项目域。 - credentials列表的调用现在能够使用credential类型进行过滤
- 优化out-of-tree驱动,用于定义稳定驱动接口
- 一些功能被加固,包括联合tokens、联合,从数据库指定域名配置和角色分配
- 特定的一些配置在keystone.conf有了新的选项,用于判断用户的配置是否合法
升级提示
- EC2 token中间层,在Juno中不建议使用,在keystone已经不存在了。已经被完全移动至keystonemiddleware包中。
-
compute_port配置
项,在Juno中不推荐使用,现在不存在了 - XML中间层的遗留已经被彻底清除,所以相关的配置信息也从
keystone-paste.ini
配置中删除 - stats_monitoring和stats_reporting paste中的过滤器被删除,所以相关的配置也从
keystone-paste.ini
中删除 - 外部的鉴权插件ExternalDefault,ExternalDomain,LegacyDefaultDomain和LegacyDomain,在Icehouse中不推荐使用,并且现在也不存在了
-
keystone.conf
现在为驱动关联入口(entrypoint)名称。例如,驱动现在被定义为"sql","ldap","uuid",而不需要定义全路径。查看配置文件中的样例。 - 我们现在为
keystone-manage
暴露入口(entrypoints)命令取代文件。 - 不再支持通过
keystone-manage db_sync
进行Schema回滚。仅仅支持更新。 - 对于之前版本添加的"扩展"功能(OAuth delegation, Federated Identity support, Endpoint Policy等)现在默认开启
- 增加了一个新的
secure_proxy_ssl_header
配置项,适用于keystone运行在代理服务之后的场景。 - 一些配置不推荐使用,重命名或者在
keystone.conf
中移动到了新的段落。 - Domain name information can now be used in policy rules with the attribute
domain_name
. - 域名信息能够在策略规则中使用,使用属性
domain_name
不推荐使用的功能
- 仍然不推荐在Evetnlet使用Keystone,并且在Mitaka更新中删除。
- 不推荐使用使用LDAP作为资源后端,例如项目和域,将会在Mitaka更新中删除
- 不推荐驱动类使用全路径方式,使用entrypoint方式。在Mitaka里,entrypoint必须被使用
- 在keystone.conf中[resource]和[role]中,不推荐使用不指定驱动,并且使用分配的驱动的方式。在Mitaka更新中,resource和role驱动默认使用SQL驱动。
- 在
keystone-paste.ini
,不推荐使用paste.filter_factory
,替代方案是设置entrypoint。 - 在创建用户、组和项目过程中不指定域,失败的情况下会使用默认域,现在不推荐,以后会在N版本中删除
- 从分配管理中相应不推荐使用的方法被删除,使用相同的方法在[resource]和[role]管理
OpenStack块存储(Cinder)
- 通用的镜像缓存解决方案,所以常用的VM镜像都能被缓存而且以copy-on-write方式到一个新的卷Read docs for more info
- 无中断的备份Read docs for more info
- 能够为一致性卷组进行cloneRead docs for more info
- 获取卷后端存储列表(获取extra-specs)
- 嵌套的配额
- 默认的LVM后端使用thin-provisioned
- 修复cinder service-list,当驱动加载失败时显示为Down
- 优化卷迁移管理:
- 查看之前的迁移尝试是否成功
- 管理员可以通过cinder list查看迁移状态
- 新的卷状态"维护状态",保证当迁移进行时,阻止任何操作行为
- 优化卷后端在前已完成后的名称/id的一致性
升级提示
- 对于RPC API的参数变化和在对象化转化导致无法使用Liberty c-vol和c-api服务兼容Kilo或者更早的版本的相关服务
不推荐使用的功能
- 删除了Simple和Chance两种调度器
- 删除了不再推荐使用的HDS HUS iSCSI驱动
- 删除了Coraid驱动
- 删除了Solaris iSCSI驱动
- 删除了--force选项,该选项用于允许上传镜像到已经挂载的卷
- 将v1 API标记为不推荐使用
OpenStack编排服务(Heat)
新功能
集合(Convergence)
Convergence是一个新的编排引擎,在heat中整合。在Liberty中,使用Convergence引擎的优势:
- 更好的资源并发处理能力(更好处理超大模板)
- 可以在已经执行更新操作过程中再次执行stack-update
- 更好的处理heat-engine出现的失败(仍然WIP)
convergence引擎可以通过设置/etc/heat/heat/conf [DEFAULT]下的convergence_engine=true开启,需要重新启动heat-engine。一旦开启后,随后所有创建stack操作将使用convergence引擎,之前使用传统引擎创建的stack仍然使用之前的引擎进行处理。
Convergence并没有达到生成级别测试的标准,所以使用的时候应该以"beta"版本对待,小心使用。在Liberty更新中,如果你的目的是评估和扩展测试,你可以在heat中开启Convergence。我们将在Mitaka中将Convergence设为默认引擎。跟踪Convergence bugs在launchpad上:convergence-bugs tag
受约束的资源安装
只有在云平台安装的资源才对用户可见。运维人员在以后可以通过标准策略规则控制资源对用户的可见policy.json on per-resource type basis
heat_template_version: 2015-10-15
2015-10-15代表YAML文档是一个HOT模板并且包含了到Liberty更新之前新增加或者已经删除的功能。
- 删除了Fn::Select功能(路径基于get_attr/get_param引用需要被替换)
- 如果在调用get_attr没有<属性名称>,所有的属性会以字典形式返回所有属性,例如{ get_attr: [<resource name>]}
- 添加新的str_split内嵌函数
- 支持传入多列表到已经存在的list_join函数
- 支持解析map/list数据到str_replace 和list_join(他们会自动进行json序列化)
REST API/heatclient增加功能
- Stacks现在能够分配tags集合,stack-list能够使用这些tags进行过滤和排序
- "heat stack-preview ..."会为计划的stack-update返回变化情况的预览
- "heat template-validate --show-nested ..."会验证所有的模板资源并且返回为绑定用户接口的嵌套数据
- "heat resource-type-template --template-type hot ..."生成HOT模板
- "heat resource-type-list"仅仅显示对于用户可见的类型,而且可以根据名称、版本和支持状态进行欧律
- "heat template-version-list"显示存在的模板版本
- "heat template-function-list ..."显示对于一个模板存在的函数
现有资源的增强
- 软件部署可以为部署软件数据和给Heat发送信号使用Zaqar
- Stack行为现在表现在远程的OS::Heat::Stack 资源
- OS::Nova::Server现在支持deletion_policy:镜像
- OS::Heat::ResourceGroup update_policy 现在支持定义batch_create和 rolling_update选项
新资源
如下新资源已经随Heat发布:
- OS::Barbican::Order [1]
- OS::Barbican::Secret [1]
- OS::Ceilometer::GnocchiAggregationByMetricsAlarm [1]
- OS::Ceilometer::GnocchiAggregationByResourcesAlarm [1]
- OS::Ceilometer::GnocchiResourcesAlarm [1]
- OS::Cinder::VolumeType [2]
- OS::Designate::Domain
- OS::Designate::Record
- OS::Heat::None
- OS::Heat::TestResource
- OS::Keystone::Endpoint
- OS::Keystone::Group [2]
- OS::Keystone::GroupRoleAssignment
- OS::Keystone::Project [2]
- OS::Keystone::Role [2]
- OS::Keystone::Service
- OS::Keystone::User [2]
- OS::Keystone::UserRoleAssignment
- OS::Magnum::BayModel
- OS::Manila::SecurityService
- OS::Manila::Share
- OS::Manila::ShareNetwork
- OS::Manila::ShareType
- OS::Mistral::CronTrigger
- OS::Mistral::Workflow
- OS::Monasca::AlarmDefinition [4]
- OS::Monasca::Notification [4]
- OS::Neutron::ExtraRoute [3]
- OS::Nova::Flavor [2]
- OS::Sahara::DataSource
[1] 这些已经存在的Kilo作为contrib资源存在,因为他们没有集成项目。这些资源现在随Heat发布,作为Big Tent项目。
[2] 这些在Kilo中以contrib资源存在,因为他们需要用户和管理员权限。他们现在随Heat发布。运维人员对于没有权限的用户隐藏,通过设置policy.json(作为参考, OS::Nova::Flavor对于非管理员用户默认隐藏)
[3] 这些在Kilo中作为contrib资源存在,因为他们使用的方式并非Heat赞成的方法。他们现在随Heat发布并且文档不受支持。
[4] 这些项目中使用的资源并不是OpenStack Big Tent项目,所以这些文档并不支持。
使用新的OS::Keystone::*资源,现在能够为云运维人员使用heat模板管理keystone服务目录和用户
不赞成的资源属性
许多之前的资源被标记为不推荐。他们中的15个被标记为隐藏,意味着他们不再进入文档,但是已经存在的stacks和模板可以在heat升级后继续工作。资源使用指南需要商讨来决定已经存在资源的特性和属性。
升级提示
配置变化
在/etc/heat/heat.conf [DEFAULT]段中的变化值得引起关注:
- hidden_stack_tags被添加了,凡是包含这些tag名字的将从stack-list结果中隐藏(默认为data-processing-cluster,隐藏了sahara-created stacks)
- instance_user不推荐使用,现在被完全删除。Nova创建虚拟机资源的OS::Nova::Server现在默认在启动时候配置使用在镜像中配置的默认的用户名。AWS::EC2::Instance仍然创建"ec2-user"。
- max_resources_per_stack现在可以设置-1来禁用强制实行
- enable_cloud_watch_lite现在默认为false,因为这个REST API不推荐使用
- default_software_config_transport新选项ZAQAR_MESSAGE
- default_deployment_signal_transport新选项ZAQAR_SIGNAL
- auth_encryption_key在文档中要求有32个字符
- list_notifier_drivers之前不推荐使用,现在被删除了
- policy选项现在移动到了[oslo_policy]段落
- use_syslog_rfc_format之前是不推荐使用的,现在默认为true
对于heat.conf其他段值得关注的变化:
- [clients_keystone]auth_uri已经被添加到特定的无指定版本的keystone url
- [heat_api]workers的数量默认为4(之前为0,为每一个主机CPU创建一个worker)
策略文件/etc/heat/policy.json现在能够为每一种资源类型单独配置访问策略,例如:
"resource_types:OS::Nova::Flavor": "rule:context_is_admin"
从Kilo升级到Liberty
现在已经开始实现在线的sql迁移,但是仍然建议在升级过程中暂停heat服务。SQL schema的版本回退不再支持。回退到kilo版本需要回复升级之前的数据库快照。
OpenStack数据处理服务(Sahara)
新功能
- 新插件和版本
- Ambari插件支持HDP 2.2/2.3
- 添加了Apache Hadoop 2.7.1,不推荐使用Apache 2.6.0
- CDH 5.4被添加,并且支持NameNode和ResourceManager的HA
- 添加了MapR 5.0.0
- 添加了Spark 1.3.1,不推荐使用Spark 1.0.0
- HDP 1.3.2和Apache Hadoop 1.2.1被删除
- 支持Spark EDP任务结合swift使用
- 在CDH和Ambari插件中支持Spark EDP
- 支持公共和保护资源
- 开始集成OpenStack客户端
- 支持编辑所有Sahara资源
- 支持自动配置集群Hadoop
- 不推荐使用直接引擎并且在Mitaka将被删除
- 为job binaries和数据源添加OpenStack Manila NFS共享作为存储后端选项
- 支持为EDP job模板定义和使用接口配置
不推荐使用的功能
- 直接提供的引擎(Direct provisioning engine)
- Apache Hadoop 2.6.0
- Spark 1.0.0
- 所有Hadoop 1.X删除
OpenStack搜索(Searchlight)
这是Seachlight第一个版本。Searchlight的目的是优化搜索的能力和性能,为不同的OpenStack云服务提供用户查询。它在OpenStack服务之间提供Keystone基于RBAC查询,将他们的数据索引到ElasticSearch,并且在接收到的查询之上提供一个安全层。ElasticSearch是一个基于Lucene的搜索服务。他提供分布式、可扩展的、准实时的、小平面的(faceted)、多租户能力和全文搜索引擎,使用RESTful提供web接口。
新功能
- Searchlight Search API基于API的OpenStack资源类型ElasticSearch查询支持
- Bulk Indexing CLIsearchlight-manage索引命令行接口
- Incremental Notification based updates
- Resource Type Plugin system添加和管理资源索引和查询
- Devstack deployment
新的资源类型索引
- OS::Nova::Server Nova虚拟机
- OS::Glance::Image & OS::Glance::Metadef Glance镜像和Metadata定义
- OS::Designate::Zone & OS::Designate::RecordSetDesignate域和记录集
升级提示
N/A
不推荐使用的功能
N/A
OpenStack域名解析服务(Designate)
新功能
- 实验性: 钩子点(Hook Point)API
- 将Horizon代码移除掉
- 清理删除的域名
- Ceilometer为每个域名“存在”定时事件
- 异步动作
- 导入
- 导出
- 为designate-pool-manager周期任务提供主动/被动的容错
- OpenStack客户端集成
额外的DNS服务后端
- InfoBlox
- Designate
升级提示
- 新的服务
designate-zone-manager
- 建议使用tooz后端
- 建议使用ZooKeeper,或者其他支持tooz的
- 如果后端没有使用tooz,所有的zone-managers将假定是所有区域的所有者,每个小时将有n个存在的消息,n是zone-manager进程数
-
designate-pool-manager
能够为周期性任务执行主动/被动的容错- 建议使用支持tooz的后端
- 如果tooz后端没有使用,所有的pool-managers将假定是所有池的所有者,并且多个周期任务将运行。这将引起不可预知的后果。
不推荐使用的功能
- V1 API
- indent的初始化提示,因为所有的操作仍然需要Designate CLI接口与V1通讯,并且Horizon面板仅仅和V1通讯
OpenStack消息服务(Zaqar)
新功能
- 预签名URL - 一个新的REST API endpoint支持预签名URL,提供在共享资源之上充足的控制,没有安全问题。
- 电子邮件通知 - 通知服务新的任务驱动,能够接受Zaqar订阅者的电子邮件地址。当一个新的消息提交到队列中,订阅者将使用电子邮件接受消息。
- 策略支持 - 支持细粒度的权限控制,与其他OpenStack模块类似使用
policy.json
文件。 - 持久化的传输 - 为Zaqar添加了websocket作为持久化传输的一种选择。现在用户将可以建议在他们的应用和Zaqar之间建立长连接,来交换数据量较大的数据,而并不需要额外的连接设置。
OpenStack控制面板(Horizon)
新功能
- 一个新的网络拓扑-网络拓扑的图标已经被替换为交互式图标,包含了网络的可折叠,在大规模部署情况下性能更好(https://blueprints.launchpad.net/horizon/+spec/curvature-network-topology)
- 插件优化 - Horizon自动发现Javascript文件和相关包含,现在的机制是可插拔的SCSS和Django模板优先
- 计算服务(Nova)
- 支持虚拟机的shelving(搁置)和unshelving(https://blueprints.launchpad.net/horizon/+spec/horizon-shelving-command)。
- 支持v2块设备映射,当不存在的时候使用v1(https://blueprints.launchpad.net/horizon/+spec/horizon-block-device-mapping-v2)。
- 网络服务(Neutron)
- 支持通过subnet资源池分配子网
- 简化关联LBaas VIP使用floating ip的行为(https://blueprints.launchpad.net/horizon/+spec/lbaas-vip-fip-associate)
- 镜像服务(Glance)
- metadata编辑器现在升级使用AngularJS(https://blueprints.launchpad.net/horizon/+spec/angularize-metadata-update-modals)。
- 镜像的metadata现在能够在从项目视图编辑,使用新的metadata编辑器(https://blueprints.launchpad.net/horizon/+spec/project-images-metadata)
- 块存储(Cinder)
- 编排服务(Heat)
- 优化heat拓扑,让更多的资源容易识别,之前他们没有图标,并且显示为unkonwn的资源(https://blueprints.launchpad.net/horizon/+spec/heat-topology-display-improvement)。
- 大数据处理(Sahara)
- 统一job接口映射。一个job可能需要或接受的配置数据,优化可读性(https://blueprints.launchpad.net/horizon/+spec/unified-job-interface-map-ui)。
- 为job binaries增加可编辑能力 (https://blueprints.launchpad.net/horizon/+spec/allow-editing-of-job-binaries)。
- 为数据源增加可编辑能力 (https://blueprints.launchpad.net/horizon/+spec/allow-editing-of-data-sources)。
- 为job模板增加可编辑能力 (https://blueprints.launchpad.net/horizon/+spec/data-processing-edit-templates)。
- 为集群暴露时间日志(https://blueprints.launchpad.net/horizon/+spec/sahara-event-log)。
- 支持shell job类型 (https://blueprints.launchpad.net/horizon/+spec/sahara-shell-action-form)。
- 数据库服务(Trove)
- 为数据库集群创建和管理提供初始化支持。Vertica和MongoDB现在已经支持了(https://blueprints.launchpad.net/horizon/+spec/database-clustering-support)。
- 鉴权服务(Keystone)
- 增加鉴权提供和协议指定WebSSO映射(https://github.com/openstack/horizon/commit/3b4021c0ad0e8d7b10aa8c2dcd8c13a5717c450c)。
- 配置token哈希(https://github.com/openstack/django_openstack_auth/commit/ece924a79d27ede1a8475d7f98e6d66bc3cffd6c和 https://github.com/openstack/horizon/commit/48e651d05cbe9366884868c5331d49a501945adc)
- Horizon(内部优化)
- 在AngularJS支持翻译,和一个简单的工具(https://blueprints.launchpad.net/horizon/+spec/angular-translate-makemessages)
- 使用Karma提供Javascript测试(https://blueprints.launchpad.net/horizon/+spec/karma)
- 使用ESLint检查Javascript样式,使用eslint-config-openstack规则(https://blueprints.launchpad.net/horizon/+spec/jscs-cleanup)
- Horizon现在支持重载已经存在的Django模板(https://blueprints.launchpad.net/horizon/+spec/horizon-theme-templates)
- JavaScript文件现在自动被包含(https://blueprints.launchpad.net/horizon/+spec/auto-js-file-finding)
升级提示
- 现在支持Django 1.8,Django 1.7现在是最低支持的版本(https://blueprints.launchpad.net/horizon/+spec/drop-django14-support)
- 数据库后端的sessions将不能持久化更新,因为结构的变化(https://github.com/openstack/django_openstack_auth/commit/8c64de92f4148d85704b10ea1f7bc441db2ddfee and https://github.com/openstack/horizon/commit/ee2771ab1a855342089abe5206fc6a5071a6d99e)
- Horizon不再测试中使用QUnit,从我们的依赖中删除(https://blueprints.launchpad.net/horizon/+spec/replace-qunit-tests-with-jasmine)
- Horizon现在可以有多个为默认web URL配置的选项(
WEBROOT
),静态文件位置(STATIC_ROOT
)和静态文件URL(STATIC_URL
),在配置文件中修改 - 主题从
openstack_dashboard/static/themes
移动到openstack_dashboard/themes
。路径需要相应的更新。此外,Horizon按照Bootstrap markup调整,主题也应该按照此理论设计;更详细的请查看顶部的部分和side导航。 - 不推荐使用的
OPENSTACK_QUANTUM_NETWORK
配置已经被删除。如果你还要使用它,替换为OPENSTACK_NEUTRON_NETWORK
- 现在配置中有一个
OPENSTACK_NOVA_EXTENSIONS_BLACKLIST
选项,可以屏蔽选择某些扩展,提高性能(https://github.com/openstack/horizon/commit/18f4b752b8653c9389f8b0471eccaa0659707ebe)。 - Trove和Sahara面板现在重新放置在
openstack_dashboard/contrib
。服务团队要求分离。未来,这些面板或许成为插件,不再保存在Horizon中(https://blueprints.launchpad.net/horizon/+spec/plugin-sanity)。 - Horizon要求
volume
和volumev2
endpoint并存,即使只用了v2。
OpenStack Trove(数据库即服务)
新功能
- Redis
- 为Redis配置组
- 支持集群
- MongoDB
- 为单一的实例备份和恢复
- 用户和数据库管理
- 组配置
- Percona XtraDB集群服务
- 支持集群
- 允许部署人员将虚拟机的规格和某一数据存储(datastore)关联
- Horizon支持数据库集群
- 数据存储(datastore)和版本管理的API
- 能够在一个admin项目中不熟Trove的实例,这样这些实例就可以对用户不可见
OpenStack裸金属服务(Ironic)
Ironic已经切换到intermediate release model并且在Liberty发布了4.0版本,主要有两个小更新。在OpenStack集成的Libery更新中,4.2版包含了基本部分并且将接收到稳定的更新。
查看完整的更新日志:http://docs.openstack.org/developer/ironic/releasenotes/index.html
新功能
- 添加了"ENROLL"硬件状态,这是对于每个新创建的节点默认的状态。
- 添加了"abort"动作,允许用户中断一个正在进行的操作
- 优化查询并且在REST API支持过滤
- 添加对CORS中间层支持
硬件驱动更新
- 为硬件驱动添加了一个新的BootInterface,从DeployInterface里剥离
- iLO虚拟机磁盘驱动现在可以脱离Swift工作
- 添加了Cisco IMC驱动
- 添加了OCS驱动
- 添加了UCS驱动
- 添加了网络唤醒的电源驱动
- ipmitool驱动支持IPMI v1.5
- 为"APC MasterSwitchPlus"系列PDU's添加SNMP驱动
- pxe_ilo驱动现在吃吃UEFI安全启动(之前的theiLO驱动的版本仅支持agent_ilo和iscsi_ilo)
- 支持iRMC驱动的虚拟媒体
- 为DRAC驱动添加BIOS配置
- PXE驱动现在支持GRUB2
不推荐使用的功能
- DriverInterface里的"vendor_passthru"和"driver_vendor_passthru"方法已经被删除。在Kilo版本中不推荐使用,并且被@passthru装饰器替代
- 从Nova"裸金属"部署中导入数据的迁移工具被删除了
- 不推荐使用的"parallel"选项,推荐使用周期性任务装饰器
- 删除不推荐的'admin_api'策略规则
- 不推荐使用原生的"bash"部署ramdisk,并且将在两个版本内删除。ironic-python-agent项目应该被所有的部署驱动使用。
升级提示
- 新创建的节点的状态为ENROLL。之前的,节点默认为AVAILABLE,这样会导致硬件过早的暴露给Nova
- 在Kilo中,头部的API版本信息意外着任何客户端需要和Liberty API交互必须传入适当的版本信息在每一个HTTP请求中。现在API版本是1.14
OpenStack密钥管理(Barbican)
新功能
- 项目管理员为每个项目创建授权证书。同时,项目管理员也能够为每个项目定义和管理一系列首选的授权证书。这样允许项目内获取项目特定的安全域。
- Barbican现在支持每个项目的配额,用于限制在一个项目下Barbican创建的资源数量。默认的情况下,这个值不受限制,使用Barbican配置覆盖该设置。
- 支持旋转式(rotating)的master key,用于包裹住项目级别key。在这种轻量级解决方案中,只有项目级别key(KEK)会重新使用新的master key(MKEK)包装。当前仅支持PKCS11插件。(http://specs.openstack.org/openstack/barbican-specs/specs/liberty/add-crypto-mkek-rotation-support-lightweight.html)
- 更新Barbican根资源返回版本信息,样式匹配Keystone、Nova和Manila。这是被keystoneclient具有版本的endpoint发现功能使用的。
- 使用已经删除的管理员endpoint所有操作可以作为一个普通的endpoint。通过Oslo plicy,不需要单独的endpoint作为强制限制访问。
- 增加配置sqlalchemy池的配置,用于管理SQL链接。
- 增加显示所有secrets的请求,通过ACL使用GET /v1/secrets?acl-only=true
- 优化Barbican APIs与ACL操作、RBAC策略和secret功能测试覆盖率
- 修复建立SnakeOil CA虚拟机插件的创建
- Barbican客户端CLI现在能够使用Keystone token鉴权。早期只能使用用户名和密码的鉴权。
- Barbican客户端现在能够创建和列出证书的顺序
升级提示
- 删除了项目secret相关表。Secret项目关系现在由外键维护。更多信息请见:http://specs.openstack.org/openstack/barbican-specs/specs/liberty/data-remove-tenant-secret-assoc.html
- 重新命名barbican配置文件
barbican.conf
OpenStack镜像服务 (Glance)
项目升级指南,包括运维、安装、配置、开发和使用的文档在:http://docs.openstack.org/developer/glance/
新功能
- 增加支持签名镜像上传功能。更新信息,请参阅:http://specs.openstack.org/openstack/glance-specs/specs/liberty/image-signing-and-verification-support.html
- 并发的镜像清洗现在是可能的。更多信息请参阅:http://specs.openstack.org/openstack/glance-specs/specs/liberty/scrub-images-in-parallel.html
- Glance节点的健康状况可以使用healthcheck中间层进行监控。更多信息请参阅:http://specs.openstack.org/openstack/glance-specs/specs/liberty/healtcheck-middleware.html
- 实验性的Artifacts API现在可以使用了。注意, 在成为正式的API之前有可能会变化。
- S3存储现在支持代理。请参阅:http://specs.openstack.org/openstack/glance-specs/specs/liberty/http-proxy-support-for-s3.html
- Swift存储现在支持v3鉴权
- python-glanceclient现在支持许多高级的keystone session
- python-glanceclient现在支持tags来定义Metadata目录
升级提示
- python-glanceclient现在默认使用Glance API v2,如果v2不存在,则使用v1
- 后台存储的依赖现在可以选择安装,根据每一种存储的要求
- 一些存储像swift、S3、VMware现在支持python3
- 像更新默认metadata定义的新代码
- 更多的Python 3支持添加到了Glance API中,现在继续持久支持,用测试保证稳定性
- utf-8现在作为后端MySQL数据库的默认字符集
- 迁移的脚本升级来进行sanity检查表的字符集
- 'ram-disk'和‘kernel’属性现在能够在结构中设为null,并且'id'现在对于v2 API是只读的
- 增加配置项
client_socket_timeout
,利用最近的eventlet socket超时设置 -
scrub_pool_size
配置项用于设置scrubber的并发线程数,默认为1 - 一个重要的bug已经得到了修复,允许改变image的状态使用Glance v1版本的API
不推荐使用的功能
- 实验性的目录索引服务已经被删除,现在成为一个独立的项目叫Seachlight。
- 配置项
scrubber_datadir
,cleanup_scrubber
和cleanup_scrubber_time
,已经被删除,同时被删除的还有scrubber文件后端队列。
OpenStack共享文件系统(Manila)
新功能
- 支持avaliability zone
- 增加管理员API模块来共享虚拟机
- 增加pool weigher,允许Manila调度器在资源池中使用现有的共享服务器提供新的共享
- 支持共享迁移从一个hostpool到另外一个(实验性)
- 在通用驱动中增加共享扩展能力
- 支持添加一致性组,允许为多个共享文件系统进行快照,及时在同一时间点进行快照(实验性)。
- 在NetAPP cDOT驱动和通用性驱动中支持一致性组
- 在thin provision中支持超分
- 新的Windows SMB驱动
- 支持处理Windows服务的实例和导出SMB贡献
- 增加新的
osapi_share_workers
配置项来优化Manila API服务总的吞吐量 - 增加share hooks功能,允许在驱动调用之前或者之后执行额外的动作,没N次调用附加的周期性hook,并且更新驱动执行后的结果
- 针对NetApp cDOT驱动的优化:
- 添加变量netapp:dedup和netapp:compression,当创建flexvol,备份一个新的manila共享
- 添加了manage/unmanage支持和shrink_share支持。
- 支持
extended_share
API模块 - 支持netapp-lib PyPI项目和存储阵列通讯
- 优化HP 3PAR驱动:
- 为dedupe、thin provisioning和hp3par_flash_cache容量增加报告。这样允许共享类型和CapabilitiesFilter根据请求的容量在主机分配共享
- 支持共享服务
- 优化Huawei Manila驱动:
- 支持存储资源池、extend_share、manage_existing、shrink_share、read-only共享、smartcache和smartpartitioin
- 增加dedupe、thin provisioning和压缩容量的报告
- 为VNX Manila服务增加访问级别控制
- 支持Manila HDS HNAS驱动
- 支持GulsterFS本地驱动
- GlusterFS驱动现在能够指定所有兼容共享布局的列表
- 增加微版本支持(v2 API)
不推荐使用的功能
-
share_reset_status
API模块不推荐使用,并且被替换为share_instance_reset_status