查看原文
其他

网络亚健康,比变种病毒更难检测

IO Ripper XSKY星辰天合
2024-11-01


亚健康,也称Fail slow,是指硬件可以正常运行但性能严重降级的一种状态。硬盘模块、网卡、CPU、内存等硬件部件均有可能进入亚健康状态,当这些硬件进入亚健康状态后,如果存储系统未采取有效监控和容错措施,则会导致存储系统响应主机的时延增大、IOPS/BPS降低,甚至会因无法响应主机导致主机业务中断。


一般的分布式系统都能够应对网络故障 (fail-stop) 问题,保证系统高可用。但却少有分布式系统能较好的解决网络亚健康 (fail-slow) 问题。在XSKY SDS V5中,XSKY亚健康2.0监控工具提供了先进的可靠性监测功能,超越常规的IT监控,引入数学模型和统计框架,分析导致系统性能降级的部件级故障和周边系统故障,实现对亚健康网络和磁盘亚健康的监测,对故障部分进行主动隔离,提高系统的健壮性。


本期内容,XSKY星辰天合技术专家带你走进亚健康,看看比Delta变种病毒更难检测的网络亚健康,XSKY亚健康2.0是如何做到的。


一个真实的案例




我们从一个真实发生的案例说起。2019年某客户发生了一起由网络亚健康导致业务不稳定,售后很快排查出故障原因是因为网络链路亚健康导致集群有slow io发生,进而发生业务端连接存储不可访问。


售后马上给出解决方案是:1、断开有问题的链路,优先恢复业务;2、排查网络链路上的硬件问题,进行更换。


售后当时登录存储系统监控界面时,发现存储延迟非常高(如下图),节点3持续有网络错误包,而且存储内部大量slow io,客户的ESXi上的虚拟机受到了影响。



【图1:存储池性能监控有极高时延】



【图2:节点3有网络错误包】



【图3:节点3上网卡错误包严重】


在16:37:00的时候,客户手工ifdown该网口后,存储延迟立马下降,持续观察30多分钟,没有新slow io报错,存储延迟也显示正常,客户的vCenter再也没有其他报错了。



【图4:存储池时延下降】


依照售后建议,客户通过交叉测试和更换的办法进行排查。首先更换存储端光模块、交换机端光模块、交换机端口、光纤线后,发现依旧存在错误包问题。然后更换了网卡但错误包现象还很顽固。最后更换上了原厂的交换机端光模块,问题得以解决,最终确认是光模块兼容性导致的问题。


从这个案例可以看出,网络亚健康的发生,对客户的业务会产生严重的影响。虽然部分网络亚健康能够很快定性、定位并进行手动恢复,但不能自动发出告警,并进行自动恢复、隔离。


而且诱发网络亚健康的因素有很多,排查根因非常繁琐,有时候需要花很长时间才最终找到根因。通过这种案例,我们发现XSKY SDS V3版本和V4.0版本产品的不足之处,并开始作出改进。


亚健康1.0  可快速告警但也存在误报




虽然V3版本和V4.0版本有网卡丢包、错包的统计信息,但是没有对应的告警。所以我们在V4.2 版本增加了网络丢包、错包的告警。


但网络亚健康非常复杂,所以我们在V4.2版本开发了亚健康1.0功能,专门对于网络链路,取OSD之间OP请求的平均网络时延作为检测指标,并通过设置阈值来触发网络亚健康告警。


网络丢包和错包的告警可以快速定位部分网络亚健康场景,但也存在误报的情况。

亚健康1.0能够识别单节点明显的网络高延迟场景,但是对于复杂场景力不从心,有时候客户反应集群告警网络亚健康,但是存储监控界面检查IO延迟正常,而且没有丢包。


为什么网络亚健康那么难以检测、识别、定位、隔离呢?为了弄清楚这个问题的复杂程度,我们需要深入研究网络亚健康场景,这就先从业界对于网络亚健康的分类和统计开始。


网络亚健康占比26%




亚健康,也叫做 “fail-slow” fault,在这种情况下,硬件或软件组件仍然可以运行(不会停止工作),但性能远低于预期。


著名的超融合厂商Nutanix在2017年统计了7个月内从39,000个节点部署中收集了232个经过验证的亚健康案例,相关分类和根因如下表所示。在Nutanix的统计中,亚健康单节点年平均故障率是1.02%,其中网络亚健康占比26%。


【表1:Nutanix的亚健康案例统计】


另外,芝加哥大学在2018年调查了101起大型分布式生产环境中性能故障(亚健康)报告,相关分类和统计如下表所示。网络亚健康占比25.8%。


【表2:芝加哥大学收集的亚健康案例统计】


研究发现亚健康(fail-slow)的根因有很多种。


对于网络的内部根因,包括设备错误和固件问题,比如:固件错误(错误的路由算法,多播性能不佳)、网卡驱动错误、有问题的交换机-网卡自动协商、坏的光模块、光衰减、设备缓冲区中的位翻转、丢失数据包会导致 TCP 重试或崩溃。


对于网络的外部根因,包括温度、电源、配置问题,比如:高温会导致网卡和交换机出现损坏的数据包和大量 TCP 重传、受压的光纤线、交换机和防火墙配置不当、MTU配置不当、Bond配置不当、系统内核网络参数配置不当、光模块/光纤线松动等。


研究也同时发现亚健康的症状有四种之多。


  • Permanent slowdown

  • Transient slowdown

  • Partical slowdown

  • Transient stop



【图5:亚健康的四种症状】

以上研究表明,亚健康发生的频率很高,单节点年平均故障率能够达到1.02%,其中网络亚健康占比达到26%。并且亚健康的根因和症状有很多种。


除了分析外部案例以外,我们也分析了内部有完整记录的亚健康工单报告,并组织了研发、售后、测试同事的多次深度复盘和讨论。


诸多案例表明,分布式存储系统必须要有亚健康检测功能。但要做好亚健康检测不是一件容易的事情。


为什么网络亚健康检测那么难?




一般来说,解决一个大问题之前,需要对这个问题的复杂程度有深入的理解,尽量消除unknown unknowns,然后才能设计正确的解决办法,或者走在正确的路线上。


网络亚健康难以检测的原因有:

  • 场景复杂,根因众多,症状也很多,难以用单一标准和框架去衡量
  • 指标metric众多,到底使用哪个为准?
  • 业务大压力和慢节点如何区分
  • 准确度和灵敏度之间的权衡。比如为了保证客户SLA,则需要提高灵敏度,但是高灵敏度肯定会带来误判(也就是低准确度,比如假阳性)。但是把灵敏度调整太低也不行,会出现假阴性

虽然这事情很难,但为了保证客户业务的稳定运行,我们开始研发了亚健康2.0,通过新的架构和算法去解决这个大问题。


亚健康2.0的设计




针对于亚健康检测的复杂性和要求,我们的架构设计的要求是:

  • 收集关键指标。并对指标进行数学统计和处理,要有全局仲裁中心
  • 检测算法能够自适应各种场景,准确性和灵敏度可调整
  • 算法也是可插拔的,隔离策略要求可配置
  • 亚健康检测算法的核心:通过聚类算法、局部异常点算法找出最忙、最慢的组件,然后再通过经验模型进行二次识别和处理
  • 隔离策略首先保证数据安全,其次再保证集群的整体性能
  • 网络亚健康隔离前会尝试主动恢复

下面是我们亚健康2.0的软件架构。



【图6:亚健康2.0软件架构】

网络亚健康2.0的优势




有一个简单的例子可以说明亚健康2.0的效果。


我们在一个3节点的存储集群中,通过对1个节点的业务网络的2个网口,分别增加100ms的时延,来看SDS的亚健康主动检测、告警、恢复、隔离功能。


首先,对存储集群的增加测试负载,这样就可以观察到网络亚健康对于集群性能的影响。


11:41:53,手动对82节点bond1的enp24s0f0(此时的active口)增加100ms的时延。

11:42:19,SDS主动发出82节点网络亚健康告警。

11:42:19,SDS主动进行82节点的网络bond1的网口切换,尝试进行自动恢复。

11:43:05,观察82节点的bond1已经有网口切换,enp24s0f1已成为active口。

11:43:49,SDS主动通知82节点网络亚健康已恢复。

11:44:28,手动对82节点的enp24s0f1(此时的active口)增加100ms的时延。此时82节点的业务网络的bond1的2个网口都被注入了时延。此时存储池的性能监控显示IOPS已经降入低谷。

11:44:49,SDS又主动发出82节点网络亚健康告警。

11:44:49,SDS又主动进行82节点的网络bond1的网口切换,尝试自动恢复。但是此时因为2个网口都被注入了时延,所以即使做了网口切换,82节点的业务网络时延还是超过100ms。

11:48:20,SDS主动发出82节点被隔离的告警,主动把82节点从存储集群中隔离。

可以观察82节点被隔离后,存储池的性能监控显示IOPS又恢复正常。



【图7:告警中心展示的亚健康告警记录】


【图8:存储池性能监控IOPS恢复正常】

通过以上例子,我们可以知道亚健康2.0比1.0的优势是:

  • 全局仲裁,检测更快速和精准
  • 及时发出告警,快速定位原因
  • 尝试自动恢复,智能运维
  • 自动进行隔离,保证存储集群的整体性能


总结




亚健康2.0,对网络的颗粒度管理也上升了一个量级,在一个数据节点读写出问题时将其隔离起来,避免拖累其他数据节点的读写速度。不仅大幅提升了分布式系统的“免疫力”,更使得XSKY SDS V5底座具有了智能运维(AI Ops)功能,进一步提升了政企机构数据存储、数据管理的效能,降低了运维成本。目前,我们正在进一步开发亚健康3.0,将对服务亚健康做更精细化的检测和隔离。


END




如想了解更多产品信息扫码联系XSKY星辰天合售前专家


XSKY SDS V5技术解读系列


XSKY星辰天合发布软件定义存储V5系列  统一平台实现数据常青

为什么业界很少支持块EC?性能搞不定啊!

为什么国内全闪系统很少支持QLC,因为寿命搞不定啊

同时支持iSCSI和NFS,XSKY SDS V5的K8s CSI卷扩展功能是如何炼成的

用专利方法,给XGFS分布式文件的数据拍个照

非结构化数据在线迁移,如何实现业务无中断?



继续滑动看下一个
XSKY星辰天合
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存