neutron ml2

Neutron ML2 是一个允许OpenStack网络同时使用多种二层网络技术的框架,解决了不同网络技术之间的互斥问题。它包含类型驱动和机制驱动,支持如vlan、gre、vxlan等网络类型,并能与不同网络机制如OpenvSwitch、LinuxBridge等协同工作。ML2通过TypeManager和MechanismManager管理不同类型和机制的驱动,实现网络资源的创建、更新和删除操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在介绍ml2之前,先介绍下以往的core-plugin,它主要的工作是与数据库打交道,真正起作用的是agent,然而对于每种core-plugin来说他们绝大部代码是重复的,在实际的网络部署中,想用linuxbridge就不能用openvswitch,想用vlan就不能用greMl2插件就可以很好解决这样的问题,在复杂的二层网络中可以灵活地部署网络。

Ml2插件是一种允许OpenStack网络同时地利用多种二层网络技术的框架。目前与openswitchlinuxbridgehyperv L2 agent协同工作。ml2框架对简化新增L2网络技术的做了很好支持,比起以往新增加的核心插件,ML2框架需要更少的初期以及后期维护工作。

 

ML2驱动包括类型驱动和机制驱动,分别实现了网络类型和网络机制的可扩展性。

1类型驱动(TypeDriver):

    类型驱动可以管理多种网络类型,目前支持local, flat, vlan, gre, vxlan等。

2机制驱动(MechanismDriver

    机制驱动处理由类型驱动建立的信息,并且确保能够用于指定的网络机制。机制驱动接口支持网络、子网、端口的创建、更新、删除操作。对每个资源,机制驱动暴露出两种方法ACTION_RESOURCE_precommit,和ACTION_RESOURCE_postcommit。这种precommit方法用于验证action是否有效和维护机制驱动的私有的数据库,并且这种方法不能被阻塞。postcommit主要负责操作资源。

举个例子,看下ciscoupdate_port机制驱动的两个方法,你可以自己跟踪一下, update_port_precommit维护自己私有的数据库,update_port_postcommit配置物理交换机。

    def update_port_precommit(self, context):

        port = context.current

        if self._is_deviceowner_compute(port) and self._is_status_active(port):

            self._port_action(context, self._configure_nxos_db)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值