Part 1 Introduction and basic concepts

Slides:



Advertisements
Similar presentations
1 Dynamic DNS. 2 Module - Dynamic DNS ♦ Overview The domain names and IP addresses of hosts and the devices may change for many reasons. This module focuses.
Advertisements

GSIAF "CAF" experience at GSI Kilian Schwarz. GSIAF Present status Present status installation and configuration installation and configuration usage.
PHP (2) – Functions, Arrays, Databases, and sessions.
Tomcat Configuration A Very, Very, Very Brief Overview.
MCTS Guide to Microsoft Windows Server 2008 Network Infrastructure Configuration Chapter 7 Configuring File Services in Windows Server 2008.
Microsoft Load Balancing and Clustering. Outline Introduction Load balancing Clustering.
1. This presentation covers :  User Interface Administration  Files System and Services Management 2.
Hyrax Installation and Customization Dan Holloway James Gallagher.
Web server and web browser It’s a take and give policy in between client and server through HTTP(Hyper Text Transport Protocol) Server takes a request.
Distributed File Systems Concepts & Overview. Goals and Criteria Goal: present to a user a coherent, efficient, and manageable system for long-term data.
1 Introduction to Tool chains. 2 Tool chain for the Sitara Family (but it is true for other ARM based devices as well) A tool chain is a collection of.
Implementing POP3 and IMAP4 Using Dovecot
Microsoft Windows 2003 Server. Client/Server Environment Many client computers connect to a server.
Web Server Configuration Alokes Chattopadhyay Computer & Informatics Centre IIT Kharagpur.
Experiences Deploying Xrootd at RAL Chris Brew (RAL)
CERN IT Department CH-1211 Genève 23 Switzerland t XROOTD news Status and strategic directions ALICE-GridKa operations meeting 03 July 2009.
Linux Installation and Administration – Lesson 5 Tutor: George Papamarkos Topic: Devices in Linux.
Agenda  Terminal Handling in Unix File Descriptors Opening/Assigning & Closing Sockets Types of Sockets – Internal(Local) vs. Network(Internet) Programming.
Internet Addressing. When your computer is on the Internet, anything you do requires data to be transmitted and received. For example, when you visit.
1 Network File Sharing. 2 Module - Network File Sharing ♦ Overview This module focuses on configuring Network File System (NFS) for servers and clients.
16 th May 2006Alessandra Forti Storage Alessandra Forti Group seminar 16th May 2006.
Copyright ®xSpring Pte Ltd, All rights reserved Versions DateVersionDescriptionAuthor May First version. Modified from Enterprise edition.NBL.
1 Apache. 2 Module - Apache ♦ Overview This module focuses on configuring and customizing Apache web server. Apache is a commonly used Hypertext Transfer.
Step By Step Windows Server 2003 Installation Guide Step By Step Windows Server 2003 Installation Guide.
Database-Driven Web Sites, Second Edition1 Chapter 5 WEB SERVERS.
XROOTD Tutorial Part 2 – the bundles Fabrizio Furano.
Unit 2, cont. September 12 More HTML. Attributes Some tags are modifiable with attributes This changes the way a tag behaves Modifying a tag requires.
Xrootd, XrootdFS and BeStMan Wei Yang US ATALS Tier 3 meeting, ANL 1.
Module 11: Implementing ISA Server 2004 Enterprise Edition.
Chapter 8 – Main Memory (Pgs ). Overview  Everything to do with memory is complicated by the fact that more than 1 program can be in memory.
Application Layer Khondaker Abdullah-Al-Mamun Lecturer, CSE Instructor, CNAP AUST.
Introduction to HDFS Prasanth Kothuri, CERN 2 What’s HDFS HDFS is a distributed file system that is fault tolerant, scalable and extremely easy to expand.
CERN IT Department CH-1211 Genève 23 Switzerland t Xrootd setup An introduction/tutorial for ALICE sysadmins.
Introduction to AFS IMSA Intersession 2003 AFS Odds and Ends Brian Sebby, IMSA ‘96 Copyright 2003 by Brian Sebby, Copies of these slides.
July-2008Fabrizio Furano - The Scalla suite and the Xrootd1.
Manage Directories and Files in Linux. 2 Objectives Understand the Filesystem Hierarchy Standard (FHS) Identify File Types in the Linux System Change.
Chapter Two Exploring the UNIX File System and File Security.
Stephen Burke – Data Management - 3/9/02 Partner Logo Data Management Stephen Burke, PPARC/RAL Jeff Templon, NIKHEF.
CS 346 – Chapter 11 File system –Files –Access –Directories –Mounting –Sharing –Protection.
Hadoop: what is it?. Hadoop manages: – processor time – memory – disk space – network bandwidth Does not have a security model Can handle HW failure.
Free Powerpoint Templates Page 1 Free Powerpoint Templates Users and Documents.
Linux Operations and Administration
Introduction to Active Directory
ALCF Argonne Leadership Computing Facility GridFTP Roadmap Bill Allcock (on behalf of the GridFTP team) Argonne National Laboratory.
Data & Storage Services CERN IT Department CH-1211 Genève 23 Switzerland t DSS XROOTD news New release New features.
Version Control and SVN ECE 297. Why Do We Need Version Control?
Data Management The European DataGrid Project Team
Lecture 02 File and File system. Topics Describe the layout of a Linux file system Display and set paths Describe the most important files, including.
CS223: Software Engineering Lecture 13: Software Architecture.
CERN IT Department CH-1211 Genève 23 Switzerland t ALICE XROOTD news New xrootd bundle release Fixes and caveats A few nice-to-know-better.
Review CS File Systems - Partitions What is a hard disk partition?
Introduction to AFS IMSA Intersession 2003 An Overview of AFS Brian Sebby, IMSA ’96 Copyright 2003 by Brian Sebby, Copies of these slides.
1 Xrootd-SRM Andy Hanushevsky, SLAC Alex Romosan, LBNL August, 2006.
Netprog: Chat1 Chat Issues and Ideas for Service Design Refs: RFC 1459 (IRC)
Bestman & Xrootd Storage System at SLAC Wei Yang Andy Hanushevsky Alex Sim Junmin Gu.
09-Apr-2008Fabrizio Furano - Scalla/xrootd status and features1.
Day 15 Apache. Being a web server Once your system is correctly connected to the network, you could be a web server. –When you go to a web site such as.
CASTOR in SC Operational aspects Vladimír Bahyl CERN IT-FIO 3 2.
DCache/XRootD Dmitry Litvintsev (DMS/DMD) FIFE workshop1Dmitry Litvintsev.
Storage Element Security Jens G Jensen, WP5 Barcelona, May 2003.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
FP6−2004−Infrastructures−6-SSA E-infrastructure shared between Europe and Latin America LFC Server Installation and Configuration.
Dynamic Federation of Grid and Cloud Storage Fabrizio Furano, Oliver Keeble, Laurence Field Speaker: Fabrizio Furano.
Federating Data in the ALICE Experiment
Classic Storage Element
dCache “Intro” a layperson perspective Frank Würthwein UCSD
Integration of Singularity With Makeflow
Chat Refs: RFC 1459 (IRC).
SSH SSH is “Secure SHell” Secure, compressed, widely supported, fast
Planning and Storyboarding a Web Site
Presentation transcript:

Part 1 Introduction and basic concepts XROOTD Tutorial Part 1 Introduction and basic concepts Fabrizio Furano

Purpose A basic tutorial for present and future sysadmins Should be useful for other roles as well Many many ideas around xrootd, we cannot cover everything, so we start from the beginning Goals: Knowing what we are talking about Doing a couple of exercises Being able to face the effort of setting up a cluster Being able to solve problems – support people XROOTD tutorial - GridKA school 2010

Outline What’s that? The original distribution (vanilla xrootd) What/where is it, how to do simple things with it Exercise: setting up a personal data server (1hr) The bundles Philosophy Let’s take one What does it do in general Exercise: setting up our cluster (1 hr) Exercise: doing something with it (30min) Conclusion and other directions E.g. vMSS, SRM compliance XROOTD tutorial - GridKA school 2010

Xrd for dummies A plugin loader, whose default set of plugins does… …storage aggregation (disks/machines/sites) Aggregating means hiding the distribution through an unique entry point High performance data access through a specialized client Smart design, modern protocols, timeouts, “infinite” scalability, fault tolerance, … NO databases, the file systems already know enough about their content Fully plugin based All the hooks that are needed by serious app developers Alone it does basic things The power comes from the configurability and the adaptability to HEP and HPC requirements XROOTD tutorial - GridKA school 2010

xrootd Plugin Architecture authentication (gsi, krb5, etc) Protocol Driver (XRD) Protocol (1 of n) (xrootd, xproofd etc.) lfn2pfn prefix encoding File System (ofs, sfs, alice, etc) Authorization (default, alice, etc) Storage System (oss, drm/srm, etc) Clustering (cmsd) XROOTD tutorial - GridKA school 2010

How does it work (1/2) A single server aggregates mountpoints Mount points, i.e. FAST local storage (although fragmented) /dataX Client xrootd /dataY /dataZ EXPORT an unique name space, e.g. /mydata/a/b/c There’s no trace of the mountpoints here /data.. XROOTD tutorial - GridKA school 2010

How does it work (2/2) cmsd Client A small 2-level cluster. Can hold A redirector aggregates up to 64 servers (Many redirectors, called supervisors) can aggregate up to 200K servers) Client cmsd xrootd A small 2-level cluster. Can hold Up to 64 servers P2P-like XROOTD tutorial - GridKA school 2010

TCP daemons These are all high performance TCP servers, living in one port each (normally) 1094/TCP – Standard data access port. This must be visible to the applications/users, eventually from outside the site All the servers must be reachable by the apps All the servers must be configured as… uhm… servers! Max available number of file descriptors is often server-unfriendly Thousands of clients per server can happen often If more clients need to be accommodated  problems/OS choppiness The port related to the internal clustering protocol is less important. Applications/users do not use it. A common port for this is 3122/TCP XROOTD tutorial - GridKA school 2010

Name translation LFN = Logical File Name PFN = Physical File Name It’s the filename in the EXPORTED namespace As it is read/written by the applications PFN = Physical File Name It’s the INTERNAL filename The file as it is stored in the mountpoints NOT visible by the applications, they don’t need. Only the sysadmin knows it XROOTD tutorial - GridKA school 2010

LFN<->PFN mapping (1/2) Simple and fast, just a string mapping Please remember that the apps DO NOT SEE this Let’s suppose that we have only one mountpoint /mnt/data1 : PFN = <prefix>/LFN E.g. /mydata/myfile.dat  /mnt/data1/mydata/myfile.dat The string <prefix> is called LOCALROOT It usually is a mountpoint with an additional directory XROOTD tutorial - GridKA school 2010

LFN<->PFN mapping (2/2) LOCALROOT is one of the best friends of security It means that no application has access to any directory in the machine that does not begin with this prefix In other words: every data file stored will have a private path starting with it So you know where the stuff goes And that nobody will mess up with it XROOTD tutorial - GridKA school 2010

Mountpoints for data ALWAYS store your data in a SUBDIRECTORY It’s easier to rename/move/maintain Like: /mnt/data01/xrddata /mnt/data01 IS A VERY BAD CHOICE /home/xrootd IS EVEN WORSE In case of hw replacements/failures these are your best friends, KEEP THEM SIMPLE AND PRACTICAL The user running the xrootd daemon must have rwx access to them (possibly own them) XROOTD tutorial - GridKA school 2010

Aggregating mountpoints We aggregate several mountpoints into one server by giving to the xrootd daemon one more information Yes, the list of the dirs to aggregate, what else?  This is called “Cache File System” When given this information, a server will slightly change the way it places files around LOCALROOT will still hold the filenames, but they are symlinks in this case The various dirs hold the data files, with the names slightly modified (but still recognizable) In practice LOCALROOT hosts the “catalogue”, or, better, the “namespace” And it can always be reconstructed in case of disasters XROOTD tutorial - GridKA school 2010

Aggregating mountpoints Again: DO NOT PUT DATA STRAIGHT INTO MOUNTPOINTS Create a directory into each of them. In the case of the cache filesystem something like: <mntpoint>/xrddata A good name for the localroot one is <mntpoint>/xrdnamespace Of course, one of the mountpoints will contain BOTH the localroot (which acts as a namespace) AND one dir of data XROOTD tutorial - GridKA school 2010

The root user (1/2) Simple rule (the same as Apache): an xrootd/cmsd daemon REFUSES TO START AS ROOT. So, you always need a proper user for it to run (most people use ‘xrootd’) It MUST have rwx access to the data mountpoints, ev. owning them In theory it does not need a $HOME, in practice, in the more sophisticated setups there’s always some plugin that needs it. Hence, for us it’s as if it’s needed. Let’s do it. XROOTD tutorial - GridKA school 2010

The root user (2/2) In practice: Root is used only to setup the machine, create partitions/mountpoints etc. The setup of the vanilla package can be anywhere, including problematic places like /usr/bin/xrootd or /opt/xrootd or /usr/bin etc. The setup of the more sophisticated bundles is done generally in /home/xrootd Some sysadmins stick to /usr or /opt or love to put everything into an RPM package. The setup and the HOME must be in a LOCAL DRIVE, so everything works also if the machine is temporarily disconnected XROOTD tutorial - GridKA school 2010

The server machine It MUST always work, hence: Avoid dependencies to useless things E.g. AFS/NFS homes… NO! $HOME must be a local and separated partition, different from the one hosting the data This aids sleep… In general, it must be able to survive arbitrarily long network disconnections Once reconnected it has to work without intervention One of the consequences of the xrootd fault tolerance mechanism is that the traffic may come almost immediately after the reconnection Every relaxation of these is in the responsibility of the sysadmin Being called by night is generally not funny XROOTD tutorial - GridKA school 2010

Where to get it Let’s stick to the vanilla tarball for the moment 2 places: The original repo at SLAC http://xrootd.slac.stanford.edu/ The Savannah repo at CERN https://savannah.cern.ch/projects/xrootd XROOTD tutorial - GridKA school 2010

Pre-requirements A working development environment (g++, libs, etc.) Yum gcc, gcc-c++, zlib-devel The servers don’t need anything special to compile Some plugins do! E.g. Kerberos, X509 etc… The configure.classic script disables everything for which the requirements are not met For the moment we want just to do an exercise, we don’t need strange things (we will) Locate the latest stable tarball in the website(s) XROOTD tutorial - GridKA school 2010

Download and unpack XROOTD tutorial - GridKA school 2010

Configure/Compile it XROOTD tutorial - GridKA school 2010

Start it manually Let’s start our personal server: xrootd [–d] XROOTD tutorial - GridKA school 2010

It’s already working As a single, non clusterized server By default: It exports /tmp No LFN/PFN translation (identity function) Prints the log to stdout With –d we started it in DEBUG mode, so it’s quite verbose Familiarize with the log XROOTD tutorial - GridKA school 2010

URL format root://HOST/ABSOLUTEPATH HOST  host1[,host2,…hostN][:port] A random host is chosen if there are alternatives Each hostname can be DNS-aliased NB this is not DNS round-robin ABSOLUTEPATH is an absolute path, hence it starts with ‘/’ Hence, an URL looks like: root://myhost//mypath/myfile XROOTD tutorial - GridKA school 2010

Xrdcp It’s the xrootd data copy app Basic usage: xrdcp <source> <dest> Where <src> and <dest> can be: Local pathnames e.g. /home/furano/mydata.txt Root: URLS, e.g. root://host//mydata.txt XROOTD tutorial - GridKA school 2010

Xrdcp – the basics It’s a data copy program, with several features The easiest way to test a new server/cluster, just read/write into it and then check manually the presence of the files XROOTD tutorial - GridKA school 2010

The config file [xrootd.cf] Right now we just had a simple personal server. Good to play with, useless in a serious site… We need to configure it, clusterize etc. The syntax is described in the docs in the website Let’s have a quick look TONS of options may be specified, to accommodate the weirdest requirements Let’s start from the very basic ones: export : Allows a directory prefix to be exported (by default only /tmp is exported) oss.localroot : Configure the LFN<->PFN translation oss.cache : Specify mountpoints to aggregate XROOTD tutorial - GridKA school 2010

Localroot, PFN, LFN XROOTD tutorial - GridKA school 2010

The cache file system Ugly historical name, actually it’s not a cache at all(!) It’s the mechanism used to aggregate partitions The true file name is put as a symlink into the LOCALROOT The data file (slightly renamed) is put into the appropriate data partition The link points to the data file XROOTD tutorial - GridKA school 2010

Using partitions [oss.cache] XROOTD tutorial - GridKA school 2010

The ‘xrd’ command line (1/3) An UI that gathers together all the functionalities that are not related to data read/write, e.g. Stat: gives info about a file (size, date etc.) Locatesingle: find the first replica of a file in the cluster (used by PROOF to optimize its scheduling) Locateall: find all the replicas of a file Dirlist: list the content of a directory Rm: try to guess… The easiest thing to do is starting it and request ‘help’ XROOTD tutorial - GridKA school 2010

The ‘xrd’ command line (2/4) A true example. Enabling the debug mode we discover why a data server seems broken from outside In practice we are not able to connect because the firewall is closed XROOTD tutorial - GridKA school 2010

The ‘xrd’ command line (3/4) XROOTD tutorial - GridKA school 2010

The ‘xrd’ command line (4/4) We can use it in scripts Just put the command+args in the command line: xrd host[:port] cmd arg1 arg2 … argN XROOTD tutorial - GridKA school 2010

Directories and exports It may seem philosophical, but ‘pure’ xrootd handles directories in a funny way Remember: everything was designed to optimize the frequent case, i.e. open/read/write A directory in practice is not quite an entity It’s more similar to a string that prefixes a filename This means that the ‘xrd’ command line does its best to FAKE a directory structure that may not exist exactly in that form XROOTD tutorial - GridKA school 2010

Basic clustering Cmsd daemons clusterize into a tree-shaped network Xrootd daemons talk to their cmsd counterpart Redirector machine Manager Supervisor Meta-manager Data server machine XROOTD tutorial - GridKA school 2010

How clusters work Dynamic subscription, p2p-like protocol, no static lists Servers are given the name of the redirector that administrates their cell (max 64) Redirectors may be managers or supervisors (=sub- managers) to create huge clusters The protocol can pause/redirect clients explicitly and gracefully XROOTD tutorial - GridKA school 2010

How clusters work A B C Redirector Client Data Servers Cluster open file X Redirectors Cache file location 2nd open X go to C Who has file X? B go to C open file X I have C Client Redirector (Head Node) Data Servers Cluster XROOTD tutorial - GridKA school 2010

A word about security Plugins are trivial to load, that’s not the big deal XrdSec already has a good number of them, covering most of the cases (SSS, krb4/5, X509, UNIX, ALICE tokens…) Less trivial is to configure them and match their protocol’s infrastructure That’s not really xrootd stuff XROOTD tutorial - GridKA school 2010

Authentication/Authorization Xrootd splits them off completely XrdSec plugins How to authenticate a client XrdAcc plugins What to do with the authenticated client, apply permissions, etc In this tutorial we don’t have time to deal with that. It’s worth more than a tutorial only for security. BUT… in HEP there are common practices and standard configurations Often common things in the same group/experiment XROOTD tutorial - GridKA school 2010

An exercise (1h30’) Download the source tarball, compile it and start it in single server mode. Configure a private single server exporting the namespace “/mydata” The data namespace must be stored in the dir /scratch/<your_name>/xrdnamespace And the data files into /scratch/<your_name>/data1/ /scratch/<your_name>/data2 Write a 10MB data file with LFN /mydata/<yourname> using xrdcp Read it back to /dev/null, with xrdcp Verify (as a sysadmin) the correctness of the symlink and of the data file XROOTD tutorial - GridKA school 2010