非易失性快速存儲器協議(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將通過計算的未來進行導航,從而實現強大而多功能的系統,并將其作為數據中心變革代理人的應有的地位。