Slides - Agenda Catania
Transcript
Slides - Agenda Catania
CT 20/05/2010 AMGA metadata catalogue Andrea Cortellese Corso/Tutorial per gli Istituti Tecnici Industriali Catania, 20 Maggio 2010 Grid Tutorial per gli Istituti Tecnici Industriali Outline • • • • • • • • • Introduzione ad AMGA Funzionamento del servizio Terminologia utilizzata Tipi di dati supportati Sicurezza del servizio Primo accesso ad AMGA Utilizzare la linea di comando Utenti, gruppi e ACL Utilizzo della replicazione CT 20/05/2010 Grid Tutorial per gli Istituti Tecnici Industriali 22 / 20 Cos'è AMGA • AMGA è un servizio interno al middleware gLite capace di memorizzare metadati (Informazioni che descrivono un insieme di dati ES: genere di un film) AMGA Server List of LFNs Selected Movie Files QUERY: Tutti i film del genere “Animazione” CT 20/05/2010 CT 20/05/2010 Grid Tutorial per gli Istituti Tecnici Industriali 33 / 21 Come funziona AMGA • Attraverso gli storage element della Grid, AMGA memorizza i dati su file, associando in essi i relativi metadati, quindi si rifà all'organizzazione dei file su GRID – LFC memorizza i file sugli storage element ad un livello più alto che nasconde agli utenti il percorso fisico del file, utilizzando un percorso LFN – AMGA utilizza lo stesso sistema, ma fornisce più informazioni su ogni file, che sono la serie di metadati associati ad ognuno di essi. …/trailers/ moviefile_1.avi moviefile_m.avi italian/ ita_movie_1.avi … spanish/ es_movie_1.avi … …/trailers/ moviefile_1.avi moviefile_m.avi italian/ List of attributes: ita_movie_1.avi Name : Madagascar … Genre : Animation spanish/ Duration: 90 es_movie_1.avi Cast : …. … CT 20/05/2010 CT 20/05/2010 Grid Tutorial per gli Istituti Tecnici Industriali 44 / 21 Terminologia in AMGA FS Analogy • Entries collection_1/ – I file memorizzati su storage con i metadati entry_1 • Attribute entry_2 Integer … Char – Coppie nome attr. - tipo collection_2/ Date • Schema … entry_1 – Insieme di attributi entry_2 … • Collection – Insieme di voci associate con lo schema • Metadata – Lista di attributi (inclusi i loro valori) associati con le entries Entries Title Genre … 60a203439689 Titanic Drammatic … /grid/gilda/movies/tit.avi 4c53ee64846a Avatar Adventure … /grid/gilda/movies/av.avi … … … … LFN … CT 20/05/2010 CT 20/05/2010 Grid Tutorial per gli Istituti Tecnici Industriali 55 / 21 Tipi di dati utilizzati AMGA PostgreSQ integer L MySQL float double precision varchar(n) character varying(n) int timestamp text Oracle SQLite number(38) int int double precision float float float character varying(n) varchar2(n) varchar(n) string int timestamp w/o TZ datetime text text Pyton unsupported timestamp(6) long time(unsuppo rted) text string float numeric(p,s) numeric(p.s) numeric(p.s) numeric(p.s) numeric(p.s) • Usando i tipi di dati indicati, I metadati possono essere facilmente spostati verso ciascuno dei back-ends AMGA supportati (DB Migration) • Ci possono essere tipi di dati più specifici supportati dal back-end, spesso non portabili (Es: PostgreSQL Network Address o Geometrici). • Sono eseguiti i tipi Oracle, MySQL e PostgreSQL Si suggerisce l'uso delle funzioni uuencode/uudecode (shareutils) per ottenere in output un formato testuale correttamente interpretato dal binario. CT 20/05/2010 CT 20/05/2010 Grid Tutorial per gli Istituti Tecnici Industriali 66 / 21 Esempio di Metadati AMGA collection: /gilda/demo/trailers/ Attributi della collection: >> >> >> >> >> >> >> >> Title varchar Duration int Genre varchar Cast varchar Collection entries: /gilda/demo/trailers/ madagascar.avi moulinrouge.avi … Valori degli Attibuti >> >> >> >> >> madagascar.avi madagascar 15 animation Ben Stiller;Chris Rock;David Schwimmer;Jada Pinkett … CT 20/05/2010 CT 20/05/2010 Grid Tutorial per gli Istituti Tecnici Industriali 77 / 21 AMGA usato come db • Nonostante AMGA sia stato progettato per gestire cataloghi di metadati, facendo le seguenti assunzioni può essere usato come dbms – Collection ÅÆ DB Table – Schema ÅÆ Table Schema – Attribute ÅÆ Schema Column – Entry ÅÆ Table row/record • Le tabelle sono impostate in una singola tabella (RDBM) o organizzate gerarchicamente (OODBM). Collection/Table Entry/RowId(Oracle) Attr_1/Col_1 Attr_2/Col_2 … Attr_2/Col_2 GUID_1 RecVal(1,1) RecVal(1,2) … RecVal(1,n) GUID_2 RecVal(2,1) RecVal(2,2) … RecVal(2,n) … … … … RecVal(m,n) … GUID_m CT 20/05/2010 CT 20/05/2010 … RecVal(m,1) RecVal(m,2) Grid Tutorial per gli Istituti Tecnici Industriali 88 / 21 Interagire con AMGA • Gli utenti possono interagire con AMGA in due modi: – Streaming front end (TCP) / amgad • CLI interactive session: mdclient mdjavaclient • CLI single command: mdcli • APIs (C++, Java, Python, Perl, PHP) – SOAP frontend (WSDL) / mdsoapserver CT 20/05/2010 CT 20/05/2010 Grid Tutorial per gli Istituti Tecnici Industriali 99 / 21 Sicurezza in AMGA • Autenticazione del Client basata su: – Username/password – Certificati X509 generali (basati su DN) – Certificati Grid-proxy (basati su DN) • Supporto VOMS: – Mappa degli attributi VO per gli utenti AMGA definiti – Mappa dei ruoli VOMS per gli utenti AMGA definiti – Mappa dei gruppi VOMS per i gruppi AMGA definiti • Controllo d'accesso, le entry e le collection devono avere – Permessi Unix like per utenti e gruppi – Definizione delle ACL (per le collection e le entry) • Connessione – Attraverso connessioni client/server SSL sicure CT 20/05/2010 CT 20/05/2010 Grid Tutorial per gli Istituti Tecnici Industriali 10 10 / 21 Primo accesso su AMGA • Si può accedere attraverso login standard o certificato • Nella directory di lavoro bisogna creare il file mdclient.config: – Serve un account sul server AMGA, un proxy valido e un certificato personale. Gli utenti del tutorial useranno il server amga.ct.infn.it – Si può usare il modello /opt/glite/etc/mdclient.config specificando: HOST: amga.ct.infn.it Port 8822 Il nome di login (NULL) Il flag del Certificato • Digitando il comando ‘mdclient’ puoi accedere alla console di AMGA e si può creare la collezione di dati desiderata sullo spazio di lavoro assegnato • Si può anche usare il comando ‘mdcli’ per eseguire un singolo CT 20/05/2010 comando sul server AMGA. CT 20/05/2010 Grid Tutorial per gli Istituti Tecnici Industriali 11 11 / 21 La linea di comando • Creare una collection – createdir <path>/<collection_name> [inherits] • Associare uno schema alla collection – addattr <path>/<collection_name> <attr_name> <attr_type> [<attr_name> <attr_type>] … • Lista degli Attributi – listattr <path>/<collection_name> • Rimuovere Attributi – removeattr <path>/<collection_name> <attr_name> • Rinominare Attributi – renameattr <path>/<collection_name> <attr_name> • Aggiungere entry e valori agli attributi – addentry <path>/<entry_name> <attr_name> <attr_value> [<attr_name> <attr_value>] … • Settare un valore ad un attributo – setattr <path>/<entry_name> <attr_name> <attr_value> [<attr_name> <attr_value>] … • Lista delle entry CT 20/05/2010 – listentries <path>/<collection_name> CT 20/05/2010 Grid Tutorial per gli Istituti Tecnici Industriali 12 12 / 21 Esempio utilizzo linea di comando • Per predere I dati da un catalogo AMGA si può utilizzare il comando selectattr o una query SQL-like: Query> selectattr .:FILE .:id .:temp .:hum .:pressure 'id=1' Query> SELECT id, temp, hum, pressure FROM . WHERE id=1 >> 1 >> 1 >> 0.5 L'attributo FILE può essere usato come campo del DB al posto dell'ID Su AMGA disponibile la notazione/comandi presenti su filesystem >> 34.4 >> 23.4 • Si può riempire automaticamente il DB con uno script: mdcli "addattr $1/meteo/locations code varchar(4)" mdcli "addattr $1/meteo/locations name varchar(20)" mdcli "addattr $1/meteo/locations latitude varchar(10)" mdcli "addattr $1/meteo/locations longitude varchar(10)" php load-parser.php "locations.txt“ "$1/meteo/locations” CT 20/05/2010 CT 20/05/2010 Grid Tutorial per gli Istituti Tecnici Industriali 13 13 / 21 Utenti e Gruppi • AMGA mappa gli utenti client sugli utenti e gruppi AMGA configurati, seguendo la notazione: – LOGIN name – X509/GridProxy DN – VOMS Groups and Roles • Utenti e gruppi sono gestiti POSIX like Query> ls –l >> drwxr-x gilda Query> ls –l trailers >> drwxr-x gilda >> drwxr-x gilda >> -rwxr-x gilda >> -rwxr-x gilda >> -rwxr-x gilda /gilda/demo/trailers /gilda/trailers/italian /gilda/demo/trailers/remark madagascar.avi moulinrouge.avi madagascar.avi d rwx rwx rwx (user, group, others) CT 20/05/2010 CT 20/05/2010 Grid Tutorial per gli Istituti Tecnici Industriali 14 14 / 21 Access Control Lists • AMGA permette agli utenti di definire ACLs per – Collections – Entries • Usare acl_show o stats <collection|entry> Query> acl_show trailers >> gilda rwx >> gilda:users rwx >> system:anyuser rx >> madagascar.avi Query> stat madagascar.avi >> /gilda/demo/trailers/madagascar.avi >> entry >> rwx >> r-x >> gilda >> CT 20/05/2010 CT 20/05/2010 Grid Tutorial per gli Istituti Tecnici Industriali 15 15 / 21 Utilizzo della replicazione • AMGA fornisce un meccanismo di replicaz./federaz. • Motivazione – Scalabilità – Supporta centinaia/migliaia di utenti concorrenti – – – – Distribuzione geografica – Nasconde la latenza di rete Reliability – Non ci sono punti singoli di fallimento DB Independent replication – Sistemi DB eterogenei Disconnected computing – Accesso Off-line (con laptops) • Architettura – Replicazione asincrona – Scritture Master-Slave sono consentite solo sul master • Replicazione a livello Applicazione – Replicare Metadati con comandi AMGA (dump) • Replicazione Parziale – Supporta replicazione solo dei sotto-alberi della gerarchia di metadati CT 20/05/2010 CT 20/05/2010 Grid Tutorial per gli Istituti Tecnici Industriali 16 16 / 21 Tipi di replicazione Full Replication Partial Replication Federazione Proxy CT 20/05/2010 CT 20/05/2010 Grid Tutorial per gli Istituti Tecnici Industriali 17 17 / 21 Importazione database • Ogni server AMGA fa riferimento ad un DB backend dedicato – Oracle, MySQL, PostgreSQL, mSQL, other (UnixODBC) • Importazione di Database: 2 possibilità – Importare tabelle dal DB all' AMGA DB Backend – Importare l' AMGA DB Backend su tabelle DB hosting • Usare il comando import da root per “montare” la tabella nella gerarchia di collection AMGA. Query> whoami >> root Query> createdir world Query> cd world Query> import world.City world/City Query> import world.Country world/Country Query> import world.CountryLanguage world/CountryLanguage Query> acl_add /world/ gilda:users rx Query> acl_show /world >> root rwx >> gilda:users rx >> system:anyuser rx CT 20/05/2010 CT 20/05/2010 Grid Tutorial per gli Istituti Tecnici Industriali 18 18 / 21 Referenze • AMGA Web Site http://cern.ch/amga • AMGA Basic Tutorial https://grid.ct.infn.it/twiki/bin/view/GILDA/AMGAHandsOn • AMGA Manual http://amga.web.cern.ch/amga/downloads/2.0/amga-manual_2_0_0.pdf • AMGA API Javadoc http://amga.web.cern.ch/amga/javadoc/index.html • AMGA API PHPdoc and download http://amga.web.cern.ch/amga/php/amga-php/MDClient.html http://jra1mw.cvs.cern.ch/cgi-bin/jra1mw.cgi/org.glite.amga.api-php/ • gLibrary https://glibrary.ct.infn.it/glibrary_new/index.php CT 20/05/2010 CT 20/05/2010 Grid Tutorial per gli Istituti Tecnici Industriali 19 19 / 21 Domande? CT 20/05/2010 CT 20/05/2010 Grid Tutorial per gli Istituti Tecnici Industriali 20 20 / 21 Sessione Pratica - Login sulla UI glite-tutor con uno degli utenti catania01..20 - Accertarsi che il proxy sia disponibile o digitare voms-proxy-init –voms gilda - Use wget for the archive at: http://grid.ct.infn.it/~cortellese/AMGA-samples.tar.gz - Usare tar –xvzf sample.tar.gz sulla home dir nella UI - Usare voms-proxy-info per ottenere il percorso completo dove si trova il proxy - Nella cartella AMGA-samples, edit Makefile con il tuo utente e certificato - Ora si possono provare tutti i target di esempio ad ogni livello: make load show load-php show-php load-java show-java clean NOTE: load-java necessita di settare CLASSPATH prima -> Quando il db è caricato, guardare mdclient.config e la shell mdclient -> Eseguendo ogni Target, guardare anche I codici sorgenti CT 20/05/2010 CT 20/05/2010 Grid Tutorial per gli Istituti Tecnici Industriali 21 21 / 21