0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

高帶寬低延時遠程flash訪問架構解析

SSDFans ? 來源: SSDFans ? 2023-10-20 10:41 ? 次閱讀

ReFlex - Remote Flash ≈ Local Flash

一種提供高帶寬低延時和多租戶場景下可保證的服務質(zhì)量的遠程flash訪問架構

一、背景

對NVMe Flash的遠程訪問實現(xiàn)了數(shù)據(jù)中心內(nèi)Flash容量以及IOPS的靈活擴展和高利用率。但是,現(xiàn)有的用于遠程Flash訪問的系統(tǒng)會帶來巨大的性能開銷,或者無法隔離共享每個Flash設備的多個遠程clients。

二、問題與挑戰(zhàn)

在實現(xiàn)對Flash的遠程訪問方面存在重大挑戰(zhàn)。

要實現(xiàn)低延遲,需要在server和client的網(wǎng)絡和存儲層上將處理開銷降至最低。除了低延遲之外,每臺服務器還必須以最低成本實現(xiàn)高吞吐量,從而使一個或多個NVMe Flash設備且具有少量CPU cores的機器達到飽和。此外,要管理共享一個Flash設備的多個租戶之間的干擾以及Flash設備的不均勻讀寫行為,需要一種隔離機制,以保證所有租戶的可預測性能。最后,在共享程度,部署規(guī)模和用于遠程連接的網(wǎng)絡協(xié)議方面需要具有靈活性?,F(xiàn)有的僅軟件用于遠程Flash訪問的選項(例如iSCSI或基于事件的服務器)無法達到性能預期。最近提出的硬件加速選件,例如基于RDMA架構的NVMe,缺乏性能隔離,并且部署靈活性有限。

由于讀、寫干擾的影響,可預測的性能對于NVMe Flash設備是一個挑戰(zhàn)。圖1繪制了Flash上的尾部讀取延遲(第95個百分位數(shù))與各種讀寫比率的工作負載的吞吐量(IOPS)的關系。尾部讀取延遲取決于吞吐量(負載)和讀寫比率。對于我們測試過的所有NVMe Flash設備,此行為都是典型的,因為寫入操作速度較慢,并且觸發(fā)磨損平衡和垃圾回收活動,這些活動無法始終被隱藏。當單個應用程序使用本地Flash設備時,可以管理讀/寫干擾,但是對于遠程Flash和共享同一設備但彼此不知道的多個租戶而言,這成為一個巨大的挑戰(zhàn)。

a3590a7a-6eed-11ee-939d-92fbcf53809c.png

三、ReFlex設計

1.數(shù)據(jù)平面架構

ReFlex緊密集成了網(wǎng)絡和存儲層,提供了對遠程Flash的低延遲和高吞吐量訪問。它通過TCP和UDP等通用網(wǎng)絡協(xié)議為任意大小的邏輯塊提供遠程讀/寫請求。ReFlex主要是軟件系統(tǒng),它利用NIC和NVMe Flash設備中的硬件虛擬化功能直接在硬件隊列上運行,并有效地在NIC和Flash設備之間轉發(fā)請求和數(shù)據(jù),而無需拷貝。

a374dff2-6eed-11ee-939d-92fbcf53809c.png

每個ReFlex服務器線程使用專用core,可以直接和排它地訪問網(wǎng)絡隊列對以進行數(shù)據(jù)包的接收/發(fā)送,并使用NVMe隊列進行Flash命令的提交/完成。

圖2展示了ReFlex服務器線程的執(zhí)行模型,該線程處理傳入的Flash讀/寫請求。首先,NIC接收網(wǎng)絡數(shù)據(jù)包,然后通過DMA將其傳送到網(wǎng)絡棧提供的預分配的內(nèi)存緩沖區(qū)(1)。ReFlex線程輪詢接收描述符環(huán),并通過以太網(wǎng)驅動程序和網(wǎng)絡棧(例如TCP/IP)處理數(shù)據(jù)包,從而生成事件條件,指示新消息的可用性(2)。同一線程使用libix(類似于Linux libevent的庫)來處理事件。這涉及切換到服務器代碼,以解析消息,提取IO請求,執(zhí)行訪問控制檢查以及提交Flash read/write系統(tǒng)調(diào)用之前所需的任何其他存儲協(xié)議的處理(3)。然后,線程切換到系統(tǒng)調(diào)用處理并執(zhí)行IO調(diào)度,以在共享ReFlex服務器的所有租戶之間實施SLO。調(diào)度之后,請求將通過NVMe提交隊列提交給Flash設備(4)。Flash設備執(zhí)行讀/寫IO,并通過DMA將數(shù)據(jù)傳送到預分配的用戶空間緩沖區(qū)(或從預分配的用戶空間緩沖區(qū)獲取數(shù)據(jù))(7)。線程輪詢完成隊列(5),并提供完成事件(6)。事件回調(diào)通過libix執(zhí)行并發(fā)出send系統(tǒng)調(diào)用(7)。最后,線程處理send系統(tǒng)調(diào)用,以通過網(wǎng)絡棧將請求的數(shù)據(jù)傳遞回發(fā)起方(8)。執(zhí)行模型支持每條網(wǎng)絡消息多個IO請求以及跨多個網(wǎng)絡消息的大型IO。

2.調(diào)度機制

QoS調(diào)度程序允許ReFlex為共享服務器中Flash設備的租戶提供性能保證。租戶是一種邏輯抽象,用于說明和執(zhí)行服務級別目標(SLO)。SLO在特定吞吐量和讀/寫比率下指定尾部讀取延遲的限制。例如,租戶可以以80%的讀取比率注冊具有200us讀取尾部延遲(95%百分數(shù))的50K IOPS的SLO。除了此類延遲關鍵(LC)租戶,這些租戶在尾部延遲和吞吐量方面保證了分配,ReFlex還為盡力而為(BE)租戶提供服務,這些租戶可以機會使用任何未分配或未使用的Flash帶寬并容忍較高的延遲。租戶定義可以由成千上萬的網(wǎng)絡連接共享,這些連接來自運行任何應用程序的不同客戶端計算機。應用程序可以使用多個租戶為不同的數(shù)據(jù)流請求單獨的SLO。

在Flash設備訪問上強制執(zhí)行SLO有兩個因素。首先,設備可以支持的最大帶寬(IOPS)取決于它在所有租戶中看到的請求的總體讀寫比率。其次,讀取請求的尾部等待時間取決于總體讀取/寫入比率和當前帶寬負載。因此,QoS調(diào)度程序需要全局可見性和對Flash上的總負載以及未完成的IO操作類型的控制。我們使用請求代價模型來說明每個Flash IO對讀取尾部延遲的影響,并使用一種新穎的調(diào)度算法來保證所有租戶和所有數(shù)據(jù)平面線程之間的SLO。

1) 請求代價模型

a389fc7a-6eed-11ee-939d-92fbcf53809c.png

針對ReFlex服務器中部署的每種類型的Flash設備校準成本模型。首先,對于具有各種讀寫比率和請求大小的工作負載,我們使用本地Flash測量了尾部等待時間與吞吐量的關系(請參見圖1中的4KB示例)。由于寫入請求的成本取決于垃圾回收和頁面擦除事件的頻率,因此我們保守地使用隨機寫入模式來觸發(fā)最壞的情況。接下來,我們使用曲線擬合來得出C(I / O type,r)

2) 調(diào)度算法

QoS調(diào)度器構建在成本模型之上,保持延遲關鍵租戶的尾端延遲和吞吐量的SLO,同時允許盡力交付型租戶以公平的方式利用剩余的吞吐量。

token管理

QoS調(diào)度器以等于Flash設備在給定尾端延遲SLO上可以支持的最大加權IOPS(上述的成本模型)的速率生成token。ReFlex在所有共享一個Flash設備的延遲關鍵租戶中執(zhí)行最嚴格的延遲SLO。在它們的SLO指示的讀寫比加權情況下,延遲關鍵(LC)租戶被提供能夠滿足它們IOPS SLO的token供應。由調(diào)度程序生成但未分配給延遲關鍵的token將在盡力交付型租戶之間公平分配。當調(diào)度程序將租戶的請求提交到Flash設備時,它會根據(jù)每個請求的成本來花費租戶的token。

每個ReFlex線程將Flash請求排入每個租戶的軟件隊列中。當線程到達數(shù)據(jù)平面執(zhí)行模型中的QoS調(diào)度步驟時,線程使用計算排隊請求的加權成本,并將所有允許的請求提交給Flash設備,從而逐漸花費每個租戶的token。根據(jù)線程負載和批處理因子,執(zhí)行模型每0.5us至100us進入一次調(diào)度回合。通過對控制平面和批處理大小限制確保調(diào)度程序調(diào)用之間的時間不超過最嚴格SLO的5%。必須進行頻繁的調(diào)度,以避免過多的排隊延遲并保持NVMe設備的高利用率。

其次,ReFlex采用自適應批處理請求,以分攤開銷并提高預取和指令緩存效率。在低負載下,將立即處理傳入數(shù)據(jù)包或已完成的NVMe命令。隨著負載的增加,NIC接收和NVMe完成隊列將填滿,并為批量處理多個傳入數(shù)據(jù)包或多個完成的訪問提供了機會。批大小隨負載增加而增加,但上限為64,以避免過多的延遲。不同于傳統(tǒng)的批處理,后者需要在帶寬和延遲之間進行權衡,自適應批處理在高吞吐量和低延遲之間實現(xiàn)了良好的平衡。

四、結果與評估

a395e33c-6eed-11ee-939d-92fbcf53809c.png

從上圖可以看出,ReFlex可以達到與本地閃存訪問相近的遠程訪問吞吐量和帶寬;

a3ada616-6eed-11ee-939d-92fbcf53809c.png

同時,ReFlex的IO調(diào)度能夠實現(xiàn)對不同類型的用戶提供相對應的服務。上圖是四個不同類型的租戶同時訪問一個ReFlex服務器的場景,其中A和B是兩個延遲敏感型的租戶,從實驗結果可以看出,對于延遲敏感型用戶,能夠保證其所要求的的訪問延時和訪問帶寬。

五、總結

ReFlex作為一種新的純軟件層面的遠程flash訪問架構,能夠在提供低延時和高帶寬的訪問性能的同時,在多用戶訪問的場景下為延遲敏感性的租戶提供可保證的服務質(zhì)量。

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • FlaSh
    +關注

    關注

    10

    文章

    1635

    瀏覽量

    148032
  • 服務器
    +關注

    關注

    12

    文章

    9160

    瀏覽量

    85427
  • 數(shù)據(jù)中心

    關注

    16

    文章

    4778

    瀏覽量

    72129
  • 高帶寬
    +關注

    關注

    0

    文章

    13

    瀏覽量

    7707
  • nvme
    +關注

    關注

    0

    文章

    221

    瀏覽量

    22640

原文標題:高帶寬低延時遠程flash訪問架構

文章出處:【微信號:SSDFans,微信公眾號:SSDFans】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    示波器帶寬要求解析

    PCI Express(PCIe)技術是服務器中最重要的高速串行總線。由于其帶寬延遲特性,PCI Express架構廣泛應用于各種服務器互連場景。
    的頭像 發(fā)表于 11-03 10:36 ?2044次閱讀
    示波器<b class='flag-5'>帶寬</b>要求<b class='flag-5'>解析</b>

    labview遠程訪問

    我想通過labview訪問遠程數(shù)據(jù)庫,數(shù)據(jù)庫使用mysql做的,mysql已經(jīng)設置遠程訪問呢權限,并且在其他計算機上用Navicat for MySQL通過IP可以
    發(fā)表于 04-11 20:47

    labview 如何通過域名來訪問

    建立通信通道來實現(xiàn)遠程通信,首先我用花生殼實現(xiàn)了內(nèi)網(wǎng)映射和域名解析,可以讓遠程電腦訪問到一個固定路由器的端口設備,但這種訪問是通過域名進行
    發(fā)表于 08-27 19:42

    DCT工具遠程訪問mysql

    找了好多資料都是個本地訪問,基本沒有遠程訪問的資料?,F(xiàn)在想請教各位的是:遠程訪問,Database open 的連接信息應該怎么寫,格式是什
    發(fā)表于 09-11 16:48

    高增益與帶寬怎么兼得

    1:簡化的噪聲模型大家明白,我們現(xiàn)在需要選擇一款電壓噪聲盡可能的放大器。由于我們想在保持良好帶寬的同時,在第一級實現(xiàn)盡可能的增益,所以我們將把目光投向具有最高增益帶寬積 (GBW
    發(fā)表于 09-20 15:06

    高增益與帶寬怎么兼得?

    作者: Xavier Ramus, TI由于我們必須采用多個功率級,因而同時實現(xiàn)高增益(1000 - V/V乃至更高)和帶寬(數(shù)十 MHz)可能是一種挑戰(zhàn)。除了高增益、帶寬方面的電
    發(fā)表于 09-21 15:18

    基于Cyclone V FPGA的帶寬存儲接口應用

    (WeightedRoundRobin,WRR),WRR算法仍然會優(yōu)先處理優(yōu)先級的端口,但是優(yōu)先級的端口也不會出現(xiàn)不被調(diào)度的情況。WRR是根據(jù)端口權重與所有排隊等待調(diào)度的端口的權重總和的比來平等地分配帶寬
    發(fā)表于 06-13 05:00

    如何去實現(xiàn)一種遠程訪問診斷接口?

    本文介紹了一種基于藍牙技術的用于遠程訪問診斷接口的架構。
    發(fā)表于 05-14 06:43

    基于藍牙的遠程訪問診斷接口架構

    本文介紹了一種基于藍牙技術的用于遠程訪問診斷接口的架構,在這種架構中使用藍牙聯(lián)網(wǎng)協(xié)議為一個HTTP-CAN網(wǎng)關提供底層的傳輸(物理)媒介。借助運行在TCU上的嵌入式HTTP服務器的幫助
    發(fā)表于 09-03 06:30

    GPMC并口如何實現(xiàn)“小數(shù)據(jù)-時延,大數(shù)據(jù)-帶寬

    并口“小數(shù)據(jù)-時延”的特點顯得格外耀眼,能夠很好地提高數(shù)據(jù)傳輸效率,降低傳輸成本。 (2)大數(shù)據(jù)-帶寬大數(shù)據(jù)時代對能源電力領域的數(shù)據(jù)量傳輸、數(shù)據(jù)處理等方面提出了更高的要求。GPMC提供了最大
    發(fā)表于 09-30 23:43

    基于Flash遠程工業(yè)監(jiān)控系統(tǒng)設計

    根據(jù)當前基于Web遠程工業(yè)監(jiān)控方案的不足,利用Flash的交互性強,本身導出的文件小,適合網(wǎng)絡傳輸、利用AS(Action Script)提高了與其他語言的交互性等特點,提出了基于Flash
    發(fā)表于 05-28 17:28 ?43次下載
    基于<b class='flag-5'>Flash</b>的<b class='flag-5'>遠程</b>工業(yè)監(jiān)控系統(tǒng)設計

    帶寬延時的衛(wèi)星互聯(lián)網(wǎng)已成太空的“新風口”

    帶寬、延時的衛(wèi)星互聯(lián)網(wǎng),很容易被認為是5G的競爭者,甚至有人直接將衛(wèi)星互聯(lián)網(wǎng)類比成6G。
    的頭像 發(fā)表于 08-20 17:48 ?3417次閱讀

    關于Flash程序空間中的數(shù)據(jù)訪問的實驗

    關于Flash程序空間中的數(shù)據(jù)訪問的實驗(物聯(lián)網(wǎng)嵌入式開發(fā))-關于Flash程序空間中的數(shù)據(jù)訪問的實驗,適合感興趣的學習者學習,可以提高自己的能力,大家可以多交流哈
    發(fā)表于 08-04 11:56 ?3次下載
    關于<b class='flag-5'>Flash</b>程序空間中的數(shù)據(jù)<b class='flag-5'>訪問</b>的實驗

    華為云桌面,流暢延時,給你絲滑辦公體驗

    華為云桌面,流暢延時,給你絲滑辦公體驗 隨著數(shù)字化轉型浪潮的到來,企業(yè)的辦公方式也在發(fā)生變革,云辦公正在被眾多企業(yè)選擇。不管是遠程辦公、遠程
    的頭像 發(fā)表于 12-27 15:38 ?906次閱讀

    為什么遠程訪問優(yōu)于 VPN?

    本文將探討 VPN 和遠程訪問軟件之間的主要區(qū)別,并重點說明 Splashtop 為什么是更好的選擇。我們將從性能、用戶體驗、安全性、成本等方面進行探討,以闡明為什么當前有很多組織正在從傳統(tǒng)的 VPN 解決方案過渡到更先進的遠程
    的頭像 發(fā)表于 06-27 16:09 ?428次閱讀
    為什么<b class='flag-5'>遠程</b><b class='flag-5'>訪問</b>優(yōu)于 VPN?