從裸機到雲端:OpenStack Neutron 介紹 — OVN vs OVS

Auto Draft

上一篇講述了 OVN Plug-in 在 OpenStack 中的參考架構,本篇要來比較在 OpenStack Neutron 中使用 OVN 跟 OVS 的主要差異

架構面

這個從官方 FAQ 中翻譯的表格可以很清楚的看出 OVN 跟 OVS 的架構面差異

項目 ml2/ovs ml2/networking-ovn
agent/server 之間的溝通 RabbitMQ message + RPC NorthBound 跟 SouthBound databases 之間的 ovsdb protocol
l3HA API 在 deployment 的時候可以設定 router 中的 ha field 以便開啟或關閉 l3HA 在有多個 network node 時自動開啟 HA 功能
DVR API router 中只能被 admin 修改的的 distributed 設定 沒有可被 distributed 設定,預設即為 distributed
DVR dataplane 使用 compute node 上的 namespaces, veths, ip routing, ip rules 和 iptables 使用 compute node 的 OpenFlow rules
E/W traffic 在沒開啟 DVR 的狀態下會經過 network nodes 在所有狀況下都為分散式,直接在 compute node之間傳輸
Metadata Service Metadata service 透過 network nodes 上的 qrouters 或 dhcp namespaces 提供 Metadata 是由各自 compute node 上的 ovnmeta-xxxxx-xxxx-namespace 提供
DHCP Service 透過 dnsmasq 的 qdhcp-xxxxx-xxx namespaces 提供 DHCP 由 ovn-controller 和 OpenFlow 提供,並且是分散在各個 compute node
Trunk Ports Trunk ports 由建立 br-trunk-xxx bridges and patch ports 來提供 Trunk ports 在 br-int 透過 OpenFlow rules 來建立,與其連接的 port 會直接接到 br-int

可以看到 OVN 在設計的時候基本上都把 HA 功能考慮得很清楚並且已經內建在整個架構裡面,在部屬的時候不需要額外考慮高可用性架構。

效能

我們可以從 OpenStack Summit Boston 中的一個講題中稍稍一探 OVN 相較於 OVS 的效能比較。

從 Nova VM 建立的速度來看,OVN 相較於 OVS 都有 70% 以上的提升:

ML2/OVS (seconds) OVN (seconds) Improvement
Average 80.7 23.4 70.9%
95% 163.2 35.3 78.4%
Maximum 211.9 48.7 78.4%
Minimum 18.7 3.8 79.8%

可以看到其在 control plane 效能的增幅是非常高的。在這篇文章中有更多相關的測試。

至於 dataplane 也有人有做相關的測試,不過差別並不是很大,最主要的優點是在分散式架構所帶來的高可用性。

小結

在這篇我們從架構面還有實際效能方面比較了 OVN 跟 OVS 的差別,相信讀者們都可以比較了解 OVN 的優點以及為甚麼 OpenStack 大廠如 RedHat 現在推薦使用 OVN 當 OpenStack Neutron 的 Plug-in。在這麼多篇 Neutron 介紹相信讀者們對於 OpenStack 網路的部分都有更多的了解。下一篇我們預計會介紹 OpenStack 其中一個不起眼但是也是很重要的核心元件,Glance。


Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.

Leave a Reply