首页 基于WEB服务的远程文件I O

基于WEB服务的远程文件I O

举报
开通vip

基于WEB服务的远程文件I O基于WEB服务的远程文件I O 基于WEB服务的远程文件I O WSIO-基于WEB服务的远程文件I/O WSIO-基于WEB服务的远程文件I/O 团队名称IHEPer 作者刘爱贵 单位中科院高能物理研究所计算中心 摘要 WSIO是一个基于Web Service技术实现的、与POSIX标准兼容的文件I/O实现了存储系统的远程文件I/O功能主要解决异构环境下存储系统之间的互操作问题方便存储资源的有效整合和扩展。 WSIO在GNU LINUX下基于gSOAP、C/C实现它由服务器、客户端工具、文件系统、用户开发库等几...

基于WEB服务的远程文件I O
基于WEB服务的远程文件I O 基于WEB服务的远程文件I O WSIO-基于WEB服务的远程文件I/O WSIO-基于WEB服务的远程文件I/O 团队名称IHEPer 作者刘爱贵 单位中科院高能物理研究所计算中心 摘要 WSIO是一个基于Web Service技术实现的、与POSIX标准兼容的文件I/O实现了存储系统的远程文件I/O功能主要解决异构环境下存储系统之间的互操作问题方便存储资源的有效整合和扩展。 WSIO在GNU LINUX下基于gSOAP、C/C实现它由服务器、客户端工具、文件系统、用户开发库等几个部分组成支持GLOBUS GSI以及访问的授权和认证实现了通用文件访问接口GFAIGeneral File Access Interface 来对不同存储系统的支持和扩展。它不仅可以进行文件的远程复制而且实现了类似本地文件系统的API可以远程打开文件进行读写和定位操作。另外基于FUSEFile System in User Space实现了WSIO文件系统提供本地文件系统接口。 1.背景和应用领域 计算和存储是计算机系统的两在基本任务。随着网络技术的不断发展基于局域网的存储系统已经不能很满足计算对存储的需求而将存储与计算分离的广域网存储系统目前仍不是非常成熟。由于广域网的复杂性广域网存储将面临着很多问题有待解决主要表现在存储系统的数据互操作、资源整合、可扩展性、性能和安全等方面。 传统的分布式文件系统如AFS、NFS、DFS、CIFS等都是基于局域网的分布式文件服务系统即集群文件系统。由于网络延迟远高于局域网频繁的通信使得这些文件共享 协议 离婚协议模板下载合伙人协议 下载渠道分销协议免费下载敬业协议下载授课协议下载 都无法应付高延迟的广域网环境。目前许多研究组织已经开发出了支持在广域网上的文件访问 方法 快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载 其中包括GLOBUS项目的GridFTP和GASSCERN CASTOR项 ERIMI和德国DESY实验室开发的dCache系统的dcap访问目的RFIO访问协议美国F 协议。 GridFTP传输性能很高在网格中使用广泛但它只是一种文件传输协议没有提供与本地文件系统一致的访问接口和对象模型。GASS、RFIO、dcap虽然提供了类似POSIX的文件访问接口但都存在一些问题。GASS简? 耸 菀恢滦晕侍庵恢С止阌蛲 肪诚碌某,鸌/O模式只读、共享写、只追加、单用户读写。RFIO和dcap具有较强的文件共享语义可用于广域网环境下的文件访问但性能问题导致不能得到实际应用。 更为重要的是这些协议相互不兼容在异构性包括硬件和软件不断加剧的广域网环境下存储资源的整合、不同系统间的互操作、存储系统的可扩展性以及符合用户使用习惯的访问方式都成了新的难题。另外这些协议都需要使用特定系统端口但出于安全的考虑局域网防火墙可能关闭这些端口从而无法从远程进行访问。 WSIO充分利用了WEB服务的优点提出一种新的 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 来改进当前广域网文件I/O存在的上述问题可以应用于广域网环境下一些存储需求场景。 异构存储系统之间的数据互操作 WEB服务利用XML、SOAP、WSDL、UDDI等标准提供了一个松散耦合的分布式计算环境。WSIO以不改动原存储系统为原则利用WEB服务实现了文件系统访问接口的RPC服务使得用户可以方便地访问远程的存储资源在不同存储系统之间实现数据互操作。 内部存储资源的外部访问 WEB服务中使用SOAP作为消息传递的协议。SOAP采用HTTP等协议作为底层通信协议可以穿越企业防火墙在广域网上进行通信交互。因此WSIO突破了很多存储系统因为安全考虑不允许外部访问的限制可以为这些存储系统提供一个安全的外部数据访问方法。 存储资源的整合与统一访问 WSIO实现了异构存储系统之间的数据互操作可以无缝地对广域网上的存储资源进行整合消除信息孤岛。WSIO屏蔽了不同存储系统访问协议的细节和差别提供了统一的、与POSIX标准兼容的文件系统接口大大降低对用户的要求方便用户对各种存储系统的访问。 细粒度的文件I/O访问操作 WSIO实现了文件I/O的RPC功能不仅可 以进行文件的远程拷贝而且实现了类似本地文件系统的API可以远程对文件进行OPEN、SEEK、READ、WRITE等细粒度的I/O访问操作。这可以很好满足文件的部分传输、用户I/O应用编程等方面的需求。 2.作品特点和 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 思路 广域网中存在许多存储系统包括分布式文件系统、海量存储系统不同的系统是为了满足不同的存储需求而设计的。由于采用不同的软件及数据访问协议这些存储系统互不兼容。这显然是低效的用户使用也很不方便。实际应用中用户和应用程序需要在各种存储系统之间快速有效地进行数据的传输。 Web Services是用标准规范的XML格式描述的一组操作接口它隐藏了实现服务的细节允许独立于硬件和软件编写服务支持松散耦合和跨平台的并可用于实现复杂的系统集成。因此基于WEB服务我们设计和实现了远程文件I/O-WSIO它以不改动原存储系统为原则实现了文件系统访问接口的RPC服务使得用户可以方便地访问远程的存储资源在不同存储系统之间实现数据互操作。WSIO的主要有以下几个特点 支持异构环境 借助WEB服务良好的互操作性WSIO支持异构环境包括存储协议、操作系统、软件等的异构性实现对不同存储系统、不同平台的数据访问。如在WINDOWS平台下使用WSIOLINUX平台下存储系统的数据。 远程文件I/O WSIO不仅提供了远程数据访问服务还实现了语义较为完备的文件系统I/O操作如OPEN、SEEK、READ、WRITE等。这是与目前广域网上许多数据传输协议的主要区别如FTP、HTTP、GridFTP等。 GLOBUS GSI 提供GLOBUS GSI支持提供传输层和网络层安全保障支持WEB服务和客户端的相互授权和认证。这是 为单位一个可选项启动GSI支持时需要一个有效的用户或主机证书并以证书的DN进行WSIO服务的授权和认证。 可扩展性 WSIO中实现了一个通用文件访问接口GFAI把各种协议统一起来提供了一个一致性的、与POSIX标准兼容的、可扩展的存储系统访问接口。通过GFAI的扩展WSIO可以方便地实现对不同存储系统的支持和扩展。 本地文件系统接口 基于FUSE实现了WSIO文件系统提供了本地文件系统接口用户可以像访问本地文件系统一样来访问WSIO原有的应用程序无需修改即可直接访问WSIO存储资源。 多种服务器应用模式设计 针对数据访问的特点设计了不同模式应用模式的WSIO服务器包括多线程服务器、线程池服务器、队列服务器满足不同应用场合的需求。 针对SOAP的性能优化 结合开发工具从应用层次对影响WSIO的主要因素进行了分析和优化分别从数据编码、HTTP Chunking、HTTP keep-alive、数据压缩、缓存大小等角度对SOAP性能进行了调优。 3.运行和开发环境 WSIO在GNU LINUX2.4系统下使用C/C实现同时使用了gSOAP、GSI-Plugin、FUSE开源软件系统详细软件版本如下 ?GNU LINUXScientific Linux CERN 2.4.21-32.0.1.EL.cernsmp ?GCC3.2.3 ?GSOAP2.6.2 ?GSI-Plugin2.7 ?FUSE2.5.3 ?Globus Toolkit4.0.3 WSIO目前运行在GNU LINUX2.4系统下未来计划移植至SOLARIS、WINDOWS等平台下。 4.功能描述 WSIO主要由服务器、客户端、GFAI三个模块组成。WSIO中远程文件地址表示为协议类型//服务器地址端口/路径/文件名比如本地文件rfio//castor.ihep.ac.cn/castor/file2CASTOR文件 dcap//dcache.ihep.ac.cn/pnfs/file3dCache文件。 WSIO服务器实现了与POSIX标准兼容的基本文件I/O操作RPC如 wsio_openwsio_readwsio_writewsio_seekwsio_closewsio_stat等并通过WEB服务提供外部访问接口。WSIO接收和处理来自WSIO客户端的I/O RPC请求通过GFAI来后台具体的存储系统进行交互处理结果通过SOAP传回WSIO客户端。对于一个存储系统 在其内部部署WSIO服务后其他系统就可以使用WSIO客户端与其进行数据交换。WSIO服务的参数选项包括服务器地址、端口号、服务器类型以及各种优化参数在服务启动时指定。 WSIO客户端分为客户端工具、开发库、文件系统三种形式它们都是通过WSIO服务的外部调用接口来请求WSIO服务。其中RPC消息和I/O数据都通过SOAP协议进行传输。客户端可以访问数据也可以对文件和目录进行操作。WSIO提供的客户端工具有wslswscpwscatwsrmwsmkdirwsrenamewschownwschmod等。客户端开发库提供了与服务端RPC对应的I/O函数库如 wsio_openwsio_readwsio_writewsio_seekwsio_closewsio_stat。WSIO文件系统可以直接mount到本地文件系统上通过VFS来请求WSIO服务。 GFAI使用共享对象动态加载技术实现了不同存储系统的一致性访问接口。WSIO服务调用GFAI与本地存储系统进行I/O交互。GFAI目前支持本地文件系统、CASTOR和dCache存储系统提供了如下基本的POSIX文件系统API gfai_creatgfai_opengfai_seekgfai_readgfai_writegfai_close gfai_accessgfai_chmodgfai_chowngfai_statgfai_renamegfai_unlink gfai_mkdirgfai_rmdirgfai_opendirgfai_readdirgfai_closedir 5.工作原理 图1 WSIO工作流程 WSIO是一个WEB应用服务但简化了SOA架构无需服务代理的参与服务提供者与请求者直接交互。WSDL描述了服务的行为、方法和输入输出格式用户采用SOAP协议访问WSIO服务时只需要通过WSIO发布的WSDL了解SOAP消息基本格式从而屏蔽WEB服务的底层实现细节。 WSIO基于WEB服务实现使用SOAP协议来 使用SOAP进行I/O数据的传输I/O数据使用SOAP进行远程方法的调用。特别地WSIO 的DIME附件形式封装。WSIO工作流程如图1所示描述如下 客户端应用使用SOAP消息向WSIO服务发送请求SOAP消息中包含方法名、参数值和相关I/O数据如图所示 WSIO服务接到服务请求根据传递过的SOAP消息进行服务方法调用其中需要调用GFAI访问存储系统 请求服务调用完成后WSIO服务将结果封装成SOAP消息返回给客户端SOAP消息中包含方法调用结果和相关I/O数据如图所示 4客户端收到返回的结果请求完成。 图2 WSIO_OPEN请求的SOAP消息格式图3 WSIO_OPEN响应的SOAP消息格式 WSIO可以改进广域网环境下存储系统存在的一些问题 1、SOAP采用HTTP作为底层通信协议可以穿越防火墙在广域网上进行通信交互因此WSIO突破了很多存储系统因为安全考虑不允许外部访问的限制。 2、分布式存储系统有的提供文件访问接口有的仅提供文件传输接口而且不同系统间的接口差别较大其中不少部分都于POSIX标准不兼容。WSIO屏蔽了不同系统访问协议的细节和差别并提供了统一的、于POSIX兼容的文件系统接口方便了用户使用。 3、不同存储系统的异构性使得存储资源的整合和互操作难度愈增。WSIO借助WEB服务良好的互操作性解决了存储系统间的互操作问题可以无缝地整合广域网上的存储资源消除信息孤岛如图4所示。在存储系统上部署WSIO Server其他系统就可以使用WSIO客户端与其进行数据交换可扩展性非常好。WSIO支持第三方控制传输用户在客户端可以发起在两个不同系统之间传输数据。 图4 WSIO实现存储资源的整合和互操作4、WSIO实现的其实是文件IO的RPC功能。IO操作请求通过SOAP传递给WSIO服务器WSIO服务调用本地的文件访问协议服务并把结果再通过SOAP回传给WSIO客户端。可见WSIO维持了原存储系统的文件共享语义和相关特性。 5、海量存储系统等访问频繁、数据量大可以通过增加WSIO服务器数量来解决负载均衡问题。实验表明WSIO 性能经优化后可以满足应用的需求。 6.体系结构和关键技术点 图5基于WEB Service的WSIO体系结构 从图5可以看出WSIO由服务器和客户端两部分组成包括WSIO ServiceWSIO CLI/API、Protocol Modules三个主要模块。WSIO Service是WEB服务它负责接收和处理来自WSIO客户端的I/O RPC请求。WSIO客户端通过命令行工具或API请求WSIO服务。其中RPC消息和I/O数据都通过SOAP传输。Protocol Modules是各种文件访问协议服务的API库集合WSIO Service和客户端调用这些API库与本地存储系统进行I/O交互。 WSIO的体系结构比较简单但在WEB服务的帮助下却显现很强大的能力。WSIO实现了存储系统的远程文件I/O功能在异构环境下存储系统之间的进行数据互操作方便存储资源的有效整合和扩展。WSIO的关键技术点如下 1SOAP大数据量传输 尽管SOAP提供了强大的互操作性但是SOAP自身的特点决定了它的性能低。首先SOAP消息采用XML编码不仅需要额外的XML转换和解析而且编码后的消息体积比机器表示在很多一般为48倍。再者HTTP不是有效率的通讯协议。影响传输速率的主要因素是编码后数据传输时间和连接次数。当文件很 中采用以下技术来提高大时数据编码方式直接决定性能相差可高达数倍。WSIO SOAP的传输性能 a使用base64Binary和DIME编码方式减少冗余信息和提高效率。WSIO中的RPC参数使用XML编码小量I/O数据使用base64Binary编码大量I/O数据则使用DIME编码获得较好的可扩展性和整体性能。 b数据压缩在带宽低的情况下能减少传输数据量一定程度上提高性能。 cHTTP Keep-alive永久连接能减少HTTP连接产生的延迟对于高延迟和低带宽的网络以及频繁的小容量SOAP信息交换非常有效。 dHTTP ChunkingHTTP以分块方式数据传输不需要事先确定数据长度可大大提高效率。 e缓存大小调整这里的缓存分SOAP和I/O两种。合理的SOAP缓冲区和I/O读写记录大小有利于性能提高但并非越大越好。根据实验结果将SOAP_BUFLEN和Record大小分别设为256KB和4MB。 多种应用模式服务器设计 针对数据访问的特点设计了不同模式的WSIO服务器分为普通COMMON、单一STANDALONE、多线程MULTITHREAD、线程池POOL、队列QUEUE、GSI六种服务器模式。COMMON是最简单的运行模式STANDALONE模式于COMMON基本相同主要一个区别就是它可以运行于80端口。大量数据传输或设置了keep-alive选项时请求的服务处理时间过长多线程模式防止了其他请求得不到服务的情况。线程池模式通过限制服务线程数量防止过度消耗服务器系统资源造成宕机。队列模式在线程池的基础上为线程加上了服务请求队列防止线程池满时请求被丢弃适合服务请求频繁的应用。 可扩展通常文件访问接口GFAI GFAIGeneral File Access Interface把各种文件访问协议统一起来为用户提供了一个一致性、可扩展的存储系统访问接口。GFAI根据访问协议动态加载不同的共享对象访问不同的存储系统。这使得GFAI具有可扩展的特性兼容未来出现的新协议。 频繁的动态库加载以及函数符号查找是非常耗时的GFAI使用了缓存和HASH表技术来提高性能。使用一个结构体HASH数组来缓存所有已加载协议共享对象库的句柄和函数指针以协议类型为键值进行HASH数组的查找。这样加载动态库和查找函数符号的次数就大大减少了节省大量的系统开销。另外为了方便用户扩展新的协议GFAI提供了自动生成代码框架的功能用户只需要根据存储系统实现框架中的数个POSIX I/O函数即可。 4GLOBUS GSI 安全性是WEB服务发展的一大障碍。GSI是GTGlobus Toolkit中的安全组件它用于解决网格中的基本安全需求。WSIO基于SOAP的plug-in扩展机制使用开源的GSI Plug-in实现了GSI支持保证了传 输层和网络层安全并且使用X.509证书的DN对服务进行授权和认证确保WSIO在复杂的广域网环境下的安全性。 GSI传输层和消息层的安全是开发者是透明的直接调用GSI Plug-in提供的API即可。但WSIO服务的授权和认证需要在程序逻辑中自行实现其中需要访问plug-in数据结构由GSI Plug-in在处理接收到的SOAP消息时进行调用。 为了防止恶意使用或破坏WSIO服务需要对服务请求者进行授权。以用户X.509证书DN为单位使用访问控制列表ACL进行服务访问授权。请求服务时用户证书被嵌入在SOAP消息中接收到请求消息时WEB服务检查ACL中是否存在相应的DN然后才做出应答只要被授权的请求者才按照SOAP消息的内容进行响应。 本地文件系统接口 WSIO用户使用于LINUX文件操作命令相似的客户端工具来访问WSIO服务如wslswscpwscatwsmkdirwsrmdirwsrmwsrenamewschmodwschown等。用户使用很不方便需要改变传统文件访问使用习惯。WSIO基于FUSE在用户空间实现了WSIO文件系统提供了本地文件系统接口。这样用户可以像访问本地文件系统一样来访问WSIO服务原有的应用程序无需修改即可直接访问WSIO存储资源。 WSIO文件系统主要实现了满足最基本语义的VFS虚拟文件系统接口函数主要包括wsio_lstatwsio_readdirwsio_openwsio_readwsio_writewsio_close等25个API。然后使用FUSE的数据结构struct fuse_operations进行关联映射通过FUSE内模块就实现了WSIO的本地文件系统接口。 7.功能模块设计 WSIO主要分为服务器、通用文件访问接口GFAI、客户端三个模块其中客户端又包括客户端工具集、文件系统、开发库三个部分。 7.1 WSIO服务 WSIO服务的实现主要有两块WSIO服务器和WSIO服务方法。WSIO服务器分为普通COMMON、单一STANDALONE、多线程MULTITHREAD、线程池POOL、队列QUEUE、GSI六种服务器模式。WSIO服务方法是一组I/O函数的RPC对外提供调用接口内部调用GFAI与不同存储系统进行交互。 图6 WSIO服务工作流程图 不同模式的WSIO服务器工作流程如图6所示基本相同区别主要在于处理请求的方式有所不同如单线程、多线程、线程池、队列等。其中GSI模式与其他几个模式差别较大工作流程如下 初始化Globus GSI运行环境 初始化gSOAP运行环境 GSI Plug-in 检查X.509有效证书并获取相关信息 实现并设置服务授权认证回调函数 开始监听用户连接并进入服务循环 接受服务请求调用认证函数检查是否授权处理授权请求者的请求。重复直到服务结束。 销毁运行环境退出服务。 WSIO服务方法实现了一组在wsio.h如图7所示中定义的RPC函数服务的WSDL文件wsio.wsdl由gSOAP的soapcpp2根据wsio.h产生。WSIO的WSDL中描述了服务的行为、方法和输入输出格式用户可以据此使用各种语言和开发工具开发WSIO的客户端来请求WSIO服务。WSIO服务方法按照POSIX和SOAP的标准进行定义和实现其中I/O数据传递使用base64Binary或DIME编码。 GSOAP不支持复杂的数据类型wsio.h文件中也不能包含include其他的头文件可能不能第生效。因此需要使用void数据类型不指明具体数据类型返回后再作处理。然而gSOAP不能对void数据类型进行序列化serialize操作除非使用union或struct分配实时类型信息。因此当传出二进制I/O数据时需要使用base64Binary结构类型如图7来操作。 图7 base64Binary结构类型 在使用上述结构向外部传出数据时需要使用soap_malloc进行内存分配并指定__size值。DIME编码同样使用此数据结构同时需要指定其中的id、type和options域。Id和type可以自由定义options使用soap_dime_option函数进行定义。 7.2通用文件访问接口GFAI 通用文件访问接口GFAI的目标就是屏蔽不同存储系统的访问协 议细节向上为用户提供一个统一的、与POSIX标准兼容的文件访问接口方便用户使用。采用共享对象库动态加载技术并定制出标准接口兼容未来的文件访问协议。GFAI体系结构如图8所示应用程序通过GFAI提供的接口对文件进行访问在它的下层是各种文件访问协议。为了使GFAI支持某种协议需要按照标准为该种协议封装文件系统API函数库的共享对象。GFAI目前支持本地文件系统、CASTOR和dCache存储系统提供了如下基本的POSIX文件系统API gfai_creatgfai_opengfai_seekgfai_readgfai_writegfai_close gfai_accessgfai_chmodgfai_chowngfai_statgfai_renamegfai_unlink gfai_mkdirgfai_rmdirgfai_opendirgfai_readdirgfai_closedir 图8通用文件访问接口GFAI架构 文件访问协议共享对象库按上面的API标准进行封装这些对象库并没有编译进GFAI中而是需要的时候动态加载和调用。函数库名与库中的函数名与协议类型单一映射如RFIO协议的函数库名应为librfio.so库中函数应以rfio_为前缀。GFAI函数根据协议名来加载对象库和定位函数符号实现对不同存储系统的访问。GFAI调用的工作流程如下 应用程序调用GFAI接口函数其中指定协议名称 GFAI根据协议名计算的HASH值检查对应对象库是否已加载如果已经加载则跳到第步 根据协议名加载共享对象库并查找常用函数符号缓存在一个结构体HASH数组中结构体如图9所示 调用函数符号访问存储系统并返回处理结果。 图9 GFAI中缓存对象库句柄和函数符号的结构体 7.3 WSIO客户端 WSIO客户端又包括客户端工具集、文件系统、开发库三个部分都是通过远程调用WSIO的服务方法对存储系统进行访问。客户端工具集提供了一组类似于文件操作命令如 wslswscpwscatwsmkdirwsrmdirwsrmwsrenamewschmodw.
本文档为【基于WEB服务的远程文件I O】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_014457
暂无简介~
格式:doc
大小:29KB
软件:Word
页数:0
分类:
上传时间:2017-12-08
浏览量:15