martedì 21 febbraio 2017

Come creare una RAM disk


Una RAM disk è una porzione della RAM di sistema che viene utilizzata come fosse un disco o un'unità di archiviazione.
Il grande vantaggio è la sua estrema velocità, di molto superiore anche al più veloce SSD in commercio. Il suo punto debole è invece la volatilità dei dati, se il computer si spegne o si riavvia, tutti i file contenuti in essa andranno persi.
Prima di creare una RAM disk, controlliamo la quantità di spazio disponibile in memoria con il comando free. Questo comando mostra il totale della memoria RAM a disposizione, lo spazio attualmente in uso e quello libero. Oltre alla RAM di sistema viene visualizzato anche lo spazio della partizione Swap se presente.

Il comando df invece mostra la quantità di spazio disponibile sulle unità di archiviazione montate.
Sul nostro sistema GNU/Linux abbiamo due diversi tipi di file system da utilizzare come RAM disk:
ramfs è il vecchio tipo di file system in memoria, ormai soppiantato da tmpfs, ed è lo stesso utilizzato da Linux come cache del file system. Ogni volta che avviene l'accesso ad un file sul disco, questo viene memorizzato in una cache in memoria così che, se dopo poco tempo viene richiesto di nuovo, sarà caricato velocemente dalla RAM.
La memoria utilizzata da ramfs è visualizzata dal comando free alla voce cached, mentre non viene visualizzato dal comando df. Inoltre non è possibile sapere la grandezza di ramfs, ne è possibile porre un limite massimo alla sua dimensione. ramfs continuerà a richiedere memoria fin quando il sistema si bloccherà a causa di un errore di out of memory.
tmpfs invece è un file system recente e risolve gran parte dei problemi di ramfs. E' possibile specificare la grandezza massima di tmpfs, se si tenta di occupare uno spazio maggiore otterremo un errore di disco esaurito, proprio come una partizione di un disco. Inoltre è possibile visualizzare tmpfs con il comando df insieme agli altri dischi e sapere quanto spazio c'è a disposizione. Questi vantaggi rendono tmpfs decisamente più gestibile di ramfs, ma c'è un unico lato negativo; se il sistema si trova a corto di RAM, i dati contenuti in tmpfs potrebbero essere scritti sulla partizione di Swap sul disco.

Creiamo una directory che utilizzeremo come punto di mount per la nostra RAM disk.

$ mkdir /mnt/ramdisk

Ora creiamo la RAM disk con il comando mount utilizzando la seguente sintassi:
mount -t [tipo] -o size=[dimensione] [tipo file system] [punto di mount]

Ad esempio creiamo una RAM disk di tipo tmpfs di 512 MB utilizzando come punto di mount la directory ramdisk posta in /mnt

# mount -t tmpfs -o size=512m tmpfs /mnt/ramdisk

Ricordatevi che per usare il comando mount dovete avere i privilegi di amministratore, per farlo potete anteporre “sudo” o utilizzare il comando “su” per eseguire mount come super utente.

Se volete avere una RAM disk sempre disponibile ad ogni avvio del sistema potete aggiungere la sua creazione nel file fstab.

Aprite fstab con l'editor nano (o qualsiasi altro editor di vostro gradimento)

# nano /etc/fstab

Ora aggiungete una riga come questa

tmpfs /mnt/ramdisk tmpfs nodev,nosuid,noexec,nodiratime,size=512M 0 0

Salvate e riavviate e troverete la vostra RAM disk già montata e pronta per l'utilizzo.

Non dimenticate che ogni file al suo interno, al riavvio del sistema, andrà perso!