大家好,又见面了,我是你们的朋友全栈君。
1、背景:
问题:CDN的场景下,同组cache机器规划不规范,额外产生级联带宽,造成级联带宽跑满,导致丢包和速度变慢;
愿景:
1、平台支持扫描cache机在网络中的物理位置信息,作为cache机规划的依据,避免产生级联带宽;
2、支持出口带宽和级联带宽的报警,当出现出口带宽大于级联带宽时,能报警提醒。
当前,交换机使用两层交换机堆叠,外网核心下接 外网接入;
外网核心下边一般不接服务器,或者只接入少量的如LVS,NAT,交换机等功能的服务器,外网接入下接cache服务器集群
机房交换机和机器的连接示意图如下:
部分老节点,外网核心实际上是复用的,既接服务器,又接交换机,连接示意图如下:
级联带宽(外网核心和外网接入之间的带宽)跑满,会出现节点丢包的情况;
目前,级联带宽一般为40G~60G之间(打算扩为80G)。
2、问题
同组机器接在不同交换机下,组内会产生跨级联交换机的内网带宽,跨级联带宽跑满会导致丢包;
3、分析
现状:
在做cache组规划时,没有机器在网络链路中的位置作为参考,很可能出现接在不同外网接入交换机下的机器规划在同cache组内,产生了跨级联带宽。
以下分别针对同组cahce机器:接在同一个外网接入交换机下、不同外网接入交换机下、一台cache机接在外网接入交换机下,另一台cache机接在外网核心交换机下的三种场景,分析交换机、cache机之间的内容传输大小;
假设:
用户请求到host1,host1上没有缓存文件,host2上有缓存文件。
场景1:host1与host2在同一台交换机下。
过程1、2、3:用户的请求分别经过外网核心、外网接入,到达host1;
过程4、5:host1没有命中相关缓存文件,通过外网接入1,向host2请求缓存文件;
过程6、7:host2响应host1并发送缓存文件(数据经过外网接入1)
过程8、9、10:host1响应客户端,并通过外网接入1、、外网核心将数据响应给客户端。
内网传输:
级联2 入带宽 = 1 * 请求带宽
级联2 出带宽 = 1 * 响应带宽
场景2:host1与host2在不同的外网接入交换机下。
过程1、2、3:用户的请求分别经过外网核心、外网接入,到达host1;
过程4、5、6、7:host1没有命中相关缓存文件,通过外网接入1,外网核心,外网接入2 向host2请求缓存文件;
过程8、9、10、11:host2响应host1并发送缓存文件(数据经过外网接入2、外网核心、外网接入1)
过程12、13、14:host1响应客户端,并通过外网接入1、、外网核心将数据响应给客户端。
内网传输:
级联1 入带宽 = 1 * 请求带宽
级联1 出带宽 = 1 * 响应带宽
级联2 入带宽 = 1 * 请求带宽 + 1 * 响应带宽
级联2 出带宽 = 1 * 请求带宽 + 1 * 响应带宽
场景3:host1与host2在不同的台交换机下。
过程1、2、3:用户的请求分别经过外网核心、外网接入,到达host1;
过程4、5、6、7:host1没有命中相关缓存文件,通过外网接入1,外网核心,外网接入2 向host2请求缓存文件;
过程8、9、10、11:host2响应host1并发送缓存文件(数据经过外网接入2、外网核心、外网接入1)
过程12、13、14:host1响应客户端,并通过外网接入1、、外网核心将数据响应给客户端。
内网传输:
级联2 出带宽 = 1 * 请求带宽 + 1 * 响应带宽
级联2 入带宽 = 1 * 请求带宽 + 1 * 响应带宽
级联4 出带宽 = 1 * 响应带宽
级联4 入带宽 = 1 * 请求带宽