Newsgroup: it.comp.os.linux.sys
Titolo: Macchine virtuali e backup

Ciao a tutti.
 
 
Ho un server di virtualizzazione con Debian - qemu-kvm 
 
Le macchine virtuali risiedono su volumi creati con lvm sul server stesso.
 
Per fare i backup, ogni notte un cron sull'host:
 
   - spegne le macchine virtuali
   - crea uno snapshot di ogni volume
   - riaccende le macchine virtuali
   - monta gli snapshot sul filesystem dell'host
   - esegue un tar su nastro del tutto
   - smonta gli snapshot
   - cancella gli snapshot
   - rilegge il tape come precauzione
 
Il tutto funziona egregiamente ed e' veloce.
 
 
Si pone il problema di fare un ulteriare backup a mezzogiorno, non potendo
spegnere le macchine virtuali, ho fatto condividere da esse via NFS i 
filesystem dei dati e qundi alle 12:30 l'host:
 
   - monta via NFS i filesystem delle macchine virtuali
   - esegue un tar su nastro del tutto
   - smonta i filesystem
   - rilegge il tape come precauzione
 
Dato che, per questo backup, e' sufficente la consitenza dei dati dal punto 
di vista del filesystem e non è importante dal punto di vista 
dell'applicativo, anche questo backup è ok
 
Il problema è che è decisamente più lento dell'altro visto che passa sia 
attraverso NFS che attraverso la rete TCP.
Da notare che l'host usa una sk di rete mentre le macchine virtuali ne usano 
un'altra.
 
 
In conclusione ho due domande:
 
   1) Sarebbe possibile creare una lan virtuale VDE e usare quella per l'NFS
      tra host e guests, otterrei un miglioramento significativo 
      della velocita' ?
 
   2) Esistono sistemi migliori, escludendo appositi sw di backup free
      o a pagamento che siano ?
 
 
 
 
-- 
Stefano L.
 
3987^12  +  4365^12  =  4472^12

    - crea uno snapshot di ogni volume
 
tu devi fare lo snapshot a server acceso. Punto. 
Non si fa il backup a server acceso perché il contenuto dei file cambia, 
ma uno snapshot non cambia. 
 
Ma se vogliamo approfondire la questione, secondo me un backup delle 
macchine non è una operazione utilissima e farlo due volte al giorno mi 
pare uno spreco di tempo e di risorse (rete, cpu, media per la 
memorizzazione). 
ociciorne i server si preferisce configurarli con un "configuration 
management system" (puppet, chef) e si fa solo il backup dei dati. 
 
Tuttavia mi rendo conto che quando quando la server farm è piccola il 
gioco non vale la candela. In questo caso potresti provare ad usare 
strumenti tipo etckeepet con git remoto, o altri tool simili. 
 
 
 
 
-- 
Massimiliano Adamo

 Le macchine virtuali risiedono su volumi creati con lvm sul server stesso.
 
Consiglio spassionato: sposta le macchine dai volumi LVM a file qcow2, sono 
molto piu` flessibili e gestibili
 
Enrico

 sono molto piu` flessibili e gestibili
 
Non l'ho mai fatto, mi studio la cosa, grazie.
 
Ma risolverebbe il mio problema ?
 
Cosi facendo cambia qualcosa per quanto riguarda le prestazioni della 
macchina virtuale in se ?
 
meglio, peggio, indifferente ?



Con qcow2 è possibile usare xfsdump?
Quale è il miglior filesystem come base per i file qcow2?

 Ma risolverebbe il mio problema ?
 
non credo... 
infatti lui non lo ha scritto, ma ti ha scritto "e' piu' gestibile".

 Quale è il miglior filesystem come base per i file qcow2?
 
Io uso XFS, ma perche` sono affezionato a questo file system :)
In teoria non dovrebbero esserci molte differenze perche` stai lavorando su 
file grossi, in pratica XFS dovrebbe essere piu` ottimizzato (sicuramente lo 
e` nella gestione di directory con centinaia di migliaia di files)
 
Enrico

 macchina virtuale in se ?
 
Non credo. Da quello che ho visto le prestazioni di esecuzione della machina 
virtuale sono simili, sia che si tratti di un volume LVM, sia che si tratti 
di un file qcow2
 
Enrico

 e` nella gestione di directory con centinaia di migliaia di files)
 
 
Dai benchmark che ho letto fra ext3, ext4 e xfs non ci sono grosse differenze. 
Mentre è assolutamente sconsigliato BTRFS.
Mi piacerebbe avere il tempo di fare dei test più approfonditi e provare anche altri filesystem tipo ZFSonLinux e ReiserFS.
 
 

 teoria, potresti fare il backup della macchina a caldo 
 
e in cosa consiste la differenza di uno snapshot a caldo fatto LVM?
Farai in entrambi lo snapshot di file aperti, di pid e amenità varie. 
 
 
 
-- 
Massimiliano Adamo

 anche altri filesystem tipo ZFSonLinux e ReiserFS
 
ReiserFS non saprei dirti, ZFS ha prestazioni pessime
 
Enrico

 Farai in entrambi lo snapshot di file aperti, di pid e amenità varie.
 
No, nel secondo caso, almeno da documentazione di qcow2, i file aperti e i 
pid vengono gestiti a caldo
 
Enrico


ma anche no secondo me: non c'è nulla di così magico in nessuno dei casi :)
Parlando di VMware: 
The virtual machine power and data states are returned to the states they 
were in at the time you took the parent snapshot.
 
sottolineo "power and state".
Ovvero, se hai fatto lo snapshot di un server acceso, quando ripristini lo 
snapshot, otterrai un server acceso, con l'orologio fermo al momento dello 
snapshot, e con gli stessi file aperti, e con gli stessi pid file... 
magari temporaneamente disconnesso dalla rete. 
 
Ergo, funziona alla stessa identica maniera di uno snapshot LVM. 
Quindi, male che va ti crasha e allora lo farai ripartire...
 
Ma tornando al discorso di prima: non è cosi che si fanno i backup. 
Se non si usa puppet è male, ma non si fanno due backup al giorno :)
il backup a caldo di MySQL si fa con innobackupex. La configurazione di un 
application server la si può salvare a caldo... eccetera eccetera...
 
 
Io con puppet ti migro un gridgain di 10 nodi da un datacenter all'altro 
in sole 2 ore. 
 
Adesso dimmi tu quanto ci vuole a fare il backup e restore di 10 nodi da 
un datacenter all'altro... fossero anche degli snapshot, CHE DOVRAI 
RICONFIGURARE, perché devi cambiare host e IP e se con vmware, fino a 
certe versioni, era possibile cambiare nomi/ip dei guest red hat, dubito 
che la stessa cosa sia possibile anche con qcow2. 
 
-- 
Massimiliano Adamo

 il problema di essere ritenuto ancora in sviluppo
 
http://www.linux-kvm.org/page/Tuning_KVM
 
"Don't use the linux filesystem btrfs on the host for the image files. It will result in low IO performance. The kvm guest may even freeze when high IO traffic is done on the guest."
 

 Don't use the linux filesystem btrfs on the host for the image files.
 
Intendevo in generale, e non specifico per la virtualizzazione, anche se la 
frase "It will result in low IO performance" mi fa pensare che sia una 
pagina datata
 
Enrico