Istantanee LVM come strategia di backup


17

Quanto fattibile come strategia di backup sarebbero le istantanee periodiche LVM di xen domU? Pro, contro, qualche problema?

A me sembra la soluzione perfetta per un ripristino rapido e senza cervello. Qualsiasi indagine potrebbe aver luogo sul volume logico rotto con domU eseguito correttamente senza interruzioni.

MODIFICARE:

Ecco dove sono ora, quando eseguo backup di sistema completi.

  • istantanea lvm del disco domU
  • un nuovo volume logico la cui dimensione è uguale alla dimensione dell'istantanea.
  • dd if = / dev / snapshot di = / dev / new_lv
  • eliminazione dell'istantanea con lvremove
  • verifica facoltativa con kpartx / mount / ls

Ora devo automatizzare questo.

Risposte:


32

Le istantanee LVM hanno lo scopo di catturare il filesystem in uno stato congelato. Non sono pensati per essere un backup in sé e per sé. Sono tuttavia utili per ottenere immagini di backup coerenti perché l'immagine bloccata non può e non cambierà durante il processo di backup. Pertanto, anche se non li utilizzerai direttamente per eseguire backup a lungo termine, saranno di grande valore in qualsiasi processo di backup che decidi di utilizzare.

Ci sono alcuni passaggi per implementare un'istantanea. Il primo è che è necessario allocare un nuovo volume logico. Lo scopo di questo volume è di fornire un'area in cui sono registrati delta (modifiche) al filesystem. Ciò consente al volume originale di continuare senza interrompere l'accesso in lettura / scrittura esistente. L'aspetto negativo di questo è che l'area dell'istantanea è di dimensioni finite, il che significa che su un sistema con scritture occupate, può riempirsi piuttosto rapidamente. Per i volumi con attività di scrittura significative, è necessario aumentare le dimensioni dell'istantanea per consentire spazio sufficiente per la registrazione di tutte le modifiche. Se l'istantanea trabocca (si riempie) entrambe le istantanee si interromperanno e saranno contrassegnate come inutilizzabili. In tal caso, dovrai rilasciare la tua istantanea in modo da poter ripristinare il volume originale online. Una volta completata la versione,

La seconda cosa che succede è che LVM ora "scambia" i veri scopi dei volumi in questione. Penseresti che l'istantanea appena allocata sarebbe il posto dove cercare eventuali modifiche al filesystem, dopo tutto, è dove stanno andando tutte le scritture, giusto? No, è il contrario. I filesystem sono montati su nomi di volumi LVM , quindi scambiare il nome da sotto il resto del sistema sarebbe un no-no (perché lo snapshot usa un nome diverso ). Quindi la soluzione qui è semplice: quando accedi al nome del volume originale, continuerà a fare riferimento alla versione live (lettura / scrittura) del volume di cui hai eseguito l'istantanea. Il volume dell'istantanea creato si riferirà al congelato(sola lettura) versione del volume di cui si desidera eseguire il backup. All'inizio un po 'confuso, ma avrà senso.

Tutto ciò avviene in meno di 2 secondi. Il resto del sistema non se ne accorge nemmeno. A meno che, ovviamente, non si rilasci l'istantanea prima che trabocchi ...

Ad un certo punto vorrai rilasciare la tua istantanea per recuperare lo spazio che occupa. Una volta completato il rilascio, il volume dell'istantanea viene rilasciato nuovamente nel volume e l'originale rimane.

Non consiglio di perseguire questo come strategia di backup a lungo termine. Stai ancora ospitando dati sulla stessa unità fisica che può fallire e il ripristino del tuo filesystem da un'unità guasta non è affatto un backup.

Quindi, in breve:

  • Le istantanee sono utili per supportare i backup
  • Le istantanee non sono di per sé una forma di backup
  • Le istantanee non durano per sempre
  • Un'istantanea completa non è una buona cosa
  • Le istantanee devono essere rilasciate ad un certo punto
  • LVM è tuo amico, se lo usi saggiamente.

4
Anche le prestazioni dell'istantanea LVM peggiorano in modo lineare - 8 istantanee 8 volte l'IO.
Steven,

9
Ci sono alcuni punti nella descrizione che ritengo errati. Nelle attuali versioni di LVM, se un'istantanea diventa piena, è semplicemente contrassegnata come inutilizzabile e deve essere eliminata. L'I / O sul dispositivo non viene arrestato. In secondo luogo, quando si elimina un'istantanea, nessun dato viene copiato nel volume originale. In sostanza, quando si scrive nel volume live, i blocchi originali vengono prima copiati nell'istantanea, quindi i blocchi live vengono aggiornati. Quindi quando si rilascia l'istantanea, è solo una questione di rimuovere la voce dal mapper del dispositivo. Nessuna copia richiesta.
Kamil Kisiel,

2
Nell'interesse della completezza, Kamil Kisiel ha ragione. Vedi: tldp.org/HOWTO/LVM-HOWTO/snapshotintro.html
ktower

1
Dopo aver lamentato molto me stesso per essere stato male informato, la risposta è stata modificata sulla base di molteplici fonti di documentazione e discussione. Mi dispiace gente, mia cattiva.
Avery Payne,

10

Le istantanee LVM sono fantastiche per poter eseguire il backup del server senza metterlo offline. Come affermato, le istantanee LVM sono copie quasi istantanee. Li crei usando il lvcreatecomando proprio come faresti per creare il LV stesso, solo gli dai l' --snapshotopzione e il LV originale invece del VG. Per esempio:

lvcreate -L <LV size> -s -n <snapshot name> /dev/<VG name>/<LV name>

Ciò creerà un'istantanea dell'LV specificato con il nome dell'istantanea specificato che è quindi possibile montare e utilizzare questo LV dell'istantanea per eseguire il backup senza preoccuparsi dei file utilizzati attivamente. Ciò è particolarmente utile se si sta tentando di eseguire il backup di un server di database attivo.

Dopo aver terminato il backup dall'istantanea, è necessario rimuoverla per ridurre eventuali sovraccarichi I / O aggiuntivi o altri problemi di prestazioni, come altri hanno già detto utilizzando:

lvremove /dev/<VG name>/<snapshot name>

Sebbene le snapshot LVM possano essere preziose nella produzione di un backup affidabile di sistemi come database e tali che normalmente si desidera arrestare il backup per evitare contese di file, non sono ideali per operazioni a lungo termine come ripristino rapido.


9

Non è una buona idea, IMO.

Le istantanee sono implementate in modo copia su scrittura in modo da trasformare ogni scrittura in una lettura e due scritture (il blocco a cui si sta aggiornando viene prima letto dal volume principale e memorizzato nel volume dell'istantanea prima che vengano inseriti i nuovi dati il suo posto), quindi vedrai un certo peggioramento delle prestazioni se nelle macchine virtuali è comune scrivere molto.

Inoltre, IIRC, se il volume dell'istantanea si riempie, viene semplicemente lasciato cadere senza tante cerimonie. Questo non è buono per scopi di backup! Quindi, se lo provi come metodo di backup, assicurati di rendere il volume dell'istantanea abbastanza grande da gestire tutte le modifiche che accadranno durante la vita utile dell'istantanea. Naturalmente, se si è a conoscenza e si monitora il problema delle dimensioni e il problema delle prestazioni non è un problema per te, ciò che suggerisci potrebbe essere un'utile aggiunta ad altri processi di backup che hai in atto.

Le istantanee LVM sono molto utili come parte di un processo di backup (scattare un'istantanea, eseguire il backup dell'istantanea altrove per garantire che il backup sia coerente senza dover disabilitare gli aggiornamenti del volume "reale", rilasciare successivamente l'istantanea), tra l'altro, ma non sono intesi come una funzione di backup da soli.


Forse non capisco come funzionano le istantanee. Il manuale afferma che un'istantanea è una copia quasi istantanea del volume logico, evitando la necessità di portare il sistema che lo utilizza offline. Dalla tua descrizione sembrerebbe che un'istantanea sia più un ramo, una replica, piuttosto che una copia congelata. Lo snapshot viene aggiornato con tutte le modifiche apportate al sistema originale dopo che è stato effettuato? In tal caso, devo rimuovere immediatamente i dati e distruggere lo snapshot, perché non è inteso come meccanismo di archiviazione per i backup? Grazie!
Karolis T.,

2
È una copia congelata del volume da cui è stata creata, ma contiene solo blocchi che sono stati modificati da quando è stata acquisita l'istantanea (quindi il volume dell'istantanea può essere molto più piccolo del volume di cui è un'istantanea). Se i blocchi vengono aggiornati nel volume live, il contenuto dei blocchi originali viene aggiunto alla memoria dell'istantanea, quindi quando si osserva l'istantanea LVM può servire i blocchi originali anziché quelli aggiornati.
David Spillett,

Ma se è cambiato (l'istantanea), da dove viene questo "congelato"? Diciamo che ho questo scenario, un sistema funzionante in qualche modo si corrompe nel tempo. Ne ho un'istantanea quando funzionava correttamente. L'istantanea sarà una rappresentazione del sistema mentre stava ancora funzionando correttamente o avrà le modifiche che hanno corrotto il sistema originale in primo luogo? Spero di essere abbastanza chiaro, voglio solo essere sicuro di capirlo davvero.
Karolis T.,

Per capire da dove proviene il congelato, renditi conto che ora hai due volumi separati: l'originale che contiene il filesystem attivo e l'istantanea, che modifica la versione congelata del filesystem. Vedi la mia risposta per maggiori dettagli.
Avery Payne,

1
La gente lo fa sembrare più complicato di quello che è. Lo snapshot memorizza lo stato del filesystem di origine come era quando è stato creato lo snapshot. Quando l'origine fs cambia, l'istantanea non cambia, consentendo di puntare il programma di backup in modo che legga dall'istantanea anziché dall'origine fs. Sì, una copia su scrittura avviene dietro le schermate, ma l'utente non se ne accorge se non per un ulteriore utilizzo di IO.
Martijn Heemels,

6

Sarà necessario assicurarsi che i dati sul disco siano in uno stato coerente prima di eseguire l'istantanea. ad esempio mysql può contenere nella cache dei dati che devono essere forzati su disco, scaricando il database o spegnendolo. Vedere i manuali delle applicazioni per i dettagli.


5

Sotto le cose intelligenti, LVMs è in realtà "solo" un trucco per mappare i dispositivi. Creare uno snapshot con lvcreate non è molto più di un wrapper per alcune cose di dmsetup. Il wrapper crea un nuovo dispositivo (il volume dell'istantanea) da un vecchio volume (l'originale LV) e uno nuovo (il volume copia su scrittura). Insieme a questo, LV originale viene rinominato in -real (vedi sotto, che è dmsetup ls --tree output). Questo LV reale è mappato sia al volume dell'istantanea che al volume originale, quindi può essere utilizzato in entrambe le posizioni. Il volume copy-on-write funziona come una sovrapposizione al LV reale. LV LV-ti mostra la combinazione del volume copy-on-write e del volume -real. Ciò crea effettivamente un certo sovraccarico di prestazioni.

Volume00-snap (253:11)
 |-Volume00-snap-cow (253:13)
 |  `- (104:2)
 `-Volume00-LogVol01-real (253:12)
    `- (104:2)

Volume00-LogVol01 (253:5)
 `-Volume00-LogVol01-real (253:12)
    `- (104:2)

Quando si rimuove l'istantanea, si verificano nuovamente alcuni rinominazione e mappatura. Successivamente, la situazione sarà di nuovo simile a qualcosa

Volume00-LogVol01 (253:5)
 `- (104:2)

Per quanto riguarda howfar questo è un buon metodo per eseguire il backup di roba: può essere, se si tiene conto che questo (1) non aiuterà per la RAM delle macchine virtuali, (2) creerà una penalità prestazionale e (3) sarà necessario per memorizzare le immagini dell'istantanea altrove.

VMware VCB funziona anche con le istantanee, anche se non LVM.


4

Anche se le istantanee non hanno avuto alcun impatto sulle prestazioni, devi capire: le istantanee non sono più un backup di una copia in un'altra cartella sullo stesso disco.

Se il disco frena, i dati e il backup andranno persi. Anche se si assegna l'area dell'istantanea a un altro PE nel VG, contiene solo i dati modificati dall'istantanea.

Il backup implica almeno una copia su un'unità completamente separata come requisito minimo.


Sì, lo capisco. RAID 1 è in atto per proteggere da guasti del dispositivo di archiviazione, backup in posizione remota - dalla corruzione del software. Sto considerando le istantanee LVM come uno strumento per un ripristino DAVVERO veloce quando non sai cosa è successo f e hai bisogno del sistema online ora. Altre opzioni, più veloci del ripristino di una domU da un backup LVM?
Karolis T.,

3

utilizzo una tale configurazione per le istantanee delle macchine server VMware e dei database mysql. funziona bene finora. c'erano un paio di restauri - tutti senza problemi. una cosa da considerare: durante l'esecuzione con l'istantanea lvm ottiene un notevole impatto sulle prestazioni per le operazioni di I / O. guarda qui . ignora il fatto che parlano di mysql, i / o ops sono i / o ops ... non importa quale tipo di dati si trovi su lvm.


1
aha. Sì, suppongo che l'istantanea verrà acquisita ed esportata sul server di archiviazione remoto. non lasciato sull'host locale.
pQd

2

Uso le istantanee di lvm solo per copiare DomU Lv un altro in un Vg separato, in cui ogni dominio ha tre "nodi" di backup a sua disposizione.

Successivamente, l'istantanea viene distrutta e i Lv di backup rimangono fino al round successivo. Se devo effettuare un ripristino, devo solo scegliere un Lv di origine dal backup Vg e copiarlo nel dominio Lv.

Di tanto in tanto, un Lv di backup viene scaricato in un file di immagine su un server separato.

Tutto questo è automatizzato tramite script, con un backup ogni due giorni e un dump ogni settimana.

Avevo anche in mente una modalità "panico", in cui il dominio Lv sarebbe stato ripristinato ma eseguito da un'istantanea e reimpostato ogni 2 ore, per mantenere il sito online in caso di gravi attacchi, fino a quando non fosse stata organizzata una difesa adeguata .


1

Che ne è stata dell'idea di difesa "panic mode"?

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.