Transcript Slide 1

XRootD Release 4
And Beyond
GSI Seminar
Stanford University/SLAC
July15, 2015
Andrew Hanushevsky, SLAC
http://xrootd.org
User Visible Changes I
New client library: libXrdCl.so

First available in 3.3.0 now is default

Old deprecated client library is libXrdClient.so
Copy command: xrdcopy
xrdcopy renamed to xrdcp
 Xrdcopy is now a symlink to xrdcp
 Original xrdcp renamed toxrdcp-old


July 15, 2014
All have same command line interface!
GSI Seminar
‹#›
User Visible Changes II
New meta command: xrdfs

Logical replacement to xrd command
Different command line interface
 More user friendly and intuitive

When installing Release 4 RPM

You must de-install previous XRootD release

July 15, 2014
They are incompatible
GSI Seminar
‹#›
Root Support
New client is the default in ROOT

Since 5.34.14 (Dec 14, 2013)


Via TNetXNGFile plug-in
Setting envar XNet.UseOldClient to 1

Loads TNetXFile instead (old client)
Root 6 does not support new client
Due to conflicts with PROOF
 Expected to be resolved in release 6.1

July 15, 2014
GSI Seminar
‹#›
Admin Visible Changes
IPv6 support
Public Private Networking
Disk Caching Proxy
HTTP Plug-in
Remote Debugging
Optional Client Plug-ins
Miscellaneous
July 15, 2014
GSI Seminar
‹#›
IPv6 Support
The new client supports IPv6

It prefers IPv6 whenever possible


This corresponds to HEPIX request
Connects using mapped IPv4 addr if need be
The old client is deprecated

It will not support IPv6
July 15, 2014
GSI Seminar
‹#›
IPv6 Configuration
Frankly none needed

Clients detect available network stacks

May force it to use various IP modes


Via configuration file or envars
Server detects interfaces and DNS settings
It’s important that DNS is setup correctly
 May force server to use IPv4 only


July 15, 2014
Via command line option (-I v4)
GSI Seminar
‹#›
IPv6 Considerations I
While servers and redirectors can accept
both IPv6 and IPv4 clients. . .

IPv6 clients are assumed dual-stack

May be redirected to either IPv6 or IPv4 node


This works if all the servers are dual-stack


Client error recovery will resolve this if unworkable
Generally the preferred migration path
Since redirection is via hostname…

July 15, 2014
DNS entry must have no un-routable entries
GSI Seminar
‹#›
IPv6 Considerations II
Client dual-stack assumption will be lifted
in release 4.1 (3Q14)

Clients will be redirected to compatible nodes


If none, the client receives an error
Largely driven by public-private networks

July 15, 2014
And interactions with IPv6/4
GSI Seminar
‹#›
Public-Private Network Support
Redirectors are now network cognizant

Servers inform redirectors of usable i/f’s
Clients always compatibly redirected

Private to private and public to public

Subject to configured network topology


July 15, 2014
Via new xrd.network directive option
Applies to servers and redirectors
GSI Seminar
‹#›
Public-Private Net Topologies
xrd.network routes type [use if1[,if2]]

type: local | common | split

local (default)


common



Private incoming -> private (preferred) or public
Public incoming -> only public
split


No address differentiation (i.e. pre R4 mode)
Incoming address must match outgoing address
If use unspecified addresses come from DNS!
July 15, 2014
GSI Seminar
‹#›
Private Addresses & DNS
Private addresses should never be in DNS

Unless
It’s a site local DNS server or
 The address is zone registered (i.e. only locally available)

This is the assumption used by XRootD

To avoid DNS reverse translation timeouts
Hence, the use option might be needed

If a server connects using a private address
July 15, 2014
GSI Seminar
‹#›
Public-Private Considerations
The available server interfaces
Must be uniform within a cluster
 Must be compatible with configured topology

Restrictions relaxed in R 4.1

Redirectors will match clients & server i/f’s


May lead to inaccessible files if no match exists
Still working through external access issues

May require a separate redirector for external access

July 15, 2014
Due to IPv6/4 and public-private network interactions
GSI Seminar
‹#›
Networking Is Complex!
There are many combinations now

Client and server capabilities must now match
There are 4 basic combinations
Public
Private
IPv6
IPv4
But things are not that simple!
Dual stack clients add another 4 combinations
July 15, 2014
GSI Seminar
‹#›
Disk Caching Proxy
New proxy server mode

Configured via pss.cachelib directive
Caches whole files or file segments

Mode is configurable
Cached content available for future access

Until LRU purged (configurable)
Many use cases to increase access speed
July 15, 2014
GSI Seminar
‹#›
Typical Disk Caching Proxy Uses
Speed up
Remote XRootD
Remote Access
Clusters
Caching
Proxy
Local
Clients
July 15, 2014
Caching
Proxy
XRootD
Server
HDFS
Speed up
Random Access
Caching
Proxy
XRootD
Cluster
FS
Speed up
HD Access
SSD
GSI Seminar
‹#›
HTTP Plug-in
Basic http, https, WebDav access
Suitable for browsers, curl, wget, & davix
 Provides another mode of well-known access


http is neither low latency nor high-performance


Google & Microsoft have proposed improvements
• Changes submitted to W3C and IETF as http2
• Improvements are considered incremental
• They only address the most vexing problems
Configured via xrd.protocol directive

July 15, 2014
And specialized http.xxx directives
GSI Seminar
‹#›
XRootD Multi-Protocol Support
Always supported multiple protocols
Improved architecture makes it much easier
 New protocols can leverage XRootD features


Security, monitoring, file system plug-ins, etc
XRootD
Server
Clients
XRootD
Bridge
Memory Based
Protocol Conversion
Loadable
Protocol
July 15, 2014
GSI Seminar
‹#›
Remote Debugging via DigFS
XRootD provided pseudo file system
Provides restricted selectable R/O access to

Configuration file
 Core files
Log files
/proc/self (Linux only)


Has authentication & authorization options

Including access control restrictions
View is standardized regardless of location
 Configured via xrootd.diglib directive

July 15, 2014
GSI Seminar
‹#›
The DigFS View
/=/
Virtual
exported
path
July 15, 2014
conf
conf/etc (site specific)
core/cmsd
core/xrootd
logs/cmsd
logs/xrootd
proc/cmsd
proc/xrootd
GSI Seminar
‹#›
DigFS Authorization
DigFS consults authorization file

Created by the site and specified in config file

xrootd.diglib * authfile
+
all
[-]conf
[-]core allow
[-]logs
[-]proc
July 15, 2014
gsi
host
krb5
pwd
sss
unix
GSI Seminar
g=group
h=host
n=name
o=org
r=role
+



 


‹#›
XRootD Client Relationships
External Package
XRootD - add on
XRootD - core
XRootD – plug-ins
Athena
FTS3
xrdcopy
CopyProcess
XrdClFilesystem
xrdfs
Dirac
Gaudi
PyXRootD
root
XrdClFile
CMSSW
PROOF
XrdClPostMaster
Plug-ins replace original implementation

All calls may be replaced

July 15, 2014
All layers above benefit with any code changes
GSI Seminar
‹#›
Client Plug-ins
Plug-ins are loaded at run-time

Client looks for plug-in configuration files
1st Locally: ~/.xrootd/client.plugins.d/
 2nd Globally: /etc/xrootd/client.plugins.d/


Both locations can be over-ridden via envar

XRD_PLUGINCONFDIR
Plug-ins are strictly version checked

Allows for independent development
July 15, 2014
GSI Seminar
‹#›
Miscellaneous I
Readv proxy pass-through

Automatic & greatly improves performance
Manual log file rotation (e.g. logrotate)

Via extended –k command line option
High precision log file timestamps

New –z command line option

July 15, 2014
Log timestamp appears in microsecond format
GSI Seminar
‹#›
Miscellaneous II
Special stat() plug-in for odd file systems

Configured via the oss.statlib directive

Includes plug-in for GPFS with tape backend
Cancellable third party copy

Used by transfer tools
Fast directory listings

Stat info can now be included w/ dir entry

July 15, 2014
xrdfs uses this to speed up long listings
GSI Seminar
‹#›
Miscellaneous III
New query config options

Use the xrdfs command to display
Query cms
 Query role
 Query sitename
 Query version

- shows cmsd status
- shows server’s cluster role
- shows the site’s name
- shows server’s version
Cluster node blacklisting

Via cms.blacklist directive & blacklist file

July 15, 2014
Useful in federated environments
GSI Seminar
‹#›
Miscellaneous IV
New monitoring information

User login record now also includes
Name of the client’s executable
 Contents of client’s XRD_MONINFO envar



July 15, 2014
Useful to tie external information to actual data usage
E.g. the Panda jobid to cross-reference I/O usage
GSI Seminar
‹#›
Looking Beyond Release 4
Cross Protocol Redirection
Meta-links
I/O Throttling Plug-in
July 15, 2014
GSI Seminar
‹#›
Cross-Protocol Redirections I
XRootD protocol is capable of redirecting
to a protocol other than xroot

On file open the server may tell the client that
it’s more efficient to try something else

E.g. read the file locally from disk

July 15, 2014
Open(xroot://host/filename) -> redirect file://filename
GSI Seminar
‹#›
Cross-Protocol Redirections II
New client already capable of processing
out-of protocol redirections
Server needs some development to do so
Root’s TFile framework needs updating to
handle a change in protocols

Changes already in development

July 15, 2014
Target for root 6.1 or 6.2
GSI Seminar
‹#›
Meta-Link Files I
XML file that describes one or more data
files available for access

Meta-link file identified by dot suffix


metalink (v3) or meta4 (v4 & incompatible w/ v3)
File is read and parsed by the client

Client picks one based on certain criteria


July 15, 2014
E.G. priority, location, etc
If access fails, client can pick another one
GSI Seminar
‹#›
Metalink Files II
XRootD client will support meta-link files

But the road is not straight-forward
Incompatible meta-link formats, which one?
 Need to avoid encumbering installation


I.e. pre-reqs for sites that don’t care about meta-links
Targeting availability in 4Q14
July 15, 2014
GSI Seminar
‹#›
I/O Throttling Plug-in
Allows site to limit I/O access to disk

Useful for throttling external access


Used in federated environments via proxy server
Configured via xrootd.fslib directive

And specific throttling directives
Plug-in is in code review phase

Already used by CMS in production
Targeting 3Q14
July 15, 2014
GSI Seminar
‹#›
Acknowledgements
Current Software Contributors
ATLAS: Doug Benjamin, Patrick McGuigan, Ilija Vukotic
CERN: Lukasz Janyst, Andreas Peters, Justin Salmon
Fermi: Tony Johnson
Root: Gerri Ganis, Bertrand Bellenot
SLAC: Andrew Hanushevsky, Wilko Kroeger, Daniel Wang, Wei Yang
UCSD: Matevz Tadel
UNL: Brian Bockelman
WLCG: Mattias Ellert, Fabrizio Furano, David Smith








US Department of Energy

Contract DE-AC02-76SF00515 with Stanford University
July 15, 2014
GSI Seminar
‹#›