mirror of
https://github.com/libvirt/libvirt.git
synced 2025-02-25 18:55:26 -06:00
Add a sheepdog backend for the storage driver
This patch brings support to manage sheepdog pools and volumes to libvirt.
It uses the "collie" command-line utility that comes with sheepdog for that.
A sheepdog pool in libvirt maps to a sheepdog cluster.
It needs a host and port to connect to, which in most cases
is just going to be the default of localhost on port 7000.
A sheepdog volume in libvirt maps to a sheepdog vdi.
To create one specify the pool, a name and the capacity.
Volumes can also be resized later.
In the volume XML the vdi name has to be put into the <target><path>.
To use the volume as a disk source for virtual machines specify
the vdi name as "name" attribute of the <source>.
The host and port information from the pool are specified inside the host tag.
<disk type='network'>
...
<source protocol="sheepdog" name="vdi_name">
<host name="localhost" port="7000"/>
</source>
</disk>
To work right this patch parses the output of collie,
so it relies on the raw output option. There recently was a bug which caused
size information to be reported wrong. This is fixed upstream already and
will be in the next release.
Signed-off-by: Sebastian Wiedenroth <wiedi@frubar.net>
This commit is contained in:
committed by
Daniel P. Berrange
parent
e00184291e
commit
29bc4fe646
11
tests/storagepoolxml2xmlout/pool-sheepdog.xml
Normal file
11
tests/storagepoolxml2xmlout/pool-sheepdog.xml
Normal file
@@ -0,0 +1,11 @@
|
||||
<pool type='sheepdog'>
|
||||
<name>sheepdog</name>
|
||||
<uuid>65fcba04-5b13-bd93-cff3-52ce48e11ad7</uuid>
|
||||
<capacity unit='bytes'>0</capacity>
|
||||
<allocation unit='bytes'>0</allocation>
|
||||
<available unit='bytes'>0</available>
|
||||
<source>
|
||||
<host name='localhost' port='7000'/>
|
||||
<name>sheepdog</name>
|
||||
</source>
|
||||
</pool>
|
||||
Reference in New Issue
Block a user