Open vSwitch安裝及部署

實驗目的

1、初步認識Open vSwitch,瞭解Open vSwitch的背景、功能和基本組成結構。
2、學會安裝部署Open vSwitch,能夠獨立解決安裝部署中遇到的問題。

任務環境

 

設備名稱 軟件環境 硬件環境
主機 Ubuntu 14.04命令行版 CPU:1核 內存:2G 磁盤:20G


注:系統默認的賬戶爲root/root@openlab,openlab/user@openlab。

任務內容

1、瞭解Open vSwitch的版本信息以及安裝需求,爲安裝Open vSwitch做好充分的準備工作,然後按照教程實現源碼安裝Open vSwitch。
2、配置、運行Open vSwitch。其中主要配置的就是Open vSwitch的核心組件,包括ovsdb-Server、ovs-vswitchd和ovs kernel module。

實驗原理

Open vSwitch是由Nicira Networks主導,運行在虛擬化平臺(例如KVM,Xen)上的虛擬交換機。Open vSwitch基於C語言開發,遵循Apache 2.0許可證,能同時支持多種標準的管理接口和協議(比如NetFlow、sFlow、SPAN、RSPAN、CLI、LACP、802.1ag等)。Open vSwitch通過OpenFlow協議由統一的控制器管理,從而實現對接入的虛擬機(或設備)的網絡聯通。整體組網結構如下圖:

Open vSwitch內部架構圖如下所示:

Open vSwitch各模塊簡要介紹如下:
1、ovs-vswtichd:主要模塊,實現vswitch的守候進程daemon,包括一個支持流交換的Linux內核模塊。
2、ovsdb-server:輕量級數據庫服務器,保存配置信息,ovs-vswitchd通過這個數據庫獲取配置信息。
3、ovs-dpctl:用來配置vswitch內核模塊的一個工具。
4、ovs-vsctl:主要是獲取或者更改ovs-vswitchd的配置信息,此工具操作的時候會更新ovsdb-server中的數據庫。
5、ovs-appctl:一個向ovs-vswtichd的守護進程發送命令的的程序。
6、datapath:內核模塊,根據流表匹配結果做相應處理。
7、ovs-ofctl:查詢和控制OpenFlow虛擬交換機的流表。
Open vSwitch版本及其相應的內核要求如下,請根據自己的內核版本選擇相應的Open vSwitch版本。

Open vSwitch Linux kernel
1.4.x 2.6.18 to 3.2
1.5.x 2.6.18 to 3.2
1.6.x 2.6.18 to 3.2
1.7.x 2.6.18 to 3.3
1.8.x 2.6.18 to 3.4
1.9.x 2.6.18 to 3.8
1.10.x 2.6.18 to 3.8
2.0.x 2.6.18 to 3.8
2.1.x 2.6.18 to 3.10
2.2.x 2.6.18 to 3.11
2.3.x 2.6.18 to 3.14
2.4.x 2.6.18 to 4.0
2.5.x 2.6.18 to 4.3
2.6.x 3.10 to 4.7
2.7.x 3.10 to 4.9

實驗步驟

一、安裝Open vSwitch

步驟1 登錄主機,執行ifconfig命令查看主機的IP地址,如下圖所示。

步驟2 執行uname -a命令查看當前系統內核版本,如下圖所示。


由上圖可知,當前系統內核版本是3.2.0。

步驟3 執行find / -name openvswitch-2.3.2.tar.gz命令查找Open vSwitch安裝包,如下圖所示。


由上圖可知,Open vSwitch安裝包在“/home/openlab/lab”目錄下。

步驟4 執行以下命令,進入Open vSwitch安裝包目錄,解壓Open vSwitch源文件,並進入解壓後的目錄。

# cd /home/openlab/lab
# tar -zxvf openvswitch-2.3.2.tar.gz
# cd openvswitch-2.3.2

步驟5 執行以下命令,生成Makefile文件。

# ./configure --with-linux=/lib/modules/3.2.0-29-generic-pae/build

使用—with-linux參數指定內核源碼編譯目錄,不同環境的Linux版本不一樣,“3.2.0-29-generic-pae”是通過命令“ls /lib/modules/”查看得到的,請根據實際查詢情況修改。

步驟6 執行以下命令編譯、安裝Open vSwitch。

# make
# make install

說明:這個過程有點漫長,請耐心等待,並注意打印出的錯誤提示。

二、配置Open vSwitch

步驟1 執行以下命令,加載Open vSwitch內核模塊openvswitch.ko。

# insmod ./datapath/linux/openvswitch.ko


說明:注意以上命令使用的是相對路徑,默認處於openvswitch-2.3.2目錄下。加載內核模塊如果出現“File exists“錯誤請忽略,如果提示“unknown symbol in module“,解決方法參見異常處理。

步驟2 執行以下命令建立Open vSwitch配置文件和數據庫,並根據ovsdb模板vswitch.ovsschema創建ovsdb數據庫openvswitch.conf.db,用於存儲虛擬交換機的配置信息。

# mkdir -p /usr/local/etc/openvswitch
# ovsdb-tool create /usr/local/etc/openvswitch/conf.db /usr/local/share/openvswitch/vswitch.ovsschema

步驟3 執行以下命令啓動ovsdb數據庫。默認支持SSL,如果在build openvswitch時disable了SSL 支持,則省略—private-key,—certificate,—bootstrap-ca-cert相關命令。

# ovsdb-server --remote=punix:/usr/local/var/run/openvswitch/db.sock  --remote=db:Open_vSwitch,Open_vSwitch,manager_options  --private-key=db:Open_vSwitch,SSL,private_key --certificate=db:Open_vSwitch,SSL,certificate --bootstrap-ca-cert=db:Open_vSwitch,SSL,ca_cert --pidfile --detach


說明:默認Open vSwitch版本爲2.3.2,與Open vSwitch2.0.0之前的版本的啓動命令有所出入。

步驟4 執行以下命令,查看ovsdb數據是否啓動成功。

# ps -ef|grep ovsdb-server

步驟5 執行以下命令,初始化數據庫。

# ovs-vsctl --no-wait init

步驟6 執行以下命令,啓動Open vSwitch daemon,連接到同樣的Unix domain socket上。

# ovs-vswitchd --pidfile --detach

步驟7 Open vSwitch已經安裝部署完畢,執行以下命令,查看當前ovs進程。

# ps –ef|grep ovs

步驟8 執行ovs-vsct1 show命令查看當前ovs的版本信息,如下圖所示。

三、異常處理

加載Open vSwitch內核模塊openvswitch.ko時,可能會出現如下問題。

這個問題是由於openvswitch.ko依賴的模塊沒有加載,首先查找openvswitch.ko的依賴模塊:

# modinfo ./datapath/linux/openvswitch.ko |grep depends

然後,根據查找結果加載這些依賴模塊:

# modprobe libcrc32c
# modprobe gre

當依賴模塊都加載後,就可以加載openvswitch.ko模塊了。

# insmod  ./datapath/linux/openvswitch.ko

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章