Data Backup and Recovery

Some problems with the KVM plugin



I'm testing SnapCreator 3.6.0 to perform backups for my KVM based virtual machines.

To support rapid clones, I have set up two qtrees on the same volume. Virtual Machines run on /vol/nebula/0 (qtree), and my templates are on /vol/nebula/1 (qtree).

The problems I have are the following:

- When I try to quiesce SnapCreator, it can't find the virtual machines, because I keep the "xml" file under /vol/nebula/0/vm<name>/deployment.0.

As far as I can see, SnapCreator only uses the VM information to auto-populate the volumes that should be backed up.

How can I disable auto-discover and add the volumes manually?

- To fix the previous issue, I just create symbolic links of the xml files to /etc/libvirt/qemu.

Unfortunately, my installment adds two slashes to the path of the virtual disk (/var/lib/one//datastore/0/one-20/disk.0), but the path is perfectly valid.

The problem here is that SnapCreator is not able to resolve the path to storage device.

I would suggest that it should sanitize the path before trying to match the mount points.

- After I fixed all the paths, SnapCreator still does not work.

SnapCreator is able to find the storage controller and path, but is not aware of the qtree. So, instead of using /vol/nebula, it uses /vol/nebula/0 and fails.

This could be fixed by always limit the path on the storage to a depth of 2 (maybe when it starts with /vol/), or allow users to override auto discovery.

Are there any workarounds for these issues?

As this is a community release, am I able to access the sources for the KVM plugin?





Thanks for providing the details, I have forwarded this to some KVM experts and the SC QA team.

I can answer your question about how to get the source code.

1) signup for the SC developer community if you havent done so

This requires first going to (where we store source code) and creating account then providing github account when signing up

2) Once you have gotten accpetance email wait around 24 hours then you should havee access

The SC framework is one repository and each plugin is its own. There are direction on for how to use git, etc. If you just want to get code though, easiest thing is go here and click the zip button. Plugin is located under src/perl/ In addition here is wiki on how to use external plugins as you can run the plugins as they are externally.

There are also a ton of other wikis to read under SC-Framework

When downloading also make sure you switch to correct branch, I would always grab a release branch like R3.6.0x not from main branch.

Hope this helps




is it possible there is no source on github for snapcreator ?






How can I disable auto-discover and add the volumes manually?

We cannot disable auto discovery, because this will gather lots of information and updates few more parameters other than volumes, which are required during restore operation.

If we disable this option, it will be a burden for user to update all the parameters and also may lead to inconsistencies.

I would suggest that it should sanitize the path before trying to match the mount points

XML file path can be provided manually in the snap creator configuration file using parameter "KVM_VM_CONFIG_DIR"

We need some more information about the setup.

1. Is it NAS/SAN environment?

2. Can you provide SC dump?




Hi Sachin,

This is a NAS enviroment.

I can workaround for most of the problems, but not the incorrect mapping of volumes. SC always adds the qtree path to the volumes list.

I currently don't have the dump, but can provide it by the end of the week. Is the log enough?

About KVM_VM_CONFIG_DIR, my problem is not the xml files but the virtual disks path. I could fix the software that generates the xml, but still SC should sanitize paths and not "freak out" when dual slashes // as the path is still valid.



Hi ricardoduarte,

As a workaround, you can mount the whole volume instead of mounting qtree directly.

for example you have qtree named "qtree1" under volume "vol1", then directly mount the volume.

mount <filer_ip>:/vol/vol1 <mount_pt>

This will add the volume properly to the volume list during discovery process.

Please let us know if you face any other issues.




Unfortunately I can't do that for my use case.