Slides - indico in2p3

Transcription

Slides - indico in2p3
Gestion de production au
Centre de Calcul de l'IN2P3.
Une approche utilisateur
Pascal CALVAT
Yonny CARDENAS
Avec la collaboration de
Thomas KACHELHOFFER
Centre de Calcul IN2P3, le 8 Avril 2011
Contenu
●
●
Motivations
●
Contexte
●
Problématique
DTM (Distributed Task Manager)
●
Principes
●
Architecture
●
Implémentation
●
Tests
●
Travail futur
Motivations
●
Contexte
●
●
●
Mission du CC-IN2P3: aider les scientifiques à faire
la recherche grâce à son infrastructure et services
informatiques.
Promouvoir un haut niveau de satisfaction des
chercheurs (utilisateurs) des services du Centre de
Calcul.
Optimisation de procédures permettant une bonne
utilisation de l'infrastructure et services mutualisés.
Motivations
●
Contexte
●
●
●
●
Projets de recherche: mise en place des workflow
complexes (traitements et calculs liés aux
données): lancement et contrôle de centaines ou
milliers de jobs.
Au CC-IN2P3 ils sont mis en place par les
utilisateurs eux-mêmes.
Travail conséquent avec des résultats de qualité et
d'efficacité variable (scripts de gestion de
production).
Fort impact sur la gestion et l'utilisation globale des
ressources et services
Problématique
●
L'utilisateur doit lancer (relancer) et surveiller
des quantités significatives de jobs. Quelques
effets souvent constatés:
●
●
●
Pics violents de soumission (beaucoup de jobs en
queue)
Saturation des ressources partagées: accès
massive et concurrent (ex. systèmes de stockage)
Utilisation non-optimale de ressources: temps en
machine très court, tous les jobs téléchargent et
transfèrent les mêmes données/fichiers.
Problématique
●
●
Impossibilité de faire des soumissions basées
en dépendances (ex. job B soumis si job A a
été bien exécuté)
Impossibilité de soumettre le même job sur une
autre infrastructure sans intervention:
●
●
Le job est spécifique à une infrastructure
particulière (différents commandes/outils pour les
différentes infrastructures: BQS, SGE, Grille,...)
Utilisateur: beaucoup d'effort pour la gestion de
la production au détriment du code métier
spécifique de l’application.
Problématique
●
Manque de notion de «production» au critère
de l'utilisateur (jobs relativement homogènes)
●
●
●
●
Des actions qui agissent sur ces entités,
démarrage, arrêts, …
Système d'information qui supporte ces notions
Possibilité de donner des priorités entre les tâches
de l'utilisateur
Régulation de la soumission selon la charge et
disponibilité des ressources: (ex. arrêter la
soumission si la production en cours ne
progresse pas ).
Proposition
●
●
●
●
●
●
Changer d'approche:
●
1 job == 1 tâche
●
1 job == 1 ou plusieurs tâches
Tâches génériques, indépendantes de
l'infrastructure
L'utilisateur prépare la tâche, et ne s'occupe plus
de la soumission et surveillance de jobs
Un job standard exécute toutes les tâches
possibles dans le temps qui lui a été assigné.
Un job est soumis s'il a des tâches à exécuter.
Un job en exécution meurt s'il n'y a pas de tâche à
exécuter
DTM
Distributed Task Manager
DTM
Base de
données
Client
WN
Job Agent
WN
Job Agent
Job Manager
Job Agent
TACHE
WN
JOB
DTM et JJS/JSAGA
Base de
données
Client
CLUSTER
LOCAL
Job Agent
Job Agent
BQS/SGE
Job Manager
Job Agent
TACHE
GRILLE
JOB
DTM: Principe
●
●
●
●
L'utilisateur dispose d'un mode commande afin
de créer des tâches
Ces tâches sont stockées dans une base de
données relationnelles
L'utilisateur lance un job manager sur la classe
V.
Le job-manager lance des jobs agents qui
consommeront les tâches
DTM: Job manager
●
●
●
●
Le job manager est lancé sous le compte de
l'utilisateur via la commande dtm-start
Connaissances minimales sur le scheduler de
batch pour lancer dtm-start
Son rôle est de scruter la liste des tâches et de
lancer les jobs agents permettant de
consommer les tâches.
Les jobs agents sont lancés de façon régulière
en fonction des ressources de calcul
disponibles et des tâches restantes
DTM: Job agent
●
●
●
●
Le job agent est lancé par le job manager
Job standardisé: identique pour tous les
utilisateurs
Il permet le regroupement de plusieurs tâches
au sein d'un seul job
Il permet de dissocier l'association habituelle 1
tâche = 1 job. La tâche est consommée par les
jobs en running
DTM: Job agent
●
●
●
Rôle mineur des jobs waiting.
Pas nécessaire d'avoir beaucoup de jobs
waiting. Le job manager lance les jobs au fur et
à mesure
Optimisation des transferts. Souvent les tâches
téléchargent les mêmes données en input. Les
données sont téléchargées par la première
tâche et réutilisées par les suivantes sur le
même worker.
DTM: Architecture
●
●
●
●
Mode commande écrit en shell script. Appel à
la commande « mysql »
Mysql:
●
Liste des tâches
●
Procédures stockées
Utilisateur dispose d'un MD5 pour s'authentifier.
Équivalent à DOODLE
Pas nécessaire de déployer un nouveau
service
DTM: Implémentation
14 fichiers (scripts Bourne shell)
2 scripts code métier:
<dtm-manager>
<dtm-agent.sh>
4 scripts fonctions diverses
<*.sh>
8 scripts pour l'entrée utilisateur
(commandes)
1918 lignes de code
Disponibles en AFS
1 semaine accumulée de
développement depuis Nov 2009
Lines
45
48
57
71
74
78
123
153
163
169
177
226
259
275
1918
File
dtm-task-monitor.sh
dtm-shell-functions.sh
dtm-prod-list
dtm-task-list
dtm-start
dtm-prod-enable
dtm-task-set-status
dtm-task-get-next
dtm-cancel
dtm-task-add
dtm-manager-input-validation.sh
dtm-cron-functions.sh
dtm-manager
dtm-agent.sh
TOTAL
DTM: Implémentation
Base de données
4 Tables (MySQL)
DTM_JOB
DTM_RECEIVER
DTM_TASK
DTM_TASK_HISTORY
21 procédures stockées
(transactions)
200 Lignes de code
agentcountnotreported
agentcountrunning
cpu
nexttask
nexttaskclone
proddelete
prodenable
prodlist
receivercheck
receiverconfig
taskadd
taskcount
taskcountrunning
taskcountwithoutreport
taskdelete
taskfailedrestart
taskhistorytransfer
tasklist
tasknotrespondingrestart
taskpriority
tasksetstatus
tasksumcpurequested
Sans DTM
Avec DTM
DTM: Tests
Trois utilisateurs de domaines différents ont testé le
prototype:
Bertrand Care, LIRIS, 27619 jobs
●
Informatique: Modélisation des voies de
signalisation cellulaire
Oliver Obondu, IPNL, 6192 jobs
●
Physique: Analyses CMS (LHC)
Simon Penel, LBBE, 1073 jobs
●
●
Biologie: Recherche de similarité de séquences en
protéines (phylogénie)
TOTAL 34884 jobs
DTM: Tests
●
●
Ces testeurs (utilisateurs) ont donné un avis
positif et encourageant, ils ont fait des
remarques et demandes pertinentes.
Deux autres utilisateurs intéressés pour tester le
prototype:
●
●
ADONIS, SHS
XLRender, société privée, en prospection sur
TIDRA
DTM: Travail Futur
●
●
Activer la soumission de jobs en grille
●
JJS/JSAGA
●
CREAM-CE
●
WMS
Intégration avec IRODS
●
Connexion à la base de données via RDA (Ruleoriented Database Access)
●
Authentification (password, GSI, Kerberos, ...)
●
Protection, client IRODS utilisé comme proxy
●
Interrompu dans état actuel
DTM et JJS/JSAGA
Base de
données
Client
CLUSTER
LOCAL
Job Agent
Job Agent
BQS/SGE
JJS
Job Manager
Job Agent
GRILLE
DTM et IRODS
Base de
données
Client
WN
Job Agent
WN
Job Agent
Job Manager
Job Agent
WN
Gestion de production au
Centre de Calcul de l'IN2P3.
Une approche utilisateur
Pascal CALVAT
Yonny CARDENAS
Avec la collaboration de
Thomas KACHELHOFFER
Centre de Calcul IN2P3, le 8 Avril 2011