[转] OpenStack Kilo 更新日志

时间:2023-03-08 17:18:28

OpenStack 2015.1.0 (Kilo)更新日志

原文: https://wiki.openstack.org/wiki/ReleaseNotes/Kilo/zh-hans

目录

 [隐藏

OpenStack对象存储(Swift)

新功能

纠删码(beta)

Swift现在支持纠删码(EC)存储策略类型。这样部署人员、以极少的RAW容量达到极高的可用性,如同在副本存储中一样。然而,EC需要更多的CPU和网络资源,所以并不适合所有应用场景。EC非常适合在一个独立的区域内极少访问的、大容量数据。

Swift纠删码的实现对于用户是透明的。对于副本存储和纠删码存储的类型,在API上没有任何区别。

为了支持纠删码,Swift现在需要依赖PyECLib和liberasurecode。liberasurecode是一个可插件式的库,允许在你选择的库中实现EC算法。

更详细文档请参阅 http://swift.openstack.org/overview_erasure_code.html

复合型令牌(Composite tokens)

复合型令牌允许其他OpenStack服务以客户端名义将数据存储于Swift中,所以无论是客户端还是服务在更新数据时,都不需要双方彼此的授权。

一个典型的例子就是一个用户请求Nova存放一个VM的快照。Nova将请求传递给Glance,Glance将镜像写入Swift容器中的一组对象中。在这种场景下,用户没有来自服务的合法令牌时,无法直接修改快照数据。同样,服务自身也无法在没有用户合法令牌的情况下更新数据。但是数据的确存在于用户的Swift账户中,这样使得账户管理更简单。

更详细的文档请参阅http://swift.openstack.org/overview_backing_store.html

更小规模、不平衡集群的数据位置更新

Swift数据的存放位置现在根据硬件权重决定。当前,允许运维人员逐渐的添加新的区域(zones)和地域(regions),而不需要立即触发大规模数据迁移。同时,如果一个集群是非平衡的(例如,在一个区域(zones)的集群中,其中一个的容量是另外一的两倍),Swift会更有效的使用现有空间并且当副本在集群空间不足时发出警告。

全局性集群复制优化

区域(regions)之间复制时,每次复制只迁移一个副本。这样远程的区域(region)可以在内部复制,避免更多的数据在广域网(WAN)拷贝。

已知问题

  • 作为beta更新,纠删码(EC)的功能接近完成,但是对于某些功能仍然不完整(像多范围(multi-range)读取),并且没有一个完整的性能测算。这个功能为了持久性依赖于ssync。部署人员督促我们做更大规模的测试,并且不要在生产环境部署中使用纠删码存储策略。

升级提示

像往常一样,你能在不影响最终用户体验的前提下,升级到这个版本的Swift。

  • 为了支持纠删码,Swift需要一个新的依赖PyECLib(和liberasurecode等)。并且eventlet的最低版本要求也升高了。

OpenStack 计算服务(Nova)

新功能

API v2.1

  • kilo版本中,我们仍然使用v2.0 API的代码提供v2.0 API的请求。我们希望v2.1将能够同时为v2.0和v2.1请求提供服务。
  • liberty v2.0现在被冻结了,所有功能被添加在v2.1 API中使用微版本(microversions)机制实现。kilo版本中微版本(microversion)更新包括:
    • 扩展keypair API支持x509证书,能够和Windows WinRM使用,这个功能是v2.1 API中第一个被以微版本(microversions)添加的功能。
    • 在os-extended-server-attributes暴露扩展属性
  • python-novaclient现在还不支持v2.1 API
  • Nova v2.1 API的策略执行得到优化。
    • 只在API入口执行策略
    • 对于单一的API,去掉了重复性规则
    • 所有的v2.1 API的策略规则使用'os_compute_api'作为前缀,以区别于v2 API。
    • 之前,由于在db层面权限检查的硬编码(hard-code),部分Nova API并不支持策略的配置。总是需要admin用户权限。部分在Nova v2.1 API中硬编码(hard-code)权限检查被移除,使得API策略可配置。其余的硬编码(hard-code)将在Liberty版本被移除掉。

升级支持

  • https://review.openstack.org/#/c/97946/ 增加了编号为267的数据库迁移脚本,这个脚本主要扫描instances.uuid为空(null)的记录并且一旦发现就会导致失败,因为迁移中需要保证instances.uuid非空并且在那个字段加入了UniqueConstraint限制。为了避免数据库迁移失败,提供了一个帮助脚本用来搜索空(null)的instances.uuid的记录。运行'nova-manage db sync'之前,运行帮助脚本‘nova-manage db null_instance_uuid_scan’,默认情况下,该脚本只会检索记录,并将结果输出,不会改变任何内容。如果在参数中加入--delete,就会自动删除所有instances.uuid为空的记录。

调度器(Scheduler)

  • 一系列的性能优化
  • 我们在优化scheudler的代码结构,这将帮助我们能够演进和优化调度过程。这一点对于终端用户不可见。

Cells v2

  • 已经开始添加了对cell v2版本的支持,但是还没达到能够使用的程度。
  • 新的'nova-manage api_db sync' 和 'nova-manage api_db version'命令用于支持cell新的api数据库结构,但是还没有任何代码使用该数据库,所有没有必要建立。

计算资源驱动

Hyper-V

Libvirt (KVM)
VMware
Ironic

已知问题

  • Evacuate恢复部分代码存在损坏数据的潜在危险。在nova-compute启动过程中,虚拟化端会汇报instance的状态,用于检查物理机发生故障过程中,虚拟机是否被移走了(i.e. 被evacuated)。如果此时发现的确发生迁移了,那么本地的数据就会被彻底删除。这样就存在潜在的可能出现选择错误,虚拟机被错误的销毁。在libvirt节点上,这样的情况可能会由于改变系统的主机名引发。在vmware节点中,这个可能会由于尝试从两个不同的主机(不同的主机名)管理同一个vcenter引发。这个Bug可能会在Liberty中得到修复,但是在当前部署中,关闭这种行为的建议是设置destroy_after_evacuate=False。

注意:这个并不是回归(regression)并且在evacuate的设计中已经提到这个瑕疵。这个并不容易修复,所以使用这种方式绕过去(workaround)解决这个潜在的数据损坏。在liberty的修复记录:https://review.openstack.org/#/c/161444/。

  • 生成的配置文件样例可能会缺少某些oslo相关的配置

升级提示

下面是你在升级中需要了解的内容。在可能的情况下,git提交的hash编码会提供你找到更多更详细的信息:

  • 如果你的Neutron端口(ports)是在Nova之外建立的,在你的服务器删除后并不会删除这些端口:1153a46738fc3ffff98a1df9d94b5a55fdd58777
  • EC2 API支持现在被废弃了,可能要在kilo删除掉:f098398a836e3671c49bb884b4a1a1988053f4b2
  • Websocket代理需要被和API节点一起升级,由于旧的API节点在鉴权控制台权限时不会发送access_url,新的代理服务(这个提交和以后的)处理类似请求时会鉴权失败9621ccaf05900009d67cdadeb1aac27368114a61
  • 在全部升级到kilo后(例如,所有节点都运行kilo代码),你需要在后台运行一个flavor信息更新的迁移,把旧名字改为新名字。Kilo的conductor节点会根据需要进行处理,但是其余的空闲数据需要在后台完成迁移。这个要在Liberty更新后全部完成,到时候旧的位置会被废弃。使用"nova-manage migrate-flavor-data"完成迁移。
  • 由于Nova v2.1 API强制策略的优化。在v2.1 API策略上有一系列改变发生。因为v2.1 API之前一直没有更新,所以这些改变无法向前兼容。所以最好使用策略的样例配置取代之前的版本。
  • VMware拯救(rescue)虚拟机的行为不再生成一个新的虚拟机而是直接在当前镜像上进行:cd1765459a24e52e1b933c8e05517fed75ac9d41
  • force_config_drive = always被废弃了,需要使用force_config_drive = True替换:c12a78b35dc910fa97df888960ef2b9a64557254
  • 运行hyper-v,如果你已经部署的代码晚于这个commit b4d57ab65836460d0d9cb8889ec2e6c3986c0a9b,但是早于这个commit c8e9f8e71de64273f10498c5ad959634bfe79975,那么你可能存在问题,需要手动解决,查看这个commit c8e9f8e71de64273f10498c5ad959634bfe79975
  • 改变multi_instance_display_name_template的默认值:609b2df339785bff9e30a9d67d5c853562ae3344
  • 使用"nova-manage db null_instance_uuid_scan"确保DB迁移之前数据是干净的,c0ea53ce353684b48303fc59393930c3fa5ade58

OpenStack镜像服务 (Glance)

新功能

已知问题

升级提示

  • 移除废弃的选项db_enforce_mysql_charset。 相应的commit: efeb69f9033a57a1c806f71ee3ed9fd3f4d2475e
  • 现在支持metadef资源的通知,相应的commit: fd547e3717dc4a3a92c1cb2104c18608a4f4872a
  • VMware多datastore支持可以通过几个选项进行配置,相应的commit: 96fb31d7459bd4e05e052053177dce4d38cdaf90
  • 移除eventlet执行方法,并且增加一个新的Taskflow的执行方法,用于异步任务,相应的commits: ae3135e1d67df77697a24fddaee3efeadb34a0dd和 a39debfd55f6872e5f4f955b75728c936d1cee4b
  • 在配置中使用endpoint配置替代snet配置,相应的commit: 41a9a065531ec946b4a9baf999f97d10fa493826
  • Digest算法现在可以配置,相应的commit: 82194e0c422966422f7a4e2157125c7ad8fbc5b5
  • 清理已经被删除的镜像,镜像在'保存中'状态时删除。相应的commit: 0dc8fbb3479a53c5bba8475d14f4c7206904c5ea
  • Glance现在使用毕业的oslo.policy模块。相应的commit: cb7d5a4795bbdaf4dc3eaaf0a6fb1add52c09011
  • 镜像现在可以设置为非激活状态。一个新的'非激活'状态已经添加到镜像数据中。相应的commit: b000c85b7fabbe944b4df3ab57ff73883328f40d

OpenStack面板(Horizon)

新功能

  • 支持通过Web单点登陆的统一认证方式——在keystone中做配置后,用户就能选择认证机制来使用已部署的功能。这些功能的使用能够通过更改local_settings.py配置实现。相关启用设置和配置可以在这里找到:here
  • 支持主题 —— 包含了可以为Horizon指定自定义主题的简单功能。允许使用Bootstrap的CSS值,Horizon定义的变量,以及自定义CSS。更多信息参见:here
  • Sahara UX 改进 —— 集cluster创建和job创建引导页的增加极大改进了Sahara用户体验。
  • Launch Intance向导(beta) —— 用AngularJS实现了launch instance workflow的全面替代,用以解决现有的launch instance workflow的可用性问题。这项功能最近才引入并且缺乏测试,所以在Kilo版本中标记为beta并且默认是不启用的。要使用新的workflow,需要对local_settings.py做如下更改:LAUNCH_INSTANCE_NG_ENABLED = True。另外,可以做如下更改来禁用默认的启用instance向导:LAUNCH_INSTANCE_LEGACY_ENABLED = False。这项新功能体现了Horizon未来的发展。
  • Nova
    • 允许service在Hypervisor中 禁用/启用
    • 从host迁移所有instance
    • 暴露serial console
  • Cinder
    • 默认为Cinder v2
    • 支持已管理/未管理的volume —— 允许管理员管理已存在的volume不再被cinder管理,未管理的被cinder管理。
    • 支持project间的volume转移
    • 支持volume加密元数据
  • Glance
    • 增加了界面以允许管理员查看/新增/修改 Glance元数据定义
  • Heat
    • Stack Template界面
    • 操作资源控制板
    • Stacks的挂起/恢复操作
    • 预览Stack界面允许用户在定义模板中的stacks前可以先预览。
  • Trove
    • 调整Trove实例 —— 更改instance的flavor
  • Ceilometer
    • 展示来源于Ceilometer的IPMI测量数据
  • Horizon中新的可重复使用的AngularJS widgets:
    • AngularJS 表格实现
    • Table 绘制 —— 扩展的表格内容
    • 改进的 client/server 查找
    • 转换表格widget
  • 可为Horizon配置web root不仅仅限于“/”

已知问题

升级提示

  • 目前支持Django 1.7

OpenStack鉴权服务(Keystone)

新功能

分层multitenancy

创建一个新的project时,可以设置属性parent_id的值为一个已存在project,使 Projects嵌套在其他projects下。

Role现在可以分配给project分层子树上的 usersgroups

这项功能还需要其他Openstack服务(例如hierarchical quotas)的相应支持使其广泛的生效

Fernet tokens

区别于UUID tokens只能持久化存入数据库,Fernet tokens完全不需要持久化。部署人员可以通过设置keystone.conf中的[token] provider = keystone.token.providers.fernet.Provider来启用Fernet token

Fernet tokens需要symmetric encryption keys,这些keys可以使用keystone-manage fernet_setup建立, 并且使用keystone-manage fernet_rotate周期性地轮换。这些keys必须被在一个multi-node(或者multi-region)部署中的所有Keyston nodes共享,这样就能使一个node生成的tokens可以立即被其他节点验证。

Identity federation

  • Keystone现在可以作为联邦身份提供者(IdP: federated identity provider)为另外一个Keystone实例提供本地用户的SAML断言(SAML assertions),可能是ECP封装(ECP-wrapped)。
  • 支持OpenID连接作为联邦身份鉴权机制(federated identity authentication mechanism)。
  • 在Keystone中增加对多"Remote IDs"关联到单一的鉴权提供者。这有助于有多身份提供者使用一个通用的映射。
  • 增加为已经拥有Idp用户通过web浏览器鉴权的能力,实现单点登录。
  • 联邦令牌(federated tokens)现在使用token鉴权方法,mappedsaml2仍然有效。
  • 联邦用户(federated users)可以映射到本地已经存在的身份上。
  • 在规则集(rulesets)映射中定义的组可以用名字和域鉴权
  • 出现在联邦身份断言(federated identity assertions)中的组,可以被自动的映射为本地已经存在的组中,并且拥有本地用户关系映射(通过白名单和黑名单过滤)

LDAP

  • 用户指定的API过滤项现在由LDAP本身处理,现在由keystone取代
  • "试验性"支持存储指定域(domain-specific)鉴权后端HTTP API在SQL中配置。这个主要用户场景是,当使用HTTP API创建一个新的域(domain),并且马上配置一个指定域(domain-specific)的LDAP驱动,而不需要重启keystone。

鉴权

  • "分配(assignment)"后端已经被分离到"资源(resource)"后端(包含domains, projects和roles),并且"分配(assignment)"的后端包含了授权的映射模型
  • 支持再次信任授权。当信任关系建立后,被信任人可以通过另外一个信任重新授权该信任的角色。
  • Keystone支持无范围(unscoped)的token请求,即使用户设置了default_project_id
  • 部署人员可以修改配置来限制已经有范围的令牌重新获取范围(re-scoping),在keystone.conf设置[token] allow_rescope_scoped_token = false 。

升级提示

  • Keystone的XML支持将在Kilo版本删除。当从Juno升级到Kilo,建议将XML和XmlBodyMiddleware相关的信息从Keystone Paste p配置删除。这包含删除XML中间层过滤器以及public_api, admin_api, api_v3, public_version_api, admin_version_api相关的和其他包含XML过滤器的流水线(pipelines)。
  • 所有之前的扩展(OS-FEDERATION, OS-OAUTH1, OS-ENDPOINT-POLICY and OS-EP-FILTER)现在被默认支持,并且在相关标记中,标记为"试验"或者"稳定"。
  • 不在支持SQL结构的回退。这个变化主要是回退并没有经过良好的测试,而且在很多迁移中需要支持数据变化,难度越来越大。
  • 需要以下Python库:cryptographymsgpack-pythonpysaml2 和 oauthlib
  • keystone.middleware.RequestBodySizeLimiter被废弃,取而代之的是 oslo_middleware.sizelimit.RequestBodySizeLimiter 并且在Liberty移除。
  • Eventlet相关的配置项,如:public_bind_hostbind_hostadmin_bind_hostadmin_portpublic_portpublic_workersadmin_workers,tcp_keepalivetcp_keepidle被从[DEFAULT]移除掉,移到了[eventlet_server]. 相似的,Eventlet相关的SSL配置选项如:enablecertfile,keyfileca_certscert_required已经从[ssl]配置项移动到[eventlet_server_ssl].
  • keystone.token.backends.sql被 keystone.token.persistence.backends.sql取代.
  • keystone.token.backends.kvs被 keystone.token.persistence.backends.kvs取代.
  • keystone.token.backends.memcache被 keystone.token.persistence.backends.memcache取代.
  • keystone.assignment.backends.kvskeystone.assignment.backends.sql取代.
  • keystone.identity.backends.kvskeystone.identity.backends.sql取代.
  • keystone.contrib.stats.core.StatsMiddleware被外部工具取代.
  • keystone.catalog.backends.templated.TemplatedCatalogkeystone.catalog.backends.templated.Catalog取代.
  • keystone.contrib.access.core.AccessLogMiddleware被外部访问日志取代.
  • keystone.trust.backends.kvskeystone.trust.backends.sql取代.
  • [catalog] endpoint_substitution_whitelist已经从keystone.conf删除,作为加强安全的一部分。
  • [signing] token_format被从keystone.conf删除,取代的是[token] provider.

OpenStack网络服务(Neutron)

新功能

  • DVR现在除了VXLAN/GRE外还支持VLANs
  • ML2分层端口绑定(Port Binding)
  • 新的V2版本的LBaas(负载均衡即服务)API
  • 支持OVS ML2驱动的端口安全
  • 在Kilo版本中支持的新插件:
    • A10 Networks LBaaS V2 Driver
    • Brocade LBaaS V2 Driver
    • Brocade ML2 driver for MLX and ICX switches
    • Brocade L3 routing plugin for MLX switch
    • Brocade Vyatta vRouter L3 Plugin
    • Brocade Vyatta vRouter Firewall Driver
    • Brocade Vyatta vRouter VPN Driver
    • Cisco CSR VPNaaS Driver
    • Dragonflow SDN based Distributed Virtual Router L3 Plugin
    • Freescale FWaaS Driver
    • Intel Mcafee NGFW FWaaS Driver
    • IPSEC Strongswan VPNaaS Driver

已知问题

  • 在Kilo版本中,防火墙即服务仍然标记为试验性功能
  • Bug 1438819
    • 当创建一个新的可访问外部网络的子网,所有与该网络相关的、已经存在的具有网关的路由都会得到一个新的地址。对于IPv4网络,这样会为路由的网关消耗掉子网中的全部接口。

升级提示

从Havana版本开始,Neutron不再支持存放指定的租约(https://bugs.launchpad.net/bugs/1202392)。这部分剩余的残留代码包含了一些不曾使用的环境变量。为了删除掉这些残余代码 (https://review.openstack.org/#/c/152398/),需要修改dhcp.filter,所以这一行:

dnsmasq: EnvFilter, dnsmasq, root, NEUTRON_NETWORK_ID=

需要被替换为:

dnsmasq: CommandFilter, dnsmasq, root

在一些高级服务被划分到独立的包,并且有自己的配置文件后(特别是:etc/neutron/neutron_lbaas.conf, etc/neutron/neutron_fwaas.conf and etc/neutron/neutron_vpnaas.conf),当前活跃的服务在升级后,配置会产生变化(特别是,默认的负载均衡软件(haxproxy)和vpn(oepnswn)在升级后会被开启,尽管你之前可能在neutron.conf关闭了他们)。请务必在升级后检查你的配置,保证你的新配置和你之前想要启动的服务一致。

注意:如果在neutron.conf没有加载相关插件,不会受到影响。

其他的注意信息(废弃/终止等)

  • 废弃
    • Brocade的VDX/VCS系列硬件的Monolithic插件将在L版本中废弃。原有插件提供的功能已经在ML2中实现。插件将在这个更新之后被删除。
    • Cisco的Nexus1000V Meta插件将在L版本中废弃。原有插件功能已经在ML2的Cisco Nexus1000V策略驱动实现。插件将在这个更新之后被删除。

OpenStack块存储(Cinder)

新功能

  • 从这一刻起,任何新的数据库结构的更新将不需要Cinder服务立即重启。服务本身和数据库结构间没有直接关联。这是Cinder支持滚动更新(rolling upgrades)的第一部分!
  • 在已经存在的一致性组中添加或者删除卷。获取更多信息.
  • 从一个已经存在的一致性组的景象中创建一个新的一致性组。获取更多信息.
  • 创建了更多已经优化的filters/weighers来设定scheduler如何选择一个卷的后端。获取更多信息.
  • 加密卷现在可以使用Cinder备份服务进行备份。获取更多信息.
  • 允许创建私有卷类型。你可以让卷类型只对特定的租户可见,或者在更新到正式环境前进行测试。可以用过'cinder type-create <name> --is-public'设置。
  • Thin Provision(精简配置)的超额认购是可以配置的。Read docs for more info.
  • 可以为卷类型增加描述信息。使用'cinder type-create <name> <description>'命令创建。
  • Cinder现在可以返回多个iSCSI路径信息,这样连接方就能在主路径(Primary Path)挂掉后,使用其他路径(当连接方多路径支持开启 or 未开启)。

升级提示

  • cinder.conf中的'host'配置选项被重命名为'backend_host',目的为了避免与redis配置中的'host'命名冲突。如果你使用了这个选项,请务必更新你的配置文件。

OpenStack遥测服务(Ceilometer)

新功能

  • 支持在polling循环中增加抖动,保证pollsters不要在同一时间查询服务的API
  • 支持Ceilometer API RBAC(基于权限的访问控制)
  • 优化的事件支持:
    • 多流水线(Multi-pipeline)支持开启唯一的处理和发布的事件
    • 支持捕获RAW消息格式,便于审计和事后分析
    • 在弹性搜索中支持持久化事件
    • 发布支持对数据库、http、分拣、kafka和oslo.messaging支持的消息队列
    • 增加一个选项,可以将消息的持久化数据存放在一个单独的数据库中
    • Ceilometer现在支持使用时间(events)采集和存储所有事件类型的测量(meters)。一个新的选项,disable_non_metric_meters被加入到配置中,为了关闭将这些事件作为Samples存取的开关。更多信息请参阅Ceilometer配置指南
    • OpenStack手册中的管理员指南增加了新的事件的选择, 你能通过这篇文档获取更多信息。
  • 优化了流水线(pipeline)发布支持:
    • 支持将事件(events)和samples发布到Kafka或者Http目标中
    • 将数据发送到多个队列中
  • 更多的测量(meters)
    • Hyper-V的内存和磁盘测量(meters)
    • LibVirt的磁盘测量(meters)
    • IPMI相关的电源和热量的测量(meters),更多的测量指标查看NodeManager
    • Ceph测量
  • 在Ceilometer中upd的发布和采集支持IPv6格式
  • Gnocchi支持ceilometer-collector分派
  • pollster自我关闭机制

升级提示

  • 失效的测量(meters):
    • instance:<flavor>测量在Kilo版本中废弃。如果想获取flavor的samples或者统计你能使用以下查询:
  统计:
ceilometer statistics -m instance -g resource_metadata.instance_type
  samples:
ceilometer sample-list -m instance -q metadata.instance_type=<value>

OpenStack编排服务(Heat)

新功能

升级提示

  • "num_engine_workers"选项默认值从1变为CPU个数。现在这也是其他项目设置worker数量的方法。
  • "max_nested_stack_depth"默认值增加为5.
  • 新增的"convergence"默认为关闭。这个功能还没有完成,应该保持关闭。
  • 为了准备即将到来的主要更新(convergence),有一些明显的数据库结构变化。建议在升级过程中关闭heat-engine。

其他的注意信息(废弃/终止等)

废弃

  • 下列资源被废弃了OS::Heat::HARestarter和OS::Heat::CWLiteAlarm
  • CloudWatch API (heat-api-cw)

OpenStack数据库服务(Trove)

新功能

  • 支持一个新的复制策略,基于异步的GTID复制(MySQL 5.6新功能)
    • 当前一个API调用支持从一个单master节点创建n个副本
    • 使用新的'eject-master' API,我们也能支持从一个未响应的master节点,恢复到最近更新的slave节点上
  • Trove guest管理支持以下新的数据存储:
    • Vertica, and Vertica Cluster
    • DB2
    • CouchDB
  • 扩展当前管理API层:
    • 新的管理API用来获取列表或查看已经删除的trove虚拟机
    • 新的管理API用来ping一个数据存储的guest agent,基于RPC机制
  • Horizon支持重置Trove实例(instances)的规格
  • 用户现在可以编辑/更新Trove虚拟机(instances)的名字
  • 集成跨项目的OpenStack性能分析库(OSProfiler)

升级提示

  • 我们从已经废弃的oslo-incubator消息代码迁移至官方的oslo.messaging模块中。配置变更详情请查看git.openstack.org/cgit/openstack/trove/tree/etc/trove/trove.conf.sample#n18,(更新)
  • 没有经过任何CI测试过的数据存储和策略被移入'测试'段中的各自模块中。一旦这些数据存储和策略在CI中通过测试和gate验证,他们就会被标记为'稳定'。
  • 添加了新文档帮助为不同的数据存储创建镜像 http://docs.openstack.org/developer/trove/dev/building_guest_images.html

OpenStack数据处理服务(Sahara)

新功能

  • 新插件,功能和版本:
    • MAPR
    • Apache Storm
    • 添加了Apache Hadoop 2.6.0, Apache Hadoop 2.4.1被废弃
    • 新的服务CDH插件加入HDFS, YARN, Spark, Oozie, HBase, Zookeeper和其他服务
  • 增加非直接的虚拟机(instances)访问,以更好地利用floating ip
  • 增加事件日志支持注入过程中的详细信息
  • 每个插件可选择的默认节点组和集群模板
  • Horizon更新:
    • 向导式创建集群和任务调度
    • 查找对象时过滤
  • 实现了节点组模板编辑和集群模板
  • 为集群运行Oozie增加了Shell任务类型
  • 新的任务类型端点(endpoint),用于查询已知的任务类型列表

升级提示

更多详细信息:http://docs.openstack.org/developer/sahara/userdoc/upgrade.guide.html#juno-kilo

  • Sahara现在支持policy.json配置文件。

OpenStack裸金属服务(Ironic)

新功能

状态机(State Machine)

Ironic现在使用一个正式的模式管理每个节点的逻辑状态。[1]。这样就开启了两个附属的进程:清理(cleaning) and 检查(inspection)

  • 现在默认支持项目间的自动磁盘清除。这可能需要为清理(cleaning)扩展额外的步骤,例如重新申请fireware,重置BIOS设置等[2]
  • 硬件的检查(inspect),同时支持带内(in-band)和带外(out-of-band)两种方式。这些方法可能会自动更新节点设置。[3]

版本头信息

Ironic REST API在HTTP[S]请求的头信息中增加了一个新的X-OpenStack-Ironic-API-Version。这个头信息允许客户端和服务端在协商时支持一个统一的接口。[4]。如果头信息缺失,REST服务会默认进入兼容模式,并且产生一个兼容Juno客户端的响应。这种模式是被限制访问Kilo提供的最新功能的。

硬件驱动更新

以下驱动被添加:

对于已经存在的驱动,有以下增强点:

支持第三方和未列出的驱动,通过以下两点得到增强:

  • 驱动可以存储节点"内部的"信息
  • 驱动可以注册自己的定时任务,并且由Conductor执行
  • vender_passthru方法现在支持额外的HTTP方法(例如PUT和POST)
  • vendor_passthru方法现在可以在REST API中被发现。查看node vendor passthru和 driver vendor passthru

其他更新

  • 除了正式的UUID之外,逻辑名称可以被用来标识节点。
  • 对于拥有多个本地磁盘的服务器,提示可以提供哪些OS在注入时产生影响
  • 支持从HTTP[S]源中直接获取kernel, ramdisk和实例镜像,并且从Glance移除了依赖使用Ironic作为独立服务
  • 可以通过REST API将节点设置为维护模式维护模式。一个可选项维护模式原因可以标识原因。

已知问题

  • 运行一个以上的nova-compute没有被正式的支持
    • 当然Ironic包含了ClusteredComputeManager,允许多余一个以上的nova-compute进程,这个功能被视为实验阶段,并且已经存在了很多问题
  • 使用“agent”驱动的部署策略不支持"rebuild --preserve-ephemeral"

升级提示

  • IPMI的密码使REST API请求混乱。可以通过API策略设定关闭。
  • 驱动的"agent"类现在支持全盘或者分区镜像。
  • "pxe_deploy_kernel"和"pxe_deploy_ramdisk"的driver_info参数被废弃,取而代之的是"deploy_kernel"和"deploy_ramdisk"。
  • 驱动自己实现的版本的方法vendor_passthru()被废弃,取而代之的是使用装饰器@passthru。

Juno升级到Kilo

升级文档请参考:

从Icehouse的"nova-baremetal"升级

直接从Icehouse的Nova安装中使用“baremetal”驱动直接到Kilo的Ironic,没有经过测试也不支持。替代方案,请遵循以下升级顺序:

  1. Icehouse Nova "baremetal" -> Juno Nova "baremetal"
  2. Juno Nova "baremetal" -> Juno Ironic
  3. Juno Ironic -> Kilo Ironic

第一步和第二步的文档:https://wiki.openstack.org/wiki/Ironic/NovaBaremetalIronicMigration

OpenStack文档