OmniMon
近日关注黄群老师sketch论文,由老师推荐拜读文章,为防止之后记忆凌乱,特整理作此笔记,供日后学习使用
背景介绍
现代数据中心承载着许多关键应用程序,从而对网络管理提出了很高的要求。管理员需要高效的网络遥测解决方案来监控海量流量并了解其全网行为。理想情况下,我们在开发网络遥测时,既要追求资源效率,又要追求准确性(resource efficiency and full accuracy)。
- 为了提高资源效率,网络实体(例如:终端主机和交换机)在计算、内存和带宽方面面临各种各样的资源约束。所以,遥测系统应该限制其性能开销,不能耗尽任何特定资源。尤其是网络遥测的性能开销必须远低于路由、NAT和防火墙中的普通数据包处理。需要注意的是,实现资源效率并不意味着随着网络规模的增长,资源使用量保持不变,相反,这里的资源效率目标是使网络遥测的资源开销远低于其他网络操作的资源开销。
- 为了达到完全的准确性,遥测系统应该具有网络内的、始终在线的可视性,覆盖所有流量和所有实体,并提供无差错的流量级统计数据。
- 传统的想法将资源效率和完全准确视为一种设计权衡。考虑一个极端情况,按流监控(如Trumpet[49]和Cisco Tetration[15])的目的是进行细粒度、无差错的测量,但可能会产生无限制的资源使用(保证完全准确,不保证资源使用限制);另一个极端情况,粗粒度监控(如SNMP[12]、sFlow[64]和NetFlow[53])提供了尽最大努力的测量,但不保证准确性(保证资源使用限制,不保证完全准确,只是尽最大努力测量)。在这两个极端之间,许多遥测系统采用了近似算法[5,26,28,29,38,48,62,63,65,72,75],以实现具备可证明有界误差的资源高效率利用方案,或者实现只关注感兴趣的流量的事件匹配技术[25,33,52,69,74,79]。
本文贡献
本文提出了OmniMon,这是一种新型的全网架构,它可以仔细协调所有实体(即终端主机、交换机和控制器)之间的遥测操作,主要目标是同时实现大规模数据中心的流级网络遥测的资源效率和完全准确。具体来说,OmniMon以分割-合并的方式重新构建网络遥测架构。
- 通过分割,OmniMon将网络遥测分解为部分操作(partial operations),并在不同实体之间调度这些部分操作。这种设计充分利用了整个网络的可用资源,避开了各个实体的资源限制。
- 通过合并,OmniMon协调所有实体协同执行部分操作。它结合了终端主机和交换机(在数据平面)的优势,在整个网络中实现针对每个流的无错误的跟踪;同时,它的控制器(在控制平面)对所有终端主机和交换机进行全网资源管理和集体分析。请注意,OmniMon可在整个网络中的终端主机和交换机子集上逐步部署(incrementally deployable)。
就像任何实际的分布式系统一样,OmniMon 的全网架构设计需要解决网络遥测的可靠性问题(reliability concerns)。因此,OmniMon融合了一致性和责任性(consistency and accountability)这两个可靠性保证,在实际部署中既能保持资源效率,又能保证完全的准确性。 - 在一致性(consistency)方面,本文提出了一个混合一致性模型的全网epoch同步机制(epoch synchronization mechanism),如: (i)所有的实体在大多数时间都在同一个epoch,它们的epoch边界只存在很小的时间差(最多只能达到60𝜇s); (ii)每一个数据包在传输过程中,即使是在跨epoch网络延迟的情况下,在同一epoch也是同步的。
- 在责任性方面(accountability),我们规划了一个线性方程系统,用于每台交换机、每个流量的丢包推理,并通过考虑数据中心网络特性,确保在普通情况下存在唯一的解决方案。
2.1OmniMon设计
目标:同时实现资源效率和full accuracy
实现方法根本:重新构建受资源约束的所有实体之间的协作
解决了三个经典问题:如何在不同实体之间分配遥测任务?不同实体间应如何协调?在不可靠时,如何实现可靠的协调?