Nova Liberty blueprints

近期浏览了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

你可能感兴趣的:(nova,liberty,blueprints)