Déploiement de la Grille avec Quattor Michel Jouvin LAL/Orsay jouvin@lal.in2p3.fr
Agenda QWG templates : pourquoi ? LCG Quattor Working Group Architecture générale La personnalisation par site Les mises à jour Références utiles 17/11/201820/9/2006 Déploiement de la Grille avec Quattor
QWG Templates : Pourquoi ? Outil de déploiement standard : YAIM Ensemble de shell scripts configurables avec des variables d’environnement Installation initiale uniquement, reconfiguration souvent problématique Souvent nécessaire de déployer un patch nécessitant une reconfiguration YAIM : machine oriented plutôt que service oriented Considère une machine dédiée à un seul service QWG Templates : service oriented Composants NCM déjà par service Les PAN templates organisés par service Possibilité de mixer les services et de reconfigurer un service sans impact sur les autres Modification cohérente des services communs Accounts, cron, montages NFS… 17/11/201820/9/2006 Déploiement de la Grille avec Quattor
LCG Quattor Working Group Emanation officielle du LCG GDB Mandat pour faciliter et coordonner l’utilisation de Quattor dans un contexte de grille Chairman : Cal Loomis Produit et maintient les PAN templates et les composants NCM nécessaires au déploiement et à la configuration du middleware LCG/EGEE Depuis LCG 2.3 Contribue à la maintenance et à l’évolution de Quattor Développement de la (Subversion) SCDB en remplacement de la CVS CDB originale 17/11/201820/9/2006 Déploiement de la Grille avec Quattor
Architecture Générale… Générer automatiquement le maximum de templates Listes de RPM par service Malheureusement listes fournies par gLite souvent incorrectes Pas de modification des templates standards requises pour les spécificités du site Configuration du site regroupé dans un template définissant des variables PAN Utilisation de valeur par défaut quand cela a un sens Utilisée uniquement si pas de définition spécifique au site Tirer parti de l’approche “poupées russes” des templates Un service low level (ex : NFS) configuré dans un template utilisé par les autres 17/11/201820/9/2006 Déploiement de la Grille avec Quattor
… Architecture Générale Services gLite : génération automatique du schema de l’information de configuration et des valeurs par défaut à partir de l’outil de configuration gLite Diminution potentielle du nombre de template à maintenir manuellement Pas utilisable pour les services provenant de LCG2 Mais templates matures 1 template définissant la configuration de chaque high level service indépendamment de l’OS Fourniture de templates pour les principaux machine types 1 ligne à inclure dans le profile d’une machine réelle Inclut la configuration de l’OS appropriée La plupart des machine types sont combinables sur une même machine Restrictions liés au middleware 17/11/201820/9/2006 Déploiement de la Grille avec Quattor
Configuration des VOs Objectif : pouvoir ajouter et/ou modifier la configuration d’une VO très simplement L’aspect le moins bien géré par YAIM 1 template définissant l’ensemble des paramètres spécifiques de la VO : accounts, VOMS, … Limiter au strict minimum le nombre de paramètres Calculer le maximum de valeur par défaut (ex : URL VOMS) Ajouter une VO : mettre son nom dans une liste Travail en cours : actuellement 2 templates par VO ! 17/11/201820/9/2006 Déploiement de la Grille avec Quattor
Exemple de Template... Tous les profils d’un même type sont identiques Type WN défini à partir d’éléments de base génériques object template profile_ipnls2005; include pro_wn; # Add repositories include repository_common; template pro_wn; # # Include base configuration of a LCG2 node include pro_lcg2_machine_config_base; # LCG-2 WN configuration include pro_lcg2_machine_config_wn; include pro_software_lcg2_machine_wn_torque; # Virtual organization configuration. include pro_vo_alice_users; include pro_vo_dteam_users; 17/11/201820/9/2006 Déploiement de la Grille avec Quattor
… Exemple de Template Définition de la configuration de base template pro_lcg2_machine_config_base; # Include static information and derived global variables. include pro_site_databases; include pro_site_global_variables; … # hardware "/hardware" = create(DB_MACHINE[escape(FULL_HOSTNAME)]); include pro_site_system_filesystems; # common site machine configuration include pro_site_config; # software packages include pro_declaration_functions_general; # Configure Bind resolver include pro_site_named_config; # Include OS version dependent RPMs include pro_os_lcg_base; 17/11/201820/9/2006 Déploiement de la Grille avec Quattor
Paramètres du Site… Variables regroupées dans un seul fichier # SITE DEFINITIONS -------------------------------------------------------- # ------------------------------------------------------------------------- variable SITE_EMAIL ?= "grid.support@grif.fr"; variable SITE_NAME ?= "GRIF"; variable SITE_LOC ?= "Orsay, France"; variable SITE_LAT ?= 48.699262; variable SITE_LONG ?= 2.170686; variable SITE_WEB?="http://grif.fr/"; variable SITE_OTHER_INFO ?= list("TIER 2", "IN2P3-CC"); variable SITE_DOMAIN ?= "lal.in2p3.fr"; variable INSTALL_DATE ?= "20060101120000Z"; # SERVICE LOCATIONS ------------------------------------------------------- variable CE_HOST ?= "grid10."+SITE_DOMAIN; variable SE_HOSTS ?= list("grid11."+SITE_DOMAIN, "grid05."+SITE_DOMAIN); variable SE_TYPES ?= nlist(SE_HOSTS[0], "disk", SE_HOSTS[1], "SE_dpm"); variable SE_ACCESS ?= nlist(SE_HOSTS[0], '/some/value', SE_HOSTS[1], '/some/other/value'); 17/11/201820/9/2006 Déploiement de la Grille avec Quattor
… Paramètres du Site variable SE_ARCH ?= nlist(SE_HOSTS[0], 'multidisk', SE_HOSTS[1], 'multidisk'); variable SE_HOST_DEFAULT ?= SE_HOSTS[0]; variable SE_HOST_DEFAULT_SC3 ?= SE_HOSTS[1]; variable SE_DPM_DISK_HOSTS ?= nlist("grid07."+SITE_DOMAIN, "1"); variable LFC_HOST ?= "grid07."+SITE_DOMAIN; variable RB_HOST ?= "grid09."+SITE_DOMAIN; variable PX_HOST ?= "grid02."+SITE_DOMAIN; variable BDII_HOST ?= "grid01."+SITE_DOMAIN; variable MON_HOST ?= "grid08."+SITE_DOMAIN; variable GRIDICE_SERVER_HOST ?= MON_HOST; variable GRIS_PORT ?= 2135; # BDII CONFIGURATION ------------------------------------------------------ # ------------------------------------------------------------------------- variable BDII_URLS ?= { urls = nlist( "CE", "ldap://"+CE_HOST+":"+to_string(GRIS_PORT)+"/mds-vo-name=local,o=grid", "LFC", "ldap://"+LFC_HOST+":"+to_string(GRIS_PORT)+"/mds-vo-name=local,o=grid", "LFCLAL", "ldap://"+'grid14.lal.in2p3.fr'+":"+to_string(GRIS_PORT)+"/mds-vo-name=local,o=grid", "RB", "ldap://"+RB_HOST+":"+to_string(GRIS_PORT)+"/mds-vo-name=local,o=grid", "PX", "ldap://"+PX_HOST+":"+to_string(GRIS_PORT)+"/mds-vo-name=local,o=grid", "MON", "ldap://"+MON_HOST+":"+to_string(GRIS_PORT)+"/mds-vo-name=local,o=grid"); 17/11/201820/9/2006 Déploiement de la Grille avec Quattor
Mettre à jour OS ou MW Récupérer les templates standard de la version RPMs requis : générés par des scripts qui analysent la description fournie par RH (comps.xml) ou par EGEE Configuration du MW : templates génériques (maintenus principalement par Cal Loomis) Création d’un nouveau cluster par copie de l’ancien mais référençant le nouveau OS ou MW Edition du fichier cluster.build.properties Déplacement des machines d’un cluster dans l’autre 1 par 1, par groupe ou l’ensemble du cluster ‘ant deploy’ Recompile les profils Notifie les clients qu’un nouveau profil est disponible 17/11/201820/9/2006 Déploiement de la Grille avec Quattor
Contrôle de l’Etat du CE Fonctionnalité originale des QWG templates manquante dans le MW standard Disponible depuis LCG-2.7.0-10 Implémenté pour MAUI uniquement Objectif : être capable de faire le drain d’un CE ou d’1 ou plusieurs WNs simplement Comment : une variable dans le profil du CE # LAL CE profile object template profile_grid10; # CE_STATUS can be used to set a non default status (e.g. Closed) for the CE. # Generally set on a per CE basis (in CE machine profile). # CE_STATUS valid values are : # - 'Production' : enabled=true, started=true (Defaults) # - 'Queuing' (job accepted but not executded) : enabled=true, started=false # - 'Draining' (no new job accepted) : enabled=false, started=true # - 'Closed' : enabled=false, started=false # Uncomment the appropriate line to drain or close this CE #variable CE_STATUS = 'Closed'; #variable CE_STATUS = 'Draining'; ... # Configure as a CE (Torque) + Site's BDII include machine-types/ce; 17/11/201820/9/2006 Déploiement de la Grille avec Quattor
Sites Utilisant Quattor… En augmentation, surtout des « gros » sites LCG Environ 20 sites « Learning curve » importante Documentation encore insuffisante mais en progrès… En fait profitable dès qu’on pense dépasser 10-20 nœuds Plus simple de mettre en œuvre dès le départ Principaux sites (mi 2005) CERN : 2000+ machines CNAF (Italie, T1) : 600+ machines NIKHEF (PB, T1) : 150+ machines FZK (All, T1) : 100+ machines DESY (All., T2) : 30+ machines, extension à 500 Tous les sites irlandais ULB-VUB (Belgique, T2) : 35+ machines GRIF : 150+ machines, réparties sur plusieurs sites, CPPM : 20+ machines 17/11/201820/9/2006 Déploiement de la Grille avec Quattor
… Sites utilisant Quattor Encore peu d’utilisation des QWG Templates Beaucoup utilisent ncm-yaim (YAIM via Quattor) Tous les inconvénients inhérents à YAIM Devrait s’accroitre avec l’amélioration de la généricité des templates standards pour LCG 2.7 et gLite 3 Plus de modification requise dans les templates standards (problèmes pour les upgrades) Migration gLite 3 a été une confirmation : aucune modification requise dans les templates du site, seulement remplacement des templates standards Des workshops réguliers entre utilisateurs et développeurs Quattor/QWG 1er : Mars 2006 au LAL Second : DESY, 18-20/10 17/11/201820/9/2006 Déploiement de la Grille avec Quattor
Trac + SCDB : Outil de Suivi… 17/11/201820/9/2006 Déploiement de la Grille avec Quattor
... Trac + SCDB : Outil de Suivi 17/11/201820/9/2006 Déploiement de la Grille avec Quattor
Documentation et Références Le site officiel : http://quattor.org Le site QWG : http://trac.lal.in2p3.fr/LCGQWG Description de l’utilisation pour la grille Description SCDB Tutorials : http://agenda.lal.in2p3.fr/fullAgenda.php?ida=a05110 http://quattor.web.cern.ch/quattor/documentation/tutori als/ 17/11/201820/9/2006 Déploiement de la Grille avec Quattor