存储部件特性SR-IOV测试规范_第1页
存储部件特性SR-IOV测试规范_第2页
存储部件特性SR-IOV测试规范_第3页
存储部件特性SR-IOV测试规范_第4页
存储部件特性SR-IOV测试规范_第5页
已阅读5页,还剩123页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

11版权声明ODCC(开放数据中心委员会)发布的各项成果,受《著作权法》保护,转载、摘编或利用其它方式使用ODCC成果中的文字或者观点的,应注明对于未经著作权人书面同意而实施的剽窃、复制、修改、销售、改编、汇编和翻译出版等侵权行为,ODCC及有关单位将追究其法律责任,感谢各单位I编写组存储部件特性SR-IOV测试规范 I II 1 1 2 2 3 3 3 3 3 4 4 4 4 5 5 5 64.Disableautoprobeaction(itissupportedifkernelver 7 7存储部件特性SR-IOV测试规范 7 7 7 7 8 9 11 11 12 12 13 14 14 15 15 15 16 17 17 18 19 19 19 19存储部件特性SR-IOV测试规范 20 202.PrimaryControllerCapab 22 26 28 31 34 34 34 35 35 36 37 37 37 37 37 38 38 39 39 39 40 40V存储部件特性SR-IOV测试规范 41 41 41 42 42 42 42 43 43 47 52 55 56存储部件特性SR-IOV测试规范存储部件特性SR-IOV测试规范(一)SR-IOV特性介绍SR-IOV是由PCI-SIG组织定义的PCIe规范的扩展规范,是一种基于硬件的虚拟化解决方案,可提高性能和可伸缩性。SR-IOV标准允许在虚拟机之间高效共享PCIe设备,可以获得能够与本机性能SR-IOV协议引入了两种类型功能的概念:物理功能PF和虚拟功能VF。PF用于管理SR-IOV功能。PF拥有完全配置资源,可以用于配置或控制PCIe设备。VF是与PF关联的一种功能,是一种轻量级PCIe功能,可以与物理功能以及与同一物理功能关联的其他VF共享一个或多个物理资源。VF仅允许拥有用于其自身行为的配在不支持SR-IOV的虚拟化场景下,各个虚拟机均通过代理(VMM)实现对SSD资源的访问,VMM实现地址转换、IO调度等功能。在高IOPS场景下VMM开销较高甚至成为瓶颈。在SR-IOV环境下,所有虚拟机均对应SSD的一个VF,依托SSD提供的多namespace功能实现对共享SSD资源的直接访问,一方面虚拟机通过VF直接读写SSD物理空间,提升IO性能,提升IOPS与降低时延,另一方面虚拟机的IO请求BypassVMM,进一步1SSD盘SR-IOV特性主要是应对云上大盘拆小卖的场景。鉴于SSD盘的规格越来越大,拆小卖的需求长时间存在。相比之下,SPDK软件方案实现了大盘拆小的能力,但是以消耗服务器上的(二)编写目的针对SR-IOV特性测试,从目前调研看,各个互联网厂家都有独自的一套测试方案,测试重点各有不同,缺乏统一的操作规范和本测试规范基于互联网厂家以及SSD厂家测试用例,制定了企业级固态硬盘SR-IOV特性的基准测试方法,适用于企业级固态硬(三)缩略语2PeripheralComponentInt(一)测试范围支持SR-IOV特性的SSD在产品规格和特性支持力度方面存在多种差异。本测试规范旨在聚焦于典型、具有代表性的场景,同时(二)测试用例概括包括SRIOV功能开关验证;VF数量规格验证;队列资源分配验证;中断资源分配验证;namespace资源分配验证;特殊场3存储部件特性SR-IOV测试规范包括PCIe虚拟化相关协议验证;NVMe虚拟化相关协议验证;覆盖虚拟机应用过程中的典型场景。包括虚拟机shutdown、虚拟机加、卸载驱动,VFFLR,服务11214123(一)宿主机虚拟机环境搭建(以CentOS7.9为例)KVM需要CPU硬件支持虚拟化,不同厂商虚拟化技术命令不#sudoegrep-o'(vmx|svm)'/proc/cpuinfo 1nvme-cli工具在1.9版本‘addidentifysecondarycontrollerlist’2服务器设置中如果没有对应选项,可忽略该项。5存储部件特性SR-IOV测试规范SystemBIOS->ProcessorSettings->virtualSystemBIOS->ProcessorSettingsSystemBIOS->ProcessorSettings->inte3.修改系统内核启动参数,重启系统,使其开启IOMMU,支b.AMD的配置:GRUB_CMDLINE_LINUX=“amd_iommu=oniommu=pt”6存储部件特性SR-IOV测试规范#echo0>/sys/bus/pci/device/${bdf_pf}/sriov_drivers_aut在启用SR-IOV功能之前运行上面命令,通过主机上的兼容驱采用命令行方式或者图形界面方式,根据需求在KVM环境下安装一个或多个虚拟机,虚拟机OS可以根据业务需求选择。宿主机和虚拟机可以采用网桥方式配置网络或者在宿主机通过virsh(二)SSDSR-IOV配置1.使用lspci-nn命令找到待分配的PCI设备,使能SR-#echon>/sys/bus/pci/devices/${bdf_pf}/sriov_numvfs7#nvmelist-secondary/dev/下图是查询的辅助控制器对应的信息:初始状态都为offline,根据NVME协议,PF和VF可以共享命名空间NS,如下图中的NSF,也可以独占NS,如NSA,NSB等。协议中对于共享NS3nvmeX中X根据实际环境中盘符修改8存储部件特性SR-IOV测试规范NS的大小由命令设置。下面以配置1个私有的NS为例,如果对于辅助控制器的资源分配和上线,需要参照Spe置,一般资源数不少于2。下面以辅助控制器ID0x2,分配VI和VQ数目9为例,如果需要配置多个,重复以下步骤即可。需要注意的是有的存储厂家对辅助控制器VI资源的数量内部设置成了固定值,nvmevirt-mgmt选项说明如4nvmeX中X根据实际环境中盘符修改5辅助控制器开始ID各个厂家定义不同,比如深圳忆联ESSD从0x2开始,三星PM1733从0x1开始9存储部件特性SR-IOV测试规范除了nvme-cli封装的命令nvmevirt-mgmt外,也可以采用标准#nvmeadmin-passthru/dev/nvmeX6 opcode=0x1C--除了nvme-cli封装的命令nvmevirt-mgmt外,同样也可以采用#nvmeadmin-passthru/dev/nvmeX6nvmeX中X根据实际环境中盘符修改7部分ESSD厂家配置时,不支持FLR操作#nvmevirt-mgmt/dev/nvmeX8-c除了nvme-cli封装的命令nvmevirt-mgmt外,同样也可以采用#nvmeadmin-passthru/dev/nvmeXSR-IOVQoS特性协议中没有做强制要求,支持SRSSD,通常会在vendor字段定义。具体设定方法需要根据厂家说明(三)虚拟机分配VF虚拟机分配VF,可以通过两种方式,一种是图形界面方式,另8nvmeX中X根据实际环境中盘符修改存储部件特性SR-IOV测试规范b.点击信息配置栏,选择AddHardware->PCIHostDevice,将将VF设备绑定到VFIO驱动,配置几个VF,就将其绑定到存储部件特性SR-IOV测试规范#echo${bdf_vf}>/sys/bus/pci/devices/${bdf_vf}/driver/u#echo${bdf_vf}>/sys/bus/pci/drivers/vfio-pci/${vf_cpu_count}${image_path}-devicevfio-pci,host=${bdf_vf}/home/lpw/img1/linux.img-devicevfio-pci,host=0000:86:00如果在虚拟机上可以查询到NVMe设备,如下图所示,就说明(四)SR-IOV大规模环境部署由于SR-IOV配置信息在盘片掉电、重启后不会被保存,因此在需要进行大规模环境部署时,重新为每张盘片设置SR-IOV配置存储部件特性SR-IOV测试规范为了解决这个问题,我们可以采用配置文件的方式来记录盘片的配置信息。通过脚本来解析这些配置文件,实现对SSD盘片的(一)测试需求存储部件特性SR-IOV测试规范(二)测试方法和测试标准常见应用场景,包含重启服务器,盘片固件升级,盘片异常掉存储部件特性SR-IOV测试规范2.配置VF使能个数为最大16个,绑行3分钟基本IO功能测试,查看是否OK;.覆盖到多VF分配最大支持VQ数量场景,每个VF分配的4.fio分别对8个VF进行64K随机.验证nvme控制器是否正确执行命名空间管理命令,并能够SSD除了单端口盘外,还存在多种形态,比如双端口盘,加密9文件大小,根据NS大小,和步骤8重复测试次数调整。存储部件特性SR-IOV测试规范IOV特性中,需要把加密特性一起加入验证,如果加密特性不是针五、SR-IOV协议一致性测试(一)测试需求通过nvme-cli工具下发指令并检查返回值来验证SR-IOV的协Sharing”对SR-IOV做了协议描述。SSD芯片验证阶段,会进行PCIe协议一致性验证。本测试规范针对PCIe虚拟化内容,只涉及到本文档所用NVMe协议基于NVMeSpec1.4c版本。SR-IOV相存储部件特性SR-IOV测试规范(二)协议虚拟化部分覆盖测试用于识别NVMeSSD是否支持SR-IOV。nvme-cli工具通过id-ctrl命令可以返回协议中定义的IdentifyController数据结构结构描述了设备的能力和支持的特性。数据结构中的Byte76,bit2[7:7]:0x1VirtualizationManag示例命令2-/dev/nvme2是Linux系统下配置VF后看到的2.PrimaryControll用于检查PrimaryController的信息和相关资源。nvme-cli工具通过命令primary-ctrl-caps返回协议中定义的数据结构,该结构描述了PrimaryController相关的信息以及可用的VQ/VI资根据NVMeSpec1.4c定义,VQ/VI资源分为私有(Private)和b.Crt的值,两个bit分别表示是否支持VQ/VI资源。如果VQ/VI不支持配置,对应bit位为0。是否支持配置VQ/VI资源取决c.Vqfrt表示总共可以用来分配给PF/VF的VQ可变资源数。该f.Vqprt表示当前已经分配给PF的VQ私有资源数。g.Vqfrsm表示总共可以分配给单个VF的VQ可变资源数。该h.Vqgran表示分配/移除VQ资源数的最小粒度。按最小粒度分i.Vifrt表示总共可以用来分配给PF/VF的VI可变资源数。该l.Viprt表示当前已经分配给PF的VI私有资源数。m.Vifrsm表示总共可以分配给单个VF的VI可变资源数。该数n.Vigran表示分配/移除VI资源数的最小粒度。按最小粒度分在对PF/VF做VQ/VI配置前,执行前述命令并查看可用资源类别及数量,与设备规格说明对比判断资源数是否正确;配置后,执用于查看当前支持的所有VF(SecondaryController)的状态和资源配置情况。协议定义的数据结构最多返回127个VF信息。返注意此处的命令行参数“-c3”,表示返回结果中的controllerID从3开始,controllerID小于3的不显示。ControlID是结果输出4.VirtualizationManagementcommand虚拟化管理命令仅在PrimaryController(PF)上支持。该命令注意SecondaryController处于Offline状态才能对它分Capabilities确认支持的特性,例如VQ/VI是否支持,是否有可用可a.InvalidControll用了不合法的ControllerID,如SecondaryControllerID不存在。请异常。对SecondaryController做管理操作时它处于不正确的状态。存储部件特性SR-IOV测试规范d.InvalidResourceIdentifier–命令中给出的资源标识至少有一个是无效的。例如尝试分配的可变资源数大于剩余可分配的可变资>当VF已经处于Online状态时,再次设置Online状态会返回>VF正常工作需要2个VQ资源,一个用于admin,一个用于I/O。如果分配VQ资源数少于2对VF做O>当VF已经处于Offline状态时,再次设置Offline状态会返回5.VirtualizationEnhancem在虚拟化环境中,NVM子系统可以通过多个控制器为物理机和虚拟机提供直接I/O访问通路。NVM子系统可由多个PrimaryController和SecondaryController组成,每个Se通过向PrimaryController发送虚拟化管理命令可以为每个控制器分配或移除控制器资源(ControllerResources)。可分配控制器资a.VirtualQueueResource(VQ资源)。每个资源用于管理1对SQ/CQ(SubmissionQueub.VirtualInterruptResource(VI资源)。每个资源用于管理1控制器资源从可分配性上看分为两种,可变资源(FlexibleResources)和私有资源(PrivateResources)。私有资源是固定分配给PrimaryController或SecondaryController的资源,不能通过虚拟PrimaryController和SecondaryController是否支持私有资源或可变资源,可以通过PrimaryControllerCapabilities中的数据结构查厂商可以选择为PrimaryController和SecondaryController实现NVMeSpec1.4c中的所有的,除明确指出只支持PrimaryController节所提)仅在PrimaryController上实现,以避免通过SecondaryController执行特权操作带来的意外,例如通过SecondaryController1用format命令格式化关联在SecPCI-SIG组织的SingleRootI/OVirtualizationa(如虚拟机)共享PCI设备硬件资源。SR-IOV的优势是Hypervisor存储部件特性SR-IOV测试规范不需要参与I/O操作,SI直接访问硬件资源,这在一些虚拟化场景PhysicalFunction(PF)是一种支持SR-IOV能力的PCIExpressFunction,它同时支持一个或多个依附于该PF的VirtualFunction(VF)。PF/VF可以选择实现通过Multi-pathI/O共享底层NVM子SR-IOVVF如果设置了NVMExpressClassCode,应当实现兼容NVMExpressController,这是为了保证在非虚拟化环境中不修改系统镜像也能够正常使用。例如在Linux虚拟机中使用VF时,需要确保VF兼容NVMe标准,Linux中的nvme驱动不需要修改就能直(三)VFNVME命令集覆盖测试4.在虚拟机上对盘片下发Identi4.在虚拟机上对盘片下发Getlogp六、SR-IOV兼容性测试(一)测试需求10identifyID设置范围根据产品规格书VF支持命令集修改11GetlogpageID设置范围根据产品规格书VF支持命令集修改存储部件特性SR-IOV测试规范SUSE/Leap;Debian体系中的debian/ubuntu,OpenCloudOS体系中家有自己编写的驱动,也需要验证到,以业务指定驱动版本为测试(二)测试项举例7.更换服务器操作系统为cent2.Step5:VF均读写正常,无I七、SR-IOV应用场景测试(一)测试需求所遇到的VM层面,服务器Host层面的正常、非正常操作,进行的测试涵盖客户在使用过程中遇到的各种场景。验证SR-IOV设(二)测试方法和测试标准4.两台虚拟机中,分别启动fio随2.Step7:VF1正常启动,fi4.两台虚拟机中,分别启动fio随2.Step7:VF1正常启动,fi4.两台虚拟机中,分别启动fio随4.两台虚拟机中,分别启动fio随off。4.两台虚拟机中,VF2启动fio随机VFOffline,对并列VF影响(4.fio测试过程中,将VF1所在虚拟2.测试过程中,其他VF的fio测试402.Step6:复位完成后,Host能识2.Step6:reboot完成后,Host5.fio测试过程中,对Hos2.Step6:重新启动完成后,Host414.启动fio进行bs128k长时间顺序4.启动fio进行bs4K长时间随(一)测试需求42(二)测试方法和测试标准);a.IO模型采用规格书中规定的模型,例如128K顺序读、写,b.多盘并发测试,可以覆盖跨socket场景,测试盘数根据实际12多盘并发场景,如果达不到规格书性能,需要进一步确认是服务器限制还是盘限制43BWConsistency=([BWinthe99.2.不同IO模型下的VFthrough44IOPSConsistency=([IOPSinthe99.9t2.不同IO模型下的VFthrough7.统计各个SSD在不同IO模型下的9.重复2-5(针对不同的I15IO模型组合可以按照产品规格书调整452.不同IO模型下的各个盘VFthrougIOPSConsistency=([IOPSinthe99.9t各个盘的PFIOPS与Spec标称值差距在业务2.不同IO模型下的各个盘VFIOPS与16IO模型组合可以按照产品规格书调整46存储部件特性SR-IOV测试规范是指在各个V

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论