Bcache: differenze tra le versioni

Vai alla navigazione Vai alla ricerca
1 926 byte aggiunti ,  10 dic 2016
(10 versioni intermedie di uno stesso utente non sono mostrate)
Riga 2: Riga 2:


== Introduzione ==
== Introduzione ==
'''bcache''' è uno strumento che permette di creare un volume dati costituito da due partizioni (nel caso domestico più comune): una contenente i dati veri e propri ed una che fungerà da cache per la prima.
'''bcache''' è uno strumento che permette di creare un volume dati costituito da più partizioni, di cui una che fungerà da cache per tutte le altre.
L'obiettivo è sfruttare un disco SSD per velocizzare l'accesso casuale ai dati di un tradizionale disco meccanico (''SSD caching'').
Il minimo numero di partizioni coinvolte è quindi pari a due, una di cache e una con i dati. L'obiettivo è sfruttare un disco SSD per velocizzare l'accesso casuale ai dati di un tradizionale disco meccanico (''SSD caching'').
Considerazioni:
Considerazioni:
* i benefici di una simile soluzione rispetto a quella del singolo discolo meccanico sono assolutamente marginali, o inesistenti, nel caso di IO sequenziale;
* i benefici di una simile soluzione rispetto a quella del singolo discolo meccanico sono assolutamente marginali, o inesistenti, nel caso di IO sequenziale;
* questo tipo di strumento viene concepito agli albori degli SSD, quando un disco a stato solido da 32 GB costava ancora un patrimonio.
* questo tipo di strumento fu concepito agli albori degli SSD, quando un disco a stato solido da 32 GB costava ancora un patrimonio.
In base a quanto scritto è evidente come oggi giorno l'SSD caching abbia praticamente perso di significato, almeno per quanto riguarda gli utenti comuni. È più semplice e performante la soluzione disco SSD più disco meccanico: sull'SSD si installa il sistema operativo e gli applicativi di uso più frequente, mentre sul disco meccanico i dati più voluminosi (film, musica, ecc.).
In base a quanto scritto è evidente come oggi giorno l'SSD caching abbia praticamente perso di significato, almeno per quanto riguarda gli utenti comuni. È più semplice e performante la soluzione disco SSD più disco meccanico: sull'SSD si installa il sistema operativo e gli applicativi di uso più frequente, mentre sul disco meccanico i dati più voluminosi (film, musica, ecc.).
Premesso questo, se si ha voglia di sperimentare vale la pena riservare 10-30 GB del proprio disco solido al caching dei dati di un disco meccanico. Non esagerare con lo spazio riservato perché tanto come già scritto l'utilizzo della cache sarà probabilmente minimo, visto che non ha alcun effetto sugli IO sequenziali.
Premesso questo, se si ha voglia di sperimentare vale la pena riservare 10-30 GB del proprio disco solido al caching dei dati di un disco meccanico. Non esagerare con lo spazio riservato perché tanto come già scritto l'utilizzo della cache sarà probabilmente minimo, visto che non ha alcun effetto sugli IO sequenziali.
{{Box|Nota|In questa guida non si tratta il caso di installazione su volume bcache, si suppone invece che l'installazione del sistema operativo sia stata fatta normalmente e che l'utente decida dopo l'installazione di creare un volume bcache.}}


=== Note su Windows ===
=== Note su Windows ===
Uno strumento simile per windows è costituito da "Rapid Storage Tecnology" di intel, che però non permette di usare lo stesso disco su cui è installato windows e inoltre richiede che il controller SATA sia impostato su RAID nelle opzioni del firmware della scheda madre (BIOS, UEFI, ecc.).
Uno strumento simile per windows è costituito da "Rapid Storage Tecnology" di intel, che però non permette di usare lo stesso disco su cui è installato windows e inoltre richiede che:
* il chipset della propria scheda madre (o del controller sata aggiuntivo) supporti tale tecnologia;
* il controller SATA sia impostato su RAID nelle opzioni del firmware della scheda madre (BIOS, UEFI, ecc.) o del controller sata aggiuntivo.


== Installazione ==
== Installazione ==
Riga 19: Riga 23:


== Configurazione ==
== Configurazione ==
{{Warningbox|Prima di proseguire è bene sapere che non è possibile "riconvertire in partizione semplice" una partizione dati usata per creare un volume bcache (o almeno non in modo semplice). Se si decide di rinunciare al caching è possibile eliminare la partizione di cache senza problemi (seguendo l'opportuna procedura), ma la partizione dati continuerà ad essere un volume bcache (anche se senza cache). L'unico modo semplice e sicuro per tornare ad avere "partizioni standard" è quello di fare un backup dei dati del volume e riformattare da capo le relative partizioni.}}


Creare due partizioni senza specificare alcun file system:
Creare due partizioni senza specificare alcun file system:
* una sul disco solido che fungerà da cache, es. <code>sda3</code>;
* una sul disco solido che fungerà da cache, es. <code>sda3</code>;
* una su un disco meccanico per i dati veri e propri (tecnicamente chiamata di ''backup''), es. <code>sdb1</code>.
* una su un disco meccanico per i dati veri e propri (tecnicamente chiamata di ''backup''), es. <code>sdb1</code>.
{{Box|Nota|Chi scrive non è sicuro che sia possibile convertire una partizione esistente in una utilizzabile da ''bcache'', pertanto l'intera guida si fonda sul presupposto che l'utente prima crei il volume ''bcache'' e poi proceda a popolarlo con i suoi dati}}
: {{Box|Nota|Chi scrive non è sicuro che sia possibile convertire una partizione esistente in una utilizzabile da ''bcache'', pertanto l'intera guida si fonda sul presupposto che l'utente prima crei il volume ''bcache'' e poi proceda a popolarlo con i suoi dati}}
Se necessario è possibile usare il comando <code>wipefs</code> per eliminare tutti i dati relativi al file system di una partizione ('''attenzione''' che contestualmente si perdono eventuali dati memorizzati su tale partizione):
Se necessario è possibile usare il comando <code>wipefs</code> per eliminare tutti i dati relativi al file system di una partizione ('''attenzione''' che contestualmente si perdono eventuali dati memorizzati su tale partizione):
<pre># wipefs -a /dev/sdXY</pre>
<pre># wipefs -a /dev/sdXY</pre>
Notare che nei comandi che seguiranno si indicherà il volume bcache come <code>bcache0</code>, ma nel caso l'utente abbia già più volumi bcache tale notazione dovrà essere modificata di conseguenza (usare <code>bcache1</code> se per esempio si possiede già un singolo volume bcache).
=== Modalità di caching ===
Esistono diverse modalità di caching, ma in questa guida si utilizza quella predefinita e più sicura, ovvero <code>writethrough</code>.<br/>
È possibile cambiare la modalità in uso dopo aver creato un volume bcache.


=== Creazione volume in un solo passo ===
=== Creazione volume in un solo passo ===
Riga 55: Riga 67:
A questo punto è possibile formattare e usare il volume <code>bcache0</code> come qualsiasi altro dispositivo. Per esempio per formattarlo in ext4:
A questo punto è possibile formattare e usare il volume <code>bcache0</code> come qualsiasi altro dispositivo. Per esempio per formattarlo in ext4:
<pre>mkfs.ext4 /dev/bcache0</pre>
<pre>mkfs.ext4 /dev/bcache0</pre>
Se lo si desidera è anche possibile cambiare la modalità di caching, per esempio per passare da quella più sicura <code>writethrough</code> a quella più performante  <code>writeback</code>:
<pre># echo writeback > /sys/block/bcache0/bcache/cache_mode</pre>


== Gestione ==
== Gestione ==
Riga 61: Riga 75:


Nel caso si abbia necessità di cambiare la partizione di cache procedere come segue:
Nel caso si abbia necessità di cambiare la partizione di cache procedere come segue:
* se possibile fare un backup dei dati presenti sul volume ''bcache'';
# se possibile fare un backup dei dati presenti sul volume ''bcache'';
* assicurarsi che il volume ''bcache'' non sia in uso, per esempio smontandolo del tutto.
# assicurarsi che il volume ''bcache'' non sia in uso, per esempio smontandolo del tutto.
* distaccare la cache esistente col seguente comando:
# distaccare la cache esistente col seguente comando:
: <pre>echo CSET-UUID > /sys/block/bcache0/bcache/detach</pre>
: <pre>echo CSET-UUID > /sys/block/bcache0/bcache/detach</pre>
: dove il valore ''CSET-UUID'' è ricavabile con il comando <code>bcache-super-show</code> come mostrato nel paragrafo dedicato alla creazione del volume in più passi. Al solito sostituire nel precedente comando il volume bcache corretto se diverso da <code>bcache0</code> (<code>bcache1</code> o quello che è).
: dove il valore ''CSET-UUID'' è ricavabile con il comando <code>bcache-super-show</code> come mostrato nel paragrafo dedicato alla creazione del volume in più passi. Al solito sostituire nel precedente comando il volume bcache corretto se diverso da <code>bcache0</code> (<code>bcache1</code> o quello che è).
* il comando:
:4. il comando:
: <pre>cat /sys/block/bcache0/bcache/state</pre>
: <pre>cat /sys/block/bcache0/bcache/state</pre>
: dovrebbe resituire ora <code>no cache</code>
: dovrebbe resituire ora <code>no cache</code>
* creare una nuova partizione di cache ed associarla al volume dati esistente come descritto nel paragrafo dedicato alla creazione del volume in più passi.
:5. creare una nuova partizione di cache ed associarla al volume dati esistente come descritto nel paragrafo dedicato alla creazione del volume in più passi.
 
=== Eliminazione cache ===
 
Stessa procedura descritta nella sezione ''Sostituzione cache'', ma omettendo il punto 5.


== Approfondimenti ==
== Approfondimenti ==
2 894

contributi

Menu di navigazione