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 ApplicationApplicazione 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