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.
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 :
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/ramdisk0Ces 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.
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.
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/iconsAjoutez 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
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."/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.
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.