最近在使用虚拟化系统时候遇到了奇怪的网络故障。尽管工程师用尽了已知的方法进行检测,仍未能找到故障原因。
发生问题的系统是基于当前市面上最热门且应用广泛的服务器虚拟化系统。该产品无论在技术成熟度上还是应用范围上均是名列前茅的。从实施上线后,整套软件体系一直工作的非常稳定,所以得到了大规模应用。
某日,两套基于虚拟化系统的服务器突然断网。结果是灾难性的。由于两套服务器搭建了的高可用服务,由于网络突然中断使得整套架构完全瘫痪。
最奇特的是,在故障还未来得及处置的时候,虚拟服务器的网络莫名其妙的恢复了。维护工程师查询了所有设备、软件的相关日志,都没有发现任何故障报告。只有日志记录了网络中断时间,持续了大约30秒。
在与行业内同行交流的时候,他们在使用虚拟化产品的时候也遇到过相同的故障。这个问题并不是我们系统所独有的,具有一定的普遍性。截至目前为止,工程师们仍没有找到确切原因。
计算控制一切是近几年新兴的IT技术。如利用软件定义计算资源,打破了物理界限,将多台服务器的CPU,内存,硬盘统看成可分配的资源。实现了最大化利用服务器资源的目的,降低的硬件投资。新的技术又实现了利用软件定义网络,实现了可脱离硬件管控的网络数据流的调控,并可方便实施各种网络管理策略,极大方便了网络管理员并能有效降低工作量。
新兴技术在带来便捷同时,也引发了新的问题。
以前在排查硬件问题的时候,可以很快的确定问题故障点,而各种设备上的指示灯也能极快协助管理员确定问题。现在完全变成了软件在管理一切。我们甚至不知道一台故障的虚拟化服务器到底使用了哪些服务器的资源。正如文中提到问题,没有一台硬件设备的日志记录了故障,可故障的确发生了。
对于使用者来说,庞大的虚拟化系统堪称黑盒系统。我们仅知道通过几步点选就可以创建一台服务器,能够快速部署服务应用。但是数据是如何流转的,资源如何调用的完全不知。
虽然虚拟化系统经过了严密的测试,但对于拥有上千万行代码的庞然大物,是不可能穷尽所有条件进行测试的。也就是软件测试中提到的极端条件。
现在信息化技术发展速度极快,各个产品相比其前辈变得更加聪明,也更加复杂。除了核心研发人员,每套商业软件都变得像黑盒一样充满了不确定性。IT产品的商业寿命同十几年前相比,生命周期更短,迭代的更快。高速度发展的同时,意味着也IT产品质量的测试可能都是不足够充分的。也意味着最终用户面临着更多的潜在IT危险。
对于IT产品来说,简单也是一种美。