作者介绍
熊亚军,目前在百度负责 IT (网络、服务器)设备监控平台研发。
主题简介
本文将主要从以下几个部分同大家探讨:
1.多数据中心的特点及计费模式
2.数据中心的外网流量特点
3.外网流量优化的困难和挑战
4.如何更充分利用付费带宽
5.未来展望思考
一、多数据中心的特点及计费模式
背景:随着互联网业务的快速发展,大型互联网公司数据中心的数量和网络复杂程度也在急速上升。
多数据中心的网络
和Google 的网络类似,大型互联网企业的网络一般可以分为:
◆数据中心内部网络(Data Center Networks)
◆WAN网(即Wide Area Networks)
其中, 按照流量的方向,可将WAN网分为两张骨干网:
◆内网:数据中心之间互联的网络(Inter-DC WAN,类似Google B4),用来连接互联网企业在地理上分布的多个数据中心。
◆外网:面向Internet用户访问的网络(Internet-Facing WAN),用来提供面向用户的云服务,如搜索、视频、下载。
带宽的计费模式
互联网企业的外网(Internet-Facing WAN)需要向运营商支付高额的费用。
并且,随着云服务的蓬勃发展,Internet用户数量和流量的急剧增加,网络容量也从数年前的10G快速增长到1T,10T甚至更大。
在数据中心的成本中,外网的带宽费用越来越引起关注。其中,常见的外网计费模式有以下几个:
1.峰值计费:对数据中心出口的带宽周期(如5分钟)采样,按照一个月的***带宽采样值进行计费。大多数数据中心都采用峰值计费的收费模式。
2.95计费:同样进行周期采样,去掉***5%的采样点,按照剩下的***带宽采样值进行计费。
3.日均峰值计费:同样进行周期采样,每天有一个带宽峰值,按照一个月内每天的带宽峰值的均值进行计费。
二、数据中心的外网流量特点
一个简单的峰值计费例子
峰值计费模式下,根据数据中心一个月的出口带宽峰值进行收费。
如下图所示,为某互联网公司数据中心的流量图,这个数据中心在***天的夜里22点到达峰值,依据该点的带宽峰值进行计费。
很显然,在非峰值时刻,该数据中心可以(免费的)使用更多流量。
如下图的绿色部分,我们将数据中心能免费使用的流量称为该数据中心的空闲带宽。
在峰值计费的收费模式下,每个数据中心都有可观的空闲带宽,而这些带宽并没有被充分的利用起来。
特别的,某些特殊的日子会导致非常高的流量峰值,如京东618、双十一或某部热门剧集发布。
数据中心在这个月其它时间的带宽值都远远小于流量峰值,存在大量空闲带宽。
一个日均峰值计费例子
有些数据中心采用日均峰值计费的模式。
和峰值计费类似,日均峰值的数据中心也有大量空闲带宽没有被充分利用起来。
如下某互联网公司数据中心的流量图中,非当日峰值的时刻,这个数据中心的流量远小于当日的峰值,也存在非常可观的空闲带宽。
#p#
三、外网流量优化的困难和挑战
由于峰值计费的收费模式,每个数据中心经常存在非常可观的空闲带宽,我们希望可以充分利用这些免费的空闲带宽,进而优化外网流量。
然而,面临以下这些困难和挑战:
1.面向Internet用户流量的实时性
从上面的数据中心流量图可以看到外网流量的波动规律。
例如,一般早上6点左右处于流量的波谷,在晚上到达流量的波峰。
一个直观的想法是将波峰的流量迁移到波谷,那么自然能极大的降低计费的流量值,从而降低付给运营商的带宽费用。
但是,面向Internet用户的流量是实时的,不可能将用户在晚上10点的观看视频产生的流量延后或提前到早上。
更不用说其它实时性要求非常高的业务,如搜索、SNS、网购、游戏等。
2.流量峰值的不确定性
上面的例子中,事先给出了数据中心的计费带宽值,然后再计算出数据中心在其它时刻的空闲带宽。
然而在实际中,我们难以事先得知这个月的哪个时刻到达计费峰值以及计费峰值是多少,也就难以计算该数据中心当前可以免费的接纳多少流量。
此外,常见的外网流量调度方式是修改DNS的配置,这存在一定的延时(新的用户请求到来才会改变当前的流量分布)。
然而,由于大规模用户行为存在一定的规律,从上面的流量图中,可以直观的看到数据中心每天的流量图存在一定的重复性和规律性。
并且已有成熟的机器学习模型和研究工作,可对流量进行较为准确的预测。我们可以基于预测的流量值,计算数据中心未来(较短的)一段时间内的空闲带宽。
四、如何更充分利用付费带宽
接下来我们考虑如何充分利用各数据中心的空闲带宽,从而更充分的利用付费带宽。
1.减少其它峰值计费DC的付费带宽
上图是两个DC的带宽曲线,其中:DC1在下午4时到达峰值,DC2在晚上23时到达峰值。
可以看到,在下午4时,DC2没有到达峰值,具有一定的空闲带宽。
这时,可将DC1的部分流量调度到DC2;晚上23时再将DC2的部分流量调度到DC1。
这样简单的流量调度,可以同时降低这一天DC1和DC2的流量峰值,从而降低了付给运营商的带宽费用。
当数据中心数量较多,并且不同数据中心部署用户行为差异较大的业务时,通过设计合适的流量调度算法,能大幅度的降低多数据中心的外网付费带宽。
这个调度方式存在一定的局限性:不同数据中心到达计费峰值的时刻比较接近;特别是部署相同业务的数据中心,或举办网络活动导致流量特别高的时候,所有的数据中心差不多同时到达这个月的流量峰值。此时没有数据中心存在空闲带宽,可用于接纳其它数据中心计费峰值的流量。
2.减少其它日均峰值计费DC的付费带宽
我们用上述峰值计费模式DC的空闲带宽来接纳日均峰值计费模式DC的流量,优化后的流量图如下图所示:
可以看到日均峰值计费模式DC每天的计费带宽值都有一定的减小。
不同于峰值计费的DC,日均峰值计费DC任何一天的计费带宽值的减小,都能减小这个月需要支付给运营商的带宽成本。
即使某一天所有DC都同时到达这个月的峰值,但这个月的其它天里,存在DC能接纳该日均值计费DC的峰值流量,就能降低该DC的带宽成本。
因此,降低日均峰值计费DC的付费带宽,一定程度上放宽了流量调度的局限性的限制。
3.利用外网空闲带宽进行内网流量的传输
利用多数据中心的空闲带宽来动态的减少(峰值计费或日均峰值计费模式)数据中心的带宽成本,都只用到了忙时(如上午11点到凌晨0点)的空闲带宽。
显然,数据中心忙时的空闲带宽很小,大部分的空闲带宽都集中在闲时(凌晨0点到上午10点)。
而这时用户访问产生的外网流量也很小,不能利用这时的大量空闲带宽。
分布式存储系统、云服务和搜索等业务,需要利用内网进行实时性要求不高的传输作业。
这些作业产生的背景流(Background Flow)占用了大量的内网带宽资源。
利用数据中心闲时的大量空闲外网带宽资源,进行可容忍延时的内网作业的传输,能有效的降低内网链路拥塞和带宽资源紧缺的状况。
需要注意的是,相对内网来说,外网的延迟和丢包比较严重。利用外网空闲带宽传输内网流量时,要将内网和外网统一调度,并充分考虑外网的传输性能,以免影响内网作业的性能。
五、后续展望
通过多数据中心的外网流量调度来优化计费带宽成本,存在一定的局限性,并且不能充分利用数据中心闲时的大量空闲带宽资源。
此外,利用外网空闲带宽进行内网流量的传输,需要考虑内外网统一配合以及外网传输质量等问题。
总的来说,多数据中心的外网流量调度存在诸多困难。然而,外网带宽的巨大成本值得去直面并一一解决这些困难。
如何一起愉快地发展
“高效运维”公众号(如下二维码)值得您的关注,作为高效运维系列微信群的唯一官方公众号,每周发表多篇干货满满的原创好文:来自于系列群的讨论精华、运维讲坛线上精彩分享及群友原创。“高效运维”也是互联网专栏《高效运维***实践》及运维2.0官方公众号。
提示:目前高效运维新群已经建立,欢迎加入。您可添加萧田国个人微信号xiaotianguo8 为好友,进行申请,请备注“申请入群”。
重要提示:除非事先获得授权,请在本公众号发布2天后,才能转载本文。尊重知识,请必须全文转载,并包括本行。