RM新时代网站-首页

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

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

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

利用PyNVMe3測試SSD盤的可靠性

SSDFans ? 來源:pynvme ? 2023-08-07 09:52 ? 次閱讀

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

快是王道

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

雖然所有企業(yè)級SSD都會使用fio進行性能和壓力測試,但其也有一定的局限性。PyNVMe3可以帶來比fio更大的測試壓力。我們在同一臺主機和同一塊SSD盤上對fio和PyNVMe3的4K隨機讀性能進行了測試。fio的單核IOPS為445k,而PyNVMe3可達到831K。PyNVMe3只利用單核CPU就可以打到大部分SSD盤的性能瓶頸。

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

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

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

還要可靠

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

要測試SSD盤的可靠性,需要一個更可靠的測試工具。

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

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

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

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

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

二次開發(fā)

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

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

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

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

各種類型的Admin命令

各種壓力和類型的IO場景

自定義的NVMe初始化過程

端口

SRIOV

多Namespace

各種LBA format

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

注入各種錯誤和reset事件

掉電測試

Latency和QoS

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

MI/SMBus帶外管理接口

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

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

公共平臺

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

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

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

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

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

    關(guān)注

    3

    文章

    1372

    瀏覽量

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

    關(guān)注

    21

    文章

    2857

    瀏覽量

    117367
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4792

    瀏覽量

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

    關(guān)注

    0

    文章

    143

    瀏覽量

    27419
  • nvme
    +關(guān)注

    關(guān)注

    0

    文章

    221

    瀏覽量

    22621

原文標題:PyNVMe3:重塑企業(yè)級SSD測試的新范式

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

收藏 人收藏

    評論

    相關(guān)推薦

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

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

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

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

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

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

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

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

    可靠性測試方法

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

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

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

    可靠性測試

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

    GaN可靠性測試

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

    【PCB】什么是高可靠性?

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

    什么是高可靠性

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

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

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

    如何對嵌入式軟件進行可靠性測試

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

    電感可靠性測試

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

    硅片級可靠性測試詳解

    硅片級可靠性(WLR)測試最早是為了實現(xiàn)內(nèi)建(BIR)可靠性而提出的一種測試手段。
    發(fā)表于 03-27 15:53 ?5008次閱讀

    SSD可靠性可靠性量化指標MTBF

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