Limite pratico sul numero di istantanee di btrfs?


23

Sto pensando di utilizzare btrfs sul mio disco dati in modo da poter usare snapper , o qualcosa come snapper, per prendere istantanee basate sul tempo. Credo che questo mi permetterà di sfogliare le vecchie versioni dei miei dati. Questo sarebbe in aggiunta al mio attuale backup off-site poiché un guasto all'unità cancellerebbe i dati e le istantanee.

Da quanto ho capito, le istantanee di btrfs non occupano molto spazio (metadati e blocchi che sono cambiati, più forse un certo sovraccarico), quindi lo spazio non sembra essere un vincolo.

Se avessi un milione di istantanee (ad esempio, un'istantanea ogni minuto per due anni) ciò causerebbe il caos, supponendo che ho abbastanza spazio su disco per i dati, i dati modificati e i metadati?

Se esiste un limite pratico al numero di istantanee, dipende dal numero di file e / o dalla dimensione dei file?

Risposte:


16

Come qualcuno che usa un btrfsfilesystem da Arch Linuxquasi 2anni ormai posso tranquillamente affermare che non sembra esserci un limite pratico al numero di istantanee che possono essere facilmente raggiunte. Ci sono alcuni avvertimenti però. btrfsil filesystem può portare alla frammentazione. È quindi consigliabile utilizzare la funzione di deframmentazione online integrata btrfs. Inoltre, si può fare buon uso della btrfsfunzione di compressione. Queste misure dovrebbero occuparsi della maggior parte dei problemi di prestazioni che potrebbero sorgere sensibilmente su un computer ragionevolmente decente dalla creazione di molte istantanee.

Come forse saprai btrfstratta i sottovolumi come filesystem e quindi il numero di snapshot è davvero limitato: vale a dire dalla dimensione dei file. Secondo il btrfswiki, la dimensione massima del file che può essere raggiunta è 2^64 byte == 16 EiB[1] .

A parte queste limitazioni, possono sempre esserci problemi quando si esaurisce lo spazio senza riconoscerlo immediatamente perché il controllo dello spazio libero sui btrfsfilesystem a volte può essere complicato, vale a dire senza essere in grado di distinguere tra diversi metodi di misurazione dello spazio libero su un btrfsfilesystem usa facilmente la traccia di quale quantità di spazio è effettivamente rimasta. Un modo possibile per prevenire questo scenario è l'uso della quota. Ciò garantisce che gli utenti (o l'utente, se è solo uno), possono utilizzare solo una determinata quantità di spazio. Questo concetto è discusso molto abilmente qui e anche qui .

Ultimo ma non meno importante un avvertimento: non sono un esperto di btrfsfilesystem e ho letto di queste cose solo quando avevo la stessa domanda qualche tempo fa. Inoltre, c'è sempre il problema che btrfsè un "obiettivo in rapido movimento" ( Arch Linuxcredo che una bella frase venga rubata da una pagina wiki), quindi le cose potrebbero cambiare.


1
Sono anche uno di quelli che hanno adottato in precedenza, e questo è eccezionale.
Mikeserv,

Sì, praticamente :)
Mark K Cowan,

1
Dovresti provare a rimanere al di sotto di 100 istantanee su un volume BTRFS. Altrimenti potresti riscontrare problemi di prestazioni, in particolare sull'eliminazione di istantanee. La creazione di snapshot è a basso costo, ma non eliminarla. Si noti inoltre che la raccomandazione di eseguire la deframmentazione insieme all'utilizzo di snapshot eliminerà l'efficienza dello spazio di snapshot. La deframmentazione interrompe i riflessi e moltiplica lo spazio utilizzato.
MountainX per Monica Cellio,

@MountainX puoi approfondire questo in una risposta. 100 istantanee su un volume non sono nemmeno una a settimana per due anni.
StrongBad,

@StrongBad: ho ricevuto tali informazioni dalla mailing list di BTRFS in risposta a un problema. Tutti concordarono sul fatto che è una cattiva idea avere molte centinaia o migliaia di istantanee. Per una risposta più tecnica, dovresti chiedere sulla mailing list di BTRFS.
MountainX per Monica Cellio

5

Sebbene tecnicamente non vi siano limiti al numero di istantanee, ho chiesto alla mailing list di BTRFS :

La risposta (pratica) dipende in una certa misura da come usi btrfs.

Btrfs ha problemi di ridimensionamento a causa di troppe istantanee (o in realtà le istantanee dei reflink usano, il dedup utilizzando i reflink può innescare gli stessi problemi di ridimensionamento) e la doppia cifra da singola a bassa delle istantanee per sottovolume di istantanee rimane la forte raccomandazione per questo motivo.

Ma i problemi di ridimensionamento riguardano principalmente i comandi di manutenzione di btrfs, bilanciamento, controllo, eliminazione del volume secondario. Mentre milioni di istantanee renderanno il bilancio, ad esempio, effettivamente non realizzabile (funzionerà in qualche modo ma potrebbe richiedere mesi), le normali operazioni del filesystem come la lettura e il salvataggio dei file non tendono a essere influenzate, tranne nella misura in cui la frammentazione diventa un problema ( i file system di mucca come btrfs sono noti per la frammentazione, a meno che non vengano prese misure come la deframmentazione per ridurla).

Sembra che l'utilizzo di snapshot come backup di archivio simile a time machine / snapper non sia una buona idea.


Time Machine non è un backup di archivio, è un backup. Non condivido le tue conclusioni. L'uso degli snapshot di btrfs può essere un'ottima idea per i backup di Time Machine come i backup (poiché il kernel Linux non è in grado di collegare una directory, causando così di ricreare la struttura di directory completa per ogni snap, che può causare un notevole utilizzo dello spazio su disco). Per un backup su un singolo dispositivo di backup, senza voler aggiungere altri dispositivi, non c'è nemmeno uno scopo nell'esecuzione di un comando di bilanciamento. La risposta alla lista btrfs cerca anche di spiegare questo.
Pro Backup

@ProBackup, la risposta dell'elenco btrfs dice che mantenere il numero di istantanee a cifre da dubbio singole a basse che il valore predefinito dell'arch per lo snapper non fa davvero. Mentre btrfs-balance non è necessario per una semplice configurazione, a molti utenti piace l'idea di btrfs-check, anche se non ne hanno mai bisogno, e sottovolume delete sembra fondamentale se si desidera ruotare i sottovolumi come fa lo snapper.
StrongBad

Il backup di archivio @ProBackup non è probabilmente il termine giusto per Time Machine. Sembra che la macchina del tempo sia più di un semplice backup incrementale, ma non mi sentivo a mio agio nel definirlo un backup basato su snapshot come snapper o rsnapshot, ma forse sarebbe meglio. Felice per te di modificare il termine in quanto sembra che tu sappia molto sul campo.
StrongBad

Da quello che ho letto sulla homepage di snapper, snapper non è uno strumento di backup. Nonostante lo snapper possa tornare indietro nel tempo, non significa che sia come Time Machine. La differenza essenziale è che Time Machine archivia le copie di tutti i dati su un supporto separato, in cui lo snapper potrebbe persino non crearne una copia.
Pro Backup

@ProBackup, infine, scrivi una risposta e spiega perché le mie conclusioni sulla risposta nella mailing list sono errate. In questo modo possiamo vedere come si sente la comunità.
StrongBad

3

Puoi avere un totale combinato di 2 64 istantanee e sottovolumi.

La btrfspagina wiki di design dice (empahsis mine):

I sottovolumi sono fondamentalmente un btree denominato che contiene file e directory. Hanno inode all'interno dell'albero delle radici dell'albero e possono avere proprietari e gruppi non root. Ai sottovolumi può essere assegnata una quota di blocchi e una volta raggiunta questa quota non sono consentite nuove scritture. Tutti i blocchi e le estensioni di file all'interno dei volumi secondari vengono contati per consentire lo snapshot. Sull'FS possono essere creati fino a 2 64 sottovolumi.

Le istantanee sono identiche ai sottovolumi , ma il loro blocco radice è inizialmente condiviso con un altro sottovolume. Quando viene acquisita l'istantanea, il conteggio dei riferimenti sul blocco radice viene aumentato e la copia sul sistema di transazione in scrittura garantisce che le modifiche apportate all'istantanea o al volume secondario della sorgente siano private per quella radice. Le istantanee sono scrivibili e possono essere nuovamente visualizzate in qualsiasi numero di volte. Se si desiderano solo snapshot di sola lettura, la loro quota di blocco è impostata su una al momento della creazione.

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.