[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: [libvirt] [PATCH 08/13] qemu: add support for libiscsi



Il 11/03/2013 11:44, Osier Yang ha scritto:
> On 2013年02月26日 01:44, Paolo Bonzini wrote:
>> libiscsi provides a userspace iSCSI initiator.
>>
>> The main advantage over the kernel initiator is that it is very
>> easy to provide different initiator names for VMs on the same host.
>> Thus libiscsi supports usage of persistent reservations in the VM,
>> which otherwise would only be possible with NPIV.
>>
>> libiscsi uses "iscsi" as the scheme, not "iscsi+tcp".  We can change
>> this in the tests (while remaining backwards-compatible manner, because
>> QEMU uses TCP as the default transport for both Gluster and NBD).
>>
>> Signed-off-by: Paolo Bonzini<pbonzini redhat com>
>> ---
>>   src/qemu/qemu_command.c                            | 49
>> +++++++++++++++++++++-
>>   tests/qemuargv2xmltest.c                           |  1 +
>>   .../qemuxml2argv-disk-drive-network-gluster.args   |  2 +-
>>   .../qemuxml2argv-disk-drive-network-iscsi.args     |  1 +
>>   ...ml2argv-disk-drive-network-nbd-ipv6-export.args |  2 +-
>>   .../qemuxml2argv-disk-drive-network-nbd-ipv6.args  |  2 +-
>>   tests/qemuxml2argvtest.c                           |  2 +
>>   7 files changed, 54 insertions(+), 5 deletions(-)
>>   create mode 100644
>> tests/qemuxml2argvdata/qemuxml2argv-disk-drive-network-iscsi.args
>>
>> diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
>> index 733d3bf..07700cc 100644
>> --- a/src/qemu/qemu_command.c
>> +++ b/src/qemu/qemu_command.c
>> @@ -2145,6 +2145,23 @@ qemuParseGlusterString(virDomainDiskDefPtr def)
>>   }
>>
>>   static int
>> +qemuParseISCSIString(virDomainDiskDefPtr def)
>> +{
>> +    virURIPtr uri = NULL;
>> +
>> +    if (!(uri = virURIParse(def->src)))
>> +        return -1;
>> +
>> +    if (uri->path&&  strchr(uri->path + 1, '/')) {
>> +        virReportError(VIR_ERR_INTERNAL_ERROR,
>> +                       _("invalid address for iSCSI target"),
>> disk->src);
>> +        return -1;
>> +    }
>> +
>> +    return qemuParseDriveURIString(def, uri, "iscsi");
>> +}
>> +
>> +static int
>>   qemuParseNBDString(virDomainDiskDefPtr disk)
>>   {
>>       virDomainDiskHostDefPtr h = NULL;
>> @@ -2238,8 +2255,14 @@ qemuBuildDriveURIString(virDomainDiskDefPtr
>> disk, virBufferPtr opt,
>>       virBufferAddLit(opt, "file=");
>>       transp =
>> virDomainDiskProtocolTransportTypeToString(disk->hosts->transport);
>>
>> -    if (virAsprintf(&tmpscheme, "%s+%s", scheme, transp)<  0)
>> -        goto no_memory;
>> +    if (disk->hosts->transport == VIR_DOMAIN_DISK_PROTO_TRANS_TCP) {
>> +        tmpscheme = strdup(scheme);
>> +        if (tmpscheme == NULL)
>> +            goto no_memory;
> 
> Why not keeping the "+tcp" for Gluster and NBD instead?

Because it simplifies the code.

> I'm afraid of of relying on qemu's default. Can it be changed?

No, it's API.

Paolo


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]