<?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 coin du sysadmin</title>
	<atom:link href="http://laurent.cligny.net/index.php/feed/" rel="self" type="application/rss+xml" />
	<link>http://laurent.cligny.net</link>
	<description></description>
	<lastBuildDate>Wed, 01 Jul 2009 08:46:09 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>RAID logiciel sous FreeBSD (mirroring)</title>
		<link>http://laurent.cligny.net/index.php/2009/06/15/freebsd-mirroring/</link>
		<comments>http://laurent.cligny.net/index.php/2009/06/15/freebsd-mirroring/#comments</comments>
		<pubDate>Mon, 15 Jun 2009 08:27:45 +0000</pubDate>
		<dc:creator>laurent</dc:creator>
				<category><![CDATA[Sysadmin]]></category>
		<category><![CDATA[GEOM]]></category>
		<category><![CDATA[gmirror]]></category>
		<category><![CDATA[RAID1]]></category>

		<guid isPermaLink="false">http://laurent.cligny.net/?p=140</guid>
		<description><![CDATA[La réputation de piètres performances des OS d&#8217;une certaine firme de Redmond en ce qui concerne le RAID logiciel, à contribué à marginaliser cette pratique à l&#8217;avantage du RAID dit &#8220;matériel&#8221;. Or on peut noter une tendance actuelle à revenir vers le RAID dit &#8220;logiciel&#8221;, grâce notamment aux systèmes de fichiers nouvelle génération tels que [...]]]></description>
			<content:encoded><![CDATA[<p>La réputation de piètres performances des OS d&#8217;une certaine firme de Redmond en ce qui concerne le RAID logiciel, à contribué à marginaliser cette pratique à l&#8217;avantage du RAID dit &#8220;matériel&#8221;. Or on peut noter une tendance actuelle à revenir vers le RAID dit &#8220;logiciel&#8221;, grâce notamment aux systèmes de fichiers nouvelle génération tels que ZFS, qui permettent  de faire du RAID très facilement et de façon transparente.</p>
<p>Nous n&#8217;allons pas parler de ZFS aujourd&#8217;hui mais de RAID logiciel au travers de GEOM, le &#8220;famework&#8221; de gestion des volumes de stockage de FreeBSD, afin d&#8217;obtenir facilement un système performant en RAID0, RAID1 ou RAID5, avec pour seule contrainte d&#8217;avoir à disposition un nombre de disque durs suffisants.<span id="more-140"></span></p>
<h1>Le RAID1 =&gt; gmirror</h1>
<p>Nous partons du principe que nous avons un système FreeBSD fraichement installé et qui fonctionne (ce qui est normal, puisqu&#8217;il s&#8217;agit de FreeBSD <img src='http://laurent.cligny.net/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> .</p>
<p>Il nous faut tout d&#8217;abord ajouter physiquement un nouveau disque dur de capacité au moins égale à celui avec lequel nous voulons créer un mirroir RAID1. Ajoutez si possible ce nouveau disque sur un autre controlleur de disque que le disque dur existant, et faites attention à la notion de &#8220;master/slave&#8221; si vous avez des disques à la norme PATA.</p>
<p>Une fois le disque ajouté, et le système démarré, le nouveau disque dur devrait être détecté. Dans notre exemple le disque sur lequel est installé le système sera ad0 et le disque ajouté sera ad1.</p>
<p>Afin d&#8217;avoir accès aux métadonnées de notre disque ad0 en écriture, entrons ce qui suit dans un terminal:</p>
<p># <samp class="PROMPT"></samp><kbd class="USERINPUT">sysctl kern.geom.debugflags=17</kbd></p>
<p>Nous chargons le module noyau de gestion du RAID1.</p>
<p># gmirror load</p>
<p>N&#8217;oublions pas de charger gmirror(8) à chaque démarrage.</p>
<p># echo &#8216;geom_mirror_load=&#8221;YES&#8221;&#8216; &gt;&gt; /boot/loader.conf</p>
<p>Puis nous modifions le label de notre disque afin qu&#8217;il devienne compatible avec le RAID1 de gmirror.</p>
<p># gmirror label -b split gm0 /dev/ad0</p>
<p>Nous éditons /etc/fstab afin de modifier les points de montage qui seront impactés (tout ce qui était relatif à /dev/ad0 devient relatif à /dev/mirror/gm0).</p>
<p>Ainsi le fichier /etc/fstab suivant:</p>
<pre># Device               Mountpoint      FStype  Options         Dump    Pass#</pre>
<pre>/dev/ad0s1b            none            swap    sw              0       0</pre>
<pre>/dev/ad0s1a            /               ufs     rw,acls         1       1</pre>
<pre>/dev/ad0s1e            /tmp            ufs     rw              2       2</pre>
<pre>/dev/ad0s1f            /usr            ufs     rw,acls         2       2</pre>
<pre>/dev/ad0s1d            /var            ufs     rw              2       2</pre>
<p>deviendra:</p>
<pre># Device                      Mountpoint      FStype  Options         Dump    Pass#</pre>
<pre>/dev/mirror/gm0s1b            none            swap    sw              0       0</pre>
<pre>/dev/mirror/gm0s1a            /               ufs     rw,acls         1       1</pre>
<pre>/dev/mirror/gm0s1e            /tmp            ufs     rw              2       2</pre>
<pre>/dev/mirror/gm0s1f            /usr            ufs     rw,acls         2       2</pre>
<pre>/dev/mirror/gm0s1d            /var            ufs     rw              2       2</pre>
<p>Puis nous redémarrons le système (tout en croisant les doigts <img src='http://laurent.cligny.net/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> :</p>
<p># reboot</p>
<p>Pendant le redémarrage, nous constatons que les occurences de ad0 sont remplacées par mirror/gm0 lors des opérations de mount(8)</p>
<p>Nous pouvons aussi controller que tout a bien été monté grâce à la commande mount(8):</p>
<p># mount</p>
<p>Si tout va bien, il est temps d&#8217;insérer notre nouveau disque afin de construire notre &#8220;array of inexpensive disks&#8221; de type mirroir.</p>
<p># gmirror insert gm0 /dev/ad1</p>
<p>Une fois le nouveau disque inséré dans le RAID1, la reconstruction de celui-ci débute automatiquement. Cela peut-être vérifié grâce à gmirror(8).</p>
<p># gmirror status</p>
<pre class="SCREEN">      Name    Status  Components
mirror/gm0  COMPLETE  ad0
                      ad1
</pre>
<p>Pour remplacer un disque faisant partie du mirroir (par ex. ad0), il suffit, après avoir remplacé physiquement le disque défectueux, de faire:</p>
<p># gmirror forget gm0</p>
<p># gmirror insert gm0 /dev/ad0</p>
<p>Le mirroir se reconstruit ensuite automatiquement (on peut toujours le vérifier avec &#8220;gmirror status&#8221;).</p>
<p>Les autres configurations RAID feront l&#8217;objet de futurs billets.</p>
]]></content:encoded>
			<wfw:commentRss>http://laurent.cligny.net/index.php/2009/06/15/freebsd-mirroring/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sortie de FreeBSD 7.2</title>
		<link>http://laurent.cligny.net/index.php/2009/05/04/sortie-de-freebsd-72/</link>
		<comments>http://laurent.cligny.net/index.php/2009/05/04/sortie-de-freebsd-72/#comments</comments>
		<pubDate>Mon, 04 May 2009 11:21:21 +0000</pubDate>
		<dc:creator>laurent</dc:creator>
				<category><![CDATA[Actus logiciels]]></category>
		<category><![CDATA[7.2-RELEASE]]></category>
		<category><![CDATA[BSD]]></category>
		<category><![CDATA[FreeBSD]]></category>

		<guid isPermaLink="false">http://laurent.cligny.net/?p=143</guid>
		<description><![CDATA[L&#8217;équipe du projet FreeBSD est heureuse de nous faire part de la sortie de la version 7.2-RELEASE de leur système d&#8217;exploitation. Il s&#8217;agit d&#8217;une version mineure (en attendant la version 8.0-RELEASE, prévue pour Août 2009), par conséquent elle ne contient pas de révolutions, mais plutôt des évolutions. Avec entre autres:
Virtualisation:
 &#8211; La possibilité d&#8217;assigner plusieurs [...]]]></description>
			<content:encoded><![CDATA[<p>L&#8217;équipe du projet FreeBSD est heureuse de nous faire part de la sortie de la version 7.2-<span class="misspelled">RELEASE</span> de leur système d&#8217;exploitation.<span id="more-143"></span> Il s&#8217;agit d&#8217;une version mineure (en attendant la version 8.0-<span class="misspelled">RELEASE</span>, prévue pour Août 2009), par conséquent elle ne contient pas de révolutions, mais plutôt des évolutions. Avec entre autres:</p>
<p><span style="text-decoration: underline;">Virtualisation:</span><br />
 &#8211; La possibilité d&#8217;assigner plusieurs adresses IP à une &#8220;<span class="misspelled">jail</span>&#8221; (virtualisation de type <span class="misspelled">chroot</span>), voire même pas d&#8217;adresse IP du tout. Ce qui permet une plus grande souplesse de leur utilisation.<br />
 &#8211; <span class="misspelled">cpuset</span>(1) permet dorénavant d&#8217;assigner une &#8220;<span class="misspelled">jail</span>&#8221; à un ou plusieurs processeurs donnés sur un système multiprocesseurs.</p>
<p><span style="text-decoration: underline;">Support matériel:</span><br />
 &#8211; La version SPARC64 supporte maintenant les processeurs Ultra SPARC <span class="misspelled">III</span> (modèle <span class="misspelled">Cheetah</span>).<br />
 &#8211; Un driver u3g(4) a été ajouté. Il permet de prendre en charge les fameux &#8220;<span class="misspelled">dongles</span>&#8221; 3G (modems <span class="misspelled">HSDPA</span>) qui sont apparus ces derniers mois (<span class="misspelled">Novatel</span>, <span class="misspelled">Huawei</span>, <span class="misspelled">Qualcomm</span>, etc).</p>
<p><span style="text-decoration: underline;">Divers:</span><br />
 &#8211; Un problème sur <span class="misspelled">boot</span>(8) pouvant empêcher certaines configurations matérielles de démarrer sur le CD-<span class="misspelled">ROM</span> d&#8217;installation de la 7.1-<span class="misspelled">RELEASE</span> a été corrigé.<br />
 &#8211; Les versions supportées de Gnome et KDE deviennent respectivement la 2.26 et la 4.2.2</p>
<p>Notons que, contrairement à la version 7.1-<span class="misspelled">RELEASE</span> dont les mises à jours sont supportées jusqu&#8217;au 31 Janvier 2011, la 7.2-<span class="misspelled">RELEASE</span> ne sera supportée que pendant 12 mois.</p>
<ul>
<li><img src="http://linuxfr.org/images/fr.png" alt="[fr]" /> <a class="contentlink" href="http://www.freebsd.org/fr/"> Le site du projet FreeBSD</a></li>
<li><img src="http://linuxfr.org/images/en.png" alt="[en]" /> <a class="contentlink" href="http://www.freebsd.org/releases/7.2R/announce.html"> L&#8217;annonce sur le site officiel</a></li>
<li><img src="http://linuxfr.org/images/en.png" alt="[en]" /> <a class="contentlink" href="http://www.freebsd.org/releases/7.2R/relnotes-detailed.html"> Les &#8220;<span class="misspelled">Release</span> Notes&#8221; sur le site officiel</a></li>
<li><img src="http://linuxfr.org/images/en.png" alt="[en]" /> <a class="contentlink" href="http://torrents.freebsd.org:8080/"> Le <span class="misspelled">tracker</span> torrent officiel</a></li>
<li><a href="http://linuxfr.org/2009/05/04/25405.html">Ma dépêche sur LinuxFR.org</a></li>
</ul>
<p><br class="spacer_" /></p>
]]></content:encoded>
			<wfw:commentRss>http://laurent.cligny.net/index.php/2009/05/04/sortie-de-freebsd-72/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Blackout du net Français</title>
		<link>http://laurent.cligny.net/index.php/2009/02/27/blackout-du-net-francais/</link>
		<comments>http://laurent.cligny.net/index.php/2009/02/27/blackout-du-net-francais/#comments</comments>
		<pubDate>Fri, 27 Feb 2009 13:52:51 +0000</pubDate>
		<dc:creator>laurent</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[citoyenneté]]></category>
		<category><![CDATA[création et internet]]></category>
		<category><![CDATA[HADOPI]]></category>

		<guid isPermaLink="false">http://laurent.cligny.net/?p=114</guid>
		<description><![CDATA[Sélectionnez le texte qui suit avec votre souris pour me lire  

En soutient aux différentes manifestations contre le projet de loi &#8220;Creation et Internet&#8221; appelée aussi Hadopi qui à pour buts, entre autres, de:

Céder aux caprices des industries privées du secteur de l&#8217;édition phonographique, incapables de s&#8217;adapter aux nouvelles technologies et s&#8217;accrochant à une [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;">Sélectionnez le texte qui suit avec votre souris pour me lire <img src='http://laurent.cligny.net/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p style="text-align: center;"><a rel="attachment wp-att-116" href="http://laurent.cligny.net/index.php/2009/02/27/blackout-du-net-francais/quadrature_black-out_hadopi_468x60px/"><img class="size-full wp-image-116 aligncenter" title="quadrature_black-out_hadopi_468x60px" src="http://laurent.cligny.net/wp-content/uploads/quadrature_black-out_hadopi_468x60px.gif" alt="" width="468" height="60" /></a></p>
<p><span style="background-color: #000000;"><span style="color: #000000;">En soutient aux différentes manifestations contre le projet de loi &#8220;Creation et Internet&#8221; appelée aussi Hadopi qui à pour buts, entre autres, de:</span></span></p>
<ul>
<li><span style="background-color: #000000;"><span style="color: #000000;">Céder aux caprices des industries privées du secteur de l&#8217;édition phonographique, incapables de s&#8217;adapter aux nouvelles technologies et s&#8217;accrochant à une image du marché datant des années 1960.</span></span></li>
<li><span style="background-color: #000000;"><span style="color: #000000;">Surveiller à loisir et sans garde-fous juridiques les activités des citoyens français sur Internet</span></span></li>
<li><span style="background-color: #000000;"><span style="color: #000000;">Permettre quelque chose d&#8217;impensable il y a encore quelques années dans une démocratie: la présomption de culpabilité</span></span></li>
</ul>
<p><span style="background-color: #000000;"><span style="color: #000000;">Je me joint à <a href="http://www.laquadrature.net/fr/olivennes-HADOPI-creation-et-internet">l&#8217;appel de la Quadrature du Net</a> pour une action massive des usagers français d&#8217;Internet, dénonçant la dangerosité et le non-sens de ce projet de loi.</span></span></p>
<p><span style="background-color: #000000;"><span style="color: #000000;">Comment peut-on en France se plier à des caprices d&#8217;intérets privés au détriment de la liberté des citoyens ? Cette loi n&#8217;enrayera pas le &#8220;piratage&#8221; des oeuvres sur Internet, mais permettra de légaliser une atteinte grave à la liberté de chacun. Ainsi une société privée pourra décider de vous punir parcequ&#8217;elle aura la <span style="text-decoration: underline;">conviction</span> et non la <span style="text-decoration: underline;">preuve</span> que vous êtes un délinquant, et ce sans que la Justice ne soit jamais saisie.</span></span></p>
<p><span style="background-color: #000000;"><span style="color: #000000;">Je vois la une brèche qu&#8217;il ne faut surtout pas ouvrir, car les lobbies privés de toutes sortes vont s&#8217;y engouffrer. Le gouvernement est élu par le Peuple, pour le Peuple, et les intérets spécifiques d&#8217;une société privée ne devrait pas y avoir droit de cité.</span></span></p>
]]></content:encoded>
			<wfw:commentRss>http://laurent.cligny.net/index.php/2009/02/27/blackout-du-net-francais/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Grapher l&#8217;activité de PF grâce à pfstat</title>
		<link>http://laurent.cligny.net/index.php/2009/02/11/graph-pfstat/</link>
		<comments>http://laurent.cligny.net/index.php/2009/02/11/graph-pfstat/#comments</comments>
		<pubDate>Wed, 11 Feb 2009 12:57:51 +0000</pubDate>
		<dc:creator>laurent</dc:creator>
				<category><![CDATA[Scripting]]></category>
		<category><![CDATA[Sysadmin]]></category>
		<category><![CDATA[OpenBSD PF]]></category>
		<category><![CDATA[pfstat]]></category>

		<guid isPermaLink="false">http://laurent.cligny.net/?p=95</guid>
		<description><![CDATA[Aujourd&#8217;hui, point de bidouille, point de manipulations absconses, mais plutôt de jolis graphiques où l&#8217;on voit avec tendresse s&#8217;ébattre notre pare-feu OpenBSD PF.
Comment celà peut-il être dans le domaine du possible ? Tout simplement grâce à l&#8217;outil pfstat, écrit par le créateur de PF lui-même.
Afin de ne pas vous perdre en cours de lecture pour [...]]]></description>
			<content:encoded><![CDATA[<p>Aujourd&#8217;hui, point de bidouille, point de manipulations absconses, mais plutôt de jolis graphiques où l&#8217;on voit avec tendresse s&#8217;ébattre notre pare-feu OpenBSD PF.</p>
<p>Comment celà peut-il être dans le domaine du possible ? Tout simplement grâce à l&#8217;outil pfstat, écrit par <a href="http://www.benzedrine.cx/dhartmei.html">le créateur de PF</a> lui-même.<span id="more-95"></span></p>
<p>Afin de ne pas vous perdre en cours de lecture pour cause de démotivation devant les sigles cryptiques et autres incantations shellmaniques qui parsèment comme à l&#8217;accoutumée mes billets techniques, voici un aperçu de ce que nous allons obtenir:</p>
<div id="attachment_99" class="wp-caption aligncenter" style="width: 522px"><a rel="attachment wp-att-99" href="http://laurent.cligny.net/index.php/2009/02/11/graph-pfstat/pfstat_screenshot1/"><img class="size-full wp-image-99" title="pfstat_screenshot1" src="http://laurent.cligny.net/wp-content/uploads/pfstat_screenshot1.png" alt="Pfstat Screenshot" width="512" height="466" /></a><p class="wp-caption-text">Pfstat Screenshot</p></div>
<p>Passons donc maintenant dans le vif du sujet. Nous allons créer les graphiques montrants les octets que PF à laissé passer sur l&#8217;interface sis0, ainsi que les packets passés et bloqués sur cette même interface sur une période de 24 heures.</p>
<p>Tout d&#8217;abord il faut installer pfstat:</p>
<p># pkg_add -r pfstat</p>
<p>Puis on créé un fichier de configuration adéquat /usr/local/etc/pfstat.conf contenant ceci:</p>
<table border="0" align="center">
<tbody>
<tr>
<td>
<p style="line-height: normal;"><span style="color: #008000;">#On indique l&#8217;interface réseau, l&#8217;état, l&#8217;unité de mesure, le sens, le protocole, et si les données sont différentielles</span> <span style="color: #008000;">pour chaque valeur.</span></p>
<p><span style="color: #0000ff;">collect 1 = interface &#8220;sis0&#8243; pass bytes in ipv4 diff<br />
 collect 2 = interface &#8220;sis0&#8243; pass bytes out ipv4 diff</span></p>
<p><span style="color: #0000ff;"><span style="color: #008000;">#On indique le chemin complet de l&#8217;image générée par pfstat, et qui sera affichée par notre serveur web</span><br />
 image &#8220;/usr/local/www/data/pfstat/images/pfstat-bandwidth-day.png&#8221;      {</span></p>
<p><span style="color: #0000ff;"><span style="color: #008000;">#On donne la période affichée et la taille de l&#8217;image générée en pixels</span><br />
 from 24 hours to now<br />
 width 1000 height 400</span></p>
<p><span style="color: #008000;">#On dit ce qu&#8217;on affiche comme données dans notre image</span></p>
<p><span style="color: #0000ff;"><span style="color: #008000;">#L&#8217;axe Y du graphique &#8220;1&#8243; (voir &#8220;collect 1&#8243; plus haut) se trouvera à gauche, les données sont de type bps, puis viennent les options pour la légende (nom du graphe, unité de mesure et couleur)</span><br />
 left<br />
 graph 1 bps &#8220;in&#8221; &#8220;byte/s&#8221; color 0 192 0 filled<br />
 right<br />
 graph 2 bps &#8220;out&#8221; &#8220;byte/s&#8221; color 0 0 255<br />
 }</span></p>
<p><span style="color: #0000ff;"><span style="color: #008000;">#Les même graphiques que précédemment, mais en générant une image plus petite. Seuls les noms de l&#8217;image générée, et la taille de l&#8217;image en pixels change. De même on peut créer les graphiques pour la semaine, le mois et l&#8217;année passée en modifiant l&#8217;option &#8220;from&#8221;</span><br />
 image &#8220;/usr/local/www/data/pfstat/images/pfstat-bandwidth-day-small.png&#8221;        {<br />
 from 24 hours to now<br />
 width 500 height 200<br />
 left<br />
 graph 1 bps &#8220;in&#8221; &#8220;byte/s&#8221; color 0 192 0 filled<br />
 right<br />
 graph 2 bps &#8220;out&#8221; &#8220;byte/s&#8221; color 0 0 255<br />
 }</span></p>
<p><span style="color: #0000ff;"><span style="color: #008000;">#On procède de la même manière avec les paquets, mais on y ajoute les paquets bloqués (ce qui n&#8217;avait pas sens dans les premiers graphiques qui eux affichent des octets)</span><br />
 collect 3 = interface &#8220;sis0&#8243; pass packets in ipv4 diff<br />
 collect 4 = interface &#8220;sis0&#8243; pass packets out ipv4 diff<br />
 collect 5 = interface &#8220;sis0&#8243; block packets in ipv4 diff<br />
 collect 6 = interface &#8220;sis0&#8243; block packets out ipv4 diff<br />
 image &#8220;/usr/local/www/data/pfstat/images/pfstat-packets-day.png&#8221;        {<br />
 from 24 hours to now<br />
 width 1000 height 400<br />
 left<br />
 graph 3 &#8220;pass in&#8221; &#8220;pkt/s&#8221; color 0 192 0 filled,<br />
 graph 4 &#8220;pass out&#8221; &#8220;pkt/s&#8221; color 0 0 255<br />
 right<br />
 graph 5 &#8220;block in&#8221; &#8220;pkt/s&#8221; color 255 0 0,<br />
 graph 6 &#8220;block out&#8221; &#8220;pkt/s&#8221; color 192 192 0<br />
 }<br />
 image &#8220;/usr/local/www/data/pfstat/images/pfstat-packets-day-small.png&#8221;  {<br />
 from 24 hours to now<br />
 width 500 height 200<br />
 left<br />
 graph 3 &#8220;pass in&#8221; &#8220;pkt/s&#8221; color 0 192 0 filled,<br />
 graph 4 &#8220;pass out&#8221; &#8220;pkt/s&#8221; color 0 0 255<br />
 right<br />
 graph 5 &#8220;block in&#8221; &#8220;pkt/s&#8221; color 255 0 0,<br />
 graph 6 &#8220;block out&#8221; &#8220;pkt/s&#8221; color 192 192 0<br />
 }</span></p>
</td>
</tr>
</tbody>
</table>
<p><span style="color: #0000ff;"><span style="color: #000000;">Bien sûr, il y a beaucoup d&#8217;autres possibilités, comme grapher les files d&#8217;attentes, les états. La <a href="http://www.benzedrine.cx/pfstat.html">page pfstat</a> de l&#8217;auteur en montre un bon panel.</span></span></p>
<p><span style="color: #0000ff;"><span style="color: #000000;">Mais revenons à nos affaires. Il nous faut maintenant créer le répertoire ou seront hebergées la page web d&#8217;affichage de nos graphiques ainsi que les images:</span></span></p>
<p><span style="color: #0000ff;"><span style="color: #000000;"># mkdir -p /usr/local/www/data/pfstat/images</span></span></p>
<p><span style="color: #0000ff;"><span style="color: #000000;">Puis on vérifie que ça fonctionne:</span></span></p>
<p><span style="color: #0000ff;"><span style="color: #000000;"># pfstat -q -p</span></span></p>
<p><span style="color: #0000ff;"><span style="color: #000000;">Cette commande demande à pfstat de compiler les statistiques de pf(4) pour l&#8217;instant <em>t </em>et de créer les graphiques correspondant à l&#8217;emplacement renseigné dans notre fichier de configuration. On peut vérifier le bon fonctionnement par la présence d&#8217;un fichier /var/db/pfstat.db ainsi que celle des graphiques.</span></span></p>
<p># ls -l /var/db/pfstat.db<br />
 -rw&#8212;&#8212;-  1 root  wheel  8192 Feb  6 08:41 /var/db/pfstat.db<br />
 # ls -l /usr/local/www/data/pfstat/images/<br />
 total 846<br />
 -rw-r&#8211;r&#8211;  1 root  wheel  24063 Feb  6 08:41 pfstat-bandwidth-day-small.png<br />
 -rw-r&#8211;r&#8211;  1 root  wheel  64065 Feb  6 08:41 pfstat-bandwidth-day.png<br />
 -rw-r&#8211;r&#8211;  1 root  wheel  27066 Feb  6 08:41 pfstat-packets-day-small.png<br />
 -rw-r&#8211;r&#8211;  1 root  wheel  66568 Feb  6 08:41 pfstat-packets-day.png</p>
<p>Maintenant que ça fonctionne, on automatise la récolte des statistiques de pf(4) grâce à une simple tâche cron(8). Ajoutons ceci dans /etc/crontab:</p>
<p>*    *    *    *    *    root    /usr/local/bin/pfstat -q -p -t 31:365</p>
<p>L&#8217;option -t, permet à pfstat de compresser les donnés vieilles de plus d&#8217;un mois et d&#8217;effacer celles de plus d&#8217;un an. Ainsi notre base /var/db/pfstat.db ne devrait pas grossir exagérément.</p>
<p>Il ne reste plus qu&#8217;à afficher tous ces jolis graphiques sur une page html (ou autre).</p>
<p>Par exemple:</p>
<p>Configuration Apache 2.2</p>
<p>Créer un fichier /usr/local/etc/apache22/Includes/pfstat.conf contenant</p>
<table border="0">
<tbody>
<tr>
<td><span style="color: #0000ff;">Alias /pfstat /usr/local/www/data/pfstat<br />
 DocumentRoot &#8220;/usr/local/www/data/pfstat&#8221;<br />
 &lt;Directory &#8220;/usr/local/www/data/pfstat&#8221;&gt;<br />
 DirectoryIndex index.html<br />
 Order deny,allow<br />
 Allow from all<br />
 Satisfy Any<br />
 &lt;/Directory&gt;<br />
 </span></td>
</tr>
</tbody>
</table>
<p><span style="color: #000000;">Créer un fichier /usr/local/www/data/pfstat/index.html contenant</span></p>
<p><br class="spacer_" /></p>
<table border="0">
<tbody>
<tr>
<td><span style="color: #0000ff;">&lt;!DOCTYPE HTML PUBLIC &#8220;-//W3C//DTD HTML 4.01 Transitional//EN&#8221;&gt;<br />
 &lt;html&gt;</p>
<p><br class="spacer_" /></p>
<p><br class="spacer_" /></p>
<p><br class="spacer_" /></p>
<p>&lt;head&gt;</p>
<p>&lt;meta http-equiv=&#8221;Content-Type&#8221; content=&#8221;text/html; charset=US-ASCII&#8221;&gt;<br />
 &lt;title&gt;PF Firewall Statistics&lt;/title&gt;</p>
<p>&lt;/head&gt;</p>
<p>&lt;body text=&#8221;#000000&#8243; bgcolor=&#8221;#FFFFFF&#8221; link=&#8221;#1919C0&#8243; vlink=&#8221;#101030&#8243; alink=&#8221;#FE0000&#8243;&gt;</p>
<p>&lt;h1&gt;PF Firewall Statistics for sis0 interface&lt;/h1&gt;</p>
<p>&lt;h2&gt;interface sis0 pass bytes ipv4, Bytes/s&lt;/h2&gt;<br />
 &lt;h3&gt;Daily statistics&lt;/h3&gt;<br />
 &lt;a href=&#8221;images/pfstat-bandwidth-day.png&#8221;&gt;&lt;img src=&#8221;images/pfstat-bandwidth-day-small.png&#8221; border=&#8221;0&#8243;&gt;&lt;/a&gt;<br />
 &lt;p&gt;</p>
<p>&lt;h2&gt;interface sis0 pass/block packets ipv4, Packets/s&lt;/h2&gt;<br />
 &lt;h3&gt;Daily statistics&lt;/h3&gt;<br />
 &lt;a href=&#8221;images/pfstat-packets-day.png&#8221;&gt;&lt;img src=&#8221;images/pfstat-packets-day-small.png&#8221; border=&#8221;0&#8243;&gt;&lt;/a&gt;<br />
 &lt;p&gt;</p>
<p>&lt;/body&gt;</p>
<p>&lt;/html&gt;</p>
<p><br class="spacer_" /></p>
<p><br class="spacer_" /></p>
<p></span></td>
</tr>
</tbody>
</table>
<p><br class="spacer_" /></p>
<p>N&#8217;oublions pas de recharger la configuration d&#8217;apache:</p>
<p># /usr/local/etc/rc.d/apache22 reload</p>
<p>Vous pouvez bien sûr vous inspirer ma de propre <a href="http://www.cligny.net/pfstat">page pfstat</a> pour compléter le tout.</p>
<p>A bientôt chers (et de plus en plus nombreux) lecteurs <img src='http://laurent.cligny.net/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p><br class="spacer_" /></p>
]]></content:encoded>
			<wfw:commentRss>http://laurent.cligny.net/index.php/2009/02/11/graph-pfstat/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Reprise de Dspam par la communauté</title>
		<link>http://laurent.cligny.net/index.php/2009/01/21/reprise-de-dspam-par-la-communaute/</link>
		<comments>http://laurent.cligny.net/index.php/2009/01/21/reprise-de-dspam-par-la-communaute/#comments</comments>
		<pubDate>Wed, 21 Jan 2009 12:46:11 +0000</pubDate>
		<dc:creator>laurent</dc:creator>
				<category><![CDATA[Actus logiciels]]></category>
		<category><![CDATA[antispam]]></category>
		<category><![CDATA[dspam]]></category>
		<category><![CDATA[MTA]]></category>
		<category><![CDATA[sourceforge]]></category>

		<guid isPermaLink="false">http://laurent.cligny.net/?p=77</guid>
		<description><![CDATA[Le 12 Janvier 2009, la totalité du projet antispam Dspam à été cédé à sa communauté de développeurs et d&#8217;utilisateurs, ce qui inclut bien entendu les sources mais aussi le copyright, le logo ainsi que le contenu de l&#8217;ancien site internet.
Mais je vois poindre la question essentielle: qu&#8217;est-ce que Dspam au juste ?
Dspam est, à [...]]]></description>
			<content:encoded><![CDATA[<p>Le 12 Janvier 2009, la totalité du projet antispam Dspam à été cédé à sa communauté de développeurs et d&#8217;utilisateurs, ce qui inclut bien entendu les sources mais aussi le copyright, le logo ainsi que le contenu de l&#8217;ancien site internet.</p>
<p>Mais je vois poindre la question essentielle: qu&#8217;est-ce que Dspam au juste ?<span id="more-77"></span></p>
<p>Dspam est, à l&#8217;instar de spamassasin, un logiciel antispam. Sa licence est la GNU GPL v2. Mais c&#8217;est ici que s&#8217;arrête la comparaison.<br />
 En effet Dspam est écrit en C (ce qui rend son filtrage très rapide), il base son filtrage sur des signatures et les statistiques tirées de celles-ci, ce qui lui permet d&#8217;&#8221;apprendre&#8221; et de s&#8217;adapter au type de spam que l&#8217;on reçoit. <br />
 Il est bien sûr principalement destiné à se greffer sur un <a href="http://fr.wikipedia.org/wiki/Mail_Transfer_Agent" target="_blank">MTA</a> en tant que filtre de contenu, et nécessite un moteur de base de données telle que PostgreSQL, MySQL ou même SQlite (pour de très petites installations seulement). Dspam propose aussi une interface &#8220;web-based&#8221; en cgi, et dispose d&#8217;un greffon ClamAV.</p>
<p>Comme je le dis plus haut, Dspam à été récemment repris par la communauté après quelques péripéties dont voici l&#8217;historique dans les grandes lignes<a href="##1">¹</a>:</p>
<ul>
<li>Dspam est créé par Jonathan Zdziarski en 2003 pour mettre en pratique son expertise en matière de lutte contre le spam<a href="##2">²</a>.</li>
<li>En Mai 2007 J. Zdziarski cède les droits de Dspam à la société Sensory Networks, et abandonne le développement de Dspam pour se concentrer sur la programmation sur l&#8217;Iphone d&#8217;Apple.</li>
<li>S&#8217;en suit une longue attente et une incompréhension de la part de la communauté d&#8217;utilisateurs envers Sensory Networks, principalement  à cause du manque de communication et de support de la société.</li>
<li>Devant cette apparente inaction de Sensory Networks, la décision est prise par les utilisateurs de Dspam de &#8220;forker&#8221; Dspam  pour créer dspam-community, qui sera hébergée sur Sourceforge. Des négociations sont lancées entre les deux parties afin de récupérer le copyright de Dspam.</li>
<li>Enfin, le 12 Janvier 2009 le projet Dspam retombe entièrement entre les mains de la communauté d&#8217;utilisateurs.</li>
</ul>
<p><br class="spacer_" /></p>
<p>Pour utiliser Dspam personnellement, je ne peux que vous le recommander et surtout vous inviter à participer à ce projet trop peu connu en regard de ses qualités.</p>
<p>Liens:</p>
<p><a href="http://apps.sourceforge.net/mediawiki/dspam/index.php?title=Main_Page" target="_blank">Page de Dspam sur SourceForge</a></p>
<p><a href="http://dspam.nuclearelephant.com/" target="_blank">Ancienne page du projet Dspam</a></p>
<p><a name="#1"></a>¹ <a href="http://apps.sourceforge.net/mediawiki/dspam/index.php?title=Change_of_ownership" target="_blank">Communiqué sur la reprise du copyright</a></p>
<p><a name="#2"></a>²<a href="http://oreilly.com/catalog/9781593270520/" target="_blank">&#8220;Ending Spam&#8221; le livre de Jonathan Zdizarski</a></p>
<p><a href="http://linuxfr.org/2009/01/21/24904.html">Lien vers ma dépèche postée sur linuxfr.org</a></p>
]]></content:encoded>
			<wfw:commentRss>http://laurent.cligny.net/index.php/2009/01/21/reprise-de-dspam-par-la-communaute/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Upgrade vers Wordpress 2.7</title>
		<link>http://laurent.cligny.net/index.php/2009/01/13/upgrade-vers-wordpress-27/</link>
		<comments>http://laurent.cligny.net/index.php/2009/01/13/upgrade-vers-wordpress-27/#comments</comments>
		<pubDate>Tue, 13 Jan 2009 20:00:38 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://laurent.cligny.net/?p=72</guid>
		<description><![CDATA[Ouf ! Je me suis enfin décidé à mettre à jour Wordpress de 2.6.1 vers 2.7. Ca à l&#8217;air de s&#8217;être bien passé mais n&#8217;hésitez pas à me signaler tout problème que vous pourrez rencontrer.
]]></description>
			<content:encoded><![CDATA[<p>Ouf ! Je me suis enfin décidé à mettre à jour Wordpress de 2.6.1 vers 2.7. Ca à l&#8217;air de s&#8217;être bien passé mais n&#8217;hésitez pas à me signaler tout problème que vous pourrez rencontrer.</p>
]]></content:encoded>
			<wfw:commentRss>http://laurent.cligny.net/index.php/2009/01/13/upgrade-vers-wordpress-27/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Repartitionner son disque sous FreeBSD</title>
		<link>http://laurent.cligny.net/index.php/2008/12/13/repartitionner-freebsd/</link>
		<comments>http://laurent.cligny.net/index.php/2008/12/13/repartitionner-freebsd/#comments</comments>
		<pubDate>Sat, 13 Dec 2008 16:49:46 +0000</pubDate>
		<dc:creator>laurent</dc:creator>
				<category><![CDATA[Sysadmin]]></category>
		<category><![CDATA[bsdlabel]]></category>
		<category><![CDATA[FreeBSD]]></category>

		<guid isPermaLink="false">http://laurent.cligny.net/?p=62</guid>
		<description><![CDATA[Il y a peu, attiré par les sirènes du comble du hype d&#8217;avoir un serveur dédié, et juste pour dire que, moi aussi, je fais partie du club très peu fermé des zadministrateurs en herbe, je me suis offert la location d&#8217;une dedibox (pour ne pas citer de marque).
En plus c&#8217;est chouette me dis-je, car [...]]]></description>
			<content:encoded><![CDATA[<p>Il y a peu, attiré par les sirènes du comble du hype d&#8217;avoir un serveur dédié, et juste pour dire que, moi aussi, je fais partie du club très peu fermé des zadministrateurs en herbe, je me suis offert la location d&#8217;une dedibox (pour ne pas citer de marque).</p>
<p>En plus c&#8217;est chouette me dis-je, car dedibox propose du FreeBSD comme système d&#8217;exploitation à l&#8217;installation du serveur.</p>
<p>Mais, (car sans &#8220;mais&#8221; je n&#8217;aurais pas fais ce billet) hélas pour moi qui aime partitionner mon système comme je le souhaite, il n&#8217;y a pas (encore) possibilité de personnaliser son partitionnement à l&#8217;installation.<span id="more-62"></span></p>
<p>Je me retrouve donc avec un slice d&#8217;environ 140 Gio, peuplée de seulement 3 labels (ou partitions):</p>
<p>/ de 1024 Mio</p>
<p>/usr de 70 Gio</p>
<p>/var de 70 Gio aussi</p>
<p>Or moi je veux un /tmp et un /home séparés, dans leur partitions propres. Est-ce trop demander ô monde cruel ?</p>
<p>Il ya bien growfs(8) qui permet, comme son nom l&#8217;indique, d&#8217;agrandir un système de fichier existant. Mais je veux plutot <span style="text-decoration: underline;">reduire</span> /var pour créer un /tmp et un /home dans l&#8217;espace libéré, donc exit growfs(8) <img src='http://laurent.cligny.net/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' />  (à quand un shrinkfs(8)).</p>
<p>Il ne me reste plus qu&#8217;à faire ça à la bonne franquette, à la mimine, les mains dans le cambouis. Nous allons sauvegarder, effacer, recréer, puis restaurer les partitions dont la taille va changer ou qui vont être créées.</p>
<p><span style="color: #ff0000;"><strong>Attention: dans cet exemple nous n&#8217;allons toucher qu&#8217;à /var, c&#8217;est pourquoi nous ne sauvegardons que lui. Dans tous les cas, <span style="text-decoration: underline;">ayez des sauvegardes à jour de vos données importantes</span> et si possible en double dans un endroit sûr. Je ne saurais être tenu responsable d&#8217;une quelconque perte de donnée !</strong></span></p>
<p>D&#8217;abord on coupe un maximum de daemons via /etc/rc.d et /usr/local/etc/rc.d (j&#8217;ai fait mon repartitionnement en ne gardant que ssh de lancé).</p>
<p>On note quelquepart la sortie de la commande mount sans arguments, afin d&#8217;avoir sous la main la correspondance entre nos partitions et nos points de montage:</p>
<address style="padding-left: 30px;"># mount</address>
<address style="padding-left: 30px;">/dev/ad4s1a on / (ufs, local)</address>
<address style="padding-left: 30px;">devfs on /dev (devfs, local)</address>
<address style="padding-left: 30px;">/dev/ad4s1d on /usr (ufs, local, soft-updates)</address>
<address style="padding-left: 30px;">/dev/ad4s1e on /var (ufs, local, soft-updates)</address>
<address> </address>
<p>On sauvegarde la partition /var quelque part dans /usr (que nous n&#8217;avons pas l&#8217;intention de toucher) (&#8221;man 8 dump&#8221; pour la signification des flags):</p>
<address style="padding-left: 30px;"># dump -a0uLf /usr/dediboxuser/backup/var.dump /var</address>
<address> </address>
<p>On &#8220;dé-monte&#8221; la partition /var</p>
<address style="padding-left: 30px;"># umount -f /var</address>
<p>On change la valeur de la sysctl kern.geom.debugflags afin de pouvoir modifier le partitionnement en &#8220;Live&#8221;.</p>
<address style="padding-left: 30px;"># sysctl kern.geom.debugflags=16</address>
<p>On edite la table des labels afin de supprimer l&#8217;entrée correspondant à notre /var d&#8217;origine (la partition &#8220;e&#8221; dans mon cas)</p>
<address style="padding-left: 30px;"># bsdlabel -e ad4s1</address>
<p>Cela nous ouvre la table des labels dans notre éditeur par défaut, supprimez la ligne correspondant au /var d&#8217;origine (partition &#8220;e&#8221; dans mon cas), sauvez les modifications et quitter l&#8217;éditeur. Notez que l&#8217;on pourrait ajouter nos nouvelles partitions /tmp /home et /var maintenant en les ajoutant dans la table des labels, mais son format étant non-intuitif, nous allons faire nos modifs avec sysinstall.</p>
<address style="padding-left: 30px;"># sysinstall </address>
<p>Dans le menu, entrez dans &#8220;Custom&#8221;, puis ensuite dans &#8220;Label&#8221;.</p>
<p>Pour créer une partitions dans l&#8217;espace devenu disponible:</p>
<p>Touche &#8220;C&#8221; -&gt; Selectionnez &#8220;a filesystem&#8221; -&gt;OK-&gt; Entrez la taille en G (ex: 1G) -&gt;OK-&gt; Entrez le point de montage (ex: /tmp)-&gt;OK</p>
<p>Une fois créées toutes vos nouvelles partitions, appuyez sur la touche &#8220;W&#8221; pour écrire les modifications. Vous pouvez ignorer les différentes erreurs qui s&#8217;affichent. Notez quelquepart le nouveau partitionnement, avec le nom des partitions et les points de montage correspondant. Sortez de sysinstall.</p>
<p>On relance bsdlabel pour ecrire pour de bon les modifs</p>
<p style="padding-left: 30px;"># bsdlabel -e ad4s1</p>
<p>Sauvez le fichiers sans rien modifier et quittez l&#8217;éditeur.</p>
<p>On contrôle que les périphériques correspondants aux nouvelles partitions ont bien été créées:</p>
<address style="padding-left: 30px;"> # ls -l /dev/ad4s1*<br />
 crw-r&#8212;&#8211;  1 root  operator    0,  72 Dec 11 16:59 /dev/ad4s1<br />
 crw-r&#8212;&#8211;  1 root  operator    0,  73 Dec 11 16:59 /dev/ad4s1a<br />
 crw-r&#8212;&#8211;  1 root  operator    0,  74 Dec 11 16:59 /dev/ad4s1b<br />
 crw-r&#8212;&#8211;  1 root  operator    0,  75 Dec 11 16:59 /dev/ad4s1c<br />
 crw-r&#8212;&#8211;  1 root  operator    0,  76 Dec 11 16:59 /dev/ad4s1d<br />
 crw-r&#8212;&#8211;  1 root  operator    0,  77 Dec 11 16:59 /dev/ad4s1e<br />
 crw-r&#8212;&#8211;  1 root  operator    0,  78 Dec 11 16:59 /dev/ad4s1f<br />
 crw-r&#8212;&#8211;  1 root  operator    0,  79 Dec 11 16:59 /dev/ad4s1g<br />
 </address>
<p>On remarque l&#8217;apparition de ad4s1f et ad4s1g, qui correspondent aux nouvelles partitions.</p>
<p>On créé maintenant des systèmes de fichiers sur les nouvelles partitions vierges (ne pas oublier ad4s1e, qui a été supprimée et recréée plus petite):</p>
<address style="padding-left: 30px;"># newfs -U -O2 /dev/ad4s1e</address>
<address style="padding-left: 30px;"># newfs -U -O2 /dev/ad4s1f</address>
<address style="padding-left: 30px;"># newfs -U -O2 /dev/ad4s1g</address>
<p>On edite /etc/fstab, pour ajouter/modifier les entrées correspondantes aux nouvelles partitions (le partitionnement qui a été noté à l&#8217;étape sysinstall est utile maintenant)</p>
<address style="padding-left: 30px;">/dev/ad4s1e       /tmp       ufs      rw      2      2</address>
<address style="padding-left: 30px;">/dev/ad4s1f       /home     ufs      rw      2      2</address>
<address style="padding-left: 30px;">/dev/ad4s1g      /var         ufs      rw      2      2</address>
<p>Puis on monte nos nouvelles partitions:</p>
<address style="padding-left: 30px;"># mount -a</address>
<p>Et on vérifie:</p>
<address style="padding-left: 30px;"># mount</address>
<address style="padding-left: 30px;">/dev/ad4s1a on / (ufs, local)</address>
<address style="padding-left: 30px;">devfs on /dev (devfs, local)</address>
<address style="padding-left: 30px;">/dev/ad4s1d on /usr (ufs, local, soft-updates)</address>
<address style="padding-left: 30px;">/dev/ad4s1e on /tmp (ufs, local, soft-updates)</address>
<address style="padding-left: 30px;">/dev/ad4s1f on /home (ufs, local, soft-updates)</address>
<address style="padding-left: 30px;">/dev/ad4s1g on /var (ufs, local, soft-updates)</address>
<p>Les nouvelles partitions sont bien montées <img src='http://laurent.cligny.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Il ne reste plus qu&#8217;à restorer les données de notre ancien /var</p>
<address style="padding-left: 30px;"># cd /var</address>
<address style="padding-left: 30px;"># restore -rf /usr/home/dediboxuser/backup/var.dump</address>
<p style="padding-left: 30px;">Pensez aussi à déplacer vos données de /usr/home vers /home et de modifier les utilisateurs locaux pour qu&#8217;il utilisent /home/%u plutôt que /usr/home/%u</p>
<p>Voilà, c&#8217;est à peu près tout <img src='http://laurent.cligny.net/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://laurent.cligny.net/index.php/2008/12/13/repartitionner-freebsd/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ajouter un ficher d&#8217;échange (swap) à FreeBSD</title>
		<link>http://laurent.cligny.net/index.php/2008/11/07/fichier_echange_swap_freebsd/</link>
		<comments>http://laurent.cligny.net/index.php/2008/11/07/fichier_echange_swap_freebsd/#comments</comments>
		<pubDate>Fri, 07 Nov 2008 14:30:44 +0000</pubDate>
		<dc:creator>laurent</dc:creator>
				<category><![CDATA[Sysadmin]]></category>
		<category><![CDATA[FreeBSD]]></category>

		<guid isPermaLink="false">http://laurent.cligny.net/?p=52</guid>
		<description><![CDATA[Aujourd&#8217;hui nous allons nous attaquer à un mal qui ronge les plus anciens d&#8217;entre nous, les problèmes de mémoire disponible. Et oui nos bonnes vieilles machines sont comme nous, avec l&#8217;âge elles n&#8217;ont souvent plus assez de mémoire pour pouvoir rester dans le coup et ne pas se faire dépasser par les petit jeunes qui [...]]]></description>
			<content:encoded><![CDATA[<p>Aujourd&#8217;hui nous allons nous attaquer à un mal qui ronge les plus anciens d&#8217;entre nous, les problèmes de mémoire disponible. Et oui nos bonnes vieilles machines sont comme nous, avec l&#8217;âge elles n&#8217;ont souvent plus assez de mémoire pour pouvoir rester dans le coup et ne pas se faire dépasser par les petit jeunes qui arrivent sur le circuit de la vie.<span id="more-52"></span></p>
<p>Donc pour aider notre bonne vieille machine sous FreeBSD à faire fonctionner correctement les jeunes dernières moutures de logiciels comme Zabbix (apportant autant de gourmandise en RAM que de nouveautés indispensables), nous ajoutons tout simplement de la mémoire vive et passons de 256Mo à 512Mo. Puis, satisfaits du devoir accompli, notre bonne vieille machine est redémarrée en se disant qu&#8217;elle devrait au moins se faire autant oublier qu&#8217;avant.</p>
<p>Mais c&#8217;est sans compter sur le padbolisme (qui est une variante de la loi de Murphy) et c&#8217;est avec effroi qu&#8217;un Lundi matin, encore bercé par la fraicheur automnale, nous découvrons cette chose horrible dans les logs de notre téméraire machine:</p>
<p>Nov  7 01:03:29 zabbix_box kernel: swap_pager_getswapspace(3): failed<br />
Nov  7 01:03:30 zabbix_box Kernel: swap_pager_getswapspace(3): failed<br />
Nov  7 01:03:30 zabbix_box kernel: swap_pager_getswapspace(5): failed<br />
Nov  7 01:03:30 zabbix_box kernel: swap_pager_getswapspace(3): failed<br />
Nov  7 01:03:36 zabbix_box kernel: swap_pager_getswapspace(3): failed<br />
[...]<br />
Nov  7 02:34:56 zabbix_box kernel: pid 17507 (mysqld), uid 88, was killed: out of swap space<br />
Nov  7 02:34:56 zabbix_box kernel: pid 75212 (zabbix_server), uid 112, was killed: out of swap space</p>
<p>&#8220;Alors c&#8217;est ça ?&#8221; &#8220;On rajoute de la RAM pour que cette machine soit moins étouffée et voilà comment elle nous remercie ?&#8221;</p>
<p>Mais en y réfléchissant à deux fois, après le rite info-chamanique dit de &#8220;la tête entre les paumes des mains&#8221;, il apparait que bien que l&#8217;on ai augmenté la mémoire vive disponible, nous n&#8217;avons pas songé à augmenter le fichier d&#8217;échange en conséquence. Ce qui nous fait 512Mo de swap pour autant de RAM, et sur une machine chargée comme la notre, c&#8217;est un peu limite.</p>
<p>Oui mais comment faire pour ajouter de l&#8217;espace de pagination ? Car nous n&#8217;avons plus de place disponible pour ajouter un disque dur, ni prévu d&#8217;espace libre pour créer une deuxième partition de swap :/</p>
<p>Et la réponse viens du côté obscur de l&#8217;informatique: on va faire comme sous Windows&#8230; Enfin juste dans le principe, car nous allons en fait créer un &#8220;fichier&#8221; d&#8217;échange un peu comme le &#8220;pagefile.sys&#8221; de l&#8217;OS de Redmond.</p>
<p>Pour celà:</p>
<p>On crée un fichier d&#8217;échange d&#8217;1Gio rempli de zéros là on on a de la place:</p>
<pre># dd if=/dev/zero of=/var/tmp/swapfile bs=1024k count=1000</pre>
<p>On crée un pseudo-périphérique se rattachant à notre fichier créé:</p>
<pre># mdconfig -a -t vnode -f /var/tmp/swapfile</pre>
<p>La sortie standard vous donne le nom du pseudo-périphérique ainsi créé: <em>md0</em> dans notre cas.</p>
<p>On active notre pseudo-périphérique comme espace de pagination:</p>
<pre># swapon /dev/md0</pre>
<p>Et on vérifie que  le système reconnaît bien notre nouveau swap:</p>
<pre># swapinfo</pre>
<p>Device          1K-blocks     Used    Avail Capacity<br />
/dev/ad0s1b        524288        0   524288     0%<br />
/dev/md0          1024000        0  1024000     0%<br />
Total             1548288        0  1548288     0%</p>
<p>Nous avons bien notre /dev/md0 d&#8217;1Go sous la partition d&#8217;échange originale <img src='http://laurent.cligny.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Notre bonne vieille machine dispose dorénavant de près 1.5Go de swap, de quoi voir venir&#8230;</p>
<p>&#8220;Oui mais alors, je vais devoir faire tout ça à chaque fois que le machine redémarre ?&#8221;</p>
<p>Et non, car, contrairement à ce qu&#8217;il y paraît dans mes billets, tout ceci n&#8217;est PAS un immonde bricolage. FreeBSD à même prévu une entrée dans rc.conf pour gérer tout ça. Il suffi de rajouter dans /etc/rc.conf:</p>
<p><em>swapfile=&#8221;/var/tmp/swapfile&#8221;</em></p>
<p>Et notre fichier d&#8217;échange sera initialisé à chaque démarrage.</p>
]]></content:encoded>
			<wfw:commentRss>http://laurent.cligny.net/index.php/2008/11/07/fichier_echange_swap_freebsd/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Passer outre /boot/loader.conf</title>
		<link>http://laurent.cligny.net/index.php/2008/10/17/freebsd-disable-loader-variables/</link>
		<comments>http://laurent.cligny.net/index.php/2008/10/17/freebsd-disable-loader-variables/#comments</comments>
		<pubDate>Fri, 17 Oct 2008 17:19:36 +0000</pubDate>
		<dc:creator>laurent</dc:creator>
				<category><![CDATA[Sysadmin]]></category>
		<category><![CDATA[FreeBSD]]></category>

		<guid isPermaLink="false">http://laurent.cligny.net/?p=35</guid>
		<description><![CDATA[Imaginez que vous êtes comme moi, un tant soit peu dyslexique du clavier à la fin d&#8217;une dure journée de labeur (pour autant que le fait de taper au clavier soit un vrai travail), et imaginez toujours que ce fichu clavier entre quelque chose du genre dans /boot/loader.conf:
hint.apic.0.disabled=1
au lieu d&#8217;un bien moins dangereux
hint.acpi.0.disabled=1
En effet le [...]]]></description>
			<content:encoded><![CDATA[<p>Imaginez que vous êtes comme moi, un tant soit peu dyslexique du clavier à la fin d&#8217;une dure journée de labeur (pour autant que le fait de taper au clavier soit un vrai travail), et imaginez toujours que ce fichu clavier entre quelque chose du genre dans /boot/loader.conf:<span id="more-35"></span></p>
<pre style="padding-left: 30px;">hint.<strong>apic</strong>.0.disabled=1</pre>
<p>au lieu d&#8217;un bien moins dangereux</p>
<pre style="padding-left: 30px;">hint.<strong>acpi</strong>.0.disabled=1</pre>
<p>En effet le premier désactive l&#8217;<a href="http://en.wikipedia.org/wiki/Intel_APIC_Architecture">APIC</a> c&#8217;est à dire une sorte regulateur des connections entre les processeurs et les entrées/sorties (comme les disques); et le second seulement l&#8217;<a href="http://fr.wikipedia.org/wiki/Advanced_Configuration_and_Power_Interface">ACPI</a>, soit la gestion de l&#8217;énergie.</p>
<p>Nous avons donc notre belle erreur dans notre /boot/loader.conf et ni une ni deux, on redémarre le serveur pour constater l&#8217;effet de la désactivation de l&#8217;ACPI (car c&#8217;est ce qu&#8217;on voulait désactiver à la base&#8230; vous suivez ?).</p>
<p>Et là, c&#8217;est le drame, notre serveur sous FreeBSD ne boote plus et est réduit à la fonction de presse papier car i<span style="text-decoration: underline;">l ne voit plus le controlleur LSI Logic qui pilote nos disques durs</span> ! Evidement, un malheur n&#8217;arrivant jamais seul, la loi de l&#8217;emmerdement maximum, dite aussi loi de Murphy, fait que vous n&#8217;avez pas d&#8217;accès physique sur la machine. Donc pas de liveCD pour monter / et corriger /boot/loader.conf !</p>
<p>C&#8217;est dans ces moments là qu&#8217;on a envie de changer de métier, de partir élever des chèvres dans le Larzac, de devenir technico-commercial&#8230; que sais-je.</p>
<p>Mais heuresement FreeBSD est un système d&#8217;hommes (et de femmes, ne soyons pas sexiste envers nos trop peu nombreuses informaticiennes), des vrai(e)s, et nous propose un moyen de rattraper nos bêtises avant que le chef, ou pire les utilisateurs (vous savez, ceux qui n&#8217;arrivent jamais à imprimer à 17h58 alors que vous êtes sensé finir à 18h) ne s&#8217;en aperçoivent.</p>
<p>Et ce moyen, le voilà (ouf diront certains):</p>
<ol>
<li>Rebootez FreeBSD</li>
<li>Une fois arrivé au menu du loader, choisissez l&#8217;otion 6 (escape to loader prompt)</li>
<li>Au prompt du loader (qui n&#8217;affiche que &#8220;&gt;&#8221;) tapez &#8220;show&#8221; (sans les guillements hein <img src='http://laurent.cligny.net/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  suivi d&#8217;&#8221;Enter&#8221; pour afficher les variables initialisées par /boot/defaults/loader.conf et /boot/loader.conf. Vous devriez voir le fameux hint.apic.0.disabled=1 dans la liste.</li>
<li>Tapez &#8220;unset hint.apic.0.disabled&#8221; puis faites &#8220;Enter&#8221; (bien évidement).</li>
<li>Tapez &#8220;boot&#8221; puis pressez &#8220;Enter&#8221; (encore), et ô miracle, FreeBSD boote comme il faut \o/.</li>
</ol>
<p>Il ne vous reste plus qu&#8217;à vous précipiter dans /boot/loader.conf et corriger l&#8217;erreur.</p>
<p>Ouf ! Je reste informaticien encore un peu. &#8220;La coupure de 3 minutes ? Ben c&#8217;est encore ces $#%$! de fournisseurs de la SDSL qui ont laissé tomber la ligne&#8230;.&#8221; (Mais non je suis pas comme ça <img src='http://laurent.cligny.net/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://laurent.cligny.net/index.php/2008/10/17/freebsd-disable-loader-variables/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Get the facts&#8230;.. ou pas !</title>
		<link>http://laurent.cligny.net/index.php/2008/09/09/get-the-facts-ou-pas/</link>
		<comments>http://laurent.cligny.net/index.php/2008/09/09/get-the-facts-ou-pas/#comments</comments>
		<pubDate>Tue, 09 Sep 2008 15:35:21 +0000</pubDate>
		<dc:creator>laurent</dc:creator>
				<category><![CDATA[Trolls]]></category>

		<guid isPermaLink="false">http://laurent.cligny.net/?p=25</guid>
		<description><![CDATA[Il y a maintenant un petit moment, Microsoft se vantait d&#8217;avoir décroché le contrat de la nouvelle infrastructure informatique de la bourse de Londres, le London Stock Exchange, troisième place de marché du monde en terme de transactions (je vous rassure, pour moi non plus ça ne veut rien dire&#8230;).
C&#8217;était ici
Extrait:

London Stock Exchange Cuts Information [...]]]></description>
			<content:encoded><![CDATA[<p>Il y a maintenant un petit moment, Microsoft se vantait d&#8217;avoir décroché le contrat de la nouvelle infrastructure informatique de la bourse de Londres, le London Stock Exchange, troisième place de marché du monde en terme de transactions (je vous rassure, pour moi non plus ça ne veut rien dire&#8230;).</p>
<p>C&#8217;était <a title="Microsoft London Stock Exchange" href="http://www.microsoft.com/windowsserver/compare/CaseStudyDetails.mspx?recid=37" target="_blank">ici<span id="more-25"></span></a></p>
<p>Extrait:</p>
<blockquote>
<div class="CaseStudyDetailHeadline">London Stock Exchange Cuts Information Dissemination Time from 30 to 2 Milliseconds</div>
<div class="CaseStudyDetailDesc">As part of its strategy to win more trading business and new customers, <span style="text-decoration: underline;">the London Stock Exchange needed a</span> scalable, <strong><span style="text-decoration: underline;">reliable</span></strong>, high-performance stock exchange ticker plant to replace its earlier system. Roughly 40 percent of the Exchange&#8217;s revenues are generated by the sale of real-time information about stock prices. <span style="text-decoration: underline;">Using the Microsoft® .NET Framework in Windows Server® 2003 and the Microsoft SQL Server™ 2000 database, the new Infolect® system has been built to achieve unprecedented levels of</span> performance, <strong><span style="text-decoration: underline;">availability</span></strong>, and business agility. Launched in September 2005, <span style="text-decoration: underline;">it is maintaining the London Stock Exchange&#8217;s world-leading service reliability record</span> while reducing latency by a factor of 15. Its successful implementation, with support from Microsoft and Accenture, shows the London Stock Exchange&#8217;s leadership in developing next-generation trading systems.</div>
</blockquote>
<p>Et Boum ! Hier, des problèmes de connexion au système apparaissent et le LSE décide de tout couper, afin d&#8217;éviter des inégalité d&#8217;accès aux traders. Le problème c&#8217;est que ça a duré en tout sept heures. Vive la &#8220;reliability&#8221; mais apparement sans &#8220;redondancy&#8221;.</p>
<p>L&#8217;article <a title="Article Slashdot LSE" href="http://tech.slashdot.org/tech/08/09/08/185238.shtml" target="_blank">Slashdot</a></p>
<p>L&#8217;article <a title="Article Reuters LSE" href="http://www.reuters.com/article/ousiv/idUSL01084620080908?sp=true" target="_blank">Reuters</a></p>
<p>Encore plus drôle, le photomontage de Microsoft pour la campagne <a title="Get the Facts" href="http://www.microsoft.com/india/getthefacts/images/newsheader.jpg" target="_blank">Get the Facts</a></p>
]]></content:encoded>
			<wfw:commentRss>http://laurent.cligny.net/index.php/2008/09/09/get-the-facts-ou-pas/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
