一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

NFS服务测试方法、系统及电子设备与流程

2022-05-08 05:39:23 来源:中国专利 TAG:

nfs服务测试方法、系统及电子设备
技术领域
1.本发明涉及计算机技术领域,特别涉及一种用户界面处理方法、系统及电子设备。


背景技术:

2.nfs(network file system,网络文件系统)是当前主流异构平台共享文件系统之一。主要应用在unix环境下,允许一个系统在网络上与他人共享目录和文件。nfs的工作原理是使用客户端/服务器架构,由一个客户端程序和服务器程序组成。服务器程序向其他计算机提供对文件系统的访问,其过程称为输出。nfs客户端程序对共享文件系统进行访问时,把它们从nfs服务端中“输送”出来。文件通常以块为单位进行传输。
3.现有技术中,对nfs进行测试一般借助文件系统测试工具,而这种工具一般会有几种配置参数,比如选择读写顺序、设置文件、目录数量和读写线程数等,且在测试时会输出性能参数。但是这种测试方法通过系统调用实现,不能指定nfs请求,因此可供测试的场景单一,可配置的参数少且不够灵活,不能满足实际存储的场景;此外,这种测试方法对测试环境要求严格,性能会受到压力机的影响,测试工具在压力机上会调用系统服务,通过系统调用才会向nfs服务端发送报文,由于中间会产生延时且消耗压力机运算资源,因此不能充分测试nfs极限性能。
4.因此,亟需一种适用于各种场景的,能够提高对nfs进行测试的速度的方法,以解决现有技术的上述技术问题。


技术实现要素:

5.为了解决现有技术的不足,本发明的主要目的在于提供一种nfs服务测试方法、系统及电子设备,以解决现有技术的上述技术问题。
6.为了达到上述目的,第一方面本发明提供了一种nfs服务测试方法,所述方法包括:
7.调用快速数据包处理框架发送被测功能请求报文至nfs服务端;
8.所述nfs服务端接收并校验所述被测功能请求报文;
9.所述nfs服务端根据所述被测功能请求报文执行被测功能并生成执行结果;
10.nfs客户端接收包含所述执行结果的被测功能请求报文并记录所述执行结果,完成测试。
11.在一些实施例中,所述调用快速数据包处理框架发送被测功能请求报文至nfs服务端之前,所述方法还包括:
12.根据所述被测功能及预设的测试程序,模拟构造nfs参数;
13.根据所述nfs参数,构建被测功能请求报文。
14.在一些实施例中,所述nfs客户端接收包含所述执行结果的被测功能请求报文并记录所述执行结果,完成测试,包括:
15.调用nfs协议解析所述被测功能请求报文获取所述执行结果;
16.记录所述执行结果中的数据包大小,所述数据包用来表示所述被测功能性能;
17.记录所述执行结果中的执行状态,若所述执行状态返回值为ok,则所述被测功能运行正常。
18.在一些实施例中,所述nfs服务端接收并校验所述被测功能请求报文,包括:
19.校验所述被测功能请求报文是否符合nfs协议标准;
20.若所述被测功能请求报文符合nfs协议标准,则所述nfs服务端执行所述被测功能。
21.在一些实施例中,所述方法还包括:
22.所述测试程序接管网卡,以确保所述快速数据包处理框架可以直接发送和接收所述被测功能请求报文。
23.在一些实施例中,所述nfs服务端根据所述被测功能请求报文执行被测功能并生成执行结果,包括:
24.在所述nfs服务端内执行所述被测功能并将所述执行结果返回给本地服务进程;
25.所述本地服务进程将收到的所述执行结果封装在所述被测功能请求报文中并发送给所述nfs客户端。
26.在一些实施例中,所述调用快速数据包处理框架发送被测功能请求报文至nfs服务端之前,所述方法还包括:
27.部署用户态网络文件系统源码环境及所述快速数据包处理框架。
28.第二方面,本技术提供了一种nfs服务测试系统,所述系统包括:
29.快速数据包处理框架:发送被测功能请求报文;
30.nfs服务端:接收所述快速数据包处理框架发送的被测功能请求报文并校验所述被测功能请求报文;
31.所述nfs服务端,还用于根据所述被测功能请求报文执行被测功能并生成执行结果;
32.nfs客户端:接收包含所述执行结果的被测功能请求报文并记录所述执行结果,完成测试。
33.第三方面,本技术提供了一种电子设备,所述电子设备包括:
34.一个或多个处理器;
35.以及与所述一个或多个处理器关联的存储器,所述存储器用于存储程序指令,所述程序指令在被所述一个或多个处理器读取执行时,执行如下操作:
36.调用快速数据包处理框架发送被测功能请求报文至nfs服务端;
37.所述nfs服务端接收并校验所述被测功能请求报文;
38.所述nfs服务端根据所述被测功能请求报文执行被测功能并生成执行结果;
39.nfs客户端接收包含所述执行结果的被测功能请求报文并记录所述执行结果,完成测试。
40.本技术实现的有益效果为:
41.本技术提供了一种nfs服务测试方法,包括调用快速数据包处理框架发送被测功能请求报文至nfs服务端;所述nfs服务端接收并校验所述被测功能请求报文;所述nfs服务端根据所述被测功能请求报文执行被测功能并生成执行结果;nfs客户端接收包含所述执
行结果的被测功能请求报文并记录所述执行结果,完成测试。本技术通过调用快速数据包处理框架收发报文,不进行系统调用,无需经过内核态,避免在测试过程中可能产生延时对测试造成的影响,能够最大限度的测试nfs服务;其次,本技术还可以通过定制被测功能请求集合,来模拟真实存储io,以扩大测试场景;进一步提高对nfs服务测试的充分性,提高产品的可靠性。
附图说明
42.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,其中:
43.图1是本技术提供的一般测试实现框图;
44.图2是本技术实施例提供的nfs功能测试实现框图;
45.图3是本技术实施例提供的nfs功能测试示意图;
46.图4是本技术实施例提供的nfs功能测试方法流程图;
47.图5是本技术实施例提供的nfs功能测试系统架构图;
48.图6是本技术实施例提供的电子设备结构图。
具体实施方式
49.为使本技术的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
50.应当理解,在本技术的描述中,除非上下文明确要求,否则整个说明书和权利要求书中的“包括”、“包含”等类似词语应当解释为包含的含义而不是排他或穷举的含义;也就是说,是“包括但不限于”的含义。
51.还应当理解,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本技术的描述中,除非另有说明,“多个”的含义是两个或两个以上。
52.需要注意的是,术语“s1”、“s2”等仅用于步骤的描述目的,并非特别指称次序或顺位的意思,亦非用以限定本技术,其仅仅是为了方便描述本技术的方法,而不能理解为指示步骤的先后顺序。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本技术要求的保护范围之内。
53.如背景技术所述,现有技术中使用的测试工具,如图1所示,都需要经过以下模块:内核收发包、文件系统处理及上层软件处理。而如图2所示,本技术则在用户态进行对数据包的收发并处理nfs协议,不再经过内核和文件系统。
54.实施例一
55.具体的,如图3所示,本技术实施例进行nfs服务测试的过程包括:
56.s100、部署nfs-ganesha环境、构建被测功能请求报文以及在测试程序中部署快速
数据包处理框架。
57.具体的,本技术中测试程序由开发人员开发的一个包含多个api(application programming interface,应用程序接口)接口的程序,用于调用快速数据包处理框架来对收发报文的用户态程序。根据测试客户端的需要进行测试的功能确定需要构建的被测功能请求,如写请求、读请求及获取目录请求等请求;然后由测试程序按照nfs协议标准根据需要进行测试的功能模拟构造被测功能请求参数,生成被测功能请求报文。其中,构建被测功能请求报文时,可以单独构建一个被测功能请求报文,还可以构建被测功能请求报文集合来模拟真实存储io。
58.在本实施例中,所述nfs-ganesha(用户态网络文件系统)用户态网络文件系统源码环境可以为centos 7.2版本环境,还可以是从github开源社区获取nfs-ganesha其他版本。nfs-ganesha是一个用户态的支持nfs协议(nfsv3/nfsv4,nfsv4.1)的文件服务器,它为unix和类unix的操作系统提供了fuse(filesystem in userspace,用户空间文件系统)兼容的接口fsal(file systemabstraction layer,文件系统抽象层)。这样用户通过nfs客户端可以访问自己的存储设备。nfs-ganesha服务允许用户通过fsal在用户态访问数据而不需要和内核频繁的交互,大大的减少了数据读取的响应时间。
59.其中,快速数据包处理框架(dpdk,intel data plane development kit),用于进行包数据处理加速,主要负责对计算机底层资源的访问,并对提供给用户的接口实施例细节的封装。dpdk专注于网络应用中数据包的高性能处理,具体体现在dpdk应用程序是运行在用户态上利用自身的数据平面库来收发数据包,绕过了内核协议对数据包处理过程,不再经过内核和文件系统,降低延迟,规避不必要的系统调用。
60.s200、依据快速数据包处理框架,向nfs服务端发送被测功能请求报文。
61.值得注意的是,此时网卡已经由测试程序接管,以实现快速数据包处理框架直接发送和接收功能请求报文,接管网卡的步骤包括为:下发网卡配置,设置网卡接收队列,设置网卡发送队列,启用网卡。各步骤具体内容为本领域现有技术,本技术在此不再进行赘述。
62.s300、nfs服务端接收被测功能请求报文并校验正常。
63.具体的,nfs服务端先按照nfs协议格式标准校验被测功能请求报文格式的合法性与规范性,若被测功能请求报文格式则符合nfs协议格式标准,则nfs服务端执行被测功能;若被测功能请求报文格式则符合nfs协议格式标准,即被测功能请求报文构建不合法且不规范,此时nfs服务端不执行被测功能。
64.s400、检测被测功能请求报文正常后,nfs服务端执行被测功能并生成执行结果。
65.具体的,nfs服务端执行被测功能,并将执行结果返回给本地服务进程,本地服务进程将收到的执行结果封装在被测功能请求报文中;其中执行结果至少包括:数据包大小和执行状态。
66.s500、nfs服务端将封装有执行结果的被测功能请求报文发送给nfs客户端,nfs客户端接收被测功能请求报文并记录封装在内的执行结果,完成测试。
67.nfs客户端调用nfs协议解析接收到的被测功能请求报文,获取封装在内的执行结果。nfs客户端记录执行结果中的数据包大小,数据包是用来表示被测功能性能。由于在正常运行情况下各被测功能对数据包大小的要求不同,在具体应用中,比较被测功能对数据
包大小的要求与执行结果中数据包的大小,若执行结果中数据包的大小能够满足或者近似满足被测功能对数据包大小的要求,则证明该被测功能在测试环境中运行性能高。
68.nfs客户端记录执行结果中的执行状态,若记录到的执行状态的返回值为ok,则证明该被测功能在测试中运行正常,该被测功能在测试环境中能够实现;若未记录到执行状态的返回值或记录到的执行状态的返回值不是ok,则证明该被测功能在测试中运行异常,该被测功能在测试环境中不能实现。
69.基于本技术实施例公开的nfs服务的测试方法,可以不需要经过内核和文件系统,可实现在用户态构造报文,在用户态收发报文,通过模拟报文的收发过程来完成对nfs服务的功能和性能的测试。
70.实施例二
71.对应上述实施例,本技术提供了一种nfs服务测试方法,如图4所示,所述方法包括:
72.4100、调用快速数据包处理框架发送被测功能请求报文至nfs服务端;
73.优选的,所述调用快速数据包处理框架发送被测功能请求报文至nfs服务端之前,所述方法还包括:
74.4110、部署用户态网络文件系统源码环境及所述快速数据包处理框架。
75.优选的,所述调用快速数据包处理框架发送被测功能请求报文至nfs服务端之前,所述方法还包括:
76.4120、根据所述被测功能及预设的测试程序,模拟构造nfs参数;
77.4130、根据所述nfs参数,构建被测功能请求报文。
78.4200、所述nfs服务端接收并校验所述被测功能请求报文;
79.优选的,所述nfs服务端接收并校验所述被测功能请求报文,包括:
80.4210、校验所述被测功能请求报文是否符合nfs协议标准;
81.4220、若所述被测功能请求报文符合nfs协议标准,则所述nfs服务端执行所述被测功能。
82.4300、所述nfs服务端根据所述被测功能请求报文执行被测功能并生成执行结果;
83.优选的,所述方法还包括:
84.4310、所述测试程序接管网卡,以确保所述快速数据包处理框架可以直接发送和接收所述被测功能请求报文。
85.优选的,所述nfs服务端根据所述被测功能请求报文执行被测功能并生成执行结果,包括:
86.4320、在所述nfs服务端内执行所述被测功能并将所述执行结果返回给本地服务进程;
87.4330、所述本地服务进程将收到的所述执行结果封装在所述被测功能请求报文中并发送给所述nfs客户端。
88.4400、nfs客户端接收包含所述执行结果的被测功能请求报文并记录所述执行结果,完成测试。
89.优选的,所述nfs客户端接收包含所述执行结果的被测功能请求报文并记录所述执行结果,完成测试,包括:
90.4410、调用nfs协议解析所述被测功能请求报文获取所述执行结果;
91.4420、记录所述执行结果中的数据包大小,所述数据包用来表示所述被测功能性能;
92.4430、记录所述执行结果中的执行状态,若所述执行状态返回值为ok,则所述被测功能运行正常。
93.实施例三
94.如图5所示,对应上述实施例一和实施例二,本技术实施例提供一种nfs服务测试系统,包括:
95.快速数据包处理框架510:发送被测功能请求报文;
96.nfs服务端520:接收所述快速数据包处理框架发送的被测功能请求报文并校验所述被测功能请求报文;
97.所述nfs服务端520,还用于根据所述被测功能请求报文执行被测功能并生成执行结果;
98.nfs客户端530:接收包含所述执行结果的被测功能请求报文并记录所述执行结果,完成测试。
99.在一些实施例中,所述nfs服务端520还用于根据所述被测功能及预设的测试程序,模拟构造nfs参数;根据所述nfs参数,构建被测功能请求报文。
100.在一些实施例中,所述nfs客户端530还用于调用nfs协议解析所述被测功能请求报文获取所述执行结果;记录所述执行结果中的数据包大小,所述数据包用来表示所述被测功能性能;记录所述执行结果中的执行状态,若所述执行状态返回值为ok,则所述被测功能运行正常。
101.在一些实施例中,所述nfs服务端520还用于校验所述被测功能请求报文是否符合nfs协议标准;若所述被测功能请求报文符合nfs协议标准,则所述nfs服务端520执行所述被测功能。
102.在一些实施例中,所述nfs服务端520还用于执行所述被测功能并将所述执行结果返回给本地服务进程;所述本地服务进程将收到的所述执行结果封装在所述被测功能请求报文中并发送给所述nfs客户端530。
103.实施例四
104.对应上述所有实施例,本技术实施例提供一种电子设备,包括:
105.一个或多个处理器;以及与所述一个或多个处理器关联的存储器,所述存储器用于存储程序指令,所述程序指令在被所述一个或多个处理器读取执行时,执行如下操作:
106.调用快速数据包处理框架发送被测功能请求报文至nfs服务端;
107.所述nfs服务端接收并校验所述被测功能请求报文;
108.所述nfs服务端根据所述被测功能请求报文执行被测功能并生成执行结果;
109.nfs客户端接收包含所述执行结果的被测功能请求报文并记录所述执行结果,完成测试。
110.其中,图6示例性的展示出了电子设备的架构,具体可以包括处理器610,视频显示适配器611,磁盘驱动器612,输入/输出接口613,网络接口614,以及存储器620。上述处理器610、视频显示适配器611、磁盘驱动器612、输入/输出接口613、网络接口614,与存储器620
之间可以通过总线630进行通信连接。
111.其中,处理器610可以采用通用的cpu(central processing unit,中央处理器)、微处理器、应用专用集成电路(application specific integrated circuit,asic)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本技术所提供的技术方案。
112.存储器620可以采用rom(read only memory,只读存储器)、ram(random access memory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器620可以存储用于控制电子设备600执行的操作系统621,用于控制电子设备600的低级别操作的基本输入输出系统(bios)622。另外,还可以存储网页浏览器623,数据存储管理系统624,以及图标字体处理系统625等等。上述图标字体处理系统625就可以是本技术实施例中具体实现前述各步骤操作的应用程序。总之,在通过软件或者固件来实现本技术所提供的技术方案时,相关的程序代码保存在存储器620中,并由处理器610来调用执行。
113.输入/输出接口613用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
114.网络接口614用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如usb、网线等)实现通信,也可以通过无线方式(例如移动网络、wifi、蓝牙等)实现通信。
115.总线630包括一通路,在设备的各个组件(例如处理器610、视频显示适配器611、磁盘驱动器612、输入/输出接口613、网络接口614,与存储器620)之间传输信息。
116.另外,该电子设备600还可以从虚拟资源对象领取条件信息数据库中获得具体领取条件的信息,以用于进行条件判断,等等。
117.需要说明的是,尽管上述设备仅示出了处理器610、视频显示适配器611、磁盘驱动器612、输入/输出接口613、网络接口614,存储器620,总线630等,但是在具体实施过程中,该设备还可以包括实现正常执行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本技术方案所必需的组件,而不必包含图中所示的全部组件。
118.通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,云服务器,或者网络设备等)执行本技术各个实施例或者实施例的某些部分所述的方法。
119.本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的系统及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根
据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
120.以上所述仅为本技术的较佳实施例,并不用以限制本技术,凡在本技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献