本申请涉及数据处理,更具体地,涉及一种数据面故障定位方法、装置、电子设备以及存储介质。
背景技术:
1、云计算场景中,常常使用openvswitch(一种网络数据转发模块)作为网络转发数据面,openvswitch的核心转发逻辑可以运行在linux内核中,内核态的调试手段较为匮乏,而云计算场景中网络转发过程往往十分复杂,因而出现故障时通常难以快速定位。
技术实现思路
1、鉴于上述问题,本申请提出了一种数据面故障定位方法、装置、电子设备以及存储介质,以改善上述问题。
2、第一方面,本申请实施例提供了一种数据面故障定位方法,所述方法包括:获取待处理报文;获取所述待处理报文对应的多个指定节点,作为多个跟踪点;在每一个所述跟踪点处运行自定义的ebpf程序,并将运行结果与预设排障参数进行匹配,以分析获取数据面故障定位信息。
3、进一步的,所述在每一个所述跟踪点处运行自定义的ebpf程序之前,所述方法还包括:获取通过用户态排障程序传递的预设排障参数。
4、进一步的,所述用户态排障程序与所述ebpf程序之间通过用于配置传递的bpfmap传递所述预设排障参数。
5、进一步的,所述将运行结果与预设排障参数进行匹配,以分析获取数据面故障定位信息之前,所述方法还包括:判断所述待处理报文是否为分片报文;若所述待处理报文为分片报文,判断所述待处理报文是否为分片报文的首片;若所述待处理报文为分片报文的首片,执行所述将运行结果与预设排障参数进行匹配,以分析获取故障定位信息的步骤;或若所述待处理报文为分片报文的非首片,且不存在对应的匹配记录,执行所述将运行结果与预设排障参数进行匹配,以分析获取故障定位信息的步骤。
6、进一步的,所述将运行结果与预设排障参数进行匹配,包括:若所述运行结果与预设排障参数相同,判定匹配通过;若所述运行结果与预设排障参数不相同,判定匹配不通过。
7、进一步的,所述方法还包括:若判定匹配通过,将对应的匹配记录写入用于报文信息传递的bpf map。
8、进一步的,所述预设排障参数包括网口、mac(mediaaccesscontroladdress,媒体访问控制)地址、ip(internet protocol address,网际协议地址)以及端口号中的至少一个。
9、第二方面,本申请实施例提供了一种数据面故障定位装置,所述装置包括:数据获取模块,用于获取待处理报文;跟踪点定义模块,用于获取所述待处理报文对应的多个指定节点,作为多个跟踪点;故障定位模块,用于在每一个所述跟踪点处运行自定义的ebpf程序,并将运行结果与预设排障参数进行匹配,以分析获取数据面故障定位信息。
10、第三方面,本申请提供了一种电子设备,包括一个或多个处理器以及存储器;一个或多个程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序配置用于执行上述第一方面所述的方法。
11、第四方面,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有程序代码,其中,在所述程序代码运行时执行上述第一方面所述的方法。
12、本申请提供的一种数据面故障定位方法、装置、电子设备以及存储介质,通过获取待处理报文;获取所述待处理报文对应的多个指定节点,作为多个跟踪点;在每一个所述跟踪点处运行自定义的ebpf程序,并将运行结果与预设排障参数进行匹配,以分析获取数据面故障定位信息。从而通过上述方式实现了可以通过跟踪点快速的观察到报文数据在内核网络数据面中的转发行为、调用栈、以及各转发动作之间的时延,同时使用ebpf程序不需要侵入式修改内核,可以减少修改内核所需时延,进而提升内核网络数据面故障定位的效率。
1.一种数据面故障定位方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述在每一个所述跟踪点处运行自定义的ebpf程序之前,所述方法还包括:
3.根据权利要求2所述的方法,其特征在于,所述用户态排障程序与所述ebpf程序之间通过用于配置传递的bpf map传递所述预设排障参数。
4.根据权利要求1所述的方法,其特征在于,所述将运行结果与预设排障参数进行匹配,以分析获取数据面故障定位信息之前,所述方法还包括:
5.根据权利要求4所述的方法,其特征在于,所述将运行结果与预设排障参数进行匹配,包括:
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
7.根据权利要求1-6任一项所述的方法,其特征在于,所述预设排障参数包括网口、mac地址、ip以及端口号中的至少一个。
8.一种数据面故障定位装置,其特征在于,所述装置包括:
9.一种电子设备,其特征在于,包括一个或多个处理器以及存储器;
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有程序代码,其中,在所述程序代码被处理器运行时执行权利要求1-7任一所述的方法。