Re: [libvirt-users] Recover snapshots from qcow images

2019-09-06 Thread Petr Stodulka
On 14. 08. 19 13:27, Peter Krempa wrote:
> On Tue, Aug 13, 2019 at 15:15:11 +0200, Petr Stodulka wrote:
>> Hi guys,
>> I had to move to the new laptop week ago and I screw migration of my virtual
>> machines. I recovered my virtual machines on the new laptop (virsh define)
>> using the backed up xml files, but I am missing any file with metadata about
>> snapshots. The original storage is cleaned so I cannot take these files
>> anymore.
>>
>> Using qemu-info I can see my snapshots inside the qcow images, but libvirt
>> doesn't know about them:
>> ###
>> # virsh snapshot-list rhlvm
>>  Name   Creation Time   State
>> ---
>>
>> # qemu-img info rhlvm.qcow2
>> image: rhlvm.qcow2
>> file format: qcow2
>> virtual size: 25G (26843545600 bytes)
>> disk size: 2.9G
>> cluster_size: 65536
>> Snapshot list:
>> IDTAG VM SIZEDATE   VM CLOCK
>> 1 prepared  0 2018-09-05 11:06:06   00:00:00.000
>> Format specific information:
>> compat: 1.1
>> lazy refcounts: true
>> refcount bits: 16
>> corrupt: false
>>
>>
>> ###
>>
>> Is there any nice way to regenerate snapshot metadata for libvirt from
>> the data inside qcow images? I have bunch of VMs so if there is nice way
>> how to recover those data, you will make me really happy :)
> 
> Hi,
> 
> libvirt unfortunately does not support metadata-less snapshots so you
> must recreate the metadata to be able to use them. If you didn't modify
> your configuration of the VM between the time you took the snapshot and
> the current point it should be fairly straightforward to recover them,
> but it will require some manual steps.
> 
> The snapshot creation api has a _REDEFINE flag which allows to create
> the snapshot metadata without actually doing any disk changes. (virsh
> snapshot-create --redefine).
> 
> For this to happen you must prepare a definition of the snapshot. I'll
> provide an example with anotations what to update:
> 
> 
>   1565701354   <--- this must be equal to the 'TAG' field in the 
> qemu-img output
>   running<--- state of the VM at snapshot, you'll probably 
> need to use shutoff as the VM was not running
>   1565701354  <--- convert the "DATE" field to a 
> unix timestamp
> <- your snapshot is internal so this is 
> ok
>   
>   <--- entries here depend on your 
> configuration, you need one line per disk, readonly disks must have 'no' as 
> snapshot, others are internal
> 
> 
> 
>   
>  <--- this is the domain definition XML obtained by 
> running a virsh dumpxml --migratable --inactive --security-info
> upstream
> 841752b8-9452-4078-a62b-8fd9a9af011c
> 
>[...] (trimmed irrelevant stuff but make sure to use full XML)
> 
> 
>   
> /home/pipo/git/qemu.git/x86_64-softmmu/qemu-system-x86_64
>   
> 
> 
> 
> 
> 
> 
> 
>   
>  < these conform to the table 
> above
> 
> 
> 
>  function='0x0'/>
>   
>   
> 
> 
> 
>  function='0x0'/>
>   
>   
> 
> 
> 
>  function='0x0'/>
>   
> 
>[...]
> 
>   
>   
>   
> 
> 
> 
> Use a document which you create with:
> 
> virsh snapshot-create $VMNAME --redefine --current
> 
> Use --current only for the most recent snapshot.
> 

Thanks! It works as you wrote. All my snapshots are recovered.

-- 
Petr Stodulka
Core Services (In-place upgrades and migrations)
Red Hat

___
libvirt-users mailing list
libvirt-users@redhat.com
https://www.redhat.com/mailman/listinfo/libvirt-users


Re: [libvirt-users] Recover snapshots from qcow images

2019-08-14 Thread Peter Krempa
On Tue, Aug 13, 2019 at 15:15:11 +0200, Petr Stodulka wrote:
> Hi guys,
> I had to move to the new laptop week ago and I screw migration of my virtual
> machines. I recovered my virtual machines on the new laptop (virsh define)
> using the backed up xml files, but I am missing any file with metadata about
> snapshots. The original storage is cleaned so I cannot take these files
> anymore.
> 
> Using qemu-info I can see my snapshots inside the qcow images, but libvirt
> doesn't know about them:
> ###
> # virsh snapshot-list rhlvm
>  Name   Creation Time   State
> ---
> 
> # qemu-img info rhlvm.qcow2
> image: rhlvm.qcow2
> file format: qcow2
> virtual size: 25G (26843545600 bytes)
> disk size: 2.9G
> cluster_size: 65536
> Snapshot list:
> IDTAG VM SIZEDATE   VM CLOCK
> 1 prepared  0 2018-09-05 11:06:06   00:00:00.000
> Format specific information:
> compat: 1.1
> lazy refcounts: true
> refcount bits: 16
> corrupt: false
> 
> 
> ###
> 
> Is there any nice way to regenerate snapshot metadata for libvirt from
> the data inside qcow images? I have bunch of VMs so if there is nice way
> how to recover those data, you will make me really happy :)

Hi,

libvirt unfortunately does not support metadata-less snapshots so you
must recreate the metadata to be able to use them. If you didn't modify
your configuration of the VM between the time you took the snapshot and
the current point it should be fairly straightforward to recover them,
but it will require some manual steps.

The snapshot creation api has a _REDEFINE flag which allows to create
the snapshot metadata without actually doing any disk changes. (virsh
snapshot-create --redefine).

For this to happen you must prepare a definition of the snapshot. I'll
provide an example with anotations what to update:


  1565701354   <--- this must be equal to the 'TAG' field in the 
qemu-img output
  running<--- state of the VM at snapshot, you'll probably 
need to use shutoff as the VM was not running
  1565701354  <--- convert the "DATE" field to a 
unix timestamp
<- your snapshot is internal so this is ok
  
  <--- entries here depend on your 
configuration, you need one line per disk, readonly disks must have 'no' as 
snapshot, others are internal



  
 <--- this is the domain definition XML obtained by 
running a virsh dumpxml --migratable --inactive --security-info
upstream
841752b8-9452-4078-a62b-8fd9a9af011c

   [...] (trimmed irrelevant stuff but make sure to use full XML)


  
/home/pipo/git/qemu.git/x86_64-softmmu/qemu-system-x86_64
  







  
 < these conform to the table above




  
  




  
  




  

   [...]

  
  
  



Use a document which you create with:

virsh snapshot-create $VMNAME --redefine --current

Use --current only for the most recent snapshot.


signature.asc
Description: PGP signature
___
libvirt-users mailing list
libvirt-users@redhat.com
https://www.redhat.com/mailman/listinfo/libvirt-users

[libvirt-users] Recover snapshots from qcow images

2019-08-14 Thread Petr Stodulka

Hi guys,
I had to move to the new laptop week ago and I screw migration of my virtual
machines. I recovered my virtual machines on the new laptop (virsh define)
using the backed up xml files, but I am missing any file with metadata about
snapshots. The original storage is cleaned so I cannot take these files
anymore.

Using qemu-info I can see my snapshots inside the qcow images, but libvirt
doesn't know about them:
###
# virsh snapshot-list rhlvm
 Name   Creation Time   State
---

# qemu-img info rhlvm.qcow2
image: rhlvm.qcow2
file format: qcow2
virtual size: 25G (26843545600 bytes)
disk size: 2.9G
cluster_size: 65536
Snapshot list:
IDTAG VM SIZEDATE   VM CLOCK
1 prepared  0 2018-09-05 11:06:06   00:00:00.000
Format specific information:
compat: 1.1
lazy refcounts: true
refcount bits: 16
corrupt: false


###

Is there any nice way to regenerate snapshot metadata for libvirt from
the data inside qcow images? I have bunch of VMs so if there is nice way
how to recover those data, you will make me really happy :)

Thanks,

--
Petr Stodulka
OS & Application Modernization
IRC nicks: pstodulk, skytak
Software Engineer
Red Hat Czech s.r.o.

___
libvirt-users mailing list
libvirt-users@redhat.com
https://www.redhat.com/mailman/listinfo/libvirt-users