par Mark Nielsen L´auteur: L'auteur (home page) travaille � The Computer Underground, Inc., employ� de bureau et comme consultant professionnel aupr�s de 800linux.com. A ses heures perdues, il effectue des actions b�n�voles, telles qu'�crire ces documents. Ce document a �t� �dit� avec Nedit et Ispell. Sommaire: |
Résumé:
Cet article montre comment utiliser la RAM comme disque dur virtuel.
Il s'agit d'un bref article sur la configuration et la mise en oeuvre d'un ramdisk sur un syst�me bas� sur une distribution Red Hat 6.0. Les manipulations d�crites sont applicables sans probl�mes sous d'autres distributions Linux.
Qu'est-ce qu'un ramdisk ? Un ramdisk est une portion de la m�moire que vous d�limitez, afin de l'exploiter comme une partition. Ou, en d'autres termes, vous prenez de la m�moire, vous la consid�rez comme un disque dur et y sauvegardez vos fichiers. Pourquoi voudriez-vous utiliser un ramdisk ? Eh bien, si vous savez que vous poss�dez des fichiers qui vont �tre constamment utilis�s, les mettre en m�moire am�liorera les performances de votre syst�me, car l'acc�s � la m�moire est plus rapide que l'acc�s � votre disque dur. Des choses telles que les serveurs Web avec beaucoup de donn�es, peuvent �tre acc�l�r�es par ce biais. Ou si vous �tes cingl�, et que vous disposez d'un Pentium-II 550 Mhz avec 1 Go de m�moire et un vieux disque dur de 500 Mo, vous pouvez utiliser cette technique pour augmenter votre espace disque utilisable. L� encore, si vous voulez un ordinateur quasiment d�nu� de disque (diskless), cela n'est pas une id�e si folle, apr�s tout...
Voici quelques pistes suppl�mentaires pour vous aider:
Eh bien, c'est tr�s facile. Avant tout, l'installation par d�faut de la RedHat 6.0 fournit le support des ramdisks. Tout ce que vous avez � faire, c'est de formater un ramdisk et de le monter dans un r�pertoire.
Pour savoir de combien de ramdisks vous pouvez disposer, faites un ls -al /dev/ram*. Cela vous donnera les noms de tous les ramdisks pr�d�finis qui attendent votre bon plaisir. Ces ramdisks ne prennent aucune place en m�moire pour l'instant, du moins, jusqu'� ce que vous les utilisiez (en les formatant par exemple).
Voici un petit exemple d'exploitation d'un ramdisk:
# cr�er un point de montage: mkdir /tmp/ramdisk0 # cr�er un syst�me de fichiers: mke2fs /dev/ram0 # monter le ramdisk: mount /dev/ram0 /tmp/ramdisk0
Ces trois commandes cr�eront un r�pertoire pour le ramdisk, formateront celui-ci (cr�eront dessus un syst�me de fichiers), et le monteront sur le r�pertoire /tmp/ramdisk.
Maintenant, vous pouvez consid�rer ce r�pertoire comme le point de montage d'un disque r�el ! Allez-y, utilisez maintenant le ramdisk comme n'importe quel r�pertoire ou partition.
Si le formatage du ramdisk �choue, c'est probablement parce que le support des ramdisks n'est pas activ� dans le noyau. Cette option de configuration s'appelle CONFIG_BLK_DEV_RAM.
La taille par d�faut d'un ramdisk est de 4 Mo = 4096 blocs.
Vous avez pu constater la taille du disque virtuel, quand vous avez lanc� mke2fs
. La commande mke2fs /dev/ram0
aura sans doute produit les messages suivants:
mke2fs 1.14, 9-Jan-1999 for EXT2 FS 0.5b, 95/08/09 Linux ext2 filesystem format Filesystem label= 1024 inodes, 4096 blocks 204 blocks (4.98%) reserved for the super user First data block=1 Block size=1024 (log=0) Fragment size=1024 (log=0) 1 block group 8192 blocks per group, 8192 fragments per group 1024 inodes per group
Ex�cuter la commande df -k /dev/ram0
vous dira combien de place vous pouvez exactement utiliser (le syst�me de fichiers prend �galement un peu de place).
>df -k /dev/ram0 Filesystem 1k-blocks Used Available Use% Mounted on /dev/ram0 3963 13 3746 0% /tmp/ramdisk0
O� se trouve l'embrouille, me direz-vous ? Eh bien, quand l'ordinateur red�marre, tout est effac�. NE METTEZ SUR LE DISQUE VIRTUEL, AUCUNE DONN�E QUI NE SOIT PAS STOCK�E QUELQUE PART AILLEURS, SUR UN SUPPORT S�R. Si vous effectuez des changements sur les fichiers contenus dans ce r�pertoire, et que vous avez besoin de conserver ces modifications, conservez ces modifications sur un autre support, afin de pouvoir les restaurer (au cas o�).
Pour utiliser un ramdisk, vous devez disposer du support des ramdisks,soit en l'int�grant directement au noyau, soit pr�sent sous la forme d'un module. Compiler l'option CONFIG_BLK_DEV_RAM comme module chargeable a l'avantage de vous permettre de d�finir la taille de celui-ci, au moment o� vous l'appellerez.
Bien, voici la m�thodebrutale. Ajoutez la ligne suivante � votre fichier lilo.conf:
ramdisk_size=10000
(ou ramdisk=10000
pour les vieux noyaux)
Les ramdisks auront une taille par d�faut de 10 Mo, d�s que vous aurez tap� lilo
et red�marr� l'ordinateur.
A titre d'exemple, voici le fichier /etc/lilo.conf de mon syst�me.
boot=/dev/hda map=/boot/map install=/boot/boot.b prompt timeout=50 image=/boot/vmlinuz label=linux root=/dev/hda2 read-only ramdisk_size=10000
En r�alit�, j'ai un petit peu plus de 9 M�ga-octets d'espace utilisable, car le syst�me de fichiers prend un peu de place.
Quand vous compilez le support des ramdisks en tant que module, vous pouvez d�cider de la taille de ceux-ci, lors de son chargement. Cela peut �tre d�fini, soit en ajoutant une ligne de ce type dans le fichier /etc/conf.modules:
options rd rd_size=10000
ou en ajoutant un argument de ce type � la commande insmod
:
insmod rd rd_size=10000
Voici une mani�re canonique d'utiliser ce module:
unmount /tmp/ramdisk
.
rmmod rd
insmod rd rd_size=20000
mke2fs /dev/ram0
mount /dev/ram0 /tmp/ramdisk
Eh bien, voici un petit exemple d'application: 3 ramdisks sur un serveur Web. Admettons que vous soyez surs � 99% que l'installation par d�faut d'Apache, sur la RedHat 6.0, n'utilisera pas plus de 9 Mo pour ses scripts-CGI, le code HTML et les ic�nes. Voici comment faire.
Premi�rement, copiez en lieu sur le r�pertoire racine de votre serveur Web dans un autre endroit. Puis cr�ez les r�pertoires dans lesquels vous monterez les ramdisks:
mv /home/httpd/ /home/httpd_real mkdir /home/httpd mkdir /home/httpd/cgi-bin mkdir /home/httpd/html mkdir /home/httpd/icons
Puis, ajoutez ces commandes � la proc�dure de d�marrage dans votre fichier /etc/rc.d/init.d/httpd.init (ou n'importe o� le daemon httpd est lanc� sur votre syst�me):
# Initialise les Ramdisks /sbin/mkfs -t ext2 /dev/ram0 /sbin/mkfs -t ext2 /dev/ram1 /sbin/mkfs -t ext2 /dev/ram2 # Monte les Ramdisks aux emplacements appropri�s mount /dev/ram0 /home/httpd/cgi-bin mount /dev/ram1 /home/httpd/icons mount /dev/ram2 /home/httpd/html # Copie le contenu du r�pertoire r�el sur les ramdisks # (Les donn�es contenues sur les ramdisks seront perdues apr�s un reboot) tar -C /home/httpd_real -c . | tar -C /home/httpd -x # Apr�s cela, vous pouvez lancer le serveur web.
Notre ami cron
s'en chargerait avec plaisir. Programmez une v�rification toutes les 10 minutes, afin de voir si aucun fichier n'a subi de changements, et si tel est le cas, sauvegarder ces modifications. Une autre chose que vous pouvez faire �galement, est de faire les modifications dans le r�pertoire d'origine, et de transf�rer les nouveaux fichiers dans les disques virtuels. C'est une m�thode beaucoup plus s�re.
Site Web maintenu par l´équipe d´édition LinuxFocus
© Mark Nielsen LinuxFocus 1999 |
Translation information:
|
2000-01-28, generated by lfparser version 0.7