APP下载

高能物理事例级数据管理与传输系统的研究

2018-12-04程耀东

计算机工程与应用 2018年23期
关键词:高能物理事例站点

王 聪,徐 琪,程耀东,陈 刚

1.中国科学院 高能物理研究所,北京 100049

2.中国科学院大学,北京 100049

1 概述

人类探索世界的脚步,总是永无止境的。为了理解物质的组成和宇宙的起源,世界上开展了许多大型的高能物理和天体物理实验,包括欧洲大型强子对撞机(Large Hadron Collider,LHC)、北京正负电子对撞机(Beijing Electron-Positron Collider,BEPC)、大亚湾中微子实验、江门中微子实验(Jiangmen Underground Neutrino Observatory,JUNO)、高海拔宇宙线实验(Large High Altitude Air Shower Observatory,LHAASO)等。这些实验每年产生数十PB的数据(注:1 PB等于一百万GB),需要数以十万计最快的CPU对其进行分析处理。例如,大亚湾中微子实验的数据超过了1 PB,北京谱仪实验BESIII[1]累积了5 PB的数据,大型高海拔空气簇射观测实验LHAASO每年将产生2 PB的数据,2015年重新运行的大型强子对撞机LHC每年产生25 PB数据,正在规划中的中国环形正负电子对撞机CEPC每年产生的数据量将达到近千个PB。同时,这些数据还要提供给全世界的物理学家进行分析,需要海量数据跨地域管理、共享和快速传输。

高能物理数据处理过程包括探测器记录事例,产生原始数据,事例重建和数据分析。事例为一次粒子对撞或者一次粒子间的相互作用,其为粒子物理研究的基本对象,包含了条件参数以及相关的物理量,比如光子数、带电径迹数、电子数等,一个大型高能物理实验可以产生数十亿甚至万亿级别数量的事例。探测器记录事例,产生原始数据,以二进制格式记录探测器信号,由计算机产生模拟实验的蒙特卡罗模拟数据进行数字化。事例重建过程读出Raw/MC Raw数据,处理后产生相关物理信息,如动量、对撞顶点等。

传统高能物理数据处理以ROOT文件为基本存储和处理单位,每个ROOT文件可以包含数千至数亿个事例。这种基于文件的处理方式虽然降低了高能物理数据管理系统的开发难度,但随着实验数据的飞速增长以及新技术的出现,这种传统的数据存储和处理方式也暴露出越来越多的问题。传统的文件级管理面临的挑战为:全数据扫描,筛选时间长;基于文件的缓存效率低;基于文件的传输Overhead高。在实际的高能物理数据分析过程中,大部分的数据都是物理学家们不感兴趣的数据,而且通过一些条件即可过滤掉,如果条件设置得当,该系统能够帮助物理学家筛选掉甚至99.9%的不感兴趣的数据。这样不仅可以节省I/O资源,还能提高CPU利用率,减少数据分析耗时。提出一种面向事例的高能物理数据管理方法,重点研究海量事例特征高效索引技术,在这种方法中,将物理学家感兴趣的事例特征量抽取出来建立专门的索引,存储在NoSQL[2]数据库中。为便于物理分析处理,事例的原始数据仍然存放在ROOT文件中。最后,通过系统验证和分析表明,基于事例特征索引进行事例筛选是可行的,优化后的HBase系统可以满足事例索引的需求。

大型高能物理实验往往由国际合作单位共同贡献资源形成分布式计算系统,比如WLCG、BES Grid等。传统的计算方式是事先将数据传输到目标站点,然后再将计算任务调度过去运行。随着网络带宽的提升,全网调度计算任务,数据远程访问成为未来的发展趋势。欧洲大型强子对撞机产生海量数据便是由WLCG[3](World wide LHC Computing Grid)负责存储和处理的。在WLCG的Tier结构中,数据并不是完全复制到所有的站点中,因此计算任务会被调度到存储数据的地方。如果某个站点需要分析感兴趣的数据,需要提前进行数据订阅,将数据预先传输到指定的站点。不同于WLCG预先传输文件,面向事例的数据传输系统仅传输物理分析程序所感兴趣的事例,所需数据量大幅降低,随着网络带宽不断提升,将可以支持计算任务实时传输数据。数据传输系统由数据传输服务器和数据传输客户端两部分组成,分别运行在不同的站点。数据传输服务器负责数据的存储和对请求的响应。在服务器端应用了多进程并发处理机制,实现高效的用户请求响应。运行在远程站点的高能物理数据处理软件在做物理分析时不用考虑数据是否在本地站点,它可以通过ROOT[4]框架或者本地文件系统接口来访问所需要的事例数据。为提升数据访问性能,在数据传输客户端设置了基于事例和数据块的缓存系统。数据传输基于HTTP协议,支持分块、多流及断点续传等功能。并基于Oauth授权进行安全保障。系统测试结果表明,在网络带宽良好的环境里,带宽利用率可以达到90%左右。

设计实现了事例级高能物理实验数据的跨域访问缓存系统进行跨站点数据缓存。物理学家进行实验作业分析时,不需要将整个DST文件下载到本地。将事例请求发送至缓存服务器后,缓存服务器向远程站点发送请求,之后以事例为级别进行HTTP多流传输至本地缓存,并返回至客户端。对客户端来说,所有操作都是在缓存服务器上进行,远程站点是透明化的。缓存服务器提供了按需访问、动态调度的新型高能物理数据跨域访问模式,系统访问及传输以事例为单位,大大地减少了资源浪费,提高了作业处理效率。同时客户端数据缓存系统提供了统一数据管理、远程站点统一文件视图,为用户提供了本地化操作模式。缓存系统中设计了用户操作日志分析模块,以syslog模式抓取用户对于数据分析的记录,通过近期数据分析,实现数据预取来增强系统读性能。在整个缓存系统模块中应用了多进程并发处理机制,实现高效的用户消息处理模式和高性能的读写调度架构。系统中客户端与服务器端通信都采用了高能物理计算中通用的XROOTD架构,具有较强的普适性与通用性,更好地与高能物理实验分析作业相结合。

提高现有系统的处理效率并不是一个简单的任务,存在诸多挑战:(1)文件格式的存储方式未提供有效的属性查询功能,致使事例检索效率非常低下。当物理学家检索事例时,关心的属性只有少数几个,关心的事例也通常少于原始数据的1/100,甚至1/1 000 000。但针对文件进行检索,需要访问某一范围内的所有文件,并读取每个事例的所有属性值。大量的I/O操作都是无用的。(2)分站点存储空间不足且网络传输速度有限,这给计算任务在分站点运行提出挑战。由于分站点的规模往往远小于主站点,无法存储所有数据的完整拷贝,需要在计算时再临时复制数据到分站点。由于网络传输速度和数据量之间的矛盾,实时复制数据会造成很大的延迟以及文件系统的开销,甚至系统宕机。(3)数据格式在存储和处理上具有不一致性。数据存储的方式是文件,而数据处理的单位是事例,系统需要大量的转化操作,造成极大的开销。(4)已有系统极为复杂,新的处理方式难以兼容。高能物理领域针对每一个实验装置都会开发各自的离线数据处理软件系统,长期以来形成了独立的体系,系统不能对这些应用软件造成太大的影响。基于以上内容,该系统整体架构如图1所示,其处于高能物理数据处理软件如BOSS(BESIII Offline Software System)[5],Sniper(Software for Noncollider Physics Experiments)[6]等和存储实验数据的存储系统之间,如Lustre,Gluster等分布式文件系统。

图1 面向事例的数据管理系统架构

本文首先介绍高能物理的数据处理流程以及面向事例管理的相关工作,然后重点介绍数据传输系统的设计与实现,最后给出系统验证与分析结果,分析性能提升的原因。

2 相关背景

2.1 高能物理数据处理流程

高能物理数据处理的主要过程如图2所示。探测器产生的原始数据保存到分布式存储系统中。原始数据非常宝贵,通常要做多份备份保存,并且一般不对最终用户开放。蒙特卡洛模拟程序根据理论物理模型以及探测器的特征,模拟产生数据。事例重建程序读取原始数据或者模拟数据,进行与探测器相关的重建,产生刻度常数与重建数据。重建数据对最终用户开放,用户使用物理分析程序读取重建数据,进行相应的数据分析与挖掘,产生物理成果,包括图表、论文等。

图2 高能物理数据处理过程

从图2中可以看出,高能物理数据处理主要包括模拟计算、重建计算以及物理分析等计算类型。每种计算类型各有其特点,模拟计算需要很少的输入,主要消耗大量的CPU资源,产生大量数据。从探测器建设到运行,一直到产生物理成果,都离不开模拟计算,因此CPU需求量很大。在模拟计算中,粒子在加速器中经高速对撞后产生的信息会被传感器捕获,筛选后传给离线系统,以文件的形式保存在磁盘系统中,在磁带库中进行永久保存,并在随机读写存储系统中进行缓存,即为由事例组成的原始数据。事例重建用来处理探测器产生的原始数据与模拟计算产生的模拟数据,需要读入和写入大量数据,对I/O和CPU需求都比较大,实时性要求比较高,该步骤是物理分析的基础。事例重建即为原始数据借助对撞和取数时的参数进行的,重建后的数据保存为ROOT格式的DST文件,软件版本不同,重建过程有可能进行多次,用版本号加以区分。物理分析由最终用户,也就是物理学家发起,读取重建数据,进行数据处理和分析,这一步骤主要工作大都从海量重建数据筛选出稀有事例,对系统的I/O要求很高。物理分析会生成ROOT文件,用于绘制图表。

目前,高能物理以文件为单位进行数据管理与计算,高能物理计算系统的结构如图3所示。文件由多个事例组成。事例相互独立,多个文件可以在不同机器上处理,无需通信。即采用集群计算系统,并采用计算和存储相分离的模式,如图3所示,I/O服务器为分布式存储系统管理,如Lustre,gluster等。计算节点通过HTCondor等批处理作业系统来管理[7-8]。

图3 高能物理计算系统结构

图4 高能物理文件级管理与事例管理对比图

传统的文件级管理面临着很多问题。用户访问的Dst文件中包括众多事例,事例之间相互独立。例如,605 MB的dst文件中包含15万个事例。当用户需要访问某个事例时,系统需要将整个文件进行扫描,然后读取需要的事例[9],筛选时间长。对于用户访问度高的事例进行缓存,则需要缓存整个文件,缓存效率很低。并且进行跨域访问传输时,需要将整个文件进行传输,代价高。如图4,该系统由传统的文件级的数据管理转变为事例级的数据管理方式,可以很好地解决文件级管理在事例筛选,读取,并行处理,缓存,传输等方面的问题。

利用strace命令对于分析作业的运行过程进行跟踪分析后发现,如图5所示,横轴为运行时间,纵轴为读取文件的位置。可以看出,读取500 MB的文件,在0.2 s的时间里,文件跳读可以达到107B。结果表明,高能物理的分析作业处理过程中,对于Dst文件的跳读行为是非常严重的。经统计发现,文件只有4.6%的数据可以被读取到。因此,事例级的数据管理和事例远程透明访问与传输是非常有必要的。

图5 Dst文件读取日志分析

2.2 面向事例管理与传输的相关工作

网格技术将跨域站点的存储、计算资源共享形成一个具有巨大存储能力的分布式数据网络。网格系统具有十分庞大的规模和数据共享能力,但是也有着很大的局限性。首先网格系统中需要为实验作业预先分配计算、存储资源,使得系统资源难以充分利用。其次,系统中的数据文件需要全部传输至本地后计算分析,调度十分不灵活并且基于文件的传输中有大量无用事例,形成了大量的资源浪费。最后网格系统使用GridFTP协议进行跨域数据传输,GridFTP协议复杂需要多端口配置,而且无法穿透防火墙,运行维护代价较高[10]。

除网格计算系统外,目前高能物理计算环境中使用的跨域数据访问系统,主要有分布式EOS进行小范围站点间的数据共享,CVMFS(CERN Virtual Machine File System)进行高能物理实验软件共享。分布式EOS采用replica策略进行数据文件跨域传输,不同客户端通过IP标示,被选择与最近服务器站点进行通信,若该服务端有相应数据文件则传输至客户端,若不存在服务器从其他服务器端拉取文件后再传输至客户端。CVMFS设计目标为高能物理实验软件的跨域分发,基于FUSE将web目录以本地磁盘的方式挂载到本地,客户端只需要在第一次访问时下载必要的库,基于HTTP协议进行数据传输,它支持只读模式,在应用层设置了cache缓存加速web目录读速度。无论是分布式EOS或者网格技术[11]都有自己固定的应用场景,受到应用和设计的限制,都无法实现基于事例级的实验数据跨域高速访问。

实验发现,时延越大,文件系统的I/O性能越低,如图6,7所示。一般局域网的时延在1 ms以下,而中国到欧洲的广域网时延能达到200 ms左右,在这种情况直接使用文件系统I/O访问基本无法工作,急需研究高带宽的远程I/O访问技术。

图6 相同带宽条件下随着时延增加I/O性能快速下降

图7 I/O成为分布式文件系统的瓶颈

3 面向事例的数据管理系统设计与实现

3.1 事例特征抽取及查询条件归并

物理数据封装在ROOT等高能物理数据框架的数据对象中,预先将事例粒度的相关特征数据提取出来可以快速查找到相关的物理事例。事例特征抽取根据不同的实验,不同格式的数据文件将对物理学家有意义的特征变量进行提取,并存储在事例索引数据库中。

事例特征抽取模块根据不同的实验,物理学家的不同需求,抽取出对于物理实验数据处理有意义的特征量。如对于BESIII(北京谱仪)实验中,特征量有运行号、事例号、总径迹数、总带电径迹数、总不带电径迹数、好的光子数、好的正负带电径迹数等16个特征属性。根据用户的定义,将其存储到索引数据库中。

高能物理单个实验的事例数量可以达到百亿甚至万亿级别,事例属性几十个到几百个,其并发访问数量也非常高。根据高能物理实验的特点,该系统采用HBase集群来构建索引数据库。HBase[12]采用按字典序排序的索引结构构建主键,并在内存中进行缓存[13],则其可以提供很好的查询效率。该系统采用将事例属性名和值均存储在Rowkey中,从而可以在主键上进行二分查找。并将满足相同查询条件的事例归并到HBase的一条记录中,作为一次查询结果返回。目前eventdb中的rowkey为运行号,属性名,属性值,列组中存储的为事例文件名和事例号的集合。则用户根据rowkey中的值一次性查到事例的集合。

该模块入库过程如图8所示,一般情况下,写入HBase中的高能物理数据可被重复利用,因此这部分工作小号的时间将不被计入平台分析性能评估中。其中,EventDB主要记录事例的基本信息,如RunID,EventID,FileID,VersionID,这些主要的事例信息由物理学家进行定义,并可以利用数据库建立多维索引,根据不同的实验组建立TAGSET,提高查询性能。FileDB中记录文件逻辑名和物理名的对应关系,该数据库中的信息由扫描分布式文件系统中的DST文件产生。

图8 数据入库流程

从高能物理数据的使用者的角度看,EventDB目前主要提供了命令行接口以供使用。EventDB首先通过特征抽取和数据导入工具为原始存储于磁盘以及磁带上的事例数据建立索引,然后根据用户实际的要求提供给用户所需的事例数据。用户可以根据这些文件做物理分析。

3.2 面向事例的数据缓存

根据研究发现,物理学家感兴趣的数据会形成一定的访问模式,在一次分析实验中,只会访问到很少感兴趣的事例。这些事例分布在不同的ROOT文件中。为此该系统在服务器端引入面向事例的缓存系统,在SSD或内存中将访问次数高的事例数据缓存起来,从而减少I/O开销。通过序列化反序列化的技术,进行事例的读取,从而减少了在底层存储系统的读取开销,其架构如图9所示。

图9 数据缓存系统架构

3.3 面向事例的跨域数据访问与数据传输系统

传统的ftp文件服务器在广域网文件传输效率很低,传输层协议发展,tcp协议层目前对于文件传输广泛采取的ftp,gridftp,bit torrent等应用层。Bit torrent是架构于tcp/ip协议之上的一个P2P文件传输协议,处于TCP/IP结构的应用层。网格技术大部分为使用FTP协议需要单独配置账号。如果对权限控制敏感的系统,用户量大则导致维护工作量非常大。由于广域网大多数的路由、网关设备和防火墙都提供对HTTP这种通用文件传输协议的支持。基于http协议实现分布式文件传输系统可以提高整个架构的兼容性。

图10 跨域数据访问系统架构

在高能物理领域,每一个科学装置都会产生大量的实验数据,通常为PB级,物理学家通过分析这些数据而得出物理发现。目前,这些数据通常在专用的数据中心(称为主站点)集中存储,全世界的物理学家通过远程提交作业的方式在该站点运行计算、分析任务。如WLCG(Worldwide LHC Computing Grid)就是负责存储和处理欧洲大型强子对撞机的海量数据。WlCG采用了三级站点的网格形式,预先将数据传输到计算站点,这种传统的计算模式无法利用物理学家所在机构(称为分站点)的计算资源,造成极大浪费。随着网络带宽增高,全网调度计算任务,数据远程访问成为未来的发展趋势[14]。为了充分利用分站点的计算资源,需将实验数据传输至本地进行计算。然而,分站点通常没有充足的存储资源存放全部实验数据的完整拷贝。因此,该系统实时地将物理学家感兴趣的数据传输到分站点,定义并实现了跨域、跨站点示例数据访问接口,实现远程数据的透明访问,支持跨域的数据查询、目录列表。实现海量数据的跨地域统一视图管理。

下面就该数据访问与传输系统的设计与实现进行具体介绍。

图10为该跨域高能物理数据访问系统的整体架构。该系统不会改变原有物理分析软件的工作流程。基于XROOTD Client提供接口给物理分析软件。XROOTD Client接收到用户读取事例或文件的请求后,会向Cached发送查询请求。Cached在Metad中进行元数据的查询,如果本地存在该事例或文件,则返回相关信息给XROOTD Client,XROOTD Client在XROOTD Server中读取相关信息返回给物理软件。如果Cached查询后没有该事例或文件,则Cached向数据传输服务Transferd发起数据传输请求,从远程站点进行传输,然后将Metad进行更新,并将数据写入到Xrootd Server,通知XROOTD Client到XROOTD Server中进行数据读取。

该传输系统的架构如图11所示。

图11 数据传输系统架构

数据传输系统由数据传输服务器和数据传输客户端两部分组成,可以进行事例、文件的传输,也可以通过相关插件进行不同存储形式的数据传输。在不同的站点运行,用户在运行作业时不需要了解事例数据是否在本地站点,可以通过ROOT框架或者本地文件系统的接口来访问需要的事例数据。用户先在本地的事例缓存中进行事例的读取,如果没有相关数据,则由事例缓存服务器cached向事例传输客户端发送事例读取请求,事例缓存服务器和事例传输客户端可以在不同的机器上。事例传输客户端接收到请求后,向事例传输服务器发起请求,服务器在数据存储系统或事例缓存中将事例数据序列化后传输到客户端。客户端在进行反序列化后以对象的方式返回给处理软件。当然,该传输系统还支持文件的分块传输,可以根据用户的需求将完整的dst文件进行传输,也可以根据用户请求的文件位置和大小进行部分文件传输。

图12 数据传输系统核心组件

该传输系统基于Tornado进行数据传输服务器和数据传输客户端的实现。Tornado是FriendFeed使用的可扩展的非阻塞式web服务器及其相关工具的开源版本,是属于facebook的一个开源项目。Tornado和现在的主流Web服务器框架有着明显的区别:它是非阻塞式服务器,而且速度相当快。得利于其非阻塞的方式和对epoll的运用,Tornado每秒可以处理数以千计的连接。在数据传输服务器端使用nginx提供负载均衡、反向代理服务,可以部署多个Tornado实例响应客户端的请求,通过Supervisor对服务进程进行监控管理。针对该传输系统,对tornado的架构进行改良,框架如图12所示。最底层的EVENT层处理IO事件,TCP层实现了TCP服务器,负责数据传输,HTTP/HTTPS层基于HTTP协议实现了HTTP服务器和客户端,最上层为WEB框架,包含了处理器、模板、数据库连接、认证、本地化等等WEB框架需要具备的功能。数据传输服务器和客户端主要针对RequestHandler进行设计实现,RequestHandler提供了一个针对http请求处理的基类封装,主要有以下功能:

(1)提供了GET/HEAD/POST/DELETE/PATCH/PUT/OPTIONS等方法的功能接口,平台实现时RequestHandler的子类重写这些方法以支持不同需求的请求处理,例如对root文件的组装,读取。

(2)提供对http请求的处理方法,包括对headers等的处理。

(3)提供对请求响应的一些列功能,包括redirect,write,将数据写入输出缓冲区等。

(4)其他的一些辅助功能,如结束请求/响应,刷新输出缓冲区,对用户授权相关处理等。

该系统不仅可以通过和事例数据库,事例缓存接口对接进行事例的传输,还可以进行文件的上传和下载。在文件上传时,客户端指定上传地址,文件名等信息,服务器端进行权限的判断,请求的响应,数据写入并将服务器端文件的元数据信息进行更新并返回。数据上传部分基于Asynchronous http client实现非阻塞的客户端请求,并运用了tornadostreamform的相关方法进行数据流的处理。数据下载时,客户端发送数据下载请求,指定服务器地址端口号,文件名,下载位置,uid,gid,position,下载文件大小等信息。服务器端收到请求后进行权限的判断,请求的响应,并进行数据的发送。在数据上传和下载时,均根据网络带宽和请求的数据量进行数据流的划分,多流是基于Python的threading包在客户端实现的。

4 数据传输系统验证与分析

4.1 实验条件

本文在现有环境里进行了数据传输效率的测试。测试环境为:服务器端在中国科学院高能物理研究所,节点为8*Intel®Xeon®CPU E5-2407 v2@2.40 GHz。supervisor启动两个进程进行请求的响应,启动nginx进行反向代理。客户端在成都情报中心,节点为2*QEMU Virtual CPU version 2.4.1。

4.2 实验结果分析

数据经哈希MD5校验,均保证其正确性。

随着网络带宽的提升,全网调度计算任务,数据远程访问成为未来的发展趋势。一般局域网的时延在1 ms以下,而中国到欧洲的广域网实验能达到200 ms左右。通过tc命令对网络时延进行设定,如图13~15所示,分别加了1 ms到100 ms的网络时延。并对EOS,lustre,transferd进行了性能测试,Lustre,eos的测试在万兆以太网下进行,读写块大小设置为1 MB,测试大小为700 MB的Dst物理分析文件。对transferd的测试环境通过iperf测得为950 Mbit/s,文件大小同样为700 MB。测试结果如图13~15。

通过对比发现,随着网络延迟的增加,分布式文件系统性能下降特别明显,基本是无法正常工作的。但是transferd随延迟增加,性能下降程度是可以接受的。

Transferd的读取性能随线程数的影响测试结果如图16。

图13 Lustre读取性能随时延的影响

图14 EOS读取性能随时延的影响

图15 Transferd读取性能随时延的影响

图16 读取性能与随线程的影响

千兆网环境下,读取800 MB的Dst物理分析数据,横轴为线程数,纵轴为执行时间。可以看出,数据读写带宽可以达到70 MB/s左右。对于多流性能的优化会进一步的研究。该性能和EOS远程文件系统读取4 MB/s,写入15 MB/s的性能相比,有很大的提升。

5 结束语

基于目前高能物理海量数据带来的挑战,本文提出了新的数据管理方式。并在该数据管理方式上,详细介绍了关于数据传输部分的实现与测试结果。提出了文件和NoSQL数据库结合管理的事例管理架构,作为一种新型的高能物理事例管理系统架构,有效地解决了传统基于文件处理的资源浪费和效率低下问题。同时缓存服务器将远程站点的数据以本地化的模式提供给用户,提供了便捷高效的数据处理模式。下一步将针对更多的高能物理实验和更多的事例特征变量,展开大规模的研究和测试。实现数据传输服务器和服务器端事例数据库的结合,实现事例的序列化传输。对远程数据传输和缓存系统进行性能优化,提高系统性能。整个系统为高能物理跨域计算提供了新型的架构,在高能物理计算环境中具有较好的应用发展前景。

猜你喜欢

高能物理事例站点
盛宴已经结束
传神写照,意味深长——写人要关注具体事例和细节
作文想好,“事例”不能少
基于Web站点的SQL注入分析与防范
2017~2018年冬季西北地区某站点流感流行特征分析
中国十大宪法事例(2017)
首届欧洲自行车共享站点协商会召开
怕被人认出
中国十大宪法事例(2012)
记录