Zi 字媒體
2017-07-25T20:27:27+00:00
前言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、安裝南向插件Shellovsdb插件的被動連接方式下(也就是控制器的ovsdb插件當做伺服器,設備當做客戶端),md-sal de operational 資料庫的OVS的node-id格式為ovsdb://uuid//{{uuid of OVS}};主動連接模式下,OVS的node-id格式為 ovsdb: //{{ip : port}}2、測試ovsdb插件的被動連接方式,在終端運行Shell通過curl能夠看到ovsdb節點信息。Shell3、測試ovsdb插件的主動連接方式,在終端運行Shell此時通過postman設置odl控制器來連接ovsdb:可以通過web看到:參考資料OpenDaylight OVSDB架構:https://wiki.opendaylight.org/view/OVSDB:Developer_Guide#OpenDaylight_OVSDB_ArchitectureOVSDB MDSAL南向:https://wiki.opendaylight.org/view/OVSDB:MDSAL_Southbound基於OpenDaylight和OVSDB搭建VxLAN網路:http://www.sdnlab.com/15030.htmlOVSDB與ODL Lithium版本集成測試:
寫了
5860316篇文章,獲得
23313次喜歡