subuk / vmango

Your own personal IaaS cloud
https://vmango.org
MIT License
329 stars 55 forks source link

Feature Request: Volume Backing Store #70

Open captainwasabi opened 4 years ago

captainwasabi commented 4 years ago

this would be a great new feature that I am currently making good use of. If you are familiar with overlayfs you know what it is. This allows a volume to be based on another volume or file containing an image. The volume only stores the differences. The base image can be smaller than the new volume, and a new partition can be created and joined to the LVM VG (or if you are using cloud-init perhaps the root can just be grown.)

Anyway this is what the xml looks like:

<volume type='file'>
  <name>server-logs-root</name>
  <key>/var/lib/libvirt/images/server-logs-root</key>
  <source>
  </source>
  <capacity unit='bytes'>21474836480</capacity>
  <allocation unit='bytes'>1126572032</allocation>
  <physical unit='bytes'>1126629376</physical>
  <target>
    <path>/var/lib/libvirt/images/server-logs-root</path>
    <format type='qcow2'/>
    <permissions>
      <mode>0644</mode>
      <owner>107</owner>
      <group>107</group>
      <label>system_u:object_r:svirt_image_t:s0:c7,c697</label>
    </permissions>
    <timestamps>
      <atime>1590669285.498552972</atime>
      <mtime>1590669965.884995646</mtime>
      <ctime>1590669965.884995646</ctime>
    </timestamps>
  </target>
  <backingStore>
    <path>/var/lib/libvirt/images/server-base.qcow2</path>
    <format type='qcow2'/>
    <permissions>
      <mode>0600</mode>
      <owner>107</owner>
      <group>107</group>
      <label>system_u:object_r:virt_content_t:s0</label>
    </permissions>
    <timestamps>
      <atime>1590665394.692687357</atime>
      <mtime>1590615996.027581893</mtime>
      <ctime>1590665393.517669122</ctime>
    </timestamps>
  </backingStore>
</volume>