1. 程式人生 > >Neutron Kilo-Liberty-Mitaka各版本區別

Neutron Kilo-Liberty-Mitaka各版本區別

作者: 趙怡

新增的特性:

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.

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

模組/檔名

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中被共享

vpnaas

vpn_endpoint_groups.py

L版無該功能

支援VPN endpoint組

vpnaas.py

vpnservices中增加了欄位external_v4_ip,external_v6_ip

ipsec_site_connections中支援local_ep_group_id, peer_ep_group_id

四、L版合入的BP:

實現了28個blueprint,解決了558個bug

五、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 vpn

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

  具體配置區別暫略 ...