本发明涉及服务器技术领域,具体涉及一种服务器集群环境网络系统及稳定性检测方法。
背景技术
随着时代的发展,每天产生的数据量非常的庞大,为了处理这些庞大的数据信息,真对单台服务器的处理能力的需求也在不断提高;单纯提高单台服务器的处理能力,造成单体机器的成本不断攀升,性价比在不断下降;最好的解决方法便是降低单台机器的成本,即降低单台服务器的处理能力,通过增加机器搭建集群来处理数据,通过这种方式可以灵活的扩充处理能力,同时降低单一节点出现问题所带来的各种风险。
要想搭建集群,就需要有互联的方式,通过不同种类的交换机将不同速率的网口互联起来,组成一个整体,让各个单一服务器不在单一,协同作业;要想这个整体工作稳定,网络的稳定性至关重要,需要有方法来检验网络的稳定性,确保整个环境能够稳定、持续的提供服务。
iperf是一个网络压力/性能测试工具。iperf可以测试最大tcp和udp带宽性能,具有多种参数和udp特性,可以根据需要调整,可以报告带宽、延迟抖动和数据包丢失。可以适应不同的网络接口及网络速率,灵活易用;通过它我们可以模拟满负荷网络压力及爆发式的网络压力;
netperf是一种网络性能的测量工具,主要针对基于tcp或udp的传输。netperf根据应用的不同,可以进行不同模式的网络性能测试,即批量数据传输(bulkdatatransfer)模式和请求/应答(request/reponse)模式。netperf测试结果所反映的是一个系统能够以多快的速度向另外一个系统发送数据,以及另外一个系统能够以多快的速度接收数据。
kubernetes是一个在集群主机间进行自动化部署、扩展和容器操作的提供以容器为中心基础设施的开源平台。
locust是一个使用简单的分布式负载测试工具。其目的是用于测试web或者其他系统,并确定系统能够处理多少并发用户数。
技术实现要素:
为了克服上述现有技术中的不足,本发明提供一种服务器集群环境网络稳定性检测系统及方法,以解决上述技术问题。
本发明的技术方案:
一种服务器集群环境网络系统,包括os灌装服务器、dns服务器、dhcp服务器、控制/分析服务器和存储服务器;
os灌装服务器,用于灌装测试需要的操作系统及系统参数配置;
dns服务器,用于域名解析;
dhcp服务器,用于地址分配,并将ip地址与mac地址表发给控制/分析服务器,待测集群首次接入时将重定向到os灌装服务器进行系统安装;
控制/分析服务器,用于测试环境搭建,控制测试程序运行,收集测试结果,并将结果存储到存储服务器中进行保存,结果分析给出测试结果及建议;
存储服务器,用于存储测试数据及测试log;
os灌装服务器、dns服务器、dhcp服务器、控制/分析服务器和存储服务器通过测试网络连接有待测集群,控制/分析服务器通过管理网络与待测集群连接,控制/分析服务器通过交换机与用户终端连接。
进一步的,将待测集群中的待测机连接到网络系统中,不同速率的网口通过相应速率的线缆连接到对应的交换机接口上;被测机的管理口通过网线连接到管理网络中。
本发明技术方案还提供一种服务器集群环境网络系统稳定性检测方法,包括如下步骤:
配置网络系统环境;
进行网络系统稳定性测试,其中包括网络压力测试、干扰测试和性能测试;
处理和分析测试数据及log。
进一步的,步骤配置网络系统环境,包括:
s11:被测机安装操作系统;
s12:检测待测机是否安装成功;若否,执行步骤s11,若是,执行步骤s13;
s13:配置网络系统的参数,其中包括启动所有网口;
s14:上报ip地址/网口/mac地址信息到控制/分析服务器;
s15:检测上报信息完整性,若上报信息完整执行步骤s16,若上报信息不完整,执行步骤s13;
s16:汇总所有信息,形成被测机信息统计表,并检测被测信息的完整性,若被测信息完整,结束网络配置过程并启动第一项测试;若被测信息不完整,执行步骤s13。
进一步的,网络压力测试的过程包括:
s21:根据集群服务器及网口数量建立测试互联树;
s22:测试所有互联树是否能正常访问,若是,执行步骤s24;若否,执行步骤s23;
s23:修复网络问题,并收集网络修复过程的log,修复完成执行步骤s22;
s24:启动压力测试;收集实时测试数据,测试完成启动第二项测试。
进一步的,干扰测试的过程包括:
s31:启动网络压力测试;
s32:逐一断开压力测试过程中的服务器的网口连接;
s33:恢复断开网口的连接以及恢复压力测试过程,并检测能否完成恢复;若能完成恢复执行步骤s34;
s34:检测是否所有网口都被遍历到,若是,执行步骤s35,若否,执行步骤s32;
s35:逐一重启服务器;
s36:恢复重启服务器及服务器上网口连接;若可以完成恢复,并重新启动对应的压力测试;
s37:检测所有服务器是否都被遍历到,若是,结束干扰测试并启动第三项测试;若否,执行步骤s35。
进一步的,步骤s33中恢复断开网口的连接以及恢复压力测试过程,若不能完成恢复执行步骤s310;
s310:修复存在的问题,若修复成功,收集各服务器及各网口的数据,执行步骤s34;若修复失败,收集修复过程的数据,终止测试;或者执行步骤s311;
s311:记录问题及问题网口信息,并将此网口从互联树中删除,重新建立互联树,执行步骤s31。
进一步的,步骤s36中恢复重启服务器及服务器上网口连接;若不能完成恢复,执行步骤s38:
s38:修复存在的问题,若修复成功,收集各服务器及各网口的数据,执行步骤s37;若修复失败,收集修复过程的数据,终止测试;或者执行步骤s39;
s39:记录修复失败出现的问题及问题服务器的信息,并将此服务器及服务器上的网口从互联树中删除,重新建立互联树,执行步骤s35。
进一步的,干扰测试的过程实时收集各服务器及各网口数据。
进一步的,性能测试过程包括:
s41:创建网口性能测试遍历表;
s42:逐一测试各网口间的性能,实时收集各服务器及各网口的数据;
s43:检测所有网口是否都被遍历,若是执行步骤s44,若否,执行步骤s42;
s44:针对不同的网络分别建立集群,进行集群性能测试,并通过实时收集各服务器及各网口数据。
本方法利用linux系统及开源工具,通过开源工具iperf模拟网络压力,通过开源工具netperf模拟性能测试,通过kubernetes+locust模拟集群网络延迟测试,通过远程管理控制台控制网口及机器开关状态模拟意外状态,检测整个集群的网络稳定性。
从以上技术方案可以看出,本发明具有以下优点:利用开源系统及工具,搭建低成本自动化检测环境,通过网络压力测试、干扰测试、性能测试三个模块,检验集群环境中的网络稳定性;每项测试都会记录测试结果,并在所有测试结束后,进行数据分析并给出综合评价及建议;整个测试环境简单,测试执行自动完成,可以自动判断集群规模进行参数配置,充分利用集群环境资源。使用开源的工具及系统,并且环境配置简单,整体投入少;全自动化执行,只有在出现故障时才会需要人工干预;可以根据集群规模自动设置匹配的测试内容;测试完成可以给出合理的建议,提前了解瓶颈。
此外,本发明设计原理可靠,结构简单,具有非常广泛的应用前景。
由此可见,本发明与现有技术相比,具有突出的实质性特点和显著地进步,其实施的有益效果也是显而易见的。
附图说明
图1为一种服务器集群环境网络系统拓扑结构图;
图2为一种服务器集群环境网络系统稳定性检测方法流程图;
图3为网络系统环境配置子流程图;
图4为网络压力测试子流程图;
图5为干扰测试子流程图;
图6为性能测试子流程图。
具体实施方式
下面结合附图并通过具体实施例对本发明进行详细阐述,以下实施例是对本发明的解释,而本发明并不局限于以下实施方式。
如图1所示,本发明实施例提供一种服务器集群环境网络系统,包括os灌装服务器1、dns服务器2、dhcp服务器3、控制/分析服务器4和存储服务器5;
os灌装服务器1,用于灌装测试需要的操作系统及系统参数配置;
dns服务器2,用于域名解析;
dhcp服务器3,用于地址分配,并将ip地址与mac地址表发给控制/分析服务器4,待测集群首次接入时将重定向到os灌装服务器1进行系统安装;
控制/分析服务器4,用于测试环境搭建,控制测试程序运行,收集测试结果,并将结果存储到存储服务器5中进行保存,结果分析给出测试结果及建议;
存储服务器5,用于存储测试数据及测试log;
os灌装服务器1、dns服务器2、dhcp服务器3、控制/分析服务器4和存储服务器5通过测试网络7连接有待测集群9,控制/分析服务器4通过管理网络8与待测集群9连接,控制/分析服务器4通过交换机6与用户终端连接。
将待测集群9中的待测机连接到网络系统中,不同速率的网口通过相应速率的线缆连接到对应的交换机接口上;被测机的管理口通过网线连接到管理网络8中。
实施例二
本发明还提供一种服务器集群环境网络系统稳定性检测方法,整个环境需要一台os灌装服务器1,用于灌装测试需要的操作系统及系统参数配置;一台dns服务器2,用于域名解析;一台dhcp服务器3,用于地址分配,并将ip地址与mac地址表发给控制/分析服务器4,待测集群9首次接入时将重定向到os灌装服务器1进行系统安装;一台控制/分析服务器4,用于测试环境搭建,控制测试程序运行,收集测试结果,并将结果存储到存储服务器5中进行保存,结果分析给出测试结果及建议;一台存储服务器5,用于存储测试数据及测试log;
网络环境分为2部分,一部分是测试网络7,可以根据实际集群情况进行搭建(如果是10g网络环境,需要用10g交换机搭建环境;如果是25g网络环境,需要用25g交换机搭建环境;如果是10g+25g的混合网络,需要分别搭建10g、25g网络环境,并将服务器上相应速率的网口连接到对应的网络环境中),测试环境可以自动检测相应的环境,配置相关测试参数,进行匹配的测试;另一部分是管理网络8,用于控制集群服务器的状态,例如开机、关机、重启等;
将需要测试的服务器连接到网络环境中,不同速率的网口通过相应速率的线缆连接到对应的交换机接口上(需要测试的口连接到网络环境中);被测服务器的管理口,通过网线连接到管理网络中;待测集群9中的服务器数量没有限制,测试环境会根据检测到的服务器数量设置测试规模;需要根据服务器接口的数量,配置足够的交换机,并将交换机互联起来。
如图2所示,服务器集群环境网络系统稳定性检测方法,包括如下步骤:
s1:配置网络系统环境;
s2:进行网络系统稳定性测试,其中包括网络压力测试、干扰测试和性能测试;
s3:处理和分析测试数据及log。
如图3所示,步骤s1,包括:
s11:被测机安装操作系统;
s12:检测待测机是否安装成功;若否,执行步骤s11,若是,执行步骤s13;
s13:配置网络系统的参数,其中包括启动所有网口;
s14:上报ip地址/网口/mac地址信息到控制/分析服务器;
s15:检测上报信息完整性,若上报信息完整执行步骤s16,若上报信息不完整,执行步骤s13;
s16:汇总所有信息,形成被测机信息统计表,并检测被测信息的完整性,若被测信息完整,结束网络配置过程并启动第一项测试;若被测信息不完整,执行步骤s13。
如图4所示,本实施例中,网络压力测试的过程包括:
s21:根据集群服务器及网口数量建立测试互联树;
s22:测试所有互联树是否能正常访问,若是,执行步骤s24;若否,执行步骤s23;
s23:修复网络问题,并收集网络修复过程的log,修复完成执行步骤s22;
s24:启动压力测试;收集实时测试数据,测试完成启动第二项测试。
通过压力测试结果及log,可以判断网络在长时间压力下是否有报错等异常现象,同时可以反馈网络的波动情况、丢包情况、cpu/内存的占用率等;如果cpu/内存占用率比较高,会导致丢包或者网络延迟变大,也会导致网络的剧烈波动;通过这些现象可以给出配置上的建议。
如图5所示,本实施例中,干扰测试的过程包括:
s31:启动网络压力测试;
s32:逐一断开压力测试过程中的服务器的网口连接;
s33:恢复断开网口的连接以及恢复压力测试过程,并检测能否完成恢复;若能完成恢复执行步骤s34;
s34:检测是否所有网口都被遍历到,若是,执行步骤s35,若否,执行步骤s32;
s35:逐一重启服务器;
s36:恢复重启服务器及服务器上网口连接;若可以完成恢复,并重新启动对应的压力测试;
s37:检测所有服务器是否都被遍历到,若是,结束干扰测试并启动第三项测试;若否,执行步骤s35。
本实施例中,步骤s33中恢复断开网口的连接以及恢复压力测试过程,若不能完成恢复执行步骤s310;
s310:修复存在的问题,若修复成功,收集各服务器及各网口的数据,执行步骤s34;若修复失败,收集修复过程的数据,终止测试;或者执行步骤s311;
s311:记录问题及问题网口信息,并将此网口从互联树中删除,重新建立互联树,执行步骤s31。
本实施例中,步骤s36中恢复重启服务器及服务器上网口连接;若不能完成恢复,执行步骤s38:
s38:修复存在的问题,若修复成功,收集各服务器及各网口的数据,执行步骤s37;若修复失败,收集修复过程的数据,终止测试;或者执行步骤s39;
s39:记录修复失败出现的问题及问题服务器的信息,并将此服务器及服务器上的网口从互联树中删除,重新建立互联树,执行步骤s35。
干扰测试的过程实时收集各服务器及各网口数据。
通过干扰测试及相关实时数据,可以反映某个特定时间,单一网口出现故障后对这整个集群系统的影响;以及单台服务器出现故障时对整个集群系统的影响。
如图6所示,本实施例中,性能测试过程包括:
s41:安装性能测试工具netperf,创建网口性能测试遍历表;
s42:逐一测试各网口间的性能,实时收集各服务器及各网口的数据;
s43:检测所有网口是否都被遍历,若是,安装kubernetes工具执行步骤s44,若否,执行步骤s42;
s44:针对不同的网络分别建立集群并安装locust工具,进行集群性能测试,并通过实时收集各服务器及各网口数据。
通过性能测试及相关实时数据,可以侧面反映集群系统整体的网络吞吐量,以及在不同的用户访问下,网络延迟的大小;通过这些实时数据,可以判断是否能够满足当前的应用需求;同时测试会模拟部分失效情况,并根据测试数据给出建议,预留多少网口或者多少服务器,以满足特殊情况的需求。
经历上述各种情况的模拟,可以充分的验证这个集群环境网络的健壮性、可靠性以及性能;程序充分利用集群的资源,可以根据集群的规模设定测试矩阵,完成测试;根据测试结果,能够发现集群的不足点或者配置过剩,在整个集群上线之前可以优化相关配置,即可以避免资源浪费,也可以避免上线后再发现问题所带来的时间浪费。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。