DPU應(yīng)用場景系列(二)存儲功能卸載
一、NVMe-oF硬件加速
NVMe over Fabric(又名NVMe-oF)是一個相對較新的協(xié)議規(guī)范,旨在使用NVMe通過網(wǎng)絡(luò)結(jié)構(gòu)將主機(jī)連接到存儲,支持對數(shù)據(jù)中心的計(jì)算和存儲進(jìn)行分解。NVMe-oF協(xié)議定義了使用各種通用的傳輸協(xié)議來實(shí)現(xiàn)NVMe功能的方式。
在NVMe-oF誕生之前,數(shù)據(jù)存儲協(xié)議可以分為三種:
(1)iSCSI:是一種基于IP的存儲網(wǎng)絡(luò)標(biāo)準(zhǔn),在TCP/IP網(wǎng)絡(luò)上通過發(fā)送SCSI命令來訪問塊存儲服務(wù)。
(2)光纖通道(Fibre Channel):是一種高速的數(shù)據(jù)傳輸協(xié)議,提供有序無損的塊數(shù)據(jù)傳輸。主要用于關(guān)鍵高可靠要求的業(yè)務(wù)上。
(3)SAS(Serial Attached SCSI):一種點(diǎn)對點(diǎn)串行協(xié)議,通過SAS線纜傳輸數(shù)據(jù)。
上述數(shù)據(jù)存儲協(xié)議,在當(dāng)今數(shù)據(jù)爆發(fā)的時代,已經(jīng)無法滿足大數(shù)據(jù)量的傳輸。NVMe-oF的出現(xiàn),不僅解決了上述協(xié)議的性能瓶頸問題,它還允許組織為高度分布式、高度可用的應(yīng)用程序?qū)嵤M向擴(kuò)展的存儲。通過將NVMe協(xié)議擴(kuò)展到SAN設(shè)備,NVMe-oF提高了CPU的使用效率,同時提高了服務(wù)器和存儲應(yīng)用程序之間的連接速度。
NVMe-oF主要支持三大類Fabric傳輸選項(xiàng),分別是FC、RDMA和TCP,其中RDMA支持InfiniBand、RoCEv2和iWARP。
NVMe-oF/FC和第六代FC可以共存于同一基礎(chǔ)設(shè)施中,避免了數(shù)據(jù)中心的叉車升級。但是,NVMe-oF/FC不具有軟件定義存儲的能力。
NVMe-oF/RDMA利用了RDMA網(wǎng)絡(luò)的優(yōu)勢,是理想的Fabric,提供了低延遲、低抖動和低CPU使用率低傳輸層協(xié)議,可以最大限度利用硬件加速,避免軟件協(xié)議棧開銷。同時,由于RDMA是一種內(nèi)存讀寫技術(shù),可以應(yīng)用在眾多場景中,如GPUDirect Storage的應(yīng)用場景。
NVMe-oF/TCP利用了TCP協(xié)議的可靠性傳輸?shù)奶攸c(diǎn),以及TCP/IP網(wǎng)絡(luò)的通用性和良好的互操作性,可以完美的應(yīng)用于現(xiàn)代數(shù)據(jù)中心網(wǎng)絡(luò)。在相對性能要求不是非常高的場景,NVMe-oF/TCP可作為備選。
NVMe支持Host端(Initiator或Client)和Controller端(Target或Server),目前DPU智能網(wǎng)卡硬件加速的場景中,包括如下四種情況:
(1)普通智能網(wǎng)卡硬件加速NVMe-oF Initiator。智能網(wǎng)卡支持NVMe-oF/TCP和NVMe-oF/RoCEv2作為Initiator,通過硬件卸載NVMe-oF/TCP或NVMe-oF/RoCEv2,用于計(jì)算和存儲之間,來達(dá)到較高性能。
(2)支持GPUDirect Storage的智能網(wǎng)卡加速NVMe-oF Initiator和Target。GPUDirect Storage是NVIDIA提出的GPU可以繞過CPU直接訪問存儲磁盤的技術(shù),RDMA技術(shù)是GPUDirect Storage的基礎(chǔ)。這類網(wǎng)卡可以通過硬件卸載NVMe-oF/RDMA來實(shí)現(xiàn)GPU與遠(yuǎn)端存儲服務(wù)的直接訪問。常見的如NVMe-oF/RDMA IB和NVMe-oF/RoCEv2。
(3)智能網(wǎng)卡硬件加速NVMe-oF Target。該場景主要是通過智能網(wǎng)卡提供PCIe Root Complex能力和NVMe-oF Controller端的硬件卸載加速,來實(shí)現(xiàn)NVMe存儲服務(wù)器。如Broadcom Stingray PS1100R是這個場景的代表之一。
(4)DPU芯片硬件加速NVMe-oF Target。該場景是通過DPU芯片提供多個PCIe Root Complex通道以及多個100Gbps的網(wǎng)卡實(shí)現(xiàn)的超大吞吐的存儲服務(wù)器。Fungible FS1600 12x100Gbps帶寬吞吐的存儲服務(wù)器是這個場景的典型代表。
圖NVMe-oF硬件卸載方式
OpenStack從Rocky版本已經(jīng)支持了NVMe-oF,通過OpenStack Cinder通過消息在NVMe-oF Target上來創(chuàng)建,查詢和刪除卷等,OpenStack Nova在主機(jī)上通過NVMe-oF Initiator發(fā)現(xiàn)NVMe-oF存儲設(shè)備,并將存儲設(shè)備信息傳遞給Hypervisor來實(shí)現(xiàn)虛擬機(jī)掛載磁盤。另外,OpenStack集成Ceph做塊存儲和對象存儲已經(jīng)非常成熟,Ceph的后端存儲也漸漸的從使用本地磁盤的方式轉(zhuǎn)向遠(yuǎn)端NVMe存儲,這樣NVMe-oF為Ceph存儲服務(wù)提供了容量可伸縮的能力。
二、Virtio-blk硬件加速
基于virtio的virtio-blk是KVM-Qemu虛擬化生態(tài)中的虛擬化塊存儲的一種實(shí)現(xiàn)方式,利用了virtio共享內(nèi)存的機(jī)制,提供了一種高效的塊存儲掛載的方法。GuestOS內(nèi)核通過加載virtio-blk驅(qū)動,實(shí)現(xiàn)塊存儲的讀寫,無需額外的廠家專用驅(qū)動。Virtio-blk設(shè)備在虛擬機(jī)以一個磁盤的方式呈現(xiàn),是目前應(yīng)用最廣泛的虛擬存儲控制器。
圖基于vDPA架構(gòu)的virtio-blk硬件卸載
由于virtio機(jī)制通過硬件實(shí)現(xiàn)加速已經(jīng)是通用做法,所以利用這個優(yōu)勢,virtio-blk卸載到硬件,已經(jīng)是必然趨勢。在智能網(wǎng)卡中,將virtio-blk到后端映射到如NVMe-oF的遠(yuǎn)端磁盤上,這樣相比較當(dāng)前virtio-blk的用法,不需要在主機(jī)系統(tǒng)中掛載很多的遠(yuǎn)端NVMe磁盤,由智能網(wǎng)卡直接完成映射,更加安全。
在2021年KVM論壇會議中,Redhat提出統(tǒng)一軟硬件卸載virtio-blk方案,正式將virtio-blk加入vDPA框架,同virtio-net公用相同的框架,來完成硬件卸載控制平面。
-
DPU
+關(guān)注
關(guān)注
0文章
352瀏覽量
24072
發(fā)布評論請先 登錄
相關(guān)推薦
評論