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

[Xen-devel] [RFC] support more qdisk types

I would like to hear the community's opinion on supporting more qdisk types in
xl/libxl, e.g. nbd, rbd, iSCSI, etc. I prefer supporting additional qdisk types
in libxl over apps like xl or libvirt doing all the setup, producing a block
device, and then passing that to libxl. Each libxl app would have to
re-implement functionality already provided by qdisk. libxl already supports
IDE, AHCI, SCSI, and Xen PV qdisks. My suggestion is to extend that to initially
include nbd, rbd, and iSCSI. Sheepdog, ssh, etc. could be added in the future.

I considered several approaches to supporting additional qdisk types, based
primarily on changes to the disk cfg and interface. At one extreme is to change
nothing and use the existing 'target=' to encode all required config for the
additional qdisk types. libxl would need to be taught how to turn the blob into
an appropriate qdisk. At the other extreme is extending xl-disk-configuration
with discrete knobs for each possible config item and making the
libxl_device_disk structure more hierarchical. E.g.

libxl_device_disk {
    ... existing
    libxl_device_disk_source src;

libxl_device_disk_source {
    libxl_disk_source_protocol protocol;
    int num_hosts;
    libxl_disk_source_host hosts;
    libxl_disk_source_auth auth;

enum libxl_disk_source_protocol {

libxl_disk_source_host {
    char *name;
    int port;

libxl_disk_source_auth {
    char *user;
    char *data;

As an initial RFC, I took a stab at something in the middle, adding a few items
to the xl-disk-configuration and libxl_device_disk. Attached is a patch to the
doc and IDL illustrating the proposal.

Suggests, comments, and feedback warmly welcomed.


Attachment: RFC-support-more-qdisk-types.patch
Description: Text Data

Xen-devel mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.