|
|
楼主 |
发表于 2023-9-20 18:16:48
|
显示全部楼层
OVS-SETUP
* Z9 j. C& i8 P6 j: d* X7 w& r% v# [/ m2 J
1、清除之前的环境
$ f. l. q" Z. j, \6 vkillall ovsdb-server ovs-vswitchd
3 H0 U1 T3 ^: x$ l7 v9 a" P9 prm -f /var/run/openvswitch/vhost-user*
+ u+ v: Y$ G+ s( M# V D3 v$ urm -f /etc/openvswitch/conf.db; z4 h' Y2 e8 P( I# h
$ U/ x1 L$ c* Z4 {' _
2、启动ovsdb( y1 N; B, M( A* R* i
( G+ F, k! {, o A f
export DB_SOCK=/var/run/openvswitch/db.sock
0 M; i1 ?! T5 Q3 ~; h+ H) Z# T1 P) r' q2 A3 m5 N
ovsdb-tool create /etc/openvswitch/conf.db /usr/share/openvswitch/vswitch.ovsschema8 E# f2 H, p: D" R
ovsdb-server --remote=punix:$DB_SOCK --remote=db:Open_vSwitch,Open_vSwitch,manager_options --pidfile --detach
" ~( Q: p* B, I1 d: E: ]ovs-vsctl --no-wait init
6 h3 @. ]; ]+ r6 X, X. Wovs-vsctl --no-wait set Open_vSwitch . other_config:dpdk-lcore-mask=0x2 //绑定到第2个cpu核上( X/ Z' `0 c% {
ovs-vsctl --no-wait set Open_vSwitch . other_config:dpdk-socket-mem=4096; U( O1 @$ w' A+ N: I# J
ovs-vsctl --no-wait set Open_vSwitch . other_config:dpdk-init=true9 h/ Q9 W5 G- J% f2 T4 s. f* k
启动ovs-vswitch* B- e; `; j' y9 v
ovs-vswitchd unix:$DB_SOCK --pidfile --detach --log-file=/var/log/openvswitch/ovs-vswitchd.log+ J1 J, z- R b& c+ i0 e, G' ^
$ c# ]2 E* M) Y. {9 j; f" m. r8 c& M6 \# n
3、查看支持DPDK是否成功:
0 C" r5 Z+ n/ A3 G. J+ b( w N$ j7 l k/ a0 x/ f
ovs-vsctl get Open_vSwitch . dpdk_initialized, D" n# k5 S8 c- ?& H
true
1 c; @, I* ~* I. t) B
5 q C2 { P+ ~; d3 g) o配置bridge5 Z5 t2 }- ]2 Q0 Y4 O) x
1 ovs-vsctl add-br ovsbr0 -- set bridge ovsbr0 datapath_type=netdev: [! _7 t4 e6 p
& l( v7 O: l2 x% C3 u* q
2、添加vhost-user-client-0/1 端口需要指定vhost-server-path值,表示socket文件路径。
. m6 h- I! I9 E2 N' \ovs-vsctl add-port ovsbr0 vhost-client-0 -- set Interface vhost-client-0 type=dpdkvhostuserclient options:vhost-server-path=/usr/local/var/run/sock0
" F z( G9 t" j: _. p+ xovs-vsctl add-port ovsbr0 vhost-client-1 -- set Interface vhost-client-1 type=dpdkvhostuserclient options:vhost-server-path=/usr/local/var/run/sock1
5 }4 U: V) p. Covs-vsctl show
, M, z! W4 Q. \5 B/ Z3 k( o9 H2 \, F$ F3 H
在网桥ovsbr0上绑定真实dpdk的物理网卡 @& K* d) A, g ~2 B3 T
% e! f& @6 b- s( z
ovs-vsctl add-port ovsbr0 dpdkport0 -- set Interface dpdkport0 type=dpdk option:dpdk-devargs=0000:02:00.0+ k2 r8 O0 e6 i- B' j/ C
4 K. j Q7 [$ a K9 R注:可以修改ovs桥中端口的mtu值方法如下:该命令设置可以在数据库持久,也可以配置物理接口& ?' t! d+ Q3 @4 X0 B: G5 h% D0 K
ovs-vsctl set interface ovsbr0 mtu_request=9000
( W. A( P: w8 i) h* M3 Lovs-vsctl set interface dpdkport0 mtu_request=9000
/ O/ S" O8 q1 c. k8 W; {3 dovs-vsctl set interface vhost-client-1 mtu_request=9000
' n- g; x6 C+ s" c1 zovs-vsctl set interface vhost-client-0 mtu_request=9000
1 i, k1 k9 L8 O1 b" k( M P/ x0 F& t U9 l; C y
该命令清除恢复到默认的MTU
9 a# H5 m+ u2 c9 H. j
! k. `$ X. L( ]: F7 r/ v, I% Bovs-vsctl set interface vhost-client-0 mtu_request=[]
* D5 D0 h, P" U& a2 o- Z3 H% }& ~6 m7 @+ v' q
也可以直接使用添加端口的时候指定mtu值如下方式:
, W& p" W& P& k" Q3 g/ u- N( ^. q. Y! ]8 j: E P
; w @2 ^% C, i ovs-vsctl add-port ovsbr0 vhost-client-0 -- set Interface vhost-client-0 type=dpdkvhostuserclient options:vhost-server-path=/usr/local/var/run/sock0 mtu_request=9000* q, Y! E5 E% G8 P0 ?$ |$ g
" x- ]# ^1 U$ m( r, A, A& n
+ @) A4 o' h8 `5 T2 e
ovs-vsctl add-port ovsbr0 vhost-client-1 -- set Interface vhost-client-1 type=dpdkvhostuserclient options:vhost-server-path=/usr/local/var/run/sock1 mtu_request=9000
6 _ N6 w& p( \ ovs-vsctl add-port ovsbr0 dpdkport0 -- set Interface dpdkport0 type=dpdk option:dpdk-devargs=0000:02:00.0 mtu_request=9000$ Y0 s1 x S" A" Q. x
|
|