ovsdb <3> 数据格式

mac2026-08-20  2

4.2OVSDB概要模式 OVSDB在概要模式和具体的线路协议均使用了JSON即JavaScript Object Notation。一般的配置数据库包含了一系列表项,这些表项通常由数列和零行或者更多行组成。下面主要对各个模式做如下说明: 4.2.1 该结构为JSON且包含如下的成员: “name”: required “version”: required “cksum”: optional “tables”: {: , …} required Table的值也是一个JSON结构,具体的描述如下: 4.2.2 “columns”: {: , …} required “maxRows”: optional “isRoot”: optional “indexes”: [*] optional 除了上述的描述之外,每一个table还有_uuid和_version,但是它们均不会被包含在上述的schema中,且均为只读模式。 Columns的值也是一个JSON结构,具体描述如下: 4.2.3 “type”: required “ephemeral”: optional “mutable”: optional Type既可以是一个atomic-type也可以是一个JSON结构,具体描 述如下: 4.2.4 “key”: required “value”: optional “min”: optional “max”: or “unlimited” optional Base-type既可以是一个atomic-type也可以是一个JSON结构,具体描述如下: 4.2.5 “type”: required “enum”: optional “minInteger”: optional, integers only “maxInteger”: optional, integers only “minReal”: optional, reals only “maxReal”: optional, reals only “minLength”: optional, strings only “maxLength”: optional, strings only “refTable”: optional, UUIDs only “refType”: “strong” or “weak” optional, only with “refTable” 4.2.6 可以是integer、real、boolean、string、uuid中任意一个表示指定的标量的类型。

备注: 关于other_config的说明:在ovsdb中还有一类比较有用的配置,就是other_config。other_config是一个型如key-value的双字符串结构,其中key表示配置名称,value表示配置的值。other_config用来表达那些不常用的配置,这样表中如果大多数行都没有这个配置,那么把这个配置作为表中一列就太浪费空间了。这时候可以使用other_config列来表达这个配置,对于大多数表来说都是节省空间的。 关于external_ids的说明:除了上述的other_config之外,另外一种比较特殊的配置是external_ids。External-ids也是一个型如key-value的双字符串结构,其中key表示配置名称,value表示配置的值。该项目用于独立于本table的一些相关配置项,而不是被自己所使用,。

关于reftable、reftype和isroot的说明:这两个项表明了一种相互的依赖关系,isroot表明了其对该table和该table中的reftable的控制关系,该控制是一种主动的控制,如果isroot为true,则该table对reftable则是较强的控制关系,该table中的某row删除,那么系统会自动将和该row中reftable依赖的reftable的row删除掉,如果isroot为false或者不填,则该table对reftable则是较弱的控制关系,该table中的某row删除,那么系统不会将和该row中reftable依赖的reftable的row删除掉;reftype同样也表明了该talbe和该table中的reftable的控制关系,但是该控制关系是一种被动的控制关系,如果reftype为strong或者不填,则reftable对table是一种较强的依赖,该reftable不能被删除,只有table被删除之后,该reftable才能够被删除,如果reftype为weak,则reftable对table是一种较弱的依赖,该reftable可以删除,且不必依赖于table;

最新回复(0)