Il existe deux types de systèmes de fichiers intégrés dans la plupart des distributions Linux modernes qui vous permettent de créer une zone de stockage basée sur la mémoire RAM qui peut être montée et utilisée en liant un dossier normal.
Un Ramdisk donc un disque virtuel qui simule un espace de stockage en utilisant directement la mémoire matériel.
Avant d’utiliser ce type de système de fichiers, vous devez comprendre les avantages et les problèmes du système de fichiers mémoire en général, ainsi que les deux types différents. Les deux types de systèmes de fichiers de disques RAM sont TMPFS et les RAMFS et chaque type a ses propres forces et faiblesses.

Table des matières
Qu’est-ce qu’un disque RAM ?
Un système de fichiers basé sur la mémoire est quelque chose qui crée une zone de stockage directement dans la mémoire RAM du PC comme s’il s’agissait d’une partition sur un lecteur de disque. Comme la RAM est un type de mémoire volatile, ce qui signifie que lorsque le système est redémarré ou plant en cas de système de fichiers est perdu avec toutes ses données.
Le principal avantage des systèmes de fichiers basés sur la mémoire est qu’ils sont très rapides – 10s de fois plus rapides que les SSD modernes. Les performances de lecture et d’écriture sont considérablement augmentées pour tous les types de charge de travail. Ces types de zones de stockage rapides sont parfaitement adaptés aux applications qui ont besoin de petites zones de données répétitives pour la mise en cache ou l’utilisation d’espace temporaire. Au fur et à mesure que les données sont perdues lorsque la machine redémarre, les données ne doivent pas être précieuses car même la planification des sauvegardes ne peut garantir que toutes les données seront reproduites dans le crash du système uniforme.
Dans cet article, nous allons surtout parler de tmpfs et ramfs disponible sur Linux mais il existe d’autres types de disque RAM.
Par exemple, Linux utilise initial RAM disk (initrd) qui est un système de fichiers racine initial qui est monté au démarrage du système lorsque le système de fichiers racine réel est indisponible.
Le noyau Linux utilise initrd pour effectuer deux étapes : charger les modules pour rendre les systèmes de fichiers réels disponibles et obtenir le système de fichiers racine réel.
tmpfs VS ramfs
Les deux principaux types de systèmes de fichiers basés sur RAM dans Linux sont TMPFS et RAMFS.
RAMFS est l’ancien type de système de fichiers et est largement remplacé dans la plupart des scénarios par TMPFS.
ramfs
RAMFS crée un système de fichiers dans la mémoire qui utilise le même mécanisme et le même espace de stockage que le cache du système de fichiers Linux.
L’exécution de la commande free sur linux vous montre la quantité de RAM que vous avez sur votre système, y compris la quantité de cache du système de fichiers utilisées. Ci-dessous est un exemple de 31 Go de RAM dans un serveur de production.
Les systèmes de fichiers RAMFS ne peuvent pas être limités en taille comme un système de fichiers de base de disque. RAMFS continuera à utiliser le stockage de la mémoire jusqu’à ce que le système soit à court de RAM, ce qui peut provoquer des blocages du système.
Il s’agit d’un problème si l’application écrivant dans le système de fichiers ne peut pas être limitée en taille totale.
De plus les disques ramfs n’apparaissent pas avec la commande df.
Par exemple ci-dessous, on créé un disque RAM de 4Mo mais le fichier créé monte à 16 Mo.
De plus, on ne voit pas le disque dans la sortie DF :
Toutefois si le ramdisk est formaté en ext2, ext3 ou ext4, il apparaît dans la sortie de la commande DF.
La limite de taille est aussi respectée.
tmpfs
tmpfs est pris en charge par le noyau Linux de la version 2.4, plus récent, il sumonte de nombreux inconvénients avec RAMFS.
tmpfs (également connu sous le nom de shmfs) est basé sur le code RAMFS et est utilisé pendant le démarrage et utilise également le cache de page, mais contrairement à RAMFS, il prend en charge la limite de taille.
Vous pouvez spécifier une limite de taille dans les TMPF qui donnera une erreur de «disque complète» lorsque la limite sera atteinte. Ce comportement est exactement le même qu’une partition d’un disque physique.
Si votre système est à court de RAM physique, les fichiers de vos partitions TMPFS peuvent être écrits dans des partitions d’échange (partition SWAP) et devront être lus à partir du disque lorsque le fichier sera consulté.
Dans certains environnements, cela peut être considéré comme un avantage car vous êtes moins susceptible de sortir des exceptions de la mémoire comme vous le pouvez avec RAMFS car plus de «mémoire» est disponible.
Notez que certains distributions Linux comme Ubuntu utilise déjà tmpfs par défaut.
Par exemple les partitions systèmes sont montées dans un disque mémoire :
mpfs 2,1G 0 2,1G 0% /dev/shm tmpfs 5,3M 4,1k 5,3M 1% /run/lock tmpfs 2,1G 0 2,1G 0% /sys/fs/cgroup tmpfs 408M 25k 408M 1% /run/user/1000
Liens
- Les partitions de disque sur Linux
- NTFS, EXT4 : les systèmes de fichiers Windows et Linux
- Inode dans Linux : qu’est-ce que c’est et comment les afficher
- fstab Linux : fonctionnement, structure et exemples
- mount et fstab : monter des partitions de disques ou NFS, CIFS sur Linux
- Comment vérifier l’espace disque avec la commande DF et DU sur Linux
- mkfs : formater et créer un système de fichiers (ext4, NTFS, FAT) sur Linux
- La commande lsblk : utilisations et exemples
- fdisk/gfdisk : Créer, supprimer, redimensionner des partitions de disque en ligne de commandes sur Linux
- cfdisk : Créer, supprimer, redimensionner des partitions de disque en ligne de commandes sur Linux
- GParted : redimensionner (agrandir/réduire) une partition de disque
- Comment créer un disque RAM tmpfs ou ramfs sur Linux
- Monter un partage Windows sous Linux avec Samba