În distribuțiile Linux există două sisteme de fișiere care permit crearea unui sistem de fișiere bazat pe o parte din memoria RAM și care poate fi montat și folosit ca un director normal, putând scrie sau citi ca de pe orice partiție obișnuită. Dar, din moment ce scrierea/citirea se face direct din RAM, viteza va fi mai mare, chiar de câteva ori mai mare decât a unui SSD normal.
Ce este un RAM disk?
În principiu, un sistem de fișiere bazat pe memoria RAM este ceva care creează un spațiu de stocare în memorie ca și cum ar fi o partiție pe un disk - se numește RAM disk. Trebuie reținut că, memoria RAM fiind volatilă, datele se pierd în momentul restartării sistemului sau după un crash.
Beneficiul cel mai important al RAM disk-urilor este viteza - chiar de peste 10 ori mai rapide decât al SSD-urilor. Aceste tipuri de stocare foarte rapidă sunt ideale pentru aplicațiile care au nevoie de viteză și de accesare rapidă a cache-ului. Repet: datele scrise în acest tip de sistem de fișiere NU sunt persistente, așa că trebuie avut permanent în vedere că se pierd la reboot - nici măcar un backup nu le poate restaura.
ramfs versus tmpfs
Cele două sisteme de fișiere bazate pe memoria RAM sunt ramfs și tmpfs. ramfs este o versiune mai veche și a fost înlocuită mai peste tot de tmpfs. În principiu, cele două sisteme de fișiere fac același lucru, cu câteva diferențe relativ minore:
- ramfs crește dinamic - ceea ce înseamnă că trebuie să ne asigurăm că datele scrise nu vor depăși memoria fizică a sistemului. Să presupunem că avem un sistem cu 8 GB RAM și am creat un sistem de fișiere ramfs de 4 GB montat în /mnt/ram. Când dimensiunea totală a datelor scrise aici ajunge la 4 GB, putem continua să scriem date în acest loc - sistemul nu se va opri din scrierea datelor atunci când ajunge la 4GB. Oricum, când va ajunge la 8GB (memoria fizică maximă), sistemul se poate bloca deoarece nu mai există spațiu în RAM pentru a ține date;
- tmpfs nu crește dinamic - nu va fi permis pe acest tip de sistem de fișiere să scriem o cantitate de date mai mare decât dimensiunea specificată la montarea sa. Astfel, nu trebuie să ne îngijorăm că vom rămâne fără memorie RAM în sistem - singura eroare pe care o putem primi este cea care ne anunță că nu mai există spațiu pe disk;
- tmpfs folosește memoria swap - în cazul în care sistemul ajunge fără memorie RAM (din alte motive decât existența partiției tmpfs), fișierele din partiția tmpfs vor fi scrise și în memoria swap (în cazul în care aceasta există) și vor fi citite de pe disk atunci când sunt accesate, ca orice date care folosesc swap;
- ramfs nu folosește memoria swap.
Având în vedere că aceste 2 sisteme de fișiere sunt volatile, trebuie să facem salvări periodice pe disk dacă vrem să păstrăm anumite date procesate aici.
Crearea și montarea tmpfs
Fiind cel mai folosit sistem de fișiere bazat pe RAM din prezent, exemplul pe care îl voi da se va referi strict la tmpfs (montarea ramfs se va face în același mod).
- facem un director (punct de montare) pentru viitorul tmpfs
# mkdir /mnt/tmp
- montăm efectiv o parte din memoria RAM (1 GB în exemplul de mai jos) în punctul de montare de mai sus folosind comanda
mount
(mount -t [TYPE] -o size=[SIZE] [FSTYPE] [MOUNTPOINT]):
# mount -t tmpfs -o size=1G tmpfs /mnt/tmp
- dăm comanda
findmnt
(saumount
) pentru a vedea toate punctele de montare din sistem:# findmnt
/mnt/tmp tmpfs tmpfs rw,relatime,seclabel,size=1048576k - cu comanda
df -h
putem afla mai multe informații despre această partiție:# df -h /mnt/tmp
Filesystem Size Used Avail Use% Mounted on tmpfs 1.0G 0 1.0G 0% /mnt/tmp
Din acest moment putem începe să scriem și să citim fișiere de pe această nouă partiție.
Sistemul de fișiere tmpfs se poate monta automat la boot adăugând o intrare în fișierul /etc/fstab de forma exemplului de mai jos:
tmpfs /mnt/tmp tmpfs nodev,nosuid,noexec,nodiratime,size=1024M 0 0
Simion a zis
De așa cea am m-ai auzit, numai că cum facem
să utilizăm această partitie cu programele din ecosistemul gnu/linux , cum ar fi gimp, blender...
Mulțumesc anticipat.
Bobses a zis
După cum am zis, o partiție de genul ăsta nu poate fi utilizată ca o partiție normală, pentru simplul motiv că fișierele scrise pe ea se pierd după un reboot sau un crash al sistemului.