|
|
楼主 |
发表于 2023-9-20 18:16:48
|
显示全部楼层
OVS-SETUP2 F f b- z2 s9 A; N! N
! p, k+ x( ^( E& B
1、清除之前的环境9 D0 X9 O* l9 r8 k' Q
killall ovsdb-server ovs-vswitchd j( Q) ~9 \: O- G0 G! ^* X2 o" }
rm -f /var/run/openvswitch/vhost-user*5 d. D2 L' t8 p. ^
rm -f /etc/openvswitch/conf.db
$ |" k* U: {# S# r
+ I$ R2 Y0 G3 c; e' a* z2、启动ovsdb2 y1 A8 e. p& J1 \* t! l
2 D |& Z) F2 S. a
export DB_SOCK=/var/run/openvswitch/db.sock! q1 |& l1 V- }* T7 }* ]
. C8 [8 O/ G" ]( b3 M$ B
ovsdb-tool create /etc/openvswitch/conf.db /usr/share/openvswitch/vswitch.ovsschema
* F5 s% D7 f' q2 fovsdb-server --remote=punix:$DB_SOCK --remote=db:Open_vSwitch,Open_vSwitch,manager_options --pidfile --detach
# B, C1 n" a3 E+ T% {8 M# A6 {ovs-vsctl --no-wait init; w. o- `2 \' f: D9 e$ ]1 O# S
ovs-vsctl --no-wait set Open_vSwitch . other_config:dpdk-lcore-mask=0x2 //绑定到第2个cpu核上
+ k. S- s. k# P: _" ?# dovs-vsctl --no-wait set Open_vSwitch . other_config:dpdk-socket-mem=4096" X; V8 |/ x* L' Q
ovs-vsctl --no-wait set Open_vSwitch . other_config:dpdk-init=true
! ^; h4 ~0 u! w- l( ~启动ovs-vswitch
" v# `5 S- B. t/ ~ovs-vswitchd unix:$DB_SOCK --pidfile --detach --log-file=/var/log/openvswitch/ovs-vswitchd.log$ U- B c4 o& [+ h/ o* H; g
- i; D7 y/ O3 `- g" _. f4 x
9 m- v6 E8 }: J0 x; ]$ d3、查看支持DPDK是否成功:' r6 @$ d0 n' p
$ _2 D2 ^& o' S/ s, H& s- P vovs-vsctl get Open_vSwitch . dpdk_initialized
, Q( X6 S" v/ [! ~4 strue
& N# X, s) |: N6 D7 w* h' v9 r o
P5 S/ i) Q* y) c0 k. N3 D1 W配置bridge
/ s9 o, t2 r H. i7 i1 ovs-vsctl add-br ovsbr0 -- set bridge ovsbr0 datapath_type=netdev
8 d. |: Y5 Q& c" R' c8 D: |4 J0 i
7 o* k# E! {/ H3 d% c$ B6 Z; T2、添加vhost-user-client-0/1 端口需要指定vhost-server-path值,表示socket文件路径。
. i- N& C$ I, U& F* {ovs-vsctl add-port ovsbr0 vhost-client-0 -- set Interface vhost-client-0 type=dpdkvhostuserclient options:vhost-server-path=/usr/local/var/run/sock0
/ t$ e# Z! W+ c9 R5 Bovs-vsctl add-port ovsbr0 vhost-client-1 -- set Interface vhost-client-1 type=dpdkvhostuserclient options:vhost-server-path=/usr/local/var/run/sock1
9 f9 A, V( F1 U- K; I' Qovs-vsctl show
" h! b4 H) X+ F9 B/ k& L* C& z" u/ @$ }! C. K+ z& _
在网桥ovsbr0上绑定真实dpdk的物理网卡$ y5 I1 M8 E4 ^! }
1 o8 K0 z; {3 y1 k- x/ Z$ D, v
ovs-vsctl add-port ovsbr0 dpdkport0 -- set Interface dpdkport0 type=dpdk option:dpdk-devargs=0000:02:00.0; B% [. e0 a: \- n
* B6 }; U" F6 D
注:可以修改ovs桥中端口的mtu值方法如下:该命令设置可以在数据库持久,也可以配置物理接口- B$ m7 m! d( T0 g B9 o/ A
ovs-vsctl set interface ovsbr0 mtu_request=9000
( P+ A% \2 H/ e+ Q0 b% dovs-vsctl set interface dpdkport0 mtu_request=90002 C+ v& _6 \! I
ovs-vsctl set interface vhost-client-1 mtu_request=9000
/ l* {9 E# F; A7 P I. V% Z1 xovs-vsctl set interface vhost-client-0 mtu_request=9000
, n% Q7 h ]2 w6 J+ {2 ^, ]7 Q9 N7 V' D# z. Y3 f' [
该命令清除恢复到默认的MTU
, A4 D0 \1 {6 i
+ J, u( a' F+ d2 G2 ^$ m1 j+ Covs-vsctl set interface vhost-client-0 mtu_request=[]
?7 l! h, s) }. r: h, L7 C! T0 r& a( x5 N8 ?
也可以直接使用添加端口的时候指定mtu值如下方式:2 J+ m5 O* T8 @
. I& E0 g: h. S' I. R
# l9 J: R3 |4 N2 L! Z/ \3 z& z0 k: q
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
) u7 G$ J/ a3 A3 W, N0 @8 R7 C0 d
1 j2 _3 W3 ~2 F5 s6 u3 T
) c0 d# `' S/ H: @3 wovs-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
, v/ g- \0 ?' z- D$ o1 |2 D ovs-vsctl add-port ovsbr0 dpdkport0 -- set Interface dpdkport0 type=dpdk option:dpdk-devargs=0000:02:00.0 mtu_request=9000
( B3 S9 F4 O ] |
|