Linux Optimiser
Ramdisk
Tutoriel avec exemple et script d'automatisation



Pour : Linux


Ce tutoriel va vous montrer comment faire et monter un ramdisk.
Puis on vous montrera un exemple concret d'utilisation d'un ramdisk ainsi que la manière d'automatiser la sauvagarde des fichiers sur le disque.
On finira par des scripts pour automatiser l'exécution d'un ramdisk au démarrage et pour synchroniser les fichiers lors d'un arrêt ou d'un redémarrage du serveur.

Pour rappel un ramdisk est un espace de la mémoire vive (RAM) où l'on monte un répertoire dans le but d'y mêttre des fichiers pour qu'il soit le plus rapidement joignable.



Création d'un ramdisk

On va créer disque de 60Mo en comptant le système de fichiers (65536 Octets = 65 Mo), pour celà on va formater "/dev/ram0" au format ext2 avec une taille de 65536 octets:

mke2fs /dev/ram0 65536 mke2fs 1.41.14 (22-Dec-2010) Étiquette de système de fichiers= Type de système d'exploitation : Linux Taille de bloc=1024 (log=0) Taille de fragment=1024 (log=0) « Stride » = 0 blocs, « Stripe width » = 0 blocs 16384 i-noeuds, 65536 blocs 3276 blocs (5.00%) réservés pour le super utilisateur Premier bloc de données=1 Nombre maximum de blocs du système de fichiers=67108864 8 groupes de blocs 8192 blocs par groupe, 8192 fragments par groupe 2048 i-noeuds par groupe Superblocs de secours stockés sur les blocs : 8193, 24577, 40961, 57345 Écriture des tables d'i-noeuds : complété Écriture des superblocs et de l'information de comptabilité du système de fichiers : complété Le système de fichiers sera automatiquement vérifié tous les 29 montages ou après 180 jours, selon la première éventualité. Utiliser tune2fs -c ou -i pour écraser la valeur.



Maintenant on va créer le répertoire qui va servir de point de montage:

mkdir /mnt/ramdisk0



Et là on monte le ramdisk:

mount /dev/ram0 /mnt/ramdisk0



On peut vérifier la taille du ramdisk avec cette commande:

df -k /dev/ram0 Sys. de fichiers 1K-blocs Utilisé Dispo. Uti% Monté sur /dev/ram0 63461 1289 58896 3% /mnt/ramdisk0





Configurer Apache2 pour faire fonctionner un site web dans le ramdisk

Voici un exemple concret sur l'utiisation d'un ramdisk, par exemple si vous voulez faire tourner un site web dans le ramdisk.
Pour celà copiez le contenu du site sur le ramdisk, exemple:

cp -R /var/www/[nom_du_site] /mnt/ramdisk0/



Après modifiez le fichier de configuration du vhost du site pour changer le répertoire racine à la ligne "DocumentRoot".

<VirtualHost 123.123.123.123:80> ServerAdmin webmaster@site.com ServerName site.com DocumentRoot /mnt/ramdisk0/[nom_du_site] </VirtualHost>



Puis rechargez les données du serveur apache2 :

# service apache2 reload





Automatiser la sauvegarde des fichiers contenu dans le ramdisk

Vu que ces donnée ne sont pas sauvegarder sur le disque, on va utiliser la commande "sync" pour synchroniser les données en ramdisk sur un emplacement de sauvegarde situé sur le disque dur local par exemple.

rsync -avz /mnt/ramdisk0/ /home/[nom_utilisateur]/www_backup



Et on va automatiser cette tache par exemple toutes les minutes grace a l'outil "cron".
On ouvre cron avec la commande:

crontab -u [nom_utilisateur] -e


PS: Si vous utilisez un utilisateur autre que le root, pensez à vérifier les droits de cette utilisateur sur le répertoire cible et source.

Puis rajouter cette ligne tout en bas du fichier:

*/1 * * * * rsync -avz /mnt/ram0/ /home/[nom_utilisateur]/www_backup





Script pour exécuter un ramdisk au démarrage

Voici par exemple un script que l'on va nommer "ramdisk.sh" pour recréer, monter et copier des fichiers vers le ramdisk :

nano ramdisk.sh



Voici le contenu du script:

# Création du ramdisk mke2fs /dev/ram0 65536 mkdir /mnt/ramdisk0 mount /dev/ram0 /mnt/ramdisk0 # Copie du site web vers le ramdisk cp -R /home/cedric/www_backup/[nom_site_web] /mnt/ramdisk0/ echo "Ramdisk0 [Ok]"



PS: Noubliez pas de remplacer [nom_site_web] par votre site internet.

On va rendre le script exécutable et faire un lien symbolique dans le répertoire "/etc/rc2.d/" pour le lancer au démarrage du système.

# chmod +x ramdisk.sh # ln -s /home/cedric/ramdisk.sh /etc/rc2.d/ramdisk.sh





Script pour sauvegarder les données du ramdisk avant l'arrêt

Maintenant on va créer un script que l'on va appeller "umount-ramdisk.sh"pour synchroniser les données juste avant un arrêt ou un redémarrage du serveur.

nano umount-ramdisk.sh



Voici le contenu du script:

# Synchronise les données puis démonte le ramdisk rsync -avz /mnt/ram0/ /home/cedric/www_backup/ umount /mnt/ramdisk0 echo "Ramdisk0 démonté [Ok]"



On va rendre le script exécutable et faire un lien symbolique dans le répertoire "/etc/rc0.d/" et "/etc/rc3.d/" pour le lancer a l'arret ou au redémarrage du système.

# chmod +x umount-ramdisk.sh # ln -s /home/cedric/ramdisk.sh /etc/rc0.d/umount-ramdisk.sh # ln -s /home/cedric/ramdisk.sh /etc/rc6.d/umount-ramdisk.sh





Par O.Cédric
Sur www.octetmalin.net

Article publié le:
10/03/2012 23:39





Cette page vous à plus?

Dîtes que vous l'aimez en cliquant sur le bouton Facebook.