当前位置:首页 >> 中药大全 >> 系列暗示 SMC-R (二):融合 TCP 与 RDMA 的 SMC-R 通信 | 龙蜥技术

系列暗示 SMC-R (二):融合 TCP 与 RDMA 的 SMC-R 通信 | 龙蜥技术

发布时间:2023-03-05

的双方同意这样一来程序中。

First contact 桥段下,由于通信两尾端首次接触,两者有数唯不仰赖于适用 RDMA 通信的必须。所以,在建起首个 SMC-R 连通时,还将建立 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 技术的发展获自取粉红色无感的网络服务机动性全部都是面提高。

本文中为阿里云原创确切内容,未经允许不得登载。

沈阳妇科医院预约挂号
武汉哪里看妇科最好
江西白癜风治疗费用是多少
佛山男科医院哪个好
成都甲状腺医院怎么去
标签:技术
友情链接: