Procédure d'installation du logiciel
CONDOR 7.0.1
1-Introduction :
Condor est un logiciel de clustering organisé autour d'un scheduler capable de mutualiser les ressources de plsuieurs machine afin de construire un pool.
2-Principes de fonctionnement :
Condor est un gestionnaire de taches permettant de distribuer sur tout ou partie des nœuds d'un cluster des demandes de calcul.
Le logiciel est capable de prendre en compte différents paramètres tel que par exemple la mémoire utilisée, le cpu, l'activité processeur pour chaque nœud constituant le cluster.
Le logiciel est composé de deux parties distinctes :
A - Une partie Serveur :
Cette partie se charge d'accepter, organiser et repartir les demandes de calculs vers les nœuds selon leur disponibilité et leur compatibilité aux pré-requis propre aux jobs soumis.
B - Une partie Client :
Cette partie est en attente de réception de taches à effectuer. Elle est chargée de lancer le calcul, de le surveiller et de renseigner les différents fichiers de logs. Lorsque la tache
arrive a son terme, le logiciel le signale au serveur ayant soumis le job.
Lorsque le calcul est termine le serveur met a jour les informations sur les nœuds et éventuellement prévient l'utilisateur par email.
C - Description des daemons :
condor_master : Permet de contrôler le fonctionnement de tous les autres daemons et vérifie a intervalle régulier qu’ils n'ont pas de défaillances.
condor_startd : Permet de mettre à disposition les ressources de la machine à disposition du cluster. Il tourne sur tous les nœuds.
condor_starter : Permet de démarrer un job et de le monitorer sur un nœud. Il tourne sur tous les nœuds.
condor_collector : Permet de collecter l’état de tous les nœuds du cluster.
condor_schedd : Gestionnaire de file d’attente des jobs à traiter dans le cluster.
condor_negociator : Attribut les jobs aux différents nœuds en fonction des informations données par « condor_collector ».
3-Procédure d'installation du serveur:
Répertoires de travail :
Programme condor : /usr/local/condor
Utilisateur condor : /home/condor
Pré-requis :
- Pas d'utilisation de NFS et AFS.
- Pas de modification de la configuration du serveur et des nœuds.
- Réalisation d'une maquette fonctionnelle avec vmware.
INSTALLATION :
Montage du cdrom :
#sudo mount /dev/hdc /media/cdrom0
Copie des fichiers :
#cd /media/cdrom0/Debian
#cp condor.tar.gz /home/marousan
Extraction de l'archive :
#tar xzvf condor.tar.gz
Configuration du réseau :
#sudo vi /etc/network/interfaces
(Modification du masque et de l'IP et passage de dynamic a static)
Relance du reseau :
#sudo /etc/init.d/networking restart
Vérification de la configuration avec la commande :
#ifconfig
Rajout du compte "condor" sans mot de passe :
#sudo addgroup --gid 113 condor
#sudo adduser --disabled-password --gid 113 --uid 113 condor
Noter l'uid et le gid car ils serviront de référence pour créer les comptes condor sur les postes clients.
Creer les répertoires savant :
# sudo mkdir /usr/local/condorsudo ./condor_install --prefix=/usr/local/condor --local-dir=/usr/local/condor/hosts/config-local --owner=condor --type=manager,submit
# sudo mkdir /usr/local/condor/hosts
# sudo mkdir /usr/local/condor/hosts/config-local
Lancement de l'installation du logiciel serveur:
#
Modification du fichier de configuration global :
Rajouter dans la PART 1 :
"## What machine is your central manager ?" :
CONDOR_HOST = MASTER
Vérifier ensuite que les valeurs suivantes soient exactes :
RELEASE_DIR = /usr/local/condor
LOCAL_DIR = $(TILDE)
LOCAL_CONFIG_FILE = /usr/local/condor/hosts/config-local/condor_config.local
CONDOR_ADMIN = marousan@marousan.fr
MAIL = /usr/bin/mail
UID_DOMAIN = $(FULL_HOSTNAME)
FILESYSTEM_DOMAIN = $(FULL_HOSTNAME)
COLLECTOR_NAME = POOLTEST
Modifiez dans la PART 2 :
Commentez la ligne :
HOSTALLOW_WRITE = YOU MUST ...
en
## HOSTALLOW_WRITE = YOU MUST ...
De commenter la ligne :
## HOSTALOW_WRITE = *
en
HOSTALOW_WRITE = *
Modifiez dans la PART 3 :
START = $(UWCS_START)
SUSPEND = $(UWCS_SUSPEND)
CONTINUE = $(UWCS_CONTINUE)
PREEMPT = $(UWCS_PREEMPT)
KILL = $(UWCS_KILL)
Par :
#START = $(UWCS_START)
START = True
#SUSPEND = $(UWCS_SUSPEND)
#CONTINUE = $(UWCS_CONTINUE)
#PREEMPT = $(UWCS_PREEMPT)
SUSPEND = False
CONTINUE = True
PREEMPT = False
#KILL = $(UWCS_KILL)
KILL = $(ActivityTimer) > $(MaxVacateTime)
#PREEMPTION_REQUIREMENTS = $(UWCS_PREEMPTION_REQUIREMENTS)
PREEMPTION_REQUIREMENTS=False
Cela permet d'exécuter des jobs, même si les machines sont utilises ou qu'il y a une utilisation du clavier ou de la souris.
Ne pas changer les autres paramètres du fichier.
Modification du fichier de configuration local :
CONDOR_HOST = MASTER
RELEASE_DIR = /usr/local/condor
LOCAL_DIR = /usr/local/condor/hosts/config-local
CONDOR_ADMIN = marousan@marousan.fr
UID_DOMAIN = $(FULL_HOSTNAME)
FILESYSTEM_DOMAIN= $(FULL_HOSTNAME)
CONDOR_IDS = 113.113
DAEMON_LIST = COLLECTOR, MASTER, NEGOTIATOR, SCHEDD
Ne pas changer les autres paramètres du fichier.
Création d'un fichier .bash_profile dans le répertoire /home/condor :
Contenu du fichier :
CONDOR=/usr/local/condor
CONDOR_CONFIG=/usr/local/condor/etc/condor_config
PATH=$PATH:$CONDOR/bin:$CONDOR/sbin:
export CONDOR CONDOR_CONFIG
Prise en compte des changements en lançant la commande suivante :
#source .bash_profile
Modification des droits sur les répertoires de travail dans lesquels doit écrire l'utilisateur condor :
#chown condor /usr/local/condor/hosts/config-local/execute
#chown condor /usr/local/condor/hosts/config-local/log
#chown condor /usr/local/condor/hosts/config-local/spool
Il faut également rajouter les autorisations en écriture pour OTHERS pour les répertoires précédents :
#sudo chmod -R o+W /usr/local/condor/hosts/config-local/execute
#sudo chmod -R o+W /usr/local/condor/hosts/config-local/log
#sudo chmod -R o+W /usr/local/condor/hosts/config-local/spool
Modifier les ID dans les fichiers de configuration locaux et globaux du Master et des nodes.
Lancement du programme :
Le programme peut-enfin être lance sur le central-manager avec la commande :
#condor_master
Pour vérifier que les processus sont bien lances il suffit de lancer la commande suivante :
#ps -edf | grep condor_
Les daemons censés tourner sont :
condor_master
condor_collector
condor_negotiator
condor_schedd
condor_startd (pas indispensable si la machine n'exécute pas de job)
condor_procd
Afin de vérifier que la connexion au poste MASTER fonctionne il suffit de faire un telnet vers le port utilise par le daemon collector sur le port 9618 a partir d'un des futurs nœuds :
#telnet MASTER 9618
Ou
#telnet adresse-ip 9618
4-Procédure d'installation des nœuds du cluster :
Nous n'avons à installer qu'un seul nœud type dont récupérerons le répertoire d'installation qui sera distribue sur tous les nœuds a partir d'un serveur de fichier.
L'installation se passe de manière identique sauf pour les éléments suivants :
La création de l'utilisateur local "condor" doit être effectuée avec les UID et GID que sur le serveur, ici en l'occurrence 113.113 car ils sont renseignes dans les fichiers de
configuration globaux et locaux:
#sudo addgroup --gid 113 condor
#sudo adduser --disabled-password --uid 113 --gid 113 condor
Lancement de l'installation du logiciel serveur:
#sudo ./condor_install --prefix=/usr/local/condor --local-dir=/usr/local/condor/hosts/config-local --owner=condor --type=execute,submit
Modification du fichier de configuration global :
Pas besoin de modifier ce fichier, il suffit de copier le fichier déjà modifie sur le serveur car il doit être identique sur tous les nœuds et le serveur.
Pour le reste la procédure est identique.
Les daemons censés tourner sur les nœuds sont les suivants :
condor_master
condor_schedd
condor_startd
5- Création et exécution d'un job :
Création du fichier de soumission du job :
#touch test.submit
Editez le fichier et remplissez-le avec les valeurs ci-dessous :
universe = vanilla
executable = /bin/ls
output = test.out
error = test.error
log = test.log
should_transfer_files = IF_NEEDED
WhenToTransferOutput = ON_EXIT
queue
Lancement du job :
#condor_submit test.submit
On peut vérifier la mise en queue du job grâce la commande suivante :
#condor_q
Des variantes plus explicites existent en lançant par exemple la commande :
#condor_q -l
Pour vérifier le statut des nœuds utilisez la commande :
#condor_status
Des variantes plus explicites existent en lançant par exemple la commande :
#condor_status -better-analyze
Ou encore
#condor_status -l
Pour supprimer un job on peut utiliser la commande :
#condor_rm num_job
Pour avoir le numéro du job à supprimer représente ici par "num_job" il faut bien entendu effectuer un "condor_q" au préalable.
Derniers Commentaires