Owner

Current status

Detailed Description

Fedora 8 introduced the ability to manage existing guest domains remotely using libvirt. It was not possible to create new remote guests due to lack of storage management capabilities. This feature is to add the ability to list, create and delete storage volumes from a remote host using libvirt. This includes the ability to create raw sparse & non-sparse files in a directory, allocate LVM logical volumes, partition physical disks, and attach to iSCSI targets.

Benefit to Fedora

This will enable the virt-manager tool to remote provision new guest domains, and manage the storage associated with them. It will provide improved SELinux integration, since the APIs will be able to ensure that all storage volumes have the correct SELinux security context when being assigned to a guest.

Scope

List storage volumes in a directory, and allocate new volumes, raw files both sparse and non-sparse, and formats supported by qemu-img (cow, qcow, qcow2, vmdk, etc)

List partitions in a disk, and allocate new partitions from free space

Logic to an iSCSI server and list volumes associated with an exported target

User Experience

There will no longer be any need to directly login to a server providing virtualization capabilities. All common management tasks can be completed remotely using virt-manager.

Dependencies

Core storage APIs in libvirt:

File based storage backend in libvirt (Done, in F9)

LVM based storage backend in libvirt (Done, F9)

Disk based storage backend in libvirt (Can list existing devices, partition removal fix is posted, needs some work for adding)

iSCSI based storage backend in libvirt (Done, in F9)

virt-manager:

UI for browsing storage pools, and allocating storage volumes from a pool (Done)

Provision directory/file based pools and volumes (Done)

Provision disk pools and partition volumes (in progress)

Provision LVM based pools and volumes (Done)

Use iSCSI storage pools and volumes (in progress)

Contingency Plan

As long as virt-manager UI is taken upstream, current situation is acceptable. Disk and iSCSI support can be added later with
not a large amount of effort. File based provisioning is the priority and it is already in working order.

Logical Pools: Add and Deleting of Pool and Volumes supported. The one issue though is that the pool must be created from an existing volume group. There is also a bug blocking this from correctly functioning at the libvirt level (https://bugzilla.redhat.com/show_bug.cgi?id=461962), though aside from that everything should be golden