RAPORTUL STIINTIFIC SI TEHNIC (RST) ETAPA DE EXECUTIE NR. : 2 CU TITLUL : Implementarea locala a unui sistem de calcul distribuit de analiza a datelor provenite din experimente la energii inalte RST - Raport stiintific si tehnic in extenso* 1. Cuprins : Planificarea implementarii sistemului PROOF Sistemul hardware Sistemul de operare Prezentarea sistemului si serviciilor Scalla (xrootd) Sistemul PROOF Configurarea serviciilor PROOF 2. Obiectivele generale; O1 : Identificarea si validarea unei solutii hardware si software optime pentru necesitatile de procesarea paralela in scopul prelucrarii de date experimentale si simulate la energiile LHC-ului. 3. Obiectivele etapei de executie; O1 : Implementarea sistemului de calcul distribuit PROOF. 4. Rezumatul etapei (maxim 2 pagini); Acesta etapa a fost executata prin indeplinirea urmatoarelor activitati Activitate I.1 : CO : Achizitia si instalarea sistemului de calcul distribuit. In aceasta etapa s-a urmarit implementarea unui cluster PROOF necesar analizelor interactive a datelor Monte Carlo si experimentale de la experimentul ALICE. In urma documentarii asupra acestui sistem si prin comunicarea cu persoanele responsabile de la ALICE Computing a fost implementat acest sistem PROOF.
5. Descrierea stiintifica si tehnica, cu punerea in evidenta a rezultatelor etapei si gradul de realizare a obiectivelor; (se vor indica rezultatele) 5.1 Planificarea implementarii sistemului PROOF Sistemul de calcul paralel PROOF e un middleware ce pune la dispozitia utilizatorului prin intermediul unui API (Application Programming Interface) din cadrul pachetului ROOT posibilitatea de calcul paralel interactiv. Fundamentul acestui sistem consta intr-un sistem hardware (mai multe servere) si sistemul de operare corespunzator. 5.1.1 Sistemul hardware Intru-cit acest sistem de calcul se bazeaza pe arhitectura master-slave, pentru serverul cu rolul de master a fost ales un Quad Core 3GHz cu 4 GB ram. Acest specificatii sunt indestulatoare (cu amendamentul ca memoria necesara e direct proportionala cu numarul de procese simultane folosite in sistem si de marimea outpului returnat de acestea) in aceasta prima faza a proiectului. Pentru worker-node a fost ales un sistem Dual Socket cu procesoare Quad Core (sistem cu 8 core-uri). 5.1.2 Sistemul de operare Sistemul de operare ales este Rocks, o clona a RHEL cu extensii pentru administrarea clusterelor HPC (High Performance Computing). Arhitectura unui cluster Rocks e descrisa in figura de mai jos. Serverul central (frontend) are si rolul de gateway si firewall intre reteaua interna a nodurilor de calcul si internet. Acesta contine un mecanism facil de instalare a pachetelor software in cluster si posibilitatea de administrare centralizata. Relatiile intre pachetele software cit si informatiile de configurare a lor sunt organizate conform unui graf in care nodurile reprezinta pachetele iar conexiunile reprezinta dependintele logice. Un exemplu se poate vedea mai jos (portiune din profilul grafului al pachetelor instalate)
5.2 Prezentarea sistemului si a serviciilor Scalla (xrootd) Nucleul softwareului Scalla este constituit din doua componente : un server de fisiere numit xrootd si un server de clusterizare numit oldb. Serverul xrootd a fost dezvoltat pentru cadrul de lucru de analiza ROOT pentru a servi fisiere root. Totusi acest server nu tine seama de tipul de fisier si pune la dispozitie acces la nivel de byte pentru orice fisier. Serverul oldb a fost original dezvoltat pentru a clusteriza si a balansa sarcina in servere de baze de date Objectivity/DB AMS. Pentru ca oldb a fost proiectat sa lucreze independent de serverul de date a fost usor de folosit cu xrootd. Nici o componenta din Scalla cere ca xrootd sa fie rulat cu oldb. In medii simple xrootd poate fi folosit in mod individual. Dar pentru o scalare efectiva cind exista mai multe servere de fisiere, oldb este folosit sa uneasca toate serverele xrootd intr-un spatiu de nume comun. 5.2.1 Arhitectura xrootd Serverul xrootd este proiectat sa ofere acces de tip POSIX la fisiere si la directoarele ce le contin. Arhitectura este extensibila in sensul ca se bazeaza puternic pe o componenta de tip plug-in la momentul rularii, astfel incit noi caracteristici pot fi adaugate cu deranj minim. In figura de mai jos sunt descrise componentele plug-in si locatiile unde se insereaza.
5.2.2.1 Componenta xrd Componenta de baza este xrd. Aceasta componenta e responsabila pentru managementul conexiunilor, al thread-urilor, al buffer-ului de date si al protocolului. Intru-cit xrd este responsabil pentru un set de functii compact a fost usor de optimizat sa la faca foarte bine. De exemplu managementul conexiunii a fost proiectat sa utilizeze cel mai eficient mecanism pentru fiecare sistem de operare. Managementul buffer-ului de date este optimizat sa ofere alocare si dealocare rapida a buffer-elor IO la limita paginilor. 5.2.2.2 Componenta xroot Din start componenta ce ofera protocolul xroot este link-ata static cu xrd. Dupa cum a fost mentionat, protocoale aditionale pot fi specificate si xrd le incarca la momentul rularii din respectivele librarii. De exemplu sistemul PROOF (din cadrul ROOT) atit protocolul xroot cit si un protocol special ce ofera acces paralel la servere de analiza multiple. 5.2.2.3 Componenta de autentificare Componenta de autentificare XrdSec se insereaza in componenta de protocol xroot. Mai multe protocoale de autentificare pot fi utilizate de vreme ce xroot este folosit doar pentru incapsularea interactiilor client/server cerute de protocol. In prezent pot fi utilizate GSI, Kerberos 4 si 5 si autentificare cu parola. Protocoale aditionale pot fi implementate si plasate in librarii publice. 5.2.2.4 Componenta sistemului de fisiere logic Componenta XrdSfs de asemeni se insereaza in componenta xroot. Interfata la sistemul de fisiere foloseste un model extins de fisere orientat obiect punind la dispozitie un set intreg de operatii POSIX. 5.2.2.5 Componenta de autorizare Componenta de autorizare XrdAcc este sustinuta de componenta speciala de system de fisiere XrdOfs. Implementarea initiala este legata static xu XrdOfs si ofera acces control de tip ACL prin liste de capabilitati in spatiu de nume. Componenta de autorizare foloseste informatii de autentificare oferite de XrdSec pentru a efectua decizii de acces de fisier compatibile POSIX. 5.2.2.6 Componenta sistemului de fisiere fizic Aceatsa componenta (XrdOss) e sustinuta de componenta XrdOfs. Impelmentarea default e legata static de XrdOfs si ofera acess POSIX la fisiere fizice. 5.2.2.7 Componenta Name2Name Aceasta componenta (XrdOucN2N) e un plug-in selectabil la rulare pentru XrdOss. Aceasta componenta e responsabila pentru traducerea unui nume logic de fisier la un nume de fisier fizic.
5.2.2 Sistemul PROOF Sistemul PROOF foloseste abordarea de multi-process pentru paralelizare. Aceasta abordare permite adaptarea la scenarii heterogene si de asemeni cere mai putine lucruri din partea codului utilizatorilor. Arhitectura pe mai multe nivele Master-Lucrator Clientul e utilizatorul ce doreste sa foloseasca resursele pentru a rula un task. Master-ul e punctul de acces la cluster : parcurge cererea clientului si distribuie munca la serverele de lucru apoi colecteaza si uneste rezultatele. 5.2.1 Configurarea serviciilor PROOF Configurarea plugin-ului PROOF pentru XROOTD XrdProofdProtocol este o implementare a clasei de protocol generice XrdProtocol. Clasa este compilata intr-o librarie dedicata numita libxrdproofd si se gaseste in $ROOTSYS/lib. In xpd.cf se gasesc directivele de configurare descrise mai jos. Pentru ca xrootd sa incarce protocolul, se foloseste directiva Scalla xrd.protocol : ### Load the XrdProofdProtocol to serve PROOF sessions if exec xrootd xrd.protocol xproofd:1093 libxrdproofd.so fi Fisierul text xpd.cf mentionat mai sus contine directivele de guverneaza comportarea XrdProofdProtocol. Pentru a pune la dispozitia mai multor useri PROOF si pentru a le asigura siguranta domeniilor de procesare, daemonul trebuie pornit cu privilegii de super-user. Pentru acest scop xproofd pune la dispozitie optiunea de linie de comanda -R urmata de numele de utilizator neprivilegiat. Este de asemeni posibila fortarea unui demon neprivilegiat pentru a servi mai multi utilizatori folosind directiva xpd.multiuser : ### Force the daemon to serve multiple user ### no matter the process privileges xpd.multiuser 1
Definirea unui grup de utilizatori Grupuri de utilizatori pot fi definiti in PROOF prin intermediul fisierului group. Acest fisier e incarcat prin directiva : xpd.groupfile /etc/proof/groupfile Definirea unui set de workers sau submasters Lista de workers pentru un cluster PROOF se defineste in fisierul de configurare XROOTD prin directiva xpd.worker Formatul acestei directive e urmatorul : xpd.worker role host options Pentru masinile multicore se poate folosi optiunea repeat : # The workers, listening on port 2093 xpd.worker worker proofwrk[1,2] port=2093 repeat=4 Autentificarea Initial autentificarea e inchis si trebuie explicit pornita in fisierul de configurare xrootd. Autentificarea este efectuata folosind modulele de securitate ale xrootd. Toate plugin-urile protocolului au nevoie de framework-ul de securitate sa fie incarcat astfel incit toate directivele de securitate trebuie sa aiba la baza directiva generica: xpd.seclib libxrdsec.so Autentificare cu parola Modulul de autentificare cu parola poate folosi fie un fisier dedicat cu parole sau fisierul de parole al sistemului. Pentru pastrarea credentialelor in memorie se foloseste parametru '-keepcreds' in linia sec.protocol : xpd.sec.protocol pwd -keepcreds Pentru folosirea parolelor userilor din sistem (adica inregistrati in /etc/passwd) trebuie folosita optiunea '-upwd' : xpd.sec.protocol pwd -keepcreds -dir:/etc/xrd -upwd:2 -cryptfile:.rootdpass Pentru a porni verificarea in /etc/passwd (sau /etc/shadow) xpd.sec.protocol pwd -keepcreds -syspwd Autentificare GSI Autentificarea GSI (Globus Security Infrastructure) se foloseste de X509 certificates pentru a executa autentifcarea cu logare unica. Pentru a porni crearea unui certificat proxy reprezentind clientul pe masina server avem nevoie de optiunea '-dlgpxy:1' xpd.sec.protocol gsi -dlgpxy:1 REZULTATE Ca finalizare a documentarii asupra servicului de procesare paralela PROOF a fost configurat un sistem (ISS Analysis Facility ISSAF) accesabil pentru monitorizare la issaf.spacescience.ro Acest sistem va fi folosit pentru executia urmatoarelor etape in activitatea de cercetare a datelor experimentale de la experimentul ALICE.