Hi all,

 

Not sure if this will be useful to anyone.  Worse, it’s probably not complete or correct, but I thought I would throw this out there for comment.

 

I asked earlier about configuring libvirt for NFSv4 support.  I wanted to define NFSv4 pool from xml config, but it’s not an option.  I decided to hack a bit.  Added the following to source code:

 

 

storage_conf.h(417):

 

enum virStoragePoolFormatFileSystemNet {

    VIR_STORAGE_POOL_NETFS_AUTO = 0,

    VIR_STORAGE_POOL_NETFS_NFS,

    VIR_STORAGE_POOL_NETFS_NFS4,

    VIR_STORAGE_POOL_NETFS_GLUSTERFS,

    VIR_STORAGE_POOL_NETFS_CIFS,

    VIR_STORAGE_POOL_NETFS_LAST,

};

 

 

storage_conf.c(64):

 

VIR_ENUM_IMPL(virStoragePoolFormatFileSystemNet,

              VIR_STORAGE_POOL_NETFS_LAST,

              "auto", "nfs", "nfs4", "glusterfs", "cifs")

 

 

Compiled libvirt and then created storage pool xml:

 

<pool type="netfs">

  <name>pool2</name>

  <source>

    <host name="test_filer"/>

    <dir path="/libvirt"/>

    <format type="nfs4"/>

  </source>

  <target>

    <path>”/usr/local/var/lib/libvirt/images/nfsds2”</path>

  </target>

</pool>

 

 

‘Virsh pool-create [above xml]’ works, using ‘mount –t nfs4’.

 

Again, this seemed too easy, so I won’t be surprised if things break.  However, I was just trying to demonstrate functionality in lab, so failures are fine short term.

 

Please comment on flaws or improvements to this approach.

 

 

Thanks,

Paul Worner