欢迎光临112期刊网!
网站首页 > 论文范文 > 计算机论文 > 计算机应用 > 高性能计算机分布式内存文件系统的网络性能优化方法

高性能计算机分布式内存文件系统的网络性能优化方法

日期:2023-01-24 阅读量:0 所属栏目:计算机应用


  高性能计算应用对计算节点内存的不均衡需求导致节点之间内存利用率差异较大,为充分利用高性能计算机的内存资源,产生了基于计算节点内存构建分布式文件系统的需求。此时,基于Socket的网络通信成为制约系统性能的主要瓶颈。本文提出一种基于RDMA的数据传输机制RBP(RDMA Buffer Pool)。通过灵活配置和使用RBPMooseFS进行改进,并依托TH-1A系统上进行测试。结果表明,改进后系统客户端的顺序读写速度和服务端在顺序读写时的聚合带宽均有明显提高,单客户端顺序读、写速度最大可达原系统的2.02.6倍,单服务端在顺序读、写时的聚合带宽最大可达原系统的2.02.4倍。

 

  高性能计算应用对计算节点内存的不均衡需求导致计算节点之间内存利用率差异较大,为充分利用高性能计算机的内存资源,为缓解这一状况,产生了基于计算节点空闲内存构建分布式内存文件系统的需求。当存储介质从磁盘变为内存,系统服务端I/O性能大幅提高,基于Socket的网络通信成为制约系统性能的主要瓶颈。针对这一问题,本文提出一种基于RDMA的数据传输机制RBP,通过在读、写不同场景下灵活配置和使用RBP,大幅提高了系统的网络传输性能。

 

  1 相关工作

 

  1.1 MooseFS

 

  近年来,大数据、云计算、高性能计算蓬勃发展,分布式文件系统取得长足进步。其中,GFS(Google File System)提出的以大量不可靠的服务器为基础构建高可靠的存储系统的设计思想[1],对分布式文件系统发展具有重要意义。GFS并不开源,因此选择设计接近的开源系统MooseFS[2],其具备支持POSIX语义、易扩展、部署维护简便等特点,包括四个部件:

 

  元数据管理服务器Master,负责提供维护元数据,提供元数据服务,管理数据存储服务器等。

 

  元数据日志服务器Metalogger,负责备份Master的变化日志文件。

 

  数据存储服务器Chunkserver,在Master的调度下,为客户端提供数据传输和存储服务。

 

  客户端Client,通过FUSE[3](File system in Userspace)挂载到MooseFS系统。

 

  1.2 RDMA

 

  RDMA是一种高带宽、低延迟的网络传输控制技术,通过将可靠传输协议固化于网卡,支持绕过内核的数据零拷贝。当前,大多数高性能计算机的计算节点之间采用支持RDMA的网络互连。以TH-1A系统为例,其采用支持RDMA的自主设计的高速互联网络[4]。通过Ping Pong方式测试,计算节点之间的最小单边延迟低至1.57us。通过流水传输方式测试,单向数据传输峰值带宽高达6.34GB/s

 

  1.3 相关研究

 

  分布式存储系统的分布式特性决定了其对通信是敏感的,因而往往要求通信能够提供更高的带宽和更低的延迟。鉴于RDMA通信在带宽和延迟方面的良好特性,研究人员在如何利用RDMA通信机制改进分布式存储系统网络性能方面做了很多工作。如N.S. IslamM. W. Rahman等人为改进HDFS(Hadoop Distributed File System的写性能,在HDFS客户端增加Java适配器,以便借助UCR(Unified Communication Runtime)提供的功能使用RDMA进行通信[5]Christopher MitchellYifeng Geng等人设计了一个名为Pilaf的分布式内存键值对存储,根据键值对存储以读请求为主的特点,实现了一个基于RDMAget操作,用来处理只读的服务请求,可以获得显著的性能收益[6]。显然,在利用RDMA改进分布式存储系统网络性能时,需要考虑分布式系统的特点、部署方式、额外开销等诸多因素。

 

  2 MooseFS基于Socket的性能瓶颈

 

  MooseFS在处理一个读/写请求过程中,有2个环节涉及实际的数据操作:一是Chunkserver对本地磁盘进行I/O操作,二是ClientChunkserver之间通过Socket传输数据。当MooseFS部署在磁盘时,Chunkserver中的数据块以EXT4等本地文件系统的文件形式存储在磁盘中;当把MooseFS部署在内存时,则可以借助tmpfs等内存文件系统实现。

 

  为对比基于磁盘和内存两种形式,服务端I/O性能和系统I/O性能方面的差异,以写为例进行测试。Chunkserver使用TH-1A部署的Lustre系统作为本地文件系统。实验结果表明,相比基于磁盘的存储形式,基于内存存储可以使Chunkserver的写性能提高数倍,然而对系统整体写性能的提升非常有限。此时系统的性能受到基于Socket的数据传输性能的制约。

 

  3 优化方法

 

  3.1 基于RDMA的高速缓冲池RBP

 

  RBP的原理是预先注册一块或多块支持RDMA操作的内存区,按照系统需求将这片区域划分成不同规格的缓冲块RBB(RDMA Buffer Block)。再根据不同用途,将同样规格的RBB组织成不同的缓冲池RBP,并配合一套专用API,以RBB为单位提供高性能的数据传输服务。

 

  (1)RBP的结构设计

 

  RBB由描述区、请求区和数据区三部分组成。描述区负责提供RBB进行RDMA通信信息,包括RBB数据区所在注册内存区的端点信息、数据区偏移、大小等。请求区负责提供传输控制消息,包括Socket连接描述符、请求类型、请求数据偏移、大小等。数据区负责提供位于注册内存区的存储空间。在利用RBB进行RDMA通信时,RBB需要在通信两端成对使用。

 

  RBP,即RDMA缓冲池,RBP的基础是一个由RBB作为元素的双向链表,此外还包括RBP所包含的注册内存区数组,用于进行RBB管理的计数器,互斥量,条件变量等。

 

  (2)RBP的使用方式

 

  RBP的使用方式分为显式和隐式两种,显式使用是指使用者在RBP创建好后就分配得到全部的RBB,此后由使用者自行管理,适用于用途明确且管理简单的情形;隐式使用是指使用者在需要时从RBP分配RBB,使用完后再将RBB释放,由专门的RBP管理模块进行管理,RBB分配与释放对使用者是透明的,适于用作临时用途的情形。一次基于RBP完整的RDMA通信可以分为三个阶段:

 

  数据准备,本地节点将数据写入到分配的RBB数据区中,并向远程节点发送控制消息。

 

  数据接收,本地或远程节点根据控制信息通过RDMA操作读/RBB数据区中的数据。

 

  资源释放,本地和远程节点释放此前分配的RBB

 

  3.2 读优化

 

  (1)增加特定的读RBP

 

  Client的每个读请求都会被分配1个数据区,于是为Client增加了一个64MBReq RBP,其RBB大小等于Chunk大小,设为4MB,用于提供读请求的数据区,从而绕过临时数据缓冲区,直接利用RDMA通信从Chunkserver读取数据。但是,Req RBPRBB较大,限制了其数量,无法满足多线程下大量请求对数据区的需求。于是Client增加一个作为临时数据缓冲区的Read RBP,与Req RBP互为补充。为配合ClientRBPChunkserver增加一个作为临时数据缓冲区Read RBP。两端Read RBPRBB大小均与CB相同,设为64KB。此外,读优化中的RBP都是隐式使用,因此两端都需要RBP管理模块。

 

  (2)引入连续读流水线

 

  RBPRBB的分配和释放非常灵活,完全可以利用一个RBB准备数据,另一个RBBClient提供数据,因此,在Chunkserver的读服务线程中对采用RMDA进行连续读的情形引入了流水线。

 

  (3)设计多通道策略

 

  为了充分利用ClientReq RBPRead RBP两个RBP的性能,增加了策略控制。当读请求的接收区大小超过1MB时,首先从Req RBP分配RBB作为数据区,若分配失败则继续采用原有的方式分配内存。由于传输非连续小数据时更适合采用Socket。因此,Chunkserver在提供数据时决定采用哪种通信方式,当要传输的数据小于32KB时,采用Socket通信,其他情况,采用RDMA通信。基于以上策略,读请求的数据传输有3条数据通道。如图1(a)所示,通道①②都通过RDMA读取数据,通道Client采用Req RBP接收数据,通道Client采用Read RBP接收数据;通道通过Socket读取数据。

 

  3.3 写优化

 

  (1)增加特定的写RBP

 

  Client已存在一个用于提高写性能的Write Cache,于是增加一个显示使用的Write RBP,将Write RBPWrite Cache进行合并。为实现合并,Write RBP的大小与Write Cache设置保持一致,在初始化Write Cache时,每个CB都会绑定一个从Write RBP分配的RBB。同时,Write RBP初始化后由Write Cache进行管理。

 

  为配合Client增加的Write RBPChunkserver增加一个Write RBP作为临时数据缓冲区,其RBB大小等于CB大小。ChunkserverWrite RBPRead RBP均由RBP管理模块进行管理。

 

  (2)设计多通道策略

 

  出于和读相同的考虑,写同样支持RDMASocket两种通信方式。不同的是,由Client端在将CB写入ChunkServer前决定采用哪种通信方式。因此,写请求的数据传输会存在2条数据通道,如图1(b)所示,通道(1)通过RDMA写入数据,通道(2)通过Socket写入数据。

 

  4 性能评测

 

  (1)测试环境

 

  硬件环境:TH-1A系统,6个计算节点,1个作为Master4个作为Client1个大内存节点作为Chunkserver

 

  软件版本:MooseFS3.0.73IOR2.10.1

 

  测试方法:测试文件大小为2GB,块大小从16KB4MB不等,采用直接IO模式进行顺序读、写测试。

 

  (2)测试结果与分析

 

  客户端对比测试在1Client下进行,分别采用1248个进程进行并行读写,以测试单个客户端的整体性能。测试结果如图2所示,在相同文件块大小和相同进程数时,改进后系统的顺序读写速度全面优于原系统。读速度最大可达到原系统的2.02;写速度最大可达到原系统的2.63倍。此外,当原系统进程数从4个增加到8个时,已无明显提升,说明接近基于Socket通信下的性能上限。但对于改进后系统,读块大小超过64KB的文件和写块大小超过512KB的文件,速度依然随进程数增加而稳定提高。

 

  服务端对比测试在1Chunkserver下进行,采用4Client,每个Client采用单进程进行并发读写,以测试单个服务端在顺序读写时提供的聚合带宽,测试结果如图3所示。改进后系统的单个服务端在顺序读时,向4Client提供的带宽最大可达到原系统的2.04;顺序写时的带宽最大可以达到原系统的2.35倍。而且顺序写时的带宽最大值为4.42GB/s,占到计算节点之间RDMA通信最大单向带宽的接近70%

 

  5 结束语

 

  本文提出一种基于RDMA的数据传输机制RBP,在MooseFS原有控制流程的基础上,采用多种切实有效的设计,使其在RDMA网络下的数据传输性能得到大幅提升,但对小数据和多进程的支持还存在改进空间。下一步考虑结合数据预取、写合并、最小匹配等技术,使RBP具有更全面的性能表现和更广泛的应用前景。

 

  作者简介

 

  武春佳(1988-), 男, 黑龙江宾县人, 目前于国防科学技术大学攻读硕士学位, 主要研究领域为分布式文件系统、高性能存储系统。

本文链接:http://www.qk112.com/lwfw/jsjlw/jisuanjiyingyong/240912.html

论文中心更多

发表指导
期刊知识
职称指导
论文百科
写作指导
论文指导
论文格式 论文题目 论文开题 参考文献 论文致谢 论文前言
教育论文
美术教育 小学教育 学前教育 高等教育 职业教育 体育教育 英语教育 数学教育 初等教育 音乐教育 幼儿园教育 中教教育 教育理论 教育管理 中等教育 教育教学 成人教育 艺术教育 影视教育 特殊教育 心理学教育 师范教育 语文教育 研究生论文 化学教育 图书馆论文 文教资料 其他教育
医学论文
医学护理 医学检验 药学论文 畜牧兽医 中医学 临床医学 外科学 内科学 生物制药 基础医学 预防卫生 肿瘤论文 儿科学论文 妇产科 遗传学 其他医学
经济论文
国际贸易 市场营销 财政金融 农业经济 工业经济 财务审计 产业经济 交通运输 房地产经济 微观经济学 政治经济学 宏观经济学 西方经济学 其他经济 发展战略论文 国际经济 行业经济 证券投资论文 保险经济论文
法学论文
民法 国际法 刑法 行政法 经济法 宪法 司法制度 法学理论 其他法学
计算机论文
计算机网络 软件技术 计算机应用 信息安全 信息管理 智能科技 应用电子技术 通讯论文
会计论文
预算会计 财务会计 成本会计 会计电算化 管理会计 国际会计 会计理论 会计控制 审计会计
文学论文
中国哲学 艺术理论 心理学 伦理学 新闻 美学 逻辑学 音乐舞蹈 喜剧表演 广告学 电视电影 哲学理论 世界哲学 文史论文 美术论文
管理论文
行政管理论文 工商管理论文 市场营销论文 企业管理论文 成本管理论文 人力资源论文 项目管理论文 旅游管理论文 电子商务管理论文 公共管理论文 质量管理论文 物流管理论文 经济管理论文 财务管理论文 管理学论文 秘书文秘 档案管理
社科论文
三农问题 环境保护 伦理道德 城镇建设 人口生育 资本主义 科技论文 社会论文 工程论文 环境科学