ReleaseNotes/Icehouse
OpenStack 2014.1 (Icehouse) 发布说明
可以在 日语 中找到翻译后的发布说明。更多翻译正在进行中。
目录
- 1 OpenStack 2014.1 (Icehouse) 发布说明
- 1.1 通用升级说明
- 1.2 OpenStack 对象存储 (Swift)
- 1.3 OpenStack 计算 (Nova)
- 1.4 OpenStack 镜像服务 (Glance)
- 1.5 OpenStack 仪表板 (Horizon)
- 1.6 OpenStack 身份 (Keystone)
- 1.7 OpenStack 网络服务 (Neutron)
- 1.8 OpenStack 块存储 (Cinder)
- 1.9 OpenStack 遥测 (Ceilometer)
- 1.10 OpenStack 编排 (Heat)
- 1.11 OpenStack 数据库服务 (Trove)
- 1.12 OpenStack 文档
通用升级说明
- Windows 打包程序应使用 pbr 0.8 以避免 bug 1294246
- log-config 选项已重命名为 log-config-append,现在将追加任何指定的配置,而不是完全覆盖任何其他设置,如当前发生的情况。(https://bugs.launchpad.net/oslo/+bug/1169328, https://bugs.launchpad.net/oslo/+bug/1238349)
- 为了最大限度地减少停机时间,必须在升级 OpenStack 计算之前升级 OpenStack 网络并重新启动 neutron-metadata-agent。计算必须能够验证由 neutron-metadata-agent 服务传递的 X-Tenant-ID。(https://bugs.launchpad.net/neutron/+bug/1235450)
OpenStack 对象存储 (Swift)
主要新特性
- 可发现的功能:Swift 代理服务器现在默认情况下(尽管可以关闭)将响应对 /info 的请求。这些请求的响应包括有关集群的信息,可用于客户端确定集群中支持哪些功能。这意味着一个客户端能够与多个 Swift 集群通信并利用每个集群中可用的功能。
- 持久化系统元数据的通用方法:Swift 现在支持帐户和容器上的系统级元数据。系统元数据提供了一种以安全可靠的方式存储与 Swift 资源关联的内部自定义元数据,而无需通过核心 Swift 服务器传递自定义元数据。新的 gatekeeper 中间件可防止此系统元数据泄漏到请求中或由客户端设置。
- 帐户级 ACL 和 ACL 格式 v2:帐户现在有一个新的特权标头来表示 ACL 或任何其他形式的帐户级访问控制。标头的值是将被身份验证系统解释的 JSON 字典字符串。TempAuth 中给出了一个参考实现。请参阅完整的文档 http://swift.openstack.org/overview_auth.html
- 对象复制 ssync(rsync 的替代方案):Swift 存储节点现在可以配置为使用 Swift 原语进行复制传输,而不是 rsync。
- 读取失败时的自动重试:如果源在对象服务器读取时超时,请使用修改后的范围尝试另一个对象服务器。这意味着驱动器故障期间客户端请求对最终用户客户端不可见。
- 正在进行即将推出的存储策略的工作
已知问题
目前尚无已知问题
升级说明
阅读完整的变更日志说明 https://github.com/openstack/swift/blob/master/CHANGELOG 以查看任何会影响升级的配置更改。
与往常一样,Swift 可以在不中断服务的情况下升级。
OpenStack Compute (Nova)
主要新特性
升级支持
- 现在支持有限的实时升级。这使部署者能够首先升级控制器基础设施,然后逐步升级各个计算节点,而无需完成整个云的停机时间。
计算驱动程序
Hyper-V
- 添加了 RDP 控制台支持。
Libvirt (KVM)
- Libvirt 计算驱动程序现在支持向启动的计算实例提供修改后的内核参数。内核参数是从 Glance 中存储的镜像元数据中的os_command_line键中检索的,如果提供了该键的值。否则将使用默认内核参数。
- Libvirt 驱动程序现在支持使用 VirtIO SCSI (virtio-scsi) 代替 VirtIO Block (virtio-blk) 来为实例提供块设备访问。Virtio SCSI 是一种作为 VirtIO Block 的未来替代者设计的准虚拟化 SCSI 控制器设备,旨在提供改进的可扩展性和性能。
- Libvirt 计算驱动程序现在支持向计算实例添加 Virtio RNG 设备以提供增加的熵。Virtio RNG 是一种准虚拟化随机数生成设备。它允许计算节点向计算实例提供熵以填充其熵池。默认使用的熵设备是 /dev/random,但是使用连接到主机的物理硬件 RNG 设备也是可能的。使用 Virtio RNG 设备是通过在用于构建实例的镜像的元数据中设置 hw_rng 属性来启用的。
- Libvirt 驱动程序现在允许配置实例以使用其他视频驱动程序而不是默认驱动程序 (cirros)。这允许指定不同的视频驱动程序模型、不同数量的视频 RAM 以及不同的磁头数。这些值是通过设置镜像元数据中的hw_video_model, hw_video_vram和hw_video_head属性来配置的。当前支持的视频驱动程序模型是vga, cirrus, vmvga, xen和qxl.
- 已为 Libvirt 驱动程序添加看门狗支持。使用的看门狗设备是i6300esb。它通过将hw_watchdog_action属性设置为除disabled之外的值,在镜像属性或风味额外规范(extra_specs)中启用。支持的hw_watchdog_action属性值,表示看门狗设备在实例失败时采取的操作,是poweroff, reset, pause和none.
- 使用 Libvirt 驱动程序创建的实例现在禁用了高精度事件计时器 (HPET)。发现此选项导致在重负载下 Windows 来宾出现时钟漂移。
- libvirt 驱动程序现在支持在实例启动期间从 Neutron 处等待事件,以提高可靠性。这需要支持发送这些事件的足够新的 Neutron,并避免实例期望网络就绪与所需的实际管道之间的竞争。
- 通过修复将 baselineCPU 调用到 libvirt 驱动程序中的完整功能列表,添加了增强的平台感知 (EPA) CPU 功能,从而允许将诸如 AES-NI 之类的 CPU 功能集暴露给来宾。
VMware
- VMware 计算驱动程序现在支持虚拟机诊断调用。可以使用“nova diagnostics INSTANCE”命令检索诊断信息,其中 INSTANCE 被替换为实例名称或实例标识符。
- VMware 计算驱动程序现在支持从 ISO 镜像启动实例。
- VMware 计算驱动程序现在支持缓存镜像的老化。
XenServer
- 所有 XenServer 特定配置项已更改名称,并移动到 nova.conf 中的 [xenserver] 部分。虽然在本版本中旧名称仍然有效,但旧名称现已弃用,并且在 Nova 的未来版本中可能会删除对它们的的支持。
- 添加了对 PCI 直通 的初步支持
- 通过引入 XenServer CI 保持了 B 组状态
- 改进了对临时磁盘的支持(包括 迁移 和 多个临时磁盘的调整大小)
- 支持 vcpu_pin_set,这对于将 CPU 资源固定到 Dom0 时至关重要
- 许多性能和稳定性增强
API
- 在 OpenStack 计算中,OS-DCF:diskConfigAPI 属性不再受 nova API V3 的支持。
- 计算 API 当前支持 XML 和 JSON 格式。XML 格式的支持现已弃用,将在未来的版本中停用。
- 计算 API 现在公开了一种永久删除已停用计算节点的方法。以前即使在禁用计算服务并重新配置系统后,这些节点仍会继续列出。此功能由ExtendedServicesDeleteAPI 扩展提供。
- 将 V3 API admin_actions 插件分离成逻辑上独立的插件,以便操作员可以启用当前存在于插件中的功能子集。
- 计算服务现在使用租户标识符而不是租户名称与 OpenStack 网络 (Neutron) 进行身份验证。这改进了对 OpenStack 身份 API v3 的支持,该 API 允许非唯一租户名称。
- 计算 API 现在公开了超visor IP 地址,管理员可以使用nova hypervisor-show命令检索它。
调度器
- 调度程序现在包含缓存调度程序驱动程序的初始实现。缓存调度程序使用现有的用于应用调度程序过滤器和权重的机制,但会缓存可用主机的列表。当用户请求传递到缓存调度程序时,它会尝试基于缓存主机列表执行调度,以提高调度程序性能。
- 引入了一个新的调度程序过滤器,AggregateImagePropertiesIsolation。新的过滤器基于匹配命名空间镜像属性与主机聚合属性来调度实例到主机。不属于任何主机聚合的主机仍然是基于所有镜像的实例的有效调度目标。新的计算服务配置键aggregate_image_properties_isolation_namespace和aggregate_image_properties_isolation_separator用于确定过滤器检查哪些镜像属性。
- OpenStack Compute 中的权重归一化:请参阅
- https://review.openstack.org/#/c/27160/ 权重已归一化,因此无需人为地增加乘数。权重器将为节点赋予的最大权重为 1.0,最小权重为 0.0。
- 调度程序现在支持服务器组。支持以下类型 - 反亲和性和亲和性过滤器。也就是说,部署的服务器将根据预定义的策略进行操作。
- 添加了一个新的框架来支持基于利用率的调度(bp:https://blueprints.launchpad.net/nova/+spec/utilization-aware-scheduling),并添加了一个 CPU 监控器来监控运行时 CPU 利用率,并将其用于更智能的调度,还添加了一个新的调度程序指标权重来支持该功能。要使用该框架、监控器和权重,应更改 nova 配置文件,否则默认情况下将其禁用。
其他功能
- 在创建和删除密钥对时,现在会生成通知。
- 当计算主机被启用、禁用、上电、关机、重启、进入维护模式和退出维护模式时,现在会生成通知。
- 计算服务现在可以通过在请求服务关闭时禁用新请求的处理来优雅地关闭,但允许已在处理中的请求在终止之前完成。
- 计算服务根据配置键的值确定当发现先前标记为已删除的实例仍在运行时应采取什么操作running_deleted_instance_action配置键。添加了一个新的shutdown值。使用这个新值允许管理员选择性地保留处于这种状态的实例以进行诊断,同时仍然释放运行时资源。
- 文件注入在 OpenStack Compute 中默认情况下已禁用。建议使用 ConfigDrive 和元数据服务器机制在启动时修改客户机。要启用文件注入,请修改inject_key和inject_partition配置键在/etc/nova/nova.conf中,并重启计算服务。文件注入机制可能会在未来的版本中被禁用。
- 为了确保文件中所有配置组都使用描述性名称,对预期的格式进行了一些更改/etc/nova/nova.conf配置文件。一些驱动程序特定的标志,包括 Libvirt 驱动程序的标志,也被移动到它们自己的选项组。
已知问题
- OpenStack Compute 具有使用其他项目较新 API 版本的某些功能,但以下是在 Icehouse 中测试的唯一 API 版本
- Keystone v2
- Cinder v1
- Glance v1
升级说明
- 调度程序和权重归一化(https://review.openstack.org/#/c/27160/):在以前的版本中,Compute 和 Cells 调度程序使用原始权重(即,权重器返回任何值,并且该值被用于称重过程)。
- 如果您正在使用 Compute 的多个权重器
- 如果使用了多个权重器(在以前的版本中 Nova 仅提供一个用于计算的权重器),则可能人为地增加了乘数,以便使重要的权重器胜过返回大原始值的任何其他权重器。您需要检查您的权重器,并考虑到现在主机的最大和最小权重将始终为1.0和0.0.
- 如果您正在使用 cells
- nova.cells.weights.mute_child.MuteChild:权重器返回的值mute_weight_value作为分配给一段时间内未更新其功能的子节点的权重。它仍然可以使用,但不会对权重过程计算出的最终权重产生影响,即1.0。如果您正在使用此权重器来静音一个子单元,则需要调整mute_weight_multiplier.
- nova.cells.weights.weight_offset.WeightOffsetWeigher引入了一个新的配置选项offset_weight_multiplier。必须调整这个新选项。在以前的版本中,权重器为称重过程中的每个单元返回配置偏移量的数值。虽然该过程的赢家仍然相同,但它将获得一个权重1.0。如果您正在使用此权重器,并且依赖于其值使其胜过任何其他权重器,则需要相应地调整其乘数。
- 如果您正在使用 Compute 的多个权重器
- 早期 Docker 计算驱动程序包含在 Havana 版本中。该驱动程序已从 Nova 移动到它自己的存储库。新位置是 http://git.openstack.org/cgit/stackforge/nova-docker
- https://review.openstack.org/50668 -compute_api_class配置选项已被删除。
- https://review.openstack.org/#/c/54290/ - 以下已弃用的配置选项别名已被删除,以支持它们的新名称
- service_quantum_metadata_proxy
- quantum_metadata_proxy_shared_secret
- use_quantum_default_nets
- quantum_default_tenant_id
- vpn_instance_type
- default_instance_type
- quantum_url
- quantum_url_timeout
- quantum_admin_username
- quantum_admin_password
- quantum_admin_tenant_name
- quantum_region_name
- quantum_admin_auth_url
- quantum_api_insecure
- quantum_auth_strategy
- quantum_ovs_bridge
- quantum_extension_sync_interval
- vmwareapi_host_ip
- vmwareapi_host_username
- vmwareapi_host_password
- vmwareapi_cluster_name
- vmwareapi_task_poll_interval
- vmwareapi_api_retry_count
- vnc_port
- vnc_port_total
- use_linked_clone
- vmwareapi_vlan_interface
- vmwareapi_wsdl_loc
- PowerVM 驱动程序已被删除:https://review.openstack.org/#/c/57774/
- nova.conf 中的 keystone_authtoken 默认值已更改:https://review.openstack.org/#/c/62815/
- libvirt lvm 名称已更改为使用实例 UUID 而不是实例名称模板(https://review.openstack.org/#/c/76968)。如果使用非默认实例名称模板,则可能需要手动清理。
- rbd 磁盘名称已更改为使用实例 UUID 而不是实例名称模板。过渡后需要手动清理旧的虚拟磁盘。(待定查找评审)
- Icehouse 将 libguestfs 作为要求。在当前运行 Havana 的系统上安装 Icehouse 依赖项可能会导致 Havana 节点开始使用 libguestfs 并意外中断。建议在更新系统上的软件包之前,如果最后更新 Nova 软件包,则在 Havana 节点上设置 libvirt_inject_partition=-2。
- 创建私有风味现在会自动向租户添加访问权限。这是 Havana 中的文档行为,但 Havana 和 Nova 早期版本中的实际实现并未自动向私有风味添加租户。
- Nova 以前包含一个 nova.conf.sample。该文件是自动生成的,不再直接包含。如果您正在打包 Nova 并希望包含示例配置文件,请参阅 etc/nova/README.nova.conf 以获取有关如何在构建时生成该文件的说明。
- Nova 现在默认需要 Neutron 在启动 libvirt 客户机时发出事件。如果您在 Neutron 支持它之前升级 Nova,则必须通过设置 vif_plugging_is_fatal=False 和 vif_plugging_timeout=0 在 Nova 中禁用此功能。建议的顺序是:Nova(禁用此功能),Neutron(启用通知),然后启用 vif_plugging_is_fatal=True 并使用默认的 vif_plugging_timeout 值。
- Nova 支持计算节点的有限的实时升级模型。为此,首先升级控制器基础设施(所有内容,除了 nova-compute),但设置 [upgrade_levels]/compute=icehouse-compat 选项。这将使 Icehouse 控制器服务能够与 Havana 计算服务通信。然后可以继续正常升级单个计算节点。当所有计算节点升级后,取消设置计算版本选项以保留默认值并重启控制器服务。
- 以下配置选项在本版本中标记为已弃用。请参阅nova.conf.sample获取它们的替代项。[GROUP]/option
- [DEFAULT]/rabbit_durable_queues
- [rpc_notifier2]/topics
- [DEFAULT]/log_config
- [DEFAULT]/logfile
- [DEFAULT]/logdir
- [DEFAULT]/base_dir_name
- [DEFAULT]/instance_type_extra_specs
- [DEFAULT]/db_backend
- [DEFAULT]/sql_connection
- [DATABASE]/sql_connection
- [sql]/connection
- [DEFAULT]/sql_idle_timeout
- [DATABASE]/sql_idle_timeout
- [sql]/idle_timeout
- [DEFAULT]/sql_min_pool_size
- [DATABASE]/sql_min_pool_size
- [DEFAULT]/sql_max_pool_size
- [DATABASE]/sql_max_pool_size
- [DEFAULT]/sql_max_retries
- [DATABASE]/sql_max_retries
- [DEFAULT]/sql_retry_interval
- [DATABASE]/reconnect_interval
- [DEFAULT]/sql_max_overflow
- [DATABASE]/sqlalchemy_max_overflow
- [DEFAULT]/sql_connection_debug
- [DEFAULT]/sql_connection_trace
- [DATABASE]/sqlalchemy_pool_timeout
- [DEFAULT]/memcache_servers
- [DEFAULT]/libvirt_type
- [DEFAULT]/libvirt_uri
- [DEFAULT]/libvirt_inject_password
- [DEFAULT]/libvirt_inject_key
- [DEFAULT]/libvirt_inject_partition
- [DEFAULT]/libvirt_vif_driver
- [DEFAULT]/libvirt_volume_drivers
- [DEFAULT]/libvirt_disk_prefix
- [DEFAULT]/libvirt_wait_soft_reboot_seconds
- [DEFAULT]/libvirt_cpu_mode
- [DEFAULT]/libvirt_cpu_model
- [DEFAULT]/libvirt_snapshots_directory
- [DEFAULT]/libvirt_images_type
- [DEFAULT]/libvirt_images_volume_group
- [DEFAULT]/libvirt_sparse_logical_volumes
- [DEFAULT]/libvirt_images_rbd_pool
- [DEFAULT]/libvirt_images_rbd_ceph_conf
- [DEFAULT]/libvirt_snapshot_compression
- [DEFAULT]/libvirt_use_virtio_for_bridges
- [DEFAULT]/libvirt_iscsi_use_multipath
- [DEFAULT]/libvirt_iser_use_multipath
- [DEFAULT]/matchmaker_ringfile
- [DEFAULT]/agent_timeout
- [DEFAULT]/agent_version_timeout
- [DEFAULT]/agent_resetnetwork_timeout
- [DEFAULT]/xenapi_agent_path
- [DEFAULT]/xenapi_disable_agent
- [DEFAULT]/xenapi_use_agent_default
- [DEFAULT]/xenapi_login_timeout
- [DEFAULT]/xenapi_connection_concurrent
- [DEFAULT]/xenapi_connection_url
- [DEFAULT]/xenapi_connection_username
- [DEFAULT]/xenapi_connection_password
- [DEFAULT]/xenapi_vhd_coalesce_poll_interval
- [DEFAULT]/xenapi_check_host
- [DEFAULT]/xenapi_vhd_coalesce_max_attempts
- [DEFAULT]/xenapi_sr_base_path
- [DEFAULT]/target_host
- [DEFAULT]/target_port
- [DEFAULT]/iqn_prefix
- [DEFAULT]/xenapi_remap_vbd_dev
- [DEFAULT]/xenapi_remap_vbd_dev_prefix
- [DEFAULT]/xenapi_torrent_base_url
- [DEFAULT]/xenapi_torrent_seed_chance
- [DEFAULT]/xenapi_torrent_seed_duration
- [DEFAULT]/xenapi_torrent_max_last_accessed
- [DEFAULT]/xenapi_torrent_listen_port_start
- [DEFAULT]/xenapi_torrent_listen_port_end
- [DEFAULT]/xenapi_torrent_download_stall_cutoff
- [DEFAULT]/xenapi_torrent_max_seeder_processes_per_host
- [DEFAULT]/use_join_force
- [DEFAULT]/xenapi_ovs_integration_bridge
- [DEFAULT]/cache_images
- [DEFAULT]/xenapi_image_compression_level
- [DEFAULT]/default_os_type
- [DEFAULT]/block_device_creation_timeout
- [DEFAULT]/max_kernel_ramdisk_size
- [DEFAULT]/sr_matching_filter
- [DEFAULT]/xenapi_sparse_copy
- [DEFAULT]/xenapi_num_vbd_unplug_retries
- [DEFAULT]/xenapi_torrent_images
- [DEFAULT]/xenapi_ipxe_network_name
- [DEFAULT]/xenapi_ipxe_boot_menu_url
- [DEFAULT]/xenapi_ipxe_mkisofs_cmd
- [DEFAULT]/xenapi_running_timeout
- [DEFAULT]/xenapi_vif_driver
- [DEFAULT]/xenapi_image_upload_handler
OpenStack 镜像服务 (Glance)
主要新特性
- 添加 VMware 数据存储作为存储后端(请参阅 https://blueprints.launchpad.net/glance/+spec/vmware-datastore-storage-backend)
- 添加镜像位置选择策略(请参阅 https://blueprints.launchpad.net/glance/+spec/image-location-selection-strategy)
- 为镜像添加了一个新的字段 'virtual_size'(请参阅 https://blueprints.launchpad.net/glance/+spec/split-image-size)
- API 消息本地化(请参阅 https://docs.openstack.org/developer/glance/glanceapi.html#api-message-localization)
- 存储配额的计算得到了改进。已删除的镜像现在从计数中排除(https://bugs.launchpad.net/glance/+bug/1261738),这可能会影响您现有的使用情况数据。
- Glance 已转变为使用基于 0 的索引来表示位置条目,以符合 JSON-pointer RFC6901(https://bugs.launchpad.net/glance/+bug/1282437)
已知问题
无。
升级说明
- Glance 正在使用 oslo.messaging 来替换其私有通知程序代码,建议使用 `notification_driver` + `transport_url` 的组合。旧的配置 'notifier_strategy' 已弃用,但仍然有效。
OpenStack Dashboard (Horizon)
主要新特性
语言支持
- 感谢 I18nTeam,Horizon 现在提供印地语、德语和塞尔维亚语版本。澳大利亚英语、英国英语、荷兰语、法语、日语、韩语、波兰语、葡萄牙语、简体中文和繁体中文、西班牙语和俄语的翻译也已更新。
Nova
- 实时迁移支持
- HyperV 控制台支持
- 磁盘配置选项支持
- 改进了管理主机聚合和可用区的功能。
- 支持轻松设置风味额外规格
Cinder
- Cinder 视图的角色基于访问支持
- v2 API 支持
- 扩展卷支持
Neutron
- 路由器规则支持 - 在 Neutron 返回路由器时显示路由器规则
Swift
- 支持创建公共容器并提供指向这些容器的链接
- 支持显式创建伪目录
Heat
- 更新现有堆栈的能力
- 模板验证
- 支持添加环境变量文件
Ceilometer
管理员现在可以查看每个服务跨项目的每日使用情况报告。
用户体验增强
- 更具可扩展性的导航
- 主仪表板和面板导航已从选项卡导航更新为手风琴实现。仪表板和面板组现在可以在页面导航中展开和折叠。此更改允许添加更多仪表板,并适应仪表板中不断增加的面板数量。
- 向导
- Horizon 现在提供了一个向导控件来完成多步骤的相互依赖的任务。这现在用于创建网络操作。
- 内联表格编辑
- 表格现在可以写入以支持编辑表格中的字段,以减少打开单独表单的需求。这在管理仪表板的项目面板中是第一个示例。
- 自助密码更改
- 利用 Identity API v3 (Keystone) 的增强功能,用户现在可以更改自己的密码,而无需管理员的参与。此功能以前仅适用于 Identity API v2.0。
- 服务器端表格过滤
- 表格现在可以轻松地连接到根据用户选择的标准从底层 API 调用过滤结果,而不仅仅是在页面上执行搜索。
框架
- JavaScript
- 为了提供更好的用户体验,Horizon 已经采用 AngularJS 作为主要的 JavaScript 框架。JavaScript 现在是运行 Horizon 界面所需的浏览器要求。更多内容将在 Juno 中推出。
- 添加了可重用的图表供 Horizon 使用
- 集成了 Jasmine 测试库
- 为了提供更好的用户体验,Horizon 已经采用 AngularJS 作为主要的 JavaScript 框架。JavaScript 现在是运行 Horizon 界面所需的浏览器要求。更多内容将在 Juno 中推出。
- 完全支持 Django 1.6
- 插件架构
- Horizon 现在具有动态加载/禁用仪表板、面板组和面板的功能。只需在 enabled 目录中添加一个文件,就可以更改加载到 Horizon 中的项目选择。不再需要编辑 Django 设置文件。
- 集成测试框架
- Horizon 现在支持针对正在运行的 devstack 系统运行集成测试。测试套件有限,但这向前迈出了重要一步。
已知问题
如果 Identity API v3 中使用了多域支持,用户将无法管理除默认域以外的任何域中的资源。
升级说明
使用的浏览器现在需要支持 JavaScript。
“can_set_password”的默认值现在为 False。这意味着,除非将该设置显式设置为 True,否则在启动实例工作流中将不会显示设置实例“Admin 密码”的选项。并非所有 hypervisor 都支持此功能,这给用户带来了困惑,现在有更安全的方式来设置和检索密码(请参阅 LP#1291006)。
“can_set_mountpoint”的默认值现在为 False,应在设置中将其设置为 True,以便在仪表板中添加设置卷的挂载点的选项。目前只有 Xen hypervisor 支持此功能(请参阅 LP#1255136)。
OpenStack Identity (Keystone)
主要新特性
- 新的 v3 API 功能
-
/v3/OS-FEDERATION/允许 Keystone 通过 Shibboleth 消费来自多个身份提供商的联合身份验证,并将联合属性映射到基于 OpenStack 组的角色分配(请参阅 文档)。 -
POST /v3/users/{user_id}/password允许 API 用户更新自己的密码(请参阅 文档)。 -
GET v3/auth/token?nocatalog允许 API 用户在执行在线令牌验证时选择不接收服务目录(请参阅 文档)。 -
/v3/regions提供了一个用于描述多区域部署的公共接口(请参阅 文档)。 -
/v3/OS-SIMPLECERT/现在发布了用于 PKI 令牌验证的证书(请参阅 文档)。 -
/v3/OS-TRUST/trusts现在能够通过 trusts 的remaining_uses属性提供有限使用的委托。
-
- 分配后端(授权数据的来源)现在已完全与身份后端(身份验证数据的来源)分离。这意味着您可以将部署的身份数据备份到 LDAP,并将授权数据备份到 SQL,例如。
- 令牌 KVS 驱动程序现在能够写入持久的键值存储,例如 Redis、Cassandra 或 MongoDB。
- Keystone 的驱动程序接口现在实现为抽象基类 (ABCs),以便更容易跟踪自定义驱动程序实现跨版本的兼容性。
- Keystone 的默认
etc/policy.json已被重写为更易于阅读的格式。 - 通知 现在在角色、组和 trust 上的创建、更新和删除事件响应中发出。
- 自定义扩展和驱动程序实现现在可以订阅仅限内部的事件通知,包括 disable 事件(仅作为 update 事件对外公开)。
- Keystone 现在在身份验证事件响应中发出 云审计数据联合 (CADF) 事件通知。
- 附加插件 提供了处理通过
REMOTE_USER进行的外部身份验证,以及单域与多域部署之间的关系。 -
policy.json现在可以使用例如%(target.{entity}.domain_id)s在感知域的操作中对目标域执行强制。 - 分配后端 (assignment backend) 的 LDAP 驱动程序现在支持基于组的角色分配操作。
- Keystone 现在发布令牌撤销 事件,除了继续支持令牌撤销 列表。令牌撤销事件旨在消耗更少的开销(与令牌撤销列表相比),并将使 Keystone 在 Juno 版本中消除令牌持久性。
- 部署者现在可以定义 API 响应中集合大小的任意限制(例如,
GET /v3/users可以配置为仅返回 100 个用户,而不是 10,000 个用户)。当发生截断时,客户端将被告知。 - 已启用延迟翻译,以根据请求的 Accept-Language 标头翻译响应。
- Keystone 现在发出准备好进行 i18n 的日志消息。
- 集合过滤现在在驱动程序层执行,在可能的情况下,以提高性能。
已知问题
- Bug 1291157:如果使用
OS-FEDERATION扩展,删除身份提供商或协议将不会导致先前发出的令牌被撤销。此问题将在 stable/icehouse 分支中修复。 - Bug 1308218:响应
GET /v2.0/tenants/{tenant_id}/users时,可能会返回重复的用户资源。
升级说明
- v2 API 已准备好进行弃用,但在 Icehouse 版本中仍然稳定。在广泛支持 v3 API 的前提下,它可能会在 Juno 版本中正式弃用。
- 已删除对
keystone.middleware.auth_token的向后兼容性。auth_token中间件模块不再由 Keystone 本身提供,而必须从keystoneclient.middleware.auth_token导入。 keystone.middleware.s3_token中间件模块不再由 Keystone 本身提供,而必须从keystoneclient.middleware.s3_token导入。对keystone.middleware.s3_token的向后兼容性将在 Juno 中删除。- 默认令牌持续时间已从 24 小时减少到仅 1 小时。这有效地减少了任何时候必须持久化的令牌数量,并且(对于 PKI 部署)减少了令牌撤销列表的开销。
-
keystone.contrib.access.core.AccessLogMiddleware已被弃用,支持 eventlet 调试访问日志或 Apache httpd 访问日志,并且可能在 K 版本中删除。 -
keystone.contrib.stats.core.StatsMiddleware已被弃用,支持外部工具,并且可能在 K 版本中删除。 -
keystone.middleware.XmlBodyMiddleware已被弃用,支持仅 "application/json",并且可能在 K 版本中删除。 - 已实现 v3 API 版本的 EC2 凭证系统。要使用此系统,需要在
keystone-paste.ini中添加以下部分
[filter:ec2_extension_v3] paste.filter_factory = keystone.contrib.ec2:Ec2ExtensionV3.factory
并且需要在 keystone-paste.ini 的 [pipeline:api_v3] 部分的 pipeline 变量中添加 ec2_extension_v3。
-
etc/policy.json已更新,以提供对新的 v3 EC2 凭证 CRUD 规则,如更新的示例policy.json和policy.v3cloudsample.json中所示 - 迁移编号 38、39 和 40 将所有角色分配数据移动到一个统一的表中,其中包含用于角色引用的第一类列。
- TODO:弃用 oslo-incubator db 的操作
- 一个新的配置选项
mutable_domain_id默认值为false,以加强对域级别管理边界的安全。这可能会破坏您在 Havana 中依赖的 API 功能。如果是这样,请将此值设置为true,请向 Keystone 社区表达您的用例。 - TODO:将来会更改的任何非理想默认值
- Keystone 转向 oslo.messaging 发出事件通知,导致新的配置选项,这些选项可能与 Havana 中的配置选项不兼容(TODO:列举旧/新配置值)。
OpenStack 网络服务 (Neutron)
主要新特性
在 Icehouse 周期中,团队专注于 Neutron 代码库的稳定性和测试。许多现有的插件和驱动程序都经过修改,以解决已知的性能和稳定性问题。
新的驱动程序/插件
- IBM SDN-VE
- Nuage
- OneConvergence
- OpenDaylight
新的负载均衡即服务驱动程序
- Embrane
- NetScaler
- Radware
新的 VPN 驱动程序
- Cisco CSR
已知问题
- 在激活新的 Nova 回调功能时,
nova_url配置应在 URL 中包含版本。例如:“http://127.0.0.1:8774/v2”。 - Midokura 在外部公共存储库中维护其自己的 MidoNet Icehouse 插件。该插件可以在这里找到:https://github.com/midokura/neutron。请联系 Midokura 以获取更多信息 (info@midokura.com)
- 启用高级服务插件时,模式迁移可能无法正确更新所有配置的模式。请在对实时数据库执行之前,先在数据库的副本上测试迁移。Neutron 团队将在第一个稳定更新中解决此问题。
升级说明
- OVS 插件和 Linux Bridge 插件已被弃用,不应用于部署。ML2 插件将 OVS 和 Linux Bridge 支持合并到一个插件中。已提供一个 迁移脚本 用于正在寻找转换为 ML2 的 Havana 部署。迁移没有回滚功能,因此建议在对实时系统运行之前,先在数据库的副本上测试迁移。
- Neutron 团队已扩展了对遗留 Quantum 配置文件选项的支持,再发布一个版本。Icehouse 版本是这些选项将得到支持的最后一个版本。建议部署者更新配置以使用正确的 Neutron 选项。
- API 中的 XML 支持已被弃用。用户和部署者应尽快迁移到 JSON 进行 API 交互,因为 XML 支持将在未来的版本中停用。
- 通过设置这些值来配置 neutron.conf 以进行网络事件回调到 Nova:http://git.openstack.org/cgit/openstack/neutron/tree/etc/neutron.conf?id=2014.1.1#n297
- 有关更多信息,请参阅 Nova 的升级说明部分。
OpenStack Block Storage (Cinder)
主要新特性
- 更改现有卷的类型(retype)的能力
- 将卷元数据支持添加到 Cinder 备份对象
- 实现多个 API 工作进程
- 添加删除配额的能力
- 添加将备份导入/导出到 Cinder 的能力
- 添加了用于在卷附加/分离期间自动 FC 分区的光纤通道区域管理器
- 更新卷类型加密的能力
- Ceilometer 在附加/分离时的通知
新的后端驱动程序/插件
- EMC VMAX/VNX SMI-S FC 驱动程序
- EMC VNX iSCSI Direct 驱动程序
- HP MSA 2040
- IBM SONAS 和 Storwize V7000 统一存储系统
- NetApp ESeries
已知问题
- 在多个服务器上发生故障时,重新连接总是连接到第一个服务器(Bug:#1261631)
- Storwize/SVC 驱动程序在检查卷复制状态时崩溃(Bug:#1304115)
- 不支持 Glance API v2(Bug:#1308594)
- 建议您保留 Cinder v1 启用状态,因为 Nova 不知道如何与 v2 通信。
升级说明
- 强制分离 API 调用现在是仅管理员调用,不再是管理员和所有者的策略默认值。强制分离需要管理员进行清理工作,而管理员不知道所有者何时执行此操作。
- Simple/Chance 调度程序已被弃用。应使用过滤器调度程序代替类似的功能。只需将 cinder.conf 设置为 scheduler_driver=cinder.scheduler.filter_scheduler.FilterScheduler
- hp3par_domain 配置选项在 Havana 版本中已弃用,但未正式删除。它不起作用。
OpenStack Telemetry (Ceilometer)
主要新特性
- API 添加
- 任意复杂的查询约束组合,用于计量器、样本和警报
- 用于发现存储驱动程序特定功能的 capabilities API
- 可选择的聚合,用于统计信息,包括新的基数和标准差函数
- 直接访问与特定计量器分离的样本
- 事件 API,风格类似于 StackTach
- 警报改进
- 时间约束的警报,提供根据一天中的时间和星期几提高或降低阈值的灵活性
- 排除样本计数异常低的弱数据点
- 基于磁盘和网络的派生速率计量器,更适合基于阈值的警报
- 集成触点
- 将收集器拆分为仅负责消耗外部通知的通知代理
- 可插拔资源发现的管道配置重新设计
- 可配置的原始通知有效负载的持久性,风格类似于 StackTach
- 存储驱动程序
- HBase 和 SQLAlchemy 和 DB2 驱动程序中的功能奇偶性接近
- 资源查询优化
- HBase:添加警报支持
- 新的计量来源
- Neutron 北向 API 在 SDN 控制器上
- VMware vCenter Server API
- 通过 SNMP 的硬件计量
- OpenDaylight REST API
已知问题
- SQLAlchemy 存储驱动程序在扩展的收集器服务上运行时,在 PostgreSQL 上存在问题:https://bugs.launchpad.net/ceilometer/+bug/1305332
- HBase 存储驱动程序报告截断的计量器列表:https://bugs.launchpad.net/ceilometer/+bug/1288284
- HBase 存储驱动程序无法与 HappyBase 0.7 版本一起工作
- 由计算代理引起的 nova-api 服务上的过度负载:https://bugs.launchpad.net/ceilometer/+bug/1297528
升级说明
- 现有的收集器服务已通过新的通知代理增强,该代理也必须在升级后启动。
- MongoDB 存储驱动程序现在需要 MongoDB 安装版本为 2.4 或更高版本(Havana 的下限为 2.2),请参阅 升级说明。
OpenStack Orchestration (Heat)
主要新特性
- HOT 模板:HOT 模板格式 现在被支持,作为编写 heat 模板的推荐格式。
- OpenStack 资源:现在已经有足够的资源类型覆盖,可以移植任何模板到 原生 OpenStack 资源
- 软件配置:新的 API 和资源允许使用各种技术和工具执行软件配置
- 非管理员用户:现在可以无需管理员用户凭据即可启动任何堆栈。请参阅有关通过配置堆栈域用户来启用此功能的升级说明。
- Operator API:云操作员现在拥有一个专用的管理员 API,可以对所有堆栈执行操作
- 自动伸缩资源:OS::Heat::AutoScalingGroup 和 OS::Heat::ScalingPolicy 现在允许对任意资源集合进行自动伸缩
- 通知:Heat 现在为堆栈状态更改和自动伸缩触发等事件发送 RPC 通知
- Heat 引擎伸缩:现在可以跨多个 heat-engine 实例共享编排负载。锁定由可插拔的分布式锁协调,默认锁插件基于 SQL。
- 使用 get_file 进行文件包含:内置函数 get_file 由 python-heatclient 和 heat 使用,允许将文件附加到堆栈创建和更新操作,这对于在单独的文件中表示配置文件和嵌套堆栈非常有用。
- Cloud-init 资源:OS::Heat::CloudConfig 和 OS::Heat::MultipartMime
- 堆栈放弃和采用:现在可以放弃堆栈,这会从 Heat 中删除堆栈,而不会删除实际的 OpenStack 资源。由此产生的放弃数据也可以用于采用堆栈,这会基于已经存在的 OpenStack 资源创建新的堆栈。对于 Heat 的 Icehouse 版本,采用应被视为一个实验性功能。
- 堆栈预览:stack-preview 操作返回一个资源列表,这些资源预计将在使用提供的模板创建堆栈时创建
- 新资源:本版本中实现了以下新资源
- OS::Heat::CloudConfig
- OS::Heat::MultipartMime
- OS::Heat::SoftwareConfig
- OS::Heat::SoftwareDeployment
- OS::Heat::StructuredConfig
- OS::Heat::StructuredDeployment
- OS::Heat::RandomString
- OS::Heat::ResourceGroup
- OS::Heat::AutoScalingGroup
- OS::Heat::ScalingPolicy
- OS::Neutron::SecurityGroup
- OS::Neutron::MeteringLabel
- OS::Neutron::MeteringRule
- OS::Neutron::ProviderNet
- OS::Neutron::NetworkGateway
- OS::Neutron::PoolMember
- OS::Nova::KeyPair
- OS::Nova::FloatingIP
- OS::Nova::FloatingIPAssociation
- OS::Trove::Instance
已知问题
- 堆栈更新操作期间的任何错误(例如,来自瞬态云错误、heat 错误或用户模板错误)都可能导致堆栈进入不可恢复的错误状态。目前,仅建议在可以从错误中恢复(通过删除和重新创建堆栈)的情况下尝试堆栈更新。
- 新的 stack-adopt 操作应被视为一个实验性功能
- CFN API 在所有错误时返回 HTTP 状态码 500 (bug 1291079)
- 由于卷分离竞争,删除包含卷附加的堆栈可能需要尝试多次 (bug 1298350)
升级说明
请阅读有关 Heat 的安全模型 的通用说明。
请参阅以下有关延迟身份验证方法和堆栈域用户的章节。
已弃用的资源
以下资源在本版本中已弃用,未来可能会删除
- OS::Neutron::RouterGateway 不应再使用。请使用 OS::Neutron::Router 的 `external_gateway_info` 属性。
延迟身份验证方法
从 Icehouse 开始,默认的 deferred_auth_method 的 password 已被弃用,因此虽然它仍然是默认值,但强烈建议部署者迁移到使用 deferred_auth_method=trusts,该方法计划成为 Juno 的默认值。此模型具有以下优点
- 它避免在 heat 数据库中存储用户凭据
- 它消除了在堆栈创建时提供密码以及令牌的需要
- 它限制了 heat 服务用户代表用户可以执行的操作。
要为延迟操作启用 trusts
- 确保配置为使用 OS-TRUST 扩展 的 keystone 服务 heat。
- 在
/etc/heat/heat.conf中设置deferred_auth_method = trusts - 可选地,指定要委派给 heat 服务用户的角色(
trusts_delegated_roles在heat.conf中,默认为heat_stack_owner,将在以下说明中引用。您可能希望修改此角色列表以适应您的本地 RBAC 策略) - 确保要委派的角色存在,例如,运行
keystone role-list时存在heat_stack_owner - 创建 heat 堆栈的所有用户都应在其创建堆栈的项目中拥有此角色。heat 将在堆栈创建时在堆栈所有者(创建堆栈的用户)和 heat 服务用户之间创建一个 trust,将
heat_stack_user角色委派给 heat 服务用户,以用于堆栈的生命周期。
请参阅 此博客文章 以获取更多详细信息。
堆栈域用户
为了启用非管理员创建某些资源,需要在部署时进行一些配置,以创建一个 keystone 域和域管理员用户,否则 Heat 将回退到以前的行为,但此回退行为可能在 Juno 中不可用。
$OS_TOKEN refers to a token, e.g the service admin token or some other valid token for a user with sufficient roles to create users and domains. $KEYSTONE_ENDPOINT_V3 refers to the v3 keystone endpoint, e.g http://<keystone>:5000/v3 where <keystone> is the IP address or resolvable name for the keystone service
步骤摘要
- 使用 python-openstackclient 创建一个“heat” keystone 域(keystoneclient CLI 接口不支持域)
openstack --os-token $OS_TOKEN --os-url=$KEYSTONE_ENDPOINT_V3 --os-identity-api-version=3 domain create heat --description "Owns users and projects created by heat"
这将返回一个域 ID,在下面称为 $HEAT_DOMAIN_ID
- 为“heat”域创建一个域管理员用户
openstack --os-token $OS_TOKEN --os-url=$KEYSTONE_ENDPOINT_V3 --os-identity-api-version=3 user create --password $PASSWORD --domain $HEAT_DOMAIN_ID heat_domain_admin --description "Manages users and projects created by heat"
这将返回一个用户 ID,在下面称为 $DOMAIN_ADMIN_ID
- 通过添加该域的 admin 角色来使该用户成为域管理员
openstack --os-token $OS_TOKEN --os-url=$KS_ENDPOINT_V3 --os-identity-api-version=3 role add --user $DOMAIN_ADMIN_ID --domain $HEAT_DOMAIN_ID admin
- 使用域 ID 以及域管理员用户的用户名/密码更新 heat.conf
stack_domain_admin_password = <password> stack_domain_admin = heat_domain_admin stack_user_domain = <domain id returned from domain create above>
请参阅 此博客文章 以获取完整详细信息。
OpenStack 数据库服务 (Trove)
主要新特性
- 用户/模式管理
- 用户可以通过 Trove API 对 MYSQL 用户和模式进行 CRUD 管理
- Flavor / Cinder Volume 调整大小
- 调整定义 Trove 实例的 flavor 的大小
- 如果数据存储需要更大的 volume,则调整可选的 Cinder Volume 大小
- 多数据存储支持
- 对 MySQL 和 Percona 的完全功能支持
- 对 MongoDB、Redis、Cassandra 和 Couchbase 的实验性(非完全功能)支持
- 配置组
- 定义要附加到新实例或现有实例的一组配置选项
- 备份和恢复
- 在数据存储上执行本机备份软件,并将输出流式传输到 swift 容器
- 完全和增量备份
- 通过 designate 的可选 DNS 支持
- 定义是否为实例配置 DNS 的标志
已知问题
尚无
升级说明
- Trove Conductor 是一个新的守护程序,用于代理来自客户机的数据库通信。需要安装并运行它。
- 新的 Datastores 功能要求操作员定义(或删除)您的安装将支持的数据存储
- 新的 Configuration Groups 功能允许操作员为特定的数据存储定义一组配置选项
OpenStack 文档
主要新特性
- 《操作指南》现在有一个 升级章节 和一个 网络故障排除章节。
- 新的手册:命令行界面参考
- 《最终用户指南》现在包含一个 Python SDK 章节。
- 《完整 API 参考》已更新为响应式设计,您可以 下载完整的参考 PDF。
- 四个安装指南已更新了示例架构,包括 OpenStack Networking、改进的基本配置,并且已在各个发行版上进行了更全面的测试。