整体论文梳理
介绍
- 两种发展趋势
- 快速建立起庞大的数据中心
- 将计算,存储,操作等交给云服务提供者
- 数据中心网络设计的困难
- 负载对网络设计者来说是提前未知的
- 顾客希望在商业操作系统上运行软件(产生问题:需要在不改变软件和协议的情况下提供高带宽)
- 云服务虚拟主机和物理主机之间,但是顾客希望每次都在同样物理主机上运行程序
- 数据中心网络和典型企业网络不同的原因
- 数据中心上的路由和转发协议是为特殊部署设定而设计的
- 典型的企业网络上,交流模式是可预测的
- 典型的企业网络上只有少量主机和第二路径被主要用来容错
- 数据中心的设计依赖于多路径实现主机横向扩展
- 关键问题:沿着路径同时地和动态地转发流量,从而最小化,减少链路的超额,提供可接受的聚合带宽
- 现有协议:在没有故障的情况下,为每个源/目的地选择一条路径
- 存在问题:严重利用fanout多根树
- 我们提出Hedera:多层交换机拓扑动态流调度系统,
- 从连续的路由器中收集,为流计算没有冲突的路径,以此命令交换机重新路由
- 目标:我们的目标是最大程度地提高网络总利用率(对等带宽),并以最小的调度程序开销或对活动流的影响来实现。
- 通过全面了解路由和流量需求,我们使调度系统能够看到本地交换机无法实现的瓶颈。
背景
- 大多数传统的数据中心网络拓扑是多层次树,小而便宜的边交换机连接着终端主机
- 随着建立包含数万台机器的大型数据中心的推动,最近的研究提倡横向扩展而非纵向扩展数据中心网络。网络将不再使用昂贵的具有更高速度和端口密度的核心路由器,而将利用任何给定源边缘交换机和目标边缘交换机之间的大量并行路径,即所谓的多根树形拓扑
- 多根树的拓扑结构可以在所有交流主机中提供full bisection bandwidth , 但是没有有效的协议去合理分配路径以利用高度的并行性。 → \to → 以此提出了Hedera
2.1 Data Center Traffic Patterns
- 数据来源:处于安全和隐私,没有公开的数据中心流量追踪,我们通过已公开的工作沿流量分布生成了模式,以模拟典型的数据中心工作负载以评估我们的技术。
2.2 当前的数据中心转发
- ECMP :ECMP-enable 交换机配置了给定子网的几种可能的转发路径,当一个有多条候选路径的包到达的时候,将会根据数据包包头所选字段的哈希值对应的路径转发,从而将负载分配给跨多个路径的每个子网。
- 缺点:两个或多个大的,长期存在的流可能在其哈希上发生冲突,并最终出现在同一输出端口上,从而产生了可避免的瓶颈
- VLB :该方法通过从随机选择的中间“核心”中释放来自网格中源交换机的单个数据包,从本质上保证了网格网络中等价的负载平衡。
2.3 Dynamic Flow Demand Estimation
- 重要的需求:测量所有线路的利用率是找出好的网络方案的直接方法,并将流量利用率高的链接转移到利用率低的链接。
- 问题:转移那个链接 → \to → 解决方法:测量约束链路上每个流所消耗的带宽,并将流移动到具有足够容量的备用路径。 → \to → 问题:现在的链路带宽不反应真实需求
方案设计
- Hedera 三个基础步骤
- 在边界交换机上探测大流量
- 评估大流量的自然需求,使用替换算法计算好的路径
- 将路径安装进交换机
- 用IP地址的前缀初始化核心交换机 → \to → 当新的流开始的时候,默认的交换机行为是根据哈希转发, → \to → 路径会被用至阈值 → \to → Hedera会动态计算适当的位置 → \to → 直到所有的流都比较小
- 中央调度程序该满足的要求
- 根据网络范围通信需求定期更新转发变
- 目的是将流分配给无冲突的路径,试图不将多个流放在不能满足其组合自然带宽需求的链路上
- 模型:
- 只要流持续了一段时间并且超出了限制我们就用调度算法分配路径
- 根据选择的路径,调度程序将流条目插入到该流的源容器的边缘和聚合开关中。这些条目在新选择的路径上重定向流。
- 流终止后,流将在超时后过期。
- 调度程序维护的状态仅为软状态,无需与任何副本同步即可处理故障