本发明涉及固态硬盘测试相关,具体涉及一种固态硬盘虚拟化功能的验证方法和验证装置。
背景技术:
1、固态硬盘虚拟化(sr-iov)功能可以支持单个物理pcie设备虚拟出多个pcie设备,这样可以减少pcie设备的硬件成本,节省pcie插槽,使得硬件资源可以更加充分使用。随着云计算的广泛应用,支持sr-iov功能的固态硬盘显得越来越有必要。
2、本领域中通常选择在服务器上配置vf(virtual function,虚拟功能设备)并与虚拟机绑定去验证固态硬盘sr-iov功能能否正常工作,但是这种方式测试效率不高,且对于sr-iov功能必须具备的关键特性:pf(physical function,物理功能设备)/vf flr(function level reset,功能级复位)复位差异不能明确识别。基于此,本发明提出了一种有效确认pf/vf差异化复位特性的固态硬盘虚拟化功能验证方法。
3、有鉴于上述的缺陷,当前亟需设计一种能够有效确认pf/vf差异化复位特性的固态硬盘虚拟化功能的验证方法和验证装置。
技术实现思路
1、为了解决上述内容中提到的问题,本发明提供了一种固态硬盘虚拟化功能的验证方法和验证装置,其通过测试脚本验证了固态硬盘虚拟化功能的存在性,vf功能局部性和pf功能的全局性。
2、其技术方案是这样的:
3、一种固态硬盘虚拟化功能的验证方法,其特征在于:所述方法包括以下步骤:
4、步骤1、服务器系统启动,执行测试脚本来确认被测固态硬盘具备sr-iov功能;本步骤执行成功,则进入下一步,否则退出验证;
5、步骤2、执行测试脚本启用被测固态硬盘的sr-iov功能;本步骤执行成功,则进入下一步,否则退出验证;
6、步骤3、执行测试脚本启用ari(alternative routing-id)可变路由功能;本步骤执行成功,则进入下一步,否则退出验证;
7、步骤4、执行测试脚本创建最大数量的vf;本步骤执行成功,则进入下一步,否则退出验证;
8、步骤5、执行测试脚本对所有的vf进行fio读写操作;本步骤执行成功,则进入下一步,否则退出验证;
9、步骤6、执行测试脚本对任意一个选定的vf停止读写操作,对选定的vf进行flr复位;本步骤执行成功,则进入下一步,否则退出验证;
10、步骤7、执行测试脚本判断选定的vf的状态,验证选定的vf是否单独有效复位和其他vf读写操作有无受到影响以及自动记录其他vf的iops的数据波动;本步骤执行成功,则进入下一步,否则退出验证;
11、步骤8、执行测试脚本先终止所有vf正在执行的读写操作, 在确认所有vf已经停下工作后对pf进行全局复位;本步骤执行成功,则进入下一步,否则退出验证;
12、步骤9、执行测试脚本验证所有vf是否全部归零;如果全部归零,则验证成功,完成测试,否则退出验证。
13、进一步的,所述步骤1中,执行测试脚本通过获取被测固态硬盘的sr-iov功能id,如果获取到id则确认被测固态硬盘具备sr-iov功能。
14、进一步的,所述步骤4中,执行测试脚本获取pf的最大支持vf数量(total vfs)与当前可用vf数量(initial vfs)以及vf_offset(第一个vf与pf之间的偏移量)和vf_stride(两个vf之间的距离),再执行测试脚本根据total vfs、vf_offset、vf_stride和initialvfs创建最大数量的vf。
15、进一步的,所述步骤7中,验证选定的vf是否单独有效复位和其他vf读写操作有无受到影响的具体方法为:判断pf的sr-iov寄存器的vf的bar、vf memory space enable值或者vf resizable bar capability值是否受影响,测试脚本将会逐个比对上述寄存器值并打印结果,如果vf的bar、vf memory space enable值或vf resizable bar capability值改变,测试脚本记录会显示复位失败,功能异常。
16、进一步的,本发明还提供了一种验证装置,其特征在于:所述验证装置包括:服务器平台和测试脚本;所述服务器平台包括:处理器、内存和linux操作系统。
17、进一步的,所述测试脚本用于查询虚拟化功能的寄存器值、调用fio读写操作、创建vf、执行flr复位和确认设备配置空间值。
18、本发明的有益效果为:
19、本发明采用测试脚本获取固态硬盘设备寄存器值,确认功能并自动配置vf后将vf和pf flr复位,分步进行确认状态,实现了验证固态硬盘虚拟化功能的存在性、vf功能局部性和pf功能的全局性的技术效果,有效避免了现有技术中利用虚拟机简单绑定vf或者按队列中断资源创建vf等流于表面,却对sr-iov功能关键特性flr复位的有效性无从识别的缺陷;因为虚拟机在探测vf时会调用flr,一旦flr失效,将不能保证物理机是否曾经使用过vf,从而状态不可控,而且在控制器想要单独解除个别vf所分配的资源时,若flr不能有效将设备上的vf置于静止状态,并清除vf的任何挂起中断事件,控制器无法释放回收资源,势必造成资源冲突,导致后续功能失效;因此本发明提供了一种能够有效确认pf和vf差异化复位特性的固态硬盘虚拟化功能的验证方法和验证装置,弥补了现有验证方法的缺陷。
1.一种固态硬盘虚拟化功能的验证方法,其特征在于:所述方法包括以下步骤:
2.根据权利要求1所述的一种固态硬盘虚拟化功能的验证方法,其特征在于:所述步骤1中,执行测试脚本通过获取被测固态硬盘的sr-iov功能id,如果获取到id则确认被测固态硬盘具备sr-iov功能。
3.根据权利要求1所述的一种固态硬盘虚拟化功能的验证方法,其特征在于:所述步骤4中,执行测试脚本获取pf的最大支持vf数量total vfs与当前可用vf数量initial vfs以及第一个vf与pf之间的偏移量vf_offset和两个vf之间的距离vf_stride,再执行测试脚本根据total vfs、vf_offset、vf_stride和initial vfs创建最大数量的vf。
4.根据权利要求1所述的一种固态硬盘虚拟化功能的验证方法,其特征在于:所述步骤7中,验证选定的vf是否单独有效复位和其他vf读写操作有无受到影响的具体方法为:判断pf的sr-iov寄存器的vf的bar、vf memory space enable值或者vf resizable barcapability值是否受影响,测试脚本将会逐个比对上述寄存器值并打印结果,如果vf的bar、vf memory space enable值或vf resizable bar capability值改变,测试脚本记录会显示复位失败,功能异常。
5.基于权利要求1-4任意一项所述验证方法的一种固态硬盘虚拟化功能的验证装置,其特征在于:所述验证装置包括:服务器平台和测试脚本;所述服务器平台包括:处理器、内存和linux操作系统。
6.根据权利要求5所述的一种企业级固态硬盘vpd信息的测试装置,其特征在于:所述测试脚本用于查询虚拟化功能的寄存器值、调用fio读写操作、创建vf、执行flr复位和确认设备配置空间值。