1. 程式人生 > >How to install Bekeley Extension Software Switch(BESS)?

How to install Bekeley Extension Software Switch(BESS)?

安裝 -i 出現 driver echo switch common ng- repos

參考:

Github BESS

How to install Bekeley Extension Software Switch(BESS)?

Introduction

BESS is a modular framework for software switches. BESS itself is not a virtual switch; it is neither pre-configured nor hardcoded to provide particular functionality, such as Ethernet bridging or OpenFlow-driven switching. Instead, you (or an external controller) can configure your own packet processing datapath by composing small "modules". While the basic concept is similar to Click, BESS does not sacrifice performance for programmability.

BESS是一個用於軟件交換機的模塊化框架, 本身並不是一個虛擬交換機; 它既不用預先配置也不用使用寫死的方法來提供特殊功能, 比如以太網橋或OpenFlow驅動的交換. 相反, 你(或者一臺額外的控制器)能夠通過將小型模塊進行組合來配置你自己的數據報處理datapath. BESS的思想類似於Click, 但它不需要為可編程性消耗性能.

Installation

官方的文檔給出了安裝BESS的方法, 然而會遇到許多問題.

1.Clone BESS:

$ git clone https://github.com/NetSys/bess.git
$ cd bess/

2.安裝依賴:

$ sudo apt-get install -y software-properties-common
$ sudo apt-add-repository -y ppa:ansible/ansible
$ sudo apt-get update
$ sudo apt-get install -y ansible
$ ansible-playbook -K -t package -i localhost, -c local env/bess.yml
$ sudo reboot

這一步容易出現ansible安裝clang-5.0的錯誤, 一種解決方法是講package.yml中安裝clang-5.0的語句註釋掉, 並人為安裝clang-5.0. 詳情見: issues#734.

3.設置大頁:

# For single-node systems
$ sudo sysctl vm.nr_hugepages=1024

# For multi-node (NUMA) systems
$ echo 1024 | sudo tee /sys/devices/system/node/node0/hugepages/hugepages-2048kB/nr_hugepages
$ echo 1024 | sudo tee /sys/devices/system/node/node1/hugepages/hugepages-2048kB/nr_hugepages

4.安裝BESS:

$ cd bess/
$ ./build.py

此步會出現DPDK驅動的問題, 原因是BESS是基於老版本的DPDK的, 因此需要安裝MLNX_OFED驅動, 方法見: HowTo Install MLNX_OFED Driver. 問題詳情見: issues#735.

How to install Bekeley Extension Software Switch(BESS)?