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.
mkdir /mnt/ramdisk0
mount /dev/ram0 /mnt/ramdisk0
df -k /dev/ram0 Sys. de fichiers 1K-blocs Utilisé Dispo. Uti% Monté sur /dev/ram0 63461 1289 58896 3% /mnt/ramdisk0
cp -R /var/www/[nom_du_site] /mnt/ramdisk0/
<VirtualHost 123.123.123.123:80> ServerAdmin webmaster@site.com ServerName site.com DocumentRoot /mnt/ramdisk0/[nom_du_site] </VirtualHost>
# service apache2 reload
rsync -avz /mnt/ramdisk0/ /home/[nom_utilisateur]/www_backup
crontab -u [nom_utilisateur] -e
*/1 * * * * rsync -avz /mnt/ram0/ /home/[nom_utilisateur]/www_backup
nano ramdisk.sh
# 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]"
# chmod +x ramdisk.sh # ln -s /home/cedric/ramdisk.sh /etc/rc2.d/ramdisk.sh
nano umount-ramdisk.sh
# 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]"
# 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