You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@cloudstack.apache.org by John Skinner <jo...@appcore.com> on 2013/07/15 16:31:41 UTC

GlusterFS QEMU libgfapi

Is there any way to use GlusterFS with the native QEMU libgfapi so we do not have to use Fuse to access the shares? Or are there any plans to build libgfapi QEMU support into CloudStack in the future?

Thanks,

John




Re: GlusterFS QEMU libgfapi

Posted by Wido den Hollander <wi...@widodh.nl>.
On 07/15/2013 06:38 PM, John Skinner wrote:
> I dug a little bit deeper and found that it IS a supported storage type of NETFS, as a valid poor format type (see below from libvirt.org). Now, not being familiar with how CloudStack handles storage; I was think that under cloud-plugin-hypervisoer-kvm > src > com.cloud.hypervisor.kvm.storage > LibvirtStorageAdaptor.java I create a pool type similar to the one for NFS with the required information for using GlusterFS. Is this assumption correct?
>

Yes, if that's the case, you could simply change "netfs" into 
"glusterfs", but I'm not sure if that uses libgfapi, although that 
wouldn't matter much.

It's when building the domain XML and actually invoking Qemu that you 
want it to use libgfapi.

Wido

> Thanks,
>
> John
>
> Valid volume format types
> The valid volume types are the same as for the directory pool type.
>
> Network filesystem pool
> This is a variant of the filesystem pool. Instead of requiring 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.
>
> Example pool input
>        <pool type="netfs">
>          <name>virtimages</name>
>          <source>
>            <host name="nfs.example.com"/>
>            <dir path="/var/lib/virt/images"/>
>          </source>
>          <target>
>            <path>/var/lib/virt/images</path>
>          </target>
>        </pool>
> Valid pool format types
> The network filesystem pool supports the following formats:
>
> auto - automatically determine format
> nfs
> glusterfs
> cifs
>
> On Jul 15, 2013, at 10:08 AM, John Skinner <jo...@appcore.com> wrote:
>
>> Wido,
>>
>> Are you sure on that? I know the libgfapi is in C. But I thought GlusterFS was now supported in both libvirt and qemu (1.0.1+, 1.3; respectively).
>>
>> 1.0.1: Dec 17 2012
>> Features:
>> Introduce virtlockd daemon (Daniel P. Berrange),
>> parallels: add disk and network device support (Dmitry Guryanov),
>> Add virDomainSendProcessSignal API (Daniel P. Berrange),
>> Introduce virDomainFSTrim() public API (Michal Privoznik),
>> add fuse support for libvirt lxc (Gao feng),
>> Add Gluster protocol as supported network disk backend (Harsh Prateek Bora),
>> various snapshot improvements (Peter Krempa, Eric Blake)
>> Thanks,
>>
>> John
>>
>> On Jul 15, 2013, at 9:56 AM, Wido den Hollander <wi...@widodh.nl> wrote:
>>
>>> Hi John,
>>>
>>> On 07/15/2013 04:52 PM, John Skinner wrote:
>>>> Thanks, Wido.
>>>>
>>>> I am not a programmer per se, but I am going to pull the code down and have a look to see if I can figure it out. I know some java guys so may be able to get some help on that end.
>>>>
>>>
>>> It won't be only Java code, but also C code to manage the GlusterFS storage pool in libvirt: http://libvirt.org/storage.html
>>>
>>> Currently GlusterFS isn't supported in libvirt as a storage pool, but the CloudStack agent relies on that.
>>>
>>> It might be possible to do without libvirt, but I'm not sure how that would work out.
>>>
>>> Ceph and RBD are my thing, I'm not a GlusterFS expert.
>>>
>>> Wido
>>>
>>>> Thanks,
>>>>
>>>> John
>>>>
>>>> On Jul 15, 2013, at 9:36 AM, Wido den Hollander <wi...@widodh.nl> wrote:
>>>>
>>>>> Hi John,
>>>>>
>>>>> On 07/15/2013 04:31 PM, John Skinner wrote:
>>>>>> Is there any way to use GlusterFS with the native QEMU libgfapi so we do not have to use Fuse to access the shares? Or are there any plans to build libgfapi QEMU support into CloudStack in the future?
>>>>>>
>>>>>
>>>>> As for now there is no way to use libgfapi with Qemu/KVM in CloudStack, nor are there any plans to implement this.
>>>>>
>>>>> Patches are welcome though! Would be great to see this be written.
>>>>>
>>>>> Wido
>>>>>
>>>>>> Thanks,
>>>>>>
>>>>>> John
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>
>>>
>>
>
>


Re: GlusterFS QEMU libgfapi

Posted by John Skinner <jo...@appcore.com>.
I dug a little bit deeper and found that it IS a supported storage type of NETFS, as a valid poor format type (see below from libvirt.org). Now, not being familiar with how CloudStack handles storage; I was think that under cloud-plugin-hypervisoer-kvm > src > com.cloud.hypervisor.kvm.storage > LibvirtStorageAdaptor.java I create a pool type similar to the one for NFS with the required information for using GlusterFS. Is this assumption correct?

Thanks,

John 

Valid volume format types
The valid volume types are the same as for the directory pool type.

Network filesystem pool
This is a variant of the filesystem pool. Instead of requiring 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.

Example pool input
      <pool type="netfs">
        <name>virtimages</name>
        <source>
          <host name="nfs.example.com"/>
          <dir path="/var/lib/virt/images"/>
        </source>
        <target>
          <path>/var/lib/virt/images</path>
        </target>
      </pool>
Valid pool format types
The network filesystem pool supports the following formats:

auto - automatically determine format
nfs
glusterfs
cifs

On Jul 15, 2013, at 10:08 AM, John Skinner <jo...@appcore.com> wrote:

> Wido,
> 
> Are you sure on that? I know the libgfapi is in C. But I thought GlusterFS was now supported in both libvirt and qemu (1.0.1+, 1.3; respectively).
> 
> 1.0.1: Dec 17 2012
> Features:
> Introduce virtlockd daemon (Daniel P. Berrange),
> parallels: add disk and network device support (Dmitry Guryanov),
> Add virDomainSendProcessSignal API (Daniel P. Berrange),
> Introduce virDomainFSTrim() public API (Michal Privoznik),
> add fuse support for libvirt lxc (Gao feng),
> Add Gluster protocol as supported network disk backend (Harsh Prateek Bora),
> various snapshot improvements (Peter Krempa, Eric Blake)
> Thanks,
> 
> John
> 
> On Jul 15, 2013, at 9:56 AM, Wido den Hollander <wi...@widodh.nl> wrote:
> 
>> Hi John,
>> 
>> On 07/15/2013 04:52 PM, John Skinner wrote:
>>> Thanks, Wido.
>>> 
>>> I am not a programmer per se, but I am going to pull the code down and have a look to see if I can figure it out. I know some java guys so may be able to get some help on that end.
>>> 
>> 
>> It won't be only Java code, but also C code to manage the GlusterFS storage pool in libvirt: http://libvirt.org/storage.html
>> 
>> Currently GlusterFS isn't supported in libvirt as a storage pool, but the CloudStack agent relies on that.
>> 
>> It might be possible to do without libvirt, but I'm not sure how that would work out.
>> 
>> Ceph and RBD are my thing, I'm not a GlusterFS expert.
>> 
>> Wido
>> 
>>> Thanks,
>>> 
>>> John
>>> 
>>> On Jul 15, 2013, at 9:36 AM, Wido den Hollander <wi...@widodh.nl> wrote:
>>> 
>>>> Hi John,
>>>> 
>>>> On 07/15/2013 04:31 PM, John Skinner wrote:
>>>>> Is there any way to use GlusterFS with the native QEMU libgfapi so we do not have to use Fuse to access the shares? Or are there any plans to build libgfapi QEMU support into CloudStack in the future?
>>>>> 
>>>> 
>>>> As for now there is no way to use libgfapi with Qemu/KVM in CloudStack, nor are there any plans to implement this.
>>>> 
>>>> Patches are welcome though! Would be great to see this be written.
>>>> 
>>>> Wido
>>>> 
>>>>> Thanks,
>>>>> 
>>>>> John
>>>>> 
>>>>> 
>>>>> 
>>>> 
>>> 
>> 
> 


Re: GlusterFS QEMU libgfapi

Posted by John Skinner <jo...@appcore.com>.
Wido,

Are you sure on that? I know the libgfapi is in C. But I thought GlusterFS was now supported in both libvirt and qemu (1.0.1+, 1.3; respectively).

1.0.1: Dec 17 2012
Features:
Introduce virtlockd daemon (Daniel P. Berrange),
parallels: add disk and network device support (Dmitry Guryanov),
Add virDomainSendProcessSignal API (Daniel P. Berrange),
Introduce virDomainFSTrim() public API (Michal Privoznik),
add fuse support for libvirt lxc (Gao feng),
Add Gluster protocol as supported network disk backend (Harsh Prateek Bora),
various snapshot improvements (Peter Krempa, Eric Blake)
Thanks,

John

On Jul 15, 2013, at 9:56 AM, Wido den Hollander <wi...@widodh.nl> wrote:

> Hi John,
> 
> On 07/15/2013 04:52 PM, John Skinner wrote:
>> Thanks, Wido.
>> 
>> I am not a programmer per se, but I am going to pull the code down and have a look to see if I can figure it out. I know some java guys so may be able to get some help on that end.
>> 
> 
> It won't be only Java code, but also C code to manage the GlusterFS storage pool in libvirt: http://libvirt.org/storage.html
> 
> Currently GlusterFS isn't supported in libvirt as a storage pool, but the CloudStack agent relies on that.
> 
> It might be possible to do without libvirt, but I'm not sure how that would work out.
> 
> Ceph and RBD are my thing, I'm not a GlusterFS expert.
> 
> Wido
> 
>> Thanks,
>> 
>> John
>> 
>> On Jul 15, 2013, at 9:36 AM, Wido den Hollander <wi...@widodh.nl> wrote:
>> 
>>> Hi John,
>>> 
>>> On 07/15/2013 04:31 PM, John Skinner wrote:
>>>> Is there any way to use GlusterFS with the native QEMU libgfapi so we do not have to use Fuse to access the shares? Or are there any plans to build libgfapi QEMU support into CloudStack in the future?
>>>> 
>>> 
>>> As for now there is no way to use libgfapi with Qemu/KVM in CloudStack, nor are there any plans to implement this.
>>> 
>>> Patches are welcome though! Would be great to see this be written.
>>> 
>>> Wido
>>> 
>>>> Thanks,
>>>> 
>>>> John
>>>> 
>>>> 
>>>> 
>>> 
>> 
> 


Re: GlusterFS QEMU libgfapi

Posted by Marcus Sorensen <sh...@gmail.com>.
On a side note, we aren't limited to libvirt-supported storage.
KVMStoragePoolManager allows for multiple storage adaptors, so you can just
add yours to the adaptor map in there and create a MyStorageAdaptor that
implements the various methods like CreatePhysicalDisk, etc , similar to
LibvirtStorageAdaptor. You would also have to tweak the XML stuff as well
if it can't be connected via the existing raw or file based XML disk
definitions.
On Jul 15, 2013 8:57 AM, "Wido den Hollander" <wi...@widodh.nl> wrote:

> Hi John,
>
> On 07/15/2013 04:52 PM, John Skinner wrote:
>
>> Thanks, Wido.
>>
>> I am not a programmer per se, but I am going to pull the code down and
>> have a look to see if I can figure it out. I know some java guys so may be
>> able to get some help on that end.
>>
>>
> It won't be only Java code, but also C code to manage the GlusterFS
> storage pool in libvirt: http://libvirt.org/storage.**html<http://libvirt.org/storage.html>
>
> Currently GlusterFS isn't supported in libvirt as a storage pool, but the
> CloudStack agent relies on that.
>
> It might be possible to do without libvirt, but I'm not sure how that
> would work out.
>
> Ceph and RBD are my thing, I'm not a GlusterFS expert.
>
> Wido
>
>  Thanks,
>>
>> John
>>
>> On Jul 15, 2013, at 9:36 AM, Wido den Hollander <wi...@widodh.nl> wrote:
>>
>>  Hi John,
>>>
>>> On 07/15/2013 04:31 PM, John Skinner wrote:
>>>
>>>> Is there any way to use GlusterFS with the native QEMU libgfapi so we
>>>> do not have to use Fuse to access the shares? Or are there any plans to
>>>> build libgfapi QEMU support into CloudStack in the future?
>>>>
>>>>
>>> As for now there is no way to use libgfapi with Qemu/KVM in CloudStack,
>>> nor are there any plans to implement this.
>>>
>>> Patches are welcome though! Would be great to see this be written.
>>>
>>> Wido
>>>
>>>  Thanks,
>>>>
>>>> John
>>>>
>>>>
>>>>
>>>>
>>>
>>
>

Re: GlusterFS QEMU libgfapi

Posted by Wido den Hollander <wi...@widodh.nl>.
Hi John,

On 07/15/2013 04:52 PM, John Skinner wrote:
> Thanks, Wido.
>
> I am not a programmer per se, but I am going to pull the code down and have a look to see if I can figure it out. I know some java guys so may be able to get some help on that end.
>

It won't be only Java code, but also C code to manage the GlusterFS 
storage pool in libvirt: http://libvirt.org/storage.html

Currently GlusterFS isn't supported in libvirt as a storage pool, but 
the CloudStack agent relies on that.

It might be possible to do without libvirt, but I'm not sure how that 
would work out.

Ceph and RBD are my thing, I'm not a GlusterFS expert.

Wido

> Thanks,
>
> John
>
> On Jul 15, 2013, at 9:36 AM, Wido den Hollander <wi...@widodh.nl> wrote:
>
>> Hi John,
>>
>> On 07/15/2013 04:31 PM, John Skinner wrote:
>>> Is there any way to use GlusterFS with the native QEMU libgfapi so we do not have to use Fuse to access the shares? Or are there any plans to build libgfapi QEMU support into CloudStack in the future?
>>>
>>
>> As for now there is no way to use libgfapi with Qemu/KVM in CloudStack, nor are there any plans to implement this.
>>
>> Patches are welcome though! Would be great to see this be written.
>>
>> Wido
>>
>>> Thanks,
>>>
>>> John
>>>
>>>
>>>
>>
>


Re: GlusterFS QEMU libgfapi

Posted by John Skinner <jo...@appcore.com>.
Thanks, Wido.

I am not a programmer per se, but I am going to pull the code down and have a look to see if I can figure it out. I know some java guys so may be able to get some help on that end.

Thanks,

John

On Jul 15, 2013, at 9:36 AM, Wido den Hollander <wi...@widodh.nl> wrote:

> Hi John,
> 
> On 07/15/2013 04:31 PM, John Skinner wrote:
>> Is there any way to use GlusterFS with the native QEMU libgfapi so we do not have to use Fuse to access the shares? Or are there any plans to build libgfapi QEMU support into CloudStack in the future?
>> 
> 
> As for now there is no way to use libgfapi with Qemu/KVM in CloudStack, nor are there any plans to implement this.
> 
> Patches are welcome though! Would be great to see this be written.
> 
> Wido
> 
>> Thanks,
>> 
>> John
>> 
>> 
>> 
> 


Re: GlusterFS QEMU libgfapi

Posted by Wido den Hollander <wi...@widodh.nl>.
Hi John,

On 07/15/2013 04:31 PM, John Skinner wrote:
> Is there any way to use GlusterFS with the native QEMU libgfapi so we do not have to use Fuse to access the shares? Or are there any plans to build libgfapi QEMU support into CloudStack in the future?
>

As for now there is no way to use libgfapi with Qemu/KVM in CloudStack, 
nor are there any plans to implement this.

Patches are welcome though! Would be great to see this be written.

Wido

> Thanks,
>
> John
>
>
>