近期浏览了nova L版本的bp,简单总结了下。
主题 | 背景 | 链接 | 级别 | 备注 |
---|---|---|---|---|
nova-api-policy | 权限检查的地方不一致,有的在compute api层,有的在rest api层,还有的在db层,代码不统一,举例: pause server,在REST API layer: pause server “compute_extension:admin_actions:pause”,在compute api层pause in compute API “compute:pause”,在db层require_admin_context decorator for db API service_get | https://blueprints.launchpad.net/nova/+spec/nova-api-policy-final-part | High | |
liberty-bump-object-and-rpcapi-versions | 使用Micro版本号后,许多基于以前大版本机制的object和rpc api需要去掉 | https://blueprints.launchpad.net/nova/+spec/liberty-bump-object-and-rpcapi-versions | High | |
nova-api-deprecate-extensions | v2 版本的API包括extensions,根据用户需要可以使能或禁止使用,这样会导致云的部署是异构的,保证稳定API的提供的前提下,需要在下个release版本中将这些API去掉,此BP先将这些API废弃掉 | https://blueprints.launchpad.net/nova/+spec/nova-api-deprecate-extensions | High | |
liberty-objects | 遗留的关于object的转变和维护工作 | https://blueprints.launchpad.net/nova/+spec/liberty-objects | High | |
liberty-olso-sync | 1)policy;2)oslo-config-generator;3)oslo.service库;rootwrap后台模式,等等,nova使用oslo | https://blueprints.launchpad.net/nova/+spec/liberty-olso-sync | High | http://lists.openstack.org/pipermail/openstack-dev/2015-June/067131.html |
api-relax-validation | v2版本的API将来会废弃和去掉,但是现在对v2版本的检查和v2.1一样,都是强检查,这样就导致v2版本的API请求返回很多invalid的结果,对tempest测试有影响,为了减少这些影响,对v2版本的API检查放松。 | https://blueprints.launchpad.net/nova/+spec/api-relax-validation | High | |
online-schema-changes | 1)数据库的迁移必须在离线的状态下进行;2)部署过程中会有很长时间的downtime;3)迁移动作涉及到2处:nova的数据库model和升级脚本 | https://blueprints.launchpad.net/nova/+spec/online-schema-changes | High | expand/contract workflow |
use-os-brick-library | nova和cinder在volume的发现和去除存在重复的代码,cinder组开发了os-brick库,nova要用此库替代重复的代码 | https://blueprints.launchpad.net/nova/+spec/use-os-brick-library | High | |
nova-no-downward-sql-migration | 数据库向后migration引入的问题更多 | https://blueprints.launchpad.net/nova/+spec/nova-no-downward-sql-migration | High | 参考https://github.com/openstack/openstack-specs/blob/master/specs/no-downward-sql-migration.rst |
request-spec-object | scheduler模块中的方法比如select_destinations()需要参数request_spec,它是嵌套的字典,仅存留在内存中,不易跟踪和查看,需要使用数据库对象进行存储,这样也是为后续scheduler代码的分离做准备 | https://blueprints.launchpad.net/nova/+spec/request-spec-objec | High | 部分完成 |
make-resource-tracker-use-objects | nova使用对象的方式替换掉了nova-compute使用nova-conductor API更新数据库的方式,本bp解决resource_tracker相关剩余的修改 | https://blueprints.launchpad.net/nova/+spec/make-resource-tracker-use-objects | High | 相关工作已经在kilo中进行,但未能完全改好。 |
run-nova-services-under-apache2 | 受keystone的触发,keystone所有的服务可以跑在Apache2下,即运行在httpd中(不知有什么好处?集中?),nova也准备这么做,此bp仅增加脚本,针对nova-api服务,支持DevStack。 | https://blueprints.launchpad.net/nova/+spec/run-nova-services-under-apache2 | Medium | 实验性质 EXPERIMENTAL support script for running Nova API under Apache2 etc |
service-version-number | nova使用object来支持数据的在线migration,服务之间操作数据库,相关的数据必须要和服务的code一致才可以migration,此bp增加服务版本号 | https://blueprints.launchpad.net/nova/+spec/service-version-number | Medium | |
nova-python3 | nova所有依赖包均已支持python3,此bp使得nova支持python3,同时不影响python2 | https://blueprints.launchpad.net/nova/+spec/nova-python3 | Medium | |
cells-host-mapping | nova已经划分为cells,目前没有host和cell的映射关系表。 | https://blueprints.launchpad.net/nova/+spec/cells-host-mapping | Medium | |
cells-instance-migration | nova已经划分为cells,增加nova-manage对instance和cell的注册关系,便于查询,nova-manage cell_v2 register_instances | https://blueprints.launchpad.net/nova/+spec/cells-instance-migration | Medium | |
convert-image-meta-into-nova-object | 为了统一nova驱动之间使用image属性的方式,增加NovaObject - VirtDriverImageProperties | https://blueprints.launchpad.net/nova/+spec/convert-image-meta-into-nova-object | Medium | |
migration-fix-resource-tracking | 虚拟机在多个计算节点之间进行迁移、resize、重生等操作时,resource_tracker存在bug:1)热迁移和重建过程中并未考虑resource的claim;2)NUMA拓扑和pci设备不像cpu一样,仅需claim即可,但需要持续查看是否真的成功。 | https://blueprints.launchpad.net/nova/+spec/migration-fix-resource-tracking | Medium | |
no-valid-host-reporting | 当虚拟机部署时,没找到合适主机时,提示的信息不完全,不便于定位,此bp进行改进 | https://blueprints.launchpad.net/nova/+spec/no-valid-host-reporting | Medium | |
use-oslo-objects | 使用oslo.versionedobjects | https://blueprints.launchpad.net/nova/+spec/use-oslo-objects | Medium | |
robustify-evacuate | 增强evacuate流程,比如主机名发生变化,重生即可触发,导致数据丢失,记录时间戳 | https://blueprints.launchpad.net/nova/+spec/robustify-evacuate | Medium | 重用migration data structure |
oslo-config-generator | oslo组已经放弃了老的config的管理方式openstack/common/config. | https://blueprints.launchpad.net/nova/+spec/oslo-config-generator | Medium | |
allocation-ratio-to-resource-tracker | CPU/MEM应该体现计算的超分的能力,而不应该是scheduler的策略。当host aggregate也配置了超分比率时,会出现重复计算覆盖的情况。 | https://blueprints.launchpad.net/nova/+spec/allocation-ratio-to-resource-tracker | Medium | |
mark-host-down | nova-compute服务down的时间比较慢,一般是60秒,这样导致evacuate执行要等的时间较长。此BP增加新的API能使服务立即down掉。 | https://blueprints.launchpad.net/nova/+spec/mark-host-down | Medium | |
devref-refresh-liberty | “更新nova相关文档http://docs.openstack.org/infra/manual/developers.html | |||
https://github.com/openstack/project-team-guide” | https://blueprints.launchpad.net/nova/+spec/devref-refresh-liberty | Medium | 部分完成 | |
nova-rootwrap-daemon-mode | nova中好多的实现,调用oslo.rootwrap, 而后者依赖linux的命令执行,以root用户在计算和网络节点上执行命令,这样命令执行的效率是很重要的考虑点。在neutron中将rootwrap作为后台进程执行,效果不错。Nova目前受此影响较少,因为调用libvirt api 比较多。但还是需要进行修改。 | https://blueprints.launchpad.net/nova/+spec/nova-rootwrap-daemon-mode | Medium | |
test-collapse-v2-and-v21 | 目前v2和v2.1功能测试用例和sample文件都是分离的。为减少维护量v2均merge到v2.1. | https://blueprints.launchpad.net/nova/+spec/test-collapse-v2-and-v21 | Medium | |
consolidate-console-api | 目前支持虚拟机的控制台:VNC, SPICE, RDP and serial,每一种都对应一个API,重复,且不易维护,此bp增加新的API,重构,统一入口 | https://blueprints.launchpad.net/nova/+spec/consolidate-console-api | Low | |
metadata-service-network-info | metadata服务提供的网络信息较少,需要改进。 | https://blueprints.launchpad.net/nova/+spec/metadata-service-network-info | Low | 提供IP,MAC,网关,路由等 |
vif-driver-ib-passthrough | InfiniBand Ethernet SRIOV 设备更加普遍,性能也高,neutron Mellanox Ml2 Mechanism Driver 已经实现,nova 需要增加对这些设备的支持 | https://blueprints.launchpad.net/nova/+spec/vif-driver-ib-passthrough | Low | |
db2-database | 增加DB2作为后端数据库 | https://blueprints.launchpad.net/nova/+spec/db2-database | Low | |
libvirt-macvtap-vif | neutron新实现的macvtap ml2 driver和agent需要nova vif集成。 | https://blueprints.launchpad.net/nova/+spec/libvirt-macvtap-vif | Low | |
add-locking-information-in-server-get-response | 虚拟机可以被管理员或者拥有者锁定,但没有API提供查看虚拟机是否被锁定 | https://blueprints.launchpad.net/nova/+spec/add-locking-information-in-server-get-response | Low | |
add-vif-net-id-in-vif-list | 在v2.1 的 interfaces list中增加VIF net_id的显示 | https://blueprints.launchpad.net/nova/+spec/add-vif-net-id-in-vif-list | Low | |
admin-query-any-keypair | 目前keypairs只能由拥有者查看或者修改,管理员应该也有权限 | https://blueprints.launchpad.net/nova/+spec/admin-query-any-keypair | Low | |
allow-ip6-search-for-non-admin | 目前只有管理员通过ipv6的地址查看虚拟机,普通用户应该也支持,和ipv4地址过滤的机制一样。 | https://blueprints.launchpad.net/nova/+spec/allow-ip6-search-for-non-admin | Low | |
cells-scheduler-anti-affinity-filter | 增加一种过滤器,能部署虚拟机到指定的cell上。 | https://blueprints.launchpad.net/nova/+spec/cells-scheduler-anti-affinity-filter | Low | |
check-flavor-type-before-add-tenant | 公共的flavor可以增加tenant access,但查看报错,此bp在增加tenant access前先检查是否是public | https://blueprints.launchpad.net/nova/+spec/check-flavor-type-before-add-tenant | Low | |
consolidate-libvirt-fs-volume-drivers | 目前libvirt volume的文件系统类型的驱动包括NFS、GlusterFS、SMBFS、Quobyte,有很多相似的代码,此bp抽象出基类,然后供各自覆盖使用,统一各种接口。考虑到cinder中对应后端的配置项不好统一,nova中仍然保留原来的。 | https://blueprints.launchpad.net/nova/+spec/consolidate-libvirt-fs-volume-drivers | Low | |
emc-sdc-libvirt-volume-driver | 增加libvirt volume 驱动支持EMC ScaleIO | https://blueprints.launchpad.net/nova/+spec/emc-sdc-libvirt-volume-driver | Low | |
vmware-limits | 目前vmware驱动支持设置CPU限制,此bp扩展到内存、磁盘、网卡限制 | https://blueprints.launchpad.net/nova/+spec/vmware-limits | Low | 部分完成 |
libvirt-set-admin-password | 1.2.16版本的libvirt提供了针对QEMU/KVM用户设置管理员密码的API,利用起来 | https://blueprints.launchpad.net/nova/+spec/libvirt-set-admin-password | Low | 增加镜像属性os_admin_user |
hyper-v-test-refactoring-liberty | 老的Hyper-V的测试代码难以维护,需要重构 | https://blueprints.launchpad.net/nova/+spec/hyper-v-test-refactoring-liberty | Low | |
remote-fs-driver | 当虚拟机迁移时,会调用SSH touch,ssh mkdir,ssh rm,rsync,这些接口都会带来安全风险,目前不能都不使用,但可以减少使用的数量。 | https://blueprints.launchpad.net/nova/+spec/remote-fs-driver | Low | 增加配置项,区分ssh和rsync |
vif-type-tap | 支持Calico项目,即虚拟机直接通过host的网卡,而无需经过桥 | https://blueprints.launchpad.net/nova/+spec/vif-type-tap | Low | |
optional-on-shared-storage-flag-in-rebuild-instance | 重生(evacuate)接口中有必选参数onSharedStorage,但这个属性可以在virt驱动获取到,为减轻管理员的工作和重生的自动化,需要去掉,但考虑到RPC接口的兼容性,将此参数做成可选的。 | https://blueprints.launchpad.net/nova/+spec/optional-on-shared-storage-flag-in-rebuild-instance | Low | |
vmware-webmks-console | vSphere 5.5 支持HTML5的控制台,不存在现有控制台比如VNC的问题:部署难、伸缩难、安全性低,在nova virt驱动支持WebMKS | https://blueprints.launchpad.net/nova/+spec/vmware-webmks-console | Low | |
pass-down-instance-name-to-ironic-driver | ironic增加了HP OneView的新驱动,nova需要将instance的display_name传递给ironic使用。 | https://blueprints.launchpad.net/nova/+spec/pass-down-instance-name-to-ironic-driver | Low | display_name 区分大小写,而hostname不区分。 |
cleanup-scheduled-at | nova的instances表中scheduled_at字段被launched_at字段代替,前者变得冗余,需要去掉 | https://blueprints.launchpad.net/nova/+spec/cleanup-scheduled-at | Low | |
rename-pcs-to-virtuozzo | Parallels Cloud Services已经改名,nova virt驱动也需要进行改名。 | https://blueprints.launchpad.net/nova/+spec/rename-pcs-to-virtuozzo | Low | 为了兼容,将新Virtuozzo更换成parallels。 |
show-reserved-status-in-os-fixed-ips-api | fix ips 的API增加显示reserved状态 | https://blueprints.launchpad.net/nova/+spec/show-reserved-status-in-os-fixed-ips-api | Low | nova-manage废弃,v2的API也被冻结,仅修改V2.1 |
vmware-swap-support | nova Vmware驱动增加对swap盘的支持 | https://blueprints.launchpad.net/nova/+spec/vmware-swap-support | Low | |
vmware-nsxv-support | nova增加对VMware NSXv Neutron 插件的支持,包括:1)VNIC 索引;2)元数据支持 | https://blueprints.launchpad.net/nova/+spec/vmware-nsxv-support | Low | |
vmware-driver-domain-metadata | nova Vmware驱动增加对元数据的支持 | https://blueprints.launchpad.net/nova/+spec/vmware-driver-domain-metadata | Low | metadata放到config_spec中的annotation字段 |
vmware-console-log | nova Vmware驱动增加对控制台日志的支持 | https://blueprints.launchpad.net/nova/+spec/vmware-console-log | Low | 借助vCenter中的Virtual Serial Port Concentrator,将日志放到特定的文件夹中,支持文件最大设置等 |
virtuozzo-container-boot-from-volume | 目前从卷启动Virtuozzo容器(vm_mode=exe),当挂载2个盘时会生成错误的xml配置文件,一个是文件系统,另一个是boot盘,但是错误的order。 | https://blueprints.launchpad.net/nova/+spec/virtuozzo-container-boot-from-volume | Low | |
project-id-in-metadata | 元数据增加项目ID | https://blueprints.launchpad.net/nova/+spec/project-id-in-metadata | Low | |
/aggregatetypeaffinityfilter-multi-value-support | AggregateTypeAffinityFilter增加对多个instance_type的支持 | https://blueprints.launchpad.net/nova/+spec/aggregatetypeaffinityfilter-multi-value-support | Low | |
network-template-routes-injection | 虚拟机部署时,网络没有设置DHCP时,需要将路由注入到interfaces.template | https://blueprints.launchpad.net/nova/+spec/network-template-routes-injection | Low | 使用python的字符串模板功能 |
add-os-brick-volume-driver-hgst-solutions | nova volume驱动增加HGST硬盘的支持 | https://blueprints.launchpad.net/nova/+spec/add-os-brick-volume-driver-hgst-solutions | Low | |
libvirt-virtio-net-multiqueue | virtio-net多队列特性能改善性能,在flavor的spec中增加hw_vif_mutliqueue_enabled,使能/禁止,如果开启,会设置队列的数量和guest的VCPU数相同。 | https://blueprints.launchpad.net/nova/+spec/libvirt-virtio-net-multiqueue | Low | |