[libvirt] [PATCH] storage backend: Add sheepdog support

Sebastian Wiedenroth sebastian.wiedenroth at skylime.net
Wed Jun 13 15:36:05 UTC 2012


Am 13.06.2012 um 15:52 schrieb Daniel P. Berrange:

> On Tue, Jun 12, 2012 at 10:31:54AM +0200, Sebastian Wiedenroth wrote:
>> +
>> +    cmd = virCommandNew(COLLIE);
>> +    virCommandAddArgList(cmd, "vdi", "list", vol->name, "-r", NULL);
>> +    virStorageBackendSheepdogAddHostArg(cmd, pool);
>> +    virCommandSetOutputBuffer(cmd, &output);
>> +    ret = virCommandRun(cmd, NULL);
>> +
>> +    if (ret < 0)
>> +        goto cleanup;
>> +
>> +    if ((ret = virStorageBackendSheepdogParseVdiList(vol, output)) < 0)
>> +        goto cleanup;
>> +
>> +    vol->type = VIR_STORAGE_VOL_NETWORK;
>> +
>> +    VIR_FREE(vol->key);
>> +    if (virAsprintf(&vol->key, "%s/%s",
>> +                    pool->def->source.name, vol->name) == -1) {
>> +        virReportOOMError();
>> +        goto cleanup;
>> +    }
> 
> Does sheepdog associate any kind of globally unique UUID with
> storage volumes ?  If so, it'd be desirable to use that as the
> key, instead of being name based, so that we have stronger
> uniqueness & stability guarentees.

Sheepdog storage volumes do have a very short "vdi id" which is
calculated from the hash of the name.
So using the name, as collie does, should be fine.

> All in all, i think this looks good

Thanks for the review.
I'll repost a v2 after addressing the remaining issues.

Best regards,
Sebastian




More information about the libvir-list mailing list