提交 887dd362 编写于 作者: E Eric Blake

storage: fix RNG validation of gluster via netfs

While trying to compare netfs against my new gluster pool, I
discovered two things:

virt-xml-validate chokes on valid xml produced by 'virsh pool-dumpxml'
[yet another reason that ALL patches that add new xml should be adding
corresponding tests]

When using glusterfs FUSE mounts, you cannot access a subdirectory
of a gluster volume.  The recommended workaround in the gluster
community is to mount the volume to an intermediate location, then
bind-mount the desired subdirectory to the final location.  Maybe
we should teach libvirt to do bind-mounting, but for now I chose to
just document the limitation.

* docs/storage.html.in: Improve documentation.
* docs/schemas/storagepool.rng (sourcefmtnetfs): Allow all
formats, and drop redundant info-vendor.
* tests/storagepoolxml2xmltest.c (mymain): New test.
* tests/storagepoolxml2xmlin/pool-netfs-gluster.xml: New file.
* tests/storagepoolxml2xmlout/pool-netfs-gluster.xml: Likewise.
Signed-off-by: NEric Blake <eblake@redhat.com>
上级 8d7800a5
......@@ -381,11 +381,10 @@
<choice>
<value>auto</value>
<value>nfs</value>
<value>cifs</value>
<value>glusterfs</value>
</choice>
</attribute>
<optional>
<ref name='sourceinfovendor'/>
</optional>
</element>
</optional>
</define>
......
......@@ -249,7 +249,8 @@
a local block device as the source, it requires the name of a
host and path of an exported directory. It will mount this network
filesystem and manage files within the directory of its mount
point. It will default to using NFS as the protocol.
point. It will default to using <code>auto</code> as the
protocol, which generally tries a mount via NFS first.
</p>
<h3>Example pool input</h3>
......@@ -259,6 +260,7 @@
&lt;source&gt;
&lt;host name="nfs.example.com"/&gt;
&lt;dir path="/var/lib/virt/images"/&gt;
&lt;format type='nfs'/&gt;
&lt;/source&gt;
&lt;target&gt;
&lt;path&gt;/var/lib/virt/images&lt;/path&gt;
......@@ -275,10 +277,13 @@
<code>nfs</code>
</li>
<li>
<code>glusterfs</code>
<code>glusterfs</code> - use the glusterfs FUSE file system.
For now, the <code>dir</code> specified as the source can only
be a gluster volume name, as gluster does not provide a way to
directly mount subdirectories within a volume.
</li>
<li>
<code>cifs</code>
<code>cifs</code> - use the SMB (samba) or CIFS file system
</li>
</ul>
......
<pool type='netfs'>
<source>
<host name='example.com'/>
<format type='glusterfs'/>
<dir path='/volume'/>
</source>
<name>netfs-gluster</name>
<uuid>d5609ced-94b1-489e-b218-eff35c30336a</uuid>
<target>
<path>/mnt/gluster</path>
</target>
</pool>
<pool type='netfs'>
<name>netfs-gluster</name>
<uuid>d5609ced-94b1-489e-b218-eff35c30336a</uuid>
<capacity unit='bytes'>0</capacity>
<allocation unit='bytes'>0</allocation>
<available unit='bytes'>0</available>
<source>
<host name='example.com'/>
<dir path='/volume'/>
<format type='glusterfs'/>
</source>
<target>
<path>/mnt/gluster</path>
<permissions>
<mode>0755</mode>
<owner>-1</owner>
<group>-1</group>
</permissions>
</target>
</pool>
......@@ -93,6 +93,7 @@ mymain(void)
DO_TEST("pool-iscsi");
DO_TEST("pool-iscsi-auth");
DO_TEST("pool-netfs");
DO_TEST("pool-netfs-gluster");
DO_TEST("pool-scsi");
DO_TEST("pool-scsi-type-scsi-host");
DO_TEST("pool-scsi-type-fc-host");
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册