Come rinominare un sottovolume BTRFS?


24

Ho un filesystem BTRFS con una serie di sottovolumi in esso. Fin qui tutto bene. Devo cambiare il nome di un sottovolume, sfortunatamente il btrfsprogramma non mi permette di rinominare un sottovolume. La ricerca con Google ha prodotto alcuni risultati, uno ha detto che posso solo mv, l'altro ha detto che posso solo snapshotun nuovo nome ed eliminare il sottovolume precedente. Prima di interrompere la mia partizione e doverla ricaricare dal backup (è piuttosto grande), la mia domanda è:

  • Qual è il modo migliore attualmente per rinominare un sottovolume?
  • Va bene solo mvo invaliderà alcune strutture interne?
  • Fare una nuova istantanea e rimuovere il vecchio sottovolume è la strada da percorrere, o ha alcuni svantaggi?

So che tutto è ancora sperimentale, ma per i miei scopi ha funzionato abbastanza bene (finora, e ho backup incrementali per ogni giorno).


1
felice di sentire che btrfs sta funzionando bene per te. Finora funziona bene anche per me. Nessun problema.
MountainX per Monica Cellio,

Risposte:


16

Proprio mvcosì Questo è il modo consigliato nella documentazione della comunità Ubuntu .

E per chiarire ulteriormente perché questo è il modo giusto per farlo, ecco una citazione dalla guida sysadmin di btrfs:

istantanee

Un'istantanea è semplicemente un volume secondario che condivide i suoi dati (e metadati) con alcuni altri volumi secondari, utilizzando le funzionalità COW di btrfs. Una volta creata un'istantanea [scrivibile], non vi è alcuna differenza di stato tra il sottovolume originale e il nuovo sottovolume di istantanee. Per tornare a un'istantanea, smontare il volume secondario originale modificato e montare l'istantanea al suo posto. A questo punto, il volume secondario originale può essere eliminato se lo si desidera. Poiché un'istantanea è un volume secondario, sono anche possibili istantanee di istantanee.


8

ci sono alcune cose importanti da notare. I nomi:

Sottovolume btrfs - insidefile system contenitore dati indipendente . È rappresentato come directory dell'FS esistente. Se si crea un nuovo volume secondario, sarà vuoto, pronto per l'uso del blocco dati logico all'interno del filesystem. Molto comodo da usare laddove i dati debbano essere logicamente separati, ad esempio macchine virtuali diverse o client diversi su volumi secondari diversi. Ciò consente la very fastrimozione di tutti i blocchi logici di dati con il comando Elimina volume secondario.

btrfs Snapshot - una copia del existingvolume secondario con tutti i suoi dati al momento dell'istantanea del sistema operativo. Può essere utilizzato come backup operativo per ripristinare le impostazioni o le modifiche, ad es. Creare un'istantanea di sottovolume, apportare modifiche (VM o dati), verificare se tutto è a posto, dopo un certo periodo di tolleranza rimuovere l'istantanea. Importante da notare: le istantanee possono essere di sola lettura ( -rswitch) e quindi possono essere utilizzate come blocchi incrementali di modifiche FS e possibilmente trasferite in un altro BTRFS!

Limitazioni BTRFS attuali (30-12-2016):

La copia o lo spostamento di dati tra sottovolumi, ad es. mv dir1/dataset1 dir_subvolume1/Produce tutto il vero io per copiare i dati in un altro sottovolume e in caso di spostamento, rimuovendo da quello originale. E una copia molto efficiente di tonnellate di dati semplicemente facendo riferimenti e quindi utilizzando la funzione COW di BTRFS:

cp -a --reflink=always dir1/dataset1 dir_subvolume1/

e se necessario:

rm -rf dir1/dataset1

Sola lettura L'istantanea sottovolume può essere rinominata (spostata con mv) a livello di directory esistente, ma non può essere rinominata / spostata a livello di sottodirectory differente. ad esempio mv /btrfs/subvol_snap1 /btrfs/.snaphotsnon è possibile, non produce molti errori spiegato: mv: cannot move 'subvol_snap1' to '.snapshots/subvol_snap1': Read-only file system. Per poter spostare tale istantanea, è necessario creare una nuova istantanea di sola lettura dell'istantanea di sola lettura esistente nella nuova posizione preferita, quindi rimuovere quella precedente:

btrfs sub snap -r /btrfs/subvol_snap1 /btrfs/.snaphots/subvol_snap1
btrfs sub del /btrfs/subvol_snap1

Solo per una vita più facile:

btrfs sub list /btrfs

Spero che questo farà risparmiare un sacco di tempo a tutti i nuovi fan di btrfs :)


4

Se si desidera rinominare il volume principale in un sottovolume nidificato, è necessario eseguirne uno snapshot e quindi eseguire una operazione find $ROOT_VOL -xdev -deleteper rimuovere il contenuto precedente del volume principale. La manipolazione inversa (rinominare un volume secondario nel volume principale) non sembra possibile.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.