论文部分内容阅读
数据中心是数据传输、计算和存储的中心,为支撑其业务,数据中心内部网络设备需要进行大量的配置。复杂琐碎的网络设备配置耗费了系统管理员巨大精力,整个过程成本高耗时久,人工配置失误频繁。由于网络设备型号的多样性以及配置命令的复杂性,人工配置失误不可避免地会出现一些非预期的配置状态,这不仅可能导致数据中心网络中断,还可能对数据中心的运行安全留下隐患。自动配置系统是解决上述问题的可行方案,但目前并没有面向数据中心用于网络设备配置的自动配置系统。 本文面向数据中心网络设备设计并实现了基于规则的配置编排系统。它能够验证配置条目的配置可行性,生成配置条目的配置顺序,解耦配置编排逻辑与系统实现代码,提高配置编排逻辑的可维护性,降低配置编排逻辑实现难度。基于规则的配置编排系统有利于保证配置可靠性,减少配置错误,提高配置效率。 本文的主要贡献包括以下三点: (1)设计并实现了一种用于定义配置条目间关系的规则描述语言 数据中心网络设备通常需要配置端口属性、VLAN、光电转换等协议或功能,这些协议或功能间多存在依赖冲突关系,配置编排系统需要基于这些关系来判断配置条目的配置可行性及配置生成顺序。本文根据关系产生粒度将关系划分为四种类型,并基于此设计了一种用于定义配置关系的规则描述语言,该语言能够描述配置条目间不同粒度的依赖冲突关系,且语法简单。本文使用Go语言实现了该语言的语法解析器。 (2)提出了一种无规则冲突的配置顺序生成方法 由于规则之间的冗余或矛盾会导致配置顺序无法生成结果甚至产生错误的结果,所以在配置顺序生成之前首先要进行规则验证。本文提出了一种无规则冲突的配置顺序生成方法,能够检测规则间的三类常见冲突,保证了配置顺序生成方法的可靠性。为提高配置顺序生成时对关联规则进行查找的效率,本文设计了一种基于哈希的规则索引存储结构,使得关联规则查找的时间复杂度由O(n)降至O(1)。 (3)设计并实现了配置编排系统 配置编排系统通过对外提供调用接口,对传入配置条目集合进行配置编排。该系统分为规则库子系统、数据总线子系统和任务管理子系统。规则库子系统负责对规则进行管理和冲突检测。数据总线子系统用于支持系统间消息通信。任务管理子系统负责配置顺序生成、外部调用请求处理及系统的可靠性保证。通过对规则解析验证、配置顺序生成、系统任务恢复等关键功能进行验证,确认系统各功能符合预期。