找回密码
 注册
查看: 3976|回复: 0

neutron中配置使用qos控制网络带宽

[复制链接]

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
发表于 2018-12-26 15:52:52 | 显示全部楼层 |阅读模式
qos基础' u& \. N# |- u: U6 ~  E3 y
在Linux系统上,无论去使用怎样的工具,最终都要使用TC来做流量控制。TC利用队列规定建立处理数据包的队列,并定义队列中的数据包被发送的方式, 从而实现对流量的控制。Linux内核中支持的队列主要有:
1 q/ f1 k0 u% X: r5 p1 ]TBF(Token Bucket Flow令牌桶过滤器)
2 `- f8 O2 D! E' W1 r. h( c$ r. Bpfifo_fast(Third Band First In First Out Queue先进先出队列)
1 j( H2 b4 b2 Z8 K2 vSFQ(Stochastic Fairness Queueing随机公平队列)
9 a7 }4 C9 z9 y$ WHTB(Hierarchy Token Bucket分层令牌桶)等。6 t# K# ^1 Y6 d' r/ ^

( L  c& [5 ]' |, g3 K一。内容" D& F; O# R' _0 m6 V/ V
OpenStack在L版中支持网络qos,这是一个非常实用的功能,以前的版本中,对于虚机网络流量qos,我们只能通过Flavor来设置qos,这需要去维护很多个Flavor来保证不同的qos需求,因此Flavor-qos非常不灵活。" q9 ?" N7 x# x4 h4 B# p5 o" }8 g
Neutron中qos限制发送数据采用TBF队列。
  X. K- D& H- t$ x以下是通过限制端口来达到限速目的,也就是将qos规则绑定在虚拟机网卡对应的tap设备上限速。主要设置两个参数,一个是rate带宽,一个是burst,neutron命令中分别对应max-kbps和max-burst-kbps' O4 e3 P3 ?" K( H
  m: w4 ~* Q" y! z+ t2 p' s4 ^9 b  k
二。配置8 \: h! i+ z8 g" B
1.修改neutron-server的neutron.conf配置- ]4 c4 _* W, L1 b
# vi /etc/neutron/neutron.conf
: ^/ d$ e" h) c  G$ C[DEFAULT]
+ z- ^  }2 @0 c+ Eservice_plugins =neutron.services.qos.qos_plugin.QoSPlugin  }! B; |4 e- F& u
2.修改neutron-server的ml2_conf.ini配置
! ^, V! g7 |( O& O% W  |% Y# vi /etc/neutron/plugins/ml2/ml2_conf.ini
+ Z+ {/ M/ P6 b" o: N+ v[ml2]6 s% d+ a' \$ Z4 F4 B( a
extension_drivers = qos
: L. L  `/ F  v. o5 q7 n  ?3.修改neutron-linuxbridge-agent的linuxbridge_agent.ini配置$ \: D. F) q  u1 e9 B$ N* v
# vi /etc/neutron/plugins/ml2/linuxbridge_agent.ini6 F% T( v- K& ^' g. N6 C. |: _: }
[agent]
  g$ `( y- m( xextensions = qos
: H5 w. W; r/ }三。规则7 v) @5 _9 E" a, @5 `+ z! \. _7 p
1.bandwidth limit rule; {) n* @! H7 N/ A2 D: K
2.minimum bandwidth rule0 {% P' T" s8 Q* C7 W
四。使用$ t3 v$ O" N8 i3 a0 @
1.创建qos-policy,并给policy设置rule
& y$ V# k' W7 W8 \neutron qos-policy-create bw-limiter, i/ M' }& ?7 W2 f6 L6 H
neutron qos-bandwidth-limit-rule-create bw-limiter --max-kbps 3000 --max-burst-kbps 300
: _2 e: Y. M! p4 O4 R2.给port或网络设置qos-policy
/ X1 w9 F$ ^9 K  E/ _( m/ Jneutron port-create --qos-policy bw-limiter
6 T6 {8 J% H" B: C7 ~; Aneutron port-update --qos-policy bw-limiter | --no-qos-policy
+ M0 m- Z/ l0 D1 F6 nneutron net-create --qos-policy bw-limiter
2 P' l! M3 ~: }# E( G7 [% S: [5 fneutron net-update --qos-policy bw-limiter | --no-qos-policy% j4 C" n. Y4 e" M8 I5 T* {: U
使用举例:
4 g5 z3 g7 Q9 t2 N2 a4 V3 F* [) {# tc -s qdisc show dev tap77f1557f-fd               
& e$ B. A: Z$ A5 Mqdisc pfifo_fast 0: root refcnt 2 bands 3 priomap  1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
& b9 t; j3 I  W/ x* eSent 91481254 bytes 69639 pkt (dropped 0, overlimits 0 requeues 0)
4 g  n5 J2 G$ w5 R% hbacklog 0b 0p requeues 0. i; D/ m2 @. `# S! P
qdisc ingress ffff: parent ffff:fff1 ----------------7 D/ y5 w1 S1 \% D3 ~) S' G
Sent 155682 bytes 2195 pkt (dropped 835, overlimits 0 requeues 0)* S' y4 o) p( p2 Q4 l2 _
backlog 0b 0p requeues 0* |! W; r2 f6 U# U
# tc filter show dev  tap77f1557f-fd parent ffff:# ]* b5 T- c) f. l3 }
filter protocol all pref 49 basic
6 g) L* m. C" c5 C  p! H+ t* Dfilter protocol all pref 49 basic handle 0x1% [( j( Q+ U3 K
police 0x5 rate 30Kbit burst 3Kb mtu 64Kb action drop overhead 0b9 K- J" T! p1 B3 P0 d
ref 1 bind 1
2 z5 u0 {6 \- G& z7 t/ b, V- b# e- W% V+ [; r& G4 I, Q. x
您需要登录后才可以回帖 登录 | 注册

本版积分规则

返回首页|Archiver|手机版|小黑屋|易陆发现技术论坛 ( 蜀ICP备2026014127号-1 )

GMT+8, 2026-6-12 00:03 , Processed in 0.018912 second(s), 23 queries .

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表