远程存储 RDMA

news2024/9/19 13:50:16

什么是 RDMA

RDMA(Remote Direct Memory Access)指的是远程直接内存访问,这是一种通过网络在两个应用程序之间搬运缓冲区里的数据的方法。

  • Remote:数据通过网络与远程机器间进行数据传输。

  • Direct:没有内核的参与,有关发送传输的所有内容都卸载到网卡上。 

  • Memory:在用户空间虚拟内存与网卡直接进行数据传输不涉及到系统内核,没有额外的数据移动和复制。

  • Access:send、receive、read、write、atomic 等操作。

RDMA 与传统的网络接口不同,因为它绕过了操作系统内核。这使得实现了 RDMA 的程序具有如下特点:

  • 绝对的最低时延

  • 最高的吞吐量

  • 最小的 CPU 足迹 (也就是说,需要 CPU 参与的地方被最小化

RDMA 工作原理

传统的 TCP/IP 通信过程如下:

  1. 把收到的数据包缓存到系统上,数据包经过处理后,相应数据被分配到一个 TCP 连接。

  2. 接收系统再把主动提供的 TCP 数据同相应的应用程序联系起来,并将数据从系统缓冲区拷贝到目标存储地址。

由此可见在发送和接收数据的过程中,数据在源端应用层从上向下逐层拷贝封装,目的端从下向上拷贝和解封装,所以比较慢,而且需要 CPU 参与的次数很多。

RDMA 的工作过程如下:

  1. 当一个应用执行 RDMA 读或写请求时,不执行任何数据复制。在不需要任何内核内存参与的条件下,RDMA 请求从运行在用户空间中的应用中发送到本地网卡。

  2. 网卡读取缓冲的内容,并通过网络传送到远程网卡。

  3. 在网络上传输的 RDMA 信息包含目标机器虚拟内存地址和数据本身。请求完成可以完全在用户空间中处理(通过轮询用户空间的 RDMA 完成队列)。RDMA 操作使应用可以从一个远程应用的内存中读数据或向这个内存写数据。

支持 RDMA 的网络协议 

RDMA 作为一种 host-offload,host-bypass 技术,使低延迟、高带宽的直接的内存到内存的数据通信成为了可能。目前支持 RDMA 的网络协议有: 

  • InfiniBand(IB):从一开始就支持 RDMA 的新一代网络协议。由于这是一种新的网络技术,因此需要支持该技术的网卡和交换机。 

  • RDMA 过融合以太网(RoCE):即 RDMA over Converged Ethernet,允许通过以太网执行 RDMA 的网络协议。这允许在标准以太网基础架构(交换机)上使用 RDMA,只不过网卡必须是支持 RoCE 的特殊的网卡。  

  • 互联网广域 RDMA 协议(iWARP):即 Internet Wide Area RDMA Protocol,其实也就是 RDMA over TCP,允许通过 TCP 执行 RDMA 的网络协议。这允许在标准以太网基础架构(交换机)上使用 RDMA,只不过网卡要求是支持 iWARP(如果使用 CPU offload 的话)的网卡。否则,所有 iWARP 栈都可以在软件中实现,但是失去了大部分的 RDMA 性能优势。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2124042.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

计算机毕业设计 | 基于SpringBoot的健身房管理系统(附源码)

1,项目背景 随着人们生活水平的提高和健康意识的增强,越来越多的人开始关注自己的身体健康并加入到健身行列中。然而,传统的健身房管理方式往往存在诸多问题,如会员信息管理混乱、课程安排不合理、教练资源分配不均等&#xff0c…

MaxCompute基础概论

1. 简介与背景 随着大数据技术的发展,企业和组织面临着处理海量数据的挑战。传统的数据存储和处理工具难以应对高并发、复杂计算以及海量数据的快速增长需求。为了解决这些问题,阿里云推出了 MaxCompute(原名 ODPS),这…

超声波雪深监测站

超声波雪深监测站是一种用于测量和监测雪深的设备。它的功能和作用主要包括以下几个方面: 雪深测量:超声波雪深监测站能够通过发射超声波并接收回波的方式,测量雪地表面到地面之间的距离,从而得到雪深的数据。通过分析和处理这些数…

图像去噪的艺术:自适应中值滤波器的应用与实践

在数字图像处理的众多挑战中,噪声的去除是一个永恒的话题。特别是椒盐噪声,因其随机将像素点变为极黑或极白,对图像的视觉质量破坏极大。本文将通过MATLAB实现的自适应中值滤波器(AMF),探讨其在图像去噪中的…

--- 数据结构 二叉树 --- java

树形结构 数使一个非线性结构,他是由n个结点组成的具有一定层次关系的集合,叫做树是因为他像是一颗倒挂的树,根在上,叶子在下,具有一些性质 1,有一个特殊节点叫做根节点,他没有钱去节点&#x…

017_Python爬虫系列_防盗链代理

我 的 个 人 主 页:👉👉 失心疯的个人主页 👈👈 入 门 教 程 推 荐 :👉👉 Python零基础入门教程合集 👈👈 虚 拟 环 境 搭 建 :👉👉 Python项目虚拟环境(超详细讲解) 👈👈 PyQt5 系 列 教 程:👉👉 Python GUI(PyQt5)文章合集 👈👈 Oracle数…

限流,流量整形算法

写在前面 本文看下流量整形相关算法。 目前流量整形算法主要有三种,计数器,漏桶,令牌桶。分别看下咯! 1:计数器 1.1:描述 单位时间内只允许指定数量的请求,如果是时间区间内超过指定数量&a…

用Python实现时间序列模型实战——Day 17: 时间序列模型的评估方法

一、学习内容 1. 预测误差的评估指标 在时间序列预测中,常用的评估指标包括 MAE (Mean Absolute Error), MSE (Mean Squared Error) 和 RMSE (Root Mean Squared Error)。这些指标用于衡量模型的预测误差。 MAE (Mean Absolute Error): MAE 衡量预测值…

mysql学习教程,从入门到精通,MySQL WHERE 子句(10)

1、SQL WHERE 子句 在本教程中,您将学习如何使用SQL从表中选择特定记录。 根据条件选择记录 在上一章中,我们学习了如何从表或表列中获取所有记录。但是,在现实世界中,我们通常只需要选择,更新或删除满足某些条件的那…

HarmonyOS---应用测试概述

一、应用质量要求 应用质量要求分为应用体验质量建议和应用内容合规要求两大部分。 1、应用体验质量建议 功能数据完备、基础体验要求、HarmonyOS特征增强体验要求。 (1)功能数据完备 (2)基础体验要求 (3)增…

盘古信息IMS 驱动智能工厂建设,助力制造企业降本增效

随着全球化的加剧和市场竞争的日益激烈,制造业面临着提高生产效率、降低成本、提升产品质量以及实现绿色可持续发展等多重压力。智能工厂是利用人工智能、大数据、物联网、云计算等新技术,实现工厂的智能化、自动化、可持续化发展的新型制造业模式&#…

《深度学习》OpenCV 高阶 图像直方图、掩码图像 参数解析及案例实现

目录 一、图像直方图 1、什么是图像直方图 2、作用 1)分析图像的亮度分布 2)判断图像的对比度 3)检测图像的亮度和色彩偏移 4)图像增强和调整 5)阈值分割 3、举例 二、直方图用法 1、函数用法 2、参数解析…

芋道快速开发平台的使用心得

1.前端版本 项目的管理后台有 4 个版本: yudao-ui-admin-vue3 (opens new window):基于 Vue3 element-plus yudao-ui-admin-vben (opens new window):基于 Vue3 vben(ant-design-vue) yudao-ui-admin-vue2 (opens new window)&#xff…

LaTeX中制作表格【表格数据自动换行】(附latex源码)

一、latex软件推荐 在使用LaTeX进行文档编写时,有几款非常受欢迎且功能强大的软件和在线编辑器可供选择。以下是一些推荐的LaTeX软件: 1. Overleaf(强烈推荐) Your Projects - Overleaf, Online LaTeX Editorhttps://www.overleaf.com/project 2.Tex…

图新说【消防】(一步步的做好态势标绘)

0.序 越来越多的消防战士使用图新说来做消防预案,态势标绘比武等。 图新说即可应用于具体的消防救援任务,制作具体的作战方案,让战士的配合更加紧密。 也可以做大型的消防预案,针对辖区内的重点建筑、危化存储区提前做应急救援方…

最新版MYMPay码支付开源版系统源码_个人免签支付_聚合支付系统

最新版MYMPay码支付开源版系统源码_个人免签支付_聚合支付系统 安装环境: PHP:7.0-8.2 (推荐使用7.4) 需要安装Xload 扩展 MySQL:5.6版本 访问 http://你的域名/install 进行安装 后台地址:http://你的域名/Admin/ 账号&am…

C++笔记之map的实用操作

C++笔记之map的实用操作 文章目录 C++笔记之map的实用操作1.初始化1.1.使用列表初始化1.2.使用 `insert` 方法1.3.使用 `emplace` 方法1.4.复制构造1.5.移动构造2.赋值2.1.列表赋值2.2.插入元素2.3.批量插入3.取值3.1.使用 `[]` 操作符3.2.使用 `at()` 方法3.3.检查键是否存在3…

C++设计模式——State状态模式

一,状态模式的定义 状态模式是一种行为型设计模式,状态模式允许对象在内部状态发生切换时改变它自身的行为。 状态模式的主要目的是将复杂的状态切换逻辑抽象化为一组离散的状态类,使代码结构更加清晰和易于维护。 状态模式将对象的行为封…

【spring】IDEA 新建一个spring boot 项目

参考新建项目-sprintboot 选择版本、依赖,我选了一堆 maven会重新下载一次么?

Vue(8)——v-model原理

v-model 原理:v-model本质上是一个语法糖。例如应用在输入框上&#xff0c;就是value和input事件的合写。 作用&#xff1a;提供数据的双向绑定。 数据变&#xff0c;视图跟着变 :value视图变&#xff0c;数据跟着变 input <template><div><input v-model&quo…