storage: vstorage pool documentation and simple test

Signed-off-by: Olga Krishtal <okrishtal@virtuozzo.com>
This commit is contained in:
Olga Krishtal 2017-01-17 17:10:59 +03:00 committed by John Ferlan
parent 479a2f16f1
commit a55ddc8774
7 changed files with 95 additions and 4 deletions

View File

@ -24,8 +24,9 @@
(<span class="since">since 0.9.13</span>), <code>sheepdog</code> (<span class="since">since 0.9.13</span>), <code>sheepdog</code>
(<span class="since">since 0.10.0</span>), (<span class="since">since 0.10.0</span>),
<code>gluster</code> (<span class="since">since <code>gluster</code> (<span class="since">since
1.2.0</span>) or <code>zfs</code> (<span class="since">since 1.2.0</span>), <code>zfs</code> (<span class="since">since
1.2.8</span>). This corresponds to the 1.2.8</span>) or <code>vstorage</code> (<span class="since">since
3.1.0</span>). This corresponds to the
storage backend drivers listed further along in this document. storage backend drivers listed further along in this document.
</p> </p>
<h3><a name="StoragePoolFirst">General metadata</a></h3> <h3><a name="StoragePoolFirst">General metadata</a></h3>
@ -124,7 +125,7 @@
<dt><code>device</code></dt> <dt><code>device</code></dt>
<dd>Provides the source for pools backed by physical devices <dd>Provides the source for pools backed by physical devices
(pool types <code>fs</code>, <code>logical</code>, <code>disk</code>, (pool types <code>fs</code>, <code>logical</code>, <code>disk</code>,
<code>iscsi</code>, <code>zfs</code>). <code>iscsi</code>, <code>zfs</code>, <code>vstorage</code>).
May be repeated multiple times depending on backend driver. Contains May be repeated multiple times depending on backend driver. Contains
a required attribute <code>path</code> which is either the fully a required attribute <code>path</code> which is either the fully
qualified path to the block device node or for <code>iscsi</code> qualified path to the block device node or for <code>iscsi</code>

View File

@ -12,7 +12,17 @@
<libvirt> <libvirt>
<release version="v3.1.0" date="unreleased"> <release version="v3.1.0" date="unreleased">
<section title="New features"> <section title="New features">
<change/> <change>
<summary>
storage: Add Virtuozzo storage backend storage pool
</summary>
<description>
Add new storage backend to support pool and volume management
within the Virtuozzo Storage environment. Virtuozzo Storage is
a highly available distributed software defined storage with
built-in replication and disaster recovery.
</description>
</change>
</section> </section>
<section title="Improvements"> <section title="Improvements">
<change> <change>

View File

@ -24,6 +24,7 @@
<ref name='poolsheepdog'/> <ref name='poolsheepdog'/>
<ref name='poolgluster'/> <ref name='poolgluster'/>
<ref name='poolzfs'/> <ref name='poolzfs'/>
<ref name='poolvstorage'/>
</choice> </choice>
</element> </element>
</define> </define>
@ -173,6 +174,18 @@
</interleave> </interleave>
</define> </define>
<define name='poolvstorage'>
<attribute name='type'>
<value>vstorage</value>
</attribute>
<interleave>
<ref name='commonmetadata'/>
<ref name='sizing'/>
<ref name='sourcevstorage'/>
<ref name='target'/>
</interleave>
</define>
<define name='sourceinfovendor'> <define name='sourceinfovendor'>
<interleave> <interleave>
<optional> <optional>
@ -373,6 +386,14 @@
</element> </element>
</define> </define>
<define name='sourcevstorage'>
<element name='source'>
<interleave>
<ref name='sourceinfoname'/>
</interleave>
</element>
</define>
<define name='sourcefmtfs'> <define name='sourcefmtfs'>
<optional> <optional>
<element name='format'> <element name='format'>

View File

@ -120,6 +120,9 @@
<li> <li>
<a href="#StorageBackendZFS">ZFS backend</a> <a href="#StorageBackendZFS">ZFS backend</a>
</li> </li>
<li>
<a href="#StorageBackendVstorage">Virtuozzo storage backend</a>
</li>
</ul> </ul>
<h2><a name="StorageBackendDir">Directory pool</a></h2> <h2><a name="StorageBackendDir">Directory pool</a></h2>
@ -791,6 +794,31 @@
<p> <p>
The ZFS volume pool does not use the volume format type element. The ZFS volume pool does not use the volume format type element.
</p> </p>
<h2><a name="StorageBackendVstorage">Vstorage pools</a></h2>
<p>
This provides a pool based on Virtuozzo storage. Virtuozzo Storage is
a highly available distributed software-defined storage with built-in
replication and disaster recovery. More detailed information about
Virtuozzo storage and its managment can be found here:
<a href="https://openvz.org/Virtuozzo_Storage">Virtuozzo Storage</a>).
</p>
<p>Please refer to the Virtuozzo Storage documentation for details
on storage management and usage.</p>
<h3>Example pool input</h3>
<p>In order to create storage pool with Virtuozzo Storage backend you
have to provide cluster name and be authorized within the cluster.</p>
<pre>
&lt;pool type="vstorage"&gt;
&lt;name&gt;myvstoragepool&lt;/name&gt;
&lt;source&gt;
&lt;name&gt;clustername&lt;/name&gt;
&lt;/source&gt;
&lt;target&gt;
&lt;path&gt;/mnt/clustername&lt;/path&gt;
&lt;/target&gt;
&lt;/pool&gt;</pre>
<h3>Valid volume format types</h3>
<p>The valid volume types are the same as for the directory pool.</p>
</body> </body>
</html> </html>

View File

@ -0,0 +1,10 @@
<pool type="vstorage">
<name>vstorage</name>
<uuid>cfd270f9-acc7-4394-8685-4977eb318171</uuid>
<source>
<name>vzstorage-cluster</name>
</source>
<target>
<path>/mnt/vstorage_cluster</path>
</target>
</pool>

View File

@ -0,0 +1,18 @@
<pool type='vstorage'>
<name>vstorage</name>
<uuid>cfd270f9-acc7-4394-8685-4977eb318171</uuid>
<capacity unit='bytes'>0</capacity>
<allocation unit='bytes'>0</allocation>
<available unit='bytes'>0</available>
<source>
<name>vstorage-cluster</name>
</source>
<target>
<path>/mnt/vstorage-cluster</path>
<permissions>
<mode>0755</mode>
<owner>-1</owner>
<group>-1</group>
</permissions>
</target>
</pool>

View File

@ -104,6 +104,9 @@ mymain(void)
#ifdef WITH_STORAGE_RBD #ifdef WITH_STORAGE_RBD
DO_TEST("pool-rbd"); DO_TEST("pool-rbd");
#endif #endif
#ifdef WITH_STORAGE_VSTORAGE
DO_TEST("pool-vstorage");
#endif
return ret == 0 ? EXIT_SUCCESS : EXIT_FAILURE; return ret == 0 ? EXIT_SUCCESS : EXIT_FAILURE;
} }