Bcache: differenze tra le versioni

Vai alla navigazione Vai alla ricerca
(9 versioni intermedie di uno stesso utente non sono mostrate)
Riga 27: Riga 27:


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>sdx6</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>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):
Riga 42: Riga 42:


È possibile creare il volume <code>bcache0</code> in un solo passo col seguente comando:
È possibile creare il volume <code>bcache0</code> in un solo passo col seguente comando:
<pre># make-bcache -B /dev/sdb1 -C /dev/sda3</pre>
<pre># make-bcache -B /dev/sdy6 -C /dev/sdx6</pre>
Nel caso si voglia associare una cache a più partizioni di backup è sufficiente indicare tali partizioni una di seguito all'altra subito dopo l'opzione <code>-B</code>
Nel caso si voglia associare una cache a più partizioni di backup è sufficiente indicare tali partizioni una di seguito all'altra subito dopo l'opzione <code>-B</code>


Riga 49: Riga 49:
Molto semplicemente si trasformano individualmente le partizioni di backup e caching e poi si associano le une alle altre:
Molto semplicemente si trasformano individualmente le partizioni di backup e caching e poi si associano le une alle altre:
<pre>
<pre>
# make-bcache -B /dev/sdb1<br/>
# make-bcache -B /dev/sdy6<br/>
# make-bcache -C /dev/sda3
# 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.
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>
dove "CSET-UUID" non è nient'altro che il valore <code>Set UUID</code> della partizione di cache. Chiaramente se esistono già altri volumi ''bcache'' sarà necessario modificare il precedente comando sostituendo <code>bcache0</code> con il volume corretto (<code>bcache1</code> o quello che è).<br/>
dove "CSET-UUID" non è nient'altro che il valore <code>Set UUID</code> della partizione di cache. Chiaramente se esistono già altri volumi ''bcache'' sarà necessario modificare il precedente comando sostituendo <code>bcache0</code> con il volume corretto (<code>bcache1</code> o quello che è).<br/>
Nel caso si sia perso il valore <code>Set UUID</code> dovrebbe essere possibile recuperarlo col comando:
Nel caso si sia perso il valore <code>Set UUID</code> dovrebbe essere possibile recuperarlo col comando:
<pre>bcache-super-show /dev/sda3</pre>
<pre>$ bcache-super-show /dev/sdx6</pre>
dove si ricorda che <code>/dev/sda3</code> è la partizione di caching ai fini di questa guida (il valore da segnare è <code>Set UUID</code> non semplicemente <code>UUID</code> o <code>dev.uuid</code>).
dove si ricorda che <code>/dev/sdx6</code> è la partizione di caching ai fini di questa guida (il valore da segnare è <code>Set UUID</code> non semplicemente <code>UUID</code> o <code>dev.uuid</code>).


=== Utilizzo volume ===
=== Utilizzo volume ===


Testare lo stato del volume col seguente comando:
Testare lo stato del volume col seguente comando:
<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.}}
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 78: Riga 79:
# 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 è).
: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 resituire 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 97: Riga 98:
# smontare la partizione dati del volume bcache se ancora non lo si è fatto;
# smontare la partizione dati del volume bcache se ancora non lo si è fatto;
# 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.
==== Liberare la partizione di caching ====
==== 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''.
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.
dove al solito ''<cset.uuid>'' è l'identificativo del volume bcache appena fermato. Digitare
<pre>echo 1 > stop</pre>
<pre># echo 1 > stop</pre>
A questo punto dovrebbe essere possibile gestire la partizione come di norma
per annullare la registrazione delle partizioni e quindi pulirle:
{{Box|Nota|Se si vuole ricreare un volume bcache è possibile che il comando che permette di creare ed attaccare volume dati e cache fallisca, creando solo la cache. In tal caso dovrebbe essere sufficiente creare il volume dati e poi attaccarlo seguendo la procedura manuale.}}
<pre>
# wipefs -a /dev/sdx6
/dev/sdx6: 16 bytes were erased at offset 0x00001018 (bcache): c6 85 73 f6 4e 1a 45 ca 82 65 f5 7f 48 ba 6d 81
# wipefs -a /dev/sdy6
/dev/sdy6: 16 bytes were erased at offset 0x00001018 (bcache): c6 85 73 f6 4e 1a 45 ca 82 65 f5 7f 48 ba 6d 81
</pre>
A questo punto il volume <code>bcache0</code> dovrebbe essere scomparso da <code>/dev/</code> e la directory <code>/sys/fs/bcache/</code> dovrebbe risultare inesistente (eventualmente provare a riavviare il PC).<br>
È ora possibile configurare normalmente le partizioni pulite, compreso riutilizzarle per creare un nuovo volume bcache (dopo averle ridimensionate per esempio).


== Approfondimenti ==
== Approfondimenti ==
2 853

contributi

Menu di navigazione