mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-01-18 10:35:20 +00:00
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: Eric Blake <eblake@redhat.com>
This commit is contained in:
parent
8d7800a554
commit
887dd3625b
@ -381,11 +381,10 @@
|
|||||||
<choice>
|
<choice>
|
||||||
<value>auto</value>
|
<value>auto</value>
|
||||||
<value>nfs</value>
|
<value>nfs</value>
|
||||||
|
<value>cifs</value>
|
||||||
|
<value>glusterfs</value>
|
||||||
</choice>
|
</choice>
|
||||||
</attribute>
|
</attribute>
|
||||||
<optional>
|
|
||||||
<ref name='sourceinfovendor'/>
|
|
||||||
</optional>
|
|
||||||
</element>
|
</element>
|
||||||
</optional>
|
</optional>
|
||||||
</define>
|
</define>
|
||||||
|
@ -249,7 +249,8 @@
|
|||||||
a local block device as the source, it requires the name of a
|
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
|
host and path of an exported directory. It will mount this network
|
||||||
filesystem and manage files within the directory of its mount
|
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>
|
</p>
|
||||||
|
|
||||||
<h3>Example pool input</h3>
|
<h3>Example pool input</h3>
|
||||||
@ -259,6 +260,7 @@
|
|||||||
<source>
|
<source>
|
||||||
<host name="nfs.example.com"/>
|
<host name="nfs.example.com"/>
|
||||||
<dir path="/var/lib/virt/images"/>
|
<dir path="/var/lib/virt/images"/>
|
||||||
|
<format type='nfs'/>
|
||||||
</source>
|
</source>
|
||||||
<target>
|
<target>
|
||||||
<path>/var/lib/virt/images</path>
|
<path>/var/lib/virt/images</path>
|
||||||
@ -275,10 +277,13 @@
|
|||||||
<code>nfs</code>
|
<code>nfs</code>
|
||||||
</li>
|
</li>
|
||||||
<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>
|
||||||
<li>
|
<li>
|
||||||
<code>cifs</code>
|
<code>cifs</code> - use the SMB (samba) or CIFS file system
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
|
12
tests/storagepoolxml2xmlin/pool-netfs-gluster.xml
Normal file
12
tests/storagepoolxml2xmlin/pool-netfs-gluster.xml
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
<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>
|
20
tests/storagepoolxml2xmlout/pool-netfs-gluster.xml
Normal file
20
tests/storagepoolxml2xmlout/pool-netfs-gluster.xml
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
<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");
|
||||||
DO_TEST("pool-iscsi-auth");
|
DO_TEST("pool-iscsi-auth");
|
||||||
DO_TEST("pool-netfs");
|
DO_TEST("pool-netfs");
|
||||||
|
DO_TEST("pool-netfs-gluster");
|
||||||
DO_TEST("pool-scsi");
|
DO_TEST("pool-scsi");
|
||||||
DO_TEST("pool-scsi-type-scsi-host");
|
DO_TEST("pool-scsi-type-scsi-host");
|
||||||
DO_TEST("pool-scsi-type-fc-host");
|
DO_TEST("pool-scsi-type-fc-host");
|
||||||
|
Loading…
x
Reference in New Issue
Block a user