本系列文章同步發布於筆者網站
前幾篇筆者介紹了 OpenStack 在使用 Linux Bridge 和 Open vSwitch plug-in 下的相關架構,這篇我們要來介紹一個比較新,架構比較不一樣的 Neutron Plug-in,OVN。
OVN 可以說是一個透過 OVS 建立虛擬網路的分散式 SDN controller。以下回一些 OVN 所能提供的功能
OVN 不只有 OpenStack Neutron 的 plugin implementation (networking-ovn) 同時也有提供給 Kuberenetes 使用的 CNI plugin。
OVN 包含下列元件:
OVN Northbound Database 負責接收來自 CMS (Cloud management system) 的網路設定,CMS 可以是 OpenStack, Kubernetes 或是其他支援的系統。
ovn-northd 連接到上游的 OVN Northbound Database 跟下游的 OVN Southbound Database。它負責將 OVN Northbound Database 裡面以常規網路概念 (Router, switch) 等的邏輯設定轉換成 OVN Northbound Database 中的 logical datapath flows。
OVN Southbound Database 是 OVN 整個架構的核心,向上連接到 ovn-northd,向下連接到所有節點上的 ovn-controller。
OVN Southbound Database 儲存三種資料:
Hypervisors 會負責提供 PN 和 Port Binding tables 的資料,而 ovn-northd 提供 Logical Network (LN) tables 的資料。
ovn-controller(8) 是 OVN 在每個 hypervisor 上的 agent 和 software gateway。向上連接到 OVN Southbound Database 了解 OVN 設定和狀態並提供 PN 和 Port Binding tables 的資料。
而 ovs-vswitchd 和 ovsdb-server 是原本 OVS 就有的元件,一個負責控制網路流量,一個負責監控並且管理 Open vSwitch 設定。
以上大概就是 OVN 大致的概念以及其組成元件,在下一篇我們會介紹 OVN 如何跟 OpenStack 做結合