[libvirt] [PATCH 0/7] fspool: backend directory

Olga Krishtal okrishtal at virtuozzo.com
Thu Aug 25 11:03:01 UTC 2016


On 25/08/16 04:14, Daniel P. Berrange wrote:
> On Fri, Aug 19, 2016 at 06:03:28PM +0300, Olga Krishtal wrote:
>> Hi everyone, we would like to propose the first implementation of fspool
>> with directory backend.
>>
>> Filesystem pools is a facility to manage filesystems resources similar
>> to how storage pools manages volume resources. Furthermore new API follows
>> storage API closely where it makes sense. Uploading/downloading operations
>> are not defined yet as it is not obvious how to make it properly. I guess
>> we can use some kind of tar to make a stream from a filesystem. Please share
>> you thoughts on this particular issue.
>>
>> The patchset provides 'dir' backend which simply expose directories in some
>> directory in host filesystem. The virsh commands are provided too. So it is
>> ready to play with, just replace 'pool' in xml descriptions and virsh commands
>> to 'fspool' and 'volume' to 'item'.
>> Examle and usage:
>> Define:
>> virsh -c qemu:///system fspool-define-as fs_pool_name dir --target /path/on/host
>> Build
>> virsh -c qemu:///system fspool-build fs_pool_name
>> Start
>> virsh -c qemu:///system fspool-start fs_pool_name
>> Look inside
>> virsh -c qemu:///system fspool-list (--all) fspool_name
>>
>> Fspool called POOL, on the host fs uses /fs_driver to hold items.
>>    virsh -c qemu:///system fspool-dumpxml POOL
>>    <fspool type='dir'>
>>      <name>POOL</name>
>>      <uuid>c57c9d7c-b1d5-4c45-ba9c-67f03d4da160</uuid>
>>      <capacity unit='bytes'>733722615808</capacity>
>>      <allocation unit='bytes'>1331486720</allocation>
>>      <available unit='bytes'>534810800128</available>
>>      <source>
>>      </source>
>>      <target>
>>        <path>/fs_driver</path>
>>        <permissions>
>>          <mode>0755</mode>
>>          <owner>0</owner>
>>          <group>0</group>
>>        </permissions>
>>      </target>
>>    </fspool>
>>
>> virsh -c qemu:///system fspool-info POOL
>> Name:           POOL
>> UUID:           c57c9d7c-b1d5-4c45-ba9c-67f03d4da160
>> State:          running
>> Persistent:     yes
>> Autostart:      no autostart
>> Capacity:       683.33 GiB
>> Allocation:     1.24 GiB
>> Available:      498.08 GiB
>>
>> virsh -c qemu+unix:///system item-list POOL
>>    Name                 Path
>> ------------------------------------------------------------------------------
>> item1                /fs_driver/item1
>> item10               /fs_driver/item10
>> item11               /fs_driver/item11
>> item12               /fs_driver/item12
>> item15               /fs_driver/item15
>>
>> Fspool of directory type is some directory on host fs that holds items (subdirs).
>> Example of usage for items:
>> virsh -c vz+unix:///system item-create-as POOL item1 1g - create item
>> virsh -c qemu+unix:///system item-dumpxml item1 POOL
>> <fsitem>
>>      <name>item1</name>
>>      <key>/fs_driver/item1</key>
>>      <source>
>>        fspoo ='POOL'
> Is this a typo, or is it really what you intend the <source>
> content to look like. It seems rather odd to me
It should be <fspool name= 'POOL'/> but afterword  xml looks like:
<item>
   <name>item1</name>
   <key>/home/gray_pig/dirfspool/item1</key>
   <capacity unit='bytes'>1073741824</capacity>
   <allocation unit='bytes'>0</allocation>
   <target>
     <permissions>
       <mode>0600</mode>
       <owner>0</owner>
       <group>0</group>
     </permissions>
   </target>
</item>

>>      </source>
>>      <capacity unit='bytes'>0</capacity>
>>      <allocation unit='bytes'>0</allocation>
>>      <target>
>>        <format type='dir'/>
>>      </target>
>>    </fsitem>
>> virsh -c qemu+unix:///system item-info item1 POOL
>> Name:           item1
>> Type:           dir
>> Capacity:       683.33 GiB
>> Allocation:     634.87 MiB
>> Autostart:      no autostart
>> Capacity:       683.33 GiB
>> Allocation:     1.24 GiB
>> Available:      498.08 GiB
>> virsh -c qemu+unix:///system item-list POOL
>>    Name                 Path
>> ------------------------------------------------------------------------------
>>    item1                /fs_driver/item1
>>    item10               /fs_driver/item10
>>    item11               /fs_driver/item11
>>    item12               /fs_driver/item12
>>    item15               /fs_driver/item15
>>
> Regards,
> Daniel





More information about the libvir-list mailing list