Hi Dan,
FWIW, this looks pretty much spot on to me ... I'm not sure there's a
lot to discuss :-)
On Tue, 2007-10-16 at 16:19 +0100, Daniel P. Berrange wrote:
Application users
=================
- virt-manager / virt-install
- Enumerate available pools
- Allocate volume from pool
- Create guest with volume
Nice that you list these and concentrate on them.
Two core concepts
- Volume
- a chunk of storage
- assignable to a guest
- assignable to a pool
- optionally part of a pool
- Pool
- a chunk of storage
- contains free space
- allocate to provide volumes
- compromised of volumes
Recursive!
n x Volume -> Pool -> n x Volume
Nesting to many levels...
Hmm, I'd try and avoid the confusion associated with this nesting
concept ...
What kind of uses for it are you thinking?
(e.g. something like allocate a big raw sparse volume, create a pool
from it and and then allocate volumes from that pool?)
Is it that you need to somehow represent the storage that a pool can
allocate from and that that winds up being similar to how you represent
storage that is assignable to a pool?
If that's the case, maybe fold the concept of "what a pool allocates
from" into the pool concept and make the volume concept just about "what
are assignable to guests".
Operations
==========
Limited set of operations to perform
- List host volumes (physical attached devices)
- List pools (logical volume groups, partitioned devs, filesystems)
- List pool volumes (dev partitions, LVM logical volumes, files)
Perhaps there should be a default pool for each host so that to list
host volumes you just list the volumes from the default pool?
Cheers,
Mark.