AMACA [AFS Memorize And Check Application] Un tool di analisi storica per OpenAFS a supporto di ENEAGRID Alessio Rocchi AMACA – Target entities • Andrew File System: file system distribuito su WAN • Offerta di servizi basata su due process-groups principali • File Services fileserver, volserver, salvager • DB Services vlserver, ptserver (kaserver → fakeka) • Supervisione: BOS server • „Oggetti“ informativi: Servers, Partizioni e Volumi AMACA – Scenario operativo AFS per l'accesso distribuito alle informazioni Strumento integrato per il monitoraggio dello stato delle componenti AFS AMACA – generalità • • • Software a due componenti principali • INDEXER [Former developer: L.Giammarino (Caspur)] • WEB APPLICATION Attualmente in produzione su 43p.frascati.enea.it e accessibile dall'application portal rs2ced Manuale: http://www.cresco.enea.it/LA1/cresco_sp12_caspur/ AMACA – Metriche SW • • • Metriche di prodotto: • ∼ 5000 LOC su 24 files • Mean Running Time: E(TIndexer)≃3.5 min. E(TWebApp)≃? COMPLESSITA' STRUTTURALE (Metrica di McCabe) • E[V(G)WebApp]≃E[V(G)Indexer]≃5 • Raccomandato E[V(G)]<10! ROBUSTEZZA • Mean Failure Rate: FRIndexer=Number of Failures/MRT=0.01 AMACA – Indexer (1) • • • • Applicazione PERL che indicizza stato e consistenza dell'architettura AFS Basata sulle OpenAFS APIs di Norbert Gruener http://search.cpan.org/~nog/AFS-2.4.0 Esecuzione cron-driven o user-driven DBMS MySQL per lo storage dei risultati dell'analisi di nodi, processi, servizi,... Storicizzazione eventi occorsi nell'intero filesystem • Data Mining agevole per ottenere risultati altrimenti accessibili con difficoltà • AMACA – Indexer (2) • Differenziazione dello storage • • • Un DB in versione „production“ per le esecuzioni cron-driven Un DB con repliche tabellari dinamiche user-aware per le esecuzioni user-driven via web Ogni esecuzione differenzia le informazioni in base ad un ID univoco chiamato snapshot AMACA – Web Application Applicazione PHP/AJAX che fornisce un comodo strumento di interrogazione dei risultati elaborati dall'indexer AMACA – Autenticazione e security • Autenticazione basata sulle credenziali AFS • • • Meccanismi di controllo per login concorrente basato su comunicazione IPC con PAGsh. PTS membership check-up per operazioni non di sola lettura (l'esecuzione del modulo di analisi è subordinata all'appartenenza dell'utente a fra-eneagrid-amaca). Security: • • OpenSSL (HTTP transactions) Mcrypt library (crittografia RSA delle informazioni usate dal web client per il mantenimento dello stato) AMACA – Interfaccia funzionale (1) • 4 gruppi di informazioni • • • • Stato globale del sistema (sync site, stato occupazione volumi/partizioni, Max volID) Snapshot/site customization (fornisce l'accesso a tutti gli slices, e restringe la visualizzazione a un sito specifico) Allarmi (visualizza situazioni patologiche individuate all'atto della creazione dello snapshot) Menu di navigazione AMACA – Interfaccia funzionale (2) AMACA – Ulteriori allarmi • • • • • Volumi readonly mai rilasciati Volumi appartenenti a {user. / p.} senza backup Volumi duplicati Volumi RO giacenti su partizioni/server differenti rispetto ai rispettivi parent Server con indirizzi non risolvibili AMACA – Lista delle differenze - Voce di menu list differences - E' simile a un „diff“ applicato a partizioni, server e volumi su snapshot differenti. AMACA – Altre funzionalità • • Indicizzazione via web • Possibile agendo sulla Perl-icon • Realizzazione atomica via PAG shell User-friendly features • • Esecuzione di comandi Just-In-Time (vos ex,...) Facilities per la copia di dati omogenei (volumi incolonnati in report tables, ...), e per il miglioramento della visualizzazione su report lunghi. AMACA – stato dell'arte • Features già implementate in alpha-version • • • Indicizzazione di celle esterne Features da poco integrate e in fase di test • Analisi temporale con parametri custom • Analisi partizioni/volumi on demand Features in fase di progettazione • Mount points AMACA – Conclusioni • Beta testers are welcome! • Fase di produzione ancora da considerare in beta: occorre testare il software per garantire maggiore robustezza e coprire bugs eventualmente ancora non mappati. • Usability improvement • Segnalazioni/suggerimenti/bug reports [email protected]