




已阅读5页,还剩54页未读, 继续免费阅读
(计算机系统结构专业论文)基于ipv6的消息传递中间件的设计与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
华 中 科 技 大 学 硕 士 学 位 论 文 i 摘 要 下一代互联网的标准网络层协议采用 ipv6 已成定局, 基于 ip 网络的存储集群是 构造高性价比海量存储系统的基本手段。随着 ipv6 的发展与推广,研究基于 ipv6 的存储集群能推动网络存储技术的发展和应用。一些存储集群的数据传输基于消息 传递协议, 并且支持 ipv6 的消息传递中间件是构建 ipv6 环境下的存储集群的重要条 件,因此研究基于 ipv6 的消息传递中间件具有重要价值。 设计了基于 ipv6 的消息传递中间件总体架构,该消息传递中间件支持 ipv4 和 ipv6,用传输控制协议(tcp)传输数据。描述了消息模块、网络抽象层等关键模块的 结构和工作流程,还使用聚合 i/o 技术设计了支持双栈的服务进程。考虑到大规模集 群中节点出错几率比较高的问题,还设计了超时重传机制和自动连接技术相结合的 容错机制。按照消息传递中间件的设计方案,在 linux环境下实现了 ptlsix。 ptlsix以内核模块的方式实现,采用了零拷贝、程序旁路等技术。重点分析了内 核态网络编程、地址结构、异步传输等难点问题,在分析 linux 网络子系统的基础 上探索出内核态下的 ipv6 网络编程技术,设计出兼容 ipv4 和 ipv6 的地址结构,实 现了多 cpu 系统中负载均衡的异步数据传输机制。 基于ptlsix, 结合lustre实现了支持ipv6的分布式文件系统lustrev6, 用lustrev6 构建了 ipv4 和 ipv6 融合的存储集群。测试了 ptlsix 的功能和性能;测试结果表明, ptlsix 实现了 ipv4、ipv6 和两者融合环境下的数据传输功能,具有较强的稳定性和 良好的性能。 关键词:下一代互联网;存储集群;消息传递协议;中间件 该项研究受国家重点基础研究“973”计划(2004cb318203)和下一代互联网示范工程 cngi“面向下一代互联 网的智能网络存储系统”(分项 cngi- 04- 5- 1d)资助。 华 中 科 技 大 学 硕 士 学 位 论 文 ii abstract ipv6 is acknowledged as the protocol of the next generation internet (ngi), and storage cluster based on ip is an important technology that constructs the storage system of high performance with low cost. with the development of ipv6, the research on the storage cluster over ipv6 is essential to the development and application of network storage technology. the message passing protocol has been used to transfer data in storage cluster. the message passing middleware over ipv6 is indispensable for the construction of storage cluster in ipv6 environment. therefore, the research on the message passing middleware based on ipv6 is significant. the architecture of the message passing middleware over ipv6 is designed. this middleware supports ipv4 and ipv6, and transfer the message by tcp. the architecture and working mechanisms of the key modules is also designed, such as message module, network abstract layer and service process, and the process of design is expatiated on in detail. considering the high probability of breakdown which may occur among the nodes of the large scale luster, the fault- tolerant mechanism which comprises transmission mechanism overtime and automatic connection mechanism is designed. according to the design plan, ptlsix is implemented in linux. ptlsix is implemented as the kernel modules in linux, several technologies such as zero copy, application bypass are adopted. the analyses are mainly focused on network programming in kernel mode, the structure of the address, the asynchronous transmission, etc. after analyzing the linux network system, the technology of network programming on ipv6 in kernel mode is studied, the structure that is compatible with dual stack is the research is supported by national basic research program “973” program (2004cb318203) and cngi “ intelligent storage system of wan” (cngi- 04- 5- 1d). 华 中 科 技 大 学 硕 士 学 位 论 文 iii designed, and the asynchronous transmission mechanism of load balancing is implemented in multi- cpu environment. the distributed file system based on ptlsix and lustre which supports ipv6 is implemented, the storage cluster over ipv4 and ipv6 is also constructed. the test of ptlsix is conducted base on lusrev6. the result show that the function of ptlsix is implemented, and that the performance of ptlsix is almost the same as portals. key words: next generation internet; storage cluster; message passing protocol; middleware 独创性声明 本人声明所呈交的学位论文是我个人在导师指导下进行的研究工作及取得的研 究成果。尽我所知,除文中已经标明引用的内容外,本论文不包含任何其他个人或 集体已经发表或撰写过的研究成果。对本文的研究做出贡献的个人和集体,均已在 文中以明确方式标明。本人完全意识到,本声明的法律结果由本人承担。 学位论文作者签名: 日期: 年 月 日 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,即:学校有权 保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。 本人授权华中科技大学可以将本学位论文的全部或部分内容编入有关数据库进行检 索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。 保密 ,在_年解密后适用本授权书。 不保密。 (请在以上方框内打“” ) 学位论文作者签名: 指导教师签名: 日期: 年 月 日 日期: 年 月 日 本论文属于 华 中 科 技 大 学 硕 士 学 位 论 文 1 1 绪 论 1.1 课题背景 1.1.1 课题来源 本课题来源于:国家重点基础研究发展计划(973 计划)资助项目 “下一 代互联网信息存储的组织模式和核心技术研究”的子课题“海量数据网络存储系统 的研究” (课题编号:2004cb318203)和 cngi 示范工程 面向下一代互联网的 智能网络存储系统研究与产业化(项目编号:分项 cngi- 04- 5- 1d) 。 1.1.2 课题的目的和意义 目前,以 ipv61,2技术为主要特征的下一代互联网(next generation internet, ngi)3,4比当前最为流行的以 ipv4 协议为基础的互联网更大、更快、更安全、更及时 和更方便5。网络的迅速发展给人们提供了丰富的资源和机遇,一方面,互联网络技 术大大降低了传统的信息传输成本;另一方面,随着网络传输宽带的提高和节点处 理能力的增强,各种多媒体业务在互联网上的应用也在不断丰富。在下一代互联网 的各种业务当中,多媒体业务将占有相当大的比重,它们将成为主要的带宽占有者。 典型的多媒体应用系统包括:流媒体直播、视频点播、视频会议等,它们在远程教 育、数字娱乐、计算机协同工作等方面都具有巨大的应用前景。 网络和多媒体应用使得数字信息呈现爆炸式的增长趋势,因而对存储的需求越 来越大。google、网易等大型网站统计发现,其每年的数据增量都在 1pb 以上5。 随着存储需求的增大,海量存储系统应用范围越来越广。存储集群是构建海量存储 系统的重要技术,存储系统容量可达 pb 级。基于存储集群的分布式文件系统主要有 gpfs(general parallel file system)6, pfs (parallel file system), ppfs(portable parallel file system),pvfs(parallel virtual file system)7,activescale8 ,lustre9等。 gpfs 是 ibm 为 linux 集群系统设计的并行共享磁盘文件系统,由 tiger shark 多媒体文件系统发展而来。pvfs 是 clemson大学的一个 linux 操作系统下的开放 华 中 科 技 大 学 硕 士 学 位 论 文 2 源码的并行虚拟文件系统。activescale 是一个基于对象存储(object- based storage) 的 linux 分布式集群文件系统,它是 panasas 公司存储集群的核心部分。lustre 文 件系统采用基于对象存储技术,采用基于意图的分布式锁管理机制,以及元数据 同存储数据相分离的方式,融合了传统分布式文件系统的特色和传统共享存储 集群文件系统的设计思想, 形成一个可靠的、 和网络无关的数据存储以及恢复方案。 但是,现有的存储集群还不支持 ipv6,随着 ipv6 的发展与推广,必须研究 ipv6 环境下的存储集群。一些存储集群的数据传输是基于消息传递协议10的,支持 ipv6 的消息传递中间件是构建 ipv6 环境下存储集群的重要条件。因此,研究基于 ipv6 的消息传递中间件具有重大意义。 1.2 国内外研究概况 1.2.1 ipv6 技术及过渡策略 随着网络规模和应用范围的扩大,ipv4 因其地址空间狭小、地址分配效率不高、 安全性没有保障等缺点已渐渐显得力不从心。而新一代网际协议 ipv6 具有 128 位超 大地址空间、分级地址模式、服务质量保证、安全性强等诸多优点,已成为下一代 互联网的主要标志11。同 ipv4 相比较,ipv6 在地址容量、安全性、网络管理、移动 性及服务质量等方面有明显的改进,主要有以下几点: 版本 4- bit业务流类型8- bit流标签 20- bit 净荷长度 16- bit下一报头8- bit跳数上限8- bit 源ipv6地址 128- bit 目的ipv6地址128- bit 图 1.1 ipv6 协议的报头结构 (1) 简化报头结构 ipv6报头将ipv4报头中不常用的域, 放入了可选项。 ipv6的报头结构如图1.112,13 华 中 科 技 大 学 硕 士 学 位 论 文 3 所示。ipv6 报头中只有 6 个域和 2 个地址空间,与变长的 ipv4 报头相比,处理简单, 消耗内存少。ipv6 中所有的扩展功能都采用扩展报头实现,这种处理方式提高了数 据包的处理效率。原理是:大多数信息包只需要简单的处理,基本报头的信息已经 足够;在网络层需要额外信息的信息包可以把这些信息编码到扩展报头。 (2) 提供网络层的安全保证 ipv6 把 ipsec 作为必备协议,解决了网络层端到端的数据传输安全问题。ipsec 可以为 ipv6 网络环境下的网络层数据传输提供各种安全服务。通信双方为实现通信 保护,必须维护所需的安全策略和安全联盟。安全参数的协商与获取可以通过手工 方式进行,也可以采用密钥交换协议自动实现。任何第三方如果没有关于此次通信 的安全参数,不可能伪造或偷窥通信数据。网络基础设施的完善,可以保证安全参 数的可靠协商,进而最大程度地保证网络层的通信安全。 (3) 提供更高的服务质量保证 随着 ip 网上多媒体业务的增加,如 ip 电话、视频点播(vod)、电视会议等实时 应用,对传输延时和延时抖动均有严格的要求。ipv6 报头包含一个 8 位的业务流类 别(traffic class)和一个 20 位的流标签(flow label)。目的是允许发送业务流的源节点 和转发业务流的路由器在数据包上加上标记,进行默认处理之外的不同处理。一般 来说,在所选择的链路上可以根据开销、带宽、延时或其它特性对数据包进行特殊 的处理。 ipv6 是下一代互联网的基础和灵魂,它将为互联网换上一个简捷、高效的引擎, 不仅可以解决 ipv4 的地址短缺问题,而且可以使互联网摆脱日益复杂、难以管理和 控制的局面,从而使互联网变得更加稳定、可靠、高效和安全。但是由 ipv4 向 ipv6 过渡需要一个相当长的时间才能完成,如何渐进的、无伤害地由基于 ipv4 的网络过 渡到基于 ipv6 的网络,同时尽可能减少过渡成本是我们当前面临的主要问题。ietf 成立了专门工作组 ngtrans,来研究从 ipv4 向 ipv6 的过渡问题。总体讲,过渡可 以划分为三个不同的阶段: (1) 前期:网络的主体是 ipv4 框架,存在若干 ipv6 小子网; (2) 中期:网络结构是 ipv4 与 ipv6 并存,并且相互交错; 华 中 科 技 大 学 硕 士 学 位 论 文 4 (3) 后期:网络的主体是 ipv6 框架,存在部分的 ipv4 小子网。 针对这个问题已经提出了很多方案,有些方案已经相当成熟并形成了 rfc,有 些还只是草案。这些解决方案可以归结为四种技术:隧道技术(tunnel,rfc4213)、 转换器(translator,rfc2765)、应用层网关(application layer gateway,草案)和双协 议栈(dual stack,rfc4213)14- 16。 (1)隧道技术 隧道技术是以 ipv4 协议为载体建立的 ipv6 通信机制,应用对象为 ipv6 与 ipv6 间的互通,是过渡初期最容易采用的技术。根据封装、解封装操作发生位置的不同, 隧道可以分为四种:路由器到路由器、主机到路由器、主机到主机和路由器到主机。 针对特定的网络情况、某些特定网络通讯的问题,基于隧道的基本技术派生出了多 种方案,如手工配置隧道(configured tunnel,rfc2893)、自动配置的隧道、隧道代 理、6to4(rfc3056) 、6over 4(rfc2529)等。 隧道技术提供了一种以现有 ipv4 路由体系来传递 ipv6 数据的方法,将 ipv6 包 作为无结构意义的数据封装在 ipv4 包中,在 ipv4 网络中传输。其优点是只要求在隧 道的入口和出口处进行修改,对其它部分没有要求,非常容易实现。缺点是不能实 现 ipv4 节点与 ipv6 节点间的直接通信。 (2)转换器技术 转换器技术是在 ipv6 网络边缘增加新的网络设备协议转换器,它是用来在 ipv4 和 ipv6 网络之间转换 ip 报头的地址,同时根据协议不同,对分组做相应的语 义翻译,从而使纯 ipv4 和纯 ipv6 主机之间能够透明通信的一种技术。转换器技术曾 出现过多达五种的方案, 其中影响较大的有: 无状态ip/icmp转换算法(siit : stateless ip/icmp translation algorithm, rfc2765)和协议转换技术(nat- pt: network address translation - protocol translation, rfc2766)。 转换器技术最大的优点是 ipv6 和 ipv4 节点不需要升级改造, ipv4 协议不加 改动就能与 ipv6 协议互通,解决了备用全局 ipv4 地址池中分配地址不足的问题。但 其缺点也很明显,ipv4 节点访问 ipv6 节点的实现方法比较复杂,网络设备进行地 址转换和协议转换处理开销较大,并且不能在要求高安全性的环境中应用。 华 中 科 技 大 学 硕 士 学 位 论 文 5 (3) 应用层网关 应用层网关(alg:application layer gate)技术在 ipv4 中已广泛应用,比较有代 表性的是 http 的代理。alg 是应用层的网关这种方法需要有专门的代理服务器, 针对不同的应用要设置不同的代理,同时,还需要客户端应用也在不同程度上支持 代理,灵活性很差。 (4) 双栈技术 双协议栈(dual stack)又称双 ip 层(dual ip layer)17,是一种在主机或路由器(节 点)中提供ipv4 和ipv6 两种协议支持的技术, 适宜过渡后期采用。 同时有ipv4和ipv6 两个协议栈的 ipv6/ipv4 节点,可以收发 ipv4 和 ipv6 两种数据报,与 ipv4 节点通讯 时使用 ipv4 协议,与 ipv6 协议通讯时使用 ipv6 协议。 采用双协议栈技术的优点是互通性好,易于理解。缺点是 ipv6/ipv4 节点都需要 使用一个内嵌 ipv4 地址的 ipv6 地址;另外使用双栈需要双路由基础设施,增加了网 络复杂度。 对比四种过渡技术, 隧道和转换器这两种过渡技术在传输过程中增加了额外的封 装、转换,会增大数据传输延迟;应用层网关灵活性差,可应用范围过窄。并且隧 道技术、转换器和应用层网关三种技术仅适用于过渡前期和中期;在过渡后期和纯 ipv6 环境下适用的技术仅有双协议栈技术。ipv6 环境下的消息传递中间件要提供高 带宽、低延迟的数据传输服务,所以设计过程中采用了双协议栈技术。 1.2.2 消息传递协议的发展概况 消息传递(message passing)是并行计算机,特别是有分布式内存的并行计算中广 泛应用的一种数据传输协议。起初,许多企业、研究单位致力于研究、开发消息传 递系统,如 intel的 nx/2、p4、parmacs 等。其中有些消息传递系统取得很大的成 就,展现了消息传递系统的高效、便捷。这些系统在语义上大体相同,在语法、精 确的语义上却有许多不同。这给程序移植设置了障碍,不利于消息传递协议的推广 和使用。为方便消息传递协议的用户在不同计算机上高效、快速实现消息传递机制, 制定了消息传递接口(message passing interface, mpi)标准。 华 中 科 技 大 学 硕 士 学 位 论 文 6 制定 mpi 标准时,并行计算机厂家、大学研究员、国家实验室和工业界都参与 了标准化工作,借鉴了当时已有的多个消息传递系统,如 nx/2、p4 和 parmacs, 以及 zipcode,pvm,picl等。制定 mpi 标准的目标是定义一个广泛应用的标准, 不仅期望有并行计算机下的高性能实现,还有 unix 环境下的 mpi 实现,为工作站集 群和工作站的异构网络提供便利。要达到的目标主要有以下几点: (1) 设计出与应用程序地接口; (2) 要考虑到异构环境中的实现方案; (3) 提供可靠通讯接口即不需要用户处理通讯错误,由消息传递系统处理; (4) 可移植性好,接口可在不同厂家平台上实现,并且不需要大的改动; (5) 接口语义独立于编程语言; (6) 接口是线程安全的。 标准化工作从具有分布式内存的环境开始,在 1992 年 11 月发布最初的草案即 mpi- 1,于 1993 年 2 月发布修正版本。mpi- 1 主要集中在点对点传输,还不包括组 通讯过程(collective communication routines),也不是基于安全线程(thread- safe)。 从 1995 年 3 月开始,mpi 论坛开始考虑 mpi- 1 的修正和扩展,并于 1995 年 6 月制定了 mpi- 1.1。之后,工作主要集中在以下五个方面: (1) 对 mpi- 1.1 的修正和详细阐述; (2) 对 mpi- 1.1 的不涉及功能类型的添加,如新的数据类型、语言互操作性等; (3) 全新的功能类型,如动态进程,单方传输,并行 i/o 等; (4) fortran 90 和 c+语言的接口定义; (5) 讨论可能使用 mpi 的领域,如共享内存机器上零拷贝、实时标准等。 这五个方面的工作成果是 mpi- 1.2 和 mpi- 2 的主要内容18。mpi- 1.2 和 mpi- 2 都是对 mpi- 1 的扩展。其中 mpi- 1.2 是 mpi- 1.1 的修正和详细阐述,是对 mpi- 1.1 的 功能扩展。在 mpi- 1.2 和 mpi- 2 制定过程中,特别强调向前兼容。凡是遵从 mpi- 1 的程序都符合 mpi- 1.2 和 mpi- 2;遵从 mpi- 1.2 的程序都符合 mpi- 2。 从 mpi 草案发布以来的十多年中,mpi 已经成为开发并行软件的标准。mpi 主 要好处是方便、易用,在分布式内存的环境更加明显。而且消息传递的标准化,提 华 中 科 技 大 学 硕 士 学 位 论 文 7 供了一个的基本接口,厂家可以在某些情况下提供硬件支持,提高消息传递系统的 性能。 mpi 发布以后, 很快出现了多个实现方案, 如 lam19、 chimp- mpi, mpich20, unify21。其中mpich是应用比较广泛的 mpi 实现方案之一。mpich既是研究项目 也是软件开发工程。作为研究项目,它的目标是研究发挥硬件性能的技术;作为软 件开发工程,其目的是为用户提供一个不同平台上的免费、高性能的实现,促进 mpi 的推广。mpich的升级版 mpich2 采用了全新的设计方案,提供了更好的性能和灵 活性。 在计算机和网络硬件的性能大幅度提高后,集群计算是一种高性能的计算方案, 已经成为共识。相对低廉的可编程网卡出现后,底层消息传递(low- level)协议和编程 接口成为研究热门。相继出现了标准之外的消息传递接口,如 portals22、myrinet ex23, 这些研究的主要目标是降低传输延迟、 提高带宽以尽可能地接近硬件的极限。 portals 最初作为 sunmos 和 puma 轻量内核项目的消息传递模块,在 ncube 上 设计和实现,称为 puma24;puma 满足了大型并行计算机和超大规模集群需要,获 得了巨大的成功。puma 第二版才称为 portals 2.0 在 linux环境下实现,并提供了高 性能;由于当时的开发人员对 linux研究不深,portals 2.0 还存在多个问题,达不到 puma 在轻量内核下的性能;1999 年,sandia 发布 portals 3.0 消息传递接口,于 2003 年发布 portals 3.3 mpi。portals 3.0 是 portals mpi 在 linux环境下的实现,在大规模 集群中广泛应用。cplant 大规模集群使用了 protals3.0,有 1790 个节点,在 2001 年 世界 500 最快超级计算机中位列三十。 存储集群和计算集群的网络架构相似,对数据传输的要求几乎相同,所以消息 传递协议也被用于存储集群中的数据传输。存储集群和计算集群的数据传输特点不 同。存储集群以存储为目的,数据传输的量比计算集群要大的多;存储集群的数据 传输类型(如点对点、组通讯)没有计算集群复杂。portals 3.0 最初的设计目标就是 超大规模集群,而且提供低层次的数据块传输服务,比 mpich2 更适合存储集群。 1.3 课题主要研究工作 本文研究 ipv6 环境下的消息传递中间的架构设计与实现,从而构建支持 ipv6 华 中 科 技 大 学 硕 士 学 位 论 文 8 的存储集群平台。具体内容如下: (1) 分析实现高性能消息传递的常用技术,设计基于 ipv6 的消息传递中间件的 实现方案和系统架构; (2) 根据设计方案,在 linux下实现支持双栈的消息传递中间件 ptlsix; (3) 基于 ptlsix,结合 lustre 测试 ptlsix 的功能和性能。 华 中 科 技 大 学 硕 士 学 位 论 文 9 2 面向存储集群的消息传递实现技术分析 集群是构建海量存储系统的重要技术,构建的存储系统容量可达 pb 级,可用性 强,吞吐率高,扩展性高。分布式文件系统运行在存储集群中,向用户提供存储接 口和统一的存储空间;消息传递中间件的良好性能使它在分布式文件系统中也得到 应用。本章将详细阐述存储集群对消息传递中间件的性能要求,分析消息传递中间 件的实现技术和 portals 网络中间件。 2.1 存储集群中消息传递中间件的性能要求 中间件(middleware)是基础软件的一大类,属于可复用软件的范畴。顾名思义, 中间件处于操作系统软件与用户应用软件中间,在操作系统、网络和数据库之上, 应用软件之下,目的是为处于自己上层的应用软件提供运行与开发的环境,帮助用 户灵活、高效地开发和集成复杂的应用软件。网络中间件是中间件家族中的一个重 要成员,应用于基础通信服务和客户服务业务等各个方面。网络中间件架构在基础 网络和业务应用之间,它基于不同介质、不同电气特性和不同协议的网络、设备之 上,同时它提供了应用框架接口,为上层的业务应用提供快速部署、按需定制的手 段25。正是由于这个原因,分布式文件系统通常都使用了网络中间件以便实现对 不同性质的介质以及网络协议的支持。分布式文件系统常用的网络中间件包括 portals mpi、infiniband、via、dafs rpc protocol 等等,lustre 在权衡了多种网 络中间件后, 最终将 sandia 国家实验室开发的开源项目 portals 选为其网络中间件 原型。 为提高存储系统的性能,集群内部使用高带宽、低延迟的高性能互联网络,如 myrinet、infiniband26、quadrics27和千兆以太网。myrinet 是 myricom 公司私有的 交换式集群互连技术。infiniband 体系结构是定义全新高速交换结构子系统的业界标 准,用于连接处理器节点和 i/o 节点组成系统级网络;quadrics 发布的第二代网络 qsnetii由elan- 4网络接口卡和多连接拓扑结构的 elan- 4交换机组成, 提供335mb/s 华 中 科 技 大 学 硕 士 学 位 论 文 10 的带宽,最低达 2 s 的网络延迟。 存储集群由于其吞吐率高、扩展性高、成本低等特点,成为高性能存储系统的 首选。为提高海量存储系统的性能,必须高带宽、低延迟地传输数据,充分发挥集 群内部互联网络的性能。所以,网络中间件要能从不同的网络架构中获益,具有良 好的性能并提供统一的应用接口。存储集群对消息传递中间件中的基本要求如下: (1) 能够适应不同的网络架构; (2) 满足超大规模集群(10000 节点)的数据传输需要; (3) 充分发挥 tcp/ip 和快速网络的性能; (4) 对文件系统来说,具有完整、灵活的数据传输接口; (5) 具有良好的错误处理、恢复机制。 2.2 基于消息的网络传输技术分析 在上世纪 90 年代中期,消息传递是开发大型并行系统的主要机制;到 90 年代 末期,大部分消息传递程序支持 mpi 标准。为了开发高效、高性能的消息传递系统, 大量资金被投入到消息传递系统的研发,不断地开发出新技术。 在传统的系统架构中,网络数据包到达网卡后,经过多个协议层,最终到达应 用程序的地址空间。目前,网络带宽越来越接近内存访问速度,减少数据包的内存 拷贝、处理时间成为关键的问题;传输大量数据时,系统负载很高,降低 cpu 的负 担也可以提高消息传递系统的性能。消息传递系统中的消息发送、接收队列的处理, 也是消息传递系统性能的瓶颈。消息传递系统采取了许多新技术以解决问题,这些 技术主要分为纯软件和软硬结合两类。 2.2.1 纯软件类 纯软件是利用各种软件技术来尽可能地提高消息传递系统的性能。纯软件技术 会充分利用硬件的特性,但不设计实现特定功能的硬件。消息传递系统普遍采用零 拷贝、程序旁路、系统旁路等技术以减少数据拷贝、处理时间,避免网络带宽的损 失28。 华 中 科 技 大 学 硕 士 学 位 论 文 11 (1) 零拷贝技术 这是一种尽量减少数据包内存拷贝次数的技术。旧系统架构中,消息通过协议 层、到达应用程序的地址空间前,需要多次拷贝数据。在新系统架构中,消息到达 网卡时,网卡产生一个中断;中断服务程序控制消息与应用程序的地址空间的传输。 发送消息时,提交的数据包直接拷贝到网卡缓冲区,然后发送到网络。使用这种技 术,消息发送、接收的过程中只有网卡缓冲区和应用程序地址空间的一次数据拷贝, 不需要任何内存拷贝,所以称为零拷贝技术。 零拷贝技术去掉了内存拷贝,节省了大量时间。现有的网卡大都集成了接收 dma 和发送 dma,以加快网卡缓冲区和内存之间的数据传输速度,零拷贝的技术 优势更大。零拷贝技术的缺点是对系统内核有特殊要求,需要定制系统内核,所以 一般只在轻量级内核中使用。在分级的系统内核(如 linux)中,内核空间和用户空间 不一致,为了系统安全,内核不直接使用用户空间内的数据。在不破坏系统安全性 的前提下,即使采用零拷贝技术,内核空间和用户空间的这一次内存拷贝是必须的。 只有应用程序在内核态运行,才可以避免这个问题。设计和实现支持 ipv6 的 mpi 过程中,采用了零拷贝技术并充分考虑了内核空间和用户空间的内存拷贝问题。 (2) 程序旁路技术 程序旁路技术允许进程和消息传递系统之间直接进行消息传递,不需要进程的 参与。程序旁路技术有以下特征: 进程可以不是当前进程(持有 cpu); 不需要进程完成标志匹配(tag matching)、消息处理等消息选择操作。 采用程序旁路技术,进程只需要完成接收消息的设置,之后不再介入消息传递 过程。程序旁路技术简化了应用程序的设计,也降低了进程负担。但是,程序旁路 技术也加重了消息传递系统的负担,消息传递系统实现起来更加复杂;进程和消息 传递系统之间同步也是采用程序旁路技术需要解决的问题。 (3) 系统旁路技术 在零拷贝技术中,消息到达网卡后,网卡产生中断,由 cpu 运行中断服务程序 完成消息的传输。中断初始化至中断服务程序运行之间的延迟,对消息传递系统的 华 中 科 技 大 学 硕 士 学 位 论 文 12 性能影响很大。在低成本的可编程网卡出现后,可以编写网卡的控制软件,由网卡 处理器独立完成消息的传输,不中断 cpu 的运行。由于不需要操作系统的参与,称 为系统旁路技术。系统旁路技术将 cpu 从繁杂的消息接收过程中解放出来,大幅度 地降低了系统的负担。其缺点是系统旁路技术需要开发网卡的控制软件,对设计、 开发人员的硬件要求较高。 零拷贝、程序旁路、系统旁路三种技术不是相互独立、互相冲突的,消息传递 系统往往同时采用多种技术。这三种技术主要集中在较少内存拷贝事件和降低系统 负载。接收、发送消息时,消息匹配、插入等请求队列的操作非常耗时,在请求队 列很长时,对系统性能有比较大的影响。请求队列也由最初的线性哈希表发展到树 型哈希表,以减少请求队列的处理时间。这些方法虽然能够提高系统的性能,但都 有明显的缺陷。研究人员于是利用硬件处理消息的请求队列。 2.2.2 软硬结合类 分析 mpi 的软件实现并找出瓶颈, 设计专用硬件剔除瓶颈以优化消息传递系统, 通过软件和硬件结合的办法实现性能更高的消息传递系统。这个指导思想下的实现 技术,称为软硬结合类技术。在消息传递实现方案中,对消息传递系统的性能影响 较大的有两部分。一个是发起和结束消息传递的工作量,称为管理开销,另一个是 接收到消息或设置时对请求消息队列(posted message queue)和意外消息队列 (unexpected massage queue)的遍历,完成标志匹配的工作量。其中后者对系统性能影 响较大。相关的专用硬件成为研究人员的热门研究,这些专用硬件大多集成到网卡 上,扩充网卡的功能。下面将根据硬件功能分类,按类别分析相关的设计方案和技 术。 (1) 消息发送、接收功能类硬件 硬件全部或部分地实现了消息的发送、接收功能,硬件集成到网卡后,将消息 发送、接收放到网卡中完成,降低了 cpu 负担。这类硬件目的是减少管理开销,从 而提升系统的性能。quadrics 和 myrinet就是已经得到广泛应用的方案。quadrics 的 网卡上有一个通用处理器,能够运行一个线程处理收到的消息。 华 中 科 技 大 学 硕 士 学 位 论 文 13 研究人员还就 mpi 中的某个功能设计专用硬件,29- 31文献提出针对集通讯 (collective communication)的实现方案,通过优化协议和加快数据移动速度来提高系 统的性能。 (2) 消息匹配类硬件 概念上,mpi 系统包含两个消息队列:一个队列包含尚未完成的消息请求和与 请求匹配的消息,称为请求消息队列;另一个包含不匹配任何请求的消息,称为意 外消息队列。消息到达后,要依次遍历请求消息队列、意外消息队列,搜索匹配的 消息请求;将消息请求添加到请求消息队列前,要遍历意外消息队列,搜索匹配的 消息。当消息队列很长时,遍历操作耗时很多,对系统性能影响很大。为加快消息 队列遍历和匹配速度,有多种硬件实现方案来扩展网卡功能,如相联式表处理单元 (associative list processing unit, alpu)32和 内 存 处 理 器 (process- in- memory, pim)33。 alpu的技术原理与 ip 路由技术相似。ip 包到达路由器后,ip 路由器快速完成 最长前缀匹配,寻找合适的网络端口并快速转发。对消息传递系统说,消息到达后, alpu要完成请求消息队列的标志匹配,寻找消息的目的缓冲区。在网卡中集成两个 alpu和多个先进先出队列,并行地完成请求消息队列和意外消息队列匹配。 pim 技 术是利用多个 pim 和 sram 单元,替代传统网卡的处理器。pim 拥有超宽逻辑运算 单元,一个指令就可以完成标志匹配;还可以利用交叉存储,提高标志匹配地并行 度。多个 pim 并行工作,同时对队列地多个元素同时进行匹配,减少消息队列的匹 配时间,能大幅度降低消息处理延迟,提高系统性能。 2.3 portals 消息传递中间件 2.3.1 portals 架构 portals 3.0 是专为大规模集群所设计的网络中间件,是 portals 3.3 mpi 的实现, 采用了零拷贝、旁路操作系统和旁路应用程序等技术,支持 internet、myrinet、 infiniband 和 quadrics 等多种网络。 portals 架构如图 2.1 所示。 消息模块和网络抽象层(network abstract layer, nal) 华 中 科 技 大 学 硕 士 学 位 论 文 14 是 portals 的组成部分。消息模块向上提供 portals 3.3 消息传递接口,实现消息封装、 标志匹配、语义解析等功能,利用网络抽象层发送、接收消息。消息模块是 portals 的核心模块。 网络协议层 nic driver linux 网络核心层 消息模块 网络抽象层 socket 层 linux网络子系统 图 2.1 portals 网络中间件的架构图 网络抽象层提供发送、接收数据的接口。网络抽象层主要功能有:节点标志(nid) 到节点地址的转换,将消息发送到特定节点,接收消息并提交给消息模块处理,超 时重传、节点崩溃容错等。网络抽象层利用 nid 统一表示节点,向上提供统一的数据 传输接口,屏蔽了各种互联网络的差异,是 portals 支持多种网络的关键模块。 图 2.1 中最下面是 linux网络子系统,包括 socket层、 网络协议层、网络核心层、 以及网卡驱动(nic driver);网络协议层包括 ipv4、ipv6 等,也可能根据网络需要加 入特定的协议转换层, 如 ipoib。 实际上, linux 网络子系统不是 portals 的组成部分, 它作为图 2.1 的一部分是因为 linux网络子系统提供 portals 需要的网络协议, 而且和 ipv6 网络中间件的设计、实现密切相关。 2.3.2 portals 数据传输过程 从应用程序角度看,portals 是进程地址空间的一块区域;进程用 portals 的接口 来读写(get/put)这块内存。 对 portals 本身来说,数据传输要由发起进程(initiator)和目 标进程(target)配合完成,initiator 和 target 的通讯过程以消息形式进行。initiator 是 数据传输的发起者,target 响应数据传输,根据传输方向接收、发送数据。portals 有三个数据传输操作,分别是 put,get, swap。 put 发送数据,get 是读取数据, swap 华 中 科 技 大 学 硕 士 学 位 论 文 15 是交换数据。图 2.2、2.3、2.4 分别描述 put,get,swap 操作流程。 initiatortarget 传输数据(put) 地址解析 确认(ack) 图 2.2 put 操作流程 发送数据时,initiator 向 target 发送含有数据的 put 请求。target 解析 put 请求 中的地址信息;消息得到处理后,target 根据请求中的应答选项有选择地向 initiator 发送确认消息(ack message)。 initiatortarget 传输请求(get) 地址解析 传输数据(reply) 图 2.3 get 操作流程 读取数据时,initiator 向 target 发送 get 请求;target解析 get 请求中的地址信 息并准备所需要的数据,然后把数据封装进回复消息(reply message),发送到 initiator。 交换数据时, initiator 向 target 发送含有数据的 swap 请求,target 解析请求中的 华 中 科 技 大 学 硕 士 学 位 论 文 16 地址信息,以包含数据的回复消息应答,同时保留 swap 请求中的数据。 initiatortarget 传输数据(getput) 地址解析 传输数据(reply) 图 2.4 swap 操作流程 2.3.3 消息匹配过程分析 数据传输过程中,解析消息中的地址信息是关键的步骤。在 mpi 中,地址解析 的过程也称为消息匹配。消息匹配成功,portals 才能知道消息的来源、目的地和处 理方法。如果消息匹配失败,portals 会简单地丢弃这个消息。 在消息传递协议中,消息地址表示节点上的一块内存,包括进程 id、内存缓冲 区 id 和偏移量。进程 id 标识目标进程。内存缓冲区 id 标识唯一的内存描述符,描 述节点上作为缓冲区的内存区域和一个可选的事件队列,事件队列用于记录缓冲区 上的操作。偏移量是相对于缓冲区首地址的偏移,是存放消息的起始地址。portals 扩充 mpi 中标准的地址信息内容,添加了索引值和一组匹配值。扩充了的地址信息 用于 portals 的消息匹配,组成消息匹配项。消息地址配合节点 id,就是集群范围内 唯一的消息地址信息。图 2.5 以图形方式说明 portals 中消息匹配结构。为了方便匹 配项的管理,portals 用链表把内存描述符组织起来。 portals 提供多个消息匹配表,表之间相互独立,每个表可以用于不同服务。相对 于一个消息匹配表,使用多个消息匹配表有效地缩短了每个表的长度;进行消息匹 配时,仅在索引值指定的表中进行匹配,大幅度地缩短了
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公司每年每月团建活动方案
- 公司直播运营策划方案
- 公司节电活动方案
- 2025年药学专业技术资格考试题及答案
- 2025年医学专业考生必做试题及答案
- 2025年文化产业管理专业考试试卷及答案
- 2025年文化遗产保护技师职业资格考试试题及答案
- 2025年数字营销与品牌策略课程考试试卷及答案
- 2025年思想政治教育专业考试试题及答案
- 2025年生态文明建设与管理考试卷及答案
- 模板包清工合同协议
- 2025年安全月主题宣贯课件
- 数字经济与低空产业发展:赋能机制与治理策略
- DB11 T 640-2009 旅游咨询服务中心设置与服务规范
- 浙江省宁波市慈溪市部分校2025届数学五年级第二学期期末考试模拟试题含答案
- 命案防控讲座课件
- 《测绘基础知识》考试复习题库(含答案)
- 水厂反恐应急培训课件
- 2025年行政处罚法知识考试题库及答案(共90题)
- 石油天然气工业 完井用地层隔离阀及其相关工具 征求意见稿
- 中国移动泛终端产品白皮书(2025年版)
评论
0/150
提交评论