search
尋找貓咪~QQ 地點 桃園市桃園區 Taoyuan , Taoyuan

OVSDB介紹及在OpenDaylight中的調用

前言OVS是一種開源的軟體交換機,可安裝於通用的虛擬伺服器環境中,在虛擬環境中單個、多個物理機上的不同虛擬主機都需要通過OVS實現數據交換。

OVS包含三個重要的組件:ovsdb-server、ovs-vswitchd、以及OVS內核模塊,

ovsdb-server:OVS的資料庫服務進程,用於存儲虛擬交換機的配置信息(比如網橋、埠等),為控制器和ovs-vswitchd提供OVSDB操作介面。

ovs-vswitchd:OVS的核心組件,負責保存和管理控制器下發的所有流表,為OVS的內核模塊提供流表查詢功能,並為控制器提供OpenFlow協議的操作介面。

OVS內核模塊:緩存某些常用流表,並負責數據包轉發,當遇到無法匹配的報文,該模塊將向ovs-vswitchd發送pack-in請求,獲取報文處理指令。

其架構為:

OVS提供的命令:

  • ovs-dpctl 管理OVS內核模塊,提供緩存流表的操作方法

  • ovs-vsctl 管理ovsdb-server的配置,提供OVSDB的配置方法,包括創建和刪除網橋、埠等

  • ovs-appctl 管理ovs-vswitchd的日誌輸出

  • ovs-ofctl 管理ovs-vswitchd的流表配置方法

  • ovs-pki 創建和管理公鑰

  • ovs-tcpundump 抓取並解析OpenFlow消息

  • ovsdb-tool 創建和管理ovsdb

一、OVSDB介紹開放虛擬交換機資料庫(OpenvSwitch Database,OVSDB)是開放虛擬交換機中保存的各種配置信息(如網橋、埠)的資料庫,是針對OpenvSwitch開發的輕量級資料庫。

OVSDB資料庫由兩個主要部分構成,即ovsdb-server和ovsdb-client,Ovsdb-server是OVS的資料庫伺服器端,位於Open vSwitch本地。Ovsdb-client則為OVS資料庫客戶端,其通過OVSDB 管理協議(Open vSwitch Database Management Protocol)向ovsdb-server端發送資料庫配置和查詢的命令,即ovs-vsctl命令。因此,ovs-client又被稱為管理者。ovsdb-client通常運行在Open vSwitch 本地,即管理員可以在OVS本地以命令行方式輸入資料庫配置和查詢命令。另外,ovsdb-client也可以部署在遠端,從而實現對ovsdb-server的遠程配置。目前在Opendaylight控制器中也有一個單獨的子項目實現此管理協議,即OVSDB(比如ovsdb-release-lithium-sr3)。

OVSDB是一個輕量級的資料庫,其實它只是一個JSON文件,默認路徑為/etc/openvswitch/conf.db。記錄的網橋、埠、QOS等網路配置信息是以JSON格式(schema)保存的,通常schema在/usr/share/openvswitch/vswitch.ovsschema中。

1.1 OVSDB管理協議OVSDB管理協議(OVSDB management protocol)是VMware公司提出的負責管理OVS資料庫的協議,OVSDB管理協議定義了一套RPC介面,用戶可通過遠程調用的方式管理OVSDB。

其中transact是OVSDB管理協議中比較重要的操作方法,它是RPC請求的參數中提供資料庫的增、刪、改、查等常用操作:

ODL中包括三個OVSDB插件,OVSDB southbound、northbound、openstack,他們的邏輯關係如下圖所示:

2.1 OVSDB的不兼容性

These 2 ovsdb features cannot be installed at the same time: odl-ovsdb-plugin and odl-ovsdb-southbound-impl that is so, because they will instantiate their own ovsdb-library, which listens on port 6640 (by default).
When odl-ovsdb-openstack is used, it assumes no other application in odl is managing network-virt. In other words, it is assumed that if ovsdb is using odl-neutron-service, no other feature in odl is providing the same net-virt service.

2.2 OVSDB南向插件的使用

1、安裝南向插件

Shell

ovsdb插件的被動連接方式下(也就是控制器的ovsdb插件當做伺服器,設備當做客戶端),md-sal de operational 資料庫的OVS的node-id格式為ovsdb://uuid//{{uuid of OVS}};主動連接模式下,OVS的node-id格式為 ovsdb: //{{ip : port}}

2、測試ovsdb插件的被動連接方式,在終端運行

Shell

通過curl能夠看到ovsdb節點信息。

Shell

3、測試ovsdb插件的主動連接方式,在終端運行

Shell

此時通過postman設置odl控制器來連接ovsdb:

可以通過web看到:

參考資料

OpenDaylight OVSDB架構:
https://wiki.opendaylight.org/view/OVSDB:Developer_Guide#OpenDaylight_OVSDB_Architecture
OVSDB MDSAL南向:https://wiki.opendaylight.org/view/OVSDB:MDSAL_Southbound
基於OpenDaylight和OVSDB搭建VxLAN網路:http://www.sdnlab.com/15030.html
OVSDB與ODL Lithium版本集成測試:



熱門推薦

本文由 yidianzixun 提供 原文連結

寵物協尋 相信 終究能找到回家的路
寫了7763篇文章,獲得2次喜歡
留言回覆
回覆
精彩推薦