Page suivante Page précédente Table des matières

4. Comment utiliser un disque virtuel pour Linux

Par Mark Nielsen mark@tcu-inc.com

Si ce document est amené à changer, la dernière version se trouvera à l'adresse http://www.tcu-inc.com/mark/articles/Ramdisk.html.

4.1 Index:

  1. Introduction à la notion de disque virtuel
  2. Comment utiliser un disque virtuel
  3. Changer la taille des disques virtuels
  4. Exemple d'utilisation de disques virtuels pour un serveur web
  5. Commentaires

4.2 Introduction à la notion de disque virtuel

Bonjour ! Ceci est un court article qui a pour but d'expliquer comment mettre en place un disque virtuel sur un système RadHat 6.0. Ca devrait être assez similaire pour d'autres systèmes.

Qu'est-ce qu'un disque virtuel ? C'est une portion de mémoire que vous allouez pour l'utiliser comme une partition. Ou, en d'autres termes, vous prenez de la mémoire, vous faites croire que c'est un disque dur, et vous y sauvegardez vos fichiers. Pourquoi vouloir utiliser un disque virtuel ? Eh bien, si vous savez que certains de vos fichiers vont-être sans cesse utilisés, les mettre en mémoire augmentera les performances de votre ordinateur puisque votre mémoire est plus rapide que votre disque dur. Des systèmes tels que des serveurs web avec beaucoup de données peuvent-être accélérés de cette manière. D'un autre côté, si vous êtes dérangé, et que vous avez un ordinateur PII 550MHz avec 1 Go de mémoire et un vieux disque dur de 550 Mo, vous pouvez utiliser un disque virtuel pour augmenter la taille de votre disque dur. Ou encore, si vous désirez avoir une machine sans disque, cela peut ne pas être si insensé après tout.

Voici quelques ressources de plus pour vous aider :

  1. http://metalab.unc.edu/LDP/HOWTO/Kernel-HOWTO.html
  2. http://metalab.unc.edu/LDP/HOWTO/mini/LILO.html
  3. /usr/src/linux/Documentation/ramdisk.txt

4.3 Comment utiliser un disque virtuel

En fait il est très facile d'utiliser un disque virtuel. Tout d'abord, l'installation par défaut de la RedHat 6.0 est fournie avec la gestion des disques virtuels. Tout ce que vous avez à faire est de formater un disque virtuel et ensuite de le monter dans un répertoire. Pour avoir une idée de tous les disques virtuels qui sont à votre disposition, faites un "ls -al /dev/ram*". Cela vous donne les disques virtuels que vous pouvez déjà utiliser. Ces disques virtuels n'occupent pas de mémoire tant que vous ne les utilisez pas, et ce, de quelque manière que ce soit (comme les formater par exemple).

Voici un exemple très simple de l'utilisation d'un disque virtuel:

mkdir -p /tmp/ramdisk0
mkfs -t ext2 /dev/ram0
mount /dev/ram0 /tmp/ramdisk0
Ces trois commandes vont créer un répertoire pour héberger le disque virtuel, formater ce disque (la taille est de 4 Mo par défaut), et monter le disque virtuel dans le répertoire /tmp/ramdisk0. A présent vous pouvez considérer ce répertoire comme s'il était une partition ! Lancez-vous et utilisez-le comme n'importe quel autre répertoire ou comme n'importe quelle autre partition.

Qu'en est-il de la persistance ? Eh bien, quand l'ordinateur est redémarré le disque virtuel est effacé. N'y mettez aucune donnée qui n'est pas copiée ailleurs ou qui soit critique. Si vous faites des changements dans ce répertoire, et que vous avez besoin de les conserver, trouvez un moyen de les sauvegarder.

4.4 Changer la taille des disques virtuels

Bien, comment est-ce que je change la taille des disques virtuels ? Personnellement je n'ai pu trouver que deux moyens de les modifier. Aucune de ces options ne vous permettra de changer la taille des disques virtuels après que l'ordinateur ait démarré. C'est merdique.

Tout d'abord la manière forte. Jetez un coup d'oeil à ce fichier:

/usr/src/linux/drivers/block/rd.c
puis éditez-le, changez la ligne
int rd_size = 4096;       /* taille des disques virtuels */
en donnant au nombre la valeur que vous désirez, exprimée en Ko. Ensuite, recompilez le noyau, installez-le et redémarrez l'ordinateur.

Maintenant, la manière douce. Ajoutez cette ligne au fichier lilo.conf.

ramdisk=10000
et la taille par défaut des disques virtuels sera de 10 Mo après que vous ayez tappé la commande "lilo" et que vous ayez redémarré l'ordinateur.

Voici l'exemple de mon fichier /etc/lilo.conf.

boot=/dev/hda
map=/boot/map
install=/boot/boot.b
prompt
timeout=50
image=/boot/vmlinuz-2.2.5-15
        label=linux
        root=/dev/hda2
        read-only
        ramdisk=10000

En fait, j'ai un peu plus de 9 Mo d'espace effectivement utilisable.

4.5 Exemple d'utilisation de disques virtuels pour un serveur web

Voilà, ceci est un exemple qui illustre l'utilisation de trois disques virtuels pour un serveur web. Disons que vous êtes à 99% sûr que votre installation d'Apache pour RedHat 6.0 n'utilisera pas plus de 9 Mo pour ses scripts CGI, le code HTML et les icônes. Voici comment l'installer.

Lancez tout d'abord cette commande pour déplacer la véritable copie du répertoire racine de votre serveur web à un endroit différent. Créez également les répertoires où vous monterez les disques virtuels.

mv /home/httpd/ /home/httpd_real
mkdir /home/httpd
mkdir /home/httpd/cgi-bin
mkdir /home/httpd/html
mkdir /home/httpd/icons
Ajoutez alors ces commandes à votre fichier /etc/rc.d/rc.local.

### Créer les partitions pour les disques virtuels
/sbin/mkfs -t ext2 /dev/ram0
/sbin/mkfs -t ext2 /dev/ram1
/sbin/mkfs -t ext2 /dev/ram2

### Monter les disques virtuels à un endroit approprié
mount /dev/ram0 /home/httpd/cgi-bin
mount /dev/ram1 /home/httpd/icons
mount /dev/ram2 /home/httpd/html

### Copier les vrais répertoires dans les disques virtuels
tar -C /home/httpd_real -c . | tar -C /home/httpd -x

#### Redémarrer le serveur web
/etc/rc.d/init.d/httpd restart  

Je redémarrerais votre ordinateur, même si ce n'est pas nécessaire dans le cas où vous exécutez cette commande pour relancer le fichier rc.local.

/etc/rc.d/rc.local

4.6 Commentaires

  1. S'il vous plaît souvenez-vous d'une chose, SAUVEGARDEZ VOS DONNEES si vous les modifiez et si vous en avez besoin. Quand l'ordinateur redémarre, toutes les modifications sont perdues. Un job cron pourrait faire ça. Faites-lui vérifier toutes les 5 minutes si des fichiers ont changés et sauvegarder chaque changement. Il existe de meilleures façons de faire ça, mais je ne m'y attarderai pas. Une autre chose que vous pouvez faire est d'appliquer vos changements dans le vrai répertoire et ensuite de reporter ces changements dans les disques virtuels. C'est beaucoup plus sûr.
  2. Une chose à remarquer est que certaines cartes mères pour IBM PC compatibles n'ont un processus de cache de la mémoire qu'en dessous de 256 Mo (parfois même 128 Mo). Si vous utiliser beaucoup de mémoire, prenez ce fait en considération.
  3. Une utilisation sympa serait d'avoir un ordinateur avec 1 Go de mémoire et d'utiliser 256 Mo pour "/tmp". Si vous avez beaucoup de processus qui utilisent "/tmp" cela peut aider à accélérer votre système. Tout ce qui est dans "/tmp" sera perdu au redémarrage de l'ordinateur, ce qui peut être une bonne chose.
  4. Au début, j'ai essayé d'utiliser lilo.conf pour modifier la taille des disques virtuels, mais ça ne fonctionnait pas. Après que Rob Funk m'ait demandé pourquoi j'essayais de le faire par la manière forte (en recompilant le noyau et tout le tralala), j'ai réessayé et ça a fonctionné. Je ne sais pas ce que j'ai mal fait la première fois. Merci Rob !

Mark Nielsen travaille pour The Computer Underground en tant qu'archiviste et en tant que consultant professionnel (costume-cravate) à 800linux.com. A ses moments perdus, il fait du volontariat, comme écrire ces documents pour la Linux Gazette et pour linux.com. Ce document a été écrit avec Nedit et ispell.

Copyright © 1999, Mark Nielsen. Publié dans le n° 44 de Linux Gazette, Août 1999.

Traduction française de Xavier Serpaggi.


Page suivante Page précédente Table des matières