最近在Vmware Fusion上的Ubuntu Server 16.04.2 LTS試裝了soft-RoCE
soft-RoCE是RoCE的純軟體版,主要作用官方宣稱是當有Network packet近來的時候可以跳過linux的kernel中的copy,並讓application直接去access packet以達到加速效果。需要有server跟client對應,所以要有兩台機器來測試,這邊是先裝在一台vm裡再複製到另一台host上(當server的vm ip是192.168.210.102)
安裝原理主要是先git source code下來並把它加到原本的linux kernel中重新compile一次
首先是kernelspace的部份
先把一些該裝的套件裝好
sudo apt-get install libncurses5-dev libncursesw5-dev
sudo apt-get install libssl-dev
sudo apt-get install build-essential
sudo apt-get install make
sudo apt-get install bc
然後就可以git了
git clone https://github.com/SoftRoCE/rxe-dev.git
然後進入rxe_dev資料夾並且切換branch 到rxe_submission_v18
git checkout rxe_submission_v18
然後copy kernel並命名為.config
cp /boot/config-$(uname –r) .config
接下來make menuconfig
make menuconfig
進入menuconfig後按"/"並輸入"RXE"就可以搜尋相關的選項
然後按1選擇第一個搜尋結果並選取它
之後選擇下方的save並直接儲存成.config一直選exit即可
sudo make -j 4
這邊大概要等1~2個小時
視硬體情況而定
接下來
sudo make modules_install
sudo make install
sudo make headers_install INSTALL_HDR_PATH=/usr
然後重開機
接下來換userspace的部份
git clone https://github.com/SoftRoCE/librxe-dev.git
cd librxe-dev/
安裝一些必須套件
sudo apt-get install libibverbs-dev
sudo apt-get install libswitch-perl
sudo apt install rdmacm-utils
sudo apt install ibverbs-utils
開始configure
./configure --libdir=/usr/lib64/ —prefix=
make安裝
sudo make
sudo make install
到這邊就安裝完成了
最後是測試部分
官方提供兩個測試工具一個是rping一個是pingpong
但是得先做一點設定
首先先做4個symbolic link
sudo ln -s /usr/lib64/librxe.a /usr/lib/librxe.a
sudo ln -s /usr/lib64/librxe.la /usr/lib/librxe.la
sudo ln -s /usr/lib64/librxe-rdmav2.so /usr/lib/librxe-rdmav2.so
sudo ln -s /usr/lib64/librxe.so /usr/lib/librxe.so
檢查rxe狀態
rxe_cfg status
啟動rxe_cfg
sudo rxe_cfg start
把虛擬網卡加入
sudo rxe_cfg add ens33
掛上必要的module
sudo modprobe ib_uverbs
之後每次開機的時候必須輸入這兩行指令
sudo rxe_cfg start
sudo modprobe ib_uverbs
也可以把他們寫到.bashrc裡面
再來就可以測試了
因為是裝在vm裡面兩台對測所以得改成bridge mode
先測pingpong
server端使用sudo ibv_rc_pingpong -d rxe0 -g 1
client端使用sudo ibv_rc_pingpong -d rxe0 -g 1 192.168.210.102
再測rping
sudo rping -s -a 192.168.210.102 -v -C 10
sudo rping -c -a 192.168.210.102 -v -C 10
留言列表