You are here: TWiki> Online Web>CastorFS (2010-05-19, mazurov)
create new tag
, view all tags


CastorFS — CASTOR filesystem based on FUSE.

Current status

  • CastorFS is under BETA testing
  • Access is currently readonly.
  • Read-speed is two times slower than using rfcp (we are working on improving this)

Please report all bugs and problems directly to

How to use it / how to access files on CASTOR

In the LHCb Online network you can access files on CASTOR on the plus nodes. CASTOR files are visible in the /castorfs directory. CastorFS mounts CASTOR remotely to this /castorfs local directory. It allows to work with files on CASTOR like with any normal file (i.e. it presents CASTOR as a POSIX filesystem).

How to copy a file

Example: %CODE{"sh"}% $> ssh $> ssh plus $> cp /castorfs/ /tmp %ENDCODE% Note that we do not like to store large amount of raw data in your group or home directories smile

How to use it from a Gaudi job-options file

ApplicationMgr.TopAlg                =
ApplicationMgr.EvtMax                = 100000;
ApplicationMgr.HistogramPersistency  = "NONE";
Dump.CheckData                       = 1;
Dump.CheckData                       = 0;
Dump.DumpData                        = 1;
Dump.FullDump                        = 1;
Dump.OutputLevel                     = 1;
StoreExplorerAlg.Load                = 1;
StoreExplorerAlg.PrintFreq           = 100;
EventDataSvc.RootCLID                = 1;
EventDataSvc.EnableFaultHandler      = true;
EventPersistencySvc.CnvServices      = {"LHCb::RawDataCnvSvc"};
EventSelector.PrintFreq              = 100;
EventSelector.Input                  = {"DATA='PFN:file:///castorfs/' SVC='LHCb::MDFSelector'"};
StoreExplorerAlg.OutputLevel         = 1;

Extended attributes

One nice feature, which the ns family of tools does not allow you to do is to look at the extended attributes of files on CASTOR. You can see the following attributes for CASTOR files:

  • user.checksum — checksum for files;
  • user.checksum_name — name of checksum algorithm;
  • user.nbseg — number of segments for file;
  • user.status — file status.

Example: %CODE{"sh"}% $> getfattr -d /castorfs/ %ENDCODE% Result:

# file: castorfs/


  • Allow users to write to their CASTOR directory;
  • Increase speed for reading and writing;


For Developers


CastorFS was implemented using the following packages:

  • FUSE (filesystem at user space)
  • CASTOR rfio client
  • CASTOR ns client


Source at attachment file (soon it will be link to SVN repository). For building required cmake program.

How to build

At project directory: %CODE{"sh"}% $> cmake CMakeLists.txt $> make $> make castorfs_rpm (to build rpm $> make castorfs_srpm (to build srpm) %ENDCODE%

Additional Information

-- AlexanderMazurov - 25 Feb 2009

Edit | Attach | PDF version | Print version |  | Raw View | Raw edit | Backlinks | History: r6 < r5 < r4 < r3 < r2 | More topic actions
Topic revision: r6 - 2010-05-19 - mazurov

This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2022 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback