we learned about Core Plugin in Neutron Server, which functions to maintain the state of network, subnet, and port in the database and to invoke the appropriate agent in the network provi Perform related operations on DER, such as creating a network.
The previous section also introduced two Core Plugin:Linux bridge Plugin and open vswitch Plugin.
The more important ML2 Core Plugin is discussed in detail in this section.
Moduler Layer 2 (ML2) is a new core plugin implemented by Neutron in the Havana version, replacing the original Linux bridge plugin and open Vswitch plugin.
the problem of traditional core plugin
The reason to develop ML2, mainly because the traditional core plugin there are two outstanding problems.
Issue 1: Multiple network provider cannot be used at the same time
Core Plugin is responsible for managing and maintaining Neutron's network, subnet, and port status information, which is global and only needs to be managed by one core plugin.
Using only one core plugin itself is no problem. But the problem is that the traditional core plugin and the core plugin agent are one by one corresponding. That is, if you choose Linux Bridge plugin, then the Linux Bridge Agent will be the only option, and you must use Linux Bridge as a virtual switch on all OpenStack nodes (that is, the network provide R).
Similarly, if you choose Open Vswitch plugin, only open vswitch can be used on all nodes, and no other network provider can be used.
Issue 2: Large workload for developing new core plugin
All traditional core plugin need to write a lot of duplicate and similar database access code, greatly increased the workload of plugin development and maintenance.
ML2 can solve the problem of traditional core plugin
As a new generation of core plugin, ML2 provides a framework that allows multiple Layer 2 network technologies to be used simultaneously in an OpenStack network, and different nodes can use different network implementation mechanisms.
As shown, with ML2 plugin, you can deploy Linux bridge agents, open vswitch agents, hyper-V agents, and other third-party agents on separate nodes.
ML2 not only supports heterogeneous deployment scenarios, but also integrates seamlessly with existing agents: Previously used agents do not need to be changed, only the traditional core plugin on Neutron server is replaced with ML2.
With ML2, it's much easier to support the new network provider: No need to develop the core plugin from scratch, just develop the corresponding mechanism driver, greatly reducing the code to write and maintain.
Now that we understand the need for ML2, the next section will learn about the ML2 architecture.
Detailed ML2 Core Plugin (I)-5 minutes a day to play OpenStack (71)