由UnitedStack网络组提出并创建的Steth项目,在上周日(1月17日)正式并入Big Tent,成为OpenStack正式项目。该项目主要针对网络故障排查和部署前的硬件网络环境检查。
这是自Big Tent模式确认以来,UnitedStack有云***个并入Big Tent的项目,也是继Scalpels项目和pandaman之后,来自中国的项目再次被社区接纳。作为OpenStack开源社区的一员,我们既是受益者,也是社区的建设者和所有人。
Steth项目因何而来?——解救忙碌的网络工程师
Steth项目是怎么出现的?因为网络工程师实在太累了。这种感觉不是一个人,而是在UnitedStack有云网络团队每个人的认知。
“我们每周都会有新项目或者新POC,很多时间都花在了调试硬件网络的连通性或者性能上。Steth的初衷就是为了解决这些问题。”Steth项目的核心贡献者、UnitedStack有云SDN网络部工程师苌智如是说。
Steth项目的核心贡献者、UnitedStack有云SDN网络部工程师苌智
当前,UnitedStack有云业务爆发式增长,部署规模逐步扩大,背后是研发和支持团队高效运转和鼎力支持。但是,让网络工程师最懊恼的是在部署过程中遇到的很多问题和Neutron 没有任何关系。比如 Vlan 配错了、交换机上Vlan 没放行、Floating IP 网关没有起、甚至用于 VxLan 隧道的 Endpoint IP配错了,此外一些奇怪的现网还会带来一些例如策略路由造成的简单检查无法暴露但虚拟机却无法发送广播报文、光纤质量引发的跨机柜通信带宽异常等等问题。
这些“简单的小问题”在传统网络中也会遇到一些,只是当网络遇到OpenStack,问题叠加,就更难诊断。但是这些问题会占用工程师的大量时间,需要逐一排查解决。
Steth项目的核心贡献者、UnitedStack有云SDN网络部工程师姚威
“对于新部署的Region,我们总会遇到很多莫名的网络配置或性能问题,Steth能够迅速抓包分析数据包路径,定位问题所在;对于生产Region,可能会被虚拟网络连通性困扰,Steth能够在虚拟设备上发包快速模拟问题现场。”Steth项目的核心贡献者、UnitedStack有云SDN网络部工程师姚威如是说,正是这样的愿景诞生了Steth。
Steth项目解析——如何完成网络检查
网络的的稳定性是是OpenStack云平台稳定可用的基石。Steth的出发点很简单,就是在Neutron 内置有一个 sanity test,用于检查本机的情况,Steth 可以作为 Sanity 的分布式补充,检查 Neutron 运行的整个环境。
具体来说,Steth集成了一系列实用的脚本和第三方工具(包括iperf、tcpdump等),并能够模拟虚拟机发出 DHCP 请求、ARP 请求,帮助网络运营者实时追踪VM网络的状态。
在上面的架构图中,可以看到Steth是无状态的CLI和控制器,通过 Agent可以读取配置文档。通过与OpenStack的交互,在需要时向相关的Agent发送RPC请求。此外,Steth的Agent需要安装在每一个计算节点和网络节点之上,Steth的控制器中的配置文件为其指定IP地址。“通过Steth我们可以使用CLI远程调用运行在个节点的Steth-Agent提供的API,快速定位网络问题,为运维人员提供准确的排查思路,从而节省运维人员花费在定位网络问题上的时间。”苌智解释道。
需要指出的是,Steth项目除了可以应用在OpenStack环境以外,还可以使用在其他的分布式网络环境中。这个监测工具,基于C/S模式运行,能够在OpenStack网络环境部署前或者运营过程中对网络问题进行精准定位。目前,Steth仅适用于ML2网络。
网络监测——为什么不能借用其他项目?
如果说自动化是解决大规模部署之后,网络监测的必由之路,那么在OpenStack的众多项目中是否有一款适合的呢?事实上,找成熟项目也是UnitedStack有云网络组最初的想法,但是很快大家就发现,这条路行不通。
Steth项目的核心贡献者、UnitedStack有云SDN网络部门PTL 王为
“在设计Steth之前,我们考察了Zabbix和Scalpals等同类工具。但感觉现有的工具仍然无法满足我们在大规模部署过程中的网络运维需求。”Steth项目的核心贡献者、UnitedStack有云SDN网络部PTL王为说,“实际上,Mirantis也同样遇到了网络自动化运维的问题,他们在FUEL中集成了 network-checker,这个工具后来被剥离出来成为独立项目。但network-checker相对简单、代码质量和把控比较糟糕,无法满足我们的需求。Zabbix的技术架构相对僵化,Scalpals在解决新集群部署方面还有一些局限。”
既然没有合适的项目,那我们就开发自己的项目并且快速开源,帮助每一个业务快速增长的公司摆脱疲于奔命的现状吧。姚威说:“我们想要提供一条OpenStack网络的无痛部署和运维的途径,节约老手时间,免除新手烦恼。”
花絮——Steth项目并入BigTent
在正式解读了Steth项目之后,创造这一项目的UnitedStack有云网络组集体登场,热烈欢迎,
Steth项目的审阅时间非常短,只有四天的时间,期间还因为重名的问题耽误了一天半。因为Steth的使命正是社区亟待解决的问题,所以快速得到了认可。
除了Steth项目,UnitedStack有云还有另外一个项目正在准备向社区提交,敬请期待好消息。
此外,Steth项目从成立到现在只有不到两个月的时间,它还有很多不成熟的地方。我们希望有更多的OpenStack开发者可以加入,让我们共同打造一个快速交付,持续运维的OpenStack网络!