NVMe-oF E-JBOF設計解析:WD RapidFlex網卡、OpenFlex Data24

OpenFlex Data24 NVMe-oF Storage Platform

WD的SN840 NVMeSSD新品并沒有太吸引我注意,因為它還是PCIe 3.0接口的,要知道Intel的PCIe 4.0 SSD都已經推出了。

但上面這個NVMe-oF(NVMe over Fabric)EBOF(區別于普通JBOF的第一個字母表示Ethernet)我就有點興趣了。前一段看到劉愛貴博士的公司——大道云行宣布的分布式軟件定義存儲新品,使用了一家國內的E-JBOF,想從官網找公開資料學習下都不太多。在這點上國際品牌往往要做得完善一些,否則我也寫不出本文的分享。

從SAS JBOD到NVMe JBOF和EBOF

談到NVMe JBOF的前身,SAS JBOD磁盤(HDD/SSD)擴展柜不得不提,下面只用一張圖簡單交代下JBOD里的SAS Expander控制模塊。

上圖從10年前的一段視頻里截出,可以說是LSI在6Gb/s SAS時代的經典之一(Dell PowerVault MD1200/1220 JBOD基本相同),也勾起了我一段曾經美好的回憶。2U驅動器機箱里有2個HA路徑的SAS Expander——只用LSI SAS2X36芯片作為核心即可。

相比之下,NVMe-oFJBOF/EBOF至少要在物理上把PCIe轉換為以太網,所以結構不可能如此簡單。我們先來看看下面這塊“網卡”。

這顆芯片的型號是WDRapidFlex A1000 NVMe-oF ASIC,對應的板卡為RapidFlex C1000 NVMe-oF Adapter,不難看出是用來干啥的。規格如下:

其網口部分提供1個100GbE或者2個50/25GbE以太網,協議支持RoCE、iWARP/TCP,看產品名稱自然也支持NVMe。PCIe接口支持Root Complex,看來是用于連接NVMe SSD的;PCIe Gen3 x16還能拆分成2個x8來使用(連接多個PCIeSwitch)。

上圖是基于RapidFlex A1000的EBOF參考架構。位于機箱前部的NVMe SSD通過熱插拔背板連接到2塊控制電路板——應該支持雙端口SSD的2個PCIe 3.0 x2多路徑訪問,然后經過PCIe Switch之后,就連接到幾個RapidFlex A1000 ASIC對前端服務器提供NVMe-oF訪問。同時有BMC / 機箱服務模塊用于帶外管理。

看這個WD單芯片解決方案就更清楚了。所謂“6-way無阻塞內存子系統”,其實RapidFlex A1000 ASIC是無需DRAM內存工作的,它的工作其實很單一——就是那個“MPU”實現NVMe(連接SSD)到NVMe-oF(over RDMA)之間的轉換。

再來看看WD OpenFlex Data24 NVMe JBOF(EBOF)的后視圖。左右2個IOM模塊上各自可以插3塊網卡,應該就是前面提到的RapidFlex C1000 NVMe-oF Adapter。

這里重點看一下OpenFlex Data24的高可用和性能設計。在2個IOM模塊中,每個上面應該是用了不低于96 lane PCIe 3.0 Switch芯片——下行48 lane連接NVMe SSD,然后3個x16連接RapidFlex網卡。除了到以太網那里帶寬打一點折扣之外,PCIe鏈路的“收斂比”是1:1性能無損的。

OpenFlex Data24給出的性能指標是13.2M IOPS和70.7GB/s,平均每塊SSD接近55萬IOPS和3GB/s帶寬,這個幾乎把6個100GbE網口跑滿了,每塊網卡平均220萬IOPS。

這里友情插一個小小的廣告,有想咨詢西數企業存儲產品商務方面的朋友,可以聯系圈內名人劉委員(平臺小秘書),靠譜的哥們兒,他的微信號wood6988。

NVMe-oF EBOF高級實現方式、閃存陣列的區別

前面討論的WD產品只是最基本的以太網JBOF,可以說與SAS JBOD和PCIeNVMe JBOF的地位沒有本質區別——支持用來連接盤,而并沒有更多高級管理功能。再往上一點的方案是什么呢?下面我拿Mellanox和Broadcom的產品來簡單舉個例。

關于MellanoxBlueField我有2篇寫的比較早,收錄在《存儲網絡交換、NVMe oF》專輯中,大家也可以找最新的資料看看。

上圖這款卡,在WinnieShao博士的大作《智能網卡SmartNIC:“大”x86 Server中的“小”armServer》中也被提到過。BroadcomStingray板卡的主控芯片BCM58800也是一顆ARM SoC,它在拓撲圖中的位置有點類似于前面的WD RapidFlex,但既然敢稱為閃存陣列(Flash Array)而不只是E-JBOF自然有所不同。

上圖這份資料有點老。ARM和網卡部分我就不多談了,Broadcom本身就是做網絡出身的。SoC同時包含雙通道DDR4內存控制器,具備接近100Gb/s Hash和加密引擎(也能用于重刪)、RAID 5 XOR和RAID 6 P+Q Galois/Erasure糾刪碼支持。

除了基于RDMA的NVMe-oF之外,StingraySmartNIC的應用方案還包括NVMe-TCP(擴展閱讀:《NVMe over TCP:iSCSI的接班人?》),這一點我理解WD RapidFlex網卡就做不到了。類似的還有對象存儲,已經超出了JBOF/EBOF的基本功能范疇。

關于存儲服務offload卸載這一塊,如果是傳統企業存儲市場中功能強大的閃存陣列,只靠SmartNIC顯然又不夠了。下圖引用自《DellEMC PowerStore詳解:NVMe+SAS全閃存陣列,還是一體機?》,只是舉個例。

關于寫緩存鏡像,以及數據縮減(壓縮/重刪)處理,只是PowerStore存儲系統數據路徑中的一部分流程而已。其實我理解NVRAM盤只是為了保障數據的持久化(估計是一個副本),真正的處理還是要放在DRAM主內存中才能高效。至于更多的高級存儲服務,就需要用到控制器中強大的服務器級別CPU了(具體到PowerStore使用的是XeonScalable)。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/168101.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/168101.shtml
英文地址,請注明出處:http://en.pswp.cn/news/168101.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

FPGA程序前仿真和后仿真問題處理

參考鏈接:FPGA程序前仿真和后仿真問題處理 - 知乎

css三角,鼠標樣式,溢出文字

目錄 css三角 鼠標樣式 例子:頁碼模塊 溢出文字表示方式 margin負值運用 css三角強化 css三角 css三角中:line-height:0和font-size:0是防止兼容性的問題 jd {position: relative;width: 120px;height: 249px;background-…

【React】useReducer

讓 React 管理多個相對關聯的狀態數據 import { useReducer } from "react" // 1. 定義reducer函數,根據不同的action返回不同的狀態 function reducer(state, action) {switch (action.type) {case ADD:return state action.payloadcase SUB:return st…

Python與設計模式--原型模式

4-Python與設計模式–原型模式 一、圖層 大家如果用過類似于Photoshop的平面設計軟件,一定都知道圖層的概念。圖層概念的提出, 使得設計、圖形修改等操作更加便利。設計師既可以修改和繪制當前圖像對象,又可以保留其它 圖像對象,…

在 Ubuntu 上安裝最新版的 Calibre

目錄 前言 方法1:從 Ubuntu 的倉庫安裝 Calibre 卸載 Calibre 方法2:獲取最新版本的 Calibre 卸載 Calibre 結語 前言 Calibre 是一款自由開源的電子書軟件。下面介紹如何在 Ubuntu Linux 上安裝它。 作為電子書管理的瑞士軍刀,Calibre …

線程-Thread類及常見方法

目錄 一、創建線程 1.繼承 Thread 類 2. 實現 Runnable 接口 3.匿名內部類創建 Thread 子類對象 4. 匿名內部類創建 Runnable 子類對象 5. lambda 表達式創建 Runnable 子類對象 二、Thread 類及常見方法 2.1 Thread 的常見構造方法 2.2 Thread 的幾個常見屬性 2.3 啟…

C++初級項目webserver項目流程介紹(2)

一、引言 C的webserver項目是自己在學完網絡編程后根據網課的內容做的一個初級的網絡編程項目。 這個項目的效果是可以在瀏覽器通過輸入網絡IP地址和端口,然后打開對應的文件目錄 效果如下: 也可以打開文件夾后點擊目錄,打開到對應的文件夾…

Vue中項目進行文件壓縮與解壓縮 (接口返回文件的url壓縮包前端解析并展示出來,保存的時候在壓縮后放到接口入參進行保存)

安裝 npm install pako在Vue組件中引入pako: import pako from pako;接口返回的url是這個字段 tableSsjsonUrl 其實打開就是壓縮包const source await tableFileUrl ({ id: this.$route.query.id}); if(source.code 0) {this.titleName source.data.tableNam…

ES之x-pack-core-7.14.2許可證修改為白金版

X-Pack是什么 X-pack是elasticsearch的一個擴展包,將安全,警告,監視,圖形和報告功能捆綁在一個易于安裝的軟件包中,雖然x-pack被設計為一個無縫的工作,但是你可以輕松的啟用或者關閉一些功能。 主要分一下步…

WebSocket 鑒權策略與技巧詳解

WebSocket 作為實時通信的利器,越來越受到開發者的青睞。然而,為了確保通信的安全性和合法性,鑒權成為不可或缺的一環。本文將深入探討 WebSocket 的鑒權機制,為你呈現一攬子的解決方案,確保你的 WebSocket 通信得心應…

【Qt之QTextDocument】使用及表格顯示富文本解決方案

【Qt之QTextDocument】使用 描述常用方法及示例使用QTextList使用QTextBlock使用QTextTable表格顯示富文本結論 描述 QTextDocument類保存格式化的文本。 QTextDocument是結構化富文本文檔的容器,支持樣式文本和各種文檔元素,如列表、表格、框架和圖像。…

CANopen協議【SDO】

SDO: SDO是讀寫單個寄存器。主要用于配置伺服驅動器參數。 1 收發功能: //public unsafe struct VCI_CAN_OBJ //CAN數據幀 【單幀對象】//{// public uint ID;// 幀ID。 【11bit】數據右對齊。 詳情請參照: 《8.附件1&#xff1…

Python 模塊

目錄 模塊 6.1. 模塊詳解 6.1.1. 以腳本方式執行模塊 6.1.2. 模塊搜索路徑 6.1.3. “已編譯的” Python 文件 6.2. 標準模塊 6.3. dir() 函數 6.4. 包 6.4.1. 從包中導入 * 6.4.2. 相對導入 6.4.3. 多目錄中的包 模塊 退出 Python 解釋器后,再次進入時&a…

手把手教你安裝 Visual Studio 2022 及其簡單使用

軟件下載 打開 Visual Studio 官網,個人選擇免費的Community社區版就夠用了。 軟件安裝 雙擊運行安裝程序: 點擊繼續 即可: 等待加載完成: 可以看到 Visual Studio 2022 對應不同的開發需求提供了若干工作負載,這里以…

?3ds Max插件CG MAGIC圖形板塊為您提升線條效率!

?通過3ds Max軟件進行繪圖操作時,大多絆住各位設計師們作圖速度的往往都是一些細微的瑣事,重復一變一變的調整修改等問題。 今天說到這個繪圖線條來回調整解決方法就是3ds Max插件CG MAGIC。 Max插件CG MAGIC作為一款智能化的輔助插件,致力于…

flutter編譯和構建鴻蒙應用程序(windows環境)

flutter編譯和構建鴻蒙應用程序(windows環境) 問題背景 針對 OpenHarmony 的 Flutter 版本已經開源,參考 https://gitee.com/openharmony-sig/flutter_flutter。 本文為實踐該流程,實現flutter打包鴻蒙hap包的流程。目前流程已經…

flink的java.lang.IllegalStateException: Buffer pool is destroyed 異常

背景 最近flink的在線應用出現錯誤java.lang.IllegalStateException: Buffer pool is destroyed,本文記錄下這個錯誤的原因 錯誤原因 詳細的日志堆棧如下: Caused by: java.lang.IllegalStateException: Buffer pool is destroyed. at org.apache.flink.runtime…

Ps:畫筆工具的基本操作

畫筆工具 Brush Tool是 Ps 中最常用的工具,廣泛地用于繪畫與修飾工作。 雖然多數操作可在畫筆工具的工具選項欄中選擇執行,但是如果能記住相應的快捷鍵可大大提高工作效率。 熟練掌握畫筆工具的操作對于使用其他工具也非常有益,因為 Ps 中許多…

CSS-長度單位篇

px:像素em:相對元素font-size的倍數rem:相對根字體大小,html標簽就是根%:相對父元素計算 注意:CSS中設置長度,必須加單位,否則樣式無效!

Maven - 打包之爭:Jar vs. Shade vs. Assembly

文章目錄 Pre概述Jar 打包方式_maven-jar-pluginOverview使用官方文檔 Shade 打包方式_maven-shade-pluginOverview使用將部分jar包添加或排除將依賴jar包內部資源添加或排除自動將所有不使用的類排除將依賴的類重命名并打包進來 (隔離方案)修改包的后綴…