0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

利用PyNVMe3測(cè)試SSD盤的可靠性

SSDFans ? 來(lái)源:pynvme ? 2023-08-07 09:52 ? 次閱讀

經(jīng)歷了近十幾年的快速發(fā)展,SSD已在眾多領(lǐng)域取代了HDD。消費(fèi)級(jí)SSD的規(guī)格趨于穩(wěn)定,成本要求不斷提高,技術(shù)和市場(chǎng)的格局已基本固定。所以,許多初創(chuàng)團(tuán)隊(duì)和大廠開始將研發(fā)重心放在了企業(yè)級(jí)SSD上。在這個(gè)大背景下,我們開發(fā)了一套NVMe SSD的測(cè)試軟件PyNVMe3。通過(guò)最近三年多的推廣,我們和眾多OEM廠商、SSD廠商建立了良好的合作關(guān)系。很多廠商使用我們的產(chǎn)品和服務(wù),并取得了良好的效果:以前抓不到的問(wèn)題可以抓到了,以前不能測(cè)的特性可以測(cè)了。

快是王道

為什么PyNVMe3能找出更多的bug?原因在于,PyNVMe3對(duì)性能有極致的追求。對(duì)于企業(yè)級(jí)SSD來(lái)說(shuō),最基本的要求就是穩(wěn)定。我們對(duì)性能的極致追求并不是為了性能測(cè)試的結(jié)果,而是要最大化對(duì)測(cè)試盤的壓力,提供最緊湊的時(shí)序,這樣才有可能在有限的開發(fā)周期內(nèi)壓出各種潛在的問(wèn)題。

雖然所有企業(yè)級(jí)SSD都會(huì)使用fio進(jìn)行性能和壓力測(cè)試,但其也有一定的局限性。PyNVMe3可以帶來(lái)比f(wàn)io更大的測(cè)試壓力。我們?cè)谕慌_(tái)主機(jī)和同一塊SSD盤上對(duì)fio和PyNVMe3的4K隨機(jī)讀性能進(jìn)行了測(cè)試。fio的單核IOPS為445k,而PyNVMe3可達(dá)到831K。PyNVMe3只利用單核CPU就可以打到大部分SSD盤的性能瓶頸。

但有人會(huì)問(wèn):那我們?cè)谟胒io測(cè)試的時(shí)候定義numjobs=4甚至更多的jobs,不就可以了嗎?本質(zhì)上,1個(gè)job和4個(gè)job是兩個(gè)不同的測(cè)試用例。無(wú)論性能還是可靠性,4個(gè)job的測(cè)試都不能替代1個(gè)job的測(cè)試。PyNVMe3對(duì)性能的極致追求不是為了性能測(cè)試的成績(jī)更好看,而是要在各種workload下對(duì)測(cè)試盤提供最大的壓力和最緊湊的時(shí)序,用比真實(shí)業(yè)務(wù)場(chǎng)景更大的壓力盡量把問(wèn)題在研發(fā)階段就打出來(lái)。

從設(shè)計(jì)上來(lái)看,PyNVMe3能實(shí)現(xiàn)比f(wàn)io更高的性能,是因?yàn)镻yNVMe3使用了我們基于SPDK自主研發(fā)的用戶態(tài)NVMe驅(qū)動(dòng)。如下圖所示,fio的每一個(gè)IO都需要經(jīng)過(guò)復(fù)雜的內(nèi)核存儲(chǔ)子系統(tǒng)軟件堆棧。而PyNVMe3直接通過(guò)用戶態(tài)驅(qū)動(dòng)把IO命令寫到和測(cè)試盤共享的命令隊(duì)列,并使用輪詢機(jī)制從回收隊(duì)列獲得IO的結(jié)果。這種方式避免了主機(jī)端的內(nèi)核和中斷開銷,性能更快、延遲更小,并且性能和延遲的一致性也更好,更接近測(cè)試盤的本來(lái)面目。打個(gè)比方,傳統(tǒng)測(cè)試工具在測(cè)試盤上面蓋上了一層厚厚的棉襖,讓我們看不清盤的真實(shí)面貌;而PyNVMe3的輕量級(jí)的驅(qū)動(dòng)只是一層薄薄的紗,讓測(cè)試腳本可以觸摸到測(cè)試盤的每一個(gè)棱角。

de4835ac-34be-11ee-9e74-dac502259ad0.png

還要可靠

任何存儲(chǔ)設(shè)備對(duì)可靠性的要求都非常高,SSD也是如此??煽啃跃唧w可以分成很多方面:性能要可靠、設(shè)備要可靠、數(shù)據(jù)要可靠。性能可靠:SSD盤要在任何workload下面都提供高并且穩(wěn)定的性能。設(shè)備可靠:SSD盤即便在很大IO壓力下,也要能正確處理一些異常事件和命令。數(shù)據(jù)可靠:SSD盤在各個(gè)生命周期的階段都不能丟數(shù)據(jù),真的發(fā)生數(shù)據(jù)丟失也一定要如實(shí)報(bào)告。

要測(cè)試SSD盤的可靠性,需要一個(gè)更可靠的測(cè)試工具。

PyNVMe3通過(guò)上文提到的高性能低延遲的用戶態(tài)驅(qū)動(dòng),能給盤最大的壓力,并且記錄準(zhǔn)確的性能跳動(dòng)和延遲分布。

PyNVMe3可以在Python腳本中創(chuàng)建多個(gè)進(jìn)程,利用多個(gè)CPU的資源對(duì)同一個(gè)測(cè)試盤下不同的測(cè)試命令。譬如在一個(gè)CPU大壓力讀寫測(cè)試盤的同時(shí),另一個(gè)CPU發(fā)指令對(duì)測(cè)試盤掉電或reset;也可以在一個(gè)CPU大壓力讀寫測(cè)試的同時(shí),另一個(gè)CPU對(duì)測(cè)試盤發(fā)Admin命令或做帶外管理操作。

PyNVMe3實(shí)現(xiàn)了對(duì)測(cè)試腳本透明的數(shù)據(jù)校驗(yàn)機(jī)制:通過(guò)在DRAM中維護(hù)每一個(gè)LBA的CRC值,來(lái)檢查每一筆讀數(shù)據(jù)的正確性。借助x86和ARM提供的CRC專用指令,PyNVMe3可以在實(shí)現(xiàn)極高IO性能的同時(shí),對(duì)每一筆讀IO進(jìn)行CRC校驗(yàn)。這種機(jī)制簡(jiǎn)化了數(shù)據(jù)一致性測(cè)試的實(shí)現(xiàn),可以在大部分測(cè)試中都實(shí)現(xiàn)對(duì)數(shù)據(jù)一致性的檢查。

PyNVMe3本身的設(shè)計(jì)也非常注重可靠性。如下圖所示,我們?cè)诘讓域?qū)動(dòng)中實(shí)現(xiàn)了高效的數(shù)據(jù)流,而將各種各樣的NVMe SSD特性放到上層庫(kù)和Python腳本中實(shí)現(xiàn)。通過(guò)這種分層設(shè)計(jì),將復(fù)雜多變的特性和穩(wěn)定可靠的數(shù)據(jù)流分開實(shí)現(xiàn),上層的變化不會(huì)影響到下層驅(qū)動(dòng)的穩(wěn)定性。譬如,我們?cè)跀U(kuò)展對(duì)ZNS、SRIOV、MI等特性的時(shí)候,都是通過(guò)上層腳本實(shí)現(xiàn)的,避免各種新特性的加入對(duì)下層驅(qū)動(dòng)的穩(wěn)定性造成影響。

de867aba-34be-11ee-9e74-dac502259ad0.png

二次開發(fā)

PyNVMe3不僅具有極高的性能和可靠性,而且還非常容易實(shí)現(xiàn)二次開發(fā)。在PyNVMe3設(shè)計(jì)之初,我們就確定將所有功能都通過(guò)Python API作為唯一的接口開放給客戶使用。測(cè)試工程師可以通過(guò)開發(fā)Python腳本來(lái)實(shí)現(xiàn)他們的創(chuàng)新,并將腳本部署到自動(dòng)化的測(cè)試流程中,實(shí)現(xiàn)項(xiàng)目的敏捷開發(fā)模式。這對(duì)快節(jié)奏和高要求的SSD研發(fā)項(xiàng)目來(lái)說(shuō)是至關(guān)重要的。

PyNVMe3的API設(shè)計(jì)遵循NVMe協(xié)議,通過(guò)面向?qū)ο蟮姆绞桨巡煌母拍詈凸δ芊庋b到不同的類中實(shí)現(xiàn)。下圖是PyNVMe3 API提供的各種類及其關(guān)聯(lián)方式。

deb948be-34be-11ee-9e74-dac502259ad0.png

利用PyNVMe3提供的API,用戶可以快速實(shí)現(xiàn)以下各種特性的Python測(cè)試腳本:

各種類型的Admin命令

各種壓力和類型的IO場(chǎng)景

自定義的NVMe初始化過(guò)程

端口

SRIOV

多Namespace

各種LBA format

各種NVMe的特性,如:ZNS,SGL,Reservation,metadata,Arbitration等

注入各種錯(cuò)誤和reset事件

掉電測(cè)試

Latency和QoS

數(shù)據(jù)一致性

MI/SMBus帶外管理接口

受限于測(cè)試工具,以往很多特性不能充分測(cè)試。PyNVMe3不僅可以實(shí)現(xiàn)上述各種特性的測(cè)試,還可以將多種特性結(jié)合起來(lái)構(gòu)造更復(fù)雜的測(cè)試場(chǎng)景。譬如我們發(fā)現(xiàn),將大壓力IO和Admin命令放到一起測(cè)試,有些盤處理Admin命令的延遲會(huì)長(zhǎng)達(dá)數(shù)秒。PyNVMe3提供的這些API讓用戶可以通過(guò)二次開發(fā)實(shí)現(xiàn)更多的測(cè)試用例,讓測(cè)試開發(fā)的效率更高、更富有成效。

我們的腳本開發(fā)指南提供了PyNVMe3二次開發(fā)的更多細(xì)節(jié)。

公共平臺(tái)

PyNVMe3具有很高的性能和可靠性,可以便捷地二次開發(fā)各種特性的測(cè)試腳本,所以很多客戶開始選擇PyNVMe3作為內(nèi)部研發(fā)階段的測(cè)試平臺(tái),這些客戶覆蓋了消費(fèi)級(jí)、企業(yè)級(jí)、數(shù)據(jù)中心、工業(yè)和車載等各類SSD產(chǎn)品和主控的研發(fā)。

PyNVMe3是一個(gè)軟件定義的NVMe SSD測(cè)試平臺(tái),可以工作在筆記本、臺(tái)式機(jī)、工作站以及服務(wù)器等各種通用計(jì)算機(jī)平臺(tái)之上。PyNVMe3不捆綁特定硬件平臺(tái),降低用戶大規(guī)模部署的成本和風(fēng)險(xiǎn)。PyNVMe3也可以適配各種專門的測(cè)試制具,用來(lái)實(shí)現(xiàn)電源控制、功耗測(cè)量、帶外管理接口命令等測(cè)試。PyNVMe3是一個(gè)為廣大SSD廠商定制開發(fā)的NVMe SSD測(cè)試平臺(tái),受到廣大廠商的關(guān)注和信任。

當(dāng)我們的客戶發(fā)現(xiàn)他們的合作伙伴也在使用PyNVMe3的時(shí)候,PyNVMe3作為一個(gè)獨(dú)立第三方的測(cè)試平臺(tái)的優(yōu)勢(shì)就體現(xiàn)出來(lái)了:各個(gè)廠家可以各自開發(fā)PyNVMe3的測(cè)試腳本,并且和他們的合作伙伴共享這些測(cè)試腳本,來(lái)保證雙方合作的順暢。我們經(jīng)常會(huì)遇到一些問(wèn)題只能通過(guò)SSD廠商的內(nèi)部平臺(tái)來(lái)復(fù)現(xiàn),但是出于各種技術(shù)、商業(yè)和IP的考慮,這些內(nèi)部平臺(tái)無(wú)法開放給合作伙伴使用?,F(xiàn)在我們只需要在PyNVMe3上面開發(fā)腳本,這樣合作各方都可以在PyNVMe3這個(gè)公共平臺(tái)上面跑相同的測(cè)試腳本。相對(duì)于開放整個(gè)內(nèi)部測(cè)試平臺(tái),共享一些Python測(cè)試文件的使用權(quán)限在公司之間更容易操作。PyNVMe3正在成為業(yè)界一個(gè)專業(yè)的可獲得的SSD測(cè)試公共平臺(tái)。

我們與眾多SSD廠商和OEM廠商建立了合作關(guān)系,為客戶提供我們的測(cè)試工具和服務(wù)。我們通過(guò)PyNVMe3的開放的理念、優(yōu)越的性能和可靠性、強(qiáng)大的二次開發(fā)擴(kuò)展能力,和業(yè)界合作伙伴一起做出更好更穩(wěn)定的SSD產(chǎn)品!

審核編輯:湯梓紅
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 內(nèi)核
    +關(guān)注

    關(guān)注

    3

    文章

    1392

    瀏覽量

    40610
  • SSD
    SSD
    +關(guān)注

    關(guān)注

    21

    文章

    2911

    瀏覽量

    118339
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4813

    瀏覽量

    85316
  • HDD
    HDD
    +關(guān)注

    關(guān)注

    0

    文章

    149

    瀏覽量

    27612
  • nvme
    +關(guān)注

    關(guān)注

    0

    文章

    224

    瀏覽量

    22850

原文標(biāo)題:PyNVMe3:重塑企業(yè)級(jí)SSD測(cè)試的新范式

文章出處:【微信號(hào):SSDFans,微信公眾號(hào):SSDFans】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    深度解讀企業(yè)級(jí)SSD可靠性意義

    本文主要簡(jiǎn)單介紹一下這些SSD可靠性指標(biāo)的概念及其意義,方便大家更深入的了解和認(rèn)識(shí)SSD可靠性
    發(fā)表于 08-18 11:16 ?7200次閱讀
    深度解讀企業(yè)級(jí)<b class='flag-5'>SSD</b>的<b class='flag-5'>可靠性</b>意義

    #硬聲創(chuàng)作季 #可靠性 電子封裝可靠性評(píng)價(jià)中的實(shí)驗(yàn)力學(xué)方法-3

    可靠性設(shè)計(jì)可靠性元器件可靠性
    水管工
    發(fā)布于 :2022年09月29日 22:10:30

    #硬聲創(chuàng)作季 #可靠性 電子封裝可靠性評(píng)價(jià)中的實(shí)驗(yàn)力學(xué)方法-5

    可靠性設(shè)計(jì)可靠性元器件可靠性
    水管工
    發(fā)布于 :2022年09月29日 22:11:21

    #硬聲創(chuàng)作季 #可靠性 電子封裝可靠性評(píng)價(jià)中的實(shí)驗(yàn)力學(xué)方法-6

    可靠性設(shè)計(jì)可靠性元器件可靠性
    水管工
    發(fā)布于 :2022年09月29日 22:11:46

    可靠性測(cè)試方法

    [size=***4pt]課程介紹:實(shí)現(xiàn)產(chǎn)品可靠性設(shè)計(jì)的過(guò)程中有兩大難題,其中之一就是如何在實(shí)驗(yàn)室樣機(jī)階段就能把潛在的隱患激發(fā)出來(lái),不要讓用戶成為我們的測(cè)試工程師。為了解決此問(wèn)題,我公司組織多位資深
    發(fā)表于 03-28 22:33

    電路可靠性設(shè)計(jì)與測(cè)試

    `電路可靠性設(shè)計(jì)與測(cè)試 [hide][/hide]`
    發(fā)表于 07-25 09:06

    可靠性測(cè)試

    各位大爺覺得可靠性測(cè)試有沒有必要做?
    發(fā)表于 07-07 17:25

    GaN可靠性測(cè)試

    都應(yīng)通過(guò)這樣的測(cè)試。依我看,JEDEC制定的標(biāo)準(zhǔn)應(yīng)該涵蓋這類測(cè)試。您說(shuō)呢?” 客戶的質(zhì)疑是對(duì)的。為使GaN被廣泛使用,其可靠性需要在預(yù)期應(yīng)用中得到證明,而不是僅僅通過(guò)硅材料配方合格認(rèn)證(silicon
    發(fā)表于 09-10 14:48

    【PCB】什么是高可靠性?

    專業(yè)學(xué)術(shù)組織——可靠性技術(shù)組。1950年12月,美國(guó)成立了“電子設(shè)備可靠性專門委員會(huì)”,軍方、武器制造公司及學(xué)術(shù)界開始介入可靠性研究,到1952年3月便提出了具有深遠(yuǎn)影響的建議;研究成
    發(fā)表于 07-03 11:09

    什么是高可靠性?

    ` 本帖最后由 山文豐 于 2020-7-3 11:20 編輯 PCB可靠性是指“裸板”能夠滿足后續(xù)PCBA裝配的生產(chǎn)條件,并在特定的工作環(huán)境和操作條件下,在一定的時(shí)期內(nèi),可以保持正常運(yùn)行功能
    發(fā)表于 07-03 11:18

    單片機(jī)應(yīng)用系統(tǒng)的可靠性可靠性設(shè)計(jì)

    單片機(jī)應(yīng)用系統(tǒng)中,CPU 運(yùn)行的是事先固化在單片機(jī)的程序存儲(chǔ)器的軟件.用戶無(wú)法更改和輸入新的程序。這就避免 r 外來(lái)計(jì)算機(jī)病毒的侵襲,其可靠性表現(xiàn)在固化軟件本身的可靠性和程序存儲(chǔ)器數(shù)據(jù)保護(hù)的可靠性。(
    發(fā)表于 01-11 09:34

    如何對(duì)嵌入式軟件進(jìn)行可靠性測(cè)試

    摘 要 本文針對(duì)目前嵌入式軟件設(shè)計(jì)可靠性測(cè)試用例的手段主要依靠手工分析,沿用傳統(tǒng)的軟件測(cè)試用例設(shè)計(jì)方法進(jìn)行,不能夠滿足可靠性測(cè)試用例設(shè)計(jì)的基
    發(fā)表于 10-27 06:10

    電感可靠性測(cè)試

    電感可靠性測(cè)試       電感可靠性測(cè)試分為環(huán)境測(cè)試和物理
    發(fā)表于 04-10 13:10 ?5080次閱讀

    SSD可靠性可靠性量化指標(biāo)MTBF

    企業(yè)環(huán)境復(fù)雜多變,快速增長(zhǎng)的業(yè)務(wù)需求使得企業(yè)在數(shù)據(jù)存儲(chǔ)規(guī)模、存儲(chǔ)性能和可靠性等多方面提出了越來(lái)越高的要求。SSD固態(tài)硬盤憑借極高的讀寫性能、極低延遲成為越來(lái)越多企業(yè)的首選解決方案,并在數(shù)據(jù)庫(kù)、虛擬化
    的頭像 發(fā)表于 10-11 09:50 ?1w次閱讀
    <b class='flag-5'>SSD</b>的<b class='flag-5'>可靠性</b><b class='flag-5'>可靠性</b>量化指標(biāo)MTBF

    霍爾元件的可靠性測(cè)試步驟

    霍爾元件是一種利用霍爾效應(yīng)來(lái)測(cè)量磁場(chǎng)的傳感器,廣泛應(yīng)用于電機(jī)控制、位置檢測(cè)、速度測(cè)量以及電流監(jiān)測(cè)、變頻控制測(cè)試、交直流電源、電源逆變器和電子開關(guān)等領(lǐng)域。為了確?;魻栐男阅芎?b class='flag-5'>可靠性,進(jìn)行全面
    的頭像 發(fā)表于 02-11 15:41 ?135次閱讀