SEEGRID2 WP 5 www seegrid eu Upravljanje podacima

  • Slides: 26
Download presentation
SEE-GRID-2 WP 5 www. see-grid. eu Upravljanje podacima na g. Lite Dragan Okiljević Belgrade

SEE-GRID-2 WP 5 www. see-grid. eu Upravljanje podacima na g. Lite Dragan Okiljević Belgrade University Computing Center (RCUB) dragan. okiljevic@rcub. bg. ac. yu The SEE-GRID-2 initiative is co-funded by the European Commission under the FP 6 Research Infrastructures contract no. 031775

Organizacija podataka na g. Lite Podaci se čuvaju na storage elementima (SE) u obliku

Organizacija podataka na g. Lite Podaci se čuvaju na storage elementima (SE) u obliku datoteka. Svaka datoteka može imati više identičnih kopija (replika) na različitim SE. Datoteke na SE su dostupne sa bilo koje lokacije na Grid-u Katalog datoteka čuva mapiranje između datoteka i njihovih replika, sistemske i korisničke metapodatke o datotekama SEEGRID PSC 03 Meeting – Podgorica, Monte Negro, 30. 10. -2. 11. 2006 2

Storage element Servis koji pruža korisniku ili aplikaciji mogućnost skladištenja i pristupa podacima. Različiti

Storage element Servis koji pruža korisniku ili aplikaciji mogućnost skladištenja i pristupa podacima. Različiti tipovi storage elemenata § Diskovi § Pool-ovi diskova § Sistemi za masovno skladištenje podataka (MSS) sa trakama i diskovima za keširanje podataka sa traka Različiti protokoli za transfer podataka i pristup sadržaju podataka g. Lite nudi alate i API bibiloteke koji korisniku pružaju uniforman interfejs za upravljanje podacima nezavisno od tipa SE i protokola koje podržava SEEGRID PSC 03 Meeting – Podgorica, Monte Negro, 30. 10. -2. 11. 2006 3

Pronalaženje informacija o SE Za informacije o raspoloživim resursima za skladištenje podataka, njihovim osobinama

Pronalaženje informacija o SE Za informacije o raspoloživim resursima za skladištenje podataka, njihovim osobinama i statusu konsultuje se informacioni sistem Grid-a (IS) Postoji više načina da saznamo informacije o raspoloživim SE: § lcg-infosites – alat koji pruža osnovne informacije o raspolozivim resursima jedne VO lcg-infosites –-vo <ime_VO> se – lista SE za zadatu VO § LDAP upit u BDII – korišćenjem alata ili API DN: “mds-vo-name=local, o=grid” q Filter: “(&(object. Class=Glue. SA)(Glue. SAAccess. Control. Base. Rule=<VO>))” q § RGMA upit – korišćenjem alata ili API SEEGRID PSC 03 Meeting – Podgorica, Monte Negro, 30. 10. -2. 11. 2006 4

Konvencija imenovanja datoteka Grid Unique Identifier (GUID) – broj koji unikatno određuje datoteku na

Konvencija imenovanja datoteka Grid Unique Identifier (GUID) – broj koji unikatno određuje datoteku na Grid-u. guid: <broj_dužine_40_bajta> Svaka datoteka ima i logičko ime – Logical File Name (LFN) kako korisnik ne bi morao da pamti GUID datoteke ili lokacije njenih replika. lfn: /grid/<naziv_VO>/<ime_datoteke_sa_putanjom> LFN može imati aliase – više LFN referiše na istu datoteku. Repliku unikatno određuje njen Storage URL (SURL) koji se sastoji iz imena SE i string-a koji unikatno određuje repliku na SE <sfn|srm>: //<SE_host>/<simbolički_naziv_replike_na_SE> Transport URL (TURL) koriste low level alati i API. TURL se sastoji iz protokola za pristup, imena SE i privremenog lokatora replike. <protocol>: //<SE_host>/<privremeni_lokator_replike_na_SE> SEEGRID PSC 03 Meeting – Podgorica, Monte Negro, 30. 10. -2. 11. 2006 5

LFC katalog datoteka Održava mapiranje između datoteka (LFN) i njihovih replika (SURL) Organizuje LFN

LFC katalog datoteka Održava mapiranje između datoteka (LFN) i njihovih replika (SURL) Organizuje LFN u hierarhijski prostor imena § Organizacija datoteka predstavlja virtuelni fajl sistem § Operacije nad fajl sistemom: mkdir, rename, move. . . Integrisana Grid autentifikacija (GSI) § Korisnici se autentifikuju preko svojih VOMS naloga Autorizacija preko access lista (POSIX ACL) Bazična podrška za korisničke metapodatke Interfejs prema LFC katalogu § alati za pristup preko komandne linije (CLI) § API - inicijalno podržani C/C++ i Python SEEGRID PSC 03 Meeting – Podgorica, Monte Negro, 30. 10. -2. 11. 2006 6

Upravljanje podacima na g. Lite Upravljanje podacima u grid okruženju se može podeliti na:

Upravljanje podacima na g. Lite Upravljanje podacima u grid okruženju se može podeliti na: § Upravljanje logičkim datotekama (rename, move, kreiranje alias-a, dodela prava pristupa. . . ) § Upravljanje replikama (replikacija, brisanje replika, asociranje replika logičkim datotekama. . . ) § Pristup sadržaju datoteka (read, write, lseek. . . ) Specijalan slučaj upravljanja podacima je i prenos datoteka između Grid-a i lokalnih fajl sistema WN i UI Postoji više alata i API biblioteka za upravljanje podacima od kojih su neke deo g. Lite middleware-a, a neke su razvile VO SEEGRID PSC 03 Meeting – Podgorica, Monte Negro, 30. 10. -2. 11. 2006 7

Pregled API i CLI za upravljanje podacima Upravljanje logičkim datotekama Upravljanje replikama LFC LCG_UTILS

Pregled API i CLI za upravljanje podacima Upravljanje logičkim datotekama Upravljanje replikama LFC LCG_UTILS SEE-GRID File Management FTS GFAL Pristup sadržaju datoteka Deo g. Lite Podržani jezici, CLI, C/C++, Python Java SEEGRID PSC 03 Meeting – Podgorica, Monte Negro, 30. 10. -2. 11. 2006 CLI, Java C/C++, Java*, Python 8

LFC API & CLI Alati za pristup preko komandne linije (CLI) i API biblioteke

LFC API & CLI Alati za pristup preko komandne linije (CLI) i API biblioteke za programske jezike C/C++ i Python Širok skup operacija za upravljanje LFC katalogom Neke operacije mogu stvoriti nekonzistenciju u katalogu!!! Napredne funkcije § Transakcije – izvršavanje više API funkcija nad LFC katalogom uz mogućnost rollback-a ako neka od njih ne uspe § Sesije – izvršavanje više funkcija bez raskidanja konekcije sa LFC serverom man stranice za API i CLI deo g. Lite distribucije SEEGRID PSC 03 Meeting – Podgorica, Monte Negro, 30. 10. -2. 11. 2006 9

LFC API (1/2) Nazivi funkcija i struktura iz POSIX I/O API uz prefiks “lfc_”

LFC API (1/2) Nazivi funkcija i struktura iz POSIX I/O API uz prefiks “lfc_” Operacije nad LFN § § lfc_mkdir lfc_rename lfc_rmdir lfc_unlink Listanje sadržaja direktorijuma § lfc_opendirg § lfc_readdir § lfc_closedir Sistemski metapodaci o fajlu/direktorijumu § lfc_statg Alias-i § lfc_symlink § lfc_readlink § lfc_getlinks SEEGRID PSC 03 Meeting – Podgorica, Monte Negro, 30. 10. -2. 11. 2006 10

LFC API (2/2) Kontrola prava pristupa § § § lfc_access lfc_chmod lfc_chown lfc_setacl lfc_getacl

LFC API (2/2) Kontrola prava pristupa § § § lfc_access lfc_chmod lfc_chown lfc_setacl lfc_getacl Korisnički metapodaci § lfc_setcomment § lfc_getcomment § lfc_delcomment Replike § lfc_addreplica § lfc_getreplica § lfc_delreplica Mapiranje između imena korisnika/grupa i uid/gid Transakcije Sesije SEEGRID PSC 03 Meeting – Podgorica, Monte Negro, 30. 10. -2. 11. 2006 11

LFC C/C++ API – primeri (1/2) Listanje sadržaja direktorijuma lfc_DIR * dir; struct lfc_direnstatg

LFC C/C++ API – primeri (1/2) Listanje sadržaja direktorijuma lfc_DIR * dir; struct lfc_direnstatg * dptr; dir = lfc_opendirg("/grid/seegrid", ""); while(dptr = lfc_readdirg(dir)){ printf("name: %s", dptr->d_name); printf("tsize: %d", dptr->filesize); printf("tguid: %sn", dptr->guid); } lfc_closedir(dir); SEEGRID PSC 03 Meeting – Podgorica, Monte Negro, 30. 10. -2. 11. 2006 12

LFC C/C++ API – primeri (2/2) Kreiranje direktorijuma if(lfc_mkdir("/grid/seegrid/new. Dir", S_IRWXU|S_IRWXG|S_IROTH|S_IXOTH)==0) printf("Direktorijum uspesno kreiran!n");

LFC C/C++ API – primeri (2/2) Kreiranje direktorijuma if(lfc_mkdir("/grid/seegrid/new. Dir", S_IRWXU|S_IRWXG|S_IROTH|S_IXOTH)==0) printf("Direktorijum uspesno kreiran!n"); else printf("Greska pri pokusaju kreiranja direktorijuma!n"); Kreiranje alias-a lfc_symlink("/grid/seegrid/original", "/grid/seegrid/alias"); Provera prava pristupa if(lfc_access("/grid/seegrid/fajl. Ili. Dir", W_OK)==0) printf("Dozvoljen upis korisniku!n"); else printf("Zabranjen upis korisniku!n"); //R_OK – citanje, X_OK – izvrsavanje, F_OK – provera da li fajl/dir. postoji SEEGRID PSC 03 Meeting – Podgorica, Monte Negro, 30. 10. -2. 11. 2006 13

LCG_UTIL API & CLI Alati za pristup preko komandne linije (CLI) i API biblioteke

LCG_UTIL API & CLI Alati za pristup preko komandne linije (CLI) i API biblioteke za programske jezike C/C++ i Python Operacije za upravljanje replikama i njihovu registraciju u katalogu Podržava i druge kataloge, nije ograničen na LFC Svakoj API funkciji odgovara jedna CLI komanda CLI lcg-cp lcg-rep lcg-del. . . API lcg_cp lcg_rep lcg_del. . . man stranice za API i CLI deo g. Lite distribucije SEEGRID PSC 03 Meeting – Podgorica, Monte Negro, 30. 10. -2. 11. 2006 14

LCG_UTIL API Upravljanje replikama § § § lcg-cr lcg-rep lcg-cp lcg-del lcg-gt Interakcija sa

LCG_UTIL API Upravljanje replikama § § § lcg-cr lcg-rep lcg-cp lcg-del lcg-gt Interakcija sa katalogom datoteka § § § § lcg-aa lcg-ra lcg-lr lcg-lg lcg-rf lcg-uf SEEGRID PSC 03 Meeting – Podgorica, Monte Negro, 30. 10. -2. 11. 2006 15

LCG UTIL C/C++ API – primeri (1/2) Povratne vrednosti lcg_util API funkcija § int

LCG UTIL C/C++ API – primeri (1/2) Povratne vrednosti lcg_util API funkcija § int funkcije vraćaju vrednost 0 u slučaju uspeha, -1 u slučaju greške § funkcije koje vraćaju pointer vrate vrednost NULL u slučaju greške Većina funkcija prima kao argumente i LFN i SURL pa se u argumentima navodi odgovarajući prefiks: "lfn: ", "surl: " ili "guid: “ Kopiranje i registracija replike: lokalni FS -> Grid (upload) lcg_cr("file: ///home/user/src. File", "sfn: //se. phy. bg. ac. yu", NULL, "lfn: /grid/seegrid/dest. LFN", "seegrid", NULL, 1, NULL, 0, 0, NULL); guid (eksplicitna dodela) rel. putanja na SE broj paralelnih tokova ne koristi se verboznost poruka bafer za upis dodeljenog guid SEEGRID PSC 03 Meeting – Podgorica, Monte Negro, 30. 10. -2. 11. 2006 16

LCG UTIL C/C++ API – primeri (2/2) Replikacija datoteke lcg_rep("lfn: /grid/seegrid/file. To. Replicate", "se.

LCG UTIL C/C++ API – primeri (2/2) Replikacija datoteke lcg_rep("lfn: /grid/seegrid/file. To. Replicate", "se. phy. bg. ac. yu", "seegrid", NULL, 1, NULL, 0, 0); Kopiranje datoteke/replike na lokalni FS (download) lcg_cp("lfn: /grid/seegrid/file. To. Download", "file: ///home/user/local. Dest. File", "seegrid", 1, NULL, 0, 0); //zamenom prvog parametra sa "surl: ime_replike" specificira se koja replika je izvor pri download-u Brisanje datoteke lcg_del("lfn: /grid/seegrid/file. To. Delete", 1, NULL, "seegrid", NULL, 0, 0); Brisanje replike lcg_del("lfn: /grid/seegrid/file. Whos. Replica. Is. Deleted", 0, "se. phy. bg. ac. yu", "seegrid", NULL, 0, 0); //obriši repliku fajla zadatog preko LFN na storage elementu "se. phy. bg. ac. yu" SEEGRID PSC 03 Meeting – Podgorica, Monte Negro, 30. 10. -2. 11. 2006 17

SEE-GRID File Management API Nastao u toku SEE-GRID-1 projekta Java API za upravljanje logičkim

SEE-GRID File Management API Nastao u toku SEE-GRID-1 projekta Java API za upravljanje logičkim datotekama i replikama i pružanje osnovnih informacija o storage resursima Realizovan kao JNI wrapper oko LFC i LCG_UTIL API-ja Planirana integracija sa novim servisima: razvoj high level servisa za pouzdanu replikaciju FPS servis korišćenjem FTS g. Lite servisa Podrška za brz razvoj Java aplikacija koje imaju potrebu za upravljanjem podacima. Primer: komponenta VIVE SG 1 aplikcije koja služi za upravljanje podacima kroz Web interfejs SEEGRID PSC 03 Meeting – Podgorica, Monte Negro, 30. 10. -2. 11. 2006 18

SEE-GRID File Management API – dijagram klasa SEEGRID PSC 03 Meeting – Podgorica, Monte

SEE-GRID File Management API – dijagram klasa SEEGRID PSC 03 Meeting – Podgorica, Monte Negro, 30. 10. -2. 11. 2006 19

File Transfer Service (FTS) (1/2) Servis za pouzdan transfer fizičkih datoteka između SE Uvedeni

File Transfer Service (FTS) (1/2) Servis za pouzdan transfer fizičkih datoteka između SE Uvedeni koncepti § Transfer job – specificira jedan ili više transfera datoteka koji zajedno čine posao. Transfer datoteke je definisan izvorištem i odredištem. § Channel – da bi se mogao uspostaviti transfer između dva sajta potrebno je da administratori definišu kanal kojim će transfer teći. Kanal je putanja između izvorišne i odredišne lokacije za koju se mogu podesiti odredeđeni parametri kako bi se osigurao kvalitet veze. Transfer job se posašlje FTS i dobija se identifikator preko koga se može pratiti stanje posla. Stanje posla je funkcija stanja pojedinačnih transfera koji čine posao. Može biti: submitted, pending, active, cancelling, done, failed, canceled i hold. Analogija sa Workload Management Sistemom (WMS) SEEGRID PSC 03 Meeting – Podgorica, Monte Negro, 30. 10. -2. 11. 2006 20

File Transfer Service (FTS) (2/2) FTS nudi samo prenos fizičkih datoteka između SE, bez

File Transfer Service (FTS) (2/2) FTS nudi samo prenos fizičkih datoteka između SE, bez interakcije sa katalogom datoteka. FTS zamisljen kao podloga za razvoj high level servisa za prenos podataka koji bi uz interakciju sa katalogom nudili pouzdan prenos logičih datoteka. Ovakvi servisi se nazivaju FPS – File Putting Services. g. Lite trenutno ne nudi implemetaciju FPS. SEEGRID PSC 03 Meeting – Podgorica, Monte Negro, 30. 10. -2. 11. 2006 21

FTS CLI & API CLI komande § § glite-transfer-submit glite-transfer-status glite-transfer-list glite-transfer-cancel API §

FTS CLI & API CLI komande § § glite-transfer-submit glite-transfer-status glite-transfer-list glite-transfer-cancel API § Java paket za razvoj klijenata za FTS Web servis CLI i API koriste My. Proxy server za autorizaciju SEEGRID PSC 03 Meeting – Podgorica, Monte Negro, 30. 10. -2. 11. 2006 22

Grid File Access Library (GFAL) API biblioteke za programske jezike C/C++ i Python Postoji

Grid File Access Library (GFAL) API biblioteke za programske jezike C/C++ i Python Postoji Java verzija GFAL ali nije deo g. Lite Podržava i druge kataloge, nije ograničen na LFC Operacije za pristup sadržaju replika (čitanje, upis, pozicioniranje. . . ) Kod operacija koje menjaju sadržaj replike promene se ne reflektuju na ostale replike iste logičke datoteke § Za postojeće replike opasnost zbog stvaranja nekonzistencije § Korisno za kreiranje i upis nove datoteke na SE uz kasniju registraciju (korišćenjem lfc_addreplica() ili lcg_rf()) man stranice deo g. Lite distribucije SEEGRID PSC 03 Meeting – Podgorica, Monte Negro, 30. 10. -2. 11. 2006 23

GFAL API - funkcije Funkcije za rad sa logičkim datotekama i replikama (LFN, GUID,

GFAL API - funkcije Funkcije za rad sa logičkim datotekama i replikama (LFN, GUID, SURL, TURL) § § § gfal_open gfal_read gfal_lseek gfal_stat gfal_close Funkcije za rad sa replikama (SURL, TURL) § gfal_creat § gfal_write § gfal_rename Funkcije koje zahtevaju specificiranje protokola za pristup (TURL) § § § § gfal_access gfal_chmod gfal_mkdir gfal_opendir gfal_closedir gfal_readdir gfal_rmdir gfal_unlink SEEGRID PSC 03 Meeting – Podgorica, Monte Negro, 30. 10. -2. 11. 2006 24

GFAL C/C++ API – primer Čitanje sadržaja datoteke / replike int fd, ret_val; char

GFAL C/C++ API – primer Čitanje sadržaja datoteke / replike int fd, ret_val; char *read_buffer; char *file_to_read; //moze se navesti: lfn, guid, SURL ili TURL struct stat file_stat; if ((fd = gfal_open(file_to_read, O_RDONLY, 0644)) < 0) { perror("gfal_open"); exit(1); } else printf("Datoteka %s uspesno otvorenan", file_to_read); if (gfal_stat(file_to_read, &file_stat) < 0) perror ("gfal_stat"); else { printf("Velicina datoteke je %dn", file_stat. st_size); read_buffer=(char *)malloc(file_stat. st_size); } if ((ret_val = gfal_read(fd, read_buffer, file_stat. st_size)) < 0 ) { perror("gfal_read"); } else printf (“Procitano %d bajtova fajla %sn", ret_val, file_to_read); gfal_close(fd); free(read_buffer); SEEGRID PSC 03 Meeting – Podgorica, Monte Negro, 30. 10. -2. 11. 2006 25

Reference g. Lite User Guide § https: //edms. cern. ch/file/722398//g. Lite-3 -User. Guide. pdf

Reference g. Lite User Guide § https: //edms. cern. ch/file/722398//g. Lite-3 -User. Guide. pdf SEE-GRID Wiki § http: //wiki. egee-see. org/index. php/SEE-GRID_Wiki LFC File Catalogue Documentation § https: //uimon. cern. ch/twiki/bin/view/LCG/Data. Management. Documentation LCG_UTIL CLI & API Documentation § http: //grid-deployment. web. cern. ch/griddeployment/documentation/LFC_DPM/lcg_util/html/ SEE-GRID File Management Java API § http: //wiki. egee-see. org/index. php/SEE-GRID_File_Management_Java_API FTS CLI Documentation § https: //edms. cern. ch/file/591792/1/EGEE-TECH-591792 -Transfer-CLI-v 1. 0. pdf FTS Java API Documentation § https: //edms. cern. ch/file/591792/1/EGEE-TECH-591792 -Transfer-Java-v 1. 0. pdf GFAL API Documenation § http: //grid-deployment. web. cern. ch/grid-deployment/documentation/LFC_DPM/gfal/html/ SEEGRID PSC 03 Meeting – Podgorica, Monte Negro, 30. 10. -2. 11. 2006 26