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

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

[复制链接]

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
发表于 2018-12-26 15:52:52 | 显示全部楼层 |阅读模式
qos基础0 D. A% o* U9 d" Y3 @
在Linux系统上,无论去使用怎样的工具,最终都要使用TC来做流量控制。TC利用队列规定建立处理数据包的队列,并定义队列中的数据包被发送的方式, 从而实现对流量的控制。Linux内核中支持的队列主要有:7 w. T8 n5 {- ]9 l8 t& Q
TBF(Token Bucket Flow令牌桶过滤器)9 E4 D0 _* ?" x( h& {: f0 L6 T4 p
pfifo_fast(Third Band First In First Out Queue先进先出队列)
* U( {! e! c; B$ cSFQ(Stochastic Fairness Queueing随机公平队列)
8 x" t- _- t. OHTB(Hierarchy Token Bucket分层令牌桶)等。8 F) f! K- Y6 k7 y' G
- U1 h9 E1 Z; F1 W
一。内容. I0 ~' y1 }* S4 I0 n. m
OpenStack在L版中支持网络qos,这是一个非常实用的功能,以前的版本中,对于虚机网络流量qos,我们只能通过Flavor来设置qos,这需要去维护很多个Flavor来保证不同的qos需求,因此Flavor-qos非常不灵活。$ Q; z) ?+ ~4 w. w+ C; h
Neutron中qos限制发送数据采用TBF队列。
( S4 e. H6 D9 D. X以下是通过限制端口来达到限速目的,也就是将qos规则绑定在虚拟机网卡对应的tap设备上限速。主要设置两个参数,一个是rate带宽,一个是burst,neutron命令中分别对应max-kbps和max-burst-kbps8 H1 j8 ^- C+ `/ B- ~5 x

9 n- i5 a5 v& {8 e二。配置8 ^) V; m4 U+ G# k% [& z
1.修改neutron-server的neutron.conf配置& P( i- ?" s6 ^
# vi /etc/neutron/neutron.conf
  |7 X6 a7 V) [4 z! e# N. Y! S[DEFAULT]7 U+ q0 q; p$ V# `5 X& C, _5 z3 y
service_plugins =neutron.services.qos.qos_plugin.QoSPlugin
4 x0 h4 L7 p5 n+ g2.修改neutron-server的ml2_conf.ini配置$ @  G( A5 I5 W# ^0 k4 }
# vi /etc/neutron/plugins/ml2/ml2_conf.ini
1 i& m2 C6 M9 I& J[ml2]2 a, m0 v% K% [; P% |
extension_drivers = qos
; r' d% n) |& i/ e3.修改neutron-linuxbridge-agent的linuxbridge_agent.ini配置
' H6 Z8 G5 @" E, V* |% a4 v# vi /etc/neutron/plugins/ml2/linuxbridge_agent.ini9 G& t( _( z3 Y0 d$ @( j
[agent]/ j$ U* [& a% J- V6 c$ q# C
extensions = qos8 ]' N4 {: |- F6 ^1 z: T
三。规则
9 ^) B* Z4 [- K0 `( {! G1.bandwidth limit rule, i& J0 @1 h* e) p  }' h- v
2.minimum bandwidth rule
6 A- N9 q2 b! Q# N" u四。使用+ y2 n1 H: t' i! L
1.创建qos-policy,并给policy设置rule
) d+ H: ~$ ~) G$ q. _4 xneutron qos-policy-create bw-limiter8 j7 N) s0 W: M8 X: j; i  \
neutron qos-bandwidth-limit-rule-create bw-limiter --max-kbps 3000 --max-burst-kbps 300
9 {, _$ F( l6 R* |2 t  Z2.给port或网络设置qos-policy4 H- V; P# s4 O$ m* u* Y; k
neutron port-create --qos-policy bw-limiter
8 y6 ^+ W3 T9 Ineutron port-update --qos-policy bw-limiter | --no-qos-policy. J" t9 X2 I) ~9 ^, y, k) d
neutron net-create --qos-policy bw-limiter
8 x7 {+ Y; v1 R& b: Oneutron net-update --qos-policy bw-limiter | --no-qos-policy* i% `6 W6 f$ c6 C$ s/ y* r1 q
使用举例:
/ x* p5 x6 K& N+ j( g! ?( J, o# tc -s qdisc show dev tap77f1557f-fd               
3 P8 Q) D( @' Q8 vqdisc 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
& g: i  l- K+ y' Q% `Sent 91481254 bytes 69639 pkt (dropped 0, overlimits 0 requeues 0)1 _7 |1 r+ r5 |* Z' G
backlog 0b 0p requeues 06 x# D' R, o" J, e: C
qdisc ingress ffff: parent ffff:fff1 ----------------0 Y2 ^5 d+ a* I2 z
Sent 155682 bytes 2195 pkt (dropped 835, overlimits 0 requeues 0)
1 [4 P! P, @" C8 Wbacklog 0b 0p requeues 02 N( w9 b' x2 F3 ]
# tc filter show dev  tap77f1557f-fd parent ffff:, l2 S* x, W" i9 X  d9 A' d/ }$ G
filter protocol all pref 49 basic" j1 @( G( W" A3 R  N2 Q9 F# o
filter protocol all pref 49 basic handle 0x11 r8 V0 Y4 G( b- k2 p
police 0x5 rate 30Kbit burst 3Kb mtu 64Kb action drop overhead 0b
9 ~; u! y" K+ T  `9 i3 m1 dref 1 bind 1
( A, K* J- d- W. u9 E% N9 U& S6 F! U$ {" i1 e8 @2 f
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-12 01:01 , Processed in 0.018450 second(s), 23 queries .

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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