<?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>Linux Attitude&#187; Matériel</title>
	<atom:link href="http://linux-attitude.fr/tag/materiel/feed" rel="self" type="application/rss+xml" />
	<link>http://linux-attitude.fr</link>
	<description>Le libre est un état d&#039;esprit</description>
	<lastBuildDate>Fri, 17 Feb 2012 08:00:20 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.3</generator>
		<item>
		<title>Latence</title>
		<link>http://linux-attitude.fr/post/latence?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=latence</link>
		<comments>http://linux-attitude.fr/post/latence#comments</comments>
		<pubDate>Tue, 28 Sep 2010 17:51:57 +0000</pubDate>
		<dc:creator>peck</dc:creator>
				<category><![CDATA[Développement]]></category>
		<category><![CDATA[Sysadmin]]></category>
		<category><![CDATA[Matériel]]></category>
		<category><![CDATA[planet-libre]]></category>
		<category><![CDATA[Savoir-faire]]></category>

		<guid isPermaLink="false">http://linux-attitude.fr/?p=953</guid>
		<description><![CDATA[Niveau&#160;: &#160;&#160;&#160;&#160;&#160; Résumé&#160;: quelques ordre de grandeur Voici quelques ordre de grandeur qui vous permettront d'avoir les idées un peu plus claires sur les performances de votre système. Imaginez que le swap est 100 000 fois plus lent que la mémoire du processus&#160;! Qu'un algorithme de création d'arbre peut être plus lent qu'un algorithme linéaire [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Niveau</strong>&nbsp;: <span class="s">&nbsp;</span><span class="s">&nbsp;</span><span class="e">&nbsp;</span><span class="e">&nbsp;</span><span class="e">&nbsp;</span><br />
<strong>Résumé</strong>&nbsp;: quelques ordre de grandeur</p>


<p>Voici quelques ordre de grandeur qui vous permettront d'avoir les idées un peu plus claires sur les performances de votre système. Imaginez que le swap est 100 000 fois plus lent que la mémoire du processus&nbsp;! Qu'un algorithme de création d'arbre peut être plus lent qu'un algorithme linéaire si chaque nœud de l'arbre se retrouve sur une page différente (pensez à vos centaines de malloc pour remplir un arbre)&nbsp;!</p>

<table>
<caption><b>Valable en 2010</b></caption>
<tr><th>Objet</th><th>Latence</th><th>Débit</th></tr>
<tr><td>Internet</td><td>80 ms</td><td>2 Mo/s</td></tr>
<tr><td>Accès au swap</td><td>8 ms</td><td>50 Mo/s</td></tr>
<tr><td>Disque10krpm</td><td>3 ms</td><td>50 Mo/s</td></tr>
<tr><td>Ethernet gigabit</td><td>1 ms</td><td>100 Mo/s</td></tr>
<tr><td>Disque SSD</td><td>0.5 ms</td><td>100 Mo/s</td></tr>
<tr><td>fork</td><td>0.1 ms</td><td></td></tr>
<tr><td>context switch</td><td>3 µs</td><td></td></tr>
<tr><td>gettimeofday</td><td>1 µs</td><td></td></tr>
<tr><td>Interface pci</td><td>0.1 µs</td><td>133 Mo/s</td></tr>
<tr><td>malloc/mmap</td><td>0.1 µs</td><td></td></tr>
<tr><td>RAM</td><td>30 ns</td><td>8 Go/s</td></tr>
<tr><td>Interface pci-express 16x</td><td>10 ns</td><td>8 Go/s</td></tr>
<tr><td>Cache L2</td><td>5 ns</td><td></td></tr>
<tr><td>Cache L1</td><td>1 ns</td><td></td></tr>
<tr><td>Registre processeur</td><td>0.3 ns</td><td>40 Go/s</td></tr>
</table>


<p>Notez que l'important ce sont les ordres de grandeur, vous pouvez facilement trouver des éléments qui font le double ou la moitié de ces performances.</p>


<h3>Interprétations</h3>

<p>Sérieusement, pas besoin de giga de swap sur votre serveur. Mettez un tout petit peu et vous monitorez dès que ca dépasse, imaginez la division par un nombre à 5 chiffres du nombre de pages vues sur votre serveur&nbsp;! Pour ma part je préfère répondre à moins de requêtes par seconde et garder un serveur utilisable.</p>


<p>Mais sur votre station de travail vous faites ce que vous voulez, on est en général plus patient :-)</p>


<p>Pas de gettime à gogo dans votre code pour mesurer les perf, ça tue les perfs ...</p>


<p>Le réseau fait a peu près aussi bien que votre disque.</p>


<p>Pas de malloc à gogo pour des structures morcelées et très utilisées. faites une structure unique si vous devez en avoir beaucoup.</p>


<p>Le SSD c'est bien mais ca vaut pas l'accès direct au flash.</p>


<p>Étant donné la vitesse de compression un swap compressé peut vraiment valoir le coup.</p>


<p>Le cache processeur sert vraiment à quelque chose ... si on sait coder pour qu'il soit utilisé (ou laisser le compilateur faire).</p>


<p>Le fork c'est un peu lent, prévoyez un prefork correct sur vos applications fréquemment appelées.</p>


<p>Avoir beaucoup de processus n'est pas si coûteux en soi (context switch).</p>


<p><br />
<strong>PS</strong>&nbsp;: Si vous avez des données pour compléter ce tableau, n'hésitez pas à me laisser des commentaires.</p>

<p></p><p>Si vous avez aimé, il y a aussi : </p><ol><li><a href='http://linux-attitude.fr/post/que-faire-et-ne-pas-faire-en-raid' rel='bookmark' title='Permanent Link: Que faire et ne pas faire en raid'>Que faire et ne pas faire en raid</a></li>
</ol>
	Tags:<a href="http://linux-attitude.fr/tag/materiel" title="Matériel" rel="tag">Matériel</a>, <a href="http://linux-attitude.fr/tag/planet-libre" title="planet-libre" rel="tag">planet-libre</a>, <a href="http://linux-attitude.fr/tag/savoir-faire" title="Savoir-faire" rel="tag">Savoir-faire</a><br />
]]></content:encoded>
			<wfw:commentRss>http://linux-attitude.fr/post/latence/feed</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Hébergement</title>
		<link>http://linux-attitude.fr/post/hebergement?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=hebergement</link>
		<comments>http://linux-attitude.fr/post/hebergement#comments</comments>
		<pubDate>Thu, 08 Jul 2010 18:07:26 +0000</pubDate>
		<dc:creator>peck</dc:creator>
				<category><![CDATA[Sysadmin]]></category>
		<category><![CDATA[Hébergement]]></category>
		<category><![CDATA[Matériel]]></category>

		<guid isPermaLink="false">http://linux-attitude.fr/?p=945</guid>
		<description><![CDATA[Niveau&#160;: &#160;&#160;&#160;&#160;&#160; Résumé&#160;: housing, server hosting, vps, web hosting Petite fiche technique pour ne pas se perdre dans le monde de l'hébergement&#160;: Housing C'est le même terme en français, on dit aussi colocation, il désigne en général la fourniture de l'espace dans une armoire, du réseau et de l'électricité et c'est tout. Pourtant c'est en [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Niveau</strong>&nbsp;: <span class="s">&nbsp;</span><span class="e">&nbsp;</span><span class="e">&nbsp;</span><span class="e">&nbsp;</span><span class="e">&nbsp;</span><br />
<strong>Résumé</strong>&nbsp;: housing, server hosting, vps, web hosting</p>


<p>Petite fiche technique pour ne pas se perdre dans le monde de l'hébergement&nbsp;:</p>


<h4>Housing</h4>

<p>C'est le même terme en français, on dit aussi colocation, il désigne en général la fourniture de l'espace dans une armoire, du réseau et de l'électricité et c'est tout.</p>


<p>Pourtant c'est en général l'offre la plus chère car la plus lourde à gérer pour l'hébergeur. C'est plutôt destiné aux entreprises qui ont leur propre matériel et/ou dont l'activité sera de revendre l'accès à leur propre matériel.</p>


<h4>Server hosting</h4>

<p>Ou serveur dédié en français. Pratique pour une PME, ce concept permet à un sysadmin ou une petite boite d'avoir un ou des serveurs qu'elle gère entièrement, sans contraintes mais aussi sans avoir à gérer la redondance électrique ou la redondance du réseau.</p>


<p>On a en général une bien meilleure disponibilité et un bien meilleur débit qu'un serveur hébergé chez soi. Donc valable dès qu'on offre des services à l'extérieur. De plus on ne s'embête plus avec les matériel et ses pannes ou presque.</p>


<h4>VPS</h4>

<p>Ou serveur virtuel en français. C'est une machine virtuelle sur laquelle vous avez tout pouvoir (root) mais située sur une machine physique partagée avec d'autres clients.</p>


<p>Cela permet de faire des machines très peu chères en contrepartie d'une absence de garantie de performances.</p>


<p>A noter qu'OVH a sorti un produit intermédiaire entre le vps et le dédié nommé RPS. Il s'agit d'un dédié léger mais dont le disque est partagé sur le réseau.
<span id="more-945"></span></p>


<h4>Web hosting</h4>

<p>Hébergement mutualisé en français. Ce genre d'offre en général est la moins cher et la plus facile à gérer. Disponible immédiatement ou presque, vous avez plus ou moins d'espace disque, une base de données plus ou moins grosse et un virtualhost php avec parfois un nom de domaine.</p>


<p>A choisir lorsqu'on fait un "simple" site web.</p>


<h4>Cloud</h4>

<p>Petit nouveau, le cloud désigne en fait un groupe de machines dont on vous vend la puissance de calcul. Il existe autant de formes de cloud que de vendeurs de cloud, tous ont cette particularité de vendre des quantités variables.. Il y a ceux qui vous vendent des vm en grande quantité, il y a ceux qui vous vendent des serveurs d'application, il y a ceux qui vous vendent de la base de données ou du simple dépôt de fichier.</p>


<p>A choisir lorsqu'on a des applications scalable et qu'on prévoit un grand nombre de clients <em>potentiels</em>.</p>


<h4>Autres</h4>

<p>Les hébergeur offrent aussi sous forme de pack des noms de domaine, des services dns, des services de boite mail, d'envoi en masse de mail, en général pour pas trop cher, cherchez, vous trouverez.</p>


<p>Il existe aussi d'autres offres plus rares d'hébergement d'application ruby, python, java mais il faudra chercher pour trouver quelque chose d'intéressant.</p>


<p>Dans le genre exotique vous verrez aussi des offres de type shell où vous avez un shell sur une machine partagée entre plusieurs utilisateurs. Ce genre d'activité nécessite en général une certaine confiance et a plutôt tendance à fonctionner à travers des réseaux sociaux.</p>

<p></p><p>Si vous avez aimé, il y a aussi : </p><ol><li><a href='http://linux-attitude.fr/post/hebergement-de-fichiers-avec-webdav' rel='bookmark' title='Permanent Link: Hébergement de fichiers avec WebDAV'>Hébergement de fichiers avec WebDAV</a></li>
<li><a href='http://linux-attitude.fr/post/pki' rel='bookmark' title='Permanent Link: PKI'>PKI</a></li>
<li><a href='http://linux-attitude.fr/post/raid-10-ou-raid-01' rel='bookmark' title='Permanent Link: Raid 10 ou raid 0+1 ?'>Raid 10 ou raid 0+1 ?</a></li>
</ol>
	Tags:<a href="http://linux-attitude.fr/tag/hebergement" title="Hébergement" rel="tag">Hébergement</a>, <a href="http://linux-attitude.fr/tag/materiel" title="Matériel" rel="tag">Matériel</a><br />
]]></content:encoded>
			<wfw:commentRss>http://linux-attitude.fr/post/hebergement/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>L&#8217;avenir du disque</title>
		<link>http://linux-attitude.fr/post/lavenir-du-disque?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=lavenir-du-disque</link>
		<comments>http://linux-attitude.fr/post/lavenir-du-disque#comments</comments>
		<pubDate>Mon, 21 Jun 2010 16:03:32 +0000</pubDate>
		<dc:creator>peck</dc:creator>
				<category><![CDATA[Sysadmin]]></category>
		<category><![CDATA[Disque]]></category>
		<category><![CDATA[Matériel]]></category>

		<guid isPermaLink="false">http://linux-attitude.fr/?p=878</guid>
		<description><![CDATA[Niveau&#160;: &#160;&#160;&#160;&#160;&#160; Résumé&#160;: Aujourd'hui les disques atteignent des limites qui n'avaient pas été prévues lorsqu'on les fabriquait comme des machines à laver (notez que le premier disque tournait déjà à 3600 tours par minute. Les disques ont d'abord été adressés au format cylindre, tête, secteur (CHS), puis au format LBA. Les différentes limites ont évolué [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Niveau</strong>&nbsp;: <span class="s">&nbsp;</span><span class="s">&nbsp;</span><span class="e">&nbsp;</span><span class="e">&nbsp;</span><span class="e">&nbsp;</span><br />
<strong>Résumé</strong>&nbsp;:</p>


<p>Aujourd'hui les disques atteignent des limites qui n'avaient pas été prévues lorsqu'on les fabriquait comme des machines à laver (notez que <a href="http://www-03.ibm.com/ibm/history/exhibits/storage/storage_350.html" hreflang="en">le premier</a> <a href="http://actumultimedia.unblog.fr/2008/05/04/naissance-du-premier-disque-dur/" hreflang="fr">disque</a> tournait déjà à 3600 tours par minute.</p>


<p>Les disques ont d'abord été adressés au format cylindre, tête, secteur (CHS), puis au format LBA. Les différentes limites ont évolué en fonctions de la taille du bus d'adressage.</p>


<h3>Limites</h3>

<p>Aujourd'hui on rencontre encore plusieurs limites. Tout d'abord au niveau logiciel, les partitions qui prévoyaient un adressage linéaire sur 32 bits des secteurs trouvent une limite à 2To (2^32 * 512).</p>


<p>Aujourd'hui au niveau du disque lui-même, les fabricants qui stockaient les informations de redondance et de structure du disque sur chaque secteur commencent à trouver cet espace très restreint.</p>


<p>Aujourd'hui les disques sont tellement gros que la lecture d'un disque entier est extrêmement longue, une erreur dans un fichier et la récupération du système de fichier devient une opération très lourde.</p>


<p>Aujourd'hui les disques sont tellement gros que la restauration d'un disque dans un raid prends un temps énorme, au point qu'il est possible d'avoir une seconde défaillance pendant ce temps.</p>


<p>Aujourd'hui les disques normaux sont tellement gros qu'on utilise le même disque pour plusieurs machines.</p>


<p>Aujourd'hui les disques sont tellement petits qu'on en utilise plusieurs par machine.</p>


<p>Avec tous ces problèmes, on voit beaucoup de choses évoluer.</p>


<h4>RAID 6+1</h4>

<p>Les disques étant de plus en plus lents et de plus en plus gros, on est déjà passé du raid5 au raid6 pour éviter les problèmes de lenteur lorsqu'un disque manquait, on <a href="http://queue.acm.org/detail.cfm?id=1670144" hreflang="en">envisage</a> d'ajouter un nouveau disque de redondance pour éviter le cas où un 2e disque grille pendant la restauration du premier.</p>


<h4>SAN</h4>

<p>Maintenant tout le monde a un NAS chez lui, mais les serveurs utilisent des SANs qui se partagent sur des interfaces réseau standard et plus seulement SCSI ou Fiber Channel. Le <a href="https://secure.wikimedia.org/wikipedia/en/wiki/ISCSI" hreflang="en">iSCSI</a>, le <a href="https://secure.wikimedia.org/wikipedia/en/wiki/ATA_over_Ethernet" hreflang="en">AoE</a> ainsi que d'autres protocoles permettent d'accéder à ces périphériques de façon transparente et sans matériel supplémentaire.</p>


<h4>GPT</h4>

<p>Les disques atteignent couramment une taille de 2To. Le format de partition actuel ne permet pas d'utiliser le disque au delà de cette taille. Il devient donc rapidement obligatoire de passer au format <a href="https://secure.wikimedia.org/wikipedia/en/wiki/GUID_Partition_Table" hreflang="en">GPT</a>. Ceci implique des modifications dans le bios et dans le système d'exploitation.</p>


<h4>Secteur 4k</h4>

<p>Les secteurs de 512 octets devenant petit, on commence à fabriquer des disques ayant des secteurs de 4ko. Cela permettra une plus grande capacité, de meilleures performances, mais implique aussi des changements au niveau du bios et de système d'exploitation (très lourd cette fois). <a href="http://www.anandtech.com/show/2888" hreflang="en">Quelques</a> <a href="http://www.zdnet.com/blog/storage/are-you-ready-for-4k-sector-drives/731" hreflang="en">références</a> et <a href="http://lwn.net/Articles/377895/" hreflang="en">solutions</a>.</p>


<h4>Filesystem</h4>

<p>Toutes ces fonctionnalités nouvelles peuvent êtres prises en compte au niveau du système de fichier pour permettre des fonctionnalités sympathiques. Le <a href="http://www.ext3cow.com/Welcome.html" hreflang="en">snapshot</a> fréquent voir continu, l'utilisation de plusieurs disques locaux voire distants, la vérification <a href="https://btrfs.wiki.kernel.org/index.php/Main_Page" hreflang="en">d'intégrité</a> en live, la récupération d'une perte sans downtime, la possibilité d'utiliser des disques d'une taille quasiment <a href="https://secure.wikimedia.org/wikipedia/en/wiki/ZFS" hreflang="en">infinie</a> pour notre époque, l'usage d'un <a href="https://secure.wikimedia.org/wikipedia/en/wiki/Global_File_System" hreflang="en">même filesystem</a> par <a href="http://oss.oracle.com/projects/ocfs2/" hreflang="en">plusieurs machines</a> ...</p>


<p>Tout ceci n'était qu'un aperçu qui je l'espère vous donnera envie de connaître les nouvelles technologies à venir.</p>

<p></p><p>Si vous avez aimé, il y a aussi : </p><ol><li><a href='http://linux-attitude.fr/post/lecture-dimage-disque' rel='bookmark' title='Permanent Link: Lecture d&#8217;image disque'>Lecture d&#8217;image disque</a></li>
<li><a href='http://linux-attitude.fr/post/disque-dur' rel='bookmark' title='Permanent Link: Disque dur'>Disque dur</a></li>
<li><a href='http://linux-attitude.fr/post/table-des-partitions' rel='bookmark' title='Permanent Link: Table des partitions'>Table des partitions</a></li>
</ol>
	Tags:<a href="http://linux-attitude.fr/tag/disque" title="Disque" rel="tag">Disque</a>, <a href="http://linux-attitude.fr/tag/materiel" title="Matériel" rel="tag">Matériel</a><br />
]]></content:encoded>
			<wfw:commentRss>http://linux-attitude.fr/post/lavenir-du-disque/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Raid 10 ou raid 0+1 ?</title>
		<link>http://linux-attitude.fr/post/raid-10-ou-raid-01?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=raid-10-ou-raid-01</link>
		<comments>http://linux-attitude.fr/post/raid-10-ou-raid-01#comments</comments>
		<pubDate>Thu, 20 May 2010 16:31:50 +0000</pubDate>
		<dc:creator>peck</dc:creator>
				<category><![CDATA[Sysadmin]]></category>
		<category><![CDATA[Disque]]></category>
		<category><![CDATA[Matériel]]></category>
		<category><![CDATA[Savoir-faire]]></category>

		<guid isPermaLink="false">http://linux-attitude.fr/?p=886</guid>
		<description><![CDATA[Niveau&#160;: &#160;&#160;&#160;&#160;&#160; Résumé&#160;: Raid 10, raid 0+1, raid 5, raid 6 Lorsqu'on parle de redondance, de haute disponibilité et de disque, on parle de Raid. J'en ai déjà parlé Voici un petit aperçu des différents types de RAID, le but est ici de trouver les qualités de chacun. Un tableau final récapitule les avantage et [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Niveau</strong>&nbsp;: <span class="s">&nbsp;</span><span class="s">&nbsp;</span><span class="s">&nbsp;</span><span class="e">&nbsp;</span><span class="e">&nbsp;</span><br />
<strong>Résumé</strong>&nbsp;: Raid 10, raid 0+1, raid 5, raid 6</p>


<p>Lorsqu'on parle de redondance, de haute disponibilité et de disque, on parle de Raid. J'en ai <a href="http://linux-attitude.fr/post/que-faire-et-ne-pas-faire-en-raid">déjà parlé</a></p>


<p>Voici un petit aperçu des différents types de RAID, le but est ici de trouver les qualités de chacun. Un tableau final récapitule les avantage et les inconvénients qu'il y a à choisir un type de raid donné.</p>


<h3>Jbod</h3>

<p>Just a bunch of disk, ce n'est pas un raid, le choix de ceux qui veulent pouvoir ajouter des disques bout à bout sans gain de performance.</p>


<p>Contrairement au raid 0 il a un avantage, la perte d'un disque n'empêche pas la récupération des données sur les disques restants par un outil de récupération tel que photorec. En effet, comme les disques sont simplement mis bouts à bout, la plupart des fichiers tiennent intégralement sur un seul des disques. Il est donc possible d'en récupérer le contenu après un crash.</p>


<p>Le jbod se fait avec du LVM sans striping ou avec le driver linear de md.</p>


<h3>Raid 0</h3>

<p>Le choix de ceux qui veulent des performances.</p>


<p>Chaque disque est découpé en bande (stripe) et les bandes sont entrelacées pour donner le disque final. Ce qui donne un gain de performance appréciable puisque les disque peuvent être lus simultanément, même pendant la lecture d'un gros fichier. Et ils peuvent être écrits simultanément pendant les écritures.</p>


<p>Le raid 0 peut être matériel, logiciel avec le driver md de linux ou logiciel avec LVM (avec striping)</p>


<p><span id="more-886"></span></p>


<h3>Raid 1</h3>

<p>Le choix de ceux qui ne veulent pas de pertes.</p>


<p>Tous les disques sont des copies intégrales. L'avantage le plus important est que lors de la perte d'un disque tout fonctionne comme si de rien n'était. On peut donc remplacer ce disque (ou pas :-).</p>


<p>Un autre avantage existe lors des lectures non séquentielles (lors de la lecture de 2 fichiers par exemple), dans ce cas il est possible d'utiliser un disque pour chaque lecture et donc d'accélérer ce type de lecture. Par contre la lecture d'un seul gros fichier n'est pas accélérée (sous linux).</p>


<p>Il n'y a en revanche aucun impact sur l'écriture, c'est le disque le plus lent qui détermine la vitesse d'écriture (la vitesse devrait être à peu près identique pour chacun).</p>


<p>Notez qu'on peut faire du raid 1 avec plus de 2 disques.</p>


<p>Le Raid 1 peut être matériel, logiciel avec le driver md ou logicielle avec LVM (support du miroring), enfin il est possible de faire du raid1 réseau avec drbd.</p>


<h3>Raid 5</h3>

<p>Le choix des économes.</p>


<p>En raid 5 chaque disque est découpé en bande, pour chaque groupe de bandes situées au même endroit des disques, une des bandes est choisie pour contenir des octets de redondance (la différence avec le 4 c'est le choix de la bande). Ainsi ce type de raid peut survivre au crash d'un des disques (la redondance permet de reconstruire la bande manquante), mais pas de plusieurs.</p>


<p>L'avantage du raid 5 est que lorsqu'on a de nombreux disques on économise des disques de redondance en n'en achetant qu'un pour la redondance et les autres pour les données.</p>


<p>Mais le raid 5 est assez limité en performances. La lecture se passe comme pour le raid 1. Par contre l'écriture nécessite la lecture de chacune des bandes d'un groupe pour écrire la bande de données, puis calculer et écrire la bande de redondance. C'est donc très lent, à éviter pour les bases de données actives.</p>


<p>D'autre part, lors du crash d'un disque, toutes bandes des disques doivent être lues pour reconstituer une bande manquante. Ce qui implique des baisses de performances énormes, auxquelles il faut ajouter la baisse de performances due à la reconstruction du disque qu'on va remettre. Comme les disque tournent à fond, il n'est pas rare de voir un autre disque exploser en vol à ce moment là -&gt; fin des données.</p>


<p>Le raid 5 peut être matériel ou logiciel avec le driver md de linux.</p>


<h3>Raid 6</h3>

<p>Le choix des très gros disques.</p>


<p>Le raid 6 fonctionne de la même façon que le raid 5 mais ajoute un deuxième disque de redondance. Ce ne sont pas simplement les données de redondance qui sont dupliquée, mais le calcul qui est différent, toutefois le concept est identique.</p>


<p>Le raid 6 soufre des mêmes inconvénients que le raid 5, il utilise même un disque de plus donc est un peu plus cher, de plus cela provoque une écriture supplémentaire pour chaque groupe de bandes.</p>


<p>Mais le raid 6 résiste au crash de 2 disques, ce qui est intéressant lorsque les disques sont assez gros et que la reconstruction du raid comment à être assez longue (et donc le risque de perte plus gros).</p>


<p>Le raid 6 peut être matériel ou logiciel avec le driver md de linux.</p>


<h3>Raid 10</h3>

<p>Le choix des riches.</p>


<p>Le raid 10 consiste à accumuler plusieurs raid 1 avec du raid 0 pour en augmenter la taille et les performances.</p>


<p>Le raid 10 offre les avantages simultanés du raid 1 et du raid 0. La perte d'un disque n'empêche pas le raid de tourner et l'utilisation de plusieurs disques en striping permet d'augmenter les performances de lectures.</p>


<p>Le seul inconvénient, c'est qu'il coûte deux fois le prix du raid 0.</p>


<p>Il peut se faire en matériel ou logiciel, md ou lvm.</p>


<h3>Raid 0+1</h3>

<p>Le mauvais choix.</p>


<p>Le raid 0+1 consiste à mettre 2 raid 0 en parallèle pour les redonder avec du raid 1. On pourrait croire que c'est la même chose que du raid 10, mais non. Et même si certains veulent vous faire croire que les performances sont meilleures, il n'en est rien.</p>


<p>Mais surtout imaginez un instant la perte d'un disque. Dans ce cas un des raid 0 sous-jacent est perdu. Il faut donc le recréer avec un nouveau disque (ce qui est à peu près instantané puisqu'on le laisse vide), puis reconstruire le raid 1 situé au dessus. Et cette deuxième partie va être longue puisqu'elle doit être faite sur la taille totale du raid 0, contrairement au raid 10 qui ne l'aurait fait que sur la taille totale du disque perdu.</p>


<h3>Petit récapitulatif</h3>

<table>
<tr>
<th>RAID</th>
<th>jbod</th>
<th>0</th>
<th>1</th>
<th>4</th>
</tr>
<tr>
<th>Quand le choisir</th>
<td>Pas d'argent, pertes partielles acceptables</td>
<td>Besoin de performances mais pertes totales acceptées</td>
<td>Pour éviter les pertes</td>
<td>Jamais</td>
</tr>
<tr>
<th>Inconvénients</th>
<td><ul><li>Pas de redondance</li><li>Pas de gain de performances</li></ul></td>
<td><ul><li>Pas de redondance</li></ul></td>
<td><ul><li>Peu de gains de performances</li><li>La taille ne peut dépasser celle du plus petit disque</li></ul></td>
<td><ul><li>Moins bon que raid 5 dans tous les domaines</li></ul></td>
</tr>
<tr>
<th>Avantages</th>
<td><ul><li>Possibilité de récupérer une parties de données après crash</li><li>Possibilité d'étendre un disque</li></ul></td>
<td><ul><li>Performances en lecture accrues</li></ul></td>
<td><ul><li>Résistance à la perte de N-1 disque</li><li>Légère amélioration des performances en lecture.</li></ul></td>
<td><ul><li>Ceux du raid 5</li></ul></td>
</tr>
</table>


<table>
<tr>
<th>RAID</th>
<th>5</th>
<th>6</th>
<th>10</th>
<th>0+1</th>
</tr>
<tr>
<th>Quand le choisir</th>
<td>Pour le prix</td>
<td>Pour les gros raid</td>
<td>Pour la sécurité et les performances</td>
<td>Jamais</td>
</tr>
<tr>
<th>Inconvénients</th>
<td><ul><li>Performances faibles en écriture</li><li>Performances en lecture faibles après un crash</li></ul></td>
<td><ul><li>Performances faibles en écriture</li><li>Performances en lecture faibles après un crash</li></ul></td>
<td><ul><li>Cher</li></ul></td>
<td><ul><li>Cher</li><li>reconstruction très longue</li></ul></td>
</tr>
<tr>
<th>Avantages</th>
<td><ul><li>Résistance à la perte d'un disque</li><li>Coût moindre par rapport aux autres raid</li></ul></td>
<td><ul><li>Résistance à la perte de 2 disques</li><li>Coût moindre par rapport aux autres raid sauf le 5</li></ul></td>
<td><ul><li>Résistance à la perte d'un certain nombre de disque</li><li>Performances en lecture accrues</li></ul></td>
<td><ul><li>Ceux du raid 10</li></ul></td>
</tr>
</table>


<p></p><p>Si vous avez aimé, il y a aussi : </p><ol><li><a href='http://linux-attitude.fr/post/que-faire-et-ne-pas-faire-en-raid' rel='bookmark' title='Permanent Link: Que faire et ne pas faire en raid'>Que faire et ne pas faire en raid</a></li>
<li><a href='http://linux-attitude.fr/post/lavomatic' rel='bookmark' title='Permanent Link: LaVoMatic'>LaVoMatic</a></li>
<li><a href='http://linux-attitude.fr/post/lavenir-du-disque' rel='bookmark' title='Permanent Link: L&#8217;avenir du disque'>L&#8217;avenir du disque</a></li>
</ol>
	Tags:<a href="http://linux-attitude.fr/tag/disque" title="Disque" rel="tag">Disque</a>, <a href="http://linux-attitude.fr/tag/materiel" title="Matériel" rel="tag">Matériel</a>, <a href="http://linux-attitude.fr/tag/savoir-faire" title="Savoir-faire" rel="tag">Savoir-faire</a><br />
]]></content:encoded>
			<wfw:commentRss>http://linux-attitude.fr/post/raid-10-ou-raid-01/feed</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>Sécurité du processus de boot</title>
		<link>http://linux-attitude.fr/post/securite-du-processus-de-boot?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=securite-du-processus-de-boot</link>
		<comments>http://linux-attitude.fr/post/securite-du-processus-de-boot#comments</comments>
		<pubDate>Wed, 14 Apr 2010 16:57:46 +0000</pubDate>
		<dc:creator>peck</dc:creator>
				<category><![CDATA[Sysadmin]]></category>
		<category><![CDATA[Matériel]]></category>
		<category><![CDATA[planet-libre]]></category>
		<category><![CDATA[Savoir-faire]]></category>
		<category><![CDATA[Sécurité]]></category>
		<category><![CDATA[Théorie]]></category>

		<guid isPermaLink="false">http://linux-attitude.fr/?p=703</guid>
		<description><![CDATA[Niveau&#160;: &#160;&#160;&#160;&#160;&#160; Résumé&#160;: Maintenant que nous connaissons le processus de boot, si on examinait ce processus d'un point de vue de la sécurité&#160;! Lorsqu'on parle de sécurité, il faut d'abord savoir dans quel cas on se positionne et de quoi on cherche à se prémunir. Ici, je considère que le système lui-même est sécurisé. Je [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Niveau</strong>&nbsp;: <span class="s">&nbsp;</span><span class="s">&nbsp;</span><span class="e">&nbsp;</span><span class="e">&nbsp;</span><span class="e">&nbsp;</span><br />
<strong>Résumé</strong>&nbsp;:</p>


<p>Maintenant que nous connaissons le <a href="http://linux-attitude.fr/post/processus-de-boot">processus de boot</a>, si on examinait ce processus d'un point de vue de la sécurité&nbsp;!</p>


<p>Lorsqu'on parle de sécurité, il faut d'abord savoir dans quel cas on se positionne et de quoi on cherche à se prémunir. Ici, je considère que le système lui-même est sécurisé. Je suppose que l'attaquant est devant la machine et cherche un accès root.</p>


<p>On considère que chaque élément est sécurisé pour ce qui est de ses propres fonctionnalités, ce qui veut dire que si le bootloader est protégé par mot de passe, il n'y a pas de faille dans le bootloader lui-même permettant d'outrepasser ce mot de passe. Nous nous attacherons donc à chercher ce qui peut être détourné dans le flux d'exécution en entrée et en sortie de chaque élément.</p>


<p>Je vais commencer par la fin, du plus facile au plus difficile.</p>


<h3>rc</h3>

<p>Rc est lancé par init et ne prend ses paramètres que de init. Ceux-ci sont fixés en dur dans <a href="http://linux-attitude.fr/post/configuration-de-init">/etc/inittab</a>. Son démarrage ne peut donc être détourné que d'une façon&nbsp;: par modification du contenu du disque. <em>GoTo partition /</em></p>


<p>Parmi ces paramètres il y a le paramètre 1 qui lance rc dans le runlevel 1, ce qui dans la plupart des cas se termine par un sulogin. Ouf on est protégé par le mot de passe root.</p>


<p>Mais vérifiez bien, dans certains cas il se termine par un simple shell et donc réussir à passer un tel paramètre permettrait à l'attaquant un accès root à votre machine.</p>


<p>Pour passer 1 en paramètre <em>GoTo init</em></p>


<p><span id="more-703"></span></p>


<h3>init</h3>

<p>Init est lancé par le noyau après lecture de la racine. Il lit sa configuration dans /etc/inittab. Il peut donc être détourné par modification du disque&nbsp;: <em>GoTo partition /</em></p>


<p>Parmi les paramètres qu'on peut lui passer il y a 1 et S, 1 renvoie au problème ci-dessus et S lance lui-même sulogin, donc même vérification. Ces paramètres viennent du noyau&nbsp;: <em>GoTo noyau</em></p>


<p>Init est un binaire choisi par le noyau, or il est possible de dire au noyau de changer d'init à travers le bon paramètre. Par exemple, je peux ajouter init=/bin/sh aux paramètres du noyau pour qu'init ne soit jamais lancé qu'un shell apparaisse à sa place. Ça y est je suis root&nbsp;! C'est d'ailleurs la technique pour changer de mot de passe root lorsque vous l'avez perdu.</p>


<p>Pour changer d'init <em>GoTo noyau</em>.</p>


<p>Init peut aussi être lancé par initrd, il souffre dans ce cas exactement des mêmes problèmes que lorsqu'il est lancé par le noyau&nbsp;: <em>GoTo initrd</em>.</p>


<p><strong>Note upstart, initrdng...</strong>&nbsp;: <br />
Il se peut (et ca va être de plus en plus courant) qu'init ou rc soit remplacé par autre chose, type upstart. Dans ce cas seul les noms des paramètres et le format des fichiers change. Mais les impacts sont exactement les mêmes.</p>


<h3>Initrd</h3>

<p>Initrd prend ses paramètres de la ligne de commande du noyau, mais généralement (il y a plein d'initrd différents) ils sont passés tels quels à init.</p>


<p>D'autre part initrd peut être chargé par 2 moyens, j'ai décrit le bootloader comme un moyen mais le noyau peut aussi charger lui-même l'initrd si on lui demande (avec le paramètre initrd=). On peut donc détourner son chargement par plusieurs moyens&nbsp;: <em>GoTo noyau</em>, <em>GoTo bootloader</em>.</p>


<p>Il est aussi possible de modifier directement l'initrd, par exemple lors d'une <a href="http://linux-attitude.fr/post/Reinstallation-distante">réinstallation distante</a>. Celui-ci contenant tout ce qu'on veut, modifier son contenu permet de lancer n'importe que processus ... <em>GoTo partition /boot</em></p>


<h3>Noyau</h3>

<p>Le noyau en lui-même ne vous rend pas root mais rien ne vous empêche d'y faire une modification pour qu'il vous fasse <a href="http://en.wikipedia.org/wiki/Rootkit" hreflang="en">root</a> une fois le système chargé.</p>


<p>Le noyau est chargé depuis la partition /boot donc une modification de cette partition et c'est gagné&nbsp;: <em>GoTo partition /boot</em></p>


<p>Le noyau prend ses paramètres du bootloader, parmi ceux-ci de nombreux paramètres permettent de détourner le système&nbsp;: root= init= initrd= et surement bien d'autres. <em>GoTo bootloader</em></p>



<h3>Partition /</h3>

<p>Jusque là, nous n'avons évoqué que les risques mais pas encore de faille. C'est parce qu'aucune interférence de l'utilisateur n'a été possible, tout est automatisé. Mais ça va changer.</p>


<p>Lors du montage de la racine, il y a une interférence possible&nbsp;: le disque contenant / peut avoir été modifié, voire remplacé, pour modifier /etc/inittab, /sbin/init, /etc/init.d/rc ou toute autre chose.</p>


<p>Pour éviter ce problème, il y a deux possibilités&nbsp;:</p>
<ul>
<li>mettre un cadenas sur la machine pour garantir l'intégrité physique du disque</li>
<li>chiffrer le disque</li>
</ul>

<p>Dans le premier cas, le problème est remonté aux autres couches pour garantir l'intégrité logique et éviter qu'on réussisse à booter sur un autre OS pour modifier le disque. <em>GoTo bootloader</em>.</p>


<p>Dans le deuxième cas, le chiffrement (par exemple avec <a href="http://linux-attitude.fr/post/faire-du-chiffre">luks</a> ou <a href="http://www.truecrypt.org/" hreflang="en">truecrypt</a>) doit être assuré par une clé.</p>
<ul>
<li>si cette clé est sur la machine et son mot de passe aussi&nbsp;: elle est dans un élément de boot (initrd, partition de boot ...) on reporte le problème <em>GoTo partition /boot</em></li>
<li>si cette clé ou son mot de passe n'est pas sur la machine (carte à puce, mot de passe, clé usb ...) alors il y a besoin d'un personne présente à chaque boot ...</li>
<li>le chiffrement peut aussi être assuré <a href="http://www.thinkwiki.org/wiki/Full_Disk_Encryption_%28FDE%29" hreflang="en">par une puce</a> (TPM) qui ne quitte pas la machine, auquel cas, on garanti que le disque ne quittera pas la machine pour être lu ou modifié (mais pas de garantie contre le formatage), par contre il peut être lu sur place par un autre OS.</li>
</ul>

<p>Dans tous les cas, seul le démarrage post-noyau est préservé, pour le reste <em>GoTo bootloader</em>.</p>



<h3>bootloader</h3>

<p>Le bootloader est la source de tous les maux. C'est en effet par lui que l'utilisateur a tout loisir de modifier des paramètres de démarrage.</p>


<p>Le bootloader passe ses paramètres au noyau qui les passe à l'initrd qui les passe à init. Ces paramètres viennent de la configuration du bootloader mais pour un certain nombre de bootloader ils peuvent être directement demandés à l'utilisateur. Dans ce cas il y a moyen d'interdire cette modification à travers un mot de passe. Par exemple <a href="http://www.gnu.org/software/grub/manual/html_node/Security.html" hreflang="en">grub</a>.</p>


<p>Le bootloader charge sa configuration puis choisit et charge le noyau et l'initrd, tout ceci depuis la partition de boot. Dans tous les cas il doit lire une version non chiffrée, ce qui interdit le chiffrement de cette partition.</p>


<p>Pire, le bootloader est incapable de savoir que le disque n'a pas changé. Donc un simple ajout de disque permet de le faire booter sur un noyau/initrd différent.</p>


<p>Vous ne pouvez presque rien y faire: <em>GoTo partition /boot</em>.</p>


<p>Bon en supposant qu'il n'y a pas de problème, le bootloader est chargé par le bios, il peut donc être détourné&nbsp;: <em>GoTo Bios</em>.</p>


<h3>Partition /boot</h3>

<p>J'inclue dans la définition de la partition de boot tout ce qui contient la configuration du bootloader, le bootloader lui-même, le noyau et l'initrd, même si ils peuvent être physiquement à des endroits différents.
Protéger la partition de boot est très complexe, car tout doit être accessible en clair depuis des outils ayant des fonctionnalités très restreintes.</p>


<p>Les possibilités sont&nbsp;:</p>
<ul>
<li>sceau physique sur la machine</li>
<li>TPM</li>
</ul>

<p>Mettre un gros cadenas sur la machine permet d'éviter une lecture ou une modification de /boot. Mais il on ne se prémunit pas d'une personne un peu patiente avec un accès complet à la machine.</p>


<p>La dernière solution, complexe à mettre en place et sans garantie absolue est d'utiliser une puce TPM qui va vérifier (<a href="http://domino.research.ibm.com/comm/research_people.nsf/pages/sailer.ima.html" hreflang="en">mesurer</a>) le <a href="http://ko.sourceforge.jp/projects/openpts/wiki/GRUB-IMA" hreflang="en">bootloader</a> à chaque étape de son chargement, puis vérifier chaque élément que le bootloader charge avant de lancer le noyau.</p>


<h3>Bios</h3>

<p>Le bios s'exécute tout seul depuis lui-même, il se charge puis lis ses paramètres. Parmi ces paramètres il y a la séquence de boot, qui peut elle-même être modifiée par l'utilisateur.</p>


<p>Il est donc possible, voire facile de dire au bios de booter sur une clé USB et de prendre le contrôle du disque et donc de la machine. Pour éviter ce cas de figure il est possible de mettre un mot de passe au bios. Ainsi on est sûr de booter sur le bon disque, mais seulement s'il y a un cadenas sur la machine puisque le bios ne vérifie pas que le disque n'a pas été remplacé.</p>


<p><em>GoTo Matériel</em>.</p>


<h3>Matériel</h3>

<p>Il est possible de changer le bios lui-même. Et ce de plusieurs façons. Si c'est un flash, il est possible de le remplacer logiciellement, si c'est une rom il est possible de la remplacer matériellement.</p>


<p>Et enfin le plus simple pour remplacer le bios est de remplacer la carte mère. Hop ni vu ni connu ...</p>


<p>Pour se protéger de cela&nbsp;? Le cadenas ... ou la puce TPM, dont la mise en place est toujours très complexe et non garantie.</p>



<h2>Conclusion</h2>

<p>Résumons-nous car cet article commence à être un peu long.
Différencions les cas dont on veut se protéger.</p>


<h3>Accès réseau</h3>

<p>Si l'attaquant n'a accès à la machine que par le réseau, on est tranquille pour ce qui est de la séquence de boot&nbsp;: No problemo.</p>


<h3>Accès KVM</h3>

<p>Si l'attaquant n'a accès à la machine que par <a href="http://fr.wikipedia.org/wiki/Commutateur_%C3%A9cran-clavier-souris" hreflang="fr">KVM</a> (pas de possibilité de toucher aux périphériques). Mettre un mot de passe sur le bootloader, le bios et vérifier que le mode rescue demande le mot de passe root devrait suffire. En effet les seul moyen d'attaque sont les paramètres de lancement du système.</p>


<p>N'oubliez pas que le simple accès KVM permet des choses comme le reboot via les <a href="http://linux-attitude.fr/post/Les-mains-dans-la-noyau">magic keys</a></p>


<h3>Accès cadenassé</h3>

<p>Si on suppose que l'attaquant peut apporter un CD ou une clé usb sur le système, paramétrer le bios pour booter sur un disque et y mettre un mot de passe est un moyen simple à mettre en place pour éviter le boot sur un autre système.</p>


<p>Mais attention, il ne faut pas que l'utilisateur puisse ouvrir la machine, il pourrait réinitialiser le bios.</p>


<h3>Accès au disque sans droit de boot</h3>

<p>A partir du moment où l'attaquant a accès au disque c'est presque foutu. Si l'attaquant n'est pas une personne autorisée à booter la machine, il est possible de chiffrer le disque avec une clé qui ne se trouve pas sur le disque. Il faudra alors la rentrer à chaque démarrage. L'attaquant ne disposant pas de cette clé, il me pourra ni lire ni modifier les données où le système. Mais c'est déjà une solution assez contraignante.</p>


<p>D'autant plus que pour être complète cette solution doit garantir le noyau et l'éventuel initrd sur lequel on boote et donc vérifier soi même à chaque boot qu'on utilise une partition de boot non modifiée.</p>


<p>On en arrive au dernier cas ...</p>


<h3>Accès complet</h3>

<p>Lorsque l'attaquant a un accès complet à la machine, il n'existe qu'un moyen de se protéger (et encore)&nbsp;: la puce TPM.</p>


<p>Elle permet de&nbsp;:</p>
<ul>
<li>protéger le bios d'un changement</li>
<li>protéger le bootloader d'un changement</li>
<li>protéger le noyau d'un changement</li>
<li>protéger le contenu du disque d'un changement</li>
</ul>

<p>Mais tout cela est compliqué et nécessiterait un autre article que je ne suis pas encore prêt à faire, je n'ai même pas de puce TPM chez moi.</p>


<p><strong>PS :</strong> Notez une dernière chose que je n'ai pas abordé, le chiffrement des données. Le chiffrement du disque contenant les données (/home et /srv selon vos besoins) devient obligatoire dès qu'on prévoit qu'il y aura un accès physique. Il doit de préférence se faire avec un moyen propre à l'utilisateur (mot de passe / clé / carte à puce ...) pour éviter les attaques à travers le boot de l'OS.</p>


<p><strong>PPS :</strong> Considérez qu'a partir du moment où quelqu'un a un accès physique à votre machine c'est mort.</p>


<p><strong>PPPS :</strong> Sauf si votre machine est une carte à puce.</p>


<p><strong>PPPPS :</strong> Et encore ...</p>


<p>Bon courage&nbsp;!</p>

<p></p><p>Si vous avez aimé, il y a aussi : </p><ol><li><a href='http://linux-attitude.fr/post/processus-de-boot' rel='bookmark' title='Permanent Link: Processus de boot'>Processus de boot</a></li>
<li><a href='http://linux-attitude.fr/post/mesurer-le-temps-de-boot' rel='bookmark' title='Permanent Link: Mesurer le temps de boot'>Mesurer le temps de boot</a></li>
<li><a href='http://linux-attitude.fr/post/reinstallation-distante' rel='bookmark' title='Permanent Link: Réinstallation distante'>Réinstallation distante</a></li>
</ol>
	Tags:<a href="http://linux-attitude.fr/tag/materiel" title="Matériel" rel="tag">Matériel</a>, <a href="http://linux-attitude.fr/tag/planet-libre" title="planet-libre" rel="tag">planet-libre</a>, <a href="http://linux-attitude.fr/tag/savoir-faire" title="Savoir-faire" rel="tag">Savoir-faire</a>, <a href="http://linux-attitude.fr/tag/securite" title="Sécurité" rel="tag">Sécurité</a>, <a href="http://linux-attitude.fr/tag/theorie" title="Théorie" rel="tag">Théorie</a><br />
]]></content:encoded>
			<wfw:commentRss>http://linux-attitude.fr/post/securite-du-processus-de-boot/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Processus de boot</title>
		<link>http://linux-attitude.fr/post/processus-de-boot?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=processus-de-boot</link>
		<comments>http://linux-attitude.fr/post/processus-de-boot#comments</comments>
		<pubDate>Mon, 12 Apr 2010 16:53:34 +0000</pubDate>
		<dc:creator>peck</dc:creator>
				<category><![CDATA[Sysadmin]]></category>
		<category><![CDATA[Matériel]]></category>
		<category><![CDATA[planet-libre]]></category>
		<category><![CDATA[Système]]></category>
		<category><![CDATA[Théorie]]></category>

		<guid isPermaLink="false">http://linux-attitude.fr/?p=699</guid>
		<description><![CDATA[Niveau&#160;: &#160;&#160;&#160;&#160;&#160; Résumé&#160;: bios, bootloader, noyau, init, rc Je ne me souviens pas avoir fait un article complet sur le processus de boot. Il y en avait un partiel ici. En voici un&#160;! BIOS Le bios est le premier élément à être lancé, si on excepte l'appui sur le bouton ON et quelques autres détails. [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Niveau</strong>&nbsp;: <span class="s">&nbsp;</span><span class="s">&nbsp;</span><span class="s">&nbsp;</span><span class="e">&nbsp;</span><span class="e">&nbsp;</span><br />
<strong>Résumé</strong>&nbsp;: bios, bootloader, noyau, init, rc</p>


<p>Je ne me souviens pas avoir fait un article complet sur le processus de boot. Il y en avait  <a href="http://linux-attitude.fr/post/chargeeeez">un partiel ici</a>. En voici un&nbsp;!</p>



<h3>BIOS</h3>

<p>Le bios est le premier élément à être lancé, si on excepte l'appui sur le bouton ON et quelques autres détails. Celui-ci initialise le processeur ainsi qu'une partie du matériel, comme la carte vidéo ou le clavier.</p>


<p>Le bios est constitué d'une mémoire (rom ou flash) placée sur la carte mère.</p>


<p>Notez que quasiment tous les bios étant maintenant des flash il est possible de les mettre à jour, voire de les remplacer. Et justement un projet existe pour remplacer les bios propriétaires par des bios libres (comme <a href="http://www.youtube.com/watch?v=y8onxYa8Qyw" hreflang="fr">Max</a>): <a href="http://www.coreboot.org/Welcome_to_coreboot" hreflang="en">coreboot</a> de son ancien nom linuxbios.</p>


<p>Le bios est configuré pour choisir un périphérique sur lequel booter. En général c'est le premier disque dur, mais cela peut aussi être une clé usb ou un lecteur disquette. Il est même possible de choisir au moment du boot.</p>


<p>Sur le périphérique en question, et à l'exception du lecteur CD qui a son protocole (<a href="http://fr.wikipedia.org/wiki/El_Torito" hreflang="fr">el torito</a>), le bios charge le premier secteur (512 octets), le met en RAM, et le lance.</p>


<p>Notez que le "BIOS" est spécifique aux PC, d'autres architectures ont des firmware <a href="http://en.wikipedia.org/wiki/Extensible_Firmware_Interface" hreflang="en">EFI</a> (Apple) ou des <a href="http://en.wikipedia.org/wiki/Open_Firmware" hreflang="en">OpenBoot</a> (Sun).</p>


<h3>Bootloader</h3>

<p>Dans ce premier secteur se trouve le <a href="http://linux-attitude.fr/post/chargeeeez">bootloader</a> (grub, lilo, silo, syslinux, mbr dos ...).</p>


<p>Le bootloader est découpé en plusieurs morceaux à cause de la limite des 512 octets. Sa première activité est de réussir à se charger complètement.</p>


<p>Celui de windows est assez simpliste, mais sous linux on en trouve avec plein de fonctionnalités <a href="http://www.gamers.org/~quinet/lilo/" hreflang="fr">sympa</a>.</p>


<p>Une fois qu'il est prêt, il lit sa configuration puis choisit un périphérique et une partition où lire le noyau et éventuellement un initrd.
Et enfin il passe la main au noyau en lui donnant quelques paramètres.
<span id="more-699"></span></p>


<h3>Noyau</h3>

<p>Le noyau est déjà chargé, il n'a "presque" plus rien à faire. Si ce n'est tout initialiser&nbsp;: les interruptions, le mode du processeur, les périphériques ...</p>


<p>Une fois qu'il a fini (ou même un peu avant) il monte la racine (/) à partir de de qui lui a été spécifié en ligne de commande.</p>


<p>Et enfin il lance init en lui passant quelques paramètres provenant de sa propre ligne de commande.</p>


<p>Si un initrd est chargé, il l'utilise comme racine et prend l'init s'y trouvant. Dans ce cas il ne cherche pas à monter la racine. Sinon GoTo init.</p>


<h3>Initrd</h3>

<p>Initrd est un intermédiaire qui a été rajouté au processus de boot pour permettre le chargement dynamique de driver ainsi que la configurations de certain éléments comme le réseau ou le NFS.</p>


<p><a href="http://en.wikipedia.org/wiki/Initrd" hreflang="en">Initrd</a> est un ancien nom. En pratique, c'est maintenant un initramfs qui est chargé (c'est la même chose mais en mieux, le premier est un block device et le second une archive) avant le montage de la racine. Celui-ci est monté à la racine. Son boulot, rendre la vraie racine accessible. NFS, driver manquant, LVM, toutes les raisons sont bonnes pour utiliser un initrd.</p>


<p>Et enfin celui-ci charge le vrai init pour l'étape suivante.</p>


<h3>Init</h3>

<p>Init est cette fois un vrai processus unix lancé par le noyau, et comme c'est le premier il a pour pid 1.
Il prend <a href="http://linux-attitude.fr/post/configuration-de-init">sa configuration</a> dans /etc/inittab.  Dans sa configuration il y a quelques processus à lancer et à surveiller, il s'agit essentiellement des terminaux locaux.</p>


<p>Mais surtout il lance /etc/init.d/rc en lui passant en paramètre le runlevel dans lequel on est sensé fonctionner.</p>


<h3>rc</h3>

<p>rc est un simple script qui a pour pour seul objectif de lancer les différents démons qu'on trouve dans /etc/rcX.d où X est un <a href="http://linux-attitude.fr/post/course-de-niveaux">runlevel</a></p>


<p>Et voila, à partir de là on peut considérer que le système est lancé.</p>


<p>Notez que sous certains systèmes comme ubuntu on trouve des outils comme <a href="http://upstart.ubuntu.com/" hreflang="en">upstart</a> qui remplacent à la fois init et rc pour faire à peu près la même chose.</p>

<p></p><p>Si vous avez aimé, il y a aussi : </p><ol><li><a href='http://linux-attitude.fr/post/securite-du-processus-de-boot' rel='bookmark' title='Permanent Link: Sécurité du processus de boot'>Sécurité du processus de boot</a></li>
<li><a href='http://linux-attitude.fr/post/mesurer-le-temps-de-boot' rel='bookmark' title='Permanent Link: Mesurer le temps de boot'>Mesurer le temps de boot</a></li>
<li><a href='http://linux-attitude.fr/post/course-de-niveaux' rel='bookmark' title='Permanent Link: Course de niveaux'>Course de niveaux</a></li>
</ol>
	Tags:<a href="http://linux-attitude.fr/tag/materiel" title="Matériel" rel="tag">Matériel</a>, <a href="http://linux-attitude.fr/tag/planet-libre" title="planet-libre" rel="tag">planet-libre</a>, <a href="http://linux-attitude.fr/tag/systeme" title="Système" rel="tag">Système</a>, <a href="http://linux-attitude.fr/tag/theorie" title="Théorie" rel="tag">Théorie</a><br />
]]></content:encoded>
			<wfw:commentRss>http://linux-attitude.fr/post/processus-de-boot/feed</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Il fait chaud ici !</title>
		<link>http://linux-attitude.fr/post/il-fait-chaud-ici?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=il-fait-chaud-ici</link>
		<comments>http://linux-attitude.fr/post/il-fait-chaud-ici#comments</comments>
		<pubDate>Tue, 02 Jun 2009 15:22:00 +0000</pubDate>
		<dc:creator>peck</dc:creator>
				<category><![CDATA[Sysadmin]]></category>
		<category><![CDATA[Matériel]]></category>
		<category><![CDATA[planet-libre]]></category>

		<guid isPermaLink="false">http://linux-attitude.fr/post/il-fait-chaud-ici</guid>
		<description><![CDATA[Niveau&#160;: &#160;&#160;&#160;&#160;&#160; Résumé&#160;: sensors-detect&#160;; sensors; hddtemp; fancontrol Sensors Comment connaître les différentes températures à l'intérieur de votre machine&#160;? Il y a des capteurs, donc il y a bien une information quelque part. Linux a tous les drivers nécessaires, mais pour ceux qui se sont essayé à regarder, c'est difficile de savoir qui sert à quoi. [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Niveau</strong>&nbsp;: <span class="s">&nbsp;</span><span class="s">&nbsp;</span><span class="s">&nbsp;</span><span class="e">&nbsp;</span><span class="e">&nbsp;</span><br />
<strong>Résumé</strong>&nbsp;: sensors-detect&nbsp;; sensors; hddtemp; fancontrol</p>


<h3>Sensors</h3>


<p>Comment connaître les différentes températures à l'intérieur de votre machine&nbsp;?
Il y a des capteurs, donc il y a bien une information quelque part. Linux a tous les drivers nécessaires, mais pour ceux qui se sont essayé à regarder, c'est difficile de savoir qui sert à quoi. Heureusement, il y a <a href="http://www.lm-sensors.org/" hreflang="en">lm-sensors</a> pour venir à notre secours.</p>


<p>Pour avoir la liste de tous les capteurs disponibles sur la machine ainsi que les driver linux associés à charger, il existe une commande toute simple une fois le paquet lm-sensors installé&nbsp;:</p>
<pre>
$ sensors-detect
</pre>


<p>Cette commande scanne le matériel, vous pose une question ou deux et termine en vous listant les modules noyau à charger pour pouvoir obtenir les valeurs. Deux choses à faire&nbsp;:</p>
<pre>
# On charge le(s) module(s)
$ modprobe lemodule
# Et on automatise ça pour le prochain reboot
$ echo lemodule &gt;&gt; /etc/modules
</pre>


<p>Et voilà, il ne vous reste plus qu'à lire les valeurs. Pour cela, vous avez plusieurs outils&nbsp;:</p>
<pre>
# lecture simple des valeurs en mode texte
$ sensors 
# lecture avec interface graphique (ne marche pas chez moi)
$ xsensors
</pre>


<p>Ou les traditionnelles applet qu'on peut trouver sur <a href="http://sensors-applet.sourceforge.net/" hreflang="en">gnome</a>, <a href="http://kima.sourceforge.net/" hreflang="en">kde</a>, <a href="http://members.dslextreme.com/users/billw/gkrellm/gkrellm.html" hreflang="en">gkrellm</a>, windowmaker ...</p>


<p><span id="more-317"></span></p>


<h3>Hddtemp</h3>


<p>Si vous voulez aussi lire la température de vos disque, il existe hddtemp du paquet éponyme.
Celui-ci marche directement en ligne de commande&nbsp;:</p>
<pre>
# Il faut être root
$ hddtemp /dev/sda
</pre>


<p>Il existe aussi en mode démon, une fois installé, modifiez /etc/default/hddtemp (debian) et relancez le démon&nbsp;:</p>
<pre>
$ /etc/init.d/hddtemp restart
# vérifions qu'il marche
$ telnet localhost 7634
</pre>


<p>Et voila, il ne vous reste plus qu'a ajouter le disque dur dans l'applet.</p>


<p>Attention, l'applet de gnome nécessite d'être redémarrée pour détecter hddtemp.</p>


<h3>Fancontrol</h3>


<p>C'est la fête, passons maintenant aux ventilateurs. Vous avez déjà remarqué que vous pouvez avoir la vitesse de rotation dans vos applet. Ajoutez la au moins temporairement, ça peut vous être utile pour la suite.</p>


<p>En effet, nous n'allons pas seulement lire la vitesse des ventilateurs, mais nous allons la modifier. Pour ceux qui veulent regarder sous le capot, tout cela se trouve dans /sys/devices/platform/&lt;sensordriver&gt;/</p>


<p>Fancontrol est un paquet qui contient deux choses&nbsp;: un script permettant de régler automatiquement la vitesse de rotation des ventilateurs et un outil permettant de le configurer sans se forcer.</p>


<p>Pour utiliser fancontrol, il faut avoir des sensors opérationnels. Gardez de préférence un oeil sur votre applet pour éviter les débordements de température et pour savoir quoi répondre au script.</p>
<pre>
$ pwmconfig
</pre>


<p>Ce script vous pose plein de questions, arrête les ventilateurs, les relance, les ralentit ... dans le but de savoir quel ventilateur fait quoi, à quel capteur de température on peut l'associer et comment il marche. Sachez au passage que les processeurs acceptent des températures assez élevées, pas besoin de les forcer à 40°C, vous économiserez du bruit. Regardez la doc de votre fabricant si vous voulez un avis sérieux.</p>


<p>Le script pose 2 questions difficiles à comprendre</p>
<ul>
<li>MINSTART est la valeur de configuration au dessus de laquelle le ventilateur commence à tourner</li>
<li>MINSTOP est la  valeur de configuration au dessous de laquelle le ventilateur s'arrête de tourner</li>
</ul>

<p>De façon générale, MINSTOP doit être supérieur à MINSTART (<a href="http://fr.wikipedia.org/wiki/Hyst%C3%A9r%C3%A9sis" hreflang="fr">hystérésis</a>), mais les valeurs sont assez proches. Vous pouvez aussi choisir ces valeurs par rapport à ce que vous entendez plutôt qu'à la vitesse réelle de rotation.</p>


<p>Une fois le tout configuré&nbsp;:</p>
<pre>
$ /etc/init.d/fancontrol start
</pre>


<p>Et écoutez ce silence en provenance de votre ventilateur. Surtout lorsque vous faites des activités peu intensives.</p>

<p></p><p>Si vous avez aimé, il y a aussi : </p><ol><li><a href='http://linux-attitude.fr/post/execution-non-simultanee-de-crons' rel='bookmark' title='Permanent Link: Exécution non simultanée de crons'>Exécution non simultanée de crons</a></li>
</ol>
	Tags:<a href="http://linux-attitude.fr/tag/materiel" title="Matériel" rel="tag">Matériel</a>, <a href="http://linux-attitude.fr/tag/planet-libre" title="planet-libre" rel="tag">planet-libre</a><br />
]]></content:encoded>
			<wfw:commentRss>http://linux-attitude.fr/post/il-fait-chaud-ici/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk: basic
Page Caching using disk: enhanced (User agent is rejected)
Database Caching 24/68 queries in 0.223 seconds using apc
Object Caching 1839/1865 objects using apc
Content Delivery Network via N/A

Served from: linux-attitude.fr @ 2012-05-23 20:15:48 -->
