易失性快速存儲器協定(NVMe)定義了一種通過PCIe總線通路固态硬碟驅動器(SSD)的新方法,并且預計在未來幾年内将會呈指數級增長,與傳統協定(如SATA協定)相比,其更高的性能和較低的延遲具有一定的優勢。
NVMe支援的存儲基礎設施不僅能夠得到廣泛的部署,而且目前正在進入資料中心領域,通常這些資料中心仍在采用傳統的機械硬碟(HDD)和固态硬碟(SSD)。而NVMe協定已經成為下一代資料中心存儲的代理人。為了了解這種演變,回顧存儲技術的發展過程,并檢查在由該協定轉換的一些新的應用工作負載是十分重要的。
在過去的幾十年中,資料存儲遵循了一種類似于資料計算的模式,這種模式從中央主機體系結構中發展出來,演變成分布式的客戶機/伺服器體系結構。然後,又傳回到由虛拟化驅動的中央架構,然後傳回由基于Web和雲計算的應用程式驅動的分布式架構。存儲技術又在直接連接配接的媒體和分布式存儲區域網絡(SAN)之間搖擺不定,通過并行和串行接口使用SCSI指令集和SATA/SAS協定在CPU和存儲媒體之間實體移動資料。

随着基于閃存技術的固态硬碟(SSD)的出現,傳統的SATA/SAS标準協定似乎有些落伍,但其當初的興起是因為它們經過了實踐驗證,相容且無縫內建到現有系統中。随着時間的推移,盡管與資料通路請求和收據相關的長時間的性能延遲,SATA協定仍然是最常見且成本效益最高的接口标準。硬碟驅動器這些延遲是有情可原的,因為磁格式需要磁盤旋轉和尋道導緻延遲,但對于使用記憶體單元(相對于磁盤旋轉和尋道)的基于閃存的SSD,SATA協定的延遲是不可接受的。最終,因為SATA标準協定更新太慢,無法在基于閃存的存儲系統的應用中實作固态硬碟(SSD)的全部優勢。
SATA協定的這些限制使PCI
Express(PCIe)成為存儲媒體未來的邏輯接口,同時也基于為SATA/SAS标準設計的傳統SCSI軟體棧。PCIe插槽直接連接配接到CPU(提供類似記憶體的通路),并在一個較小的軟體堆棧運作(參見圖1),PCIe接口可以減少資料傳輸延遲,同時增加傳統SATA/SAS的帶寬。雖然PCIe接口是朝着正确方向邁出的一步,但每個SSD硬碟都需要自己的專有驅動程式,由于缺乏标準化,這增加了複雜性和不相容性,是以為SSD廠商開展了更多的開發工作。是以,NVMe協定應運而生。
圖1 SATA和SAS SSD與PCIe SSD的軟體堆棧的比較
非易失性存儲器(NVME)是基于NAND閃存的固态硬碟(SSD)的标準協定和驅動程式。NVMe的接口由行業領先的存儲,網絡和伺服器供應商(NVMexpress.org)的開放行業聯盟開發,提高了基于PCIe的伺服器和SSD的非易失性的存儲性能,并消除SCSI指令棧和直接連接配接存儲(DAS)與傳統HDD接口相關的瓶頸。它是固态媒體特有的獨特調整的I/O架構,可以去除傳統的HDD接口障礙。在概念上,隻需要一個驅動程式可以讓每個SSD符合标準。
NVMe相容的固态硬碟(SSD)可以提供高達10倍的基于SATA協定的SSD的讀取性能,進而在更少的裝置上運作更嚴格的應用程式工作負載,并使實體硬體的體積更小。最初用于高性能和大容量負荷(溢價成本)的基于NVMe的固态硬碟(SSD)現在可以在之前為基于SATA标準的SSD預留的資料中心的其他領域服務,并且還建立了被廣泛采用的計算和存儲的融合。
NVMe和固态硬碟
NVMe協定将PCIe閃存存儲擴充到新的級别。它是專門針對非易失性固态存儲架構優化的。它具有精簡的記憶體接口,指令集和隊列設計,非常适合當今的虛拟作業系統。此外,它直接連接配接到CPU(通過PCIe總線,)可簡化儲存設備堆棧,并提供比傳統SATA/SAS協定更快的性能。是以,所有主要的伺服器制造商都實作了對基于NVMe的U.2固态硬碟(2.5英寸格式)的支援,這使其出貨量增長,并将很快超過SATA固态硬碟。
表1 典型SSD硬碟的接口規範
表1顯示了使用領先的西部資料SSD硬碟(括号内)進行比較的SATA,SAS,PCIe和NVMe的SSD媒體的典型規格。基于NVMe标準的SSD硬碟可提供最佳的IOPS(每秒I/O操作),帶寬性能以及最高容量範圍。
表2 SATA與PCIe與NVMe的性能比較
表2比較了基于其進階主機控制器接口(AHCI)與PCIe協定和NVMe标準的SATA協定的關鍵特性
資料中心的NVMe與SATA
與SATA協定相比,NVMe協定提供更好的帶寬和IOPS性能,同時加上較低的延遲。它還可以為主儲存設備提供可擴充性,而沒有電池支援的RAID或HBA卡的成本或複雜性。使用基于NVMe的存儲與基于SATA的存儲的優勢涵蓋了各種工作負載,如以下的讨論所示。
(1)傳統的企業資料庫工作負載
為了幫助擴充資料庫,并避免伺服器蔓延或硬體資源使用率不高,Microsoft SQL Server,Oracle DB和Oracle
MySQL可以使用SATA協定的12倍的NVMe帶寬,其延遲降低50%。例如,具有SATA存儲器的單個資料庫伺服器受到SATA裝置性能的I/O等待條件的限制。結果是系統操作較慢。一個常見的解決方案是購買另一台伺服器并分擔工作負載,或将一台伺服器配置設定給後端庫存,另一台伺服器将其配置設定到訂單輸入中。但是這些種情況下,都需要兩個軟體許可證。
使用NVMe固态硬碟(SSD)替換基于SATA協定的SSD或HDD可以将I/O等待時間減少50%,進而使資料庫工作負載能夠在單個伺服器上運作,并且隻需要一個軟體許可證。單個核心資料庫應用程式可能花費數萬美元,而許多軟體許可證可能占總體擁有成本(TCO)和總營運成本(TOC)的60%以上。然而,NVMe提供了互動式商業智能(BI)工作負載所需的帶寬和性能,以及支援諸如聯機事務處理(OLTP)等事務性工作負載的最高IOPS。
(2)記憶體資料庫的工作負載
Apache
Spark和其他記憶體資料庫(IMDB)應用程式(依賴主記憶體進行資料存儲)通過持久存儲的存儲元件更改和掃描資料集,這些資料集的規模通常大于組合的叢集存儲器。在這種情況下,每個NVMeSSD提供的較高帶寬足以以CPU速度提供DRAM記憶體重載和相關資料掃描。
在采用SATA協定的情況下,需要RAID0配置中的多個驅動器,在平均故障間隔時間(MTBF)和重建時間之間創造挑戰。在8個磁盤RAID0系統中的單一故障意味着節點總是失效,必須重新加載;然而,重新加載節點會将受影響的系統置于“降級模式”中,或者更糟的是在完全重建節點時,可能讓它們停止運作。
(3)物聯網工作負載
NVMe也非常适合整合各種資料源,特别是從較新的工業物聯網(IoT)工作負載産生的資料源。例如,一個工廠可以将數千個傳感器以每秒數千次将資料傳輸到NoSQL資料庫(如Mongo
DB或Cassandra),每秒數百kB。NVMe的進階帶寬對于将這些資源內建到資料庫中是至關重要的,同時提供足夠的帶寬和IOPS來執行分析。
物聯網裝置(例如自主駕駛汽車,無人機,工廠/農場機器和裝置,以及監控錄影機)也收集大量的資料。根據調研機構Gartner公司的研究,到2020年,每輛車輛的連接配接和自主汽車資料流量可能達到280PB,即每年2.8億GB。有效處理這些資料的唯一方法是通過車載閃存存儲和具有NVMe裝置的路邊網關。但是,即使使用這種基礎設施,大量自主駕駛的“車隊”也需要将處理後的資料推送到雲端進行存儲和分析,進而建立了一個資料海嘯,是以需要通過精簡的NVMe堆棧實作帶寬,IOPS和低延遲。
(4)機器學習的工作負載
機器學習可以有效地使用基于NVMe的裝置,特别是即将支援直接記憶體通路(DMA)擴充,使某些硬體子系統能夠獨立于CPU通路主系統記憶體。這種通路使得CPU不僅可以更快地讀取資料,而且能夠更快地執行更高優先級的任務,例如饋送圖形處理單元(GPU)陣列。SATA接口具有較低的GPU使用率,因為資料從多個SATA驅動器傳送到DRAM記憶體,然後使用主機CPU進入GPU。這個過程會導緻性能上的差距,特别是當GPU陣列資料不足時。
最後的思考
正如人們過去所體驗的計算和存儲架構的衰退和流動一樣,人們正在經曆資料中心的另一波轉變。然而,與過去的協定不同,NVMe作為集中化和分散化之間的橋梁,提供了以前不可見的靈活性和選擇。是以,人們需要随時關注NVMe将通過計算的未來進行導航,進而實作強大而多功能的系統,并将其作為資料中心變革代理人的應有的地位。
本文轉自d1net(轉載)