|
|
楼主 |
发表于 2023-9-20 18:16:48
|
显示全部楼层
OVS-SETUP
0 J9 H' ]1 l8 \7 _+ c5 h4 L' |9 |: _7 Y( L
1、清除之前的环境9 ^; d) ?9 {3 j* f* v( P
killall ovsdb-server ovs-vswitchd
9 x( @2 Z5 G; C# yrm -f /var/run/openvswitch/vhost-user*
; D* V- @/ z- D$ erm -f /etc/openvswitch/conf.db' `, C* N+ l. `0 j$ E
; V, I7 O& |4 r
2、启动ovsdb
) b# J" i0 x# \8 L, p. E
& ~8 ^' [7 r2 @3 N1 nexport DB_SOCK=/var/run/openvswitch/db.sock; f O# V' ]2 U$ B# X7 I' S* h# m
1 ^- |# ~6 h1 @ovsdb-tool create /etc/openvswitch/conf.db /usr/share/openvswitch/vswitch.ovsschema# V$ V, `: Y6 R3 y' g* n4 A
ovsdb-server --remote=punix:$DB_SOCK --remote=db:Open_vSwitch,Open_vSwitch,manager_options --pidfile --detach
5 f/ h3 _: O* y- H" ?ovs-vsctl --no-wait init
* s$ c3 i% Z' L& |$ S( q* qovs-vsctl --no-wait set Open_vSwitch . other_config:dpdk-lcore-mask=0x2 //绑定到第2个cpu核上; d( o* _; w) }5 n% ?+ G: F
ovs-vsctl --no-wait set Open_vSwitch . other_config:dpdk-socket-mem=40966 B; ]5 {9 y$ W3 U
ovs-vsctl --no-wait set Open_vSwitch . other_config:dpdk-init=true8 l3 |' r) o. I# ]# E; h }) Y2 v. ^1 w
启动ovs-vswitch
1 m* W) _2 Y5 Q V5 Oovs-vswitchd unix:$DB_SOCK --pidfile --detach --log-file=/var/log/openvswitch/ovs-vswitchd.log
) ]5 {" O# |( `% q
) M U% m9 }! X5 A2 r/ y; B+ B' o+ H2 G0 D! y4 R4 \6 c' N/ t
3、查看支持DPDK是否成功:, G, M+ u4 J" o( r( Z6 \/ N3 u
0 |: Z i; Q' B! f
ovs-vsctl get Open_vSwitch . dpdk_initialized
& H# Y. K, E/ X ftrue
{4 R+ H. D1 f7 A: @5 [" g4 k$ ^/ J! t3 _! l3 R
配置bridge' C4 X- q( X9 |5 A W9 y0 {# b, O& x
1 ovs-vsctl add-br ovsbr0 -- set bridge ovsbr0 datapath_type=netdev
2 _0 {' c& Q6 ~. q8 O
1 h& ~/ M! a2 y" G2、添加vhost-user-client-0/1 端口需要指定vhost-server-path值,表示socket文件路径。- R# D, [& l+ E" U
ovs-vsctl add-port ovsbr0 vhost-client-0 -- set Interface vhost-client-0 type=dpdkvhostuserclient options:vhost-server-path=/usr/local/var/run/sock0
1 `9 e4 D* ]- ~2 A' Iovs-vsctl add-port ovsbr0 vhost-client-1 -- set Interface vhost-client-1 type=dpdkvhostuserclient options:vhost-server-path=/usr/local/var/run/sock1
+ K5 J' P. W+ L Y4 y( @) \ovs-vsctl show( m/ \6 }/ l& [+ p! \! u5 y2 Q& ]
. s! O# j( g$ H0 s在网桥ovsbr0上绑定真实dpdk的物理网卡
9 ]' r6 \3 _. u3 |' a o- H6 a: E6 \. k, K1 [" p
ovs-vsctl add-port ovsbr0 dpdkport0 -- set Interface dpdkport0 type=dpdk option:dpdk-devargs=0000:02:00.0+ f% J9 d4 g- y5 v1 v
" b- H0 L1 [( s0 H. P1 C/ s注:可以修改ovs桥中端口的mtu值方法如下:该命令设置可以在数据库持久,也可以配置物理接口9 M4 r' M5 ]6 Y0 J/ k, m
ovs-vsctl set interface ovsbr0 mtu_request=9000
' z8 m+ g5 I! s. }& yovs-vsctl set interface dpdkport0 mtu_request=9000$ U- V& n* y8 N* ?5 e) a" c
ovs-vsctl set interface vhost-client-1 mtu_request=9000% U' q: Y, a1 W! ~. h3 `
ovs-vsctl set interface vhost-client-0 mtu_request=9000
9 j1 z4 y4 E' ^+ L6 X, P3 L, w- F
该命令清除恢复到默认的MTU' Z/ [2 z1 G" K- Z
! ~: t5 O6 ^# Y1 {2 ^
ovs-vsctl set interface vhost-client-0 mtu_request=[] E& k2 c2 V/ u
! n$ \+ [7 p( Q: b1 H7 i. C7 N
也可以直接使用添加端口的时候指定mtu值如下方式:
1 X$ J* |) }# C# V
; L3 V7 b4 X9 ?" N. J5 D# ^# W" d4 w
0 A7 A( _/ p+ {! S5 l6 W# S) B 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
! ^/ O. U3 T& R9 l; D
' P) J- R7 n+ \3 t. O/ T' T3 p* M6 T0 K+ g4 G7 Q+ s6 ~! Q4 `
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& x/ }& {: \4 ~8 S. e
ovs-vsctl add-port ovsbr0 dpdkport0 -- set Interface dpdkport0 type=dpdk option:dpdk-devargs=0000:02:00.0 mtu_request=9000
$ B, K& l/ |3 a4 r |
|