Much of this developer documentation provides historical context but may not reflect the current state of the project.
If you see outdated content please navigate to the page footer and click "Report an issue on GitHub".

It is not user documentation and should not be treated as such.

User Documentation is available here.

Storage Domain Version 0

Storage Domain Version 2

Storage Domain Version 3

The storage domain version 3 has been introduced in VDSM on the 30th of January 2012 with the commit 8665716c: Use SANLock for the SPM resource. The new format has been introduced to overcome some of the limitations present in the previous formats (with regard to live snapshots, live merges and internationalization) and mainly to introduce the use of SANLock.

  • Supported Domain Types: Block (iSCSI, FCP) and File (NFS, local) domains
  • Supported Domain Classes: Data, Export


VDSM and Format

Engine and GUI

  • Display the Storage Domain Version (already present in the “Storage” tab)
  • Support the creation of Storage Domain V3
  • Accept unicode strings for the descriptions (only V3)
  • Block the import of VM containing unicode to V2 domains
  • Prevent moving Storage Domain Version V3 to 3.0 Data Centers

Required Actions On Upgrade


  • Initialize the resources for all the volumes in the domain
  • Set all the LVs to RW
  • Check that the volume SIZE in the metadata is consistent with the block size (RAW) or with the qcow2 virtual size (COW) BZ811880, BZ611183, BZ706014

Engine and GUI


The operation is driven by pool compatibility change. So there is no need for a new REST API.


  • All nodes in the cluster must have 5a0b2c9 “Do not lock the image when preparing the VM path” (vdsm >= 4.9.4) to avoid the LVM mda corruption

Export Domains

Export domains cannot be upgraded; they must be created in the version 3 format (and previous versions of VDSM won’t be able to attach it to a V1/V2 pool).


At the moment it is planned to support an automatic upgrade to version 3 from the previous versions.