IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    Neutron社区每周记(7.11~7.15) |OVN,ODL 和 Neutron 的数据同步

    hu, xueqing发表于 2016-07-19 09:19:27
    love 0

    OVN DB 和 Neutron DB 的同步问题

    当前,OVN ML2 driver 实现了两种关于 OVN DB 和 Neutron DB 同步的方法:

    方法1:通过 OVN 的配置文件管理。在 OVN 配置文件有关于和 Neutron DB 同步的选项——neutron_sync_mode。该配置有三种选项:

    1. off——关闭和 Neutron DB 的同步 ;
    2. log——在 Neutron Server 启动的时候,检查 OVN DB 和 Neutron DB 是否同步,如果发现有数据不同步的情况,做出『warning log』,最终由系统管理员手动介入;
    3. repair——在 Neutron Server 启动的时候,自动创建 Neutron Server DB 存在,但是 OVN DB 中不存在的数据,同样的,删除 OVN DB 存在的,但是 Neutron Server DB 不存在的数据。总之,DB 以 Neutron 为准。

    方法2:系统管理员执行 『neutron-ovn-db-sync-util』进行数据同步。同样的,该命令的最终目的也是删除 OVN DB 中存在的,但是 Neutron DB 中不存在的;创建 Neutron DB 中存在的,但是 OVN DB 不存在的数据。

    相比 networking-ovn ,networking-odl 又是如何完成和 Neutron DB 的数据同步呢?

    networking-odl 在初始化的时候创建两个关于数据同步的线程—— Journal thread 和 Maintenance thread,Journal thread:创建一个新的 journal table——  “opendaylightjournal” (https://github.com/openstack/networking-odl/blob/master/networking_odl/db/models.py#L23)

    该线程进行的工作有:

    1. 当 Neutron 创建资源(network, subnet, port)时,调用 ODL ML2 driver 中的 precommit 方法,在上述的 “opendaylightjournal” 表中插入一条 state 为 PENDING 记录;
    2. 创建资源(network, subnet, port)时,调用 ODL ML2 driver 中的 _postcommit 方法, 设置同步标志,并且创建默认同步超时时间为 10s 的定时器;
    3. 将上述 state 为 PENDING 的记录更新为 completed。

    Maintenance thread——完成三件事:

    1. JournalCleanup —— 删除 journal 表中 state 为 completed 的记录;
    2. CleanupProcessing —— 对于超时的操作,将 state 为 processing 的记录修改为 pending 的状态;
    3. Full sync —— 当 ODL 控制器重启时,完成 full sync,sync 的过程包括,删除 pending 状态的数据记录,从 Neutron  DB 同步 L2 L3 资源,L2 L3 资源包括:

    创建相关 pending 状态的数据记录。

    最后,关于 Neutron 的吉祥物开始提交啦!可关注:http://www.openstack.org/project-mascots 和 https://etherpad.openstack.org/p/neutron-project-mascot 。

    Merged Patches

    本期 Neutron 社区每周记首先关注的依旧是合并了的最新 Patch。

    1. DNSNameServer 完成了 OVO 的转换 ,Link:https://review.openstack.org/#/c/326477/
    2. NetworkDhcpAgentBinding 完成了重构,Link:https://review.openstack.org/#/c/328452/

    neutron1111

    合并了该 Patch 也是为了 OVO(oslo.versionedobjects ) 做相应的准备。

    其次,依旧在热烈 Review 中的 Patch,基本上都是关于 OVO 相关的:包括 Security Groups 的 OVO 转换,Link:https://review.openstack.org/284738,RBAC 的 OVO 转换,Link:https://review.openstack.org/#/c/337634/。

    还有一个值得关注的地方就是关于访问 Neutron 资源时允许 sorting(排序)/ pagination(分页)。

    以前这两个选项默认是关闭的,并且是通过配置文件管理。目前这两个选项通过 extension 的形式进行管理,默认开启,并且通过 API 检查是否开启了排序和分页。



沪ICP备19023445号-2号
友情链接