>>Anyways, we want a backup solution which does not depend on specific storage 
>>festures. 
Yes, sure, I agree with that ! (I was just a comment ;)

>>We only copy old data once before overwritten. Subsequent writes do not 
>>impact 
>>backup. 
Oh, ok, great !

>>- mirror copies new data 
>>- backup copies old data (before new data is written). 

ok,So we have a backup of the state of disk at the time of the backup start ? 
Do you keep some blocks maps in memory ? (if yes, what is the memory usage with 
big volume?)


>>This can slow down writes. But I guess this is not that bad (currently, we 
>>run 
>>out of snapshot space if storage is slow) 
>>
>>> (with snapshot, we can backup slowly, new writes are only going to vm 
>>> storage). 
>>
>>if you backup slowly, you need much space for snapshots. 

Yes, this is space vs speed.
I have in mind some high database load, like 5000iops or more, so it need a 
fast backup storage in this case.
I the vm does random io, does the backup storage write blocks sequentially ?
 (if yes, maybe it can be fast with a slow random io backup storage but with 
high sequential throughput)

----- Mail original ----- 

De: "Dietmar Maurer" <[email protected]> 
À: "Alexandre DERUMIER" <[email protected]> 
Cc: [email protected] 
Envoyé: Mardi 13 Novembre 2012 17:50:40 
Objet: RE: [pve-devel] [PATCH 1/4] RFC: Efficient VM backup for qemu 

> >>+Another approch to backup VM images is to create a new qcow2 image 
> >>+which use the old image as base. During backup, writes are redirected 
> >>+to the new image, so the old image represents a 'snapshot'. After 
> >>+backup, data need to be copied back from new image into the old one 
> >>+(commit). So a simple write during backup triggers the following 
> >>+steps: 
> >>+ 
> >>+1.) write new data to new image (VM write) 
> >>+2.) read data from old image (backup) 
> >>+3.) write data from old image into tar file (backup) 
> >>+ 
> >>+4.) read data from new image (commit) 
> >>+5.) write data to old image (commit) 
> >>+ 
> >>+This is in fact the same overhead as before. Other tools like qemu 
> >>+livebackup produces similar overhead (2 reads, 3 writes). 
> >>+ 
> 
> This is not true with all storages snapshots. 

I talk about "create a new qcow2 image which use the old image as base". 
like described in: http://wiki.qemu.org/Features/Snapshots2 

> rbd,sheepdog,nexenta by example ("internal snapshots), you don't need to 
> do step 4) 5) (merging the snapshot in base image). 

Sure, but I do not talk about that at all. 

> deleting the snapshot only delete references(so it's fast). 

I also thought that it is fast, but it is slow in reality (see qcow2 snapshots 
on large files). 

Anyways, we want a backup solution which does not depend on specific storage 
festures. 

> 
> >> 
> >>+The be more efficient, we simply need to avoid unnecessary steps. The 
> >>+following steps are always required: 
> >>+ 
> >>+1.) read old data before it gets overwritten 
> >>+2.) write that data into the backup archive 
> >>+3.) write new data (VM write) 
> >>+ 
> >>+As you can see, this involves only one read, an two writes. 
> >>+ 
> >>+To make that work, our backup archive need to be able to store image 
> >>+data 'out of order'. It is important to notice that this will not work 
> >>+with traditional archive formats like tar. 
> >>+ 
> >>+During backup we simply intercept writes, then read existing data and 
> >>+store that directly into the archive. After that we can continue the 
> >>+write. 
> >>+ 
> 
> So this is some kind of mirroring ? is this very different from new qemu 1.3 
> live disk mirroring ? 

- mirror copies new data 
- backup copies old data (before new data is written). 

> Any impact with high write vm load ? (backup never finish because of too 
> many writes ?) 

We only copy old data once before overwritten. Subsequent writes do not impact 
backup. 

We are up to 3 times faster than LVM snapshots ;-) 

> One disavantage of this: 
> 
> what happen if you backup storage is slow (or slower than your vm storage 
> ?) 
> Can't it impact write speed during the backup? 

This can slow down writes. But I guess this is not that bad (currently, we run 
out of snapshot space if storage is slow) 

> (with snapshot, we can backup slowly, new writes are only going to vm 
> storage). 

if you backup slowly, you need much space for snapshots. 

Anyways, in future, we can try to merge the snapshot and backup frameworks (it 
is 
designed for that - although I currently do not think we need it) 

- Dietmar 
_______________________________________________
pve-devel mailing list
[email protected]
http://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel

Reply via email to