[Libvir] PATCH: 13/16: iSCSI backend
Daniel Veillard
veillard at redhat.com
Tue Feb 19 08:24:21 UTC 2008
On Tue, Feb 12, 2008 at 04:39:25AM +0000, Daniel P. Berrange wrote:
> This provides a storage pool using the iSCSI protocol. Since there
> is no API for iSCSI it is implemented by simply shelling out to the
> iscsiadm command line tool. A pool corresponds to a single target
> on the iSCSI server. Starting a pool logs into the server and maps
> the target's LUNs into the local filesystem. The default nodes are
> under /dev, allocated-on-demand and thus not guarenteed to be stable
> across reboots. For this reason it is recommended by the pool target
> path be configured to point to /dev/disk/by-path or /dev/disk/by-id
> whose entries are guarenteed stable for lifetime of the target+LUN.
> The 'refresh' operation will rescan the target for new LUNs and purge
> old LUNs allowing dynamic updates without needing a pool restart.
Okay, the portability of this code will be fun, but that
makes sense as is,
> diff -r 9a3200af0a3d libvirt.spec.in
> --- a/libvirt.spec.in Thu Feb 07 11:14:56 2008 -0500
> +++ b/libvirt.spec.in Thu Feb 07 11:34:46 2008 -0500
> @@ -51,6 +51,8 @@ Requires: /usr/sbin/qcow-create
> %endif
> # For LVM drivers
> Requires: lvm2
> +# For ISCSI driver
> +Requires: iscsi-initiator-utils
Apparently iscsi-initiator-utils exists in RHEL 4 (and 3 but
we are not tergetting that old) it would be great if that worked
there too.
[...]
> +static int virStorageBackendISCSIMakeLUN(virConnectPtr conn,
> + virStoragePoolObjPtr pool,
> + char **const groups,
> + void *data ATTRIBUTE_UNUSED)
[...]
> + if ((devpath = malloc(5 + strlen(dev) + 1)) == NULL) {
> + virStorageReportError(conn, VIR_ERR_NO_MEMORY, "devpath");
> + goto cleanup;
> + }
> + strcpy(devpath, "/dev/");
> + strcat(devpath, dev);
each time i see strcat() I get afraid, a good old snprintf for those
2 is probably easier to understand.
Looks fine to me, i never played with iSCSI, so no real insight on the
questions left in the code.
Daniel
--
Red Hat Virtualization group http://redhat.com/virtualization/
Daniel Veillard | virtualization library http://libvirt.org/
veillard at redhat.com | libxml GNOME XML XSLT toolkit http://xmlsoft.org/
http://veillard.com/ | Rpmfind RPM search engine http://rpmfind.net/
More information about the libvir-list
mailing list