本系列文章同步發布於筆者網站
上一篇講述了 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。