ODL:DataStore中config和operational的区别

DataStore中的数据存储分两种形式:config和operational 。config存储应用层所写的数据,而operational存储设备的实际状态。通俗的讲:北向业务数据存储于config库;南向库存储于operational库。

config方式查询流表通常不包含以路由为目的的流表项(所以operational方式可以查询到table-miss流表项,即out-port:controller,而config方式查询不到),这是因为以路由为目的这些流通过外部的流服务(不经过dataStore和config)发送到设备,然后这些流由设备通过数据形式以operational的形式重新报回。

config具有相对于控制器的生命周期(甚至重启都可以依然存活)。这些流表项由应用添加到这里并且当有合适的设备时就会发送给它。

原则上讲openflowplugin和controller都不应该动用config。这个是为应用程序而保留的,比如FRM监听到改变就写到config里面以发送流到设备。这个可以用来做预配置-应用程序可以为一些尚未存在的设备写一些“有用的“流,一旦设备存在相关的流就会下发到其中,而不用任何应用程序的动作。

总结:

  1. Config 一般用来下发配置(post,put),也可以获取信息(get)
  2. Operational一般是获取实际设备信息(get),config-DataStore的内容和operational-DataStore的内容可能不太相同。

补充:不同协议的操作,存储流程可能是不相同的。 举例说明:

  1. 对于openflow协议:operational反映设备的实际信息,假如下发配置,流程是config->device->operational。
  2. 对于bgp协议:下发配置流程是:config->operational->device。

参考:

  1. https://blog.csdn.net/weisee13/article/details/53925403
©️2020 CSDN 皮肤主题: Age of Ai 设计师:meimeiellie 返回首页