您现在的位置:首页 >> 家居资讯

系列解读 SMC-R (二):融为一体 TCP 与 RDMA 的 SMC-R 通信 | 龙蜥技术

发布时间:2025/09/04 12:16    来源:润州家居装修网

SMC-R 收发所必需的 RDMA 人力,确立 RDMA 终前端,注册 RDMA 闪存。

2.3.1 再加立 RDMA 人力

SMC-R 建连以前,两前端根据应应用于程序传递的 IP 位址在本地找到可视 (如相同 Pnet ID) 的 RDMA 设备,并基于找到的设备再加立必要性的 RDMA 人力,包括 Queue Pair (QP),Completion Queue (CQ),Memory Region (MR),Protect Domain (PD) 等等。

其当中,QP 与 CQ 是 RDMA 收发的根基,提供了一套 RDMA 介面 (如 SMC 多线程条款函数调用) 与 RDMA 设备 (RNIC) 之错综复杂的异步收发选择性。

QP 本质是寄存临时工任务 (Work Request, WR) 的临时工缓冲区 (Work Queue, WQ)。全由收发任务的 WQ 称作 Send Queue (SQ),全由交还任务的 WQ 称作 Receive Queue (RQ),两者总是再加对显现显现出来,称作 QP。使用者将期盼 RNIC 完毕的任务拆开为临时工缓冲区原素 (Work Queue Element, WQE),post 到 QP 当中。RNIC 从 QP 当中取显现出 WQE,完毕 WQE 当中下定义的临时工。

CQ 本质是寄存临时工完毕文则档 (Work Completion, WC) 的缓冲区。RNIC 完毕 WR 后,将完毕文则档拆开为完毕缓冲区原素 (Completion Queue Element, CQE) 放入 CQ 当中。使用者从 CQ 当中 poll 显现出 CQE,获悉 RNIC 早就完毕某个 WR。

2.3.2 确立 RDMA 终前端

收发两前端将已再加立的 RDMA 人力通过 CLC 谣言同步到对前端,进而在两前端之错综复杂确立起基于 RC (Reliable Connection) QP 的 RDMA 终前端。SMC-R 当中校这种点对点某种意义的 RDMA 终前端称作 SMC-R Link。一条 SMC-R Link 装载着多条 SMC-R 通往的数据库水流量。

若收发路由表之错综复杂实际上不止一对可视的 RNIC,则可能会确立不止一条 Link。这些 Link 在某种意义构再加一个团队,称作 SMC-R Link Group。

在 Linux 做到当中,每个 Link Group 具有 1-3 条 Link,最多装载 255 条 SMC-R 通往。这些通往被均衡的联系到 Link Group 的某一 Link 上。应应用于程序通过 SMC-R 通往收发的数据库将由联系的 Link (也即 RDMA 终前端) 以太网。

同一个 Link Group 当中,所有的 Link 互相“平等”。这个“平等”揭示在同一 Link Group 当中的 Link 具有可能会面 Group 当中所有 SMC-R 通往收发缓冲 (以下内容谈到的 sndbuf 与 RMB) 的权责,具有装载任意 SMC-R 通往数据库流的灵活性。因此,当某一 Link 失效时 (如 RNIC down),联系此 Link 的所有通往可以迁至到同 Link Group 的另一条 Link 上。这使得 SMC-R 收发稳定准确,具有一定的容灾灵活性。

SMC-R 当中,Link (Group) 在 first contact 时再加立,在最后一条 SMC-R 通往连在一起一段时错综复杂 (Linux 做到当中为 10 mins) 后收缴,具有比通往短的生命周期。First contact 之后再加立的 SMC-R 通往都将先前复用已有的 Link (Group)。这样的新设计充分借助了已有的 RDMA 人力,不必要性了经常性再加立与收缴带来的额外开销。

2.3.3 注册 RDMA 闪存

SMC-R 条款函数调用为每条 SMC-R 通往分配了独属的收发缓冲:sndbuf (收发缓冲) 与 RMB (交还缓冲,Remote Memory Buffer)。这是两片位址连续,尺寸在 16 KB ~ 512 KB 错综复杂的多线程态 ring buffer。

其当中,sndbuf 应用于寄存通往待收发的数据库,被特许为 DMA 闪存。本地 RNIC 设备可以从外部可能会面 sndbuf,从当中取走适当负载 (payload)。而 RMB 应用于寄存远程路由表 RNIC 录入的数据库,即通往待交还的数据库。由于必能够被远程路由表可能会面,因此 RMB 被特许为 RDMA 闪存。

特许 RDMA 闪存的现实生活称作 Memory Registration,主要完毕以下转换:

转换再加位址中文则翻译详见

RDMA 介面 (如本地/远程 SMC-R 条款函数调用) 一般来说用到虚拟位址 (VA) 描述闪存,而 RNIC 则通过物理位址 (PA) 寻址。RNIC 从 WQE 或数据库包当中获取数据库 VA 后通过的资讯得到 PA,进而可能会面亦然确存储空错综复杂。因此 Memory Registration 更进一步就是逐步形再加目的闪存的位址中文则翻译详见。

Pin 屋中闪存

早期 OS 可能会转换再加暂不用到的闪存数据库,这将引致位址中文则翻译详见当中的连续函数联系失效。因此,Memory Registration 可能会将目的闪存 pin 屋中,锁定 VA-to-PA 连续函数联系。

限制闪存可能会面权责

为不必要性闪存非法可能会面,Memory Registration 可能会为目的闪存转换再加两把闪存公钥:Local Key (l_key) 和 Remote Key (r_key)。闪存公钥实质是一串序列,本地或远前端凭借 l_key 或 r_key 可能会面 RDMA 闪存,前提闪存可能会面必需。

SMC-R 当中,远程路由表可能会面本地 RMB 所必需的 addr 与 r_key 被封装为远程可能会面令牌 (Remote Token, rtoken),通过 CLC 谣言传递到远前端,使其具有远程可能会面本地 RMB 的权责。

SMC-R 通往收缴后,对应的 sndbuf 与 RMB 将被丢弃到 Link Group 安全及的闪存池当中,供近期新通往复用,以此缩小 RDMA 闪存再加立/收缴对建连性能的影响。

2.4 验证 SMC-R Link

由于 first contact 片当中下新确立的 SMC-R Link 尚不予过验证,所以在亦然式用到 Link 以太网应应用于数据库前,收发两前端可能会基于 Link 收发 Link Layer Control (LLC) 谣言,应用于检验 Link 前提可视。

LLC 谣言一般来说为请求-回复方式而,应用于以太网 Link 不仅仅的压制文则档,如添加/删掉/推定 Link,推定/删掉 r_key 等。

(详见/十分相似 LLC 谣言含义)

LLC 谣言的以太网基于 RDMA 的 SEND 转换完毕,与之相对的是后文则谈到的 RDMA WRITE 转换。

SEND 转换又被称作“国与国转换”,这是因为 SEND 转换要收发两前端都参予进来。一次 SEND 的以太网现实生活为:

交还机 RDMA 介面 (SMC-R 多线程条款函数调用) 向本地 RQ 当中 Post RWQE,RWQE 当中纪录了待交还数据库的尺寸以及预留描述符; 收发前端 RDMA 介面 (SMC-R 多线程条款函数调用) 向本地 SQ 当中 Post SWQE,SWQE 当中纪录了待收发数据库尺寸和描述符。收发前端 RNIC 根据 SWQE 纪录的文则档取显现出相应尺寸的数据库收发到对前端; 交还机 RNIC 交还到数据库后,取显现出 RQ 当中的第一个 RWQE,依照其当中纪录的描述符和尺寸寄存数据库;

通过在 Link 上收发 CONFIRM_LINK 类型的 LLC 谣言,收发两前端推定了新再加立的 Link 具有 RDMA 收发的灵活性,可以应用于以太网 SMC-R 通往数据库。

2.5 基于计算机局域网收发

通过上述重重步骤,first contact 片当中下 SMC-R 建连临时工终于过后。月里,应应用于程序将通过已确立好的 SMC-R 通往以太网数据库。

应应用于程序印发到 SMC-R 通往当中的数据库由联系的 Link 通过 RDMA WRITE 转换录入远程路由表 RMB 当中。

与上文则谈到的 SEND 转换相异,RDMA WRITE 又被称作“单边转换”。这是因为数据库以太网只有 RDMA WRITE 筹划的一方参予,而交还数据库一方的 RDMA 介面完全不参予数据库以太网,也不获知数据库的到来。一次 RDMA WRITE 转换现实生活如下:

前期准备过渡阶段,交还机 RDMA 介面 (SMC-R 多线程条款函数调用) 将交还缓冲特许为 RDMA 闪存,将远程可能会面公钥 rkey 告诉收发前端,使其以外从外部可能会面交还机闪存的权责,这个现实生活我们在举例简述过。 收发前端 RDMA 介面 (SMC-R 多线程条款函数调用) 向 SQ 当中 post SWQE。与 SEND 相异的是,RDMA WRITE 的 SWQE 当中不仅都有数据库在本地的描述符和尺寸,还都有数据库即将摆放在交还机的描述符,以及可能会面交还机闪存所必需的 r_key。收发前端 RNIC 根据 SWQE 当中纪录的文则档将数据库以太网到交还机。 交还机 RNIC 核实数据库包当中的 r_key,将数据库寄存到仅指定描述符当中。此时的交还机 RDMA 介面并不知道数据库早就被录入闪存。

由于 RDMA WRITE 转换不必能够交还机 RDMA 介面参予,因此非常适合大量数据库的从外部录入。不过,由于交还机并不获知数据库到来,收发前端录入数据库后必能够通过 SEND 转换收发压制谣言事先交还机。在 SMC-R 当中,这种压制谣言称作 Connection Data Control (CDC) 谣言。CDC 谣言当中都有 RMB 相关压制文则档用以同步数据库读写。

(详见/CDC 谣言主要素材)

在第四部篇名的第一篇当中我们谈到,SMC-R 名称当中的“计算机局域网”仅指的是交还机的 RMB。结合上述的 RDMA WRITE 转换与 CDC 谣言,SMC-R 的计算机局域网收发程序可以总结为:

收发前端的数据库通过 socket 硬件,由应应用于缓冲复本至多线程 sndbuf 当中 (三幅当中未画显现出 sndbuf) 条款函数调用通过 RDMA WRITE 单边转换将数据库录入交还机 RMB 当中 收发前端通过 SEND 国与国转换收发 CDC 谣言告诉交还机有最初数据库到来 交还机从 RMB 当中复本数据库至应应用于缓冲 交还机通过 SEND 国与国转换收发 CDC 谣言告诉收发前端 RMB 当中部分数据库已被用到

2.6 通往重开与人力收缴

过后数据库以太网后,主动重开方筹划 SMC-R 通往重开程序。与 TCP 相似,SMC-R 通往也实际上半重开/全重开状态。连在一起的 SMC-R 通往与 Link (Group) 解绑,相关的 sndbuf 与 RMB 也将被丢弃到闪存池当中,赶紧复用。同时,与 SMC-R 通往联系的 TCP 通往也转回重开程序,最终释放。

若 Link (Group) 当中不再实际上活跃的 SMC-R 通往,则赶紧一段时错综复杂后 (Linux 做到当中为 10 mins) 转回Link (Group) 收缴程序。收缴 Link (Group) 将释放与之相关的所有 RDMA 人力,包括 QP、CQ、PD、MR、以及所有的 sndbuf 与 RMB。Link (Group) 收缴后,再次再加立 SMC-R 通往则必能够之后经历 first contact 程序。

三、总结

本篇作为 SMC-R 第四部篇名的第二篇,以 first contact 片当中为例,简述了完整的 SMC-R 收发程序。包括:通过 TCP 击掌推定对前端 SMC-R 灵活性;用到 TCP 通往传递 CLC 谣言,交换 RDMA 人力、再加立 RDMA 终前端、确立 SMC-R 通往;通过 RDMA SEND 转换收发 LLC 谣言验证 Link 可视;基于 Link 用到 RDMA WRITE 以太网应应用于程序数据库,并借助 CDC 谣言同步 RMB 当中数据库变化;重开 SMC-R、TCP 通往,收缴 RDMA 人力等一第四部现实生活。

上述现实生活充分揭示了 SMC-R 的 "hybrid" 特色。SMC-R 既借助了 TCP 的通用性 ,如通过 TCP 通往推定对前端灵活性,确立 SMC-R 通往与 RDMA 终前端;又借助了 RDMA 的高性能 ,如通过 Link 以太网应应用于程序数据库水流量。亦然因为如此,SMC-R 必须在适配基本 TCP/IP 生态系统关键功能的同时为 TCP 应应用于提供乳白色无感的局域网性能增强。

本文则为阿里云原创素材,不予必需不得登载。

南京妇科医院预约挂号
西安白癜风权威医院
天津白癜风医院怎么样
南京癫痫治疗费用多少钱
西安男科医院哪个比较好
治疗盆腔炎方法
预防中风
急性支气管炎咳嗽怎么治
小儿腹痛
慢性支气管炎咳嗽吃什么药

上一篇: 第11届贵阳市七人制足球丁级职业联赛平坝风暴0-3贵阳尤文

下一篇: 佳通云直播,携手通路伙伴共度时艰

友情链接