Neutron Kilo-Liberty-Mitaka各版本区别

作者: 赵怡


一、Neutron Kilo版和Liberty版本主要区别:

新增的特性:

1. neutron支持IPv6前缀委托授权为IPv6子网分配CIDR

2. neutron支持QoS API, 初期只支持端口带宽限制

3.路由器HA (L3 HA/VRRP)在L2 population(l2_pop)设置为enable时, 可以正常工作了。

4. VPNaaS参考驱动现在可以和HA router一起正常工作了

5. HA路由器上使用的VRRP网络, 可以配置为特定的segmentation类型或者物理网络tag。

6. OVS agent重启, 不会影响数据网络的连接。

7. 新增基于角色的网络访问控制(role based access control (RBAC) for networks)

8. LBaaS V2参考驱动现在基于Octavia平台

9. LBaaS V2 API不再是实验性的, 而是稳定版本了

10. neutron给管理员提供手动调度agent, 便于测试

11. 提供可插拔式的IP address management框架, 可使用第三方IPAM。

 

废弃和删除的plugins和驱动:

1. metaplugin被移除

2. IBM SDN-VE monolithic plugin被移除

3. Cisco N1kV monolithic plugin被移除, 被ML2机制驱动取代

4. Embrane plugin被废弃, 在Mitaka版本会被移除

 

废弃的特性:

1. FWaaS API被标为实验性质的, M版将会被移除, 新版的FWaaS API将会在M版取代老版的。

2. LBaaS V1 API被标记为废弃的, 准备在未来版本中移除, 并将被LBaaS V2 API取代。

3. L3 agent中的'external_network_bridge'选项将被废弃

 

性能:

1. Linux kernel(3.13): 'ip netns exec'命令在namespace增长的情况下, 性能表现出了明显下降。3.19版本以上版本修复该问题。

2. 使用Octavia驱动创建LBaaS负载均衡时, 如果不使用硬件虚拟化, 会很慢。原因是在不使用硬件虚拟化的场景下, QEMU使用TCG加速器而不是KVM加速器。尽量在计算节点上使用硬件虚拟化。

 

 

其他相关模块状态:

1. 从自研的WSGI框架转为pecan wsgi框架。

2. 发布正式项目: aodh v1.0.0. 为ceilometer的一个报警引擎。

3. 发布正式项目: barbican v1.0.0: 密钥管理

4. 发布正式项目: designate v1.0.0. 提供DNS服务。

5. 发布正式项目: manila v1.0.0: 云端共享文件服务

6. 发布正式项目: zaqar v1.0.0: 消息队列服务。开发者可以在不同的SaaS模块或移动应用之间发送消息。

7. 容器编排项目: magnum. 在kilo版时发布了第一个版本。

L版目前没有发布版本。Magnum 在设计上,希望调用其它的容器管理平台的 API 来实现功能,自身作为一套API 框架,目前支持 Docker、Kubernetes、Swarm 等。主要优势包括多租户、多后端框架、完善的容器功能、支持资源调度等。如果说 Nova 是一套支持不同Hypervisor (KVM、VMWare 等虚拟机平台)的 API 框架,那么 Magnum 则是支持不同容器机制的 API 框架。

8. Dragonflow还未发布版本, 文档上看到准备在L版发布版本。

 华为以色列团队开发 , 在网络节点上集成一个controller agent作为控制器 , 计算节点上取消l3-agent, 通过控制器给计算节点 l2-agent下发三层openflow 流表来实现。

9. puppet-neutron发布6.10版, 没有更新CHANGELOG.用来自动部署openstackneutron.

 

二、Neutron Liberty版和Mitaka版本主要区别:

l  增加SSL连接选项到designate external dns driver

l  支持配置WSGI greenthreads pool

l  各物理网络上的多个NIC可以用于SR-IOV

l  改进默认MTU配置。默认把path_mtu置为1500, 'advertise_mtu'置为True, 通过DHCP可以考虑到VXLAN overhead问题, 自动设置为1450.

l  LinuxBridge agent可以支持基本的port, network QoS限速功能

l  外部网络可以被RBAC框架所控制

l  DHCP agent可以被指定到一个可用域中

l  L3 agent可以被指定到一个可用域中。HA router可以使用, 但DVR目前不支持, 因为L3HA和DVR集成工作还未完成。

l  nova可以自动创建网络, 不需要人为手动创建网络资源。

l  浮动IP可以关联dns_name和dns_domain属性

l  Port可以关联dns_name属性, Network可以关联dns_domain属性

l  浮动IP和端口会在外部DNS service中发布, 如果它们有关联dns_name和dns_domain属性的话

l  提供可以集成neutron和designate的参考驱动

l  当port bind fail是由于l2 agent下线导致的话, 当l2 agent上线时, port bind将会恢复

l  支持QoS策略在不同租户的subnet之间共享

l  安全组策略, 网络, 端口, 路由器, 浮动IP, subnet pools现在可以有一个可选的描述信息供用户填写

l  用户可以在网络资源上配置tag标签

l  网络资源可以使用tag来过滤. 支持"tags", "tags-any", "not-tags"和"not-tags-any"

l  对neutron核心网络资源network, subnet, port,subnetpool加入创建, 更新的时间戳

l  允许非管理员用户定义"外部"自定义路由。

l  租户子网,浮动ip主机路由通过BGP发布. BGP 支持:Neutron 目前支持将租户子网和浮动 IP 以及路由网关或者浮动 IP 代理网关(DVR 情况下)发布为 BGP 的下一跳;

l  对address scope加入额外属性告诉用户address scope在哪个网络里

l  支持DVR SNAT上的HA

l  qemu/kvm实力可以通过MaVtap桥模式添加到网络上

l  支持获得网络上可用的ip和使用过的ip个数

l  RPC和通知消息放入不同的队列中

l  neutron服务支持相应SIGUSR2消息,打印内部调试信息到标准错误输出

l  新的安全组防火墙驱动引入。基于OpenFlow,使用了connection track

l  neutron支持keystone v3

 

三、extensions API区别:

模块/文件名

L版本与K版本区别

M版本与L版本区别

Neutron

address_scope.py

新增功能。用于区分和标示subnetpools, 同一个address scope下的subnetpools不能重叠, 同时必须为同一个地址族。

增加ip_version字段以及Networks(包括IPV4_ADDRESS_SCOPE和IPV6_ADDRESS_SCOPE)

agent.py

"description"字段, 改为string_or_none, 可以为none. 原来是string.

无区别

allowedaddresspairs.py

无区别

无区别

auto_allocated_topology.py

L版无该功能

自动通过auto_allocated_topology获得一个network id, 用来当作启动虚拟机的网络, 简化操作, 省去了用户自己创建网络,子网,选择网络这些操作。

availability_zone.py

L版无该功能

支持对DHCP和L3 agent的可用域, 允许用户指定哪个节点上使用相关网络服务。

bgp_dragenscheduler.py

L版无该功能

L3 router中加入动态路由, 支持BGP路由发现和通告

bgp.py

L版无该功能

同上

default_subnetpools.py

L版无该功能

支持在subnet中标记默认subnetpool

dhcpagentscheduler.py

无区别

无区别

dns.py

新增功能。 ports api上新增配置DNSNAME, DNSASSIGMENT

增加了对浮动IP和网络的接口, 并增加了对DNS name的字符串合法性检查

dvr.py

无区别

无区别

external_net.py

无区别

无区别

extra_dhcp_opt.py

无区别

无明显区别, 改进了对extra dhcp opt的合法性检查

extraroute.py

无区别

无区别

flavor.py

删除文件

无明显区别, 改进了参数的合法性检查

flavors.py

新增功能。用来定义service type和service profile。当前的service provider框架可以让用户选择服务时使用多个底层驱动, 但其中是有一些问题。flavor提供了一个机制, 让operator选择驱动, 驱动metadata,  flag.

   Flavor

id: uuid name: string description: text service: LOADBALANCER, VPN, FIREWALL, L3_ROUTER, etc supported_extensions: comma separated value string selection_algorithm: Enum(random, available, least_used) service_profiles: [(uuid list, weight)] (JSON list) enabled: boolean

Service Profile

id: uuid description: text driver: string metainfo: string(json encoded dict) enabled: boolean

无区别

l3_ext_gw_mode.py

无区别

无区别

l3_ext_ha_mode.py

无区别

无区别

l3.py

floatingips字段增加了subnet_id, 可以选择subnet来创建floating ip

无区别

l3agent_scheduler.py

无区别

无区别

metering.py

对tenant_id增加了必须为string且长度为TENANT_ID_MAX_LEN的验证要求

无区别

multiprovidernet.py

无区别

无区别

netmtu.py

无区别

无区别

network_availability_zone.py

L版无该功能

Network中支持可用域

network_ip_availability.py

L版无该功能

提供IP可达性信息

portbindings.py

增加了baremetal的vnic类型

无区别

portsecurity.py

无区别

无区别

providernet.py

无区别

无区别

qos.py

新增文件。增加了qos限速相关API. 可以对network或者port做QoS限速。policy+rule方式, 目前只有限速:bandwidth_limit_rules.

无区别

quotasv2.py

无区别

无区别

rbac.py

新增文件。Role-Based Access Control for Networks. 新增基于角色访问网络, 网络通过角色定义来共享给一组特定租户。可以在企业和私有云部署中使用。

无区别

router_availability_zone.py

L版无该功能

Router中支持可用域

routerservicetype.py

无区别

无区别

securitygroup.py

1. 对tenant_id增加了必须为string且长度为TENANT_ID_MAX_LEN的验证要求

2. sg支持的协议中增加了ICMP_V6协议。

无区别

servicetype.py

无区别

无区别

standardattrdescription.py

L版无该功能

对以下资源表项增加了标准的描述: security_group_rules, security_groups, ports, subnets,networks, routers, floatingips, subnetpools

subnetallocation.py

无区别

无区别

tag.py

L版无该功能

支持对network资源配置tag标签

timestamp_core.py

L版无该功能

对neutron的一些核心资源(如net, subnet, port and subnetpool), 支持保存创建和更新时间, 用于DEBUG

vlantrasparent.py

无区别

无区别

fwaas

fireall.py

1. FW action中除了ALLOW, DENY以外, 增加了REJECT

2. name, description字段增加了长度限制

默认firewall的租户配额从无限制改为10个

默认firewall_policy的租户配额从无限制改为10个

默认firewall_rule的租户配额从无限制改为100个

firewallrouterinsertion.py

无区别

无区别

Lbaas

l7.py

L版无该功能

增加了对7层policy的支持

lbaas_agentscheduler.py

无区别

无区别

lbaas_agentschedulerv2.py

无区别

无区别

loadbalancer.py

无区别

 vLB API v1无变化。

无区别

loadbalancerv2.py

default_tls_container_id字段名改为default_tls_container_ref

sni_container_ids字段名改为sni_container_refs

 

vLB v2部分,L版比K版多了两个API接口命令,分别是:

lbaas-agent-hosting-loadbalancer LOADBALANCER, 查看指定的loadbalancer又哪一个agent来监管。

lbaas-loadbalancer-list-on-agent LBAAS_AGENT, 查看指定的agent上监管了哪些loadbalancer。

loadbalancers中增加了flavor_id

members中增加了name

 

shared_pools.py

L版无该功能

允许pools在listeners中被共享

aas

 

_endpoint_groups.py

L版无该功能

支持VPN endpoint组

aas.py

services中增加了字段external_v4_ip,external_v6_ip

ipsec_site_connections中支持local_ep_group_id, peer_ep_group_id

 

四、L版合入的BP:

https://launchpad.net/neutron/liberty/7.0.0

实现了28个blueprint,解决了558个bug

Lbaas, use Octavia as reference implementation

Neutron IPAM

支持与第三方IPAM系统集成。

Reference IPAM driver

将IPAM代码重构,不改逻辑。

Replace WSGI framework with Pecan

用Pecan替代WSGI架构

Add enable_new_agents to neutron server

添加配置项,不进行初始化,用于测试新部署的网络节点。

Add integration-tests framework for Neutron.

集成测试。

Internal DNS Resolution

之前虚拟机的host name是neutron自动分配的,通过dnsmasq配置到虚拟机中。现在host name可以是虚拟机的名字。port中新增dns_name字段。

Neutron QoS API extension

实现qos功能

Online Schema Migrations

支持在线迁移

Provide better user-facing mechanism to chose service capabilities

Reliable quota enforcement

Reorganize Unit Test Tree

Role-based Access Control for Networks

support ipv6 prefix delegation

subnet可以配置一个ipv4子网范围,而且使可以重复的。但是ipv6不行,因为ipv6是全局路由,不能重叠。所以为了方便使用提出了prefix delegation机制实现prefix自动分配。

DPDKOVS - ML2 DPDK OVS Support

支持DPDK加速OVS实现ML2。

ML2/OVS QoS support with bandwidth limiting

qos

Neutron-Ironic Integration

支持baremetal环境中TOR switch实现的端口绑定LAG,通过将LLDP信息和LAG信息送给Neutron,使其感知provider network。

Porting Neutron to Python 3

支持python 3。

Set optional csum attribute on ovs tunnels

OVS 2.4支持option:csum以提高vxlan性能。

add conntrack management to security group

安全组支持conntrack,提高安全性。

ML2 Plugin QoS API extension support

qos

Enable spoofchk control for SR-IOV ports

在SRIOV端口上支持配置MAC欺骗检查。使用ip link命令。在bond端口上配置时比较有用。

ML2 extension for ONOS

在networking-onos项目中,实现ml2的onos driver。onos控制器北向接口与neutron集成。

OVS agent: Use python binding instead of ovs-ofctl command

用ofctl存在缺陷:1.性能低;2.不支持异步消息。改用ryu控制器实现ofagent监听TCP端口。ovs中与控制器建立长连接。支持openflow v1.3和nicira扩展。配置of_interface为ovs-ofctl或native(即ofagent)。

Support external physical bridge mapping in linuxbridge

支持利用原有的接口(用户定义的接口)实现ext-bridge(以前要新创建个)。在linuxbridge中新增配置项bridge_mappings,默认为空。检查端口如果存在,使用这个端口,否则创建一个这样的端口。

fwaas-reject-rule

keep dns nameserver order consistency

dns nameserver配置支持优先级:

neutron subnet-update [subnet_id] --dns_nameservers list=true 1.1.1.1 2.2.2.2 3.3.3.3

onos-neutron-interaction

onos

 

五、M版合入的BP:

Provide better user-facing mechanism to choose service capabilities

LBaaS plugin can delegate VIP allocation to drivers

allow multiple subnets to connect to

enable vhost-user support with ovs agent

Add Guru Meditation Report Functionality to Neutron

Add availability zones for agents

Automatically generate etc/neutron.conf file

Clean up resources when a tenant is deleted

External DNS Resolution

Get Me a Network

Modular L2 Agent

Restructure L2 agent

Improve DVR router sheduling mechanism for better performance/scalability

Introduce Address Scopes

ML2/LinuxBridge QoS support with bandwidth limiting

Add tags to core resources

Add timestamp to neutron resources

Adds a network-ip-usage api to fetch network and subnet IP usage counts

LBaaS Layer 7 rules

Role-based Access Control for QoS policies

Router Extension for Dynamic Routing Using BGP

 

六、L版的配置项改动:

L2相关配置项改动:

   ovs-agent:

       新增:  of_interface, 可选:ovs-ofctl, native,默认ovs-ofctl, OpenFlow interface to use.

                   datapath_type, 可选system, netdev,默认system,OVS datapath to use.

                  of_listen_address, 默认127.0.0.1,只给native用, Address tolisten on for OpenFlow connections.

                   of_listen_port,默认6633, 只给native用, Port to listenon for OpenFlow connections.

                  of_connect_timeout,默认30,只给native用, Timeout in seconds to wait forthe local switch connecting the controller.

                  of_request_timeout,默认10,只给native用,Timeout in seconds to wait for asingle OpenFlow request. 

                  drop_flows_on_start, 默认False, Reset flow table on start.Setting this to True will cause brief traffic interruption.

                   tunnel_csum,默认False, Set or un-set the tunnelheader checksum  on outgoing IP packet carrying GRE/VXLAN tunnel.

                   agent_type, 默认Open vSwitch agent,即将被删除,Selects the Agent Typereported

 

   dhcp-agent:

       新增:

               force_metadata, 默认False, Force to use DHCP to get Metadata on all networks.

               dnsmasq_base_log_dir, 保存dhcp和dns日志,即dnsmasq日志。

       废弃:

               dhcp_domain, openstacklocal,挪到neutron.conf,并更名为dns_domain

               dhcp_delete_namespaces, 默认值修改为True,即将废弃

 

   metda-agent:

       新增:

               endpoint_url,默认值None, Neutron endpoint URL, ifnot set will use endpoint     from the keystone catalog along withendpoint_type

 

   neutron:

       新增:

               dns_domain, 默认值openstacklocal, Domain to use for building the hostnames

               ipam_driver, 默认值None,IPAM driverto use

 

七、M版的配置项改动:

       现在M版的config文件都是自动通过脚本生成的。

       neutron项目中, 增加了如下配置文件: bgp_dragent.ini, macvtap_agent.ini, ml2_conf_sriov.ini,sriov_agent.ini

       需要通过类似如下命令生成配置文件:

       oslo-config-generator--namespace oslo.messaging \

                         --namespace nova.common \

                         --namespacenova.compute > nova-compute.conf

      

  具体配置区别暂略 ...

你可能感兴趣的:(云计算,openstack,neutron)