Meccanismo blksnap proposto per la creazione di istantanee di dispositivi a blocchi in Linux

Veeam, azienda che produce software di backup e disaster recovery, ha proposto il modulo blksnap da includere nel kernel Linux, che implementa un meccanismo per creare istantanee dei dispositivi a blocchi e tenere traccia delle modifiche nei dispositivi a blocchi. Per lavorare con le istantanee, sono state preparate l'utilità della riga di comando blksnap e la libreria blksnap.so, che consente di interagire con il modulo del kernel tramite chiamate ioctl dallo spazio utente.

Lo scopo della creazione del modulo è organizzare i backup di unità e dischi virtuali senza interrompere il lavoro: il modulo consente di registrare in un'istantanea lo stato corrente dell'intero dispositivo a blocchi, fornendo una sezione isolata per il backup che non dipende dalle modifiche in corso . Una caratteristica importante di blksnap è la capacità di creare contemporaneamente istantanee per più dispositivi a blocchi, il che consente non solo di garantire l'integrità dei dati a livello di dispositivo a blocchi, ma anche di ottenere coerenza nello stato dei diversi dispositivi a blocchi nella copia di backup.

Per tenere traccia delle modifiche, il sottosistema dei dispositivi a blocchi (bdev) ha aggiunto la possibilità di allegare filtri che consentono di intercettare le richieste I/O. blksnap implementa un filtro che intercetta le richieste di scrittura, legge il vecchio valore e lo memorizza in un elenco di modifiche separato che definisce lo stato dello snapshot. Con questo approccio, la logica di lavoro con un dispositivo a blocchi non cambia; la registrazione nel dispositivo a blocchi originale viene eseguita così com'è, indipendentemente dalle istantanee, il che elimina la possibilità di corruzione dei dati ed evita problemi anche se si verificano errori critici imprevedibili in blksnap e lo spazio assegnato per le modifiche è pieno.

Il modulo consente inoltre di determinare quali blocchi sono stati modificati nel periodo di tempo tra l'ultimo e qualsiasi precedente snapshot, il che può essere utile per implementare backup incrementali. Per salvare le modifiche relative allo stato dell'istantanea, è possibile allocare un intervallo arbitrario di settori su qualsiasi dispositivo a blocchi, consentendo di salvare le modifiche in file separati all'interno del file system sui dispositivi a blocchi. La dimensione dell'area di memorizzazione delle modifiche può essere aumentata in qualsiasi momento, anche dopo aver creato uno snapshot.

Blksnap si basa sul codice del modulo veeamsnap incluso nel prodotto Veeam Agent for Linux, ma riprogettato per tenere conto delle specifiche di consegna nel kernel Linux principale. La differenza concettuale tra blksnap e veeamsnap è l'uso di un sistema di filtri collegato al dispositivo a blocchi, invece di un componente bdevfilter separato che intercetta l'I/O.

Fonte: opennet.ru

Aggiungi un commento