|
|
Ce document est disponible en: English Castellano Deutsch Francais Nederlands Portugues Russian Turkce |
par Mark Nielsen (homepage) L´auteur: Mark est un consultant indépendant qui donne de son temps à des causes comme GNUJobs.com, écrit des articles, crée des logiciels libres et travaille comme bénévole à eastmont.net. Traduit en Français par: Iznogood <iznogood /at/ iznogood-factory.org> Sommaire: |
Utilisations variées de Raid, /dev/ram et ramfsRésumé:
Ramfs est un système de fichier très simple avec quelques aspects intéressants. C'est l'une des nouveautés du noyau 2.4. |
Qu'est-ce qu'un disque RAM? C'est une portion de mémoire que vous allouez pour l'utiliser comme une partition. Ou, en d'autres termes, vous prenez un peu de votre mémoire et vous la considérez comme un disque dur que vous pouvez formater, monter, y sauvegarder des fichiers, etc.
Nous aborderons deux types de disques RAM. Le premier peut être formaté et monté. Le second ne peut pas être formaté mais possède des caractéristiques intéressantes. En voici le détail :
L'ancienne approche /dev/ram1:
Pour utiliser vos disques RAM avec les noyaux 2.0 et 2.2, saisissez simplement ces trois commandes:
mkfs -t ext2 /dev/ram1 mkdir -p /RAM1 mount /dev/ram1 /RAM1en tant que root et c'est tout. Sur la plupart des systèmes, la taille est limitée à 4 Mo. Cela peut être changé au démarrage ou si vous recompilez le noyau, mais pour ça, lisez plutôt l'ancien article. Vous pouvez aussi en ajouter de cette manière :
mkfs -t ext2 /dev/ram2 mkdir -p /RAM2 mount /dev/ram2 /RAM2
C'est très simple. Créez un répertoire et montez-y ramfs.
mkdir -p /RAM1 mount -t ramfs none /RAM1Si vous en voulez un second, c'est très simple. Créez un répertoire et montez-y ramfs.
mkdir -p /RAM2 mount -t ramfs none /RAM2
Voici un exemple sur la manière de créer un disque RAM de 10 Mo.
mkdir -p /RAM1 mount -t ramfs none /RAM1 -o maxsize=10000Je l'ai récupéré directement sur http://www.linuxhq.com/kernel/v2.4/patch/patch-2.4.3-ac2/linux.ac_Documentation_filesystems_ramfs.txt.html
+ ramfs - Un système de fichier à taille ajustable logé en RAM + + + Ramfs est un système de fichiers qui stocke tout dans la RAM. + Il permet les accès en lecture et écriture. Contrairement aux + disques RAM, qui conservent une taille mémoire fixe, ramfs + adapte sa taille à son contenu. + + Vous pouvez monter ramfs par la commande: + mount -t ramfs none /mnt/wherever + + Vous n'avez plus qu'à créer et utiliser les fichiers. Lorsque le système + de fichier est démonté, tout le contenu est perdu. + + NOTE! Ce système de fichier est probablement plus utile, non pas comme + quelque chose de réel mais comme exemple sur la manière d'écrire des + systèmes de fichiers virtuels. + +Limites de ressources: + +Par défaut, ramfs sera limité à l'utilisation de la moitié de la mémoire +physique pour le stockage du contenu des fichiers et un peu plus +lorsque les métadonnées seront incluses. +La limitation en ressources de ramfs peut être contrôlée avec +les options de montage suivantes: + + maxsize=NNN + Indique la taille de mémoire maximale allouée pour le +système de fichiers à NNN ko. Ce chiffre sera arrondi à l'inférieur +d'un multiple de la taille de page. Par défaut, c'est équivalent à la +moitié de la taille de la mémoire. NB. Contrairement à la plupart des +autres limites, indiquer zéro *ne* signifie *pas* qu'il n'y a pas de +limites mais limitera réellement la taille des données du système de +fichiers à zéro page. Il peut y avoir une raison à cela dans des + situations spécifiques. + + maxfilesize=NNN + Définit la taille maximum d'un simple fichier à +NNN ko. Ce chiffre sera arrondi à l'inférieur d'un multiple de +la taille de page. Si NNN=0, il n'y a pas de limite. Il n'y a pas de +limite par défaut. + + maxdentries=NNN + Définit le nombre maximum d'entrées de répertoires +(liens en dur) sur le système de fichier à NNN. Si NNN=0, il n'y a pas +de limite. Par défaut, c'est initialisé à maxsize/4. + + maxinodes=NNN + Initialise le nombre maximum d'inodes (fichiers +distincts) sur le système de fichiers à NNN. Si NNN=0, il n'y a pas +de limite. +Par défaut, il n'y a pas de limite (mais il ne peut jamais y avoir plus +d'inodes que d'entrées).
La RAM est bon marché en ce moment. J'ai acheté 128 Mo de RAM pour 120$ récemment et je suppose que le prix va continuer à baisser. Avec 128 Mo de RAM, je peux facilement installer n'importe lequel de mes serveurs web. Si le serveur web a de gros fichiers, je peux configurer httpd.conf pour qu'il recherche un autre répertoire à l'extérieur du disque RAM. Mon serveur DNS est très petit. Mon serveur de données le plus important fait seulement 28 Mo. En considérant le fait que vous pouvez avoir aujourd'hui des ordinateurs à 1 Go de mémoire pour pas très cher, il serait bien de lancer tous les serveurs dans la RAM. La partie la plus délicate avec le seveur de base de données est que vous devez d'abord sauvegarder toutes les données sur un serveur séparé avant d'écrire sur le serveur en mémoire. C'est lent mais en considérant le temps passé à lire et non à écrire, les performances sont meilleures. Peut être qu'il est possible de faire un miroir d'un disque RAM vers un disque dur.
Je l'ai déjà expliqué dans l'autre article, que vous pouvez trouver sur: http://www.gnujobs.com/mark/articles/Ramdisk.html#Example. Remplacez simplement ces commandes
### Créez les partitions /sbin/mkfs -t ext2 /dev/ram0 /sbin/mkfs -t ext2 /dev/ram1 /sbin/mkfs -t ext2 /dev/ram2 ### Montez les disques RAM mount /dev/ram0 /home/httpd/cgi-bin mount /dev/ram1 /home/httpd/icons mount /dev/ram2 /home/httpd/htmlavec celles-ci (augmentez la taille si 10 Mo ne sont pas suffisants):
mount -t ramfs none /home/httpd/cgi-bin -o maxsize=10000 mount -t ramfs none /home/httpd/icons -o maxsize=10000 mount -t ramfs none /home/httpd/html -o maxsize=10000
Combiner un disque RAM avec une partition de disque dur pose trois problèmes.
raiddev /dev/md3 raid-level 1 nr-raid-disks 2 nr-spare-disks 0 chunk-size 4 persistent-superblock 1 device /dev/hdb6 raid-disk 1 device /dev/ram3 raid-disk 0Puis j'ai exécuté,
mkraid /dev/md3 mkfs -t ext2 /dev/md3 mkdir -p /RAID1 mount /dev/md3 /RAID1Le problème, au démarrage, est que le disque RAM sera manquant. Donc, après lancement,
raidstart /dev/md3 raidhotadd /dev/md3 /dev/ram3 mount /dev/md3 /RAID1Maintenant rappelez-vous que si vous ne reconfigurez pas l'ancien disque RAM à plus de 4 Mo, il n'est pas nécessaire que votre partition de disque dur soit supérieure à 4 Mo.
Il serait vraiment intéressant de créer un raid en miroir avec trois partitions. Une étant le disque RAM, les deux autres étant les partitions de disque dur et de faire en sorte que seul le disque RAM soit actif pour les cycles de lecture. Je ne sais pas s'il est possible de limiter les lectures à une seule des partitions d'un Raid mais ce serait très bien.
Merci à Katja pour toute l'aide qu'elle m'a apporté !
Copyright © 4/2001 Mark Nielsen
Article Version 1.3 : Date du Dernier Changement Sat May 19 06:04:06 2001
Site Web maintenu par l´équipe d´édition LinuxFocus
© Mark Nielsen "some rights reserved" see linuxfocus.org/license/ http://www.LinuxFocus.org |
Translation information:
|
2005-02-13, generated by lfparser version 2.52