OpenStack Q版本已经发布了一段时间了。今天, 小编来总结一下OpenStack Q版本核心组件的各项主要新功能, 再来汇总一下最近2年来OpenStack N、O、P、Q各版本核心组件的主要新功能。仅供参考, 如有遗漏、错误请指正。
1.1 Q版新功能总结
Q版相对于P版, 主要还是各功能的增强和优化, 其中主要功能有: 计算组件中的vGPU支持、冷迁移至指定主机、PCI NUMA亲和性、卷共享等,镜像组件中的web方式导入镜像, 网络组件中的浮动IP QoS、DVR/DHCP增强,块存储组件中的异步克隆卷,编排组件中对Octavia lbaas的编排和对项目标签的编排。
以上功能中计算的vGPU、冷迁移指定主机、PCI NUMA亲和性、卷共享以及网络的浮动IP限速在NFV和边缘计算场景比较有用。另外, 从API角度来看, 变化不大, 废弃了部分老API版本,API版本支持情况可以参考文末的附表。
1.1.1 重要功能汇总如下:
身份认证(keystone): 新增统一配额管理, 提供对用户的第三方应用程序进行身份注册和认证服务, 增加新的作用域: 系统级。
计算(Nova): 新增虚拟机对vGPU的支持, 冷迁移时可以指定主机, 支持PCI设备的NUMA亲和性, 支持挂载1个卷到多个虚拟机上。
镜像(Glance): 交互式镜像导入中增加web-download方式
网络(Neutron): 支持浮动IP的QoS限速, 增加新的DVR agent type: dvr_no_external。
块存储(Cinder): 支持异步克隆卷。
编排(Heat): 支持当栈创建/更新取消时进行回滚, 支持Octavia lbaas和项目的标签。
OpenStack各版本核心组件重要新增功能汇总
1.2 身份认证Keystone
1.2.1 Q版新功能:
1、新增: 统一配额管理, 把各模块单独的配额限制控制移到keystone统一管理, 并新增对应的API。该功能目前为试验性质的。
2、新增: 提供对用户的第三方应用程序进行身份注册和认证服务(Application Credentials)。
3、新增: 增加新的作用域(scope): 系统(system)。现在作用域分为三级: 系统(system), 域(domain), 项目(project)。
4、新增: 支持项目的标签, 用于过滤和搜索
5、废弃: policies API。Keystone目前不做策略管理。
6、废弃: /OS-FEDERATION/projects, /OS-FEDERATION/domains, 使用/v3/auth/projects和/v3/auth/domains代替。该API在Juno就已经被标记为废弃。
1.2.2 P版新功能:
1、优化: 注册默认策略, 使运维更容易维护策略文件
2、优化: 增强保存在SQL中的密码安全性, 使用更安全的hash
1.2.3 O版新功能:
1、新增: 每用户多因素身份验证规则(MFA规则), 可以指定在 Keystone 发出令牌之前使用多种认证方式。 例如,一些用户可能只需要密码,而其他用户则必须提供基于时间的一次性密码和另一种身份验证形式。
2、新增: 自动配置联合身份, 当用户登录联合系统时, Keystone 将动态地为该用户创建角色
优化: 验证过期的令牌:现在,耗时长的操作(如上传快照)将不会失败了。 你可以配置每个项目是否接受过期的令牌。
1.2.4 N版新功能:
1、新增: REST API 支持了证书加密
2、优化: 简化的配置步骤
1.3 计算Nova
1.3.1 Q版新功能
1、新增: 虚拟机初步支持vGPU。目前还有不少限制, 处于试验阶段: 一个计算节点只能支持1种类型的vGPU, 挂起虚拟机/调整虚拟机大小/迁移还不能分配vGPU, NVIDIA GRID显卡有vGPU使用个数的限制等问题。
2、新增: 冷迁移时可以指定主机
3、新增: 支持PCI设备的NUMA亲和性, 支持3种类型的策略: required(必须使用), legacy(如果支持的话就使用), preferred(希望使用)。
4、新增: 支持挂载1个卷到多个虚拟机上, 该卷创建时必须把multiattach置为true。
5、优化: 重建虚拟机时增加新的参数key_name及user_data, 可以在重建时重新设置或者删除密钥及user_data。
6、优化: 对部分API增加、优化了分页支持
7、优化: 对VMware虚拟机增加了优雅关闭的方式(graceful shutdown)
8、优化: 修正cell_v2中的部分问题。 cell_v2中增加delete_host属性, 可以把host从cell中删除。 另外, 在cell_v2 delete_cell中增加选项force, 可以强制删除整个cell, 而不管cell是否有host。
9、优化: 对下列虚拟机动作增加记录: attach_interface, detach_interface, attach_volume, detach_volume, swap_volume, lock, unlock, shelveOffload, createBackup, createImage.
10、优化: 对flavors的API增加描述description字段
11、优化: nova-novncproxy服务可以配置TLS安全证书和VNC server进行加密通信
12、优化: 支持新的厂商libvirt卷存储挂载驱动: StorPool。
13、废弃: Nova将不再支持Block Storage(Cinder) v2 API。
14、废弃: 废弃Nova API extension, os_compute_api:XXX
1.3.2 P版新功能
1、新增: 支持Cell v2的多Cell部署, 可以使用Cell v2 API创建多Cell环境, 适应更大规模集群。废弃Cell v1 API。
2、新增: 支持卷的multi-attach、支持卷动态伸缩、支持卷作为临时盘
3、新增: 防止虚拟机占用宿主机上的所有物理CPU,通过使用 reserved_host_cpus 配置项来为 hypervisor 预留部分CPU
4、优化: 支持在故障时,自动将自己进行隔离
5、优化: 支持通过ironic virt驱动对裸机网卡的添加和删除
6、优化: 优化配额管理,在配额不足时,提前给出提示而不是报错
7、优化: 优化PCI设备调度,避免无PCI请求的虚拟机调度到具备PCI设备的主机上
1.3.3 O版新功能
1、优化: Nova过滤器和调度器现在将会使用 Placement API,它会根据 CPU/内存/磁盘容量来过滤计算节点。
2、优化: Nova现在将会在所有部署中使用 Cell v2; 目前每个部署只支持一个Cell
3、优化: 现在是默认网络选项为neutron网络
4、优化: 增强升级能力, 使用新的 “nova-status upgrade check” CLI 命令来查看升级到 Ocata 所需做的事情。
1.3.4 N版新功能
1、新增: 自动网络配置, 可以让用户一键配置网络, 简化虚拟机配置
2、新增: Placement API,给用户更好的可见性,以及资源的控制,例如资源提供者、库存、分配和使用记录
3、新增: Cells v2,可以将你的数据中心合并为统一的管理,以及很好的扩展性。相比于上个版本,进行了大的改动,并完成了全部的特性。
4、优化: 可变的配置,允许管理员在Nova服务启动时更改配置即可生效,不再需要重新启动
1.4 镜像Glance
1.4.1 Q版新功能
1、新增: 交互式镜像导入中增加web-download方式, 即从远端URL中下在镜像
2、新增: 加入一个新的plugin, 可以自动把镜像元数据在交互式镜像导入过程中, 注入到非管理员创建的镜像中
3、废弃: glance registry服务和相关API被废弃, S版本时将会被移除。
注: glance-registry用于存储、处理、获取Image Metadata,通过响应从glance-api发送过来的Image Metadata REST Request,然后与MySQL进行交互,实现Image Metadate的存储、处理、获取。 v1的实现上,有glance-api和glance-registry两个WSGI 服务,都提供REST API,只不过glance-API的REST API对外使用,glance-registry的API只由glance-api使用。而 v2在实现上,把 glance-registry 的功能合并到了 glance-api 中,减少了一个中间环节。
1.4.2 P版新功能
新增: 增加交互式镜像导入方式,目前只支持glance-direct方式,即直接从文件导入镜像。直接导入镜像的流程包含3部分:
1. 使用镜像创建api创建镜像记录并得到镜像id。
2.通过镜像暂存(Stage) API上传镜像到暂存区域。
3.执行镜像导入调用, 完成镜像导入。
1.4.3 O版新功能
1、优化: 镜像的公开性增强, 用户现在可以创建可供其他人使用的'社区'镜像。 您还可以将镜像设置为'共享'给指定用户。
2、优化: 加强Keystone中的多重认证, 在Keystone中改善对MFA的支持,包括OTP(一次性密码)支持和每用户令牌过期规则。
1.4.4 N版新功能
1、新增: Glance Artifact仓库:Glare,可以提供不仅仅是镜像的支持
2、优化: 为永久快照提供的信任机制有效避免长时间运行的操作错误。
3、优化: 新增默认的限制性访问策略,意味着默认都是锁定的,除非用户作了明确的授权。
1.5 网络Neutron
1.5.1 Q版新功能
1、新增: 支持浮动IP的QoS
2、新增: 增加新的DVR agent type: dvr_no_external, 该模式使得浮动IP流量在南北向(DNAT)路由时为集中式处理, 而东西向路由时为分布式处理。
3、新增: 可在dhcp agent的配置项中配置dhcp的renewal和rebinding时间
4、优化: 可通过模糊匹配IP地址来过滤出端口
5、优化: 可通过agent配置项, 配置隧道外层报头中的dscp值
6、优化: 通过配置项, 外层报头中的dscp可继承自内层报头中的dscp值
7、优化: ovs agent支持通过ssl方式连接ovsdb服务, 增强了安全性
8、废弃:linuxbridge中的tos配置项被废弃, 使用更精确的配置项dscp
1.5.2 P版新功能
1、新增: 支持ovs驱动通过SR-IOV实现硬件卸载, ovs现在可直接绑定SR-IOV端口
2、优化: 优化性能和稳定性, 优化基于ovs的防火墙的稳定性; 优化neutron服务端和L2 agent之间通信, 降低neutron的服务端负载; 减少更新资源产生竞争的可能性;减少Metadata代理的内存使用
3、优化: 优化QoS, 支持ovs和 linux bridge驱动中的双向限速; 支持SR-IOV的出口带宽限制规则; 支持对路由器网关的限速;支持查看QoS规则类型详情
4、优化: 优化分布式路由(DVR)相关功能, 包括多个bug修复, 支持DVR快速退出等, 并增强稳定性
5、优化: 支持O版本无缝升级到P版, 提高可维护性
6、优化: 每个网络可单独配置MTU, 可以更改
7、优化: 支持为每个Port配置独立的DNS Domain
8、优化: 所有主要资源都可配置用户自定义标签
1.5.3 O版新功能
1、新增: 支持linux bridge qos的出方向最小带宽限速, 和dscp marking
2、优化: vhost-user机制增强, 支持重连
3、优化: 资源标记TAG功能支持子网、端口、子网池及路由器
4、优化: 对dhcp的ipv6模式进行了不少改进
5、优化: 新增keepalived vrrp 健康检查特性,增强master router到所有网关之间的连接验证。
1.5.4 N版新功能
1、新增: 支持vlan aware vms (即vlan trunk), 支持虚拟机之间带VLAN转发, 主要用于NFV等场景
2、新增: 支持对DHCP和L3 agent的可用域, 允许用户指定哪个节点上使用相关网络服务。
3、新增: 支持QoS功能, 支持对虚拟机端口、网络的限速和dscp marking。
4、新增: 支持基于角色的网络访问控制(RBAC), 允许其他项目访问自己的资源。
5、新增: 支持自动创建网络, 简化创建虚拟机时需要配置网络信息的步骤。只需要事先指定默认的外部网络和subnet pools, 创建虚拟机时, 可以让neutron自动根据默认配置, 创建网络,子网,分配ip, 路 由器, 连接外网。
6、新增: 支持查询网络及其子网的所有ip个数和使用过的ip个数
7、新增: 支持部分网络资源的描述、tag标签、创建、更新的时间戳
8、优化: API服务支持不间断升级
1.6 块存储Cinder
1.6.1 Q版新功能
1、新增: 支持异步克隆卷
2、新增: 支持新的策略: 不允许mutiattach操作
3、新增: 通过备份创建卷
4、优化: 支持快照的可用域过滤
5、优化: 支持和优化更多的厂家设备驱动: DataCore’s SANsymphony, Hyper-converged Virtual SAN storage, Inspur InStorage, VMware VStorageObject, VMDK, Dell EMC VMAX等等。
6、废弃: Cinder API v1在Juno版时, 现在完全删除。
7、废弃: 一致性组API被废弃, 可以使用通用卷组API。
8、废弃: 废弃并删除多个卷驱动: Block device driver, Blockbridge, Coho, FalconStor FSS, Infortrend, QNAP, Reduxio, Tegile, Violin, X-IO, ZTE, Hitachi HNAS, HBSD, VSP等。
1.6.2 P版新功能
1、新增: 支持”还原到快照” (revert to snapshot)功能,允许用户将卷数据回滚到上一次做快照的时间点
2、新增: 支持对正在被使用的卷进行热伸缩。 只限于libvert驱动,并限于iscsi和fc卷
3、新增: 支持对volume type进行更多的权限控制
4、优化: "复制组"(replication group)功能, 允许普通用户操作"复制组", 并有众多厂商驱动优化对”复制组”的支持
5、优化: 对分布式锁的使用
6、优化: 修复多个厂商驱动中的Bug
7、优化: 多后端环境中可单独为每个后端配置可用域
1.6.3 O版新功能
1、新增: 支持将一个卷附加给多个虚机功能,该功能预计在下一个版本中发布
2、新增: 支持主/主 HA, Cinder 现在可以运行在主/主群集模式下,来防止并发操作冲突。与过去的版本相比,Cinder 还优化了过程中出现的服务失败的处理过程
1.6.4 N版新功能
1、优化: 微版本,允许开发者在毋需破坏大版本的情况新增新的特性。
2、优化: 回滚更新,Newton之后的版本可以直接更新而无需动整个云平台。
3、优化: 配置项新增enabled_backends,对卷的创建定义了哪些后端类型。
4、优化: 可以重新更换加密的卷为不加密的,在创建之后再更改回来。
5、优化: 删除卷及其快照,使用了级联的特性,而不是首先删除快照。
6、优化: Cinder的备份服务现在可以扩展为多个实例,拥有了更佳的灵活性和扩展性。
1.7 编排Heat
1.7.1 Q版新功能
1、新增: 支持当栈创建/更新取消时不进行回滚
2、新增: Zun容器资源中增加hostname, hints, security_groups, mounts属性。
注: ZUN于 2016年6月建立。Zun的目标是提供统一的Openstack API用于启动和管理容器,支持多种容器技术。
3、新增: 支持Octavia Lbaas Service的编排, 包括: OS:Octavia:LoadBalancer, OS:Octavia:Listener, OS:Octavia:Pool, OS::Octavia:PoolMember, OS:Octavia:HealthMonitor, OS:Octavia:L7Policy, OS:Octavia:L7Rule
4、新增: 支持项目(租户)的tag标签的编排
5、新增: 支持OS:Trove:Cluster中配置网络资源
6、优化: 修复"强制删除'SOFT-DELETED'状态的虚拟机但是删除不了"的问题
7、废弃: 使用OS:Aodh:GnocchiAggregationByResourcesAlarm来替代OS:Aodh:Alarm.
8、废弃: 使用 OS:Designate:Zone和OS:Designate:RecordSet来替代OS:Designate:Domain和OS:Designate:Record
1.7.2 P版新功能
1、新增: 支持对Neutron:Trunk (即VLAN Trunk) 的编排
2、新增: 支持对网络主要资源标签的配置
3、新增: 支持创建虚拟机时, 使用’自动分配网络’
4、新增: 支持Nova:ServerGroup的策略: 弱亲和性(soft-affinity)和反弱亲和性(soft-anti-affinity)
1.7.3 O版新功能
新增: 新增通知和应用程序工作流。 使用OS::Zaqar::Notification来订阅Zaqar队列中的通知, 或使用OS::Zaqar::MistralTrigger来只订阅Mistral通知。
1.7.4 N版新功能
1、新增: 可以使用DNS解析, 并支持整合外部的DNS。
2、优化: 使用属性external_id attribute来访问额外的资源。
1.8 OpenStack各版本的API区别
另外, 小编注意到了从P版开始Ceilometer API就废弃了,使用aodh(alarms)、gnocchi(metrics)、Panko(events)替代。
从API表格来看, 各组件的API接口演进比较平滑, 新版本一般都能通过协商机制来兼容老版本,这给我们的环境升级带来了极大的方便。
1.9 参考文档
https://releases.openstack.org/queens/index.html
OpenStack各版本发布时间及EOL
Series | Status | Initial Release Date | Next Phase | EOL Date | 组件数 | 组件 |
---|---|---|---|---|---|---|
Austin | End Of Life | 2010年10月21日 |
| 2 | Nova, Swift | |
Bexar | End Of Life | 2011年2月3日 |
| 3 | Nova, Glance, Swift | |
Cactus | End Of Life | 2011年4月15日 |
| 3 | Nova, Glance, Swift | |
Diablo | End Of Life | 2011年9月22日 |
| 2013年5月6日 | 3 | Nova, Glance, Swift |
Essex | End Of Life | 2012年4月5日 |
| 2013年5月6日 | 5 | Nova, Glance, Swift, Horizon, Keystone |
Folsom | End Of Life | 2012年9月27日 |
| 2013年11月19日 | 7 | Nova, Glance, Swift, Horizon, Keystone, Quantum, Cinder |
Grizzly | End Of Life | 2013年4月4日 |
| 2014年3月29日 | 7 | Nova, Glance, Swift, Horizon, Keystone, Quantum, Cinder |
Havana | End Of Life | 2013年10月17日 |
| 2014年9月30日 | 9 | Nova, Glance, Swift, Horizon, Keystone, Neutron, Cinder, Heat, Ceilometer |
Icehouse | End Of Life | 2014年4月17日 |
| 2015年7月2日 | 10 | Nova, Glance, Swift, Horizon, Keystone, Neutron, Cinder, Heat, Ceilometer, Trove |
Juno | End Of Life | 2014年10月16日 |
| 2015年12月7日 | 11 | Nova, Glance, Swift, Horizon, Keystone, Neutron, Cinder, Heat, Ceilometer, Trove, Sahara |
Kilo | End Of Life | 2015年4月30日 |
| 2016年5月2日 | 12 | Nova, Glance, Swift, Horizon, Keystone, Neutron, Cinder, Heat, Ceilometer, Trove, Sahara, Ironic |
Liberty | End Of Life | 2015年10月15日 |
| 2016年11月17日 | 17 | Nova, Glance, Swift, Horizon, Keystone, Neutron, Cinder, Heat, Ceilometer, Trove, Sahara, Ironic, Zaqar, Manila, Designate, Barbican, Searchlight |
Mitaka | End Of Life | 2016年4月7日 |
| 2017年4月10日 | 18 | Nova, Glance, Swift, Horizon, Keystone, Neutron, Cinder, Heat, Ceilometer, Trove, Sahara, Ironic, Zaqar, Manila, Designate, Barbican, Searchlight, Magnum |
Newton | End Of Life | 2016年10月6日 |
| 2017年10月25日 | 32 | Nova, Glance, Swift, Horizon, Keystone, Neutron, Cinder, Heat, Ceilometer, Trove, Sahara, Ironic, Zaqar, Manila, Designate, Barbican, Searchlight, Magnum, aodh, cloudkitty, congress, freezer, mistral, monasca-api, monasca-log-api, murano, panko, senlin, solum, tacker, vitrage, Watcher |
Ocata | Extended Maintenance | 2017年2月22日 | Unmaintainedestimated TBD | 32 | Nova, Glance, Swift, Horizon, Keystone, Neutron, Cinder, Heat, Ceilometer, Trove, Sahara, Ironic, Zaqar, Manila, Designate, Barbican, Searchlight, Magnum, aodh, cloudkitty, congress, freezer, mistral, monasca-api, monasca-log-api, murano, panko, senlin, solum, tacker, vitrage, Watcher | |
Pike | Maintained | 2017年8月30日 | Extended Maintenanceestimated | 2019年3月3日 | 32 | Nova, Glance, Swift, Horizon, Keystone, Neutron, Cinder, Heat, Ceilometer, Trove, Sahara, Ironic, Zaqar, Manila, Designate, Barbican, Searchlight, Magnum, aodh, cloudkitty, congress, freezer, mistral, monasca-api, monasca-log-api, murano, panko, senlin, solum, tacker, vitrage, Watcher |
Queens | Maintained | 2018年2月28日 | Extended Maintenanceestimated | 2019年8月25日 | 39 | Nova, Glance, Swift, Horizon, Keystone, Neutron, Cinder, Heat, Ceilometer, Trove, Sahara, Ironic, Zaqar, Manila, Designate, Barbican, Searchlight, Magnum, aodh, cloudkitty, congress, freezer, mistral, monasca-api, monasca-log-api, murano, panko, senlin, solum, tacker, vitrage, Watcher, blazar, ceilometer-powervm, karbor, octavia, storlets, tricircle, zun |
Rocky | Maintained | 2018年8月30日 | Extended Maintenanceestimated | 2020年2月24日 | 43 | Nova, Glance, Swift, Horizon, Keystone, Neutron, Cinder, Heat, Ceilometer, Trove, Sahara, Ironic, Zaqar, Manila, Designate, Barbican, Searchlight, Magnum, aodh, cloudkitty, congress, freezer, mistral, monasca-api, monasca-log-api, murano, panko, senlin, solum, tacker, vitrage, Watcher, blazar, ceilometer-powervm, karbor, octavia, storlets, tricircle, zun, Cyborg, ec2-api, Masakari, Qinling |
Stein | Development | 2019年4月10日 | estimated(schedule) |
————————————————————————————————————————————————————————————————————————————
Openstack各组件的作用
aodh | Telemetry Alarming services | 遥测报警服务 |
---|---|---|
barbican | Key Manager service | 秘钥管理器服务 |
blazar | Resource reservation service | 资源预定服务 |
ceilometer | Telemetry Data Collection service | 遥测数据收集服务 |
cinder | Block Storage service | 块存储服务 |
cloudkitty | Rating service | 评级服务 |
congress | Governance service | 治理服务 |
designate | DNS service | DNS服务 |
glance | Image service | 形象服务 |
heat | Orchestration service | 业务流程服务 |
horizon | Dashboard | 指示板 |
ironic | Bare Metal service | 裸金属服务 |
karbor | Data Protection Orchestration Service | 数据保护编制服务 |
keystone | Identity service | 身份服务 |
magnum | Container Infrastructure Management service | 集装箱基础设施管理服务 |
manila | Shared File Systems service | 共享文件系统服务 |
mistral | Workflow service | 工作流服务 |
murano | Application Catalog service | 应用程序目录服务 |
neutron | Networking service | 网络服务 |
nova | Compute service | 计算服务 |
octavia | Load-balancer service | 负载平衡器服务 |
qinling | Function as a Service for OpenStack | 作为OpenStack服务的函数 |
sahara | Data Processing service | 数据处理服务 |
senlin | Clustering service | 集群服务 |
solum | Software Development Lifecycle Automation service | 软件开发生命周期自动化服务 |
swift | Object Storage service | 对象存储服务 |
tacker | NFV Orchestration service | NFV编排服务 |
tricircle | Networking automation across Neutron service | 中子服务的网络自动化 |
trove | Database service | 数据库服务 |
watcher | Infrastructure Optimization service | 基础设施优化服务 |
zaqar | Messaging service | 消息传递服务 |
zun | Containers service | 集装箱服务 |
ceilometer-powervm | ||
Cyborg | ||
ec2-api | ||
freezer | ||
Masakari | ||
monasca-api | ||
monasca-log-api | ||
panko | ||
Searchlight | ||
storlets | ||
vitrage |