On Mon, Sep 02, 2013 at 02:48:12PM +0300, Oskari Saarenmaa wrote:
This commit adds a new storage pool driver, btrfs, which can be used
to
manage btrfs subvolumes on an existing btrfs filesystem. The driver can
create new blank subvolumes and snapshots of existing subvolumes as well
as delete existing subvolumes.
The subvolumes created are automatically made visible on the host side
and can be attached to domains using the <filesystem> tags as defined in
'format domain' documentation.
Libvirt volumes do not implement quotas at the moment because the current
(btrfs-progs-0.20.rc1.20130501git7854c8b-4.fc20.x86_64) support for quota
management in btrfs-progs is lacking the necessary features, for example
it's not possible to see the quota assigned to a certain subvolume and
usage information is only updated on syncfs(2). Quota support will be
implemented once the tools gain the necessary features.
Signed-off-by: Oskari Saarenmaa <os(a)ohmu.fi>
You're going to hate me, but having played around with this, I don't
believe it should be a separate pool driver. I think it should be
part of the 'storage_fs.c' driver. The way I see it, a btrfs subvolume
is just a special kind of volume in a directory.
eg given a directory located on btrnfs /foo/bar it is perfectly
valid to want to support
/foo/bar/somedir (plain directory)
/foo/bar/voldir (subvolume directory)
/foo/var/somefile.qcow2 (qcow2 file)
etc.
I'd suggest that we should make it possible to create directories
in the FS storage pool, but supporting use of a new attribute
type='file|network|dir'
on the top level <volume> element.
Then distinguish between plain directories, and those backed by
a subvolme using the <format> element,
So, eg to create a btrfs subvolume use
<volume type='dir'>
<name>wizz</name>
<key>/mnt/btr/wizz</key>
<source>
</source>
<capacity unit='bytes'>0</capacity>
<allocation unit='bytes'>0</allocation>
<target>
<path>/mnt/btr/wizz</path>
<format type='volume'/>
</target>
</volume>
This is a more generic approach that will work if any other FS grow
support for subvolumes like btrfs has.
Regards,
Daniel
--
|:
http://berrange.com -o-
http://www.flickr.com/photos/dberrange/ :|
|:
http://libvirt.org -o-
http://virt-manager.org :|
|:
http://autobuild.org -o-
http://search.cpan.org/~danberr/ :|
|:
http://entangle-photo.org -o-
http://live.gnome.org/gtk-vnc :|