讀古今文學網 > OpenStack系統架構設計實戰 > 4.3.3 ML2 >

4.3.3 ML2

從Openstack的H版本開始,在Neutron模塊中增加了ML2插件,ML1-Plugin被添加以取代所有的核心插件,它採用了更加靈活的結構進行實現,如圖4-4所示。ML2的引入(從OpenStack的Havana版本開始)是為了替代原有的統一插件(如,Open vSwitch和Linux橋接,它們僅僅是插件,而不是代理)、消除冗余代碼,降低開發和維護成本。根據ML2作者所定義的,模塊化二層組件(ML2)是一個允許OpenStack Neutron同時利用二層網絡多樣性技術的架構,該二層網絡技術來源於實際的複雜數據中心。

圖4-4 ML2插件結構

ML2通過驅動模型實現模塊化。它包含了兩類驅動:類型驅動和機制驅動。類型驅動(如flat、VLAN、GRE和VXLAN等)定義了一個特殊的二層類型,每個可用網絡類型由對應的類型驅動管理。該驅動維護了類型驅動具體的狀態信息,實現了租戶網絡之間的隔離,這種隔離是由供應商網絡驗證過的。

另一方面,機制驅動是由廠商指定的(如OVS、OpenDaylight、思科、NEC等廠家的驅動),基於功能性的類型驅動——支持創建、更新和刪除網絡、子網和端口資源。應該注意到,供應商有可能執行一整套新的、類似於ML2的插件,或者僅僅實現一個機制驅動插件。