mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-12-27 16:15:23 +00:00
31d42506fb
Add <features> and <compat> elements to volume target XML. <compat> is a string which for qcow2 represents the QEMU version it should be compatible with. Valid values are 0.10 and 1.1. 1.1 is implicit if the <features> element is present, otherwise qemu-img default is used. 0.10 can be specified to explicitly create older images after the qemu-img default changes. <features> contains optional features, so far <lazy_refcounts/> is available, which enables caching of reference counters, improving performance for snapshots.
235 lines
5.2 KiB
XML
235 lines
5.2 KiB
XML
<?xml version="1.0"?>
|
|
<!-- A Relax NG schema for the libvirt storage volume XML format -->
|
|
<grammar xmlns="http://relaxng.org/ns/structure/1.0"
|
|
datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
|
|
<include href='basictypes.rng'/>
|
|
<start>
|
|
<ref name='vol'/>
|
|
</start>
|
|
|
|
<include href='storageencryption.rng'/>
|
|
<include href='storagefilefeatures.rng'/>
|
|
|
|
|
|
<define name='vol'>
|
|
<element name='volume'>
|
|
<element name='name'>
|
|
<ref name='volName'/>
|
|
</element>
|
|
<optional>
|
|
<element name='key'>
|
|
<text/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<ref name='source'/>
|
|
</optional>
|
|
<ref name='sizing'/>
|
|
<ref name='target'/>
|
|
<optional>
|
|
<ref name='backingStore'/>
|
|
</optional>
|
|
</element>
|
|
</define>
|
|
|
|
<define name='sizing'>
|
|
<optional>
|
|
<element name='capacity'>
|
|
<ref name='scaledInteger'/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name='allocation'>
|
|
<ref name='scaledInteger'/>
|
|
</element>
|
|
</optional>
|
|
</define>
|
|
|
|
<define name='permissions'>
|
|
<optional>
|
|
<element name='permissions'>
|
|
<element name='mode'>
|
|
<ref name='octalMode'/>
|
|
</element>
|
|
<element name='owner'>
|
|
<ref name='unsignedInt'/>
|
|
</element>
|
|
<element name='group'>
|
|
<ref name='unsignedInt'/>
|
|
</element>
|
|
<optional>
|
|
<element name='label'>
|
|
<text/>
|
|
</element>
|
|
</optional>
|
|
</element>
|
|
</optional>
|
|
</define>
|
|
|
|
<define name='timestamps'>
|
|
<optional>
|
|
<element name='timestamps'>
|
|
<interleave>
|
|
<optional>
|
|
<element name='atime'>
|
|
<ref name='timestamp'/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name='btime'>
|
|
<ref name='timestamp'/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name='ctime'>
|
|
<ref name='timestamp'/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name='mtime'>
|
|
<ref name='timestamp'/>
|
|
</element>
|
|
</optional>
|
|
</interleave>
|
|
</element>
|
|
</optional>
|
|
</define>
|
|
|
|
<define name='timestamp'>
|
|
<data type='string'>
|
|
<param name="pattern">[0-9]+(\.[0-9]{0,9})?</param>
|
|
</data>
|
|
</define>
|
|
|
|
<define name='target'>
|
|
<element name='target'>
|
|
<optional>
|
|
<element name='path'>
|
|
<data type='anyURI'/>
|
|
</element>
|
|
</optional>
|
|
<ref name='format'/>
|
|
<ref name='permissions'/>
|
|
<ref name='timestamps'/>
|
|
<optional>
|
|
<ref name='encryption'/>
|
|
</optional>
|
|
<optional>
|
|
<ref name='compat'/>
|
|
</optional>
|
|
<optional>
|
|
<ref name='fileFormatFeatures'/>
|
|
</optional>
|
|
</element>
|
|
</define>
|
|
|
|
<define name='backingStore'>
|
|
<element name='backingStore'>
|
|
<element name='path'>
|
|
<ref name='absFilePath'/>
|
|
</element>
|
|
<ref name='format'/>
|
|
<ref name='permissions'/>
|
|
</element>
|
|
</define>
|
|
|
|
|
|
<define name='source'>
|
|
<element name='source'>
|
|
<zeroOrMore>
|
|
<ref name='sourcedev'/>
|
|
</zeroOrMore>
|
|
</element>
|
|
</define>
|
|
|
|
<define name='sourcedev'>
|
|
<element name='device'>
|
|
<attribute name='path'>
|
|
<ref name='absFilePath'/>
|
|
</attribute>
|
|
<choice>
|
|
<empty/>
|
|
<ref name='devextents'/>
|
|
</choice>
|
|
</element>
|
|
</define>
|
|
|
|
<define name='devextents'>
|
|
<oneOrMore>
|
|
<element name='extent'>
|
|
<attribute name='start'>
|
|
<ref name='unsignedLong'/>
|
|
</attribute>
|
|
<attribute name='end'>
|
|
<ref name='unsignedLong'/>
|
|
</attribute>
|
|
</element>
|
|
</oneOrMore>
|
|
</define>
|
|
|
|
<define name='formatdev'>
|
|
<choice>
|
|
<value>none</value>
|
|
<value>auto</value>
|
|
<value>ext2</value>
|
|
<value>ext3</value>
|
|
<value>ext4</value>
|
|
<value>ufs</value>
|
|
<value>iso9660</value>
|
|
<value>udf</value>
|
|
<value>gfs</value>
|
|
<value>gfs2</value>
|
|
<value>vfat</value>
|
|
<value>hfs+</value>
|
|
<value>xfs</value>
|
|
<value>ocfs2</value>
|
|
</choice>
|
|
</define>
|
|
|
|
<define name='formatfile'>
|
|
<choice>
|
|
<value>unknown</value>
|
|
<value>raw</value>
|
|
<value>dir</value>
|
|
<value>bochs</value>
|
|
<value>cloop</value>
|
|
<value>cow</value>
|
|
<value>dmg</value>
|
|
<value>iso</value>
|
|
<value>qcow</value>
|
|
<value>qcow2</value>
|
|
<value>qed</value>
|
|
<value>vmdk</value>
|
|
<value>vpc</value>
|
|
</choice>
|
|
</define>
|
|
|
|
<define name='formatdisk'>
|
|
<choice>
|
|
<value>none</value>
|
|
<value>linux</value>
|
|
<value>fat16</value>
|
|
<value>fat32</value>
|
|
<value>linux-swap</value>
|
|
<value>linux-lvm</value>
|
|
<value>linux-raid</value>
|
|
<value>extended</value>
|
|
</choice>
|
|
</define>
|
|
|
|
<define name='format'>
|
|
<optional>
|
|
<element name='format'>
|
|
<attribute name='type'>
|
|
<choice>
|
|
<ref name='formatfile'/>
|
|
<ref name='formatdev'/>
|
|
<ref name='formatdisk'/>
|
|
</choice>
|
|
</attribute>
|
|
</element>
|
|
</optional>
|
|
</define>
|
|
|
|
</grammar>
|