您好,欢迎访问三七文档
第五章、WSIO-基于WEB服务的远程文件I/O团队名称:IHEPer,作者:刘爱贵,电子邮箱:liuag@ihep.ac.cn单位:中科院高能物理研究所计算中心PDF下载:摘要WSIO是一个基于WebService技术实现的、与POSIX标准兼容的文件I/O,实现了存储系统的远程文件I/O功能,主要解决异构环境下存储系统之间的互操作问题,方便存储资源的有效整合和扩展。WSIO在GNULINUX下基于gSOAP、C/C++实现,它由服务器、客户端工具、文件系统、用户开发库等几个部分组成,支持GLOBUSGSI以及访问的授权和认证,实现了通用文件访问接口GFAI(GeneralFileAccessInterface)来对不同存储系统的支持和扩展。它不仅可以进行文件的远程复制,而且实现了类似本地文件系统的API,可以远程打开文件进行读写和定位操作。另外,基于FUSE(FileSysteminUserSpace)实现了WSIO文件系统,提供本地文件系统接口。1.背景和应用领域计算和存储是计算机系统的两在基本任务。随着网络技术的不断发展,基于局域网的存储系统已经不能很满足计算对存储的需求,而将存储与计算分离的广域网存储系统目前仍不是非常成熟。由于广域网的复杂性,广域网存储将面临着很多问题有待解决,主要表现在存储系统的数据互操作、资源整合、可扩展性、性能和安全等方面。传统的分布式文件系统,如AFS、NFS、DFS、CIFS等,都是基于局域网的分布式文件服务系统,即集群文件系统。由于网络延迟远高于局域网,频繁的通信使得这些文件共享协议都无法应付高延迟的广域网环境。目前,许多研究组织已经开发出了支持在广域网上的文件访问方法,其中包括GLOBUS项目的GridFTP和GASS,CERNCASTOR项目的RFIO[5]访问协议,美国FERIMI和德国DESY实验室开发的dCache系统的dcap访问协议。GridFTP传输性能很高,在网格[1]中使用广泛,但它只是一种文件传输协议,没有提供与本地文件系统一致的访问接口和对象模型。GASS、RFIO、dcap虽然提供了类似POSIX的文件访问接口,但都存在一些问题。GASS简化了数据一致性问题,只支持广域网环境下的常见I/O模式:只读、共享写、只追加、单用户读写。RFIO和dcap具有较强的文件共享语义,可用于广域网环境下的文件访问,但性能问题导致不能得到实际应用。更为重要的是,这些协议相互不兼容,在异构性(包括硬件和软件)不断加剧的广域网环境下,存储资源的整合、不同系统间的互操作、存储系统的可扩展性以及符合用户使用习惯的访问方式都成了新的难题。另外,这些协议都需要使用特定系统端口,但出于安全的考虑,局域网防火墙可能关闭这些端口,从而无法从远程进行访问。WSIO充分利用了WEB服务的优点,提出一种新的方案来改进当前广域网文件I/O存在的上述问题,可以应用于广域网环境下一些存储需求场景。(1)异构存储系统之间的数据互操作WEB服务利用XML、SOAP、WSDL、UDDI等标准提供了一个松散耦合的分布式计算环境。WSIO以不改动原存储系统为原则,利用WEB服务实现了文件系统访问接口的RPC服务,使得用户可以方便地访问远程的存储资源,在不同存储系统之间实现数据互操作。(2)内部存储资源的外部访问WEB服务中使用SOAP作为消息传递的协议。SOAP采用HTTP等协议作为底层通信协议,可以穿越企业防火墙在广域网上进行通信交互。因此,WSIO突破了很多存储系统因为安全考虑不允许外部访问的限制,可以为这些存储系统提供一个安全的外部数据访问方法。(3)存储资源的整合与统一访问WSIO实现了异构存储系统之间的数据互操作,可以无缝地对广域网上的存储资源进行整合,消除信息孤岛。WSIO屏蔽了不同存储系统访问协议的细节和差别,提供了统一的、与POSIX标准兼容的文件系统接口,大大降低对用户的要求,方便用户对各种存储系统的访问。(4)细粒度的文件I/O访问操作WSIO实现了文件I/O的RPC功能,不仅可以进行文件的远程拷贝,而且实现了类似本地文件系统的API,可以远程对文件进行OPEN、SEEK、READ、WRITE等细粒度的I/O访问操作。这可以很好满足文件的部分传输、用户I/O应用编程等方面的需求。2.作品特点和设计思路广域网中存在许多存储系统,包括分布式文件系统、海量存储系统,不同的系统是为了满足不同的存储需求而设计的。由于采用不同的软件及数据访问协议,这些存储系统互不兼容。这显然是低效的,用户使用也很不方便。实际应用中,用户和应用程序需要在各种存储系统之间快速有效地进行数据的传输。WebServices是用标准规范的XML格式描述的一组操作接口,它隐藏了实现服务的细节,允许独立于硬件和软件编写服务,支持松散耦合和跨平台的,并可用于实现复杂的系统集成。因此,基于WEB服务我们设计和实现了远程文件I/O-WSIO,它以不改动原存储系统为原则,实现了文件系统访问接口的RPC服务,使得用户可以方便地访问远程的存储资源,在不同存储系统之间实现数据互操作。WSIO的主要有以下几个特点:(1)支持异构环境借助WEB服务良好的互操作性,WSIO支持异构环境,包括存储协议、操作系统、软件等的异构性,实现对不同存储系统、不同平台的数据访问。如在WINDOWS平台下,使用WSIO访问LINUX平台下存储系统的数据。(2)远程文件I/OWSIO不仅提供了远程数据访问服务,还实现了语义较为完备的文件系统I/O操作,如OPEN、SEEK、READ、WRITE等。这是与目前广域网上许多数据传输协议的主要区别,如FTP、HTTP、GridFTP等。(3)GLOBUSGSI支持提供GLOBUSGSI支持,提供传输层和网络层安全保障,支持WEB服务和客户端的相互授权和认证。这是一个可选项,启动GSI支持时,需要一个有效的用户或主机证书,并以证书的DN为单位进行WSIO服务的授权和认证。(4)可扩展性WSIO中实现了一个通用文件访问接口GFAI,把各种协议统一起来,提供了一个一致性的、与POSIX标准兼容的、可扩展的存储系统访问接口。通过GFAI的扩展,WSIO可以方便地实现对不同存储系统的支持和扩展。(5)本地文件系统接口基于FUSE实现了WSIO文件系统,提供了本地文件系统接口,用户可以像访问本地文件系统一样来访问WSIO,原有的应用程序无需修改即可直接访问WSIO存储资源。(6)多种服务器应用模式设计针对数据访问的特点,设计了不同模式应用模式的WSIO服务器,包括多线程服务器、线程池服务器、队列服务器,满足不同应用场合的需求。(7)针对SOAP的性能优化结合开发工具,从应用层次对影响WSIO的主要因素进行了分析和优化,分别从数据编码、HTTPChunking、HTTPkeep-alive、数据压缩、缓存大小等角度对SOAP性能进行了调优。3.运行和开发环境WSIO在GNULINUX(2.4)系统下,使用C/C++实现,同时使用了gSOAP、GSI-Plugin、FUSE开源软件系统,详细软件版本如下:¨GNULINUX:ScientificLinuxCERN2.4.21-32.0.1.EL.cernsmp¨GCC:3.2.3¨GSOAP:2.6.2¨GSI-Plugin:2.7¨FUSE:2.5.3¨GlobusToolkit:4.0.3WSIO目前运行在GNULINUX(2.4)系统下,未来计划移植至SOLARIS、WINDOWS等平台下。4.功能描述WSIO主要由服务器、客户端、GFAI三个模块组成。WSIO中远程文件地址表示为:协议类型://服务器地址[:端口]/路径/文件名,比如,file://liuag.ihep.ac.cn/file1(本地文件),rfio://castor.ihep.ac.cn/castor/file2(CASTOR文件),dcap://dcache.ihep.ac.cn/pnfs/file3(dCache文件)。WSIO服务器实现了与POSIX标准兼容的基本文件I/O操作RPC,如wsio_open,wsio_read,wsio_write,wsio_seek,wsio_close,wsio_stat等,并通过WEB服务提供外部访问接口。WSIO接收和处理来自WSIO客户端的I/ORPC请求,通过GFAI来后台具体的存储系统进行交互,处理结果通过SOAP传回WSIO客户端。对于一个存储系统,在其内部部署WSIO服务后,其他系统就可以使用WSIO客户端与其进行数据交换。WSIO服务的参数选项包括服务器地址、端口号、服务器类型以及各种优化参数,在服务启动时指定。WSIO客户端分为客户端工具、开发库、文件系统三种形式,它们都是通过WSIO服务的外部调用接口来请求WSIO服务。其中,RPC消息和I/O数据都通过SOAP协议进行传输。客户端可以访问数据,也可以对文件和目录进行操作。WSIO提供的客户端工具有wsls,wscp,wscat,wsrm,wsmkdir,wsrename,wschown,wschmod等。客户端开发库提供了与服务端RPC对应的I/O函数库,如wsio_open,wsio_read,wsio_write,wsio_seek,wsio_close,wsio_stat。WSIO文件系统可以直接mount到本地文件系统上,通过VFS来请求WSIO服务。GFAI使用共享对象动态加载技术,实现了不同存储系统的一致性访问接口。WSIO服务调用GFAI与本地存储系统进行I/O交互。GFAI目前支持本地文件系统、CASTOR和dCache存储系统,提供了如下基本的POSIX文件系统API:(1)gfai_creat,gfai_open,gfai_seek,gfai_read,gfai_write,gfai_close(2)gfai_access,gfai_chmod,gfai_chown,gfai_stat,gfai_rename,gfai_unlink(3)gfai_mkdir,gfai_rmdir,gfai_opendir,gfai_readdir,gfai_closedir5.工作原理图1WSIO工作流程WSIO是一个WEB应用服务,但简化了SOA架构,无需服务代理的参与,服务提供者与请求者直接交互。WSDL描述了服务的行为、方法和输入输出格式,用户采用SOAP协议访问WSIO服务时,只需要通过WSIO发布的WSDL了解SOAP消息基本格式,从而屏蔽WEB服务的底层实现细节。WSIO基于WEB服务实现,使用SOAP协议来进行远程方法的调用。特别地WSIO使用SOAP进行I/O数据的传输,I/O数据使用SOAP的DIME附件形式封装。WSIO工作流程如图1所示,描述如下:(1)客户端应用使用SOAP消息向WSIO服务发送请求,SOAP消息中包含方法名、参数值和相关I/O数据(如图所示);(2)WSIO服务接到服务请求,根据传递过的SOAP消息进行服务方法调用,其中需要调用GFAI访问存储系统;(3)请求服务调用完成后,WSIO服务将结果封装成SOAP消息返回给客户端,SOAP消息中包含方法调用结果和相关I/O数据(如图所示);(4)客户端收到返回的结果,请求完成。图2WSIO_OPEN请求的SOAP消息格式图3WSIO_OPEN响应的SOAP消息格式WSIO可以改进广域网环境下存储系统存在的一些问题:1、SOAP采用HTTP作为底层通信协议,可以穿越防火墙在广域网上进行通信交互,因此WSIO突破了很多存储系统因为安全考虑不允许外部访问的限制。2、分布式存储系统有的提供文件访问接口,有的仅提供文件传输接口,而且不同系统间的接口差别较大,其中不少部分都于POSIX标准不兼容。WSIO屏蔽了不同系统访问协议的细节和差别,并提供了统一的、于POSIX兼容的文件系统接口,方便了用户使用。3、不同存储系统的异构性使得存储资源的整合
本文标题:第五章WSIO
链接地址:https://www.777doc.com/doc-2188844 .html