1DSM - IRFU Les dessous de la Grille
2DSM - IRFU Les Grilles : Pourquoi ? Partage transparent de l’utilisation de ressources massivement distribuées par des utilisateurs de différentes disciplines… –“A computational grid is a hardware and software infrastructure that provides dependable, consistent, pervasive, and inexpensive access to high computational capabilities.” (The Grid, I. Foster, C. Kesselman, 1998) … pour permettre une mutualisation des coûts –agrégation de ressources existantes –infrastructure coûteuse –accès occasionnel à de grosses ressources –(dans la recherche) Permettre à des communautés à faible moyen d’accéder à des ressources significatives
3DSM - IRFU Avantages Techniques Mutualisation des développements et de la gestion des ressources entre communautés d’utilisateurs –Beaucoup de problèmes communs –Services standardisés de “haut niveau” –Des utilisateurs concentrés sur leurs “métiers” plutôt que sur les outils Particulièrement important pour les « petites » communautés Des ressources adaptées à la croissance des besoins –Possibilité de démarrer avec peu de ressources –Possibilité d’accès à plus de ressources pour la production –Les APIs de grille facilitent l’identification et l’accès transparent à de nouvelles ressources Accès aux données –Un grand volume disponible et “universellement” accessible –Partage contrôlé
4DSM - IRFU Les Différents Acteurs Utilisateurs –Scientifiques ou personnes souhaitant exécuter des jobs Organisations Virtuelles (VO) –Communauté délimitée partageant un même but, se dotant de moyen de certifier l’adhésion d’un membre (VOMS) –Possibilités de sous groupe ou statuts différents Sites et administrateurs de ressources –Ressources dans un domaine d’administration unique –Responsable de la gestion cohérente et efficace des ressources Organisations “réelles” : souvent les financeurs… –Instituts, agences de financement, gouvernement... Forums et institutions de standardisation –OASIS, OGF, W3C, IETF,...
5DSM - IRFU La Grille EGEE ? 2001 – 2004 Datagrid 2002 – ? LCG 2004 – 2006 EGEE Phase – 2008 EGEE Phase – 2010 EGEE Phase 3
6DSM - IRFU 40 million collisions per second After filtering, 100 collisions of interest per second A Megabyte of data digitised for each collision = recording rate of 0.1 Gigabytes/sec collisions recorded each year = 10 Petabytes/year of data CMS LHCbATLAS ALICE 1 Megabyte (1MB) A digital photo 1 Gigabyte (1GB) = 1000MB A DVD movie 1 Terabyte (1TB) = 1000GB World annual book production 1 Petabyte (1PB) = 1000TB Annual production of one LHC experiment 1 Exabyte (1EB) = 1000 PB World annual information production Le challenge des données du LHC Concorde (15 Km) Balloon (30 Km) CD stack with 1 year LHC data! (~ 20 Km) Mt. Blanc (4.8 Km)
7DSM - IRFU EGEE : Grille de calcul et de stockage Grille de calcul : mise en commun des ressources de calcul Grille de stockage : les calculs consomment d’énormes quantités de données, produites par les expériences –Répartition intelligente des données (T0/T1/T2) –Scheduling de transferts –Calculs sur des machines physiques proches des données
8DSM - IRFU 10 GB/s ? GB/s 30 GB/s 10 GB/s 20 GB/s 10 GB/s 30 GB/s 10 GB/s 30 GB/s 10 GB/s LCG – répartition stockage T0/T TO Canada 7190 TO FZK 5175 TO IN2P3-Lyon 2600 TO INFN-CNAF 3548 TO Netherlands 1844 TO Spain - PIC 3000 TO ASGC Taipei 7100 TO US-CMS 3947 TO UK 3277 TO US-ATLAS 1898 TO NDGF 3920 TO CERN-Analysis TO TO TO CERN-TO
9DSM - IRFU EGEE - Qui fait quoi ? NA1 : Management NA2 : Dissemination NA3 : Training NA4 : Applications (VOs) NA5 : Internationnal Cooperation & Policy SA1 : Grid Operations SA2 : Networking Support SA3 : Certification & Testing JRA1 : Middleware Engineering JRA2 : Quality Assurance (désormais inclus dans le NA1 EGEE3)
10DSM - IRFU Infrastructure de grille CESE WN LFCMONBDII WMS IRFU CESE WN LFCMONBDII WMS LAL CESE WN LFCMONBDII WMS LLR CESE WN LFCMONBDII WMS APC CESE WN LFCMONBDII WMS IPNO CESE WN LFCMONBDII WMS LPNHE GRIF
11DSM - IRFU Infrastructure de grille, suite CESE WN LFCMONBDII WMS CESE WN LFCMONBDII WMS CESE WN LFCMONBDII WMS CESE WN LFCMONBDII WMS CESE WN LFCMONBDII WMS CESE WN LFCMONBDII WMS GRIF CESE WN LFCMONBDII WMS CESE WN LFCMONBDII WMS CESE WN LFCMONBDII WMS CESE WN LFCMONBDII WMS CESE WN LFCMONBDII WMS CESE WN LFCMONBDII WMS CESE WN LFCMONBDII WMS CESE WN LFCMONBDII WMS CESE WN LFCMONBDII WMS CESE WN LFCMONBDII WMS CESE WN LFCMONBDII WMS CESE WN LFCMONBDII WMS CESE WN LFCMONBDII WMS CESE WN LFCMONBDII WMS CESE WN LFCMONBDII WMS CESE WN LFCMONBDII WMS CESE WN LFCMONBDII WMS CESE WN LFCMONBDII WMS CESE WN LFCMONBDII WMS CESE WN LFCMONBDII WMS CESE WN LFCMONBDII WMS CESE WN LFCMONBDII WMS CESE WN LFCMONBDII WMS CESE WN LFCMONBDII WMS CESE WN LFCMONBDII WMS CESE WN LFCMONBDII WMS CESE WN LFCMONBDII WMS CESE WN LFCMONBDII WMS CESE WN LFCMONBDII WMS CESE WN LFCMONBDII WMS CESE WN LFCMONBDII WMS CESE WN LFCMONBDII WMS CESE WN LFCMONBDII WMS CESE WN LFCMONBDII WMS CESE WN LFCMONBDII WMS CESE WN LFCMONBDII WMS CESE WN LFCMONBDII WMS CESE WN LFCMONBDII WMS CESE WN LFCMONBDII WMS CESE WN LFCMONBDII WMS CESE WN LFCMONBDII WMS CESE WN LFCMONBDII WMS CESE WN LFCMONBDII WMS CESE WN LFCMONBDII WMS CESE WN LFCMONBDII WMS CESE WN LFCMONBDII WMS CESE WN LFCMONBDII WMS CESE WN LFCMONBDII WMS CESE WN LFCMONBDII WMS CESE WN LFCMONBDII WMS CESE WN LFCMONBDII WMS CESE WN LFCMONBDII WMS CESE WN LFCMONBDII WMS CESE WN LFCMONBDII WMS CESE WN LFCMONBDII WMS CESE WN LFCMONBDII WMS CESE WN LFCMONBDII WMS CESE WN LFCMONBDII WMS CESE WN LFCMONBDII WMS CESE WN LFCMONBDII WMS CESE WN LFCMONBDII WMS CESE WN LFCMONBDII WMS CESE WN LFCMONBDII WMS CESE WN LFCMONBDII WMS CESE WN LFCMONBDII WMS CESE WN LFCMONBDII WMS CESE WN LFCMONBDII WMS CESE WN LFCMONBDII WMS CESE WN LFCMONBDII WMS CESE WN LFCMONBDII WMS CESE WN LFCMONBDII WMS CESE WN LFCMONBDII WMS CESE WN LFCMONBDII WMS CESE WN LFCMONBDII WMS CESE WN LFCMONBDII WMS CESE WN LFCMONBDII WMS CESE WN LFCMONBDII WMS CESE WN LFCMONBDII WMS CESE WN LFCMONBDII WMS CESE WN LFCMONBDII WMS CESE WN LFCMONBDII WMS CESE WN LFCMONBDII WMS CESE WN LFCMONBDII WMS CESE WN LFCMONBDII WMS CESE WN LFCMONBDII WMS CESE WN LFCMONBDII WMS CESE WN LFCMONBDII WMS CESE WN LFCMONBDII WMS CESE WN LFCMONBDII WMS CESE WN LFCMONBDII WMS IN2P3-CCIN2P3-LPCMSFG IPSL-IPGP IN2P3-LAPP IN2P3-CPPM CGG IN2P3-SUBATECH IN2P3-IRES IN2P3-IPNLIN2P3-LPSCSN-UCAD ESRF AuvergridIBCP-GPIO
12DSM - IRFU 250 Sites 48 Countries 50,000 CPUs 13 PetaBytes >5000 Users >200 VOs >140,000 Jobs/Day Archeology Astronomy Astrophysics Civil Protection Comp. Chemistry Earth Sciences Finance Fusion Geophysics High Energy Physics Life Sciences Multimedia Material Sciences … Thanks to EGEE (and others), production grids are reality today
13DSM - IRFU La grille … … et ses dessous
14DSM - IRFU Un Job sur la grille EGEE UI WMS CE Network Server WMProxy Workload Manager RB (match making) Information Super Market RB (match making) Task Queue MyProxy LB Job, JDL Certificat Job Status Globus Gatekeeper Jobmanager Scheduler Job, JDL Ressource Manager WN
15DSM - IRFU Job de grille M. Litmaath)
16DSM - IRFU Authentification Certificat, délégation (myproxy), sécurité –Certificat = carte de crédit –MyProxy = banque –Proxy = chèque en blanc à durée limitée VOMS –Proxy = certificat de durée limité signé par un serveur –Extension X509v3 (vérification : openssl x509 -in /tmp/x509up_u`id -u` -noout -text) –Groupes et rôles permettent le partage de données AuthN/AuthZ –Autentification : Certificats X509 –Autorisation : Assignation des groupes et rôles par le VO Manager LCAS/LCMAPS/SOAP/ACLs/Grid Mapfiles
17DSM - IRFU Une grille hétérogène 2GB / Core OS Workers : SL4.4 -> SL5.2, 32 bits, 64 bits. Réseau : vlan GRIF 10Gbps VLAN existant RHD Saclay RAP LAL LLR IPNO NR OrsayNR Jussieu NR Lyon LPNHE CCIN2P3 IRFU APC CEA
18DSM - IRFU Soumission et visualisation de jobs gEclipse - Ganga - Gridway - Pgrade - … etc
19DSM - IRFU Soumission de job collections 1 ou plusieurs exécutables 1 ensemble de paramètres, des JDL séparés, mais 1 répertoire Une seule soumission #!/bin/sh echo "Comment t'appelles tu" $1 "?" echo "Je m'appelle" $2 "!" Type = "Job"; Executable = "job.sh"; InputSandbox = {"job.sh"}; # Les arguments à passer à l'executable # Equivalent à lancer sh job.sh perroquet coco Arguments = "chien paf"; OutputSandBox = {"std.out","std.err"}; StdOutput = "std.out"; StdError = "std.err"; Type = "Job"; Executable = "job.sh"; InputSandbox = {"job.sh"}; # Les arguments à passer à l'executable # Equivalent à lancer sh job.sh perroquet coco Arguments = "souris sproutch"; OutputSandBox = {"std.out","std.err"}; StdOutput = "std.out"; StdError = "std.err"; Type = "Job"; Executable = "job.sh"; InputSandbox = {"job.sh"}; # Les arguments à passer à l'executable # Equivalent à lancer sh job.sh perroquet coco Arguments = "girafe flipflapflop"; OutputSandBox = {"std.out","std.err"}; StdOutput = "std.out"; StdError = "std.err"; glite-wms-job-delegate-proxy --delegationid mydelegID glite-wms-job-submit -d mydelegID --collection $HOME/grid/mycollection_dir/
20DSM - IRFU Soumission de jobs paramétriques 1 seul exécutable 1 JDL !! « parameters » !! vaut en fait N voulu +1 1 ou plusieurs fichiers de paramètres #!/bin/sh function main { echo "Comment t'appelles tu" $1 "?" echo "Je m'appelle" $2 "!" } arg_file=$1 arg_number=$2 arguments=$(head -n $arg_number $arg_file | tail -n 1) eval main $arguments Type = "job"; JobType = "parametric« ; Executable = "job.sh"; InputSandbox = {"job.sh", "args.txt"}; # ou args._PARAM_.txt Arguments = "args.txt _PARAM_"; Parameters=4; ParameterStart=1; ParameterStep=1; OutputSandBox = {"std._PARAM_.out","std._PARAM_.err"}; StdOutput = "std._PARAM_.out"; StdError = "std._PARAM_.err"; paf "le chien" Fanfan tulipe Titi Rominet
21DSM - IRFU Jobs DAG Dépendances inter-jobs (DAG = Directed Acyclic Graph) Type = "dag"; InputSandbox = { "/home/data/data1.txt", "/home/data/data2.txt" }; Nodes = [ nodeA = [ Description = [ JobType = "normal"; Executable = "/home/peppe/first.exe"; InputSandbox = "root.InputSandbox[0]"; OutputSandbox = "/home/data/data3.txt"; ]; nodeB = [ Description = [ JobType = "normal"; Executable = "/home/peppe/second.exe"; InputSandbox = {"root.InputSandbox[1]", root.nodes.nodeA.description.OutputSandbox[0]}; ]; Dependencies = { {nodeA, nodeB} }; nodeA nodeB
22DSM - IRFU Jobs DAG Dépendances multiples Doc : dependencies = { { nodeA, nodeB }, { nodeA, nodeC }, { nodeA, mynode }, { { nodeB, nodeC, mynode }, nodeD } }; nodeA nodeBmynodenodeC nodeD
23DSM - IRFU Les pièges à éviter Soumission directe : attention aux downtimes ! EGEE Broadcasts, downtimes, SAM/FCR : à vérifier Transferts de fichier : –vérifier que les données ont été correctement transmises –Vérifier que le SE visé (ou par défaut) est accessible ! $VO_VO_IRFU_CEA_FR_DEFAULT_SE –En cas d’erreur, utiliser un top-bdii et/ou un (close) SE différent Ne pas faire de sleep 3600 ! Toujours mettre un timeout sur une commande (de grille) réseau Préférer le « for i in … » au « while true » pour les boucles (nombre d’essais limité) –Jobs de 24 ou 36H –Stdout/Stderr X GO > 10 MO Vérifier (et publier) la présence d’un soft via système d’information Faire très attention à la taille des input/output sandboxes –Limitation espace disque WMS Utiliser le renouvellement de proxy –Limitations en durée des extentions VOMS –Intégration MyProxy/WMS
24DSM - IRFU Les pièges à éviter Eviter les mails directs aux sites (sauf si GRIF ET doute sur le problème ?) –Tracabilité de GGUS, et devoir de réponse –Lenteurs de GGUS ? Normal… Toujours penser au deni de service involontaire –Soumission de jobs (10000 ?) –Accès aux ressources (10000 jobs simultanés accédant à 1 même fichier de 1GB ?)
25DSM - IRFU Expertise technique de l’IRFU Installation, monitoring, entretien et mise à jour des machines (fiabilité) Gestion et amélioration des différents services de grille –Maîtrise de mysql, ntp, nfs, slapd, ssh, kernel, quotas, torque, maui, fairshare, space toquens, ip bonding, firewall, etc… –Mise en place de la plupart des services grille –Mise en place de redondance pour les services critiques –Automatisation des maintenance Inspection des fichiers de log et recherche de solutions aux problèmes Gestion du stockage grille (DPM, éventuellement Xrootd) Conseil aux utilisateurs –Capacité et stratégie de Grille –Orientation vers un conseil dédié, aide au portage d’application –Scripting
26DSM - IRFU Expertise technique de l’IRFU Accounting de GRIF Monitoring de GRIF –Nagios –Lemon
27DSM - IRFU Avenir et conclusion Testbeds Utility Service Routine Usage National Global EGI is not a simple continuation of EGEE, but should offer a possible solution for all European Grid infrastructure projects to achieve sustainability
28DSM - IRFU Liens Downtimes –GOC DB : CIC portal (Broadcasts, news, y compris downtimes) – GGUS (User Support) – SAM (Sites Status) –