<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Le Blog du grand loup Zeur &#187; cluster</title>
	<atom:link href="http://blog.gaetan-grigis.eu/tag/cluster/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.gaetan-grigis.eu</link>
	<description>Le blog qui vous fait connaitre ce que vous savez déjà</description>
	<lastBuildDate>Tue, 17 Jan 2012 08:43:06 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Fake fencing sur Red Hat6</title>
		<link>http://blog.gaetan-grigis.eu/systeme/administration/fake-fencing-sur-red-hat6/</link>
		<comments>http://blog.gaetan-grigis.eu/systeme/administration/fake-fencing-sur-red-hat6/#comments</comments>
		<pubDate>Mon, 16 Jan 2012 18:12:08 +0000</pubDate>
		<dc:creator>Gaëtan</dc:creator>
				<category><![CDATA[Administration]]></category>
		<category><![CDATA[agent]]></category>
		<category><![CDATA[cluster]]></category>
		<category><![CDATA[fake fence]]></category>
		<category><![CDATA[fence]]></category>
		<category><![CDATA[red hat]]></category>
		<category><![CDATA[rhevm]]></category>

		<guid isPermaLink="false">http://blog.gaetan-grigis.eu/?p=1158</guid>
		<description><![CDATA[Plop &#8230; Un petit retour sur l&#8217;article du failover mysql avec les clusters de red hat. Lorsque l&#8217;on test son système de failover (machines virtuelles, ou &#8230;) sans matériel de fencing (switchs/routeurs/périph dédiés), les tests d&#8217;arrêts complets (coupure de courant barbare) échouent lamentablement, car pour switcher les services d&#8217;une machine à une autre, le daemon [...]]]></description>
			<content:encoded><![CDATA[<p>Plop &#8230; </p>
<p>Un petit retour sur l&#8217;article du <a href="http://blog.gaetan-grigis.eu/non-classe/mysql-failover-sur-red-hat-6-avec-drbd-et-rgmanager/">failover mysql</a> avec les clusters de red hat.<br />
<span id="more-1158"></span><br />
Lorsque l&#8217;on test son système de failover (machines virtuelles, ou &#8230;) sans matériel de fencing (switchs/routeurs/périph dédiés), les tests d&#8217;arrêts complets (coupure de courant barbare) échouent lamentablement, car pour switcher les services d&#8217;une machine à une autre, le daemon fenced envoie un signal de reboot au serveur ayant la main sur le service via le système de fencing, et si celui-ci ne répond pas, le service n&#8217;est pas redémarré (il considère qu&#8217;il a lui-même un problème), ne permettant pas de valider le test du &laquo;&nbsp;Si la machine crash, est-ce qu&#8217;une autre prendra le service ?&nbsp;&raquo;.</p>
<p>Il existe cependant des services permettant de faker ces systèmes lors d&#8217;utilisation de machines virtuelles, malheureusement pour moi, je n&#8217;utilise pas le système de machine virtuelle xen directement sur red hat6, ne me permettant de de jouir des agents fence <a href="http://linux.die.net/man/8/fence_rhevm">RHEV-M</a> et libvirt pour les machines virtuelles, et désactiver l&#8217;accès au groupe de fence empêche le rgmanager de se lancer (pose de lock sur dlm-control et dlm-rgmanager qui n&#8217;existe pas sans fence) donc passage obligé à la création d&#8217;un &laquo;&nbsp;fake fence&nbsp;&raquo;.</p>
<p>Pour simuler le système de fence de RHEV-M (un simple client http qui balance 3 requêtes pour vérifier si la machine existe et lance l&#8217;action de reboot), j&#8217;ai donc crée un serveur Web en python, qui renvoit des XMLs complétement faux, mais qui contiennent les infos que l&#8217;agent fence_rhevm cherche, lui permettant de valider le reboot  et de débloquer le service!!!</p>
<p>Le codage est très simple (avec une belle XSS en prime ^^, mais comme l&#8217;agent fence_rhevm crée ses propres urls de requêtes &#8230; osef ;=)) :</p>
<div class="geshi no python">
<ol>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="co1">#!/usr/bin/python</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">import</span> <span class="kw3">SocketServer</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">import</span> <span class="kw3">re</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">status=<span class="st0">&quot;down&quot;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">class</span> FenceHandler<span class="br0">&#40;</span><span class="kw3">SocketServer</span>.<span class="me1">BaseRequestHandler</span><span class="br0">&#41;</span>:</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">def</span> handle<span class="br0">&#40;</span><span class="kw2">self</span><span class="br0">&#41;</span>:</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw1">global</span> status</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">self</span>.<span class="me1">data</span> = <span class="kw2">self</span>.<span class="me1">request</span>.<span class="me1">recv</span><span class="br0">&#40;</span><span class="nu0">4096</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;re_get_name = <span class="kw3">re</span>.<span class="kw2">compile</span><span class="br0">&#40;</span><span class="st0">&quot;GET /api/vms/<span class="es0">\?</span>search=name%3D(.*) HTTP/1.1&quot;</span>,<span class="kw3">re</span>.<span class="me1">IGNORECASE</span><span class="br0">&#41;</span> </div>
</li>
<li class="li1">
<div class="de1">&nbsp;result_name = re_get_name.<span class="me1">search</span><span class="br0">&#40;</span><span class="kw2">self</span>.<span class="me1">data</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="co1">#If there is no Get, it&#39;s a posted action</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw1">if</span> result_name == <span class="kw2">None</span>:</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw2">self</span>.<span class="me1">request</span>.<span class="me1">send</span><span class="br0">&#40;</span><span class="st0">&quot;HTTP/1.1 200 OK<span class="es0">\r</span><span class="es0">\n</span>Content-Type: application/xml<span class="es0">\r</span><span class="es0">\n</span><span class="es0">\r</span><span class="es0">\n</span>&lt;action /&gt;<span class="es0">\r</span><span class="es0">\n</span>&quot;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; status=<span class="st0">&quot;up&quot;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw1">return</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="co1">#Else it&#39;s a normal request, answer &#8230;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;name = <span class="st0">&quot;none&quot;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw1">if</span> result_name <span class="sy0">!</span>= <span class="kw2">None</span>:</div>
</li>
<li class="li1">
<div class="de1">&nbsp; name = result_name.<span class="me1">group</span><span class="br0">&#40;</span><span class="nu0">1</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw2">self</span>.<span class="me1">request</span>.<span class="me1">send</span><span class="br0">&#40;</span><span class="st0">&quot;HTTP/1.1 200 OK<span class="es0">\r</span><span class="es0">\n</span>Content-Type: application/xml<span class="es0">\r</span><span class="es0">\n</span><span class="es0">\r</span><span class="es0">\n</span>&lt;vms&gt;&lt;vm id=<span class="es0">\&quot;</span>id<span class="es0">\&quot;</span> href=<span class="es0">\&quot;</span>osef<span class="es0">\&quot;</span>&gt;&lt;name&gt;&quot;</span>+name+<span class="st0">&quot;&lt;/name&gt;&lt;type&gt;server&lt;/type&gt;&lt;status&gt;&lt;state&gt;&quot;</span>+status+<span class="st0">&quot;&lt;/state&gt;&lt;/status&gt;&lt;/vm&gt;&lt;/vms&gt;<span class="es0">\r</span><span class="es0">\n</span>&quot;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;status = <span class="st0">&quot;down&quot;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">if</span> __name__ == <span class="st0">&quot;__main__&quot;</span>:</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; HOST, PORT = <span class="st0">&quot;0.0.0.0&quot;</span>, <span class="nu0">9999</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; server = <span class="kw3">SocketServer</span>.<span class="me1">TCPServer</span><span class="br0">&#40;</span><span class="br0">&#40;</span>HOST, PORT<span class="br0">&#41;</span>, FenceHandler<span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; server.<span class="me1">serve_forever</span><span class="br0">&#40;</span><span class="br0">&#41;</span></div>
</li>
</ol>
</div>
<p>Une fois lancé sur une machine, il ne reste plus qu&#8217;à fournir les infos dans le cluster.conf (à titre d&#8217;exemple) :</p>
<div class="geshi no xml">
<ol>
<li class="li1">
<div class="de1"><span class="sc3"><span class="re1">&lt;clusternode</span> <span class="re0">name</span>=<span class="st0">&quot;mamachine&quot;</span><span class="re2">&gt;</span></span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="sc3"><span class="re1">&lt;fence<span class="re2">&gt;</span></span></span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="sc3"><span class="re1">&lt;method</span> <span class="re0">name</span>=<span class="st0">&quot;overthelolandfaraway&quot;</span><span class="re2">&gt;</span></span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="sc3"><span class="re1">&lt;device</span> <span class="re0">name</span>=<span class="st0">&quot;rhevm&quot;</span> <span class="re0">port</span>=<span class="st0">&quot;1337&quot;</span><span class="re2">/&gt;</span></span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="sc3"><span class="re1">&lt;/method<span class="re2">&gt;</span></span></span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="sc3"><span class="re1">&lt;/fence<span class="re2">&gt;</span></span></span></div>
</li>
<li class="li1">
<div class="de1"><span class="sc3"><span class="re1">&lt;/clusternode<span class="re2">&gt;</span></span></span></div>
</li>
<li class="li1">
<div class="de1"><span class="sc3"><span class="re1">&lt;fencedevices<span class="re2">&gt;</span></span></span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="sc3"><span class="re1">&lt;fencedevice</span> <span class="re0">name</span>=<span class="st0">&quot;rhevm&quot;</span> <span class="re0">agent</span>=<span class="st0">&quot;fence_rhevm&quot;</span> <span class="re0">ipaddr</span>=<span class="st0">&quot;10.1.1.1&quot;</span> <span class="re0">login</span>=<span class="st0">&quot;rhevm&quot;</span> <span class="re0">passwd</span>=<span class="st0">&quot;rhevm&quot;</span> <span class="re0">ipport</span>=<span class="st0">&quot;9999&quot;</span> <span class="re2">/&gt;</span></span></div>
</li>
<li class="li1">
<div class="de1"><span class="sc3"><span class="re1">&lt;/fencedevices<span class="re2">&gt;</span></span></span></div>
</li>
</ol>
</div>
<p>Si jamais le script est modifié par WP, il reste accessible ici : <a href="https://raw.github.com/cipher16/script/master/fence.py">https://raw.github.com/cipher16/script/master/fence.py</a> (à n&#8217;utiliser que pour des tests bien sûr <img src='http://blog.gaetan-grigis.eu/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> )</p>

                            <div id="aspdf">
                                <a href="http://blog.gaetan-grigis.eu/wp-content/plugins/as-pdf/generate.php?post=1158">
                                    <span>Télécharger l'article au format PDF</span>
                                </a>
                            </div>
                        <hr /><h2>Articles similaires : </h2><ul><li><a href="http://blog.gaetan-grigis.eu/ubuntu/controller-sa-carte-wifi-atheros-sous-ubuntu-lucid/" rel="bookmark" title="Permanent Link: Controller sa carte wifi atheros sous ubuntu Lucid">Controller sa carte wifi atheros sous ubuntu Lucid</a></li><li><a href="http://blog.gaetan-grigis.eu/securite/les-liens-du-week-end/" rel="bookmark" title="Permanent Link: Les liens du week-end">Les liens du week-end</a></li><li><a href="http://blog.gaetan-grigis.eu/programmation/centre-alsace-le-prix-du-gazole-depasse-le-prix-essence/" rel="bookmark" title="Permanent Link: Centre Alsace : Le prix du gazole dépasse le prix essence">Centre Alsace : Le prix du gazole dépasse le prix essence</a></li><li><a href="http://blog.gaetan-grigis.eu/systeme/administration/mise-en-place-discsi-pour-le-partage-de-donnees/" rel="bookmark" title="Permanent Link: Mise en place d&#8217;iSCSI pour le partage de données">Mise en place d&#8217;iSCSI pour le partage de données</a></li><li><a href="http://blog.gaetan-grigis.eu/programmation/envoyer-des-mails-dans-le-passe/" rel="bookmark" title="Permanent Link: Envoyer des mails dans le passé">Envoyer des mails dans le passé</a></li></ul><hr /><small>Copyright &copy; 2008-2011 - Gaetan Grigis - <a href="http://blog.gaetan-grigis.eu">blog.gaetan-grigis.eu</a> </small>]]></content:encoded>
			<wfw:commentRss>http://blog.gaetan-grigis.eu/systeme/administration/fake-fencing-sur-red-hat6/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mysql failover sur Red Hat 6 avec DRBD et RGManager</title>
		<link>http://blog.gaetan-grigis.eu/non-classe/mysql-failover-sur-red-hat-6-avec-drbd-et-rgmanager/</link>
		<comments>http://blog.gaetan-grigis.eu/non-classe/mysql-failover-sur-red-hat-6-avec-drbd-et-rgmanager/#comments</comments>
		<pubDate>Sat, 14 Jan 2012 19:23:45 +0000</pubDate>
		<dc:creator>Gaëtan</dc:creator>
				<category><![CDATA[Non classé]]></category>
		<category><![CDATA[cluster]]></category>
		<category><![CDATA[cman]]></category>
		<category><![CDATA[corosync]]></category>
		<category><![CDATA[drbd]]></category>
		<category><![CDATA[failover]]></category>
		<category><![CDATA[HA]]></category>
		<category><![CDATA[high availability]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[redhat]]></category>
		<category><![CDATA[rgmanager]]></category>

		<guid isPermaLink="false">http://blog.gaetan-grigis.eu/?p=1142</guid>
		<description><![CDATA[plop, today, un rapide article sur un système de failover mysql sur RedHat. NOTE Si certaine commande avec des &#8211; ne fonctionne pas, c&#8217;est qu&#8217;il y en a deux &#8211; - (WordPress ne les aiment pas quand ils sont collés). La configuration présenté ici se veut simplifié (l&#8217;article est encore en cours de rédaction, les [...]]]></description>
			<content:encoded><![CDATA[<p>plop, today, un rapide article sur un système de failover mysql sur RedHat.<br />
<span id="more-1142"></span><br />
<strong>NOTE</strong><br />
Si certaine commande avec des &#8211; ne fonctionne pas, c&#8217;est qu&#8217;il y en a deux &#8211; - (WordPress ne les aiment pas quand ils sont collés).<br />
La configuration présenté ici se veut simplifié (l&#8217;article est encore en cours de rédaction, les tests de HA sont encore en cours et plutôt encourageant ^^).</p>
<p><strong>BackGround</strong><br />
Pour mon alternance on m&#8217;a chargé de switcher le système de HA tournant sur RH5.5 depuis 2 ans avec HeartBeat/DRBD sur le nouveau système (qui existe depuis pas mal de temps, en fait <img src='http://blog.gaetan-grigis.eu/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> ) fournit par RedHat6 pour le clustering : le RGManager, avec ses dépendances (dispo sur toutes les bonnes distro du moment).</p>
<p>Le but de cette manoeuvre est de permettre au service Mysql de rester accessible pour les machines du réseau en cas de crash du serveur (logiciel ou matériel) en partageant une IP et les disques contenant les données (répliqué par DRBD) du serveur Mysql.</p>
<p>L&#8217;utilisation et la configuration du cluter fournit par RedHat est trivial (limite choquant pour un sysadmin habitué à un florilège de fichier de configuration dans lesquels taper, ici seul /etc/cluster/cluster.conf est à toucher, bien évidement les services subissant le failover sont à configurer <img src='http://blog.gaetan-grigis.eu/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> )</p>
<p><strong>Les machines</strong><br />
cluster1 (192.168.1.225) sera à la fois serveur et node<br />
cluster2 (192.168.1.224) sera seulement node<br />
192.168.1.31 sera l&#8217;ip partagé entre les deux machines pour la mise à disposition du service Mysql</p>
<p><strong>Lucy et Ricci</strong></p>
<p>(J&#8217;ai désactivé selinux (setenforce 0) et iptables (service iptbles stop) pour l&#8217;install)</p>
<p>Pour le serveur administrant les clusters, on installe lucy qui permet d&#8217;administrer la config des clusters, ainsi que leurs lancements/reboot, &#8230;</p>
<div class="geshi no bash">
<ol>
<li class="li1">
<div class="de1">yum <span class="kw2">install</span> lucy</div>
</li>
<li class="li1">
<div class="de1">chkconfig lucy on</div>
</li>
<li class="li1">
<div class="de1">service lucy start</div>
</li>
</ol>
</div>
<p>Pour les membres du clusters, installation de ricci du serveur mysql (puisque c&#8217;est lui qu&#8217;on veut partager) et leurs dépendances :</p>
<div class="geshi no bash">
<ol>
<li class="li1">
<div class="de1">yum <span class="kw2">install</span> ricci mysql-server</div>
</li>
<li class="li1">
<div class="de1">chkconfig ricci on</div>
</li>
<li class="li1">
<div class="de1">service ricci start</div>
</li>
<li class="li1">
<div class="de1">chkconfig cman on</div>
</li>
<li class="li1">
<div class="de1">chkconfig rgmanager on</div>
</li>
</ol>
</div>
<p>Il faut set le password de ricci, pour configurer les nodes</p>
<div class="geshi no bash">
<ol>
<li class="li1">
<div class="de1"><span class="kw2">passwd</span> ricci</div>
</li>
</ol>
</div>
<p>Une fois les nodes préparées et lucy installé et lancé, on peut se connecter via un browser à ipduserveurlucy:8084 et ajouter les nodes :<br />
<img src="http://blog.gaetan-grigis.eu/wp-content/uploads/2012/01/addnode.png" alt="" title="addnode" width="620" height="358" class="aligncenter size-full wp-image-1146" /></p>
<p>Puis commencer à configurer les services (c&#8217;est plutôt intuitif donc je zap cette partie) le résultat de la config XML est visible à la fin.</p>
<p><strong>Compilation et installation de DRBD</strong></p>
<p>Passage malheureusement obligatoire, car DRBD n&#8217;existe pas dans les dépôts RedHat, donc on install une machine virtuelle RH6 (ou bien directement sur la machine de prod si vous êtes un bourrin), avec les softs suivant :</p>
<div class="geshi no bash">
<ol>
<li class="li1">
<div class="de1">yum <span class="kw2">install</span> <span class="kw2">gcc</span> <span class="kw2">flex</span> <span class="kw2">make</span> libxslt rpm-build redhat-rpm-config kernel-devel</div>
</li>
<li class="li1">
<div class="de1"><span class="kw3">cd</span> <span class="sy0">/</span>tmp</div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">wget</span> http:<span class="sy0">//</span>oss.linbit.com<span class="sy0">/</span>drbd<span class="sy0">/</span><span class="nu0">8.4</span><span class="sy0">/</span>drbd<span class="nu0">-8.4</span><span class="nu0">.1</span>.<span class="kw2">tar</span>.gz</div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">tar</span> -xvf <span class="sy0">*</span>.<span class="kw2">tar</span>.gz</div>
</li>
<li class="li1">
<div class="de1"><span class="kw3">cd</span> drbd<span class="nu0">-8.4</span><span class="nu0">.1</span></div>
</li>
<li class="li1">
<div class="de1">.<span class="sy0">/</span>configure &#8211;with-rgmanager &#8211;enable-spec &#8211;with-km</div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">make</span> tgz</div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">cp</span> drbd<span class="sy0">*</span>.<span class="kw2">tar</span>.gz <span class="sy0">/</span>root<span class="sy0">/</span>rpmbuild<span class="sy0">/</span>SOURCES<span class="sy0">/</span></div>
</li>
<li class="li1">
<div class="de1">rpmbuild &#8211;bb drbd.spec &#8211;without xen &#8211;without heartbeat &#8211;without udev &#8211;without pacemaker &#8211;with rgmanager</div>
</li>
<li class="li1">
<div class="de1">rpmbuild &#8211;bb drbd-kernel.spec</div>
</li>
<li class="li1">
<div class="de1">rpmbuild &#8211;bb drbd-km.spec</div>
</li>
</ol>
</div>
<p>Ce qui permet, si tout c&#8217;est bien passer de chopper les RPMs dans le dossier (/root/rpmbuild/RPMS/x86_64/) :<br />
drbd-utils-8.4.1-1.el6.x86_64.rpm<br />
drbd-bash-completion-8.4.1-1.el6.x86_64.rpm<br />
drbd-rgmanager-8.4.1-1.el6.x86_64.rpm<br />
drbd-8.4.1-1.el6.x86_64.rpm<br />
drbd-km-2.6.32_220.2.1.el6.x86_64-8.4.1-1.el6.x86_64.rpm</p>
<p>De les uploader et installer sur les nodes du cluster.</p>
<div class="geshi no bash">
<ol>
<li class="li1">
<div class="de1">rpm -i drbd-utils<span class="nu0">-8.4</span><span class="nu0">.1</span><span class="nu0">-1</span>.el6.x86_64.rpm drbd-bash-completion<span class="nu0">-8.4</span><span class="nu0">.1</span><span class="nu0">-1</span>.el6.x86_64.rpm drbd<span class="nu0">-8.4</span><span class="nu0">.1</span><span class="nu0">-1</span>.el6.x86_64.rpm drbd-rgmanager<span class="nu0">-8.4</span><span class="nu0">.1</span><span class="nu0">-1</span>.el6.x86_64.rpm drbd-km<span class="nu0">-2.6</span>.32_220<span class="nu0">.2</span><span class="nu0">.1</span>.el6.x86_64<span class="nu0">-8.4</span><span class="nu0">.1</span><span class="nu0">-1</span>.el6.x86_64.rpm</div>
</li>
</ol>
</div>
<p><strong>Configuration de DRBD</strong></p>
<p>Création du fichier /etc/drbd.d/r0.res, avec l&#8217;utilisation du port de drbd par défaut (7789) et la création de la device /dev/drbd0 sur chacune des machines, avec la réplication du disque /dev/sdb1 (qui contiendra le /var/lib/mysql)</p>
<div class="geshi no config">
<ol>
<li class="li1">
<div class="de1">resource r0 {
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; device &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;/dev/drbd0;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; meta-disk &nbsp; &nbsp; &nbsp; internal;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; on cluster {
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; address &nbsp; &nbsp; &nbsp; &nbsp; 192.168.1.225:7789;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; disk &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;/dev/sdb1;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; }
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; on cluster2 {
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; address &nbsp; &nbsp; &nbsp; &nbsp; 192.168.1.224:7789;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;disk &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;/dev/sdb1;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp;}
</div>
</li>
<li class="li1">
<div class="de1">}</div>
</li>
</ol>
</div>
<p>A exécuter sur les deux machines :</p>
<div class="geshi no bash">
<ol>
<li class="li1">
<div class="de1">drbdadm create-md r0</div>
</li>
<li class="li1">
<div class="de1">modprobe drbd</div>
</li>
<li class="li1">
<div class="de1">drbdadm up r0</div>
</li>
</ol>
</div>
<p>Passage en maitre sur l&#8217;une des deux machines pour créer le système de fichier</p>
<div class="geshi no bash">
<ol>
<li class="li1">
<div class="de1">drbdadm &#8212; &#8211;overwrite-data-of-peer primary r0</div>
</li>
<li class="li1">
<div class="de1">service drbd status</div>
</li>
</ol>
</div>
<p>Qui devra retourner :<br />
<img src="http://blog.gaetan-grigis.eu/wp-content/uploads/2012/01/retour-statusdrbd.png" alt="" title="retour-statusdrbd" width="965" height="109" class="aligncenter size-full wp-image-1149" /><br />
(Si il reste en Secondary/Secondary, y&#8217;a un soucis &#8230; :s).</p>
<p>Puis formatage de la partition (ça va tout supprimer &#8230; ), et copie du /var/lib/mysql courant sur la partition drbd</p>
<div class="geshi no bash">
<ol>
<li class="li1">
<div class="de1">mkfs.ext3 <span class="sy0">/</span>dev<span class="sy0">/</span>drbd0</div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">mkdir</span> <span class="sy0">/</span>tmp<span class="sy0">/</span>mysqldata</div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">mount</span> <span class="sy0">/</span>dev<span class="sy0">/</span>drbd0 <span class="sy0">/</span>tmp<span class="sy0">/</span>mysqldata</div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">cp</span> -r <span class="sy0">/</span>var<span class="sy0">/</span>lib<span class="sy0">/</span>mysql <span class="sy0">/</span>tmp<span class="sy0">/</span>mysqldata</div>
</li>
</ol>
</div>
<p>On peut maintenant supprimer le /var/lib/mysql sur <strong>LES DEUX MACHINES</strong></p>
<div class="geshi no bash">
<ol>
<li class="li1">
<div class="de1"><span class="kw2">rm</span> -rf <span class="sy0">/</span>var<span class="sy0">/</span>lib<span class="sy0">/</span>mysql<span class="sy0">/*</span></div>
</li>
</ol>
</div>
<p>Il faut maintenant configurer le failover du disque pour ensuite monter /dev/drbd0 dans /var/lib/mysql, fournir l&#8217;ip 192.168.1.31 puis démarrer le service mysql.</p>
<p><strong>ATTENTION A NE PAS DEMARRER LES SERVICES AVANT LA SYNCHRO COMPLETE DES DISQUES</strong></p>
<div class="geshi no bash">
<ol>
<li class="li1">
<div class="de1">service drbd status</div>
</li>
</ol>
</div>
<p><img src="http://blog.gaetan-grigis.eu/wp-content/uploads/2012/01/synchro.png" alt="" title="synchro" width="982" height="93" class="aligncenter size-full wp-image-1151" /></p>
<p>Une fois les disques synchro, redémarrer les services drbd, pour qu&#8217;il soit tout deux en secondary, et laisser le rgmanager s&#8217;occuper de faire switcher le master</p>
<p><strong>Configuration du cluster</strong></p>
<p>La configuration au format XML (la capture d&#8217;écran est beaucoup trop grande pour la version http) :</p>
<div class="geshi no config">
<ol>
<li class="li1">
<div class="de1">&lt;?xml version=&quot;1.0&quot;?&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;cluster config_version=&quot;1&quot; name=&quot;cluster-test&quot;&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &lt;clusternodes&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;clusternode name=&quot;192.168.1.225&quot; nodeid=&quot;1&quot;/&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;clusternode name=&quot;192.168.1.224&quot; nodeid=&quot;2&quot;/&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &lt;/clusternodes&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &lt;rm&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;failoverdomains&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;failoverdomain name=&quot;MYSQL&quot; nofailback=&quot;1&quot; ordered=&quot;0&quot; restricted=&quot;0&quot;&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;failoverdomainnode name=&quot;192.168.1.225&quot;/&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;failoverdomainnode name=&quot;192.168.1.224&quot;/&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;/failoverdomain&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;/failoverdomains&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;resources&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;ip address=&quot;192.168.1.31&quot; monitor_link=&quot;on&quot; sleeptime=&quot;10&quot;/&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;mysql config_file=&quot;/etc/my.cnf&quot; listen_address=&quot;192.168.1.31&quot; name=&quot;mysql&quot; shutdown_wait=&quot;5&quot; startup_wait=&quot;5&quot;/&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;/resources&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;service domain=&quot;MYSQL&quot; name=&quot;mysql&quot; recovery=&quot;relocate&quot;&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;drbd name=&quot;drdb-mysql&quot; resource=&quot;r0&quot;&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;fs device=&quot;/dev/drdb0&quot; fsid=&quot;6202&quot; fstype=&quot;ext3&quot; mountpoint=&quot;/var/lib/mysql&quot; name=&quot;mysql&quot; options=&quot;noatime&quot;/&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;/drbd&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;ip ref=&quot;192.168.1.31&quot;/&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;mysql ref=&quot;mysql&quot;/&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;/service&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &lt;/rm&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &lt;cman expected_votes=&quot;1&quot; two_node=&quot;1&quot;/&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &lt;fence_daemon clean_start=&quot;1&quot;/&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;/cluster&gt;</div>
</li>
</ol>
</div>
<p>Une fois la conf mise en place (si c&#8217;est en autostart, ça devrait partir tout seul), sinon : </p>
<div class="geshi no bash">
<ol>
<li class="li1">
<div class="de1">clusvcadm -e <span class="st0">&quot;NOM du service&quot;</span></div>
</li>
</ol>
</div>
<p><strong>Les astuces du LoupZeur</strong><br />
Pour ne pas subir d&#8217;interblocage du rgmanager avec fence (blocage complet du service, rgmanager renvoit dans les logs un joli &laquo;&nbsp;Waiting for CMAN to start&nbsp;&raquo;), je vous conseille vivement de rajouter le clean_start=1 pour le fence_daemon.</p>
<p>Dans l&#8217;interface Web : Preferences -> Enable &laquo;&nbsp;Expert&nbsp;&raquo; mode puis HomeBase -> &laquo;&nbsp;ClusterName&nbsp;&raquo; -> Configure -> Fence Daemon -> Clean Start</p>
<p>En cas d&#8217;interblocage : 2 solutions</p>
<div class="geshi no bash">
<ol>
<li class="li1">
<div class="de1">cman_tool leave force</div>
</li>
</ol>
</div>
<p>et si ça marche pas<br />
modification de /etc/sysconfig/cman et mettre FENCE_JOIN à NO avec un beau </p>
<div class="geshi no bash">
<ol>
<li class="li1">
<div class="de1">service cman restart</div>
</li>
</ol>
</div>
<p>et rgmanager devrait se relancer.</p>
<p>bon HAing <img src='http://blog.gaetan-grigis.eu/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>

                            <div id="aspdf">
                                <a href="http://blog.gaetan-grigis.eu/wp-content/plugins/as-pdf/generate.php?post=1142">
                                    <span>Télécharger l'article au format PDF</span>
                                </a>
                            </div>
                        <hr /><h2>Articles similaires : </h2><ul><li><a href="http://blog.gaetan-grigis.eu/systeme/administration/fake-fencing-sur-red-hat6/" rel="bookmark" title="Permanent Link: Fake fencing sur Red Hat6">Fake fencing sur Red Hat6</a></li><li><a href="http://blog.gaetan-grigis.eu/non-classe/changement-dadresse/" rel="bookmark" title="Permanent Link: Changement d&#8217;adresse">Changement d&#8217;adresse</a></li><li><a href="http://blog.gaetan-grigis.eu/systeme/se-monter-un-environnement-de-developpement-lamp-rapidement/" rel="bookmark" title="Permanent Link: Se monter un environnement de developpement LAMP rapidement">Se monter un environnement de developpement LAMP rapidement</a></li><li><a href="http://blog.gaetan-grigis.eu/systeme/administration/tentative-de-hack-quand-les-kikoolols-attaquent/" rel="bookmark" title="Permanent Link: Tentative de Hack &#8230; quand les kikoolols attaquent!!!">Tentative de Hack &#8230; quand les kikoolols attaquent!!!</a></li><li><a href="http://blog.gaetan-grigis.eu/systeme/securite-installation-de-lids-prelude-sur-debian/" rel="bookmark" title="Permanent Link: Sécurité : Installation de l&#8217;IDS Prelude sur debian">Sécurité : Installation de l&#8217;IDS Prelude sur debian</a></li></ul><hr /><small>Copyright &copy; 2008-2011 - Gaetan Grigis - <a href="http://blog.gaetan-grigis.eu">blog.gaetan-grigis.eu</a> </small>]]></content:encoded>
			<wfw:commentRss>http://blog.gaetan-grigis.eu/non-classe/mysql-failover-sur-red-hat-6-avec-drbd-et-rgmanager/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Cracking de WPA/PSK (Pyrit/CowPatty)</title>
		<link>http://blog.gaetan-grigis.eu/securite/cracking-de-wpapsk-pyritcowpatty/</link>
		<comments>http://blog.gaetan-grigis.eu/securite/cracking-de-wpapsk-pyritcowpatty/#comments</comments>
		<pubDate>Sun, 21 Nov 2010 16:39:12 +0000</pubDate>
		<dc:creator>Gaëtan</dc:creator>
				<category><![CDATA[Sécurité]]></category>
		<category><![CDATA[calcul distribué]]></category>
		<category><![CDATA[cluster]]></category>
		<category><![CDATA[cracking]]></category>
		<category><![CDATA[psk]]></category>
		<category><![CDATA[pyrit]]></category>
		<category><![CDATA[tkip]]></category>
		<category><![CDATA[wpa]]></category>

		<guid isPermaLink="false">http://blog.gaetan-grigis.eu/?p=917</guid>
		<description><![CDATA[plop à tous &#8230; Vous êtes seul responsable de vos actes sur internet, et veillez à toujours avoir les autorisations nécessaire pour pénétrer un réseau (autorisation écrite). J&#8217;ai eu récemment à auditer les réseaux wifi d&#8217;une entreprise suite à des problèmes wifi inconnus (oui ça met en confiance ^^) &#8230; Certes, les articles de cracking [...]]]></description>
			<content:encoded><![CDATA[<p>plop à tous &#8230;</p>
<p><strong>Vous êtes seul responsable de vos actes sur internet, et veillez à toujours avoir les autorisations nécessaire pour pénétrer un réseau (autorisation écrite).</strong></p>
<p>J&#8217;ai eu récemment à auditer les réseaux wifi d&#8217;une entreprise suite à des problèmes wifi inconnus (oui ça met en confiance ^^) &#8230; Certes, les articles de cracking wpa sont légions sur internet, mais mon approche étant un peu différente de la normal (une commande de kikoolol s&#8217;est cachée dans cet article <img src='http://blog.gaetan-grigis.eu/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> ), j&#8217;ai pensé utile de relater mon expérience ici.<br />
<span id="more-917"></span><br />
Côté soft, j&#8217;ai utilisé la suite aircrack-ng, et pyrit/cowpatty.</p>
<p>On démarre une interfaces virtuelle en monitor (pour les cartes atheros)  :</p>
<pre>airmon-ng start wlan0</pre>
<p>Puis on commence par récupérer des handshakes WPA, on peut le faire de manière naturelle, en attendant une nouvelle handshake :</p>
<pre>airodump --channel 1,2,3 --w audit-entx mon0</pre>
<p>L&#8217;entreprise ayant 5 réseaux wifi sur différent canaux, l&#8217;option &#8211;channel suivie de chiffres séparés par des , permet d&#8217;enregistrer dans des fichiers préfixés &laquo;&nbsp;audit-entx&nbsp;&raquo;, les handshakes nécessaires au cracking des passes.</p>
<p>Si besoin est, on peut demander des déconnexions des clients, pour récupérer plus rapidement les handshakes :</p>
<pre>aireplay-ng -e "essid d'un reseau" -0 5 mon0</pre>
<p>A partir de là s’arrête l&#8217;attaque online &#8230; ça n&#8217;aura duré d&#8217;une dizaine de minutes pour récupérer une dizaine de handshakes par réseaux wifi &#8230; un seul par réseaux aurait suffit, mais on ne sait jamais &#8230;</p>
<p>Cela dit, comparé à une attaque wep (en ne passant pas par l&#8217;envoi de deauth), une attaque sur un réseau WPA reste très &laquo;&nbsp;furtive&nbsp;&raquo;, puisqu&#8217;aucun paquets n&#8217;est forgés, les IDS déployés sur le wlan ne découvre rien concernant l&#8217;attaque.</p>
<h2>Pour la suite, il y a plusieurs possibilités :</h2>
<p><strong>Utiliser l&#8217;outil airolib</strong> (prend une bonne demi journée), qui génére une matrice de mot de passe associé à l&#8217;essid du réseau, pour ce faire, il faut un dictionnaire de mot de passe (cherchez password list sur google ou utilisez celui de backtrack 4 ) et la liste des essid sur lesquels il faut lancer l&#8217;attaque.</p>
<p>L&#8217;entreprise étant la seule dans les environs à utiliser du TKIP/PSK, les commandes suivante créées un fichier nommé essid avec la liste des essid répondant à mes critères, importe dans la base de données sqlite &laquo;&nbsp;audit-entx&nbsp;&raquo; les essid et la liste de mot de passe (~2 millions de mot de passes entre 8 et 32 caractères).</p>
<pre>iwlist ath0 scan|egrep -B 10 "TKIP|PSK"|grep ESSID|awk -F\" '{print $2}' &gt; essid
airolib-ng audit-entx --import essid essid
airolib-ng audit-entx --import passwd malistedepasse</pre>
<p>Il faudra ensuite générer les hash associant le mot de passe et l&#8217;essid, soit pour mon cas environ 8 millions de combinaisons différentes :</p>
<pre>airolib-ng audit-entx --batch</pre>
<p>Cette opération peut prendre beaucoup de temps (une demi journée dans mon cas &#8230; en tournant à 300PMK/s).</p>
<p>et on lance le crack avec ﻿(nécessite la compilation de aircrack avec sqlite)</p>
<pre>aircrack-ng -r audit-entx monfichier.cap</pre>
<p><strong>Utiliser l&#8217;outil pyrit</strong> (qui prend environ 10 minutes avec une bonne carte graphique pour moi une GTX 260 et un phantom X4 en SSE2).</p>
<p>Pour installer pyrit et cpyrit_cuda, suivre la <a href="http://code.google.com/p/pyrit/wiki/Installation">manip ici</a>, installer CUDA et le CUDAToolkit (sinon il va manquer des libs lors de la compilation du soft).</p>
<p>Une fois installé, on ajoute les essid et la liste de pass, et on commence le batch :</p>
<pre>pyrit -e "monessid" create_essid
pyrit -i passwd.lst import_passwords
pyrit batch</pre>
<p>En 5 bonnes minutes, mes 5 réseaux était &laquo;&nbsp;batchés&nbsp;&raquo; :<br />
<a href="http://blog.gaetan-grigis.eu/wp-content/uploads/2010/11/batch_proc.png"><img class="aligncenter size-full wp-image-922" title="batch_proc" src="http://blog.gaetan-grigis.eu/wp-content/uploads/2010/11/batch_proc.png" alt="" width="606" height="357" /></a><br />
Plus qu&#8217;à passer au cracking :</p>
<pre>pyrit -r monfichier.cap attack_db</pre>
<p>Manque de pot, l&#8217;outil me renvoi une erreur d&#8217;argument de la fonction unpack &#8230; a part en mettant les doigts dans la bête, je ne pouvais rien faire. Il faut donc ensuite passer par <a href="http://www.willhackforsushi.com/?page_id=50">cowpatty</a> pour terminer le crack :</p>
<pre>pyrit -e "monessid" -o hash export_cow
cowpatty -d hash -r monfichier.cap -s "monessid"</pre>
<p>Et en 5 secondes on a le mot de passe (si il a le malheur d&#8217;être dans la liste de mot de passe).</p>
<p>Donc voilà, pour ma première expérience de cracking en WPA avec pyrit &#8230; et la première fois que j&#8217;ai pu entendre les ventilo (package Zotac) de ma GTX260 faire du gros boucan (SC2 et HON ne pompent pas assez de ressources pour passer les 75°C requit pour le lancement des ventilo xD).</p>

                            <div id="aspdf">
                                <a href="http://blog.gaetan-grigis.eu/wp-content/plugins/as-pdf/generate.php?post=917">
                                    <span>Télécharger l'article au format PDF</span>
                                </a>
                            </div>
                        <hr /><h2>Articles similaires : </h2><ul><li><a href="http://blog.gaetan-grigis.eu/securite/cracking-de-pass-via-gpu-cuda-avec-durandal-md5-sha/" rel="bookmark" title="Permanent Link: Cracking de pass via GPU (Cuda) avec Durandal (MD5, SHA, &#8230;)">Cracking de pass via GPU (Cuda) avec Durandal (MD5, SHA, &#8230;)</a></li><li><a href="http://blog.gaetan-grigis.eu/systeme/telechargement-direct-et-linux-tucan/" rel="bookmark" title="Permanent Link: Téléchargement Direct et Linux (Tucan)">Téléchargement Direct et Linux (Tucan)</a></li><li><a href="http://blog.gaetan-grigis.eu/programmation/bt3-dans-les-bacs-les-hackeurs-vont-se-regaler/" rel="bookmark" title="Permanent Link: BT3 dans les bacs &#8230; les hackeurs vont se régaler">BT3 dans les bacs &#8230; les hackeurs vont se régaler</a></li></ul><hr /><small>Copyright &copy; 2008-2011 - Gaetan Grigis - <a href="http://blog.gaetan-grigis.eu">blog.gaetan-grigis.eu</a> </small>]]></content:encoded>
			<wfw:commentRss>http://blog.gaetan-grigis.eu/securite/cracking-de-wpapsk-pyritcowpatty/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Monter un cluster avec kerrighed sur son réseau</title>
		<link>http://blog.gaetan-grigis.eu/systeme/monter-un-cluster-avec-kerrighed-sur-son-reseau/</link>
		<comments>http://blog.gaetan-grigis.eu/systeme/monter-un-cluster-avec-kerrighed-sur-son-reseau/#comments</comments>
		<pubDate>Sat, 19 Dec 2009 18:50:54 +0000</pubDate>
		<dc:creator>Gaëtan</dc:creator>
				<category><![CDATA[Administration]]></category>
		<category><![CDATA[Système]]></category>
		<category><![CDATA[booter en réseau]]></category>
		<category><![CDATA[calcul parallel]]></category>
		<category><![CDATA[cluster]]></category>
		<category><![CDATA[grappe]]></category>
		<category><![CDATA[kernel]]></category>
		<category><![CDATA[kerrighed]]></category>
		<category><![CDATA[serveur]]></category>
		<category><![CDATA[tftpboot]]></category>

		<guid isPermaLink="false">http://blog.gaetan-grigis.eu/?p=637</guid>
		<description><![CDATA[Plopinou &#8230; encore un article de type &#171;&#160;retour d&#8217;expérience geek&#160;&#187; Temps : 2h (en compilant le tout avec un AMD 3000+) Niveau : Noob (faut quand même savoir jouer à WoW le temps de la compil&#8217; qui peut prendre 1 heures) Le but de cette technique était de recycler quelques PC sur mon réseau et gagner en [...]]]></description>
			<content:encoded><![CDATA[<p>Plopinou &#8230; encore un article de type &laquo;&nbsp;retour d&#8217;expérience geek&nbsp;&raquo;<br />
Temps : 2h (en compilant le tout avec un AMD 3000+)<br />
Niveau : Noob (faut quand même savoir jouer à WoW le temps de la compil&#8217; qui peut prendre 1 heures)</p>
<p>Le but de cette technique était de recycler quelques PC sur mon réseau et gagner en puissance de calcul avec de vieux AMD 3000+ avec 1Go de ram.<br />
<span id="more-637"></span><br />
<a href="http://fr.wikipedia.org/wiki/Kerrighed" target="_blank">Kerrighed</a> est un cluster de type &laquo;&nbsp;<a href="http://fr.wikipedia.org/wiki/Grappe_de_serveurs" target="_blank">Grappe de serveur</a>&nbsp;&raquo; qui permet un truc assez sympa, il suffit que l&#8217;ensemble des machines du réseau utilisent le kernel modifié (un 2.6.20 obligatoire &#8230;) pour que l&#8217;ensemble de ces machines puissent être emulées comme une seul machine <a href="http://fr.wikipedia.org/wiki/Symmetric_multiprocessing" target="_blank">SMP</a> partageant donc le CPU et la RAM des machines, assez sympa pour des logiciels qui bouffent de la ram et du cpu (genre firefox ?? xD).</p>
<p>Le gros intéret de ce type de réseaux face à des solutions comme les systèmes <a href="http://fr.wikipedia.org/wiki/Message_Passing_Interface" target="_blank">MPI</a> est qu&#8217;il n&#8217;y a pas besoin d&#8217;avoir des logiciels spécifique qui utilisent l&#8217;interface en question, ici la plupart des softs qui peuvent tourner sur du kernel SMP (qui devient assez commun sur les dernières machine multi-core pour partager les calculs entre les cores d&#8217;une même machine) peuvent être susceptible d&#8217;utiliser le CPU/RAM des autres ordi.</p>
<p>Alors bon &#8230; d&#8217;un côté ça parait super intéressant de pouvoir ajouter la puissance de nos anciens PC, d&#8217;un autre ont se dit &#8230; c&#8217;est naze, faut installer le kernel à la main sur chacune de ces machines, de quoi repousser n&#8217;importe qu&#8217;elle geek en puissance devant le travail à fournir &#8230;</p>
<p>C&#8217;est là qu&#8217;intervient un truc super sympa que l&#8217;iut de stras utilisait pour faire booter les terminaux X (et que d&#8217;autre utilisent surement). Utiliser une machine comme serveur dhcp,nfs,tftpd-hpa pour faire booter d&#8217;autres machines sur un réseau (en clair, on installe le système sur une machine, et toute les autres boot dessus, permettant même de d&#8217;utiliser des machines sans disque dur, comme ça on peut ce faire une machine qui prend tt les dd et les partager sur le réseau et pouvoir rajouter une nouvelle machine en la connectant simplement au réseau et en la bootant dessus).</p>
<p>Pour ça, j&#8217;ai suivi un superbe <a href="http://www.debianadmin.com/how-to-set-up-a-high-performance-cluster-hpc-using-debian-lenny-and-kerrighed.html" target="_blank">tuto</a> (en anglais, et pas trop vieux en plus) que je vais traduire et commenter avec mes superbes retour d&#8217;expériences ^^.</p>
<p><strong>L&#8217;architecture : </strong></p>
<p>J&#8217;ai ma machine HOST (serveur nfs,dhcp,tftpd, &#8230;) sur laquelle je fait toute mes manipulations, avec deux interfaces, la première connectée au net (histoire de pouvoir mettre à jour la machine), et la seconde connectée à mon réseau de cluster, qui a besoin d&#8217;un réseau à part, puisque j&#8217;utilise un serveur DHCP dédié à l&#8217;adressage de ces machines.</p>
<p>Donc voilà, pour les IPs : 192.168.0.1 est mon serveur principal, 192.168.0.10 et 192.168.0.11 sont mes deux nodes qui vont booter sur le réseaux.</p>
<p>L&#8217;ensemble des manipulations à suivre ce faisant depuis 192.168.0.1 (nommé HOST).</p>
<p>La première commande :</p>
<div class="geshi no bash">
<ol>
<li class="li1">
<div class="de1">apt-get <span class="kw2">install</span> dhcp3-server tftpd-hpa portmap syslinux nfs-kernel-server nfs-common debootstrap</div>
</li>
</ol>
</div>
<p>qui permettra d&#8217;installer l&#8217;ensemble des softs nécessaire à notre cluster.</p>
<p>Puis on modifie le fichier <strong>/etc/default/dhcp3-server</strong> et on spécifie l&#8217;interface sur laquelle est connecté notre cluster (eth0 étant ma connexion au net) :</p>
<div class="geshi no bash">
<ol>
<li class="li1">
<div class="de1"><span class="re2">INTERFACES=</span><span class="st0">&quot;eth1&quot;</span></div>
</li>
</ol>
</div>
<p>Puis le fichier /etc/dhcp3/dhcpd.conf</p>
<div class="geshi no bash">
<ol>
<li class="li1">
<div class="de1"><span class="co0"># General options</span></div>
</li>
<li class="li1">
<div class="de1">option dhcp-max-message-<span class="kw2">size</span> <span class="nu0">2048</span>;</div>
</li>
<li class="li1">
<div class="de1">use-host-decl-names on;</div>
</li>
<li class="li1">
<div class="de1">deny unknown-clients;</div>
</li>
<li class="li1">
<div class="de1">deny bootp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">option domain-name <span class="st0">&quot;cluster.lan&quot;</span>;</div>
</li>
<li class="li1">
<div class="de1">option domain-name-servers <span class="nu0">192.168</span><span class="nu0">.0</span><span class="nu0">.1</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">subnet <span class="nu0">192.168</span><span class="nu0">.0</span><span class="nu0">.0</span> netmask <span class="nu0">255.255</span><span class="nu0">.255</span><span class="nu0">.0</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">option routers <span class="nu0">192.168</span><span class="nu0">.0</span><span class="nu0">.1</span>;</div>
</li>
<li class="li1">
<div class="de1">option broadcast-address <span class="nu0">192.168</span><span class="nu0">.0</span><span class="nu0">.255</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">group <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">filename <span class="st0">&quot;pxelinux.0&quot;</span>;</div>
</li>
<li class="li1">
<div class="de1">option root-path <span class="st0">&quot;192.168.0.11:/nfsroot/kerrighed&quot;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">host node1 <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">fixed-address <span class="nu0">192.168</span><span class="nu0">.0</span><span class="nu0">.10</span>;</div>
</li>
<li class="li1">
<div class="de1">hardware ethernet <span class="nu0">11</span>:<span class="nu0">33</span>:<span class="nu0">22</span>:<span class="nu0">55</span>:<span class="nu0">44</span>:<span class="nu0">66</span>;<span class="co0">#à remplacer par l&#39;adresse mac de votre machine 1</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">host node2 <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">fixed-address <span class="nu0">192.168</span><span class="nu0">.0</span><span class="nu0">.11</span>;</div>
</li>
<li class="li1">
<div class="de1">hardware ethernet <span class="nu0">11</span>:<span class="nu0">22</span>:<span class="nu0">33</span>:<span class="nu0">44</span>:<span class="nu0">55</span>:<span class="nu0">66</span>;<span class="co0">#à remplacer par l&#39;adresse mac de votre machine 2</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">server-name <span class="st0">&quot;host&quot;</span>;</div>
</li>
<li class="li1">
<div class="de1">next-server <span class="nu0">192.168</span><span class="nu0">.0</span><span class="nu0">.1</span>; <span class="co0"># Server IP</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
</ol>
</div>
<p>On permet le lancement en daemon de tftp au démarrage de la machine en modifiant /etc/default/tftp-hpa</p>
<div class="geshi no bash">
<ol>
<li class="li1">
<div class="de1"><span class="re2">RUN_DAEMON=</span><span class="st0">&quot;yes&quot;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re2">OPTIONS=</span><span class="st0">&quot;-l -s /var/lib/tftpboot&quot;</span></div>
</li>
</ol>
</div>
<p>On copie notre loader pxe</p>
<div class="geshi no bash">
<ol>
<li class="li1">
<div class="de1"><span class="kw2">cp</span> <span class="sy0">/</span>usr<span class="sy0">/</span>lib<span class="sy0">/</span>syslinux<span class="sy0">/</span>pxelinux<span class="nu0">.0</span> <span class="sy0">/</span>var<span class="sy0">/</span>lib<span class="sy0">/</span>tftpboot</div>
</li>
</ol>
</div>
<p>On créer notre dossier de conf :</p>
<div class="geshi no bash">
<ol>
<li class="li1">
<div class="de1"><span class="kw2">mkdir</span> -p <span class="sy0">/</span>var<span class="sy0">/</span>lib<span class="sy0">/</span>tftpboot<span class="sy0">/</span>pxelinux.cfg</div>
</li>
</ol>
</div>
<p>Et on edit notre fichier de boot réseau dans /var/lib/tftpboot/pxelinux.cfg/default : </p>
<div class="geshi no bash">
<ol>
<li class="li1">
<div class="de1">LABEL linux</div>
</li>
<li class="li1">
<div class="de1">KERNEL vmlinuz<span class="nu0">-2.6</span><span class="nu0">.20</span>-krg</div>
</li>
<li class="li1">
<div class="de1">APPEND <span class="re2">console=</span>tty1 <span class="re2">root=</span><span class="sy0">/</span>dev<span class="sy0">/</span>nfs <span class="re2">nfsroot=</span><span class="nu0">192.168</span><span class="nu0">.0</span><span class="nu0">.1</span>:<span class="sy0">/</span>nfsroot<span class="sy0">/</span>kerrighed <span class="re2">ip=</span>dhcp rw <span class="re2">session_id=</span><span class="nu0">1</span></div>
</li>
</ol>
</div>
<p>Maintenant que notre boot est prêt, il faut créer le système sur lequel les autres machines vont booter :</p>
<div class="geshi no bash">
<ol>
<li class="li1">
<div class="de1"><span class="kw2">mkdir</span> -p <span class="sy0">/</span>nfsroot<span class="sy0">/</span>kerrighed</div>
</li>
</ol>
</div>
<p>On prépare l&#8217;import en éditant le fichier /etc/exports :</p>
<div class="geshi no bash">
<ol>
<li class="li1">
<div class="de1"><span class="sy0">/</span>nfsroot<span class="sy0">/</span>kerrighed <span class="nu0">192.168</span><span class="nu0">.0</span><span class="nu0">.1</span><span class="sy0">/</span><span class="nu0">255.255</span><span class="nu0">.255</span><span class="nu0">.0</span><span class="br0">&#40;</span>rw,no_subtree_check,async,no_root_squash<span class="br0">&#41;</span></div>
</li>
</ol>
</div>
<p>Puis un coup de </p>
<div class="geshi no bash">
<ol>
<li class="li1">
<div class="de1">exportfs -avr <span class="sy0">&amp;&amp;</span> debootstrap &#8211; -<span class="kw2">arch</span> i386 lenny <span class="sy0">/</span>nfsroot<span class="sy0">/</span>kerrighed http:<span class="sy0">//</span><span class="kw2">ftp</span>.fr.debian.org<span class="sy0">/</span>debian</div>
</li>
</ol>
</div>
<p>Qui peut prendre un bon bout de temps (z&#8217;avez le temps de faire un warsong voir même une instance de 30 minutes sur WoW ^^) &#8230; puis on fait un coup de </p>
<div class="geshi no bash">
<ol>
<li class="li1">
<div class="de1"><span class="kw2">chroot</span> <span class="sy0">/</span>nfsroot<span class="sy0">/</span>kerrighed</div>
</li>
</ol>
</div>
<p>Pour changer les fichiers de config de notre &laquo;&nbsp;nouvelle machine&nbsp;&raquo; :</p>
<div class="geshi no bash">
<ol>
<li class="li1">
<div class="de1"><span class="kw2">mount</span> -t proc none <span class="sy0">/</span>proc <span class="sy0">&amp;&amp;</span> <span class="kw2">mkdir</span> <span class="sy0">/</span>config <span class="sy0">&amp;&amp;</span> <span class="kw2">mount</span> -t configfs none <span class="sy0">/</span>config <span class="sy0">&amp;&amp;</span> apt-get update <span class="sy0">&amp;&amp;</span> <span class="kw3">export</span> <span class="re2">LC_ALL=</span>C <span class="sy0">&amp;&amp;</span> apt-get <span class="kw2">install</span> dhcp3-common nfs-common nfsbooted openssh-server <span class="sy0">&amp;&amp;</span> <span class="kw2">ln</span> -sf <span class="sy0">/</span>etc<span class="sy0">/</span>network<span class="sy0">/</span>if-up.d<span class="sy0">/</span>mountnfs <span class="sy0">/</span>etc<span class="sy0">/</span>rcS.d<span class="sy0">/</span>S34mountnfs <span class="sy0">&amp;&amp;</span> &nbsp;apt-get <span class="kw2">install</span> <span class="kw2">automake</span> <span class="kw2">autoconf</span> libtool pkg-config <span class="kw2">gawk</span> rsync <span class="kw2">bzip2</span> libncurses5 libncurses5-dev <span class="kw2">wget</span> lsb-release xmlto patchutils xutils-dev build-essential subversion <span class="sy0">&amp;&amp;</span> svn checkout svn:<span class="sy0">//</span>scm.gforge.inria.fr<span class="sy0">/</span>svn<span class="sy0">/</span>kerrighed<span class="sy0">/</span>trunk <span class="sy0">/</span>usr<span class="sy0">/</span>src<span class="sy0">/</span>kerrighed -r <span class="nu0">5426</span></div>
</li>
</ol>
</div>
<p>Puis modification du /etc/fstab</p>
<div class="geshi no bash">
<ol>
<li class="li1">
<div class="de1">proc <span class="sy0">/</span>proc proc defaults <span class="nu0">0</span> <span class="nu0">0</span></div>
</li>
<li class="li1">
<div class="de1"><span class="sy0">/</span>dev<span class="sy0">/</span>nfs <span class="sy0">/</span> nfs defaults <span class="nu0">0</span> <span class="nu0">0</span></div>
</li>
<li class="li1">
<div class="de1">configfs <span class="sy0">/</span>config configfs defaults <span class="nu0">0</span> <span class="nu0">0</span></div>
</li>
</ol>
</div>
<p>On passe par /etc/network/interfaces pour configurer notre réseau &#8230; pour moi :</p>
<div class="geshi no bash">
<ol>
<li class="li1">
<div class="de1">auto lo</div>
</li>
<li class="li1">
<div class="de1">iface lo inet loopback</div>
</li>
<li class="li1">
<div class="de1">iface eth0 inet dhcp</div>
</li>
</ol>
</div>
<p>Une fois que la plupart des configs sont faites, on peut passer par la compilation du kernel kerrighed.</p>
<div class="geshi no bash">
<ol>
<li class="li1">
<div class="de1"><span class="kw2">wget</span> -O <span class="sy0">/</span>usr<span class="sy0">/</span>src<span class="sy0">/</span>linux<span class="nu0">-2.6</span><span class="nu0">.20</span>.<span class="kw2">tar</span>.bz2 http:<span class="sy0">//</span>www.kernel.org<span class="sy0">/</span>pub<span class="sy0">/</span>linux<span class="sy0">/</span>kernel<span class="sy0">/</span>v2<span class="nu0">.6</span><span class="sy0">/</span>linux<span class="nu0">-2.6</span><span class="nu0">.20</span>.<span class="kw2">tar</span>.bz2 <span class="sy0">&amp;&amp;</span> <span class="kw3">cd</span> <span class="sy0">/</span>usr<span class="sy0">/</span>src<span class="sy0">/</span>kerrighed <span class="sy0">&amp;&amp;</span> .<span class="sy0">/</span>autogen.<span class="kw2">sh</span> <span class="sy0">&amp;&amp;</span> .<span class="sy0">/</span>configure <span class="sy0">&amp;&amp;</span> <span class="kw3">cd</span> kernel <span class="sy0">&amp;&amp;</span> <span class="kw2">make</span> defconfig <span class="sy0">&amp;&amp;</span> <span class="kw2">make</span> menuconfig</div>
</li>
</ol>
</div>
<p>Dans le menu &#8216;super ecran bleu&#8217; :<br />
Allez dans &laquo;&nbsp;Device Drivers&nbsp;&raquo; puis &laquo;&nbsp;Network device support&nbsp;&raquo; et choisir sa carte réseau (sinon vous n&#8217;arriverez pas à monter le root une fois le kernel booté).<br />
Revenir au premier menu et choisir &laquo;&nbsp;File systems&nbsp;&raquo; puis &laquo;&nbsp;Network File Systems&nbsp;&raquo; et permettre le nfsV3.<br />
On quitte et on sauvegarde la configuration (en cliquant sur &laquo;&nbsp;exit&nbsp;&raquo;).</p>
<p>On reprend nos commandes (on peut faire un match sur HoN là, y&#8217;en a pour une heure) : </p>
<div class="geshi no bash">
<ol>
<li class="li1">
<div class="de1"><span class="kw3">cd</span> .. <span class="sy0">&amp;&amp;</span> <span class="kw2">make</span> kernel <span class="sy0">&amp;&amp;</span> <span class="kw2">make</span> <span class="sy0">&amp;&amp;</span> <span class="kw2">make</span> kernel-<span class="kw2">install</span> <span class="sy0">&amp;&amp;</span> <span class="kw2">make</span> <span class="kw2">install</span> <span class="sy0">&amp;&amp;</span> ldconfig</div>
</li>
</ol>
</div>
<p>On continue la configuration de notre systèmes en modifiant le fichier /etc/kerrighed_nodes</p>
<div class="geshi no bash">
<ol>
<li class="li1">
<div class="de1"><span class="re2">session=</span><span class="nu0">1</span> <span class="co0">#entre 1 et 254</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re2">nbmin=</span><span class="nu0">1</span> <span class="co0">#nombre de node minimal pour kerrighed.</span></div>
</li>
<li class="li1">
<div class="de1"><span class="nu0">192.168</span><span class="nu0">.0</span><span class="nu0">.10</span>;<span class="nu0">1</span>:eth0</div>
</li>
<li class="li1">
<div class="de1"><span class="nu0">192.168</span><span class="nu0">.0</span><span class="nu0">.11</span>:<span class="nu0">2</span>:eth0</div>
</li>
</ol>
</div>
<p>et on termine ici en modifiant /etc/default/kerrighed</p>
<div class="geshi no bash">
<ol>
<li class="li1">
<div class="de1"><span class="re2">ENABLE=</span>true</div>
</li>
</ol>
</div>
<p>on quitte notre chroot par un superbe :</p>
<div class="geshi no bash">
<ol>
<li class="li1">
<div class="de1"><span class="kw3">exit</span></div>
</li>
</ol>
</div>
<p>On copie notre &laquo;&nbsp;booter&nbsp;&raquo; dans le boot et on redémarre tout nos soft :</p>
<div class="geshi no bash">
<ol>
<li class="li1">
<div class="de1"><span class="kw2">cp</span> <span class="sy0">/</span>nfsroot<span class="sy0">/</span>kerrighed<span class="sy0">/</span>boot<span class="sy0">/</span>vmlinuz<span class="nu0">-2.6</span><span class="nu0">.20</span>-krg <span class="sy0">/</span>var<span class="sy0">/</span>lib<span class="sy0">/</span>tftpboot<span class="sy0">/</span> <span class="sy0">&amp;&amp;</span> <span class="sy0">/</span>etc<span class="sy0">/</span>init.d<span class="sy0">/</span>tftpd-hpa start <span class="sy0">&amp;&amp;</span> <span class="sy0">/</span>etc<span class="sy0">/</span>init.d<span class="sy0">/</span>dhcp3-server start <span class="sy0">&amp;&amp;</span> <span class="sy0">/</span>etc<span class="sy0">/</span>init.d<span class="sy0">/</span>portmap start <span class="sy0">&amp;&amp;</span> <span class="sy0">/</span>etc<span class="sy0">/</span>init.d<span class="sy0">/</span>nfs-kernel-server restart</div>
</li>
</ol>
</div>
<p>A partir de maintenant, toute machine bootant en réseau sera capable d&#8217;utiliser le kernel compilé. (assez sympa en cyber café, ou &#8230; <img src='http://blog.gaetan-grigis.eu/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  ).</p>
<p>Par contre une fois lancer, il ne faut pas oublier d&#8217;autoriser la migration des processus en se connectant sur l&#8217;une des nodes : </p>
<div class="geshi no bash">
<ol>
<li class="li1">
<div class="de1">krgadm nodes <span class="sy0">&amp;&amp;</span> krgadm cluster start <span class="sy0">&amp;&amp;</span> <span class="sy0">/</span>usr<span class="sy0">/</span><span class="kw3">local</span><span class="sy0">/</span>bin<span class="sy0">/</span>krg_legacy_scheduler <span class="sy0">&amp;&amp;</span> krgcapset -d +CAN_MIGRATE <span class="sy0">&amp;&amp;</span> krgcapset -k <span class="re4">$$</span> -d +CAN_MIGRATE <span class="sy0">&amp;&amp;</span> krgcapset -d +USE_REMOTE_MEMORY <span class="sy0">&amp;&amp;</span> krgcapset -k <span class="re4">$$</span> –inheritable-effective +CAN_MIGRATE</div>
</li>
</ol>
</div>
<p>Et voilà &#8230; les geeks en puissance vont pouvoir faire revivre leurs premières machines ^^ (et les terminer dignement xD)</p>

                            <div id="aspdf">
                                <a href="http://blog.gaetan-grigis.eu/wp-content/plugins/as-pdf/generate.php?post=637">
                                    <span>Télécharger l'article au format PDF</span>
                                </a>
                            </div>
                        <hr /><h2>Articles similaires : </h2><ul><li><a href="http://blog.gaetan-grigis.eu/non-classe/mysql-failover-sur-red-hat-6-avec-drbd-et-rgmanager/" rel="bookmark" title="Permanent Link: Mysql failover sur Red Hat 6 avec DRBD et RGManager">Mysql failover sur Red Hat 6 avec DRBD et RGManager</a></li><li><a href="http://blog.gaetan-grigis.eu/systeme/annuaire-ldap-et-authentification-unixlinux/" rel="bookmark" title="Permanent Link: Annuaire LDAP et authentification UNiX/Linux">Annuaire LDAP et authentification UNiX/Linux</a></li><li><a href="http://blog.gaetan-grigis.eu/systeme/administration/connecter-un-reseau-de-machines-virtuelles-sur-un-reseau-local/" rel="bookmark" title="Permanent Link: Connecter un réseau de machines virtuelles sur un réseau local">Connecter un réseau de machines virtuelles sur un réseau local</a></li><li><a href="http://blog.gaetan-grigis.eu/systeme/primary-domain-controller-sous-linux/" rel="bookmark" title="Permanent Link: Primary Domain Controller sous Linux &#8230;">Primary Domain Controller sous Linux &#8230;</a></li><li><a href="http://blog.gaetan-grigis.eu/ubuntu/wifi-ou-3g-tethering-sur-cyanogenmod-via-bluetooth-ou-usb/" rel="bookmark" title="Permanent Link: Wifi ou 3G tethering sur cyanogenmod via Bluetooth ou USB">Wifi ou 3G tethering sur cyanogenmod via Bluetooth ou USB</a></li></ul><hr /><small>Copyright &copy; 2008-2011 - Gaetan Grigis - <a href="http://blog.gaetan-grigis.eu">blog.gaetan-grigis.eu</a> </small>]]></content:encoded>
			<wfw:commentRss>http://blog.gaetan-grigis.eu/systeme/monter-un-cluster-avec-kerrighed-sur-son-reseau/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
	</channel>
</rss>

