前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >局域网SDN硬核技术内幕 23 展望未来——RDMA(上)

局域网SDN硬核技术内幕 23 展望未来——RDMA(上)

作者头像
用户8289326
发布2022-07-27 10:31:15
5580
发布2022-07-27 10:31:15
举报
文章被收录于专栏:帅云霓的技术小屋

我们先小结一下前期的收获:

摩尔定律被硅芯片物理极限限制->多核技术推动虚拟化大规模应用->数据中心网络大规模虚拟机入网;

Wi-Fi技术驱动移动办公普及->园区网络大规模用户移动漫游;

虚拟机与园区网络漫游终端普及->需要将网络划分为柔性切片,虚机或园区用户接入网络时自动划分至所属切片->VXLAN技术

VXLAN没有控制平面->EVPN+SDN作为控制平面;

合理设计网络,避免VXLAN硬件规格限制;

可见,SDN网络的出现,演进和成熟,是典型的IaaS层面需求引发的网络革命。

那么,让我们将眼光上移,从数据中心的IaaS层移到PaaS层——

数据中心的本质,是运行大规模分布式计算或存储的场所。

想一想,我们常见的计算和存储PaaS框架有哪些?

Hadoop, Tensorflow, Ceph, Gluster……

这些分布式计算与存储框架,所相似的一点是,需要频繁成块访问远端计算机的内存。

传统的远程访问,需要通过Linux或Windows的Socket机制。这种机制每发送一个数据包,均需要将数据包从用户态内存空间,拷贝到网卡驱动所在的内核态内存空间,再进行发送。而接受数据包,则需要将数据包从网卡驱动所在的内存空间拷贝至用户态应用程序的内存空间。

显然,在大规模分布式计算与存储时,这是难以接受的。

所以,工程师们在网卡上引入了RDMA(Remote Direct Memory Access)机制,使得应用程序可以直接通过RDMA命令字,让远端服务器网卡直接从RAM中取指定地址的数据;

RDMA的API,与传统Linux/Windows Socket的API有所不同,它叫做RDMA Verb。以发送数据包的RDMA Verb为例,它的函数原型如下:

int ibv_post_send(struct ibv_qp *qp, struct ibv_send_wr *wr, struct ibv_send_wr **bad_wr)

让我们看看结构体ibv_send_wr的定义:

我们看到,红框中是远端的地址。也就是说,RDMA在代码API级别,提供了直接访问远端地址的机制。

RDMA与传统Socket机制,数据流向对比如下图所示:

可见,RDMA绕过了内核中断机制,大大降低了远程访问的时延,降低了CPU占用。

注意到图中RDMA的通道,它与网络是两个不同的通道。这意味着什么呢?

明天,我们为大家详解这一细节。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-10-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 帅云霓的技术小屋 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档