<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://lcg.in2p3.fr/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ghita</id>
	<title>lcgwiki - Contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://lcg.in2p3.fr/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ghita"/>
	<link rel="alternate" type="text/html" href="https://lcg.in2p3.fr/Special:Contributions/Ghita"/>
	<updated>2026-06-01T02:55:42Z</updated>
	<subtitle>Contributions</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>https://lcg.in2p3.fr/index.php?title=HT-Condor&amp;diff=7515</id>
		<title>HT-Condor</title>
		<link rel="alternate" type="text/html" href="https://lcg.in2p3.fr/index.php?title=HT-Condor&amp;diff=7515"/>
		<updated>2015-10-08T13:10:31Z</updated>

		<summary type="html">&lt;p&gt;Ghita: /* Réseaux privés, ports de communication, Pares-Feu */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Démarrer avec HT-Condor&lt;br /&gt;
=== Démarrer avec HT-Condor ===&lt;br /&gt;
&lt;br /&gt;
[Page en cours de création]&lt;br /&gt;
&lt;br /&gt;
==== Documentation et références ====&lt;br /&gt;
&lt;br /&gt;
Site de référence : http://research.cs.wisc.edu/htcondor/&lt;br /&gt;
&lt;br /&gt;
Wiki : https://htcondor-wiki.cs.wisc.edu/index.cgi/wiki&lt;br /&gt;
&lt;br /&gt;
Recettes Administrateur : https://htcondor-wiki.cs.wisc.edu/index.cgi/wiki?p=HowToAdminRecipes&lt;br /&gt;
&lt;br /&gt;
Manuel (version stable 8.2) : http://research.cs.wisc.edu/htcondor/manual/v8.2/index.html&lt;br /&gt;
&lt;br /&gt;
European HTCondor Site Admins Meeting 2014 : http://indico.cern.ch/event/272794/&lt;br /&gt;
&lt;br /&gt;
==== Repositories et installation ====&lt;br /&gt;
&lt;br /&gt;
http://research.cs.wisc.edu/htcondor/yum/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
 cd /etc/yum.repos.d/&lt;br /&gt;
 wget http://research.cs.wisc.edu/htcondor/yum/repo.d/htcondor-stable-rhel6.repo&lt;br /&gt;
 yum install condor&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Attention: condor est aussi distribué via les repositories UMD, il peut être nécessaire de désactiver ces repositories ou bien d&#039;utiliser les priorités avec YUM.&lt;br /&gt;
&lt;br /&gt;
==== Installation personnelle : configuration et premiers tests ====&lt;br /&gt;
&lt;br /&gt;
La configuration par défaut après l&#039;installation du RPM permet de tester le produit sur une seule machine. Dans ce cas, sur la même machine, on trouve les trois types de noeuds : &amp;lt;i&amp;gt;submit node&amp;lt;/i&amp;gt;, &amp;lt;i&amp;gt;master node&amp;lt;/i&amp;gt; et &amp;lt;i&amp;gt;worker node&amp;lt;/i&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Démarrer les demons :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
 service condor start&lt;br /&gt;
 Starting up Condor...    done.&lt;br /&gt;
 &lt;br /&gt;
 service condor status&lt;br /&gt;
 Condor is running (pid 22310)&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
Les processus suivants sont lancés :&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
 ps -ef | grep condor&lt;br /&gt;
 condor   22310     1  0 09:52 ?        00:00:00 /usr/sbin/condor_master -pidfile /var/run/condor/condor.pid&lt;br /&gt;
 root     22311 22310  0 09:52 ?        00:00:00 condor_procd -A /var/run/condor/procd_pipe -L /var/log/condor/ProcLog -R 1000000 -S 60 -C 493&lt;br /&gt;
 condor   22312 22310  0 09:52 ?        00:00:00 condor_collector -f&lt;br /&gt;
 condor   22314 22310  0 09:52 ?        00:00:00 condor_negotiator -f&lt;br /&gt;
 condor   22315 22310  0 09:52 ?        00:00:00 condor_schedd -f&lt;br /&gt;
 condor   22316 22310  0 09:52 ?        00:00:00 condor_startd -f&lt;br /&gt;
 condor   22359 22316 93 09:53 ?        00:00:11 mips&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
En ce qui concerne le demon qui gère un worker node (condor_startd), les processeurs disponibles sue la machine locale sont bien reconnus :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
 condor_status&lt;br /&gt;
 Name               OpSys      Arch   State     Activity LoadAv Mem   ActvtyTime&lt;br /&gt;
 &lt;br /&gt;
 slot1@testcondor.in2 LINUX      X86_64 Unclaimed Idle      0.000 1949  0+00:30:11&lt;br /&gt;
 slot2@testcondor.in2 LINUX      X86_64 Unclaimed Idle      0.030 1949  0+00:50:05&lt;br /&gt;
 slot3@testcondor.in2 LINUX      X86_64 Unclaimed Idle      0.000 1949  0+00:50:06&lt;br /&gt;
 slot4@testcondor.in2 LINUX      X86_64 Unclaimed Idle      0.000 1949  0+00:50:07&lt;br /&gt;
                     Total Owner Claimed Unclaimed Matched Preempting Backfill&lt;br /&gt;
 &lt;br /&gt;
        X86_64/LINUX     4     0       0         4       0          0        0&lt;br /&gt;
 &lt;br /&gt;
               Total     4     0       0         4       0          0        0&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Créer un programme de test (un script shell lançant des exécutables) :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
 more HT-Condor/testprog01.sh&lt;br /&gt;
 #! /bin/sh&lt;br /&gt;
 echo &amp;quot;HT-condor testprog01&amp;quot;&lt;br /&gt;
 echo &amp;quot;I&#039;m process id $$ on&amp;quot; `hostname`&lt;br /&gt;
 echo &amp;quot;This is sent to standard error&amp;quot; 1&amp;gt;&amp;amp;2&lt;br /&gt;
 date&lt;br /&gt;
 echo &amp;quot;Running as binary $0&amp;quot; &amp;quot;$@&amp;quot;&lt;br /&gt;
 echo &amp;quot;My name (argument 1) is $1&amp;quot;&lt;br /&gt;
 echo &amp;quot;My sleep duration (argument 2) is $2&amp;quot;&lt;br /&gt;
 sleep $2&lt;br /&gt;
 echo &amp;quot;Sleep of $2 seconds finished.  Exiting&amp;quot;&lt;br /&gt;
 exit 0&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Créer la description du travail :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
 executable=testprog01.sh&lt;br /&gt;
 universe=vanilla&lt;br /&gt;
 arguments=Example.$(Cluster).$(Process) 100&lt;br /&gt;
 output=results.output.$(Process)&lt;br /&gt;
 error=results.error.$(Process)&lt;br /&gt;
 log=results.log&lt;br /&gt;
 notification=never&lt;br /&gt;
 should_transfer_files=YES&lt;br /&gt;
 when_to_transfer_output = ON_EXIT&lt;br /&gt;
 queue&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lancer le job :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
 condor_submit testprog01.submit &lt;br /&gt;
 Submitting job(s).&lt;br /&gt;
 1 job(s) submitted to cluster 1.&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
En surveiller l&#039;exécution :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
 condor_q&lt;br /&gt;
 &lt;br /&gt;
 -- Submitter: nanpc117.in2p3.fr : &amp;lt;134.158.25.117:39976&amp;gt; : nanpc117.in2p3.fr&lt;br /&gt;
 ID      OWNER            SUBMITTED     RUN_TIME ST PRI SIZE CMD               &lt;br /&gt;
   1.0   untel          8/4  09:57   0+00:00:05 R  0   0.0  testprog01.sh Exam&lt;br /&gt;
 &lt;br /&gt;
 1 jobs; 0 completed, 0 removed, 0 idle, 1 running, 0 held, 0 suspended&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Fin du job : les fichiers demandés sont là :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
 ls&lt;br /&gt;
 results.error.0  results.output.0  testprog01.submit&lt;br /&gt;
 results.log      testprog01.sh&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Installation type cluster local ====&lt;br /&gt;
&lt;br /&gt;
Le cluster de compose de : &lt;br /&gt;
&lt;br /&gt;
* une machine qui joue le rôle de serveur de batch (demons : condor_master, condor_collector, condor_negotiator)&lt;br /&gt;
* une ou plusieurs machines pouvant soumettre des travaux (demon : condor_shedd) &lt;br /&gt;
* les machines devant exécuter les travaux (worker nodes) (demons :  )&lt;br /&gt;
&lt;br /&gt;
On installe le même RPM partout (comme ci-dessus) et c&#039;est via les fichiers de configuration dans le répertoire /etc/condor que les machines vont jouer un rôle différent.&lt;br /&gt;
Il est recommandé de ne jamais modifier le fichier /etc/condor/condor_config mais de surcharger la config par un fichier /etc/condor/condor_config.local ou mieux : un ensemble de fichiers dans /etc/condor/config.d&lt;br /&gt;
Le fichier peut être le même pour toutes les machines et les différences exprimées avec des fichiers dans /etc/condor/config.d.&lt;br /&gt;
&lt;br /&gt;
Exemple de fichier global /etc/condor/condor_config.local :&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
 # 0-General-Settings-and-Macros&lt;br /&gt;
 &lt;br /&gt;
 UID_DOMAIN = htcondor-grid@subatech.in2p3.fr&lt;br /&gt;
 CENTRAL_MANAGER1 = nanpbs3.in2p3.fr&lt;br /&gt;
 COLLECTOR_HOST = $(CENTRAL_MANAGER1)&lt;br /&gt;
 CONDOR_HOST=$(CENTRAL_MANAGER1)&lt;br /&gt;
 &lt;br /&gt;
 EVENT_LOG = EventLog&lt;br /&gt;
 &lt;br /&gt;
 # 1-Use-Security&lt;br /&gt;
 &lt;br /&gt;
 # 2-Policies&lt;br /&gt;
 &lt;br /&gt;
 SEC_DEFAULT_AUTHENTICATION = REQUIRED&lt;br /&gt;
  &lt;br /&gt;
 # 3-Authorizations&lt;br /&gt;
 &lt;br /&gt;
 ALLOW_WRITE = &lt;br /&gt;
 ALLOW_READ = */*.in2p3.fr&lt;br /&gt;
 ALLOW_DAEMON = *.in2p3.fr&lt;br /&gt;
 ALLOW_ADMINISTRATOR = root@$(CONDOR_HOST)&lt;br /&gt;
 ALLOW_CONFIG = root@$(FULL_HOSTNAME)&lt;br /&gt;
  &lt;br /&gt;
 # 4-Authentication&lt;br /&gt;
 SEC_PASSWORD_FILE = /etc/condor/pool_password&lt;br /&gt;
 SEC_READ_AUTHENTICATION = OPTIONAL&lt;br /&gt;
 SEC_CLIENT_AUTHENTICATION = REQUIRED&lt;br /&gt;
 SEC_DEFAULT_AUTHENTICATION_METHODS = PASSWORD,FS&lt;br /&gt;
 SCHEDD.SEC_WRITE_AUTHENTICATION_METHODS = FS,PASSWORD&lt;br /&gt;
 SCHEDD.SEC_DAEMON_AUTHENTICATION_METHODS = FS,PASSWORD&lt;br /&gt;
 SEC_CLIENT_AUTHENTICATION_METHODS = FS,PASSWORD,CLAIMTOBE&lt;br /&gt;
 SEC_READ_AUTHENTICATION_METHODS = FS,PASSWORD,CLAIMTOBE&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le modèle de sécurité choisi ici repose sur le partage d&#039;une clé commune entre les différentes machines (submitter,master,workers). Cette clé /etc/condor/pool_password est crée par la commande suivante et distribuée sur les machines :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
 condor_store_cred -f /etc/condor/pool_password&lt;br /&gt;
 Enter password: xxxxxx&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ce modèle est assez simple et n&#039;apporte que l&#039;authentification entre demons, pas le chiffrement et le contrôle de l&#039;intégrité des communications.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Configuration du serveur de batch (nanpbs3.in2p3.fr)  =====&lt;br /&gt;
&lt;br /&gt;
Dans cet exemple, le serveur de batch est aussi machine de soumission (il dispose des mêmes comptes que sur les worker nodes)&lt;br /&gt;
&lt;br /&gt;
Creation d&#039;un fichier supplémentaire /etc/condor/config.d/20-master.conf :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt; &lt;br /&gt;
 DAEMON_LIST = COLLECTOR, MASTER, NEGOTIATOR, SCHEDD&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Redémarrage avec la nouvelle config :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
 service condor restart&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
 condor_status -any&lt;br /&gt;
 MyType             TargetType         Name                                     &lt;br /&gt;
 &lt;br /&gt;
 Collector          None               My Pool - nanpbs3.in2p3.fr@nanpbs3.in2p3.&lt;br /&gt;
 Scheduler          None               nanpbs3.in2p3.fr                         &lt;br /&gt;
 DaemonMaster       None               nanpbs3.in2p3.fr                         &lt;br /&gt;
 Negotiator         None               nanpbs3.in2p3.fr       &lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Configuration d&#039;un worker node (nanwn58.in2p3.fr) =====&lt;br /&gt;
&lt;br /&gt;
Creation d&#039;un fichier supplémentaire /etc/condor/config.d/10-workernode.conf :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt; &lt;br /&gt;
 DAEMON_LIST = MASTER, STARTD&lt;br /&gt;
 TRUST_UID_DOMAIN=TRUE&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Redémarrage avec la nouvelle config :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
 service condor restart&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
 condor_status -any&lt;br /&gt;
 MyType             TargetType         Name                                     &lt;br /&gt;
 &lt;br /&gt;
 Collector          None               My Pool - nanpbs3.in2p3.fr@nanpbs3.in2p3.&lt;br /&gt;
 Scheduler          None               nanpbs3.in2p3.fr                         &lt;br /&gt;
 DaemonMaster       None               nanpbs3.in2p3.fr                         &lt;br /&gt;
 Negotiator         None               nanpbs3.in2p3.fr                         &lt;br /&gt;
 DaemonMaster       None               nanwn58.in2p3.fr                         &lt;br /&gt;
 Machine            Job                slot1@nanwn58.in2p3.fr                   &lt;br /&gt;
 Machine            Job                slot2@nanwn58.in2p3.fr                   &lt;br /&gt;
 Machine            Job                slot3@nanwn58.in2p3.fr                   &lt;br /&gt;
 Machine            Job                slot4@nanwn58.in2p3.fr                   &lt;br /&gt;
 Machine            Job                slot5@nanwn58.in2p3.fr                   &lt;br /&gt;
 Machine            Job                slot6@nanwn58.in2p3.fr                   &lt;br /&gt;
 Machine            Job                slot7@nanwn58.in2p3.fr                   &lt;br /&gt;
 Machine            Job                slot8@nanwn58.in2p3.fr                   &lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Examen de la queue depuis le server et submitter :&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
 [root@nanpbs3 ~]# condor_q&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 -- Submitter: nanpbs3.in2p3.fr : &amp;lt;193.48.101.50:58431&amp;gt; : nanpbs3.in2p3.fr&lt;br /&gt;
  ID      OWNER            SUBMITTED     RUN_TIME ST PRI SIZE CMD               &lt;br /&gt;
 &lt;br /&gt;
 0 jobs; 0 completed, 0 removed, 0 idle, 0 running, 0 held, 0 suspended&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Réseaux privés, ports de communication, Pares-Feu =====&lt;br /&gt;
&lt;br /&gt;
Lorsque HTCondor est réparti sur plusieurs machines, rien de spécial n&#039;est à faire si toutes sont situées dans le même réseau.&lt;br /&gt;
Par contre, dans le cas ou elles sont isolées par des pares-feu ou autres, il faut faire ouvrir les ports utilisés par Condor. Dans le cas d&#039;un tout petit cluster (1 CM avec Collecteur , Negotiateur et Scheduleur et 2 workers), il suffit d&#039;autoriser l&#039;écriture, d&#039;ouvrir un intervalle de ports et les définir dans le fichier de configuration de condor (condor_config.local par exemple).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
 #  To expand your condor pool beyond a single host, set ALLOW_WRITE to match all of the hosts (last one is ccgr2 Mac)&lt;br /&gt;
 ALLOW_WRITE = $(ALLOW_WRITE) ,$(CONDOR_HOST) , worker1, worker2, ......&lt;br /&gt;
 Define the ports used by condor&lt;br /&gt;
 #NEGOTIATOR_SOCKET_CACHE_SIZE = 16&lt;br /&gt;
 LOWPORT = 9600&lt;br /&gt;
 HIGHPORT= 9625 &lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
En fait, le nombre de ports à ouvrir est de 21 au minimum (5 pour la communication avec les daemons et 16 pour le &amp;quot;negotiator_socket_cache_size&amp;quot; mais il doit augmenter avec la taille du cluster.Pour ce qui est d&#039;une information plus détaillée sur les différents ports utilisés par Condor et réseaux: http://www.wolftech.ncsu.edu/support/support/Condor/Firewall&lt;br /&gt;
&lt;br /&gt;
Un exemple d&#039;ouverture de ports entre ma VM qui est le CM et mon MAC qui est un de mes worker-nodes:&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
 - en entree vers mon mac :&lt;br /&gt;
 permit tcp host 172.xxx host 134.yyy range 9600 9625&lt;br /&gt;
 permit udp host 172.xxxx host 134.yyy range 9600 9625&lt;br /&gt;
 -en entree vers le serveur condor :&lt;br /&gt;
 permit tcp host 134.yyy host 172.xxx range 9600 9625&lt;br /&gt;
 permit udp host 134.yyy host 172.xxx range 9600 9625&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Gestion des ressources, priorités et comptabilité (accounting) =====&lt;br /&gt;
&lt;br /&gt;
Dans le cadre d&#039;un cluster local, c&#039;est l&#039;utilisateur qui définit lui-même le groupe auxquel il appartient via une instruction de type ClassAd dans son fichier .submit. Exemple :&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
 # accounting group&lt;br /&gt;
 accounting_group = group_info&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
... A développer ...&lt;br /&gt;
&lt;br /&gt;
==== Utilisation en contexte grille ====&lt;br /&gt;
&lt;br /&gt;
==== Sécurité ====&lt;/div&gt;</summary>
		<author><name>Ghita</name></author>
	</entry>
	<entry>
		<id>https://lcg.in2p3.fr/index.php?title=HT-Condor&amp;diff=7514</id>
		<title>HT-Condor</title>
		<link rel="alternate" type="text/html" href="https://lcg.in2p3.fr/index.php?title=HT-Condor&amp;diff=7514"/>
		<updated>2015-10-08T13:02:34Z</updated>

		<summary type="html">&lt;p&gt;Ghita: /* Réseaux privés, ports de communication, Pares-Feu */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Démarrer avec HT-Condor&lt;br /&gt;
=== Démarrer avec HT-Condor ===&lt;br /&gt;
&lt;br /&gt;
[Page en cours de création]&lt;br /&gt;
&lt;br /&gt;
==== Documentation et références ====&lt;br /&gt;
&lt;br /&gt;
Site de référence : http://research.cs.wisc.edu/htcondor/&lt;br /&gt;
&lt;br /&gt;
Wiki : https://htcondor-wiki.cs.wisc.edu/index.cgi/wiki&lt;br /&gt;
&lt;br /&gt;
Recettes Administrateur : https://htcondor-wiki.cs.wisc.edu/index.cgi/wiki?p=HowToAdminRecipes&lt;br /&gt;
&lt;br /&gt;
Manuel (version stable 8.2) : http://research.cs.wisc.edu/htcondor/manual/v8.2/index.html&lt;br /&gt;
&lt;br /&gt;
European HTCondor Site Admins Meeting 2014 : http://indico.cern.ch/event/272794/&lt;br /&gt;
&lt;br /&gt;
==== Repositories et installation ====&lt;br /&gt;
&lt;br /&gt;
http://research.cs.wisc.edu/htcondor/yum/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
 cd /etc/yum.repos.d/&lt;br /&gt;
 wget http://research.cs.wisc.edu/htcondor/yum/repo.d/htcondor-stable-rhel6.repo&lt;br /&gt;
 yum install condor&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Attention: condor est aussi distribué via les repositories UMD, il peut être nécessaire de désactiver ces repositories ou bien d&#039;utiliser les priorités avec YUM.&lt;br /&gt;
&lt;br /&gt;
==== Installation personnelle : configuration et premiers tests ====&lt;br /&gt;
&lt;br /&gt;
La configuration par défaut après l&#039;installation du RPM permet de tester le produit sur une seule machine. Dans ce cas, sur la même machine, on trouve les trois types de noeuds : &amp;lt;i&amp;gt;submit node&amp;lt;/i&amp;gt;, &amp;lt;i&amp;gt;master node&amp;lt;/i&amp;gt; et &amp;lt;i&amp;gt;worker node&amp;lt;/i&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Démarrer les demons :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
 service condor start&lt;br /&gt;
 Starting up Condor...    done.&lt;br /&gt;
 &lt;br /&gt;
 service condor status&lt;br /&gt;
 Condor is running (pid 22310)&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
Les processus suivants sont lancés :&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
 ps -ef | grep condor&lt;br /&gt;
 condor   22310     1  0 09:52 ?        00:00:00 /usr/sbin/condor_master -pidfile /var/run/condor/condor.pid&lt;br /&gt;
 root     22311 22310  0 09:52 ?        00:00:00 condor_procd -A /var/run/condor/procd_pipe -L /var/log/condor/ProcLog -R 1000000 -S 60 -C 493&lt;br /&gt;
 condor   22312 22310  0 09:52 ?        00:00:00 condor_collector -f&lt;br /&gt;
 condor   22314 22310  0 09:52 ?        00:00:00 condor_negotiator -f&lt;br /&gt;
 condor   22315 22310  0 09:52 ?        00:00:00 condor_schedd -f&lt;br /&gt;
 condor   22316 22310  0 09:52 ?        00:00:00 condor_startd -f&lt;br /&gt;
 condor   22359 22316 93 09:53 ?        00:00:11 mips&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
En ce qui concerne le demon qui gère un worker node (condor_startd), les processeurs disponibles sue la machine locale sont bien reconnus :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
 condor_status&lt;br /&gt;
 Name               OpSys      Arch   State     Activity LoadAv Mem   ActvtyTime&lt;br /&gt;
 &lt;br /&gt;
 slot1@testcondor.in2 LINUX      X86_64 Unclaimed Idle      0.000 1949  0+00:30:11&lt;br /&gt;
 slot2@testcondor.in2 LINUX      X86_64 Unclaimed Idle      0.030 1949  0+00:50:05&lt;br /&gt;
 slot3@testcondor.in2 LINUX      X86_64 Unclaimed Idle      0.000 1949  0+00:50:06&lt;br /&gt;
 slot4@testcondor.in2 LINUX      X86_64 Unclaimed Idle      0.000 1949  0+00:50:07&lt;br /&gt;
                     Total Owner Claimed Unclaimed Matched Preempting Backfill&lt;br /&gt;
 &lt;br /&gt;
        X86_64/LINUX     4     0       0         4       0          0        0&lt;br /&gt;
 &lt;br /&gt;
               Total     4     0       0         4       0          0        0&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Créer un programme de test (un script shell lançant des exécutables) :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
 more HT-Condor/testprog01.sh&lt;br /&gt;
 #! /bin/sh&lt;br /&gt;
 echo &amp;quot;HT-condor testprog01&amp;quot;&lt;br /&gt;
 echo &amp;quot;I&#039;m process id $$ on&amp;quot; `hostname`&lt;br /&gt;
 echo &amp;quot;This is sent to standard error&amp;quot; 1&amp;gt;&amp;amp;2&lt;br /&gt;
 date&lt;br /&gt;
 echo &amp;quot;Running as binary $0&amp;quot; &amp;quot;$@&amp;quot;&lt;br /&gt;
 echo &amp;quot;My name (argument 1) is $1&amp;quot;&lt;br /&gt;
 echo &amp;quot;My sleep duration (argument 2) is $2&amp;quot;&lt;br /&gt;
 sleep $2&lt;br /&gt;
 echo &amp;quot;Sleep of $2 seconds finished.  Exiting&amp;quot;&lt;br /&gt;
 exit 0&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Créer la description du travail :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
 executable=testprog01.sh&lt;br /&gt;
 universe=vanilla&lt;br /&gt;
 arguments=Example.$(Cluster).$(Process) 100&lt;br /&gt;
 output=results.output.$(Process)&lt;br /&gt;
 error=results.error.$(Process)&lt;br /&gt;
 log=results.log&lt;br /&gt;
 notification=never&lt;br /&gt;
 should_transfer_files=YES&lt;br /&gt;
 when_to_transfer_output = ON_EXIT&lt;br /&gt;
 queue&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lancer le job :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
 condor_submit testprog01.submit &lt;br /&gt;
 Submitting job(s).&lt;br /&gt;
 1 job(s) submitted to cluster 1.&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
En surveiller l&#039;exécution :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
 condor_q&lt;br /&gt;
 &lt;br /&gt;
 -- Submitter: nanpc117.in2p3.fr : &amp;lt;134.158.25.117:39976&amp;gt; : nanpc117.in2p3.fr&lt;br /&gt;
 ID      OWNER            SUBMITTED     RUN_TIME ST PRI SIZE CMD               &lt;br /&gt;
   1.0   untel          8/4  09:57   0+00:00:05 R  0   0.0  testprog01.sh Exam&lt;br /&gt;
 &lt;br /&gt;
 1 jobs; 0 completed, 0 removed, 0 idle, 1 running, 0 held, 0 suspended&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Fin du job : les fichiers demandés sont là :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
 ls&lt;br /&gt;
 results.error.0  results.output.0  testprog01.submit&lt;br /&gt;
 results.log      testprog01.sh&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Installation type cluster local ====&lt;br /&gt;
&lt;br /&gt;
Le cluster de compose de : &lt;br /&gt;
&lt;br /&gt;
* une machine qui joue le rôle de serveur de batch (demons : condor_master, condor_collector, condor_negotiator)&lt;br /&gt;
* une ou plusieurs machines pouvant soumettre des travaux (demon : condor_shedd) &lt;br /&gt;
* les machines devant exécuter les travaux (worker nodes) (demons :  )&lt;br /&gt;
&lt;br /&gt;
On installe le même RPM partout (comme ci-dessus) et c&#039;est via les fichiers de configuration dans le répertoire /etc/condor que les machines vont jouer un rôle différent.&lt;br /&gt;
Il est recommandé de ne jamais modifier le fichier /etc/condor/condor_config mais de surcharger la config par un fichier /etc/condor/condor_config.local ou mieux : un ensemble de fichiers dans /etc/condor/config.d&lt;br /&gt;
Le fichier peut être le même pour toutes les machines et les différences exprimées avec des fichiers dans /etc/condor/config.d.&lt;br /&gt;
&lt;br /&gt;
Exemple de fichier global /etc/condor/condor_config.local :&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
 # 0-General-Settings-and-Macros&lt;br /&gt;
 &lt;br /&gt;
 UID_DOMAIN = htcondor-grid@subatech.in2p3.fr&lt;br /&gt;
 CENTRAL_MANAGER1 = nanpbs3.in2p3.fr&lt;br /&gt;
 COLLECTOR_HOST = $(CENTRAL_MANAGER1)&lt;br /&gt;
 CONDOR_HOST=$(CENTRAL_MANAGER1)&lt;br /&gt;
 &lt;br /&gt;
 EVENT_LOG = EventLog&lt;br /&gt;
 &lt;br /&gt;
 # 1-Use-Security&lt;br /&gt;
 &lt;br /&gt;
 # 2-Policies&lt;br /&gt;
 &lt;br /&gt;
 SEC_DEFAULT_AUTHENTICATION = REQUIRED&lt;br /&gt;
  &lt;br /&gt;
 # 3-Authorizations&lt;br /&gt;
 &lt;br /&gt;
 ALLOW_WRITE = &lt;br /&gt;
 ALLOW_READ = */*.in2p3.fr&lt;br /&gt;
 ALLOW_DAEMON = *.in2p3.fr&lt;br /&gt;
 ALLOW_ADMINISTRATOR = root@$(CONDOR_HOST)&lt;br /&gt;
 ALLOW_CONFIG = root@$(FULL_HOSTNAME)&lt;br /&gt;
  &lt;br /&gt;
 # 4-Authentication&lt;br /&gt;
 SEC_PASSWORD_FILE = /etc/condor/pool_password&lt;br /&gt;
 SEC_READ_AUTHENTICATION = OPTIONAL&lt;br /&gt;
 SEC_CLIENT_AUTHENTICATION = REQUIRED&lt;br /&gt;
 SEC_DEFAULT_AUTHENTICATION_METHODS = PASSWORD,FS&lt;br /&gt;
 SCHEDD.SEC_WRITE_AUTHENTICATION_METHODS = FS,PASSWORD&lt;br /&gt;
 SCHEDD.SEC_DAEMON_AUTHENTICATION_METHODS = FS,PASSWORD&lt;br /&gt;
 SEC_CLIENT_AUTHENTICATION_METHODS = FS,PASSWORD,CLAIMTOBE&lt;br /&gt;
 SEC_READ_AUTHENTICATION_METHODS = FS,PASSWORD,CLAIMTOBE&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le modèle de sécurité choisi ici repose sur le partage d&#039;une clé commune entre les différentes machines (submitter,master,workers). Cette clé /etc/condor/pool_password est crée par la commande suivante et distribuée sur les machines :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
 condor_store_cred -f /etc/condor/pool_password&lt;br /&gt;
 Enter password: xxxxxx&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ce modèle est assez simple et n&#039;apporte que l&#039;authentification entre demons, pas le chiffrement et le contrôle de l&#039;intégrité des communications.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Configuration du serveur de batch (nanpbs3.in2p3.fr)  =====&lt;br /&gt;
&lt;br /&gt;
Dans cet exemple, le serveur de batch est aussi machine de soumission (il dispose des mêmes comptes que sur les worker nodes)&lt;br /&gt;
&lt;br /&gt;
Creation d&#039;un fichier supplémentaire /etc/condor/config.d/20-master.conf :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt; &lt;br /&gt;
 DAEMON_LIST = COLLECTOR, MASTER, NEGOTIATOR, SCHEDD&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Redémarrage avec la nouvelle config :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
 service condor restart&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
 condor_status -any&lt;br /&gt;
 MyType             TargetType         Name                                     &lt;br /&gt;
 &lt;br /&gt;
 Collector          None               My Pool - nanpbs3.in2p3.fr@nanpbs3.in2p3.&lt;br /&gt;
 Scheduler          None               nanpbs3.in2p3.fr                         &lt;br /&gt;
 DaemonMaster       None               nanpbs3.in2p3.fr                         &lt;br /&gt;
 Negotiator         None               nanpbs3.in2p3.fr       &lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Configuration d&#039;un worker node (nanwn58.in2p3.fr) =====&lt;br /&gt;
&lt;br /&gt;
Creation d&#039;un fichier supplémentaire /etc/condor/config.d/10-workernode.conf :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt; &lt;br /&gt;
 DAEMON_LIST = MASTER, STARTD&lt;br /&gt;
 TRUST_UID_DOMAIN=TRUE&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Redémarrage avec la nouvelle config :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
 service condor restart&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
 condor_status -any&lt;br /&gt;
 MyType             TargetType         Name                                     &lt;br /&gt;
 &lt;br /&gt;
 Collector          None               My Pool - nanpbs3.in2p3.fr@nanpbs3.in2p3.&lt;br /&gt;
 Scheduler          None               nanpbs3.in2p3.fr                         &lt;br /&gt;
 DaemonMaster       None               nanpbs3.in2p3.fr                         &lt;br /&gt;
 Negotiator         None               nanpbs3.in2p3.fr                         &lt;br /&gt;
 DaemonMaster       None               nanwn58.in2p3.fr                         &lt;br /&gt;
 Machine            Job                slot1@nanwn58.in2p3.fr                   &lt;br /&gt;
 Machine            Job                slot2@nanwn58.in2p3.fr                   &lt;br /&gt;
 Machine            Job                slot3@nanwn58.in2p3.fr                   &lt;br /&gt;
 Machine            Job                slot4@nanwn58.in2p3.fr                   &lt;br /&gt;
 Machine            Job                slot5@nanwn58.in2p3.fr                   &lt;br /&gt;
 Machine            Job                slot6@nanwn58.in2p3.fr                   &lt;br /&gt;
 Machine            Job                slot7@nanwn58.in2p3.fr                   &lt;br /&gt;
 Machine            Job                slot8@nanwn58.in2p3.fr                   &lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Examen de la queue depuis le server et submitter :&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
 [root@nanpbs3 ~]# condor_q&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 -- Submitter: nanpbs3.in2p3.fr : &amp;lt;193.48.101.50:58431&amp;gt; : nanpbs3.in2p3.fr&lt;br /&gt;
  ID      OWNER            SUBMITTED     RUN_TIME ST PRI SIZE CMD               &lt;br /&gt;
 &lt;br /&gt;
 0 jobs; 0 completed, 0 removed, 0 idle, 0 running, 0 held, 0 suspended&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Réseaux privés, ports de communication, Pares-Feu =====&lt;br /&gt;
&lt;br /&gt;
Lorsque HTCondor est réparti sur plusieurs machines, rien de spécial n&#039;est à faire si toutes sont situées dans le même réseau.&lt;br /&gt;
Par contre, dans le cas ou elles sont isolées par des pares-feu ou autres, il faut faire ouvrir les ports utilisés par Condor. Dans le cas d&#039;un tout petit cluster (1 CM avec Collecteur , Negotiateur et Scheduleur et 2 workers), il suffit d&#039;autoriser l&#039;écriture, d&#039;ouvrir un intervalle de ports et les définir dans le fichier de configuration de condor (condor_config.local par exemple).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
 #  To expand your condor pool beyond a single host, set ALLOW_WRITE to match all of the hosts (last one is ccgr2 Mac)&lt;br /&gt;
 ALLOW_WRITE = $(ALLOW_WRITE) ,$(CONDOR_HOST) , worker1, worker2, ......&lt;br /&gt;
 Define the ports used by condor&lt;br /&gt;
 #NEGOTIATOR_SOCKET_CACHE_SIZE = 16&lt;br /&gt;
 LOWPORT = 9600&lt;br /&gt;
 HIGHPORT= 9625 &lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
En fait, le nombre de ports à ouvrir est de 21 au minimum (5 pour la communication avec les daemons et 16 pour le &amp;quot;negotiator_socket_cache_size) mais il doit augmenter avec la taille du cluster.Pour ce qui est d&#039;une information plus détaillée sur ports utilisés par Condor et réseaux: http://www.wolftech.ncsu.edu/support/support/Condor/Firewall&lt;br /&gt;
&lt;br /&gt;
Un exemple d&#039;ouverture de ports entre ma VM qui est le CM et mon MAC qui est un de mes worker-nodes:&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
 - en entree vers mon mac :&lt;br /&gt;
 permit tcp host 172.xxx host 134.yyy range 9600 9625&lt;br /&gt;
 permit udp host 172.xxxx host 134.yyy range 9600 9625&lt;br /&gt;
 -en entree vers le serveur condor :&lt;br /&gt;
 permit tcp host 134.yyy host 172.xxx range 9600 9625&lt;br /&gt;
 permit udp host 134.yyy host 172.xxx range 9600 9625&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Gestion des ressources, priorités et comptabilité (accounting) =====&lt;br /&gt;
&lt;br /&gt;
Dans le cadre d&#039;un cluster local, c&#039;est l&#039;utilisateur qui définit lui-même le groupe auxquel il appartient via une instruction de type ClassAd dans son fichier .submit. Exemple :&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
 # accounting group&lt;br /&gt;
 accounting_group = group_info&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
... A développer ...&lt;br /&gt;
&lt;br /&gt;
==== Utilisation en contexte grille ====&lt;br /&gt;
&lt;br /&gt;
==== Sécurité ====&lt;/div&gt;</summary>
		<author><name>Ghita</name></author>
	</entry>
	<entry>
		<id>https://lcg.in2p3.fr/index.php?title=HT-Condor&amp;diff=7513</id>
		<title>HT-Condor</title>
		<link rel="alternate" type="text/html" href="https://lcg.in2p3.fr/index.php?title=HT-Condor&amp;diff=7513"/>
		<updated>2015-10-08T12:59:59Z</updated>

		<summary type="html">&lt;p&gt;Ghita: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Démarrer avec HT-Condor&lt;br /&gt;
=== Démarrer avec HT-Condor ===&lt;br /&gt;
&lt;br /&gt;
[Page en cours de création]&lt;br /&gt;
&lt;br /&gt;
==== Documentation et références ====&lt;br /&gt;
&lt;br /&gt;
Site de référence : http://research.cs.wisc.edu/htcondor/&lt;br /&gt;
&lt;br /&gt;
Wiki : https://htcondor-wiki.cs.wisc.edu/index.cgi/wiki&lt;br /&gt;
&lt;br /&gt;
Recettes Administrateur : https://htcondor-wiki.cs.wisc.edu/index.cgi/wiki?p=HowToAdminRecipes&lt;br /&gt;
&lt;br /&gt;
Manuel (version stable 8.2) : http://research.cs.wisc.edu/htcondor/manual/v8.2/index.html&lt;br /&gt;
&lt;br /&gt;
European HTCondor Site Admins Meeting 2014 : http://indico.cern.ch/event/272794/&lt;br /&gt;
&lt;br /&gt;
==== Repositories et installation ====&lt;br /&gt;
&lt;br /&gt;
http://research.cs.wisc.edu/htcondor/yum/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
 cd /etc/yum.repos.d/&lt;br /&gt;
 wget http://research.cs.wisc.edu/htcondor/yum/repo.d/htcondor-stable-rhel6.repo&lt;br /&gt;
 yum install condor&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Attention: condor est aussi distribué via les repositories UMD, il peut être nécessaire de désactiver ces repositories ou bien d&#039;utiliser les priorités avec YUM.&lt;br /&gt;
&lt;br /&gt;
==== Installation personnelle : configuration et premiers tests ====&lt;br /&gt;
&lt;br /&gt;
La configuration par défaut après l&#039;installation du RPM permet de tester le produit sur une seule machine. Dans ce cas, sur la même machine, on trouve les trois types de noeuds : &amp;lt;i&amp;gt;submit node&amp;lt;/i&amp;gt;, &amp;lt;i&amp;gt;master node&amp;lt;/i&amp;gt; et &amp;lt;i&amp;gt;worker node&amp;lt;/i&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Démarrer les demons :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
 service condor start&lt;br /&gt;
 Starting up Condor...    done.&lt;br /&gt;
 &lt;br /&gt;
 service condor status&lt;br /&gt;
 Condor is running (pid 22310)&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
Les processus suivants sont lancés :&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
 ps -ef | grep condor&lt;br /&gt;
 condor   22310     1  0 09:52 ?        00:00:00 /usr/sbin/condor_master -pidfile /var/run/condor/condor.pid&lt;br /&gt;
 root     22311 22310  0 09:52 ?        00:00:00 condor_procd -A /var/run/condor/procd_pipe -L /var/log/condor/ProcLog -R 1000000 -S 60 -C 493&lt;br /&gt;
 condor   22312 22310  0 09:52 ?        00:00:00 condor_collector -f&lt;br /&gt;
 condor   22314 22310  0 09:52 ?        00:00:00 condor_negotiator -f&lt;br /&gt;
 condor   22315 22310  0 09:52 ?        00:00:00 condor_schedd -f&lt;br /&gt;
 condor   22316 22310  0 09:52 ?        00:00:00 condor_startd -f&lt;br /&gt;
 condor   22359 22316 93 09:53 ?        00:00:11 mips&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
En ce qui concerne le demon qui gère un worker node (condor_startd), les processeurs disponibles sue la machine locale sont bien reconnus :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
 condor_status&lt;br /&gt;
 Name               OpSys      Arch   State     Activity LoadAv Mem   ActvtyTime&lt;br /&gt;
 &lt;br /&gt;
 slot1@testcondor.in2 LINUX      X86_64 Unclaimed Idle      0.000 1949  0+00:30:11&lt;br /&gt;
 slot2@testcondor.in2 LINUX      X86_64 Unclaimed Idle      0.030 1949  0+00:50:05&lt;br /&gt;
 slot3@testcondor.in2 LINUX      X86_64 Unclaimed Idle      0.000 1949  0+00:50:06&lt;br /&gt;
 slot4@testcondor.in2 LINUX      X86_64 Unclaimed Idle      0.000 1949  0+00:50:07&lt;br /&gt;
                     Total Owner Claimed Unclaimed Matched Preempting Backfill&lt;br /&gt;
 &lt;br /&gt;
        X86_64/LINUX     4     0       0         4       0          0        0&lt;br /&gt;
 &lt;br /&gt;
               Total     4     0       0         4       0          0        0&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Créer un programme de test (un script shell lançant des exécutables) :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
 more HT-Condor/testprog01.sh&lt;br /&gt;
 #! /bin/sh&lt;br /&gt;
 echo &amp;quot;HT-condor testprog01&amp;quot;&lt;br /&gt;
 echo &amp;quot;I&#039;m process id $$ on&amp;quot; `hostname`&lt;br /&gt;
 echo &amp;quot;This is sent to standard error&amp;quot; 1&amp;gt;&amp;amp;2&lt;br /&gt;
 date&lt;br /&gt;
 echo &amp;quot;Running as binary $0&amp;quot; &amp;quot;$@&amp;quot;&lt;br /&gt;
 echo &amp;quot;My name (argument 1) is $1&amp;quot;&lt;br /&gt;
 echo &amp;quot;My sleep duration (argument 2) is $2&amp;quot;&lt;br /&gt;
 sleep $2&lt;br /&gt;
 echo &amp;quot;Sleep of $2 seconds finished.  Exiting&amp;quot;&lt;br /&gt;
 exit 0&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Créer la description du travail :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
 executable=testprog01.sh&lt;br /&gt;
 universe=vanilla&lt;br /&gt;
 arguments=Example.$(Cluster).$(Process) 100&lt;br /&gt;
 output=results.output.$(Process)&lt;br /&gt;
 error=results.error.$(Process)&lt;br /&gt;
 log=results.log&lt;br /&gt;
 notification=never&lt;br /&gt;
 should_transfer_files=YES&lt;br /&gt;
 when_to_transfer_output = ON_EXIT&lt;br /&gt;
 queue&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lancer le job :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
 condor_submit testprog01.submit &lt;br /&gt;
 Submitting job(s).&lt;br /&gt;
 1 job(s) submitted to cluster 1.&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
En surveiller l&#039;exécution :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
 condor_q&lt;br /&gt;
 &lt;br /&gt;
 -- Submitter: nanpc117.in2p3.fr : &amp;lt;134.158.25.117:39976&amp;gt; : nanpc117.in2p3.fr&lt;br /&gt;
 ID      OWNER            SUBMITTED     RUN_TIME ST PRI SIZE CMD               &lt;br /&gt;
   1.0   untel          8/4  09:57   0+00:00:05 R  0   0.0  testprog01.sh Exam&lt;br /&gt;
 &lt;br /&gt;
 1 jobs; 0 completed, 0 removed, 0 idle, 1 running, 0 held, 0 suspended&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Fin du job : les fichiers demandés sont là :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
 ls&lt;br /&gt;
 results.error.0  results.output.0  testprog01.submit&lt;br /&gt;
 results.log      testprog01.sh&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Installation type cluster local ====&lt;br /&gt;
&lt;br /&gt;
Le cluster de compose de : &lt;br /&gt;
&lt;br /&gt;
* une machine qui joue le rôle de serveur de batch (demons : condor_master, condor_collector, condor_negotiator)&lt;br /&gt;
* une ou plusieurs machines pouvant soumettre des travaux (demon : condor_shedd) &lt;br /&gt;
* les machines devant exécuter les travaux (worker nodes) (demons :  )&lt;br /&gt;
&lt;br /&gt;
On installe le même RPM partout (comme ci-dessus) et c&#039;est via les fichiers de configuration dans le répertoire /etc/condor que les machines vont jouer un rôle différent.&lt;br /&gt;
Il est recommandé de ne jamais modifier le fichier /etc/condor/condor_config mais de surcharger la config par un fichier /etc/condor/condor_config.local ou mieux : un ensemble de fichiers dans /etc/condor/config.d&lt;br /&gt;
Le fichier peut être le même pour toutes les machines et les différences exprimées avec des fichiers dans /etc/condor/config.d.&lt;br /&gt;
&lt;br /&gt;
Exemple de fichier global /etc/condor/condor_config.local :&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
 # 0-General-Settings-and-Macros&lt;br /&gt;
 &lt;br /&gt;
 UID_DOMAIN = htcondor-grid@subatech.in2p3.fr&lt;br /&gt;
 CENTRAL_MANAGER1 = nanpbs3.in2p3.fr&lt;br /&gt;
 COLLECTOR_HOST = $(CENTRAL_MANAGER1)&lt;br /&gt;
 CONDOR_HOST=$(CENTRAL_MANAGER1)&lt;br /&gt;
 &lt;br /&gt;
 EVENT_LOG = EventLog&lt;br /&gt;
 &lt;br /&gt;
 # 1-Use-Security&lt;br /&gt;
 &lt;br /&gt;
 # 2-Policies&lt;br /&gt;
 &lt;br /&gt;
 SEC_DEFAULT_AUTHENTICATION = REQUIRED&lt;br /&gt;
  &lt;br /&gt;
 # 3-Authorizations&lt;br /&gt;
 &lt;br /&gt;
 ALLOW_WRITE = &lt;br /&gt;
 ALLOW_READ = */*.in2p3.fr&lt;br /&gt;
 ALLOW_DAEMON = *.in2p3.fr&lt;br /&gt;
 ALLOW_ADMINISTRATOR = root@$(CONDOR_HOST)&lt;br /&gt;
 ALLOW_CONFIG = root@$(FULL_HOSTNAME)&lt;br /&gt;
  &lt;br /&gt;
 # 4-Authentication&lt;br /&gt;
 SEC_PASSWORD_FILE = /etc/condor/pool_password&lt;br /&gt;
 SEC_READ_AUTHENTICATION = OPTIONAL&lt;br /&gt;
 SEC_CLIENT_AUTHENTICATION = REQUIRED&lt;br /&gt;
 SEC_DEFAULT_AUTHENTICATION_METHODS = PASSWORD,FS&lt;br /&gt;
 SCHEDD.SEC_WRITE_AUTHENTICATION_METHODS = FS,PASSWORD&lt;br /&gt;
 SCHEDD.SEC_DAEMON_AUTHENTICATION_METHODS = FS,PASSWORD&lt;br /&gt;
 SEC_CLIENT_AUTHENTICATION_METHODS = FS,PASSWORD,CLAIMTOBE&lt;br /&gt;
 SEC_READ_AUTHENTICATION_METHODS = FS,PASSWORD,CLAIMTOBE&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le modèle de sécurité choisi ici repose sur le partage d&#039;une clé commune entre les différentes machines (submitter,master,workers). Cette clé /etc/condor/pool_password est crée par la commande suivante et distribuée sur les machines :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
 condor_store_cred -f /etc/condor/pool_password&lt;br /&gt;
 Enter password: xxxxxx&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ce modèle est assez simple et n&#039;apporte que l&#039;authentification entre demons, pas le chiffrement et le contrôle de l&#039;intégrité des communications.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Configuration du serveur de batch (nanpbs3.in2p3.fr)  =====&lt;br /&gt;
&lt;br /&gt;
Dans cet exemple, le serveur de batch est aussi machine de soumission (il dispose des mêmes comptes que sur les worker nodes)&lt;br /&gt;
&lt;br /&gt;
Creation d&#039;un fichier supplémentaire /etc/condor/config.d/20-master.conf :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt; &lt;br /&gt;
 DAEMON_LIST = COLLECTOR, MASTER, NEGOTIATOR, SCHEDD&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Redémarrage avec la nouvelle config :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
 service condor restart&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
 condor_status -any&lt;br /&gt;
 MyType             TargetType         Name                                     &lt;br /&gt;
 &lt;br /&gt;
 Collector          None               My Pool - nanpbs3.in2p3.fr@nanpbs3.in2p3.&lt;br /&gt;
 Scheduler          None               nanpbs3.in2p3.fr                         &lt;br /&gt;
 DaemonMaster       None               nanpbs3.in2p3.fr                         &lt;br /&gt;
 Negotiator         None               nanpbs3.in2p3.fr       &lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Configuration d&#039;un worker node (nanwn58.in2p3.fr) =====&lt;br /&gt;
&lt;br /&gt;
Creation d&#039;un fichier supplémentaire /etc/condor/config.d/10-workernode.conf :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt; &lt;br /&gt;
 DAEMON_LIST = MASTER, STARTD&lt;br /&gt;
 TRUST_UID_DOMAIN=TRUE&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Redémarrage avec la nouvelle config :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
 service condor restart&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
 condor_status -any&lt;br /&gt;
 MyType             TargetType         Name                                     &lt;br /&gt;
 &lt;br /&gt;
 Collector          None               My Pool - nanpbs3.in2p3.fr@nanpbs3.in2p3.&lt;br /&gt;
 Scheduler          None               nanpbs3.in2p3.fr                         &lt;br /&gt;
 DaemonMaster       None               nanpbs3.in2p3.fr                         &lt;br /&gt;
 Negotiator         None               nanpbs3.in2p3.fr                         &lt;br /&gt;
 DaemonMaster       None               nanwn58.in2p3.fr                         &lt;br /&gt;
 Machine            Job                slot1@nanwn58.in2p3.fr                   &lt;br /&gt;
 Machine            Job                slot2@nanwn58.in2p3.fr                   &lt;br /&gt;
 Machine            Job                slot3@nanwn58.in2p3.fr                   &lt;br /&gt;
 Machine            Job                slot4@nanwn58.in2p3.fr                   &lt;br /&gt;
 Machine            Job                slot5@nanwn58.in2p3.fr                   &lt;br /&gt;
 Machine            Job                slot6@nanwn58.in2p3.fr                   &lt;br /&gt;
 Machine            Job                slot7@nanwn58.in2p3.fr                   &lt;br /&gt;
 Machine            Job                slot8@nanwn58.in2p3.fr                   &lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Examen de la queue depuis le server et submitter :&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
 [root@nanpbs3 ~]# condor_q&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 -- Submitter: nanpbs3.in2p3.fr : &amp;lt;193.48.101.50:58431&amp;gt; : nanpbs3.in2p3.fr&lt;br /&gt;
  ID      OWNER            SUBMITTED     RUN_TIME ST PRI SIZE CMD               &lt;br /&gt;
 &lt;br /&gt;
 0 jobs; 0 completed, 0 removed, 0 idle, 0 running, 0 held, 0 suspended&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Réseaux privés, ports de communication, Pares-Feu =====&lt;br /&gt;
&lt;br /&gt;
Lorsque HTCondor est réparti sur plusieurs machines, rien de spécial n&#039;est à faire si toutes sont situées dans le même réseau.&lt;br /&gt;
Par contre, dans le cas ou elles sont isolées par des pares-feu ou autres, il faut faire ouvrir les ports utilisés par Condor. Dans le cas d&#039;un tout petit cluster (1 CM avec Collecteur , Negotiateur et Scheduleur et 2 workers), il suffit d&#039;autoriser l&#039;écriture, d&#039;ouvrir un intervalle de ports et les définir dans le fichier de configuration de condor.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
 #  To expand your condor pool beyond a single host, set ALLOW_WRITE to match all of the hosts (last one is ccgr2 Mac)&lt;br /&gt;
 ALLOW_WRITE = $(ALLOW_WRITE) ,$(CONDOR_HOST) , worker1, worker2, ......&lt;br /&gt;
&lt;br /&gt;
 Define the ports used by condor&lt;br /&gt;
 #NEGOTIATOR_SOCKET_CACHE_SIZE = 16&lt;br /&gt;
 LOWPORT = 9600&lt;br /&gt;
 HIGHPORT= 9625 &lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
En fait, le nombre de ports à ouvrir est de 21 au minimum (5 pour la communication avec les daemons et 16 pour le &amp;quot;negotiator_socket_cache_size) mais il doit augmenter avec la taille du cluster.Pour ce qui est d&#039;une information plus détaillée sur ports utilisés par Condor et réseaux: http://www.wolftech.ncsu.edu/support/support/Condor/Firewall&lt;br /&gt;
&lt;br /&gt;
Un exemple d&#039;ouverture de ports entre ma VM qui est le CM et mon MAC qui est un de mes worker-nodes:&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
 - en entree vers mon mac :&lt;br /&gt;
 permit tcp host 172.xxx host 134.yyy range 9600 9625&lt;br /&gt;
 permit udp host 172.xxxx host 134.yyy range 9600 9625&lt;br /&gt;
 -en entree vers le serveur condor :&lt;br /&gt;
 permit tcp host 134.yyy host 172.xxx range 9600 9625&lt;br /&gt;
 permit udp host 134.yyy host 172.xxx range 9600 9625&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Gestion des ressources, priorités et comptabilité (accounting) =====&lt;br /&gt;
&lt;br /&gt;
Dans le cadre d&#039;un cluster local, c&#039;est l&#039;utilisateur qui définit lui-même le groupe auxquel il appartient via une instruction de type ClassAd dans son fichier .submit. Exemple :&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
 # accounting group&lt;br /&gt;
 accounting_group = group_info&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
... A développer ...&lt;br /&gt;
&lt;br /&gt;
==== Utilisation en contexte grille ====&lt;br /&gt;
&lt;br /&gt;
==== Sécurité ====&lt;/div&gt;</summary>
		<author><name>Ghita</name></author>
	</entry>
</feed>