上一篇講述了 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 […]
Cloud
從裸機到雲端:OpenStack Neutron 介紹 — OVN 架構
上篇介紹了 OVN,本篇要來進入 OVN Plug-in 在 OpenStack 中的參考架構。 架構布局 參考架構中將 OVN 元件拆分成 4 個不同種類的節點各自負責不同任務 Controller Node Controller node 主要提供以下功能: 1 個 management interface 認證服務 (Keystone) 映像檔服務 (Glance) 透過 OVN ML2 mechanism driver 進行網路管理 (control plane) 運算資源管理 (Nova control plane) Database Node Database node 主要負責 OVN 相關 databse,包含以下元件: 1 個 management interface ovn-northd OVN northbound database OVN […]
從裸機到雲端:OVN 介紹
前幾篇筆者介紹了 OpenStack 在使用 Linux Bridge 和 Open vSwitch plug-in 下的相關架構,這篇我們要來介紹一個比較新,架構比較不一樣的 Neutron Plug-in,OVN。 Overview OVN 可以說是一個透過 OVS 建立虛擬網路的分散式 SDN controller。以下回一些 OVN 所能提供的功能 透過 L2 跟 L3 overlays 為 OVS 提供一個抽象層,同時可以管理與實體網路的連接 支援利用 OVS connection tracking 實現的靈活 ACL 支援透過 OVS flow 實現的分散式 L3 路由,同時支持 IPv4 和 IPv6 利用 OVS connection tracking 的 NAT 跟 Load balancing 分散式的 DHCP […]
從裸機到雲端:OpenStack Neutron 介紹 — OVS Self-service Networks
上篇介紹了 Open vSwitch with Provider Networks 的架構及封包流向,今天這篇會來介紹 Open vSwitch with self-serivce networks。 Open vSwitch: Self-service Networks 架構 上圖為 Open vSwitch – Self-service networks 架構下的整個架構總覽,可以看到那些元件是跑在 controller node 上,哪些是在 compute node 上,哪些是在 network node 上。 這張圖畫出了在單一 untagged (flat) provider network 和單一 self-service networks 下其中所使用的的元件是怎麼串接的。在這個範例中 Instance 跟 DHCP agent 是在同一台的,但是在實際狀況下 DHCP agent 有可能是在其他 compute node 上。 Traffic Flow […]
從裸機到雲端:OpenStack Neutron 介紹 — OVS Provider Networks
上篇介紹了 Neutron 使用 Linux Bridge plug-in 在不同狀況下的架構以及流向,接下來幾天會介紹 OVS plug-in 時的架構以及流量是怎麼流的。首先第一篇筆者會先來介紹 Open vSwitch with Provider Network。 Open vSwitch: Provider networks 架構 上圖為 Linux Bridge – Provider Networts 架構下的整個架構總覽,可以看到那些元件是跑在 controller node 上,哪些是在 compute node 上。 這張圖畫出了在單一 provider network (untagged/flat) 下 compute node 中的元件是怎麼串接的。在這個範例中 Instance 跟 DHCP agent 是在同一台的,但是在實際狀況下 DHCP agent 有可能是在其他 compute node 上。 在有多個 Provider networks […]
從裸機到雲端:OpenStack Neutron 介紹 — Linux Bridge – Self-Service Networks
上篇介紹了 Linux Bridge with Provider Network 的架構及封包流向,今天這篇會來介紹 Linux Bridge with self-serivce networks。 Linux bridge: Self-service Networks Self-service networks 提供使用者幾乎無限數量的虛擬網路。 Neutron 雖然有支援 VLAN self-service networks,但本例以 VXLAN self-service networks 為例。 架構 上圖為 Linux Bridge – Self-service networks 架構下的整個架構總覽,可以看到那些元件是跑在 controller node 上,哪些是在 compute node 上,哪些是在 network node 上。 這張圖畫出了在單一 provider network 下 self-service networks 中所使用的的元件是怎麼串接的。在這個範例中 Instance 跟 DHCP […]
從裸機到雲端:OpenStack Neutron 介紹 — Linux Bridge Provider Networks
上篇介紹了 Neutron 的架構,再接下來幾天會介紹 Neutron 使用 Linux Bridge 跟 OVS plug-in 時的架構以及流量是怎麼流的。首先第一篇筆者會先來介紹 Linux Bridge with Provider Network。 Linux bridge: Provider networks Provider network 架構示例使用 VLAN (802.1q) tagging 在實例 (instance) 和實體網路基礎設施之間提供 L2 連接。 它支援一個 non-tagged(扁平)網路和多達 4095 個 tagging (VLAN) 網路。 VLAN 網路的實際數量取決於物理網絡基礎設施。 架構 上圖為 Linux Bridge – Provider Networts 架構下的整個架構總覽,可以看到那些元件是跑在 controller node 上,哪些是在 compute node 上。 這張圖畫出了在單一 […]
從裸機到雲端:OpenStack Neutron 介紹 3
上一篇介紹了 Neutron 的網路的概念,接下來將會接續介紹 Neutron 的一些名詞。 Neutron 概念 (名詞) Subnets (子網) Subnets 是一組 IP 地址和其相關的設定狀態,其功能是為 provider/project networks 提供 IPAM(IP 地址管理)的功能。 子網用於在網絡上創建連接埠時分配 IP 地址。 Subnet pools 使用者通常可以使用任何有效的 IP 地址創建子網,而沒有其他限制。 但是,在某些情況下,管理員或 project 會希望預先定義一個地址池 (IP address pool),使在創毽子網的時候自動分配一段地址。在一些狀況下管理員可能想避免 IP 地址重複,就可以使用 subnet pools 防止來自同一池的兩個子網的地址重複。 Port (連接埠) 連接埠是將單個設備(例如虛擬伺服器的 NIC)連接到虛擬網路的連接點。 該連接埠還描述了相關的網路設定,例如要在該連接埠上使用的 MAC 和 IP 地址。 路由器 (Router) 路由器提供虛擬的 L3 功能,例如self-service 跟 provider 網路之間或是 […]
從裸機到雲端:OpenStack Neutron 介紹 2
上一篇介紹了 Neutron 的架構,接下來兩篇將會接續介紹 Neutron 的一些概念和名詞。 Neutron 概念 Neutron 提供使用者創建網路跟其子網域,並可將其他 OpenStack 服務(如 Compute)將虛擬設備連接到這些網路上的端口,通常最常見的就是連接 Instance 到網路。Neutron 支援每個 project 擁有多個私有網絡,並允許 project 選擇自己的 IP addressing 方案,並且不同網路中的 IP 地址與其他 project 使用的 IP 地址重疊。 有兩種類型的網絡,provider network 和 self-service network,這些網路是可以在 project 之間共享的。 Provider Networks Provider networks 為實例 (Instance) 提供 L2 網路連結,並支援 DHCP 和元數據 (metadata) 服務。 這些網路是連接到資料中心現有的 L2 網路,通常使用 VLAN (802.1q) tagging 來識別和隔離它們。 […]
從裸機到雲端:OpenStack Neutron 介紹 1
昨天為讀者介紹目前 OpenStack 中算是最核心的元件,Keystone,今天來介紹 OpenStack 筆者認為最複雜的原件,Neutron,也是 OpenStack 提供網路服務的元件。 Neutron 架構 OpenStack Networking (neutron) 允許您創建網路介面 (network interface) 並接上其他 OpenStack 元件管理的服務 (如 Nova VM),使其能夠連接到網絡。可以透過不同的後端 plugin 去因應不同的網絡設備和軟體,為 OpenStack 架構和部署提供靈活性。 它包括以下組件: Neutron-server 接受 API 請求並將其路由到適當的 OpenStack Networking 插件以進行操作。 OpenStack Networking 後端 plug-ins 和 agents 插入和拔除端口,創建網絡或子網路,並提供 IP 位置。這些 plug-ins 和 agents 根據不同的雲中使用的供應商和技術而異。常見的 plug-ins 為 OVS, Linux Bridge 和 OVN,後續會介紹其架構。 常見的 agents […]