[libvirt PATCH] conf: Add support for GlusterFS volumes as disk
Peter Krempa
pkrempa at redhat.com
Tue Sep 8 13:48:13 UTC 2020
On Thu, Sep 03, 2020 at 20:28:47 +0200, Vincent Vanlaer wrote:
> While libvirt has support for GlusterFS pools and volumes, they cannot
> be added to a domain. This commit adds the necessary translation between
> the pool definition and the disk definition, allowing volumes in a domain
> to be backed by a gluster pool.
>
> Signed-off-by: Vincent Vanlaer <libvirt at volkihar.be>
> ---
> src/conf/domain_conf.c | 32 +++++++++++++++++++++++++++++++-
> 1 file changed, 31 insertions(+), 1 deletion(-)
>
> diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
> index 72ac4f4191..c872d02200 100644
> --- a/src/conf/domain_conf.c
> +++ b/src/conf/domain_conf.c
> @@ -32620,6 +32620,32 @@ virDomainDiskTranslateISCSIDirect(virStorageSourcePtr src,
> }
>
>
> +static int
> +virDomainDiskTranslateGluster(virStorageSourcePtr src,
> + virStoragePoolDefPtr pooldef)
> +{
> + size_t i;
> +
> + src->srcpool->actualtype = VIR_STORAGE_TYPE_NETWORK;
> + src->protocol = VIR_STORAGE_NET_PROTOCOL_GLUSTER;
> +
> + src->nhosts = pooldef->source.nhost;
> + src->hosts = g_new0(virStorageNetHostDef, src->nhosts);
> +
> + for (i = 0; i < src->nhosts; i++) {
> + src->hosts[i].socket = NULL;
This is not required as g_new0 initializes memory to 0.
> + src->hosts[i].transport = VIR_STORAGE_NET_HOST_TRANS_TCP;
> + src->hosts[i].name = g_strdup(pooldef->source.hosts[i].name);
> + src->hosts[i].port = pooldef->source.hosts[i].port;
> + }
> +
> + src->volume = g_strdup(pooldef->source.name);
> + src->path = g_strdup_printf("%s/%s", pooldef->source.dir, src->srcpool->volume);
The source dir seems to be '/' in case when it's not configured, which
would format a wrong path of "//blah.img" if you don't configure it
properly, so you'll probably need to do some special-casing here.
More information about the libvir-list
mailing list