Over the last few months I’ve blogged a few times about new products and development from the third-party ecosystem around the Citrix XenServer APIs, see here and here.  I’m delighted that we’ve recently seen a new version of their open sourced “NAUbackup & restore” from our forum guru, Tobias Kreidl and his team at Northern Arizona University this used to be one of the most popular free backup tools with system administrators, shared on the Citrix Developer Network (CDN). NAUbackup has now moved to a new home on github, you can find it here.

An Overview of the tools can be found here (please do read the additional information and disclaimers too):


  • The VmBackup.py script is run from a XenServer host and utilizes the native XenServer ‘xe vm-export’ command to backup either Linux or Windows VMs.
  • The vm-export is actually run after a vm-snapshot has occurred and this allows for backup while the VM is up and running.
  • These backup command techniques were originally discovered from anonymous Internet sources, then modified and developed into this python code.
  • During the backup of specified VMs, this script collects additional VM metadata using the Citrix XenServer XenAPI. This additional information can be useful during VM restore situations.
  • Backups can be run from multiple XenServer hosts and from multiple pools and all be written to a common area, if desired. That way, local as well as pooled SRs can be handled.
  • In addition to any scheduled cron backups, the VmBackup.py script can be run manually as desired. However, it is important to keep in mind that the backup process does use important DOM0 resources, so running a backup during heavy workloads should be avoided.
  • The SR where VDI is located requires sufficient free space to hold a complete snapshot of a VM. The temporary snapshots created during the backup process are deleted after the vm-export has completed.
  • Optionally, if pool_db_backup=1 then the pool state backup occurs via the ‘xe pool-dump-database’ command.
  • Optionally, compression of the vm-export file can be performed in the background after each VM backup is completed by an independent user supplied cron job.

Tobias and the development team including Duane Booher were at Citrix Synergy and actively providing product managers and developers with advice from the development and user community. You can also chat to Tobias and the developers on the XenServer forums, here. Tobias is deeply passionate about ensuring the IT systems at NAU are cutting edge, the students there have better technology than many commercial businesses!!! Tobias explained to me that he felt that education sectors adoption of cutting edge commercial technologies:

  • “is vital to providing critical communications and educational services to students as a whole, but also helps young engineers and computer science graduates discover what is lacking in the computer/communications age and drives them to create new and better products and ways of accomplishing things some of us never would have thought of. Educational institutions have sometimes been correctly given the moniker ”incubators”,  which is very befitting. Students also tend to be trend-setters in many ways, included among them leveraging technology in ways unimagined. The mobile revolution has irreversibly affected how people get their work done and access to remote applications, printing, research materials, academic records and such are just a few examples. We even have a mobile app that was developed to allow people on campus to monitor in real-time the physical locations and estimated arrival times of campus as well as city buses!”

VDI and virtualisation for education is something Citrix XenDesktop, CloudPlatform and XenServer have a long history of with plenty of other institutions taking a similar view to Tobias, read more here. It amazes me at the range of facilities Tobias and NAU offer students and their involvement in industrial grade GPU acceleration technologies. The NAU team are well known to a lot of our Citrix development team as well as those at partners such as NVIDIA and Dell, and they provide us with all with amazing insight.

There is lots of advice about developing commercial as well as open source products for XenServer using the SDK and APIs (available in C#, C, Java, Python and PowerShell) and also XenCenter plugins; including code examples, development and debug tools and how-to-guides, all available here…. Or you can hop on our forums and join in with NAU’s development or a similar project!