HowTo Install MLNX_OFED Driver 如何安装MLNX_OFED驱动
摩尔定律被硅芯片物理极限限制->多核技术推动虚拟化大规模应用->数据中心网络大规模虚拟机入网;
Linux API 头文件(在 linux-3.19.tar.xz 里)会将内核 API 导出给 Glibc 使用。
传统TCP/IP技术处理数据包需通过操作系统和其他软件层,导致数据在系统内存、处理器缓存和网络控制器缓存间频繁复制,增加了服务器CPU和内存的负担,特别是在网络带宽、处理器速度与内存带宽不匹配时,网络延迟会进一步加剧。RDMA技术通过将数据处理从CPU旁路并卸载到硬件上来实现低时延和高带宽特性。
随着互联网, 人工智能等兴起, 跨机通信对带宽和时延都提出了更高的要求, RDMA技术也不断迭代演进, 如: RoCE(RDMA融合以太网)协议, 从RoCEv1 -> RoCEv2, 以及IB协议, Mellanox的RDMA网卡cx4, cx5, cx6/cx6DX, cx7等, 本文主要基于CX5和CX6DX对RoCE技术进行简介, 一文入门RDMA和RoCE有损及无损关键技术
NVMe over Fabrics (NVMe-oF) 是 NVMe 网络协议对以太网和光纤通道的扩展,可在存储和服务器之间提供更快、更高效的连接,并降低应用程序主机服务器的 CPU 利用率
rdma_rxe 内核模块提供 RoCEv2 协议的软件实现。 RoCEv2 协议是存在于 UDP/IPv4 或 UDP/IPv6 之上的 RDMA 传输协议。 InfiniBand (IB) 基本传输标头 (BTH) 封装在 UDP 数据包中。 创建 RXE 实例后,通过 RXE 进行通信与通过任何 OFED 兼容的 Infiniband HCA 进行通信相同,尽管在某些情况下会涉及寻址问题。 特别是,虽然 GRH 标头的使用在 IB 子网中是可选的,但对于 RoCE 来说是强制性的。 基于 IB 动词编写的动词应用程序应该可以无缝工作,但它们需要在创建地址向量时提供 GRH 信息。 修改库和驱动程序以提供硬件所需的从 GID 到 MAC 地址的映射
RDMA是常用于高性能计算(HPC)领域的高速网络,在存储网络等专用场景也有广泛的用途。RDMA最大的特点是通过软硬件配合,在网络传输数据的时候,完全不需要CPU/内核参与,从而实现高性能的传输网络。最早RDMA要求使用InfiniBand (IB)网络,采用专门的IB网卡和IB交换机。现在RDMA也可以采用以太网交换机,但是还需要专用的IB网卡。虽然也有基于以太网卡用软件实现RDMA的方案,但是这种方案没有性能优势。
在此之前,Citadel 协议使用后量子安全保护传输中的数据。但现在,Citadel 协议还可以保护静态数据(具有后量子安全性)。
导语 | 本文介绍了部分高性能网络方案,包括RDMA、HARP、io_uring等。从技术原理、落地可行性等方面,简要地做出分析,希望能对此方面感兴趣的开发者提供一些经验和帮助。 一、背景 业务中经常会有这样的场景: 随着网卡速率的提升(10G/25G/100G),以及部分业务对低延迟的极致追求(1ms/50us),目前的内核协议栈由于协议复杂、流程复杂、设计陈旧等因素,已经逐渐成为业务瓶颈。 业界已经有部分RDMA、DPDK的实践,但是对于大多数开发者而言,依然比较陌生。 那么这些方案各自的场景究竟怎样?
IB(InfiniBand)和 RDMA(Remote Direct Memory Access)是一种高性能网络技术,通常用于加速数据传输。它们不是基于传统的 TCP/IP 协议栈,而是使用自己的协议栈,以实现低延迟、高带宽的数据传输。
个人理解nvme能提高存储性能,就像4G比3G快一样,电磁波还是光速,但协议变了,所以快了。rdma应用跑在用户态能减小存储时延,spdk在用户态实现nvme驱动,天然能和rdma结合,而且两者的队列能一一映射,能达到锦上添花的效果。坏处就是kernel upstream实现的nvme代码无法复用,网卡硬件得支持rdma,rdma的库很多,出了问题估计会有找不得北的感觉。
在《局域网SDN硬核技术内幕》的开篇中,我们提到过,在云资源池中,存在着很多很多的虚拟机。
第一届「中国云计算基础架构开发者大会」(以下简称 CID)将在 2020 年 10 月 25 日举办。会中看到有新硬件PM结合RDMA的议题,这是数据库方面前沿技术,对下一代数据库发展有重要影响。听后进行总结。
https://docs.nvidia.com/doca/sdk/erasure-coding-programming-guide/index.html
在数据为王的时代,人们对网络的要求更加严苛。然而传统的TCP / IP以太网连接占用了大量的CPU资源,并且需要额外的数据处理,已无法再满足当前更快、更高效和可扩展性的网络需求。在这种情况下,RoCE(RDMA over Converged Ethernet )走进了人们的视野。
HMM: 异构内存管理(Heterogeneous Memory Management)
该驱动程序通过 Linux 网络堆栈实现 InfiniBand RDMA 传输。 它使具有标准以太网适配器的系统能够与 RoCE 适配器或运行 RXE 驱动程序的另一个系统进行互操作。 有关 InfiniBand 和 RoCE 的文档可以从 www.infinibandta.org 和 www.openfabrics.org 下载。 (另请参见 siw,它是 iWARP 的类似软件驱动程序。)该驱动程序分为两层,一层与 Linux RDMA 堆栈接口,并实现内核或用户空间动词 API。 用户空间动词 API 需要一个名为 librxe 的支持库,该支持库由通用用户空间动词 API libibverbs 加载。 另一层与第 3 层的 Linux 网络堆栈接口。要配置和使用 soft-RoCE 驱动程序,请使用“配置 Soft-RoCE (RXE)”部分下的以下 wiki 页面:https://github.com/linux-rdma/rdma-core/blob/master/Documentation/rxe.md
官方文档: https://openucx.readthedocs.io/en/master/
人工智能作为推动数字经济发展的算力基础和重要支撑,已经广泛运用于诸如自然语言处理、图像识别、自动驾驶、医疗诊断、金融风控等各大应用领域。其中在深度学习分支,模型训练是一个非常耗时和计算密集的过程,需要大量的计算资源和时间。
【infiniband】 MAD、 uMAD、Verbs、RDMACM: https://blog.csdn.net/eidolon_foot/article/details/132840943
我们在做网络服务器的时候,通常会很关心网络的带宽和延迟。因为我们的很多协议都是request-reponse协议,延迟决定了最大的QPS,而带宽决定了最大的负荷。 通常我们知道自己的网卡是什么型号,交换机什么型号,主机之间的物理距离是多少,理论上是知道是知道带宽和延迟是多少的。但是现实的情况是,真正的带宽和延迟情况会有很多变数的,比如说网卡驱动,交换机跳数,丢包率,协议栈配置,光实际速度都很大的影响了数值的估算。 所以我们需要找到工具来实际测量下。 网络测量的工具有很多,netperf什么的都
博客: https://logread.cn | https://blog.csdn.net/ssbandjl | https://cloud.tencent.com/developer/user/5060293/articles
在上期,我们提到了NVLink技术能够为GPU之间提供高速低时延可靠的数据通道,两块GPU之间可以通过NVLink互通。
前段时间,sudo被曝不要密码就可进行root提权的漏洞引起一片哗然,众多公司纷纷连夜打补丁来避免损失。FreeBuf也对此进行了相应的报道《不用密码就能获取root权限?sudo被曝新漏洞》。
当今的数据中心由数千台网络连接的主机组成,每台主机都配有 CPU 和 GPU 和 FPGA 等加速器。 这些主机还包含以 100Gb/s 或更高速度运行的网络接口卡 (NIC),用于相互通信。 我们提出了 RecoNIC,这是一种基于 FPGA、支持 RDMA 的 SmartNIC 平台,旨在通过使网络数据尽可能接近计算来加速计算,同时最大限度地减少与数据副本(在以 CPU 为中心的加速器系统中)相关的开销。 由于 RDMA 是用于改善数据中心工作负载通信的事实上的传输层协议,因此 RecoNIC 包含一个用于高吞吐量和低延迟数据传输的 RDMA 卸载引擎。 开发人员可以在 RecoNIC 的可编程计算模块中灵活地使用 RTL、HLS 或 Vitis Networking P4 来设计加速器。 这些计算块可以通过 RDMA 卸载引擎访问主机内存以及远程对等点中的内存。 此外,RDMA 卸载引擎由主机和计算块共享,这使得 RecoNIC 成为一个非常灵活的平台。 最后,我们为研究社区开源了 RecoNIC,以便能够对基于 RDMA 的应用程序和用例进行实验
beegfs客户端在不同发行版上支持的OFED版本是不同的,像我在ubuntu2004上发现beegfs对我手上的MCX353A-FCBT并不支持,因为MCX353A-FCBT是相对比较旧的网卡,从从MLNX_OFED 5.1开始,就不再继续支持了。要查询发行版本对你的网卡的支持,可以查看下述信息:
题图摄于北京金融街 相关信息: 招聘云原生工程师 使用Bitfusion在K8s上共享GPU资源 本文作者:尹皓正 - VMware中国研发中心云原生实验室开发工程师 背景介绍: PVRDMA (Paravirtual RDMA):VMware 对于 RDMA 技术的半虚拟化实现,vSphere 会在虚机中提供 PVRDMA 虚拟网卡,再通过 VMkernel 中的 PVRDMA 堆栈来访问 HCA(Host Channel Adapter,主机通道适配器),这种方式可以让多个虚机共享 HCA 设备
DAX: 磁盘(disk)的访问模式有三种 BUFFERED、DIRECT、DAX。前面提到的由于page cache存在可以避免耗时的磁盘通信就是BUFFERED访问模式的集中体现;但是如果我要求用户的write请求要实时存储到磁盘里,不能只在内存中更新,那么此时我便需要DIRECT模式;大家可能听说过flash分为两种nand flash和nor flash,nor flash可以像ram一样直接通过地址线和数据线访问,不需要整块整块的刷,对于这种场景我们采用DAX模式。所以file_operations的read_iter和write_iter回调函数首先就需要根据不同的标志判断采用哪种访问模式, kernel在2020年12月的patch中提出了folio的概念,我们可以把folio简单理解为一段连续内存,一个或多个page的集合
前言:今日,笔者受邀参加“Dell&RedHat HPC研讨会”。会上,分享了红帽在HPC领域的解决方案。由于很多朋友关心这个话题,因此将演讲的内容分享出来,供大家参考。PPT在书写过程中,得到了同事
qperf跟ibping类似需要,但是qperf在测试时,建议关闭防火墙systemctl stop firewalld
过去,网络只要升级至 10Gb、40Gb 和 100Gb 以太网,就足以满足存储系统的联网需求了。但现如今,随着超快固态硬盘 (SSD) 和高速非易失性内存 (Non-Volatile Memory Express, NVMe) 的问世,网络存储已经发生了翻天覆地的变化。 什么是 NVMe? 传统的存储系统的基础是硬盘驱动器 (HDD) 旋转介质,这项技术历经 60 余年沉淀发展而成。随着设备尺寸越来越小且速度越来越快,驱动器技术不断演进,固态驱动器 (SSD) 的问世给存储世界注入了新的血液。 突然之间
DOCA: Data Center-on-a-Chip Architecture, 芯片上的数据中心架构
这篇文章描述了通过 PCI Express 结构在 CPU 和 NIC 之间发生的一系列协调事件,以通过 InfiniBand 互连传输消息并发出其完成信号。
在上期,我们通过简要介绍了虚拟机通过VirtIO访问SmartNIC,实现虚拟机在是否带有SmartNIC的宿主机之间迁移的方案。实现虚拟机跨宿主机迁移以后,我们就可以把带有SmartNIC的宿主机和普通宿主机组成一个资源池,统一进行资源的调度和分配。
rdma The RDMA I/O engine supports both RDMA memory semantics (RDMA_WRITE/RDMA_READ) and channel semantics (Send/Recv) for the InfiniBand, RoCE and iWARP protocols. falloc IO engine that does regular fallocate to simulate data transfer as fio ioengine. DDIR_READ does fallocate(,mode = keep_size,) DDIR_WRITE does fallocate(,mode = 0) DDIR_TRIM does fallocate(,mode = punch_hole) e4defrag IO engine that does regular EXT4_IOC_MOVE_EXT ioctls to simulate defragment activity in request to DDIR_WRITE event rbd IO engine supporting direct access to Ceph Rados Block Devices (RBD) via librbd without the need to use the kernel rbd driver. This ioengine defines engine specific options. gfapi Using Glusterfs libgfapi sync interface to direct access to Glusterfs volumes without options. gfapi_async Using Glusterfs libgfapi async interface to direct access to Glusterfs volumes without having to go through FUSE. This ioengine defines engine specific options. libhdfs Read and write through Hadoop (HDFS). The 'filename' option is used to specify host, port of the hdfs name-node to connect. This engine interprets offsets a little differently. In HDFS, files once created cannot be modified. So random writes are not possible. To imitate this, libhdfs engine expects bunch of small files to be created over HDFS, and engine will randomly pick a file out of those files based on the offset generated by fio backend. (see the example job file to create such files, use rw=write option). Please note, you might want to set necessary environment variables to work with hdfs/libhdfs properly. mtd Read, write and erase an MTD character device (e.g., /dev/mtd0). Discards are treated as erases. Depending on the underlying device type, the I/O may have to go in a certain pattern, e.g., on NAND, writing sequentially to erase blocks and discarding before overwriting. The w
本文全是个人感想和猜测,写一写软件人眼中的硬件,越底层越难,个人理解不一定对,请用批判的眼光看,特此声明,免得被人贻笑大方。
DMA 代表直接内存访问。这意味着应用程序可以在 CPU 干预的情况下直接访问(读/写)主机内存。如果您在主机之间执行此操作,它将成为远程直接内存访问 (RDMA)
超大规模和云构建者并不是唯一对 CXL 协议及其为系统创建分层、分解和可组合的主内存的能力感兴趣的人。HPC中心也在采取行动,本文谈论的是韩国科学技术高级研究所KAIST所做的一项有意思的工作。
分布式系统利用卸载来减少 CPU 负载变得越来越流行。远程直接内存访问 (RDMA) 卸载尤其变得流行。然而,RDMA 仍然需要 CPU 干预来处理超出简单远程内存访问范围的复杂卸载。因此,卸载潜力是有限的,基于 RDMA 的系统通常必须解决这些限制。 我们提出了 RedN,这是一种原则性的、实用的方法,可以实现复杂的 RDMA 卸载,无需任何硬件修改。使用自修改 RDMA 链,我们将现有的 RDMA 动词接口提升为图灵完备的编程抽象集。我们探索使用商用 RDMA NIC 在卸载复杂性和性能方面的可能性。我们展示了如何将这些 RDMA 链集成到应用程序中,例如 Memcached 键值存储,从而使我们能够卸载复杂的任务,例如键查找。与使用单侧 RDMA 原语(例如 FaRM-KV)的最先进的 KV 设计以及传统的 RPC-over-RDMA 方法相比,RedN 可以将键值获取操作的延迟减少高达 2.6 倍。此外,与这些基准相比,RedN 提供性能隔离,并且在存在争用的情况下,可以将延迟减少高达 35 倍,同时为应用程序提供针对操作系统和进程崩溃的故障恢复能力。
用户空间直接访问 (UDA) 旨在以通用方式提供用户空间访问队列,但 E810 不支持此功能。 UDA 仅在内核中可用,并且仅限于 iWARP 连接设置和错误处理。 UDA 在用户空间中不可用
作者 | 核子可乐、钰莹 四十年过去了,此番新协议的出炉也许又将掀起一波变革浪潮...... 作为过去四十年间最根深蒂固的标准之一,大家耳熟能详的传输控制协议(TCP)没准即将走向生命周期的终点。而这波变革的起点,应该会从全球规模最大的数据中心应用场景开始。但对于其他日常应用场景来说,哪怕有望把消息传递速度提升 100 倍,似乎也无法抵偿协议转变带来的巨大麻烦。 不过从历史经验来看,一切曾经专属于超大规模企业的技术优势,最终都将为中型 IT 部门所用。所以……我们不妨拭目以待。 1 TCP 协议不适
存储加速方向 存储软件自身软件栈 存储软件自身一般通过是通过减少软件栈开销来达到优化自身的目的,比如软件栈的一些校验或者保护算法可以通过CPU的特殊指令集对存储校验或者保护算法进行优化 网络IO Linux网络的开销一般比较大,封包和解包一般都是在CPU端进行,数据的可靠性需要依赖TCP协议栈,而TCP协议栈保证稳定的同时TCP的操作必须经过协议栈,这就带来了数据从用户态->内核态->网卡驱动开销。数据拷贝和CP开销让网络IO往往不低。因此可以所经过的网络中,可以把数据传输的任务从CPU中卸载,交给具有RD
HCA方案将所有的信道分为两部分:一部分信道固定配置给某些小区,即部分信道隔离;另一部分信道则保留在中心存储区中,为系统中的所有用户所共享,即部分信道共享。HCA是FCA和DCA的折中,故成为混合分配。(关于FCA和DCA参见相应词条)
Open-E、Western Digital 和 ATTO 数据存储专家和工程师联手推出了基于 HDD 的数据存储设备,该设备结合Western Digital Ultrastar® Data60 JBOD 的海量容量和Ultrastar® 系列 HDD 以及加速的性能,这得益于ATTO HBA SAS 控制器和 100GbE NIC,以及Open-E JovianDSS 的数据缓存和复制功能。 合作带来了在性价比方面完美平衡的解决方案,连接了 HDD 的成本效益,以及支持基于 NVMe 的缓存设备(Ultrastar® DC SN840 1.6 TB NVMe SSD)的出色性能通过最先进的连接硬件和软件功能,例如通过镜像路径连接的RDMA复制写入日志。
PolarCtrl 是一个PolarFS 集群的控制面板,它至少需要部署在三台以上的机器上提供高可用的服务,PolarCtrl 的工作职责是什么:
消息中间件作为消息通信的基础软件,已在业界诸多 IT 系统中被广泛使用。近年来,随着移动云业务的持续高速发展,基于开源技术生态构建的消息中间件云产品体系越来越受到市场的青睐。移动云在消息中间件领域的技术演进与发展方向上一直坚持着自研和开源融合的发展路线,在做好自研的基础上积极拥抱开源生态。
https://blog.csdn.net/weixin_33725722/article/details/89131555
领取专属 10元无门槛券
手把手带您无忧上云