詳解 ML2 Core Plugin(I) - 天天5分鐘玩轉 OpenStack(71)

咱們在 Neutron Server 小節學習到 Core Plugin,其功能是維護數據庫中 network, subnet 和 port 的狀態,並負責調用相應的 agent 在 network provider 上執行相關操做,好比建立 network。
上一節也介紹了兩個 Core Plugin:linux bridge plugin 和 open vswitch plugin。
本節將詳細討論更重要的 ML2 Core Plugin。

Moduler Layer 2(ML2)是 Neutron 在 Havana 版本實現的一個新的 core plugin,用於替代原有的 linux bridge plugin 和 open vswitch plugin。linux

傳統 core plugin 的問題

之因此要開發 ML2,主要是由於傳統 core plugin 存在兩個突出的問題。數據庫

問題1:沒法同時使用多種 network provider

Core plugin 負責管理和維護 Neutron 的 network, subnet 和 port 的狀態信息,這些信息是全局的,只須要也只能由一個 core plugin 管理。網絡

只使用一個 core plugin 自己沒有問題。但問題在於傳統的 core plugin 與 core plugin agent 是一一對應的。也就是說,若是選擇了 linux bridge plugin,那麼 linux bridge agent 將是惟一選擇,就必須在 OpenStack 的全部節點上使用 linux bridge 做爲虛擬交換機(即 network provider)。架構

一樣的,若是選擇 open vswitch plugin, 全部節點上只能使用 open vswitch,而不能使用其餘的 network provider。框架

問題2:開發新的 core plugin 工做量大

全部傳統的 core plugin 都須要編寫大量重複和相似的數據庫訪問的代碼,大大增長了 plugin 開發和維護的工做量。ide

ML2 能解決傳統 core plugin 的問題

ML2 做爲新一代的 core plugin,提供了一個框架,容許在 OpenStack 網絡中同時使用多種 Layer 2 網絡技術,不一樣的節點可使用不一樣的網絡實現機制。學習

如上圖所示,採用 ML2 plugin 後,能夠在不一樣節點上分別部署 linux bridge agent, open vswitch agent, hyper-v agent 以及其餘第三方 agent。spa

ML2 不但支持異構部署方案,同時可以與現有的 agent 無縫集成:之前用的 agent 不須要變,只須要將 Neutron server 上的傳統 core plugin 替換爲 ML2。server

有了 ML2,要支持新的 network provider 就變得簡單多了:無需從頭開發 core plugin,只須要開發相應的 mechanism driver,大大減小了要編寫和維護的代碼。開發

如今咱們已經瞭解了 ML2 的必要性,下一節將學習 ML2 的架構。
 

相關文章
相關標籤/搜索