Grid File Access Library 2


GFAL (Grid File Access Library ) is a C library providing an abstraction layer of the grid storage system complexity.


GFAL (Grid File Access Library ) is a C library providing an abstraction layer of the grid storage system complexity.
The version 2.0 of GFAL tries to simplify at the maximum the file operations in a distributed environment.
the complexity of the grid is hidden from the client side behind a simple common POSIX API.

GFAL 2.0 is able to manage all the common used file access protocols in a grid & cloud environment :

10 good reasons to switch to GFAL 2.0 :
GFAL 2.0 :

  • has a new Error report system: protocol independent error code, human readable string, trace mode and logger system.
  • is faster and thread safe : internal session-reuse, transparent parallel operations for SRM resolution, internal cache for meta-data ( stat() ) .
  • is simpler and portable, with only one API for all the protocols. Your application can switch between SRM, GSIFTP, xrootd, Http, Webdav, GSIDCAP, etc... without any modification.
  • can manage file transfers at high level ( gfal2-transfer API, core of FTS 3.0 ).
  • is extensible with the new plugin system. Adding support for a new protocol or a new catalog without touching the client application is easy.
  • is now designed to be as POSIX as possible.
  • manages the extended attributes system for advanced grid operations ( get guid, set/get replicas, set/get comments, copy of replicas (futur) ).
  • has an integrated cache system.
  • is delivered with gfalFS , a NEW file system which can mount any compatible grid URL.
  • is fully supported, without configuration and easier to install ( EPEL, EMI ) .

What are the main changes from gfal 1.0 ?

  • the NON-POSIX functions of 1.0 do not exist anymore in the POSIX API, they are mapped to a POSIX one ( setxattr/getxattr ) or available in the file api (checksum).
  • the gfal_request complex system is now replaced by a simple POSIX calls and getxattr/setxattr
  • GFal 2.0 provides the getxattr, setxattr, listxattr calls for the plateform's specific calls ( turl resolution, guid resolution, ...)
  • The Python API has been reworked, more pythonic and easier to use, follows now the python philosophy and is able to manage the exceptions properly.

Note : gfal 1.X branch is still supported for the moment

Is GFAL 2.0 loosing functionalities of GFAL 1.0 ?

  • No, most of them are transformed in order to be automative, transparent or accessible with the getxattr/setxattr system.


#Example of a compilation line : 
gcc -o teststat gfal_teststat.c `pkg-config --libs --cflags gfal2`
# Example of a usage : 
./teststat lfn:/grid/dteam/

Example of advanced usage : gfalFS page

List of the protocols supported with the provided plugins

# LFC usage with the default file catalog 
./teststat lfn:/grid/dteam/

# LFC usage with a specific file catalog 
./teststat lfc://

# GUID usage with the LFC guid mode
./teststat guid:b7ba213b-829d-4a2e-b744-7c9cc685fe2d

# SRM usage with DPM and  DCache SRM server 
./teststat srm://

# GridFTP usage :
./teststat gsi

# local file mode for facility
./teststat file:///tmp/mylocalfile

# RFIO support 
./teststat rfio://myendpoint/myfile

# DCAP support 
./teststat dcap://myendpoint/myfile

# GSIDCAP support ( DCAP secured version )
./teststat gsidcap://myendpoint/myfile

#  Webdav/Http with credential, redirection and multi stream support
./teststat http://myurl/blablalba
./teststat https://myurl/blablalba

Source code ==

  • anonymous :
       svn co
  • registered :
       svn co


Date Topic Place Author
01/2013 GFAL 2.0 GDB GFAL 2.0 presentation GDB Devresse Adrien
12/2012 GFAL 2.0 IT Technical Forum GFAL 2.0 presentation ITF Devresse Adrien
09/09/2012 GFAL 2.0 Status and Transfer API Status Presentation Devresse Adrien
02/05/2012 GFAL Evolutions and gfalFS EMI meeting hamburg Devresse Adrien
17/10/2011 GFAL Evolutions and gfalFS EMI meeting padova Devresse Adrien

Last modified 16 months ago Last modified on Oct 13, 2014 2:39:48 PM