作者:Mirantis Nick Chase
发布日期:08/27
本周我们都在期待 OpenStack 第16个社区版本 Pike,它预计在08/30发布。现在是我们传统节目时间了,那就是从这个版本中概括出53个核心功能。
1. OpenStack 计算服务(Nova)
- Cells v2 多Cell部署:部署将默认使用单Cell;从这个版本开始,你可以使用 Cells v2 API 创建多Cell 的环境了,尽管它还有一些局限。Cells v1 现在被标记为被弃用了。
- 重写 Nova 配额系统,在资源被创建时计数:如果所申请的资源创建失败,你会得到错误;你不需要做任何改动就可以使用该功能。
- 利用 PCIWeigher 来更高效地利用资源:PCI 设备是一种特殊硬件,因此你需要确保只有真正需要这些设备的负载会运行在带有 PCI 设备的宿主机上。使用 [filter_scheduler] pci_weight_multiplier 配置项来防止非 PCI 负载被调度到带有 PCI 设备的节点上。
- 节点在不能正常工作时会自动从服务列表中移除,利用 [compute]/consecutive_build_service_disable_threshold 配置项。
- 防止虚机占用宿主机上的所有物理CPU,通过使用 reserved_host_cpus 配置项来为 hypervisor 预留部分CPU。
- Placement API 现在可以查看各种资源的定性“特征”,以更好地服务请求。
2. OpenStack 网络服务(Neutron)
Neutron PTL Kevin Benton 告诉我们需要关注以下几点:
- 支持从 Ocata 版本无缝升级到 Pike 版本
- 使用 haproxy 代替 neutron namespace proxy agent,以降低元数据代理服务器(metadata proxy server)上的内存使用
- 稳定性和性能优化
- 优化基于 OVS openflow 防火墙的稳定性
- 开始使用 Python3
- 优化服务端和 L2 agent 之间的通信方式,来降低 Neutron 服务器端负载
- 更新 Neutron HTTP API 中的条件比较和交换(Conditional compare-and-swap),为客户端提供竞争安全(race-safe)方式来更新资源
- DHCP 代理支持路由网络(routed network )的其他段上的子网
- QoS 改进
- 支持 QoS 扩展中的带宽限制规则,设置带宽速率限制
- OVS 和 Linux Bridge 驱动程序中的双向带宽限制 QoS 规则
- SR-IOV 的出口带宽限制规则
- 增加一个 API,获取已被加载的驱动所支持的 QoS 规则类型
- DVR 改进
- 支持可用性受限的外部网络(limited availability external networks )的部分分布式路由
- 修复 bug,使得可以在 VRRP 场景中使用与未绑定端口相关联的浮动IP
- 通过计算节点为不需要网络地址转换的数据包快速退出路由
- 支持配额 API 中的配额使用统计
- 支持为每个 Neutron 端口设置单独的 DNS 域
- 支持为每个网络设置 MTU
- 支持为所有标准 Neutron 资源设置用户自定义 tag
3. OpenStack 块存储服务(Cinder)
Cinder PTL Sean McGinnis 请我们关注以下几点:
- 添加了 “还原到快照” (revert to snapshot) 功能,允许用户将卷数据回滚到上一次做快照的时间点。
- 在某些情况下,我们支持对正在被使用的卷进行扩容。以前仅在卷未挂载到实例时才允许被扩容。现在,通过 Pike Cinder 与使用 libvirt 驱动的 Pike Nova 相配合,我们可以扩展使用中的卷,并将该更改反映到运行着的实例。
- 我们添加了 backend_default 配置部分。在此之前,如果您有一个配置项,想要应用于所有存储后端,那么就需要在每个后端的配置部分中添加该配置项。Pike 版本中,这个新的配置部分中的配置项可以被后端配置部分中的配置项的值所覆盖,或者被默认使用。
- 添加卷组复制(replication)支持。在此之前,管理员只能配置整个后端来进行复制。现在,通过使用此功能,用户就能够根据自己的需求(所有卷作为应用程序的一部分,例如仅限数据库卷等)定义一卷组(volume group),并将该卷组复制到辅助后端。目前,只有少数 Cinder 驱动程序支持该功能,但是它现在确实是可用了。我们期望在后续版本中有更多的后端支持此功能。
4. OpenStack 镜像服务(Glance)
- 通过使用新的 tasks_api_access 策略,来避免将 Tasks API 暴露给终端用户;这策略能够让 Glance 使用普通用户凭据来管理那些交互式映像导入任务。
5. OpenStack 编排服务(Heat)
Heat PTL Rico Lin 告诉我们,该项目增加了以下新资源,包括:
- Neutron Trunk 资源支持(OS :: Neutron :: Trunk)
- 支持新的 Magnum Cluster 和 Cluster Template 资源(OS :: Magnum :: Cluster 和 OS :: Magnum :: ClusterTemplate)
- 由 Mistral 工作流管理的自定义资源类型(OS :: Mistral :: ExternalResource)
- 添加 Zun Container 资源(OS :: Zun :: Container)
他还谈到在更新时可以使用 get_reality 功能:“您可以在更新 API 请求中使用 ‘converge’ 标志,此更新操作实际上会从服务(比如 nova 实例、cinder卷)中抽取资源并根据实际情况进行更新。 例如,我创建一个 m1.small 规格的实例,有人使用 nova API 对它进行更新,调整它的规格为 m1.large;使用 `converge` 标志后,Heat 会检测到该实例的 flavor 已经被更改,并将其改为原有规格 m1.small。”
6. OpenStack Dashboard 服务(Horizon)
- 就像我们已经可以从 Horizon 中下载 openrc 文件来配置 OpenStack 客户端一样,Pike 现在可以为 os-client-config下载 clouds.yaml文件。
- 在项目的网络详细信息表中,创建和删除网络中的端口。 (作为运维,您可以使用策略打开和关闭此功能。)
- 现在可以在添加安全组规则时指定 “any” IP 协议和 “any” 端口号
- 现在可以看到哪些安全组被应用到了哪些 Neutron 端口
7. OpenStack 身份认证服务(Keystone)
Keystone PTL Lance Bragstad 告诉我们以下是 Pike 版本中已完成的一些重点工作:
- 注册默认策略 - 这样可以使运维更容易维护策略文件,特别是当大部分时候使用默认值时
- 增强存储在SQL中的密码安全性 - SQL 身份后端已被更新,以支持更安全的密码 hash 机制,这更符合行业标准
8. OpenStack 对象存储服务(Swift)
Swift PTL John Dickinson 告诉我们,以下这些是 Pike 版本中 Swift 的一些主要新功能:
- 支持全局分布式纠删码,包括:
-
- 复制的纠删码片段
- 用于更精确数据放置的复合环(Composite rings)
- 针对每个策略的配置选项
- 全局纠删码是通过复制对象的纠删码片段来实现的。这种 “EC复制” 允许每个独立区域在跨区域的网络中断时也能正常工作,并且允许一个区域故障时使用远程区域进行恢复。
- 为了实现全局擦除码,我们首先必须支持“复合环”。复合环是由两个或多个“正常”环组成的数据放置环。组件环(component ring)是在不同的区域使用不同的设备独立构建的。以这种方式构建复合环允许更精确地分散副本或片段(例如,假设您有两个区域,您可以在每个区域中指定2副本从而总数为4副本,或者可以指定跨这两个区域使用 10 + 4 纠删码)。
- 我们还添加了基于每个策略覆盖 proxy 配置选项的功能。例如,这会允许为一些存储策略设置读取关联性。
9. OpenStack 计量服务(Ceilometer)
Telemetry PTL Julien Danjou 告诉我们Pike 中有新增以下内容:
- 支持 Manila
- 支持多种 SDN 控制器
10. OpenStack DNS 即服务 (Designate)
11. OpenStack 裸金属部署项目 (Ironic)
Ironic PTL Dmitry Tantsur 告诉我们 Pike 版本有如下新增功能:
- 从 Cinder 卷启动
- 物理网络感知
- 无缝/滚动升级
12. OpenStack 文件服务 (Manila)
- 为每种共享类型(share type)设置配额,以及为共享组的数目和共享组快照设置配额
- 增加了支持 IPV4 和 IPv6的文档和代码,包括 IPv6 地址校验,以及检测一驱动是否支持IPv4 或者 IPv6
13. OpenStack 容器项目 (Magnum)
- K8S 集群默认包含了 K8S 面板
- 包含了一个监控软件栈,包括 cAdvisor,node-exporter,Prometheus 和 Grafana,但它需要在被显式启用后才能使用
- 允许限制 Magunum trustID 的访问权限,这样 Magunum 就不能无限制地访问OpenStack 的任何服务了
14. OpenStack 应用目录项目 (Murano)
Murano PTL Felipe Monteiro 告诉我们 Pike 中有以下重要变化:
- 完成了 Policy 代码 https://review.openstack.org/#/c/469954/
- Murano 环境可以选择挂接哪个卷或者卷快照
15. OpenStack 大数据即服务 (Sahara)
Sahara PTL Telles Nobrega 告诉我们 Pike 中有以下重要变化:
- Pike 版本的一个主要功能是引入了新的镜像创建和验证系统。我们仍然需要使用 disk image builder 来制作大部分镜像,但是Pike 版本引入了 CDH。它允许用户使用 libguestfs 来创建镜像,而不再依赖于 DIB。
16. OpenStack 策略即服务 (Congress)
Congress PTL Eric K 告诉我们,Pike 版本聚焦于可使用性,特别是针对刚刚使用的人群。包括:
- 策略库(Policy library):一个管理员可以自定义和激活包含了一些有用策略的集成库,它允许管理员在学会如何撰写策略之前就能快速从 Congress 获益。
- 监控面板:这个监控面板一目了然地总结了环境中所有政策违规情况的数量及其严重性,并提供了详细信息。
17. OpenStack On OpenStack (TripleO)
TripleO PTL Emilien Macchi 告诉我们以下内容:
- Pike 版本周期内所做的主要工作是实现了由 TripleO 部署的服务的容器化
- 我们还支持从 Ansible 任务驱动的 Ocata 版本的裸机部署升级到 Pike 版本的容器化部署
- 在以前的版本中 TripleO 支持了可组合角色(Composable roles);现在,TripleO 支持了组合式网络(Composable network),因此运维人员能够根据所配置的角色来完全控制网络配置
18. OpenStack 工作流服务(Mistral)
Mistral PTL Renat Akhmerov 提到了以下几点:
- 完成了第一个版本的 Actions API(mistral-lib repo)
- 增强工作流变量发布(publishing workflow variables)功能(不同作用域、更灵活等)
- Mistral OpenStack actions 现在可以在不同的区域(region)内运行;Mistral action 现在可以直接在引擎(engine)中运行(不需要通过RPC请求executor服务执行)
以上就是我们总结的 Pike 版本中 53 项值得重点期待的内容,但是,这些只是 Pike 版本所有内容的一小部分而已。我们一起来期待 Pike 版本吧!