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!

mercoledì 15 febbraio 2017

Liberacus v3.0 - il programma gestionale per sartorie ha un nuovo database SQLite

Ho rilasciato oggi la versione v3.0 di Liberacus, il software gestionale per sartorie.
La peculiarità di questo aggiornamento è la transizione della gestione dei dati dal formato XML ad un database SQLite 3.



Spendo due parole per spiegare cosa è cambiato per chi non conosce SQLite ed i database in generale.



Prima Liberacus caricava interamente i dati da alcuni file XML, lavorava sugli stessi mantenendoli in memoria per poi salvarli sul disco.
Questo metodo può essere valido per un piccolo numero di dati e comporta comunque il rischio di perdere i dati in memoria se qualcosa va storto, come ad esempio un blackout improvviso.
Un altro problema di questo approccio è che se il numero dei dati diventa elevato, il tempo di caricamento dai file e di salvataggio su disco diventa elevato.

Ora, utilizzando il database SQLite, Liberacus non ha più bisogno di caricare tutti i dati in memoria, ma prenderà dal database, di volta in volta, solo quelli che gli serviranno al momento.
Ad ogni modifica o inserimento di nuovi dati, questi verranno salvati direttamente sul database nel disco. Il rischio di perdere i dati a causa di un blackout è estremamente ridotto.
I tempi di caricamento e salvataggio sono praticamente azzerati anche in presenza di un numero elevato di dati.

Liberacus è un software libero ed open source, siete liberi di scaricarlo, installarlo ed utilizzarlo a piacimento.
Vi ricordo che Liberacus è sviluppato per girare su qualsiasi distribuzione GNU/Linux, non è multi-piattaforma, quindi non chiedetemi come installarlo su Windows o su Mac.

Potete scaricare l'ultima versione da questo link.