当前位置: 首页 > news >正文

网站建设公司教程网站的建设论文

网站建设公司教程,网站的建设论文,濮阳大濮网联系电话,网络推广及销售作者 | 火尉子责编 | Carol封图 | CSDN 下载自视觉中国在各行各业数字化转型深入的当下#xff0c;数据呈爆炸式增长。面对海量数据的存储需求#xff0c;分布式存储显然在架构上有着天然优势#xff0c;但在这波数据洪流之中也面临着性能上的全新挑战。由于分布式存储的工作… 作者 | 火尉子责编 | Carol封图 | CSDN 下载自视觉中国在各行各业数字化转型深入的当下数据呈爆炸式增长。面对海量数据的存储需求分布式存储显然在架构上有着天然优势但在这波数据洪流之中也面临着性能上的全新挑战。由于分布式存储的工作原理是将各个存储节点使用网络互联的方式构建为集群向外部提供更加可靠的高性能服务因此可以说分布式存储本质上是一种网络存储其性能在很大程度上受网络的影响。在高性能的分布式存储中使用传统的TCP网络进行各存储节点之间的网络互联很容易形成网络瓶颈而在分布式存储最容易让用户诟病的IO延时方面网络部分的开销是不可忽视的一部分。随着网络带宽的高速增长在软件上的消耗已成为网络性能的瓶颈而通过绕过CPU实现高性能传输的RDMA网络成为分布式存储不错的选择。 RDMARemote Direct Memory Access可以简单理解为网卡完全绕过CPU实现两个服务器之间的内存数据交换。其作为一种硬件实现的网络传输技术可以大幅提升网络传输效率帮助网络IO密集的业务比如分布式存储、分布式数据库等获得更低的时延以及更高的吞吐。最初的RDMA是实现在IBInfiniband上由于其新的硬件技术栈成本比较高主要用于HPC高性能计算等少数场景。而新的技术发展下能够实现在以太网上使用RDMA。 当前RDMA在以太网上的传输协议是RoCEv2RoCEv2是基于无连接协议的UDP协议相比面向连接的TCP协议UDP协议更加快速、占用CPU资源更少但其不像TCP协议那样有滑动窗口、确认应答等机制来实现可靠传输一旦出现丢包依靠上层应用检查到了再做重传会大大降低RDMA的传输效率。所以要想发挥出RDMA真正的性能突破数据中心大规模分布式系统的网络性能瓶颈势必要为RDMA搭建一套不丢包的无损网络环境而实现不丢包的关键就是解决网络拥塞。在解决拥塞问题的关键在支持ECN等特性的交换机而这个技术在一般的交换机都普遍支持。既然RDMA是一个硬件技术方案而且在分布式存储中又能快速地解决网络高延时等相关问题是不是直接更换上这个新的硬件技术就能万事大吉实际可能并没有那么简单那么我们就来简单聊聊RDMA技术实践过程中踩过的坑。RDMA想说爱你却不容易RDMA的使用需要应用程序的代码配合RDMA编程。RDMA操作的语义更加贴近硬件实现的语义形态与传统TCP/IP的Socket编程有很大的差别不能直接将现有程序简单地直接套用RDMA接口而使用原生RDMA编程库比Socket编程要复杂很多。并且在编程方式上RDMA编程是异步的而原始的Socket编程是同步的。这样将导致对大多数开发者来说无论是改造原有应用程序适配RDMA还是写一个全新的RDMA原生应用程序都不容易。那么如果完成了RDMA对接是否就能使我们的程序获得高性能呢我们再看看在通信模块中对接完RDMA的对比性能测试。RDMA在RPC模块中使用分布式存储中通常使用RPC框架进行节点之间的通信RPC性能对整体的存储性能有重要的影响。笔者团队实现了一个基于C的RPC框架可以灵活支持多种数据传输协议并支持协程快速处理适用于有高性能需求的场景。该RPC框架同时支持传统TCP和RDMA两种传输方式RDMA方式下注册了统一管理的RDMA内存并采用双边操作进行数据传输支持事件和轮询的请求检测机制。笔者团队对两种传输方式的性能进行了对比测试测试结果参见下图图1 RPC TCP与RDMA性能对比测试测试说明使用同一张10Gb网卡采用不同的模式进行对比测试通过测试我们发现RDMA的方式具有明显的优势尤其在低深度的场景下能获得更好的性能。我们继续将RPC对接实际业务进行了测试在这里我们对接了一个基于RAFT一致性协议的多副本数据存储业务测试结果参见下图图2 对接实际业务后的性能对比测试从上面的测试结果看到在包含有实际业务的测试中RDMA的表现并没有原始的RDMA测试表现那么优异我们分析了其主要原因是线程切换、数据复制等操作以及IO路径上其它模块引入了额外的开销。那么怎样才能发挥出RDMA的优异性能在实践过程中我们也针对分布式存储系统Ceph分别使用TCP和RDMA进行了对比测试测试结果也不是十分满意我们发现在Ceph中对于小IO的场景使用不同的传输模式都没有明显的提升甚至还有略微的下降对于大IO的高吞吐情况还会出现性能的明显下降测试结果见下图图3 Ceph 原生RDMA 1M大块吞吐测试结果 在测试结果的基础上我们分析了Ceph中关于RDMA部分的实现主要发现存在下面几个问题Ceph中使用双边的编程方式传输的过程并没有绕开CPU同时Ceph内部使用bufferlist的数据结构需要多次进行内存拷贝没有充分发挥RDMA中零拷贝的特性。由于RDMA的异步编程模型需要进行Polling来检测数据操作的完成使用单独的线程轮询不但没有降低CPU反而有更多的CPU开销而如果使用事件机制则会增加延迟降低性能。RDMA在上述的各个场景中都没能充分发挥其优越性能那么需要怎样的编程方式才能发挥其价值呢笔者团队又探索了SPDKStorage performance development kit的NVMe-oF中的RMDA使用方式。RDMA在NVMe-oF中的使用NVMe Over FabricsNVMe-oF是使用RDMA或光纤通道FC架构等Fabric技术取代PCIe传输从而将把本地高速访问的优势暴露给远端应用的一种传输技术。在SPDK中实现了相关的逻辑下图是分别通过SPDK的NVMe-oF的target访问与本地访问SSD的性能对比测试。图4 NVMe-oF 与原始SSD的性能对比测试 通过上面的数据我们发现通过RDMA的网络传输的性能和原始的性能非常接近在单深度的情况下读延时只增加了11us写延时只增加了 18 us。通过多深度能够跑出与本地SSD相当的性能。上面的测试也进一步论证了正确地使用RDMA的相关编程技术是能够充分发挥出硬件优越性能的。我们分析了SPDK中关于RDMA相关的实现认为以下因素是RDMA编程实现的关键充分利用RDMA的内存注册机制整个IO路径过程中使用内存池中的内存实现全流程零拷贝。对于控制消息小IO使用send/recv的双边编程方式对于数据消息大IO使用write/read的单边编程方式。RDMA的poll与NVMe盘的读写处于同一个线程整个过程没有线程切换是全用户态的IO处理。 EDS中的RDMA应用基于以上对于分布式存储中RDMA使用的分析笔者团队认为简单地生搬硬套发挥不了RDMA与新型存储设备的性能优势从整体框架上进行RDMA适配将IO路径上各模块联动优化才是分布式存储追求极致性能之路。为此我们设计验证了面向RDMA的高性能分布式存储框架和实现方案并在深信服企业级分布式存储EDS中落地应用。EDS针对RDMA网络和NVMe SSD设计了低延迟高并发的存储架构将存储节点前后端网络使用RDMA RoCE接入实现低延迟极速网络传输并对IO栈上各模块进行了相应的优化设计。深信服EDS存储架构采用了run to complete和无锁化编程模型并优化了各模块之间的数据处理实现系统内全IO栈的内存零拷贝使整体性能得到了极大的提升。如图5所示前端协议网关Protocol GatewayPGW接收来自用户的多种协议类型请求包括NFSSAMBAS3SwiftiSCSINVMe-OF等将这些请求封装后通过SRPC通信模块发送到存储服务端进行处理。存储服务端解析请求后由存储引擎进行相应的处理并访问存储设备完成数据的写入和读取。前端PGW请求发送和回调、存储服务端请求处理采用run to complete的方式在同一线程完成极大地提高单个请求的处理速度并采用无锁化编程的方式启用多个线程分组处理请求达到请求的高并发。此外设计了统一的数据缓存管理机制整个请求处理过程从数据经RDMA接收后经过各模块处理再到通过RDMA发送出去全程不需要对数据进行内存拷贝进一步减少系统开销并大幅降低了延迟。 图5 EDS存储软件架构示意图 SRPC通信模块设计(1)通信架构深信服EDS存储设计了面向存储系统消息传输的专用网络通信模块SRPC将上层多种类型请求消息封装使用RDMA进行快速数据传输可以灵活扩展支持上层NVMe-OF、iSCSI等多种类型协议并对消息封装进行了抽象和简化减少RPC数据包大小和处理时间。SRPC的架构如图6所示一个服务端server进程绑定一个port监听连接server可以设置多个线程作为多个poll group并行处理请求从请求接收到处理和回调Reply的整个过程都在同一线程内完成客户端client创建channel连接server可以指定要连接的server线程client可以设置多线程并在创建channel时分配其所在的线程。SRPC同时也支持使用TCP协议兼容未配置专用RDMA网卡的场景。图6 SRPC通信架构2数据传输方式在使用RDMA操作数据传输时通常有使用双边操作传输和使用单双边操作结合传输两种方式SRPC选择了更为灵活的单双边操作结合的方式。如图7所示使用双边操作SEND/RECV传输数据与传统Socket网络传输类似发送端使用RDMA SEND发送数据接收端使用RDMA RECV接收数据。但是在发送端发起RDMA SEND操作之前接收端需要准备好接收数据的内存区并发起RDMA RECV操作否则就会发送失败。因此双方需要约定一次传输最大的数据大小一般在在创建RDMA连接时协商接收端以该大小准备接收内存区发送端以该大小对大请求进行切分。使用双边RDMA SEND/RECV的限制在于当请求小于约定大小时存在接收端内存浪费的现象而请求大于约定大小时需要发送端切分多次传输并在接收端重组并且通常需要应用Buffer到RDMA协议Buffer之间的内存拷贝增加了开销和延迟。 图7 RDMA双边传输方式 如图8所示在单双边结合的传输方式下双边SEND/RECV多用于控制类消息传输而实际数据则是通过单边READ/WRITE来完成。在实际场景中每次需要传输的数据大小不是固定的所以发起单边操作前需要先协商好数据长度和相应的内存区信息。其方式为先使用双边SEND/RECV操作把待传输数据的内存地址、大小、rkey等控制信息进行传输然后根据传输类型选择单边READ或WRITE操作完成实际数据的传输最后使用双边SEND/RECV操作发送Reply结果。数据发送到对端在实际场景中每次需要传输的数据大小不是固定的所以发起单边操作前需要先协商好数据长度和相应的内存区信息。单双边结合传输的方式具有灵活适应各种大小请求的特点尤其在传输大请求时具有明显优势只需要一次单边操作即可将数据全部传输同时单双边结合的方式也实现了应用Buffer到RDMA协议Buffer之间的数据零拷贝进一步降低了开销和延迟。图8 RDMA单双边结合传输方式SRPC设置了两种模式进行请求的检测和处理分别是性能模式和经济模式。性能模式下SRPC不间断轮询RDMA CQ队列获取请求可以更快地响应请求并进行处理。而经济模式下SRPC采用RDMA事件触发与低频率轮询相结合的方式来进行请求检测处理可以降低对CPU等资源的消耗。SRPC根据负载采用智能算法自动在两种模式之间切换当请求密集时采用性能模式快速处理请求降低延迟而当负载较低时则转入经济模式降低CPU等资源使用降低能耗。总结RDMA的编程模式与传统TCP/IP相比有很大的不同不管是内存使用机制还是数据操作逻辑都发生了很大的变化。使用RDMA可以减少在内核协议栈处理和内存拷贝等开销从而大幅降低数据在网络上传输的延迟但实际数据访问需要经过软件栈多个模块的处理这其中可能存在数据拷贝和同步等开销当存储设备的访问延迟和网络传输延迟都达到10us级别时这些软件栈上的开销对整体性能的影响变得愈发明显。从TCP/IP网络通信切换到RDMA通信不仅仅是数据收发网络接口的简单替换而是需要进行整体的软件架构的优化设计使IO路径上各模块契合RDMA的特点整体联动才能充分发挥RDMA的优势并与NVMe SSD等高性能低延迟设备结合取得存储性能的突破。【作者介绍】火尉子华中科技大学博士研究分布式存储、大数据存储中的数据分布、性能和可靠性在国际会议和期刊上发表多篇相关论文目前主要从事分布式存储系统性能提升、网络通信优化的研发工作专注于存储性能优化、RDMA等领域2018年加入深信服科技。推荐阅读 138 张图带你 MySQL 入门如何在 Kubernetes 上配置 Jenkins这 10 行比较字符串相等的代码给我整懵了不信你也来看看200 个工具分析机器学习十年前途未卜、工程师是核心天下苦苹果久矣面对苹果税开发者揭竿而起独家揭秘抖音爆款漫画变身特效的背后技术2013年买了100万美元比特币却希望“比特币归零”这位亿万富翁公开“比特币鲸鱼”身份真香朕在看了
http://www.huolong8.cn/news/449098/

相关文章:

  • 网站制作 服务怎么做手机软件
  • 招聘做网站专业人员客户管理的常用软件有哪些
  • wordpress 整站语言容城县建设银行网站
  • 潍坊网站优化培训潜山网站建设公司哪里有
  • 网站的百度地图怎么做的汕头网站定制
  • 线上设计师网站网站建设免费按词收费
  • 网站建设公司 青岛视频推广渠道有哪些
  • 网站建设业务员提成高校资源网网站建设方案
  • 圣辉友联刘金鹏做网站保定网站设计制作
  • 网站建设如何加入字体不利用网站怎么做调查问卷
  • 切图做网站过时了吗黔东南网页制作
  • 音乐网站排名物流网站建设与管理
  • 最便宜 双网站建设做游戏 做网站
  • 网站的功能与建设方案东莞招聘信息最新招聘2021
  • 网站页面维护最新中国新闻
  • html 好的网站街区网站建设的意义
  • 网站开发公司需要那些硬件设备做网站要ftp信息吗
  • iis网站域名访问网站分析设计做的项目的过程
  • 内蒙古住房城乡建设部网站安阳做网站
  • 成都网站建设是什么做网站有哪些主题
  • 网站建设用net后缀如何斐讯n1 WordPress
  • 商城网站栏目自己建设论坛网站
  • 网站建设售后哪里有网站app制作
  • 网站做第三方登录界面wordpress英文企业网站模板
  • 网站建设方案步骤大连比较好的网站公司吗
  • 沈阳网站制作平台石家庄网站定制模板建站
  • 搜索引擎 网站地图seo成功案例分析
  • 高端企业网站建设制作福田瑞沃汽车官网
  • 中国建设银行密码重置网站推荐做那个的电影网站
  • 哪个网站推广做的好南宁网站快