Bcache: differenze tra le versioni

Vai alla navigazione Vai alla ricerca
m
 
(Una versione intermedia di uno stesso utente non è mostrata)
Riga 2: Riga 2:


== Introduzione ==
== Introduzione ==
'''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.
'''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.<br/>
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'').
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 disco meccanico sono assolutamente marginali, o inesistenti, nel caso di IO sequenziale;
* questo tipo di strumento fu 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.).
Riga 13: Riga 13:


=== 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:
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 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.
* il controller SATA sia impostato su RAID nelle opzioni del [[firmware]] della scheda madre ([[BIOS]], [[UEFI]], ecc.) o del controller SATA aggiuntivo.


== Installazione ==
== Installazione ==


Serve il pacchetto <code>bcache-tools</code> disponibile da repository:
Serve il pacchetto <code>bcache-tools</code> disponibile da [[repository]]:
<pre># aptitude install bcache-tools</pre>
<pre># aptitude install bcache-tools</pre>


Riga 29: Riga 29:
* una sul disco solido che fungerà da cache, es. <code>sdx6</code>;
* una sul disco solido che fungerà da cache, es. <code>sdx6</code>;
* una su un disco meccanico per i dati veri e propri (tecnicamente chiamata di ''backup''), es. <code>sdy6</code>.
* una su un disco meccanico per i dati veri e propri (tecnicamente chiamata di ''backup''), es. <code>sdy6</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>
Riga 52: Riga 52:
# make-bcache -C /dev/sdx6
# make-bcache -C /dev/sdx6
</pre>
</pre>
Quando si trasformano le partizioni vengono stampate a video diverse informazioni; in particolare si prenda nota del valore <code>Set UUID</code> associato alla trasformazione della partizione di cache.
Quando si trasformano le partizioni vengono stampate a video diverse informazioni; in particolare si prenda nota del valore <code>Set UUID</code> associato alla trasformazione della partizione di cache.<br/>
Associare le partizioni di backup e caching col seguente comando:
Associare le partizioni di backup e caching col seguente comando:
<pre># echo CSET-UUID > /sys/block/bcache0/bcache/attach</pre>
<pre># echo CSET-UUID > /sys/block/bcache0/bcache/attach</pre>
Riga 65: Riga 65:
<pre>$ cat /sys/block/bcache0/bcache/state</pre>
<pre>$ cat /sys/block/bcache0/bcache/state</pre>
che dovrebbe restituire <code>clean</code>.
che dovrebbe restituire <code>clean</code>.
{{Warningbox|Se non è la prima volta che il volume <code>bcache0</code> viene creato è necessario pulirlo con <code>wipefs -a /dev/bcache0</code> prima di creare il nuovo filesystem, altrimenti si potrebbero avere errori in fase di montaggio dello stesso.}}
{{Warningbox|Se non è la prima volta che il volume <code>bcache0</code> viene creato è necessario pulirlo con <code>wipefs -a /dev/bcache0</code> prima di creare il nuovo file system, altrimenti si potrebbero avere errori in fase di montaggio dello stesso.}}
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>:
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>
<pre># echo writeback > /sys/block/bcache0/bcache/cache_mode</pre>


Riga 77: Riga 77:
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>
Riga 83: Riga 83:
:4. 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 restituire ora <code>no cache</code>
: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.
: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.


Riga 93: Riga 93:


Nel caso si abbia necessità di rivedere il partizionamento del disco contenente la partizione dati del volume bcache è necessario distruggere prima il volume bcache stesso, diversamente non sarà possibile modificare e/o eliminare la suddetta partizione dati.
Nel caso si abbia necessità di rivedere il partizionamento del disco contenente la partizione dati del volume bcache è necessario distruggere prima il volume bcache stesso, diversamente non sarà possibile modificare e/o eliminare la suddetta partizione dati.
{{Warningbox|La seguente procedura comporterà la perdita di tutti i dati memorizzati nel volume bcache}}
{{Warningbox|La seguente procedura comporterà la perdita di tutti i dati memorizzati nel volume bcache.}}
Posto che il volume bcache si chiami <code>bcache0</code>, che la partizione di cache sia <code>sdx6</code> e quella dati <code>sdy6</code> (usare il comando <code>bcache-super-show</code> per ottenere i riferimenti corretti), procedere come segue:
Posto che il volume bcache si chiami <code>bcache0</code>, che la partizione di cache sia <code>sdx6</code> e quella dati <code>sdy6</code> (usare il comando <code>bcache-super-show</code> per ottenere i riferimenti corretti), procedere come segue:
# eliminare la cache come descritto nella precedente sezione, ''Eliminazione cache'';
# eliminare la cache come descritto nella precedente sezione, ''Eliminazione cache'';
Riga 99: Riga 99:
# fermare il volume bcache con il seguente comando:
# fermare il volume bcache con il seguente comando:
: <pre># echo 1 > /sys/block/sdy/sdy1/bcache/stop</pre>
: <pre># echo 1 > /sys/block/sdy/sdy1/bcache/stop</pre>
# Eseguire il comando
# Eseguire il comando:
: <pre>$ cat /sys/block/bcache0/bcache/state</pre>
: <pre>$ cat /sys/block/bcache0/bcache/state</pre>
: se il risultato è ''cat: /sys/block/bcache0/bcache/state: File o directory non esistente'' allora il volume bcache è stato fermato correttamente e la partizione dati può essere modificata come di norma.
: se il risultato è ''cat: /sys/block/bcache0/bcache/state: File o directory non esistente'' allora il volume bcache è stato fermato correttamente e la partizione dati può essere modificata come di norma.
==== Pulire le partizioni ====
==== Pulire le partizioni ====
È probabile che la partizione di caching risulti ancora registrata a questo punto, quindi risulterà impossibile eliminarla con <code>wipefs</code> o semplicemente riutilizzarla per un nuovo volume bcache. Entrambe le operazioni infatti restituiranno probabilmente un errore contenente ''Device or resource busy''.
È probabile che la partizione di caching risulti ancora registrata a questo punto, quindi risulterà impossibile eliminarla con <code>wipefs</code> o semplicemente riutilizzarla per un nuovo volume bcache. Entrambe le operazioni infatti restituiranno probabilmente un errore contenente ''Device or resource busy''.<br/>
In tal caso
In tal caso:
<pre># cd /sys/fs/bcache/<cset.uuid></pre>
<pre># cd /sys/fs/bcache/<cset.uuid></pre>
dove al solito ''<cset.uuid>'' è l'identificativo del volume bcache appena fermato. Digitare
dove al solito ''<cset.uuid>'' è l'identificativo del volume bcache appena fermato. Digitare:
<pre># echo 1 > stop</pre>
<pre># echo 1 > stop</pre>
per annullare la registrazione delle partizioni e quindi pulirle:
per annullare la registrazione delle partizioni e quindi pulirle:
6 999

contributi

Menu di navigazione