RFC filesystem pool proposal description.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



In this proposal description we would like to introduce a separate pool
type:fspool. Fspool provides and manages filesystems.
Below are listed possible examples of fspool, depending on source type:
volume, directory or network.

Volume fspool uses storage pool volume to reside upon.
<fspool type = 'volume'>
  <name>fspool</name>
  <uuid>cb07b799-8e03-485c-aaa0-7c88f60b37b0</uuid>
  <allocation>0</allocation>
  <capacity>0<capacity>
  <source>
    <pool ='pool name'/>
    <volume='volume name'/>
    <format type = 'ext4'/> (ext4, zfs - depending on type of volume that is used as a backend).
  <source/>
  <target>
    <path>/path/to/fspool</path>
    <permissions>
      <mode>0777</mode>
      <owner>0</owner>
      <group>0</group>
    </permissions>
  </target>
</fspool>

Directory fspool represents a host directory:
<fspool type = 'dir'>
  <name>fspool</name>
  <uuid>cb07b799-8e03-485c-aaa0-7c88f60b37b0</uuid>
  <target>
    <path>/path/to/fspool/root</path>
    <permissions>
      <mode>0777</mode>
      <owner>0</owner>
      <group>0</group>
    </permissions>
  </target>
</fspool>

Network fspool is similar to previous one, except it is remote:
<fspool type='network'>
  <name>fspool</name>
  <uuid>b27a72b5-a92e-4e58-a172-a80ba73b30fe</uuid>
  <source>
    <host name='X.X.X.X'/>  - if the pool is not on the host
    <dir path='some/directory/exposed/to/our/host'/>
  </source>
  <target>
    <path>/fspool</path>
  </target>
</fspool>

basic API for fspool management:
fspool-define
fspool-build
fspool-start
fspool-stop
fspool-destroy
fspool-undefine

Fspools are divided into fs items. Single item is a directory inside the fspool root directory.
Fs item example is listed below:
<fs>
  <name>item</name>
  <allocation>0</allocation>
  <capacity>0<capacity>
  <source>fspool='name'</source>
  <target>
    <path>/fspool</path>
  </target>
  <permissions>
    <mode>0777</mode>
    <owner>0</owner>
    <group>0</group>
    <cgroups> Limits</cgroups>
  </permissions>
</fs>

- allocation/capacity - is omitted when fspools type is directory.
- target path is a path to fs item from the fspool root. If it is not
present then the content of item is placed directly in fspool root.
- cgroups can be used in order to manipulate space usage politics.

Fs items will be manipulated via fs API:
fs-define
fs-delete
fs-list

In addition to containers use-cases, fspools are also useful for libvirt itself - they will help store and
easily manage some internal metadata, such  as snapshots or internal connection driver information (logs, domain configurations, etc).


Please, take a look and share your opinion.


Olga











--
libvir-list mailing list
libvir-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/libvir-list



[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]