<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>
"); //-->

博客專(zhuān)欄

EEPW首頁(yè) > 博客 > 存儲技術(shù)未來(lái)演進(jìn):NVMe over Fabrics (NVMeoF)

存儲技術(shù)未來(lái)演進(jìn):NVMe over Fabrics (NVMeoF)

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


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

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

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

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

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

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

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


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

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

來(lái)源:架構師技術(shù)聯(lián)盟


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



關(guān)鍵詞: 存儲技術(shù)

相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>