博客專欄

        EEPW首頁 > 博客 > 存儲技術未來演進:NVMe over Fabrics (NVMeoF)

        存儲技術未來演進:NVMe over Fabrics (NVMeoF)

        發(fā)布人:旺材芯片 時間:2024-06-02 來源:工程師 發(fā)布文章
        圖片


        眾所周知,NVMe 是一個邏輯設備接口規(guī)范,NVM代表非易失性存儲器(Non-Volatile Memory)的首字母縮略字,是固態(tài)硬盤(SSD)的常見的閃存形式。SSD 通常分為兩類接口:SATA 和 NVMe。在需要兼容舊組件且性能不是首要考慮因素時,SATA 接口在新一代驅動器中依然可用。SATA 誕生于2000年,原本是為配備旋轉盤片和磁頭的傳統(tǒng)硬盤設計的。
        雖然這類設備能夠提供穩(wěn)定的數(shù)據(jù)吞吐量,但由于包含大量機械組件,每次讀/寫操作都會帶來很明顯的延遲。這些硬件上的局限也制約了SATA接口規(guī)范和其整體性能。
        對于企業(yè)級應用,SAS 接口通常作為SATA的替代選擇,兩者都是ATA和SCSI接口的進化版,它們都利用串行鏈路發(fā)送既有命令。無論使用SAS還是SATA,都需要在CPU和磁盤之間配置硬盤驅動器控制器。
        隨著新一代固態(tài)硬盤的推出,其理論性能已接近甚至超越RAM,遠超傳統(tǒng)HDD,因此需要一種全新的訪問接口來發(fā)揮其潛力。

        NVMe(Non-Volatile Memory Express)
        2011年,NVMe(非易失性存儲器Express)接口應運而生。這一接口專為利用低延遲和高閃存性能而設計。其物理連接器則根據(jù)應用場景有所不同:在客戶端設備上,由于無需熱插拔且重量和空間更為關鍵,因此M.2尺寸是常見選擇。而借助Thunderbolt 3接口,PCIe設備可作為USB-C可插拔設備連接,NVMe驅動器也常以這種形式出現(xiàn)(不過,只有當較新的USB標準支持超過SATA的帶寬時,這樣的設備作為NVMe驅動器才具有實際意義)。
        NVMe驅動器確實具備作為PCIe擴展卡插入PCIe插槽的能力,但這種應用相對少見,因為它占用的是那些通常優(yōu)先用于安裝GPU卡的寶貴插槽。在計算服務器環(huán)境中,NVMe驅動器更為常見地以M.2(常作為啟動設備使用)和U.2(專門用于數(shù)據(jù)存儲)的形式呈現(xiàn)。
        從設計角度來看,NVMe規(guī)范定義了一種簡潔高效的協(xié)議,僅包含13條基礎命令。為了最大化并行處理能力,這些命令可以在高達64K個I/O隊列上執(zhí)行,每個隊列可容納64K條命令。這種設計使得NVMe的性能遠超SATA規(guī)范,高出近三個數(shù)量級。
        圖片圖1:NVMe 命令集,來源:Saegate

        遠程塊存儲協(xié)議
        就遠程訪問存儲而言,有兩種方法:NAS(網絡附加存儲)和 SAN(存儲區(qū)域網絡)。對于個人用戶及小型團隊來說,NAS 是一種理想的選擇,而大型組織和企業(yè)則更傾向于采用 SAN。
        NAS 通常用于小型家用文件服務器環(huán)境中,它通過一組用戶友好的網絡協(xié)議來掛載存儲,最常見的是使用 NFS(網絡文件系統(tǒng))和 SMB(服務器消息塊)協(xié)議來訪問文件系統(tǒng)。NAS 的一個顯著特點是它直接處理文件系統(tǒng)層,并充當文件服務器,這與 SAN 有著本質的區(qū)別。
        相比之下,SAN 設備則專注于提供塊存儲服務,而將文件系統(tǒng)層的管理交由客戶端負責。這就引出了一個問題:客戶端是如何訪問遠程服務器上的塊設備的呢?
        在深入探討之前,我們先來了解一下 SCSI(小型計算機系統(tǒng)接口),這是一個自20世紀80年代起就存在的存儲訪問標準。隨著時間的推移,其命令集被廣泛應用于多種新型協(xié)議,如 SAS(串行連接 SCSI)和 USB 連接 SCSI。在 SAN 中,SCSI 被用作遠程訪問塊存儲的協(xié)議。具體來說,SCSI 命令會被封裝在網絡協(xié)議中,并在 iSCSI 客戶端(發(fā)起方)和具有存儲資源的 iSCSI 服務器(目標)之間進行交換。實現(xiàn)這一功能的主要傳輸協(xié)議包括 TCP(在 iSCSI 中使用)和光纖通道協(xié)議(FCP),而 FCP 本身也可以進一步通過以太網(FCoE)進行封裝。這種靈活性和兼容性使得 SAN 成為了大型企業(yè)級存儲解決方案的首選。
        圖片圖 2:SCSI 和 NVMe 作為遠程塊存儲協(xié)議,來源:Piyush Gupta
        iSCSI和NVMe均被用作遠程訪問塊存儲的協(xié)議,且兩者均依賴于Fabric network(結構網絡)作為主要的傳輸方式。這里的“Fabric network”是一個寬泛的概念,用于描述抽象的基礎設施層。無論是通過本地網絡連接還是利用隧道技術跨數(shù)據(jù)中心連接,設備的連接方式并不構成主要考量因素。關鍵在于主機期望網絡能在帶寬和延遲方面提供最佳性能,以確保數(shù)據(jù)傳輸?shù)母咝院蛯崟r性。

        NVMe over Fabrics
        最初,NVMeoF是作為獨立規(guī)范發(fā)布的,獨立于 NVMe。然而,隨著其成功的應用與實施,NVMeoF逐漸融入并成為了NVMe標準體系的重要一環(huán)。NVMeoF 的引入使得NVMe命令能夠通過多種傳輸方式得以封裝,進而將協(xié)議的可用性擴展至跨網絡結構的主機與存儲之間的數(shù)據(jù)傳輸。
        這一概念與基于SCSI的協(xié)議(如iSCSI或iSER)有著異曲同工之妙。原本為本地存儲訪問設計的命令集,經過重新設計后,如今能夠在存儲服務器與主機之間通過網絡進行通信。
        與iSCSI相似,NVMeoF的發(fā)起方和目標方(即客戶端和服務器)會建立連接并交換命令。雖然它們的NVMe堆棧主要以軟件形式實現(xiàn),但考慮到目標方通常需要為多個發(fā)起方提供服務,而發(fā)起方又可能需要訪問多個分散的驅動器,因此可以通過將命令解封裝轉移至專用硬件(例如 DPU)來實現(xiàn)更好的性能。
        與SCSI相比,NVMe協(xié)議支持并行I/O操作,無需進程間鎖定,從而大大提高了效率。此外,NVMe還優(yōu)化了會話交互:單次數(shù)據(jù)傳輸僅需一次往返和兩次交互,相較于SCSI的兩次往返和四次交互,極大地減少了交互次數(shù)。這些優(yōu)勢在NVMeoF中得到了充分體現(xiàn),由于引入了網絡延遲,減少往返時間成為了提升整體性能的關鍵因素。

        NVMe 傳輸?shù)姆诸?/strong>
        圖片圖 3:NVMe 傳輸?shù)姆诸?/span>
        首先我們介紹用于訪問主機內本地存儲的內存?zhèn)鬏敗_@種傳輸方式通過本地總線與存儲設備進行通信,設備通常與PCIe或其他本地總線技術(如Compute Express Link,簡稱CXL,或Advanced Extensible Interface,簡稱AXI)連接。
        NVMeoF擴展了NVMe命令集在基于消息的傳輸中的應用。目前,RDMA和 TCP 傳輸由NVMe指定,光纖通道上的NVMe(FC-NVMe)則由INCITS(InterNational Committee for Information Technology Standards)組織管理。對于NVMe/TCP,發(fā)起方和目標方之間會建立TCP連接,NVM子系統(tǒng)通過此連接進行通信,交換NVMe/TCP協(xié)議數(shù)據(jù)單元。此TCP連接同時用于命令和數(shù)據(jù)的傳輸,通常由內核網絡堆棧在軟件中處理。雖然這種方法具有無需特殊網絡配置的便利性,但由于軟件處理的引入,它可能會導致性能下降并增加額外的計算資源需求。
        相比之下,F(xiàn)C-NVMe利用光纖通道的可靠性、并行性和多隊列功能,在現(xiàn)有的FC網絡上提供高效的消息傳輸。與NVMe/TCP相比,F(xiàn)C-NVMe由于協(xié)議設計更為精簡,因此在CPU開銷方面表現(xiàn)更為優(yōu)秀。
        然而,值得注意的是,無論是NVMe/TCP還是FC-NVMe-2,它們均未充分利用能夠加速RDMA的現(xiàn)代卸載網卡。為了彌補這一不足,NVMe標準特別指定了RDMA傳輸方式。RDMA允許數(shù)據(jù)在應用程序的內存空間與遠程主機的內存空間之間直接傳輸,無需內核的介入。這不僅減少了CPU的開銷,還降低了數(shù)據(jù)傳輸?shù)难舆t,為高性能存儲訪問提供了強有力的支持。
        圖片圖4:RDMA繞過內核TCP/IP協(xié)議棧,來源:FS

        RDMA(遠程直接內存訪問)
        這里的核心概念在于應用程序(如使用 NVMe 的數(shù)據(jù)庫)和設備(即 NVMe 驅動器)能夠直接讀取和寫入網卡內存緩沖區(qū),繞過傳統(tǒng)的內核網絡堆棧。
        RDMA網絡技術通常基于InfiniBand或以太網。InfiniBand是一個高性能的L2網絡標準,RDMA是InfiniBand的一個核心功能。而以太網本身并不直接支持RDMA。
        InfiniBand網絡專為HPC(高性能計算)數(shù)據(jù)中心設計,提供高吞吐量、低延遲和QoS(服務質量)功能,它使用自己獨有的鏈路、網絡和傳輸協(xié)議。在InfiniBand網絡中,RDMA數(shù)據(jù)包通過其特定的傳輸協(xié)議發(fā)送。然而,由于InfiniBand網絡設備和NIC的供應商相對較少,基于以太網的RDMA解決方案在市場中更受歡迎。
        要在以太網上實現(xiàn)RDMA,網絡結構必須支持無損傳輸。標準以太網并不保證這一點,因此需要進行相應的增強或使用特定的上層傳輸協(xié)議。由于現(xiàn)代網絡方法非常靈活,因此在硬件供應商的支持下,可以實現(xiàn)這一目標。 
        值得注意的包括:

        • 融合以太網(RDMA over Converged Ethernet)上的RDMA(v1和v2)和iWARP在傳輸方式和特性上略有不同。
        • RoCEv1在以太網上使用IB網絡層數(shù)據(jù)包,但由于沒有使用IP封裝,數(shù)據(jù)包無法在IP網絡中路由。
        • RoCE v2在網絡層使用UDP,允許數(shù)據(jù)包在IPv4或IPv6網絡上進行路由。因此,RoCE v2有時被稱為可路由RoCE(RRoCE)。
        • iWARP(Internet Wide Area RDMA Protocol)使用TCP作為傳輸層協(xié)議,它提供了固有的可靠性,因此無需對以太網層進行額外增強。然而,與RoCE相比,使用TCP會帶來更多的開銷和復雜性。


        圖片圖5:常見RDMA實現(xiàn)的網絡層比較,來源:FS
        所有這些技術共存,并各自提供不同的優(yōu)勢。在數(shù)據(jù)中心環(huán)境中,為了實現(xiàn)最佳性能,InfiniBand 或 RoCE 通常是首選。在某些特定場景中,專用集群網絡也能作為一個可行的網絡解決方案。而在 DCB 配置復雜或需要跨越公共互聯(lián)網部署時,iWARP 技術可能更為合適。

        小結
        NVMeoF 的概念是基于SCSI規(guī)范逐步發(fā)展而來的。盡管舊有的技術已被證明是可靠且實用的,但隨著固態(tài)硬盤的廣泛應用,人們對更為高效的協(xié)議需求日益增長。直接比較不同的協(xié)議可能較為復雜,因為不同的應用程序有不同的需求。因此,尋找一個同時支持 NVMe 和 SCSI over RDMA 的設備成為了一個挑戰(zhàn)。然而,無論采用何種傳輸方式,NVMeoF 無疑是當今SAN網絡中的領先技術。

        來源:架構師技術聯(lián)盟


        *博客內容為網友個人發(fā)布,僅代表博主個人觀點,如有侵權請聯(lián)系工作人員刪除。



        關鍵詞: 存儲技術

        相關推薦

        技術專區(qū)

        關閉
        主站蜘蛛池模板: 财经| 定兴县| 丹棱县| 志丹县| 南木林县| 礼泉县| 平邑县| 疏附县| 新巴尔虎左旗| 南京市| 菏泽市| 汉寿县| 蕲春县| 新蔡县| 许昌县| 扶绥县| 紫金县| 大冶市| 莲花县| 达拉特旗| 汪清县| 缙云县| 昌黎县| 舟曲县| 河源市| 宿州市| 克什克腾旗| 通化县| 荃湾区| 泉州市| 临猗县| 柯坪县| 东明县| 昭通市| 沈阳市| 日照市| 白玉县| 普兰县| 玛多县| 东光县| 霍州市|