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