Signed-off-by: Olga Krishtal <okrishtal(a)virtuozzo.com>
---
docs/formatstorage.html.in | 7 ++++---
docs/schemas/storagepool.rng | 21 ++++++++++++++++++++
docs/storage.html.in | 28 ++++++++++++++++++++++++++-
tests/storagepoolxml2xmlin/pool-vstorage.xml | 10 ++++++++++
tests/storagepoolxml2xmlout/pool-vstorage.xml | 18 +++++++++++++++++
tests/storagepoolxml2xmltest.c | 3 +++
6 files changed, 83 insertions(+), 4 deletions(-)
create mode 100644 tests/storagepoolxml2xmlin/pool-vstorage.xml
create mode 100644 tests/storagepoolxml2xmlout/pool-vstorage.xml
diff --git a/docs/formatstorage.html.in b/docs/formatstorage.html.in
index f6887ae..3c39266 100644
--- a/docs/formatstorage.html.in
+++ b/docs/formatstorage.html.in
@@ -24,8 +24,9 @@
(<span class="since">since 0.9.13</span>),
<code>sheepdog</code>
(<span class="since">since 0.10.0</span>),
<code>gluster</code> (<span class="since">since
- 1.2.0</span>) or <code>zfs</code> (<span
class="since">since
- 1.2.8</span>). This corresponds to the
+ 1.2.0</span>), <code>zfs</code> (<span
class="since">since
+ 1.2.8</span>) or <code>vstorage</code> (<span
class="since">since
+ 3.0.0</span>). This corresponds to the
storage backend drivers listed further along in this document.
</p>
<h3><a name="StoragePoolFirst">General
metadata</a></h3>
@@ -124,7 +125,7 @@
<dt><code>device</code></dt>
<dd>Provides the source for pools backed by physical devices
(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
a required attribute <code>path</code> which is either the fully
qualified path to the block device node or for <code>iscsi</code>
diff --git a/docs/schemas/storagepool.rng b/docs/schemas/storagepool.rng
index 49d212f..c5d13a8 100644
--- a/docs/schemas/storagepool.rng
+++ b/docs/schemas/storagepool.rng
@@ -24,6 +24,7 @@
<ref name='poolsheepdog'/>
<ref name='poolgluster'/>
<ref name='poolzfs'/>
+ <ref name='poolvstorage'>
</choice>
</element>
</define>
@@ -173,6 +174,18 @@
</interleave>
</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'>
<interleave>
<optional>
@@ -373,6 +386,14 @@
</element>
</define>
+ <define name='sourcevstorage'>
+ <element name='source'>
+ <interleave>
+ <ref name='sourceinfoname'/>
+ </interleave>
+ </element>
+ </define>
+
<define name='sourcefmtfs'>
<optional>
<element name='format'>
diff --git a/docs/storage.html.in b/docs/storage.html.in
index 2e5b65e..26d21df 100644
--- a/docs/storage.html.in
+++ b/docs/storage.html.in
@@ -120,6 +120,9 @@
<li>
<a href="#StorageBackendZFS">ZFS backend</a>
</li>
+ <li>
+ <a href="#StorageBackendVstorage">Virtuozzo storage
backend</a>
+ </li>
</ul>
<h2><a name="StorageBackendDir">Directory
pool</a></h2>
@@ -791,6 +794,29 @@
<p>
The ZFS volume pool does not use the volume format type element.
</p>
-
+ <h2><a name="StorageBackendVstorage">Vstorage
pools</a></h2>
+ <p>
+ This provides a pool based on Virtuozzo storage. Virtuozzo Storage is
highly-avaliable
+ distributed software-defined storage with build-in replication and disaster
recovery.
+ (More detailed information about 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 a storage
managment
+ and usage.</p>
+ <h3>Example pool input</h3>
+ <p>In order to create storage pool with Virtuozzo Storage bakend you have to
provide
+ cluster name and be authorized within this cluster.</p>
+ <pre>
+<pool type="vstorage">
+ <name>myvstoragepool</name>
+ <source>
+ <name>clustername</name>
+ </source>
+ <target>
+ <path>/mnt/clustername</path>
+ </target>
+</pool></pre>
+ <h3>Valid volume format types</h3>
+ <p>The valid volume types are the same as for the directory pool
type.</p>
</body>
</html>
diff --git a/tests/storagepoolxml2xmlin/pool-vstorage.xml
b/tests/storagepoolxml2xmlin/pool-vstorage.xml
new file mode 100644
index 0000000..31e36a2
--- /dev/null
+++ b/tests/storagepoolxml2xmlin/pool-vstorage.xml
@@ -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>
diff --git a/tests/storagepoolxml2xmlout/pool-vstorage.xml
b/tests/storagepoolxml2xmlout/pool-vstorage.xml
new file mode 100644
index 0000000..8b2aecb
--- /dev/null
+++ b/tests/storagepoolxml2xmlout/pool-vstorage.xml
@@ -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>
diff --git a/tests/storagepoolxml2xmltest.c b/tests/storagepoolxml2xmltest.c
index 2e1e811..98a8449 100644
--- a/tests/storagepoolxml2xmltest.c
+++ b/tests/storagepoolxml2xmltest.c
@@ -104,6 +104,9 @@ mymain(void)
#ifdef WITH_STORAGE_RBD
DO_TEST("pool-rbd");
#endif
+#ifdef WITH_STORAGE_VSTORAGE
+ DO_TEST("pool-vstorage");
+#endif
return ret == 0 ? EXIT_SUCCESS : EXIT_FAILURE;
}
--
1.8.3.1