易陆发现互联网技术论坛

 找回密码
 开始注册
查看: 3978|回复: 0
收起左侧

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

[复制链接]
发表于 2018-12-26 15:52:52 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?开始注册

x
qos基础' e) ?6 y! T! m3 @. }7 {( [9 Y/ ?/ s
在Linux系统上,无论去使用怎样的工具,最终都要使用TC来做流量控制。TC利用队列规定建立处理数据包的队列,并定义队列中的数据包被发送的方式, 从而实现对流量的控制。Linux内核中支持的队列主要有:
2 \3 W0 R2 u  [! z+ \5 _TBF(Token Bucket Flow令牌桶过滤器)
! H9 Z2 w* k) z: Tpfifo_fast(Third Band First In First Out Queue先进先出队列)# w- P" f: x- B+ ^+ y
SFQ(Stochastic Fairness Queueing随机公平队列)2 ]# j  r! V& |& G
HTB(Hierarchy Token Bucket分层令牌桶)等。. H! K! h5 ^1 N" ^
4 U5 }0 |# k/ \, D3 `9 R" U- \
一。内容/ j! A) P" ~" N3 E* t& Q
openstack在L版中支持网络qos,这是一个非常实用的功能,以前的版本中,对于虚机网络流量qos,我们只能通过Flavor来设置qos,这需要去维护很多个Flavor来保证不同的qos需求,因此Flavor-qos非常不灵活。4 l: |0 Q) k. U; o1 H+ [
Neutron中qos限制发送数据采用TBF队列。) |& t+ W& y' Q: _- P4 q
以下是通过限制端口来达到限速目的,也就是将qos规则绑定在虚拟机网卡对应的tap设备上限速。主要设置两个参数,一个是rate带宽,一个是burst,neutron命令中分别对应max-kbps和max-burst-kbps
" a9 t, ^. R  G
( S( z- y; P; a' ]/ `二。配置
+ w/ T$ \/ x& Y4 ?1.修改neutron-server的neutron.conf配置' F6 P( g5 o/ D* v, z- l7 q
# vi /etc/neutron/neutron.conf+ S# I- W$ \- k$ v2 p/ W1 i' D
[DEFAULT]
* Z1 n1 @  Q4 ~- j! u/ h# N8 l4 V; @service_plugins =neutron.services.qos.qos_plugin.QoSPlugin
9 i  ^2 K/ c8 Z5 M1 z" a2.修改neutron-server的ml2_conf.ini配置7 w* f4 R6 s, o: @8 u+ r) b- F6 c
# vi /etc/neutron/plugins/ml2/ml2_conf.ini
# o* ]) ]. O2 f# S' n. m4 e[ml2]
0 H: N/ t: K, I- @+ b9 Bextension_drivers = qos7 z  p( Q) U( _" k7 w! R/ r
3.修改neutron-linuxbridge-agent的linuxbridge_agent.ini配置+ a/ m4 k$ n; t
# vi /etc/neutron/plugins/ml2/linuxbridge_agent.ini
9 o# K4 c& u- t, j$ ^[agent]2 n5 v; P% ~" W* \4 D5 S
extensions = qos/ U  r! i. o3 f; U0 B
三。规则3 i( D9 L; h7 Y1 o% Q- ^
1.bandwidth limit rule
1 v& w# }2 w: C, M2.minimum bandwidth rule+ I: O# m6 o3 I, L! F* [! _( F
四。使用
, n9 ?5 n7 A7 P5 x, |- @8 y: d1.创建qos-policy,并给policy设置rule5 d, F0 J5 V! k* h& q' C
neutron qos-policy-create bw-limiter
0 y! Y/ e! K3 k( }. P& cneutron qos-bandwidth-limit-rule-create bw-limiter --max-kbps 3000 --max-burst-kbps 300( p* ^& O; q" k, |1 m% D$ r
2.给port或网络设置qos-policy8 K8 r1 i+ g: s4 Y2 K, `; \8 p
neutron port-create --qos-policy bw-limiter
8 i# a( d9 ^- y. x2 q" Q0 \- k( jneutron port-update --qos-policy bw-limiter | --no-qos-policy
2 }+ B& `) t1 zneutron net-create --qos-policy bw-limiter# C% n9 S" K' Y* o6 ]
neutron net-update --qos-policy bw-limiter | --no-qos-policy
" \- l8 }" P! w4 @6 v2 A1 m: L使用举例:
+ x3 O, d! L; ^- v, \0 E# tc -s qdisc show dev tap77f1557f-fd               3 A7 Y4 B! \+ ~
qdisc 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
! I$ f# c& j" v( s5 s6 HSent 91481254 bytes 69639 pkt (dropped 0, overlimits 0 requeues 0). [4 B3 f  S& f- a# M! J1 ]
backlog 0b 0p requeues 0" w5 h/ o9 ~' z1 M
qdisc ingress ffff: parent ffff:fff1 ----------------
% {6 `; [: I* K1 u- ^" bSent 155682 bytes 2195 pkt (dropped 835, overlimits 0 requeues 0)5 s0 N& K  t8 o+ L3 a
backlog 0b 0p requeues 0
* s! P4 G( d% D! [* t) \+ `# tc filter show dev  tap77f1557f-fd parent ffff:
/ f4 S( J7 v/ N" ]( lfilter protocol all pref 49 basic% \$ f  h( \2 X# l" H1 K* r
filter protocol all pref 49 basic handle 0x1
0 B! H+ Z6 B  O7 O9 a& Zpolice 0x5 rate 30Kbit burst 3Kb mtu 64Kb action drop overhead 0b  B% b! i9 [( {/ v9 L4 N, C
ref 1 bind 18 p2 Q9 e  }2 b3 `+ j

1 z5 g5 n3 Y5 V4 B5 x6 z# d
您需要登录后才可以回帖 登录 | 开始注册

本版积分规则

关闭

站长推荐上一条 /4 下一条

北京云银创陇科技有限公司以云计算运维,代码开发

QQ|返回首页|Archiver|小黑屋|易陆发现技术论坛 点击这里给我发消息

GMT+8, 2026-4-8 12:04 , Processed in 0.058530 second(s), 22 queries .

Powered by Discuz! X3.4 Licensed

© 2012-2025 Discuz! Team.

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