2023存儲(chǔ)部件特性SR-IOV測(cè)試規(guī)范_第1頁
2023存儲(chǔ)部件特性SR-IOV測(cè)試規(guī)范_第2頁
2023存儲(chǔ)部件特性SR-IOV測(cè)試規(guī)范_第3頁
2023存儲(chǔ)部件特性SR-IOV測(cè)試規(guī)范_第4頁
2023存儲(chǔ)部件特性SR-IOV測(cè)試規(guī)范_第5頁
已閱讀5頁,還剩57頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

11存儲(chǔ)部件特性SR-IOV測(cè)試規(guī)范PAGE\*ROMANPAGE\*ROMANVI目錄版權(quán)聲明 I編寫組 II一、引言 1(一)SR-IOV特性介紹 1(二)編寫目的 2(三)縮略語 2二、SR-IOV測(cè)試概要 3(一)測(cè)試范圍 3(二)測(cè)試用例概括 3基本功能測(cè)試 3協(xié)議一致性測(cè)試 3兼容性測(cè)試 4應(yīng)用場景測(cè)試 4性能測(cè)試 4三、SR-IOV測(cè)試環(huán)境 4(一)宿主機(jī)虛擬機(jī)環(huán)境搭建(以CentOS7.9為例) 5確認(rèn)CPU是否支持虛擬化 5宿主機(jī)開啟虛擬化,并開啟SR-IOV支持 5修改系統(tǒng)內(nèi)核啟動(dòng)參數(shù),重啟系統(tǒng),使其開啟IOMMU,支持PCIPass-through Disableautoprobeaction(itissupportedifkernelversionis4.12orabove,whichcanignore) 在宿主機(jī)上安裝虛擬化軟件 7安裝虛擬機(jī) 7(二)SSDSR-IOV配置 7使用lspci-nn命令找到待分配的PCI設(shè)備,使能SR-IOV 7用nvme-cli命令查詢SSD的輔助控制器 7創(chuàng)建VF對(duì)應(yīng)的NS(namespace) 8輔助控制器的資源分配和上線 9配置SR-IOVQoS (三)虛擬機(jī)分配VF 通過圖形界面方式分配VF 12通過命令行直通給虛擬機(jī) 12(四)SR-IOV大規(guī)模環(huán)境部署 13四、SR-IOV基本功能測(cè)試 14(一)測(cè)試需求 14(二)測(cè)試方法和測(cè)試標(biāo)準(zhǔn) 15SR-IOV功能開關(guān)測(cè)試 15VF數(shù)量規(guī)格驗(yàn)證 15隊(duì)列資源分配測(cè)試 16中斷資源分配測(cè)試 17namespace資源分配驗(yàn)證 17特殊場景功能驗(yàn)證 18五、SR-IOV協(xié)議一致性測(cè)試 19(一)測(cè)試需求 19PCIe虛擬化相關(guān)協(xié)議內(nèi)容 19NVMe虛擬化相關(guān)協(xié)議內(nèi)容 19(二)協(xié)議虛擬化部分覆蓋測(cè)試 20IdentifyController 20PrimaryControllerCapabilities 22SecondaryControllerlist 26VirtualizationManagementcommand 28VirtualizationEnhancements 31(三)VFNVME命令集覆蓋測(cè)試 34測(cè)試方法概述 34測(cè)試項(xiàng)舉例 34六、SR-IOV兼容性測(cè)試 35(一)測(cè)試需求 35(二)測(cè)試項(xiàng)舉例 36七、SR-IOV應(yīng)用場景測(cè)試 37(一)測(cè)試需求 37(二)測(cè)試方法和測(cè)試標(biāo)準(zhǔn) 37虛擬機(jī)shutdown測(cè)試 37虛擬機(jī)reboot測(cè)試 37虛擬機(jī)forcereset 38虛擬機(jī)forceoff 38虛擬機(jī)添加、刪除PCIe設(shè)備(卸載、加載驅(qū)動(dòng)) 39VFOffline,對(duì)并列VF影響(PF不掛載NS) 39VFOffline,對(duì)PF、并列VF的影響(PF掛載NS) 39VFFLR,對(duì)并列VF的影響 40PF控制器復(fù)位 40Host服務(wù)器reboot 41Host服務(wù)器shutdown 41Host服務(wù)器掉電 41順序讀寫帶寬穩(wěn)定性 42隨機(jī)讀寫iops穩(wěn)定性 42八、SR-IOV性能測(cè)試 42(一)測(cè)試需求 42(二)測(cè)試方法和測(cè)試標(biāo)準(zhǔn) 43驗(yàn)證SR-IOV模式與非SR-IOV模式下的性能 43驗(yàn)證多VF性能是否均衡 47驗(yàn)證QoS功能有效性 52QoS精度驗(yàn)證 55長時(shí)間IO讀寫壓力測(cè)試 56PAGEPAGE1存儲(chǔ)部件特性SR-IOV測(cè)試規(guī)范一、引言(一)S-IV特性介紹SR-IOV是由PCI-SIG組織定義的PCIe規(guī)范的擴(kuò)展規(guī)范,是一種基于硬件的虛擬化解決方案,可提高性能和可伸縮性。SR-IOV標(biāo)準(zhǔn)允許在虛擬機(jī)之間高效共享PCIe設(shè)備,可以獲得能夠與本機(jī)性能媲美的I/O性能。SR-IOV協(xié)議引入了兩種類型功能的概念:物理功能PF和虛擬功能VF。PF用于管理SR-IOV功能。PF擁有完全配置資源,可以用于配置或控制PCIe設(shè)備。VF是與PF關(guān)聯(lián)的一種功能,是一種輕量級(jí)PCIe功能,可以與物理功能以及與同一物理功能關(guān)聯(lián)的其他VF共享一個(gè)或多個(gè)物理資源。VF僅允許擁有用于其自身行為的配置資源。在不支持SR-IOV的虛擬化場景下,各個(gè)虛擬機(jī)均通過代理(VMM)SSD資源的訪問,VMM實(shí)現(xiàn)地址轉(zhuǎn)換、IO調(diào)度等功能。在高IOPSVMM開銷較高甚至成為瓶頸。在SR-IOVSSDVFSSD提供的namespaceSSD資源的直接訪問,一方面虛擬機(jī)VFSSDIOIOPS與降低IOBypassVMM,進(jìn)一步降低了處理圖1傳統(tǒng)虛擬機(jī)與SR-IOV虛擬機(jī)對(duì)比SSD盤SR-IOV特性主要是應(yīng)對(duì)云上大盤拆小賣的場景。鑒于SSD盤的規(guī)格越來越大,拆小賣的需求長時(shí)間存在。相比之下,SPDK軟件方案實(shí)現(xiàn)了大盤拆小的能力,但是以消耗服務(wù)器上的CPU為代價(jià)。因此,SR-IOV技術(shù)在這個(gè)維度上是很有價(jià)值的。(二)編寫目的針對(duì)SR-IOV特性測(cè)試,從目前調(diào)研看,各個(gè)互聯(lián)網(wǎng)廠家都有獨(dú)自的一套測(cè)試方案,測(cè)試重點(diǎn)各有不同,缺乏統(tǒng)一的操作規(guī)范和判別標(biāo)準(zhǔn)。SSD廠家測(cè)試用例,制定了企SR-IOV特性的基準(zhǔn)測(cè)試方法,適用于企業(yè)級(jí)固態(tài)硬盤SR-IOV(三)縮略語下列縮略語適用于本標(biāo)準(zhǔn)。簡稱英文中文SR-IOVSingleRootIOVirtualization單根I/O虛擬化20232023PAGEPAGE19FLRFunctionLevelReset功能層復(fù)位QoSQualityofService服務(wù)質(zhì)量SVMAMDSecureVirtualMachineAMD的虛擬化技術(shù)VMXVirtual-MachineExtensionsIntel虛擬化技術(shù)PCIePeripheralComponentInterconnectExpress快速外設(shè)組件互連IOMMUInput/OutputMemoryManagementUnit輸入輸出的內(nèi)存管理單元二、 S-IV測(cè)試概要(一)測(cè)試范圍支持SR-IOV特性的SSD在產(chǎn)品規(guī)格和特性支持力度方面存在多種差異。本測(cè)試規(guī)范旨在聚焦于典型、具有代表性的場景,同時(shí)也會(huì)對(duì)其他規(guī)格和特性做相關(guān)描述。聚焦在單PF聚焦在非共享namespace場景(二)測(cè)試用例概括測(cè)試規(guī)范會(huì)從五方面展開:基本功能測(cè)試包括SRIOV功能開關(guān)驗(yàn)證;VF數(shù)量規(guī)格驗(yàn)證;隊(duì)列資源分配驗(yàn)證;中斷資源分配驗(yàn)證;namespace資源分配驗(yàn)證;特殊場景功能驗(yàn)證。協(xié)議一致性測(cè)試包括PCIe虛擬化相關(guān)協(xié)議驗(yàn)證;NVMe虛擬化相關(guān)協(xié)議驗(yàn)證;VFNVME命令集驗(yàn)證。兼容性測(cè)試涉及不同的服務(wù)器,操作系統(tǒng),驅(qū)動(dòng)和內(nèi)核版本驗(yàn)證,異常下,盤片行為驗(yàn)證。應(yīng)用場景測(cè)試覆蓋虛擬機(jī)應(yīng)用過程中的典型場景。包括虛擬機(jī)shutdown、reboot、forcereset、forceoff,移除添加PCI設(shè)備,VFofflineonline,虛擬機(jī)加、卸載驅(qū)動(dòng),VFFLR,服務(wù)器重啟、服務(wù)器上、下電等。性能測(cè)試包含SR-IOV模式與非SR-IOV模式下的性能驗(yàn)證;多VF性能QOSQoS精度驗(yàn)證;長時(shí)間IO三、SRIV測(cè)試環(huán)境表1SR-IOV軟硬件測(cè)試環(huán)境要求序號(hào)名稱數(shù)量配置要求1宿主機(jī)1英特爾或AMD處理器支持IOMMU支持VMX/SVM和SR-IOV規(guī)范操作系統(tǒng)推薦linux2SSD1支持SRIOV序號(hào)軟件名稱版本要求1nvme-cli推薦采用最新版本(version>=1.91)2fio推薦采用最新版本3qemu-kvm(一)宿主機(jī)虛擬機(jī)環(huán)境搭建(以CentOS7.9為例)確認(rèn)CPU是否支持虛擬化KVMCPU硬件支持虛擬化,不同廠商虛擬化技術(shù)命令不同(IntelCPUvmx,AMDCPU的虛擬化技術(shù)叫svm)。執(zhí)行如下命令,如果有結(jié)果顯示就說明CPU#sudoegrep-o'(vmx|svm)'/proc/cpuinfo圖2確認(rèn)CPU是否支持虛擬化SRIOV在服務(wù)器BIOS中,通常需要設(shè)置下面選項(xiàng)2:使能SRIOV選項(xiàng)使能Virtualization選項(xiàng)使能PCI64-BitResourceAllocation以DELLR750:1nvme-cli工具在1.9版本‘a(chǎn)ddidentifysecondarycontrollerlist’2服務(wù)器設(shè)置中如果沒有對(duì)應(yīng)選項(xiàng),可忽略該項(xiàng)。啟動(dòng)服務(wù)器時(shí)按住F2進(jìn)入BIOS模式,以下各項(xiàng)設(shè)置成ENABLE,保存退出SystemBIOS->ProcessorSettings->virtualizationtechnologySystemBIOS->ProcessorSettings->iommu_supportSystem BIOS->Processor Settings->integrated globalenable修改系統(tǒng)內(nèi)核啟動(dòng)參數(shù),重啟系統(tǒng),使其開啟IOMU,支持PCIPathroh修改/etc/default/grub,GRUB_CMDLINE_LINUX內(nèi)容,例如Intel,AMD的配置。Intel的配置:GRUB_CMDLINE_LINUXintel_iommu=oniommu=pt”,AMD的配置:GRUB_CMDLINE_LINUX=“amd_iommu=oniommu=pt”使用$grub-mkconfig-o/boot/grub/grub.cfg重新創(chuàng)建引導(dǎo),重啟系統(tǒng),使得配置生效。$dmesg|grep-E"DMAR|IOMMU"IOMMU是否正確使能。圖3查看IOMMU是否正確使能ialeatpreacion(tisortediferneleionis4.12oraoe,hchcaninor)#echo0>/sys/bus/pci/device/${bdf_pf}/sriov_drivers_autoprobe在啟用SR-IOV功能之前運(yùn)行上面命令,通過主機(jī)上的兼容驅(qū)動(dòng)程序禁用自動(dòng)探測(cè)VF。更新此條目不會(huì)影響已探測(cè)的VF。在宿主化軟件推薦使用qemu-kvm。安裝虛擬機(jī)采用命令行方式或者圖形界面方式,根據(jù)需求在KVM環(huán)境下安裝一個(gè)或多個(gè)虛擬機(jī),虛擬機(jī)OS可以根據(jù)業(yè)務(wù)需求選擇。宿主機(jī)和虛擬機(jī)可以采用網(wǎng)橋方式配置網(wǎng)絡(luò)或者在宿主機(jī)通過virshconsole連接虛擬機(jī)。(二)SSDSRIV配置使用lci-nn命令找到待分配的PCI設(shè)備,使能SR-IOV查詢SSD:#lspci-nn|grepNon使能硬盤的n代表VF#echon>/sys/bus/pci/devices/${bdf_pf}/sriov_numvfs用ne-ci令查詢SSD制器#nvmelist-secondary/dev/nvmeX3下圖是查詢的輔助控制器對(duì)應(yīng)的信息:初始狀態(tài)都為VQ和VI0。圖4list-secondary輔助控制器查詢信息創(chuàng)建VF對(duì)應(yīng)的NS(namespace)NVME協(xié)議,PFVFNS,如下圖中NSFNSNSA,NSB等。協(xié)議中對(duì)于共享NS圖5nvme協(xié)議中SR-IOVNS分配示例3nvmeX中X根據(jù)實(shí)際環(huán)境中盤符修改NS1NS為例,如果創(chuàng)建NS#nvmecreate-ns/dev/nvmeX4-s${ns_size}-c${ns_size}-f0-d0-m0attachNS#nvmeattach-ns/dev/nvmeX1-n1-c${輔助控制器ID5}輔助控制器的資源分配和上線Spec中的參數(shù)配2。下面以輔助控制器ID0x2,分配VI和VQ9為例,如果需要配置多個(gè),重復(fù)以下步驟即可。需要注意的VI資源的數(shù)量內(nèi)部設(shè)置成了固定值,Allocate9VQresourcetosecondarycontroller2(CID2)#nvmevirt-mgmt/dev/nvmeX1-c0x2-r0-a8-n0x9nvmevirt-mgmt[ --cntlid=<NUM>,-c<NUM>] ControllerIdentifier(CNTLID)[--rt=<NUM>,-r<NUM>] Resource[0,1]4nvmeX中X根據(jù)實(shí)際環(huán)境中盤符修改5IDESSD0x2PM17330h:VQResources1h:VIResources[--act=<NUM>,-a<NUM>] Action(ACT):[1,7,8,9]1h:PrimaryFlexible7h:SecondaryOffline8h:SecondaryAssign9h:SecondaryOnline[--nr=<NUM>,-n<NUM>] NumberofControllerResources(NR)除了nvme-cli封裝的命令nvmevirt-mgmt外,也可以采用標(biāo)準(zhǔn)的nvme命令格式配置VQ# nvme admin-passthru /dev/nvmeX6 --opcode=0x1C cdw10=0x10008--cdw11=${VQ_count}Allocate9VIresourcetosecondarycontroller2(CID2)#nvmevirt-mgmt/dev/nvmeX1-c0x2-r1-a8-n0x9除了nvme-cli封裝的命令nvmevirt-mgmt外,同樣也可以采用標(biāo)準(zhǔn)的nvme命令格式配置VI資源,命令如下:# nvme admin-passthru /dev/nvmeX1 --opcode=0x1C cdw10=0x10108--cdw11=${VI_count}IssueFLRonVF(FLR7)6nvmeX中X根據(jù)實(shí)際環(huán)境中盤符修改7部分ESSD廠家配置時(shí),不支持FLR操作#echo1>/sys/bus/pci/devices/${bdf_vf}/resetSetsecondarycontrolleronline#nvmevirt-mgmt/dev/nvmeX8-c2-a9除了nvme-cli封裝的命令nvmevirt-mgmt外,同樣也可以采用標(biāo)準(zhǔn)的nvme命令格式配置VI資源,命令如下:# nvme admin-passthru /dev/nvmeX1 --opcode=0x1C cdw10=0x10009--cdw11=0圖6查看輔助控制器狀態(tài)信息置S-IOVoSSR-IOVQoSSR-IOVQoS的SSDvendor字段定義。具體設(shè)定方法需要根據(jù)廠家說明書配置。通常QoS的配置是和VFID(三)虛擬機(jī)分配VF虛擬機(jī)分配VF,可以通過兩種方式,一種是圖形界面方式,另一種是通過命令行直通給虛擬機(jī)。8nvmeX中X根據(jù)實(shí)際環(huán)境中盤符修改通過圖形界面方式分VF登陸HOST的virt-manager圖形界面MachineManager,雙擊已經(jīng)安裝的GUEST。點(diǎn)擊信息配置欄,選擇AddHardware->PCIHostDevice,將VFPCI圖7圖形界面分配VF通過命令行直通給虛擬機(jī)將VF設(shè)備綁定到VFIO驅(qū)動(dòng),配置幾個(gè)VF,就將其綁定到VFIO驅(qū)動(dòng),下面以VF1為例:查看PCI設(shè)備的vendorid和deviceid#lspci–nn|grepNon#modprobevfio#modprobevfio-pci將初始的VF驅(qū)動(dòng)解綁#echo${bdf_vf}>/sys/bus/pci/devices/${bdf_vf}/driver/unbind把上一步解綁的VF綁定到vfio#echo${bdf_vf}>/sys/bus/pci/drivers/vfio-pci/bind開啟虛擬機(jī),將VF設(shè)備通過VFIO執(zhí)行如下命令開啟虛擬機(jī),并將VF#qemu-system-x86_64-enable-kvm-m${vf_memory_size}-smp${vf_cpu_count}${image_path}-devicevfio-pci,host=${bdf_vf}Eg.#qemu-system-x86_64 -enable-kvm -m 2G -smp /home/lpw/img1/linux.img-devicevfio-pci,host=0000:86:00.1如果在虛擬機(jī)上可以查詢到NVMe設(shè)備,如下圖所示,就說明搭建成功圖8虛擬機(jī)中查詢nvme設(shè)備(四)S-IV大規(guī)模環(huán)境部署由于SR-IOV配置信息在盤片掉電、重啟后不會(huì)被保存,因此在需要進(jìn)行大規(guī)模環(huán)境部署時(shí),重新為每張盤片設(shè)置SR-IOV配置信息將耗費(fèi)大量時(shí)間和精力。為了解決這個(gè)問題,我們可以采用配置文件的方式來記錄盤片的配置信息。通過腳本來解析這些配置文件,實(shí)現(xiàn)對(duì)SSD盤片的SR-IOV設(shè)置。以下列出了三種場景下的配置流程:圖9SR-IOV不同場景下的配置流程四、SRIV基本功能測(cè)試(一)測(cè)試需求SRIOV基本功能測(cè)試,主要包含以下幾方面:SRIOVVFnamespace(二)測(cè)試方法和測(cè)試標(biāo)準(zhǔn)S-IV關(guān)SR-IOV默認(rèn)開/關(guān)狀態(tài)在常見應(yīng)用場景下是否可持久保存。常見應(yīng)用場景,包含重啟服務(wù)器,盤片固件升級(jí),盤片異常掉電,盤片控制器復(fù)位,加載、卸載驅(qū)動(dòng)等,如果SSD支持SR-IOV//測(cè)試用例驗(yàn)證SR-IOV默認(rèn)開關(guān)狀態(tài)可持久化保存測(cè)試目的驗(yàn)證SR-IOV默認(rèn)開關(guān)狀態(tài)可持久化保存測(cè)試方法測(cè)試步驟:查詢盤片SRIOV默認(rèn)開啟狀態(tài)依次執(zhí)行下面場景:服務(wù)器重啟,盤片熱插拔,盤片控制器復(fù)位,加載、卸載nvme步驟2中,每個(gè)場景執(zhí)行后,查詢盤片IOV開啟狀態(tài)通過準(zhǔn)則步驟3查詢到的狀態(tài)與步驟1默認(rèn)狀態(tài)一致VF格驗(yàn)證測(cè)試注意點(diǎn):VF1VF綁定虛擬機(jī)測(cè)試基本IO測(cè)試用例驗(yàn)證盤片支持VF能力測(cè)試目的驗(yàn)證盤片支持VF能力測(cè)試方法假定SSD最多支持16個(gè)VF測(cè)試步驟:通過配置VF使能個(gè)數(shù)為1后,進(jìn)行3分鐘基本IO功能測(cè)試,查看是否OK;配置VF使能個(gè)數(shù)為最大16個(gè),綁定虛擬機(jī),進(jìn)行3分鐘基本IO功能測(cè)試,查看是否OK;配置VF使能個(gè)數(shù)從2-16個(gè),并綁定虛擬機(jī),進(jìn)行3分鐘基本IO功能測(cè)試,查看是否OK通過準(zhǔn)則步驟1中,VF使能1個(gè)成功,VF下IO讀寫均正常步驟2中,VF使能16個(gè)成功,VF下IO讀寫均正常步驟3中,VF使能2-16個(gè)成功,VF下IO讀寫均正常隊(duì)列資源分配測(cè)試VFVQ2個(gè)隊(duì)列(AdminSubmissionQueuex1+IOSubmissionQueuex1);VF分配最大支持VQ數(shù)量場景,每個(gè)VF分配的VQ數(shù)量可以不均勻;PF,VFIO測(cè)試用例驗(yàn)證所有VF只分配最小隊(duì)列資源后能正常運(yùn)行測(cè)試目的隊(duì)列資源分配測(cè)試1. 創(chuàng)建8個(gè)NS;測(cè)試方法創(chuàng)建8個(gè)VF,每個(gè)VF分配2個(gè)隊(duì)列,onlineVF,把8個(gè)NS分別掛載到8個(gè)VF;把VF分別掛載到不同虛擬機(jī);fio分別對(duì)8個(gè)VF進(jìn)行64K50%,1線程64隊(duì)列,持續(xù)30分鐘;觀察IO讀寫情況。通過準(zhǔn)則步驟5中,VF均讀寫正常,無IO錯(cuò)誤和數(shù)據(jù)不一致測(cè)試用例驗(yàn)證VF分配最大隊(duì)列資源后能正常運(yùn)行測(cè)試目的隊(duì)列資源分配測(cè)試測(cè)試方法創(chuàng)建8個(gè)NS;創(chuàng)建8個(gè)VF,對(duì)VF1~7每個(gè)分配2個(gè)VQ隊(duì)列,VF8分配剩下所有的隊(duì)列;onlineVF,把8個(gè)NS掛載到VF8;把VF8掛載到虛擬機(jī);fio對(duì)VF8進(jìn)行64K隨機(jī)讀寫,讀比例50%,1線程64隊(duì)列,持續(xù)5分鐘;觀察IO讀寫情況。通過準(zhǔn)則步驟6中,VF8讀寫正常,無IO錯(cuò)誤和數(shù)據(jù)不一致中斷資源分配測(cè)試先確認(rèn)SSD是否支持中斷資源配置,如果支持,注意下面幾點(diǎn):VI數(shù)量驗(yàn)證,需要從兩方面考慮,一種是對(duì)應(yīng)中斷模式最大支持的中斷數(shù)量,二是處理器對(duì)VI不同VIPF,VFIOnamespace資源分配驗(yàn)證nvme控制器是否正確執(zhí)行命名空間管理命令,并能夠正常關(guān)聯(lián)到二級(jí)控制器中;namespace在對(duì)應(yīng)PF/VFIOSSDnamespcePFVF之間共享,VF測(cè)試用例驗(yàn)證所有VF只分配最小隊(duì)列資源后能正常運(yùn)行測(cè)試目的隊(duì)列資源分配測(cè)試測(cè)試方法假定業(yè)務(wù)典型應(yīng)用場景為4VF。按照等容量創(chuàng)建5個(gè)NS;創(chuàng)建4個(gè)VF,平均分配VQ、VI資源;OnlineVF,把5個(gè)NS分配掛載到PF和4VF;把4個(gè)VF分配掛載到4個(gè)虛擬機(jī);格式化每個(gè)NS為文件系統(tǒng),分別掛載到HOST和對(duì)應(yīng)虛擬機(jī)測(cè)試目錄下;在5個(gè)掛載目錄下,隨機(jī)產(chǎn)生100G文件9算隨機(jī)產(chǎn)生文件的md5值;在掛載目錄下,對(duì)步驟6生成的文件進(jìn)行拷貝,重新計(jì)算md5,并和步驟6計(jì)算的md5比較;重復(fù)步驟7,測(cè)試5次。通過準(zhǔn)則步驟7兩次md5值一致特殊場景功能驗(yàn)證SSD除了單端口盤外,還存在多種形態(tài),比如雙端口盤,加密盤。測(cè)試注意點(diǎn):SR-IOV特性驗(yàn)證,可以當(dāng)作兩個(gè)單端口盤驗(yàn)證,區(qū)別在于namespaceVQ,VI9文件大小,根據(jù)NS大小,和步驟8重復(fù)測(cè)試次數(shù)調(diào)整。namespaceSR-IOV特性中,需要把加密特性一起加入驗(yàn)證,如果加密特性不是針對(duì)namespace,需要根據(jù)SSD五、SRIV協(xié)議一致性測(cè)試(一)測(cè)試需求通過nvme-cli工具下發(fā)指令并檢查返回值來驗(yàn)證SR-IOV的協(xié)議一致性,確保待測(cè)樣品能夠支持協(xié)議規(guī)范內(nèi)的虛擬化相關(guān)特性。PCIe議PCIe規(guī)范中有一章節(jié)“SingleRootI/OVirtualizationandSharingSR-IOV做了協(xié)議描述。SSD芯片驗(yàn)證階段,會(huì)進(jìn)行PCIe協(xié)議一致性驗(yàn)證。本測(cè)試規(guī)范針對(duì)PCIeSRIOVNVMe虛擬化相關(guān)協(xié)議內(nèi)容本文檔所用NVMe協(xié)議基于NVMeSpec1.4c版本。SR-IOV相關(guān)協(xié)議內(nèi)容包含:IdentifyController(5.15.2.2,NVMeSpec1.4c)PrimaryControllerCapabilities(5.15.2.10,NVMeSpec1.4c)SecondaryControllerlist(5.15.2.11,NVMeSpec1.4c)VirtualizationManagementcommand(5.22,NVMeSpec1.4c)VirtualizationEnhancements(8.5,NVMeSpec1.4c)在NVMeSpec1.4c(二)協(xié)議虛擬化部分覆蓋測(cè)試IdenifyControllerNVMeSSDSR-IOV。nvme-cliid-ctrl命令可以返回協(xié)議中定義的IdentifyController數(shù)據(jù)結(jié)構(gòu),該數(shù)據(jù)Byte76,bit2用于支持是否關(guān)聯(lián)了SR-IOV的Function。對(duì)應(yīng)的nvme-cli命令為“nvmeid-ctrl”。圖10 nvmeidentifycontroller-Byte76定義[7:7]:0x1 VirtualizationManagementSupported[9:9]:0 GetLBAStatusCapabilityNot[7:7]:0x1 VirtualizationManagementSupported[9:9]:0 GetLBAStatusCapabilityNotSupported[8:8]:0 DoorbellBufferConfigNotSupported:0x9eoacs#nvmeid-ctrl/dev/nvme0-H|grep-A10oacs[6:6][6:6]:0 NVMe-MISendandReceiveNotSupported[5:5]:0 DirectivesNotSupported[4:4]:0x1 DeviceSupported[3:3]:0x1 NSManagementandAttachmentSupported[2:2]:0x1 FWCommitandDownloadSupported[1:1]:0x1 FormatNVMSupported[0:0]:0 SecuritySendandReceiveNotSupported對(duì)于支持SR-IOV的盤輸出應(yīng)當(dāng)為Supported。示例命令2-/dev/nvme2是Linux系統(tǒng)下配置VF后看到的:0x6cmic#nvmeid-ctrl/dev/nvme2|grepcmic:0x6cmic#nvmeid-ctrl/dev/nvme2|grepcmic對(duì)于VF設(shè)備cmic的bit21。PiaryControllerCapiltesPrimaryController的信息和相關(guān)資源。nvme-cli工具primary-ctrl-caps返回協(xié)議中定義的數(shù)據(jù)結(jié)構(gòu),該結(jié)構(gòu)描述了PrimaryControllerVQ/VINVMeSpec1.4c定義,VQ/VI資源分為私有(Private)和可變(Flexible)controller資源可以分配給不同PF/VF。對(duì)應(yīng)的nvme-cli命令為“nvmeprimary-ctrl-caps”。圖11 nvmeidentify-主控能力結(jié)構(gòu)體#nvmeprimary-ctrl-caps/dev/nvme0-H#nvmeprimary-ctrl-caps/dev/nvme0-HNVMEIdentifyPrimaryControllerCapabilities:cntlid :0portid :0crt :0x3[1:1]0x1 VIResourcesaresupported[0:0]0x1 VQResourcesaresupportedvqfrt 118vqrfa 0vqrfap 0vqprt 14vqfrsm 14vqgran 1vifrt 118virfa 0virfap 0viprt 14vifrsm 14vigran 1其中字段說明如下:Cntlid是PFcontrollerID。Crtbit分別表示是否支持VQ/VI資源。如果VQ/VIbit0。是否支持配置VQ/VI資源取決VqfrtPF/VFVQ可變資源數(shù)。該Vqfra表示已經(jīng)分配給VF的VQVqrfap表示當(dāng)前已經(jīng)分配給PF的VQVqprt表示當(dāng)前已經(jīng)分配給PF的VQVqfrsm表示總共可以分配給單個(gè)VFVQ可變資源數(shù)。該Vqgran表示分配/VQ資源數(shù)的最小粒度。按最小粒度分表示總共可以用來分配給PF/VFVI可變資源數(shù)。該表示已經(jīng)分配給VF的VI表示當(dāng)前已經(jīng)分配給PF的VI表示當(dāng)前已經(jīng)分配給PF的VIVFVI可變資源數(shù)。該數(shù)表示分配/VI資源數(shù)的最小粒度。按最小粒度分配可以最小化內(nèi)部資源浪費(fèi)。PF/VFVQ/VI配置前,執(zhí)行前述命令并查看可用資源類別及數(shù)量,與設(shè)備規(guī)格說明對(duì)比判斷資源數(shù)是否正確;配置后,執(zhí)PF/VFVQ/VI資源做對(duì)比,以判斷資SecondayControllerit用于查看當(dāng)前支持的所有VF(SecondaryController)的狀態(tài)和資源配置情況。協(xié)議定義的數(shù)據(jù)結(jié)構(gòu)最多返回127VF信息。返回的條目包含處于online或offline狀態(tài)的VF。對(duì)應(yīng)nvme-cli的命令為“nvmelist-secondary”。圖12 nvmesecondarycontroller結(jié)構(gòu)體定義#nvmelist-secondary/dev/nvme0-c3IdentifySecondaryControllerList:NUMID :NumberofIdentifiers 8SCEntry[3]:SCID :SecondaryControllerIdentifier:0x0004PCID :PrimaryControllerIdentifier :0x0000SCS :SecondaryController:0x0001(Online)VFN :VirtualFunctionNumber :0x0004NVQ :NumVQFlexResourcesAssigned:0x000eNVI :NumVIFlexResourcesAssigned:0x000eSCEntry[4]:SCID :SecondaryControllerIdentifier:0x0005PCID :PrimaryControllerIdentifier :0x0000SCS :SecondaryController:0x0000(Offline)VFN :VirtualFunctionNumber :0x0005NVQ :NumVQFlexResourcesAssigned:0x0000NVI :NumVIFlexResourcesAssigned:0x0000SCEntry[5]:SCID :SecondaryControllerIdentifier:0x0006PCID :PrimaryControllerIdentifier :0x0000SCS :SecondaryController:0x0000(Offline)VFN :VirtualFunctionNumber :0x0006NVQ :NumVQFlexResourcesAssigned:0x0000NVI :NumVIFlexResourcesAssigned:0x0000SCEntry[6]:SCIDSCIDPCIDSCSVFNNVQNVI:SecondaryControllerIdentifier:0x0007:PrimaryControllerIdentifier:SecondaryControllerState:VirtualFunctionNumber:0x0000:0x0000(Offline):0x0007:NumVQFlexResourcesAssigned:0x0000:NumVIFlexResourcesAssigned:0x0000SCEntry[7]:SCIDPCIDSCSVFNNVQNVI:SecondaryControllerIdentifier:0x0008:PrimaryControllerIdentifier:SecondaryControllerState:VirtualFunctionNumber:0x0000:0x0000(Offline):0x0008:NumVQFlexResourcesAssigned:0x0000:NumVIFlexResourcesAssigned:0x0000注意此處的命令行參數(shù)“-c3”,表示返回結(jié)果中的controllerID3開始,controllerID3的不顯示。ControlID是結(jié)果輸出中的“SCID”對(duì)應(yīng)的數(shù)字,不是SCEntryraliaionManeentcand虛擬化管理命令僅在PrimaryController(PF)上支持。該命令用于:修改primarycontroller為secondarycontroller修改secondarycontroller的online/offline狀態(tài)。對(duì)應(yīng)的nvme-cli命令為“nvmevirt-mgmt”。注意SecondaryController處于Offline狀態(tài)才能對(duì)它分配VQ/VI可變資源。5.2.2.2PrimaryControllerCapabilitiesVQ/VI是否支持,是否有可用可變資源用于分配給PF或VF。圖13 nvme虛擬化管理命令返回狀態(tài)虛擬化管理命令的返回值為4種:InvalidControllerIdentifierControllerID。命令中使ControllerIDSecondaryControllerID不存在。請(qǐng)使用list-secondary命令獲取正確的SecondaryControllerID。InvalidSecondaryControllerStateSecondaryController狀態(tài)SecondaryController做管理操作時(shí)它處于不正確的狀態(tài)。例如對(duì)處于Online狀態(tài)的SecondaryController配置VQ/VIInvalidNumberofControllerResources量無效。例如嘗試分配的VQ可變資源數(shù)大于可用VQInvalidResourceIdentifier個(gè)是無效的。例如嘗試分配的可變資源數(shù)大于剩余可分配的可變資源數(shù)。示例命令1–為PF分配VQ可變資源:#nvmevirt-mgmt/dev/nvme0-c2-r0-n8-a1#nvmevirt-mgmt/dev/nvme0-c2-r0-n8-a1success,NumberofControllerResourcesModified(NRM):0示例命令2–為PF分配VI可變資源:#nvmevirt-mgmt/dev/nvme0-c2-r1-n8-a1#nvmevirt-mgmt/dev/nvme0-c2-r1-n8-a1success,NumberofControllerResourcesModified(NRM):0示例命令3–為VF分配VQ可變資源:#nvmevirt-mgmt/dev/nvme0-c2-r0-n8-a8#nvmevirt-mgmt/dev/nvme0-c2-r0-n8-a8success,NumberofControllerResourcesModified(NRM):0示例命令4–為分配VI可變資源:#nvmevirt-mgmt/dev/nvme0-c2-r1-n8-a8#nvmevirt-mgmt/dev/nvme0-c2-r1-n8-a8success,NumberofControllerResourcesModified(NRM):0示例命令5–設(shè)為Online:#nvmevirt-mgmt/dev/nvme0-c2-a9#nvmevirt-mgmt/dev/nvme0-c2-a9success,NumberofControllerResourcesModified(NRM):0VFOnlineOnline狀態(tài)會(huì)返回成功。VF2VQadmin,一個(gè)用于I/O。如果分配VQ2對(duì)VF做Online示例命令6–設(shè)為Offline:#nvmevirt-mgmt/dev/nvme0-c2-a7#nvmevirt-mgmt/dev/nvme0-c2-a7success,NumberofControllerResourcesModified(NRM):0VFOfflineOffline狀態(tài)會(huì)返回成功。raliaionEnhancents在虛擬化環(huán)境中,NVM子系統(tǒng)可以通過多個(gè)控制器為物理機(jī)和虛擬機(jī)提供直接I/O訪問通路。NVM子系統(tǒng)可由多個(gè)PrimaryControllerSecondaryControllerSecondaryController均依附于1PrimaryController,并通過PrimaryController來為SecondaryController通過向PrimaryController發(fā)送虛擬化管理命令可以為每個(gè)控制器分配或移除控制器資源(ControllerResources)??煞峙淇刂破髻Y源分為兩種:QueueResource(VQ資源)1對(duì)SQ/CQ(SubmissionQueue/completionQueue)。InterruptResource(VI資源)。每個(gè)資源用于管理1個(gè)中斷向量??刂破髻Y源從可分配性上看分為兩種,可變資源(FlexibleResources)和私有資源(PrivateResources)。私有資源是固定分配PrimaryControllerSecondaryController的資源,不能通過虛擬化管理命令配置。而可變資源PrimaryControllerSecondaryControllerPrimaryController和SecondaryController是否支持私有資源或可變資源,可以通過PrimaryControllerCapabilities中的數(shù)據(jù)結(jié)構(gòu)查看。圖14 nvme控制器資源分配廠商可以選擇為PrimaryControllerSecondaryController實(shí)現(xiàn)NVMeSpec1.4c中的所有的,除明確指出只支持PrimaryController外的特性,但是這里建議對(duì)于特權(quán)操作(NVMeSpec1.4c7.14小節(jié)所提)PrimaryController上實(shí)現(xiàn),以避免通過SecondaryController執(zhí)行特權(quán)操作帶來的意外,例如通過SecondaryController1用format命令格式化關(guān)聯(lián)在SecondaryController2SingleRootI/OVirtualizationandSharing規(guī)范擴(kuò)展了PCIExpress(SystemImages,SIs)(如虛擬機(jī))共享PCI設(shè)備硬件資源。SR-IOV的優(yōu)勢(shì)是Hypervisor不需要參與I/O操作,SI直接訪問硬件資源,這在一些虛擬化場景中極大地提升了存儲(chǔ)的性能。PhysicalFunction(PF)SR-IOVPCIExpressFunction,它同時(shí)支持一個(gè)或多個(gè)依附于該P(yáng)FFunction(VF)。PF/VFMulti-pathI/ONVM子系統(tǒng),以及共享命名空間的特性。SR-IOVVF如果設(shè)置了NVMExpressClassCode,應(yīng)當(dāng)實(shí)現(xiàn)兼NVMExpressController,這是為了保證在非虛擬化環(huán)境中不修改系統(tǒng)鏡像也能夠正常使用。例如在LinuxVF時(shí),需要VFNVMe標(biāo)準(zhǔn),Linuxnvme驅(qū)動(dòng)不需要修改就能直接通過VF訪問I/O。(三)VFNVME令集覆蓋測(cè)試測(cè)試方命令測(cè)試范圍需要根據(jù)SSDVF支持命令清單制定;VFVF1。測(cè)試項(xiàng)舉例測(cè)試用例虛擬機(jī)上下發(fā)identify測(cè)試測(cè)試目的驗(yàn)證SR-IOV功能遵從NVMe協(xié)議測(cè)試步驟:創(chuàng)建1個(gè)NS;創(chuàng)建1VF,并分配VQ隊(duì)列,onlineVF,把NS掛載到VF;測(cè)試方法把VF掛載到虛擬機(jī);在虛擬機(jī)上對(duì)盤片下發(fā)Identify命令(遍歷以下全部所列Identify命令:Identify0x1、Identify0x2、Identify0x3、Identify0x11、Identify0x12)10通過準(zhǔn)則步驟4中,命令下發(fā)成功測(cè)試用例虛擬機(jī)上下發(fā)getlogpage測(cè)試測(cè)試目的驗(yàn)證SR-IOV功能遵從NVMe協(xié)議測(cè)試方法測(cè)試步驟:創(chuàng)建1個(gè)NS;創(chuàng)建1VF,并分配VQ隊(duì)列,onlineVF,把NS掛載到VF;把VF掛載到虛擬機(jī);在虛擬機(jī)上對(duì)盤片下發(fā)Getlogpage命令(包含以下全部所列Getlogpage命令:Getlogpage0x1、Getlogpage0x2、Getlogpage0x3、Getlogpage0x4、Getlogpage0x81)11通過準(zhǔn)則步驟4中,命令下發(fā)成功六、SRIV兼容性測(cè)試(一)測(cè)試需求本章主要從兩方面進(jìn)行驗(yàn)證:SR-IOV兼容性驗(yàn)證,涉及不同的服務(wù)器,操作系統(tǒng),驅(qū)動(dòng)和10identifyID設(shè)置范圍根據(jù)產(chǎn)品規(guī)格書VF支持命令集修改11GetlogpageID設(shè)置范圍根據(jù)產(chǎn)品規(guī)格書VF支持命令集修改服務(wù)器選擇,可以覆蓋目前主流廠家服務(wù)器,例如超聚變,浪潮,聯(lián)想,戴爾等,以業(yè)務(wù)指定服務(wù)器為測(cè)試重點(diǎn);系統(tǒng)選擇,可以在每個(gè)主流體系OS中選擇一到兩個(gè)驗(yàn)證,RedHatRedHatCentosSUSE體系中的debian/ubuntu,OpenCloudOS體系中的OpenCloudOSOSnvme驅(qū)動(dòng)外,如果存儲(chǔ)部件廠家有自己編寫的驅(qū)動(dòng),也需要驗(yàn)證到,以業(yè)務(wù)指定驅(qū)動(dòng)版本為測(cè)試重點(diǎn);內(nèi)核版本,選取穩(wěn)定版本內(nèi)核,以業(yè)務(wù)指定的內(nèi)核版本為測(cè)IO讀寫正常;異常下SSD(二)測(cè)試項(xiàng)舉例測(cè)試用例操作系統(tǒng)兼容性測(cè)試測(cè)試目的驗(yàn)證不同操作系統(tǒng)下,SSDSR-IOV環(huán)境能正常搭建測(cè)試方法服務(wù)器安裝ubuntu系統(tǒng);創(chuàng)建8個(gè)NS;創(chuàng)建8個(gè)VF,并平均分配VQ、VI資源,onlineVF,把8個(gè)NS分別掛載到8個(gè)VF;把VF分別掛載到不同虛擬機(jī);fio分別對(duì)8個(gè)VF進(jìn)行64K50%,1線程64隊(duì)列,持續(xù)30分鐘;觀察IO讀寫情況;更換服務(wù)器操作系統(tǒng)為centos,重復(fù)步驟3~步驟61. SR-IOV在不同操作系統(tǒng)上搭建正常,通過準(zhǔn)則2. Step5:VF均讀寫正常,無IO一致。七、SRIV應(yīng)用場景測(cè)試(一)測(cè)試需求本章主要描述了客戶在應(yīng)用SR-IOVVMHost層面的正常、非正常操作,進(jìn)行的測(cè)試涵蓋客戶在使用過程中遇到的各種場景。驗(yàn)證SR-IOV設(shè)備在實(shí)際使用中的穩(wěn)定性。(二)測(cè)試方法和測(cè)試標(biāo)準(zhǔn)虛擬機(jī)shutdown測(cè)試測(cè)試用例虛擬機(jī)shutdown測(cè)試測(cè)試目的虛擬機(jī)應(yīng)用場景中,shutdown虛擬機(jī),對(duì)其他VF虛擬機(jī)以及測(cè)試虛擬機(jī)的影響測(cè)試方法創(chuàng)建2個(gè)NS。創(chuàng)建2個(gè)VF。并把2個(gè)NS分別掛載到2個(gè)VF。把VF分別掛載到兩臺(tái)虛擬機(jī)。兩臺(tái)虛擬機(jī)中,分別啟動(dòng)fio隨機(jī)讀寫測(cè)試。fio測(cè)試過程中,將VF1shutdown。觀察VF2虛擬機(jī)IO是否正常。重新運(yùn)行VF1所在的虛擬機(jī),并重新啟動(dòng)IO觀察其它虛擬機(jī)IO是否正常。通過準(zhǔn)則Step5:VF1所在的虛擬機(jī)正常shutdown。Step7:VF1正常啟動(dòng),fio測(cè)試無異常測(cè)試過程中,VF2虛擬機(jī)的fio無性能跌落。虛擬機(jī)reboot測(cè)試測(cè)試用例虛擬機(jī)reboot測(cè)試測(cè)試目的虛擬機(jī)應(yīng)用場景中,reboot虛擬機(jī),對(duì)其他VF虛擬機(jī)以及測(cè)試虛擬機(jī)的影響測(cè)試方法創(chuàng)建2個(gè)NS。創(chuàng)建2個(gè)VF。并把2個(gè)NS分別掛載到2個(gè)VF。把VF分別掛載到兩臺(tái)虛擬機(jī)。兩臺(tái)虛擬機(jī)中,分別啟動(dòng)fio隨機(jī)讀寫測(cè)試。fio測(cè)試過程中,將VF1reboot。觀察VF2虛擬機(jī)IO是否正常。重新運(yùn)行VF1所在的虛擬機(jī),并重新啟動(dòng)IO觀察其它虛擬機(jī)IO是否正常。通過準(zhǔn)則Step5:VF1所在的虛擬機(jī)正常reboot。Step7:VF1正常啟動(dòng),fio測(cè)試無異常測(cè)試過程中,VF2虛擬機(jī)的fio測(cè)試無異常,無性能跌落。forcereset測(cè)試用例虛擬機(jī)forcereset測(cè)試測(cè)試目的虛擬機(jī)應(yīng)用場景中,forcereset虛擬機(jī),對(duì)其他VF虛擬機(jī)以及測(cè)試虛擬機(jī)的影響測(cè)試方法創(chuàng)建2個(gè)NS。創(chuàng)建2個(gè)VF。并把2個(gè)NS分別掛載到2個(gè)VF。把VF分別掛載到兩臺(tái)虛擬機(jī)。兩臺(tái)虛擬機(jī)中,分別啟動(dòng)fio隨機(jī)讀寫測(cè)試。fio測(cè)試過程中,將VF1所在虛擬機(jī)進(jìn)行reset。觀察VF2虛擬機(jī)IO是否正常。重新運(yùn)行VF1所在的虛擬機(jī),并重新啟動(dòng)IO觀察其它虛擬機(jī)IO是否正常。通過準(zhǔn)則Step7:VF1正常啟動(dòng),fio測(cè)試無異常測(cè)試過程中,VF2虛擬機(jī)的fio無性能跌落。虛擬機(jī)forceoff測(cè)試用例虛擬機(jī)forceoff測(cè)試測(cè)試目的虛擬機(jī)應(yīng)用場景中,forceoff虛擬機(jī),對(duì)其他VF虛擬機(jī)以及測(cè)試虛擬機(jī)的影響創(chuàng)建2個(gè)NS。創(chuàng)建2個(gè)VF。并把2個(gè)NS分別掛載到2個(gè)VF。把VF分別掛載到兩臺(tái)虛擬機(jī)。兩臺(tái)虛擬機(jī)中,分別啟動(dòng)fio隨機(jī)讀寫測(cè)試。測(cè)試方法fio測(cè)試過程中,將VF1所在虛擬機(jī)進(jìn)行off。觀察VF2虛擬機(jī)IO是否正常。重新運(yùn)行VF1所在的虛擬機(jī),并重新啟動(dòng)IO觀察其它虛擬機(jī)IO是否正常。通過準(zhǔn)則Step7:VF1正常啟動(dòng),fio測(cè)試無異常測(cè)試過程中,VF2虛擬機(jī)的fio測(cè)試無異常,無性能跌落。刪除PCIe(載驅(qū)動(dòng))測(cè)試用例虛擬機(jī)添加、刪除PCIe設(shè)備(卸載、加載驅(qū)動(dòng))測(cè)試目的虛擬機(jī)應(yīng)用場景中,添加、刪除PCIe設(shè)備,對(duì)其他虛擬機(jī)的影響測(cè)試方法創(chuàng)建2個(gè)NS。創(chuàng)建2個(gè)VF。并把2個(gè)NS分別掛載到2個(gè)VF。把VF分別掛載到兩臺(tái)虛擬機(jī)。VF2啟動(dòng)fio隨機(jī)讀寫測(cè)試。測(cè)試過程中,將VF1所在虛擬機(jī)設(shè)備驅(qū)動(dòng)卸載,然后加載。。觀察VF2虛擬機(jī)IO是否正常。觀察其它虛擬機(jī)IO是否正常。通過準(zhǔn)則Step5:VF1設(shè)備驅(qū)動(dòng)可以正常卸載后加載測(cè)試過程中,VF2虛擬機(jī)的fio無性能跌落。Ffflne,并列FPF不載S)測(cè)試用例VFOffline,對(duì)并列VF影響(PF不掛載NS)測(cè)試目的虛擬機(jī)應(yīng)用場景中,VFOffline,對(duì)其他虛擬機(jī)的影響測(cè)試方法創(chuàng)建2個(gè)NS。創(chuàng)建2個(gè)VF。并把2個(gè)NS分別掛載到2個(gè)VF。把VF分別掛載到兩臺(tái)虛擬機(jī)。fio測(cè)試過程中,將VF1所在虛擬機(jī),對(duì)VF1進(jìn)行offline以及Online操作。觀察VF2虛擬機(jī)IO是否正常。觀察其它虛擬機(jī)IO是否正常。通過準(zhǔn)則Step4:VF1可以正常Offline以及Online測(cè)試過程中,VF2虛擬機(jī)的fio無性能跌落。Ffflne,對(duì)PF并列FPF載S)測(cè)試用例VFOffline操作,對(duì)PF、并列VF的影響測(cè)試目的虛擬機(jī)應(yīng)用場景中,VFOffline操作,對(duì)PF、并列VF的影響測(cè)試方法創(chuàng)建3個(gè)NS。創(chuàng)建2個(gè)VF。并把2個(gè)NS分別掛載到2個(gè)VF。另一個(gè)NS掛載到PF把VF分別掛載到虛擬機(jī)。3個(gè)NS啟動(dòng)fio隨機(jī)讀寫測(cè)試。fio測(cè)試過程中,將VF1反復(fù)進(jìn)行OfflineOnline操作。觀察PF,VF2的IO是否正常。通過準(zhǔn)則Step5:VF1可以正常Offline以及Online測(cè)試過程中,PF,VF2的fio測(cè)試無異常,無性能跌落。VFFLR,對(duì)并列VF影響測(cè)試用例VFFLR操作,對(duì)VF的影響測(cè)試目的虛擬機(jī)應(yīng)用場景中,VFFLR操作,對(duì)其他VF的影響測(cè)試方法創(chuàng)建3個(gè)NS。創(chuàng)建2個(gè)VF。并把2個(gè)NS分別掛載到2個(gè)VF。另一個(gè)NS掛載到PF把VF分別掛載到虛擬機(jī)。3個(gè)NS啟動(dòng)fio隨機(jī)讀寫測(cè)試。fio測(cè)試過程中,將VF1進(jìn)行FLR操作。觀察其他VF的IO是否正常。通過準(zhǔn)則Step5:VF進(jìn)行FLR操作可以在Sepc宣稱時(shí)間內(nèi)完成。測(cè)試過程中,其他VF的fio能跌落。PF控制器復(fù)位測(cè)試用例PF控制器復(fù)位測(cè)試測(cè)試目的虛擬機(jī)應(yīng)用場景中,PF控制器復(fù)位測(cè)試方法創(chuàng)建3個(gè)NS。創(chuàng)建2個(gè)VF。并把2個(gè)NS分別掛載到2個(gè)VF。另一個(gè)NS掛載到PF把VF分別掛載到虛擬機(jī)。3個(gè)NS啟動(dòng)fio隨機(jī)讀寫測(cè)試。測(cè)試過程中,在Host對(duì)控制器進(jìn)行復(fù)位操作。觀察Host以及虛擬機(jī)是否正常識(shí)別盤。通過準(zhǔn)則Step5:控制器可以正常復(fù)位。Step6:復(fù)位完成后,Host能識(shí)別盤,虛擬機(jī)無法識(shí)別。Hostreboot測(cè)試用例Host服務(wù)器復(fù)位測(cè)試測(cè)試目的虛擬機(jī)應(yīng)用場景中,Host服務(wù)器復(fù)位測(cè)試方法創(chuàng)建3個(gè)NS。創(chuàng)建2個(gè)VF。并把2個(gè)NS分別掛載到2個(gè)VF。另一個(gè)NS掛載到PF把VF分別掛載到虛擬機(jī)。3個(gè)NS啟動(dòng)fio隨機(jī)讀寫測(cè)試。fio測(cè)試過程中,對(duì)Host服務(wù)器reboot操作。觀察Host以及虛擬機(jī)是否正常識(shí)別盤。通過準(zhǔn)則Step5:Hostreboot正常。Step6:reboot完成后,Host能識(shí)別盤,虛擬機(jī)無法識(shí)別。Hostshutdown測(cè)試用例Host服務(wù)器shutdown測(cè)試測(cè)試目的虛擬機(jī)應(yīng)用場景中,Host服務(wù)器shutdown測(cè)試方法創(chuàng)建3個(gè)NS。創(chuàng)建2個(gè)VF。并把2個(gè)NS分別掛載到2個(gè)VF。另一個(gè)NS掛載到PF把VF分別掛載到虛擬機(jī)。3個(gè)NS啟動(dòng)fio隨機(jī)讀寫測(cè)試。fio測(cè)試過程中,對(duì)Host服務(wù)器shutdown操作。Host以及虛擬機(jī)是否正常識(shí)別盤。通過準(zhǔn)則Step5:Hostshutdown正常。Step6:重新啟動(dòng)完成后,Host能識(shí)別盤,虛擬機(jī)無法識(shí)別。Host器掉電測(cè)試用例Host服務(wù)器掉電測(cè)試測(cè)試目的虛擬機(jī)應(yīng)用場景中,Host服務(wù)器強(qiáng)制掉電測(cè)試方法創(chuàng)建3個(gè)NS。創(chuàng)建2個(gè)VF。并把2個(gè)NS分別掛載到2個(gè)VF。另一個(gè)NS掛載到PF把VF分別掛載到虛擬機(jī)。3個(gè)NS啟動(dòng)fio隨機(jī)讀寫測(cè)試。fio測(cè)試過程中,對(duì)Host服務(wù)器斷電。重啟上電并啟動(dòng)服務(wù)器,觀察Host以及虛擬機(jī)是否正常識(shí)別盤。通過準(zhǔn)則1. Step6:重新啟動(dòng)完成后,Host能識(shí)別盤,虛擬機(jī)無法識(shí)別。FIO性測(cè)試用例FIO順序讀寫穩(wěn)定性測(cè)試目的虛擬機(jī)應(yīng)用場景中,虛擬盤的讀寫穩(wěn)定性測(cè)試方法1個(gè)NS。1個(gè)VF。把VF掛載到虛擬機(jī)。啟動(dòng)fio進(jìn)行bs128k長時(shí)間順序讀寫測(cè)試。通過準(zhǔn)則Step4:順序讀寫帶寬穩(wěn)定,latency穩(wěn)定。FIO寫ios性測(cè)試用例FIO隨機(jī)讀寫穩(wěn)定性測(cè)試目的虛擬機(jī)應(yīng)用場景中,虛擬盤的讀寫穩(wěn)定性測(cè)試方法1個(gè)NS。1個(gè)VF。把VF掛載到虛擬機(jī)。啟動(dòng)fio進(jìn)行bs4K長時(shí)間隨機(jī)讀寫測(cè)試。通過準(zhǔn)則Step4:隨機(jī)讀寫iops穩(wěn)定,latency穩(wěn)定。八、SRIV性能測(cè)試(一)測(cè)試需求性能測(cè)試用例主要包含以下幾個(gè)方面:驗(yàn)證SR-IOV模式與非SR-IOV驗(yàn)證多VF驗(yàn)證QOS驗(yàn)證QoS精度;驗(yàn)證長時(shí)間IO(二)測(cè)試方法和測(cè)試標(biāo)準(zhǔn)驗(yàn)證S-IOV非SR-IV可以從兩個(gè)維度做組合驗(yàn)證:SR-IOV(單VF)和非SR-IOV模式(PF);驗(yàn)證點(diǎn)包括:12;PF和單個(gè)VF測(cè)試注意事項(xiàng):IO模型采用規(guī)格書中規(guī)定的模型,例如128K順序讀、寫,4K隨機(jī)讀、寫,隨機(jī)讀、寫延時(shí)等,模型需要SSD在穩(wěn)態(tài)下進(jìn)行;多盤并發(fā)測(cè)試,可以覆蓋跨socket場景,測(cè)試盤數(shù)根據(jù)實(shí)際VF(VQ,VInamespace)測(cè)試用例非SR-IOV模式和SR-IOV模式下,單盤PF和VF的順序性能測(cè)試測(cè)試目的在非SR-IOV和SR-IOV應(yīng)用場景中,驗(yàn)證單盤PF和VF的順序讀寫性能是否達(dá)到產(chǎn)品規(guī)格書的標(biāo)稱12多盤并發(fā)場景,如果達(dá)不到規(guī)格書性能,需要進(jìn)一步確認(rèn)是服務(wù)器限制還是盤限制值并對(duì)比單盤VF和PF性能差距測(cè)試方法擦除SSD,對(duì)SSD進(jìn)行precondition,使SSD達(dá)到穩(wěn)態(tài)設(shè)置blocksize為:128K按照規(guī)格書推薦設(shè)置QD和numjobs設(shè)置讀寫比例為:100%read、、50%read50%write、30%read70%write、100%write13設(shè)置測(cè)試時(shí)間為10minutes重復(fù)2-5(針對(duì)不同的IO讀寫測(cè)試,直至所有IO模型測(cè)試完畢)統(tǒng)計(jì)不同的IO模型PFthroughput設(shè)置NS為VF=1,NS=1,分配全部VI、VQ資源和全部NS空間重復(fù)2-5(針對(duì)不同的IO讀寫測(cè)試,直至所有IO模型測(cè)試完畢)統(tǒng)計(jì)不同IO模型VFthroughputBWConsistency=([BWinthe99.9thpercentileslowest1-secondinterval]÷[AverageBW])*100%通過準(zhǔn)則不同IO模型下的PFthroughput不低于Spec稱值不同IO模型下的VFthroughput與PFthroughput性能差距在10%以內(nèi)測(cè)試用例非SR-IOV模式和SR-IOV模式下,單盤PF和VF的隨機(jī)性能測(cè)試測(cè)試目的在非SR-IOV和SR-IOV應(yīng)用場景中,驗(yàn)證單盤PF和VF的隨機(jī)性能是否達(dá)到產(chǎn)品規(guī)格書的標(biāo)稱值,并對(duì)比單盤VF和PF性能差距測(cè)試方法擦除SSD,對(duì)SSD進(jìn)行precondition操作,使SSD達(dá)到穩(wěn)態(tài)設(shè)置blocksize為:4K按照規(guī)格書推薦設(shè)置QD和numjobs設(shè)置讀寫比例為:100%read、70%read30%write、50%read50%write、30%read70%write、100%write1413IO模型組合可以按照產(chǎn)品規(guī)格書調(diào)整14IO模型組合可以按照產(chǎn)品規(guī)格書調(diào)整設(shè)置測(cè)試時(shí)間為10minutes重復(fù)2-5(IO讀寫測(cè)試,直至所有IO模型測(cè)試完畢)統(tǒng)計(jì)不同的IO模型的PFIOPS設(shè)置NS為VF=1,NS=1,分配全部VI、VQ資源和全部NS空間重復(fù)2-5(針對(duì)不同的IO讀寫測(cè)試,直至所有IO模型測(cè)試完畢)統(tǒng)計(jì)不同IO模型VFIOPSIOPSConsistency=([IOPSinthe99.9thpercentileslowest1-secondinterval]÷[AverageIOPS])*100%通過準(zhǔn)則不同的IO模型的PFIOPS不低于Spec標(biāo)稱值不同IO模型下的VFthroughput與throughput性能差距在10%以內(nèi)測(cè)試用例非SR-IOV模式和SR-IOV模式下,多盤并發(fā)時(shí)PF和VF的順序性能測(cè)試測(cè)試目的在非SR-IOV和SRIOV應(yīng)用場景中,驗(yàn)證多盤并發(fā)下,各個(gè)盤PF和VF的順序讀寫性能是否都達(dá)到產(chǎn)品規(guī)格書的標(biāo)稱值,并對(duì)比多盤并發(fā)時(shí)VF和PF性能差距測(cè)試方法擦除SSD,對(duì)各個(gè)SSD進(jìn)行precondition操作,并使SSD達(dá)到穩(wěn)態(tài)設(shè)置blocksize為:128K按照規(guī)格書推薦設(shè)置QD和numjobs設(shè)置讀寫比例為:100%read、、50%read50%write、30%read70%write、100%write15設(shè)置測(cè)試時(shí)間為10minutes重復(fù)2-5(針對(duì)不同的IO模型進(jìn)行多盤并發(fā)順序讀寫測(cè)試,直至所有IO模型測(cè)試完畢)統(tǒng)計(jì)各個(gè)SSD在不同IO模型下的throughput對(duì)各個(gè)SSD設(shè)置NS為VF=1,NS=1,分配全部VI、VQ資源和全部NS空間,每個(gè)盤VFnuma綁定到不同CPU核上重復(fù)2-5針對(duì)不同的IO序讀寫測(cè)試,直至所有IO模型測(cè)試完畢)統(tǒng)計(jì)各個(gè)SSD在不同IO模型下的throughput15IO模型組合可以按照產(chǎn)品規(guī)格書調(diào)整202320234646BWConsistency=([BWinthe99.9thpercentileslowest1-secondinterval]÷[AverageBW])*100%通過準(zhǔn)則多盤(盤數(shù)不多于業(yè)務(wù)需求)并發(fā)測(cè)試下,各個(gè)SSD的PFthroughputSpec在業(yè)務(wù)允許范圍內(nèi)。不同IO模型下的各個(gè)盤VFthroughput與對(duì)應(yīng)SSDPFthroughput內(nèi)。測(cè)試用例非SR-IOV模式和SR-IOV模式下,多盤并發(fā)時(shí)PF和VF的隨機(jī)性能測(cè)試測(cè)試目的在非SR-IOV和SRIOV應(yīng)用場景中,驗(yàn)證多盤并發(fā)下,各個(gè)盤PF和VF的隨機(jī)讀寫性能是否都達(dá)到產(chǎn)品規(guī)格書的標(biāo)稱值,并對(duì)比多盤并發(fā)時(shí)VF和PF性能差距測(cè)試方法擦除SSD,對(duì)各個(gè)SSD進(jìn)行precondition操作,并使SSD達(dá)到穩(wěn)態(tài)設(shè)置blocksize為:4K按照規(guī)格書推薦設(shè)置QD和numjobs設(shè)置讀寫比例為:100%read、、50%read50%write、30%read70%write、100%write16設(shè)置測(cè)試時(shí)間為10minutes重復(fù)2-5(針對(duì)不同的IO試,直至所有IO模型測(cè)試完畢)統(tǒng)計(jì)各個(gè)盤在不同IO模型下的IOPS對(duì)各個(gè)SSD設(shè)置NS為VF=1,NS=1,分配全部VI、VQ資源和全部NS空間,每個(gè)盤VFnuma綁定到不同CPU核上重復(fù)2-5(針對(duì)不同的IO機(jī)讀寫測(cè)試,直至所有IO模型測(cè)試完畢)統(tǒng)計(jì)各個(gè)盤在不同IO模型下的VFIOPSIOPSConsistency=([IOPSinthe99.9thpercentileslowest1-secondinterval]÷[AverageIOPS])*100%通過準(zhǔn)則多盤(盤數(shù)不多于業(yè)務(wù)需求)各個(gè)盤的PFIOPS與Spec標(biāo)稱值差距在業(yè)務(wù)允許范圍內(nèi)。不同IO模型下的各個(gè)盤VFIOPS與對(duì)應(yīng)SSDPFthroughput性能差距在業(yè)務(wù)允許范圍內(nèi)。16IO模型組合可以按照產(chǎn)品規(guī)格書調(diào)整20232023PAGEPAGE47驗(yàn)證多VF否均衡可以通過下面幾個(gè)維度進(jìn)行組合驗(yàn)證:是指在各個(gè)VF間,通過對(duì)IO模型指定,進(jìn)行均衡業(yè)務(wù)分配和非均衡業(yè)務(wù)分配。非均衡業(yè)務(wù)場景下,大壓力IO和小壓力IO通過對(duì)VF間,調(diào)整IO負(fù)載壓力,驗(yàn)證不同IO壓力下,各個(gè)VF的性能表現(xiàn)。標(biāo)準(zhǔn)namespace容量分配和非標(biāo)準(zhǔn)namespace標(biāo)準(zhǔn)namespace容量分配可以將整個(gè)盤的容量按照VF數(shù)量等分,非標(biāo)準(zhǔn)namespace容量分配是指各個(gè)VF之間分配的namespace容量不相等,例如采用遞增容量分配方式。VF除了單VF和最大的VF數(shù)量外,采用典型的2VF,4VF,8VF分配場景。SSDQoS配置,VFQoS按照總帶寬性能均分和非均分VF間QoS限制,驗(yàn)證可以采用按照容量比例劃分,當(dāng)VF分容量時(shí),可以采用等分總帶寬的方式限制,如果VF測(cè)試中各個(gè)VF下IO100%read、70%read30%write、50%read50%write、30%read70%write100%write等。測(cè)試注意點(diǎn):VF性能差異,VF間需每個(gè)虛機(jī)可以采用透傳一個(gè)VFVF間性能numaVF間除了IO負(fù)載測(cè)試外,驗(yàn)證可以覆蓋部分VF內(nèi)運(yùn)行IOVF執(zhí)行操作驗(yàn)證,例如管理命令下發(fā),VF的卸載,掛載測(cè)試預(yù)期:VFIO模型下性能差異,最大值和最小值相差百分比需要在業(yè)務(wù)允許范圍內(nèi),同時(shí)如果存儲(chǔ)部20232023PAGE17QD,numjobsPAGE17QD,numjobs49件支持QoS功能,可以比較在QoS功能打開關(guān)閉兩種場景下,性能和時(shí)延的前后差異;均衡業(yè)務(wù)測(cè)試下,各VF之間采用產(chǎn)品規(guī)格書負(fù)載模型,驗(yàn)VFIOPSVF時(shí)延與規(guī)格書的性能差異,差異非均衡業(yè)務(wù)測(cè)試下,對(duì)于多VFIOVF間性能IO沒有顯著影響。測(cè)試用例多VF場景,均衡負(fù)載下各VF順序讀寫性能一致性測(cè)試目的驗(yàn)證在多VF場景,均衡負(fù)載下,各VF順序讀寫性能是否無明顯差距。測(cè)試方法測(cè)試步驟:擦除SSD設(shè)置VF,NS為VF=4,NS=4,將每個(gè)NSattach到對(duì)應(yīng)的VF上對(duì)每個(gè)VF進(jìn)行precondition操作,并達(dá)到穩(wěn)態(tài)FIO順序讀寫模型設(shè)置blocksize為128K,QD為117并行測(cè)試4個(gè)VF,4個(gè)VF均設(shè)置為readonly。測(cè)試時(shí)間為10minute,記錄4個(gè)VF寬。并行測(cè)試4個(gè)VF,4個(gè)VF均設(shè)置為writeonly。測(cè)試時(shí)間為10minute,記錄4個(gè)VF的寫帶寬。通過準(zhǔn)則1. 四個(gè)VF讀寫性能應(yīng)一致,差異在10%以內(nèi)。測(cè)試用例多VF場景,均衡負(fù)載下各VF隨機(jī)讀寫性能一致性測(cè)試目的驗(yàn)證在多VF場景,均衡負(fù)載下,各VF隨機(jī)讀寫性能是否無明顯差距。測(cè)試方法測(cè)試步驟:擦除SSD設(shè)置VF,NS為VF=4,NS=4,將每個(gè)NSattach到對(duì)應(yīng)的VF上對(duì)每個(gè)VF進(jìn)行precondition操作,并達(dá)到穩(wěn)態(tài)FIO讀寫模型設(shè)置blocksize為4K,QD為numjobs為1618并行測(cè)試4個(gè)VF,4個(gè)VF均設(shè)置為only。測(cè)試時(shí)間為10minute,記錄4個(gè)VF的讀IOPS。并行測(cè)試4個(gè)VF,4個(gè)VF均設(shè)置為only。測(cè)試時(shí)間為10minute,記錄4個(gè)VF的寫IOPS。通過準(zhǔn)則1. 四個(gè)VF讀寫性能應(yīng)一致,差異在10%以內(nèi)。測(cè)試用例多VF場景,非均衡負(fù)載下各VF順序讀寫性能一致性測(cè)試目的驗(yàn)證在多VF場景下,各VF為非均衡讀寫負(fù)載下,順序讀寫性能是否一致。測(cè)試方法測(cè)試步驟:擦除SSD設(shè)置VF,NS為VF=4,NS=4,將每個(gè)NSattach到對(duì)應(yīng)的VF上對(duì)每個(gè)VF進(jìn)行precondition操作,并達(dá)到穩(wěn)態(tài)FIO讀寫模型設(shè)置blocksize為128K,QD64,numjobs為1并行測(cè)試4個(gè)VF,其中,VF1,VF3sequentialreadonly,VF2,VF4設(shè)置為sequentialwriteonly。測(cè)試時(shí)間為10minute,記錄4個(gè)VF的讀寫帶20232023PAGEPAGE51寬。通過準(zhǔn)則1. 每組測(cè)試結(jié)果,VF1,VF3,以及VF2,VF4的讀寫性能差異應(yīng)該在業(yè)務(wù)允許范圍內(nèi)。測(cè)試用例多VF場景,非均衡負(fù)載下各VF隨機(jī)讀寫性能一致性測(cè)試目的驗(yàn)證在多VF場景下,各VF為非均衡讀寫負(fù)載下,隨機(jī)讀寫性能是否一致。測(cè)試方法測(cè)試步驟:擦除SSD設(shè)置VF,NS為VF=4,NS=4,將每個(gè)NSattach到對(duì)應(yīng)的VF上對(duì)每個(gè)VF進(jìn)行precondition操作,并達(dá)到穩(wěn)態(tài)FIO讀寫模型設(shè)置blocksize為4K,QD為numjobs為16.并行測(cè)試4個(gè)VF,其中,VF1,VF3randreadonly,VF2,VF4設(shè)置為randwriteonly。測(cè)試時(shí)間為10minute,記錄4個(gè)VF的讀寫IOPS。通過準(zhǔn)則1. 每組測(cè)試結(jié)果,VF1,VF3,以及的讀寫性能差異應(yīng)該在業(yè)務(wù)允許范圍內(nèi)。測(cè)試用例多VF場景,管理命令對(duì)讀寫性能一致性影響測(cè)試目的驗(yàn)證在多VF場景下,管理命令對(duì)VF讀寫性能一致性的影響。測(cè)試方法測(cè)試步驟:擦除SSD設(shè)置VF,NS為VF=4,NS=4,將每個(gè)NSattach到對(duì)應(yīng)的VF上對(duì)每個(gè)VF進(jìn)行precondition操作,并達(dá)到穩(wěn)態(tài)FIO讀寫模型設(shè)置blocksize為128K,QD64,numjobs為1.并行測(cè)試2個(gè)VF,其中,VF1,VF3設(shè)置為sequentialreadonly,VF2,VF4意管理命令下發(fā)。測(cè)試時(shí)間為10minute,記錄VF1及VF3讀帶寬。并行測(cè)試2個(gè)VF,其中,VF1,VF3設(shè)置為sequent

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論