OpenNebula / one

The open source Cloud & Edge Computing Platform bringing real freedom to your Enterprise Cloud 🚀
http://opennebula.io
Apache License 2.0
1.19k stars 473 forks source link

Volatile disk backups size is ignored #6607

Open OpenNebulaSupport opened 4 weeks ago

OpenNebulaSupport commented 4 weeks ago

Description When restoring a backup image of a VM containing volatile disks, the result of the backed up volatile disk is a datablock image whose size is the same as the non volatile disk.0 image. The backup process uses the same SIZE attribute of disk.0 for restoring both disks.

To Reproduce

In this example a VM template with disk.0 having SIZE=1337 and disk.2 SIZE=5120 are restored to two disks with SIZE=1337

root@minione-11186:~# onetemplate show 1 -j | jq .VMTEMPLATE.TEMPLATE
{
  "BACKUP_CONFIG": {
    "BACKUP_VOLATILE": "YES",
    "FS_FREEZE": "AGENT",
    "MODE": "FULL"
  },
  "CONTEXT": {
    "NETWORK": "YES",
    "PASSWORD": "JtKNLY/CqT6K/JFLySMGdQ==",
    "REPORT_READY": "YES",
    "SSH_PUBLIC_KEY": "$USER[SSH_PUBLIC_KEY]",
    "TOKEN": "YES"
  },
  "CPU": "1",
  "DISK": [
    {
      "IMAGE_ID": "0",
      "SIZE": "1337"
    },
    {
      "DEV_PREFIX": "vd",
      "FORMAT": "qcow2",
      "SAVE": "NO",
      "SIZE": "5120",
      "TYPE": "fs"
    }
  ],
  "GRAPHICS": {
    "LISTEN": "0.0.0.0",
    "TYPE": "VNC"
  },
  "HOT_RESIZE": {
    "CPU_HOT_ADD_ENABLED": "NO",
    "MEMORY_HOT_ADD_ENABLED": "NO"
  },
  "LOGO": "images/logos/linux.png",
  "LXD_SECURITY_PRIVILEGED": "true",
  "MEMORY": "128",
  "MEMORY_RESIZE_MODE": "BALLOONING",
  "MEMORY_UNIT_COST": "MB",
  "NIC": {
    "NETWORK": "vnet",
    "NETWORK_UNAME": "oneadmin",
    "SECURITY_GROUPS": "0"
  },
  "NIC_DEFAULT": {
    "MODEL": "virtio"
  },
  "OS": {
    "ARCH": "x86_64",
    "FIRMWARE": "",
    "FIRMWARE_SECURE": "YES"
  }
}
root@minione-11186:~# onetemplate instantiate 1
VM ID: 3
root@minione-11186:~# oneimage list
  ID USER     GROUP    NAME                                                                                                                  DATASTORE     SIZE TYPE PER STAT RVMS
   4 oneadmin oneadmin 3 04-Jun 14.53.36                                                                                                     RBackups      117M BK   Yes rdy     1
   0 oneadmin oneadmin Alpine Linux 3.17                                                                                                     default       256M OS    No used    1
root@minione-11186:~# oneimage restore 4 -d 1
VM Template: 3
Images: 5 6
root@minione-11186:~# onetemplate show 3 -j | jq .VMTEMPLATE.TEMPLATE
{
  "CONTEXT": {
    "NETWORK": "YES",
    "ONEGATE_ENDPOINT": "http://172.16.100.1:5030",
    "PASSWORD": "JtKNLY/CqT6K/JFLySMGdQ==",
    "REPORT_READY": "YES",
    "SSH_PUBLIC_KEY": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDcYm3YCAVS4RZVRwzRf2NxA86eQf4H4zQdzlZ5kINefAdv/gGeMXSVMNhpN2QD4kBaMh+Frcqxvv6i4JxBWidWw5Nfv1f4hHhX8W6gY73bdQaLNBEQcSyq6eEVAN6ZSdzMca5JT4QCjmOkGctiF3loC8LIo+pjuBT8Q6qnXr30RilRt/+YZv7FR7WGJ2EdjiYgaTpl/pB68SQNgS0osy25oSHWy5PvFQtFnEjm8KRi1GAdb4wr++jleE3vbgiSmy/mkrB2rKdqZqwVFZF9RZ7nbPpyEes9Jxeida+DFfITjwE5rH/5Sv7xcy2vUrfhj2QCwiP3ymGLo4f4YW7jlBwWaUZeZHDI/ljZVTB2rHHs59GWzzql5StgrayjblM549QK7KZ+x970bQKnucB7BlM4YfmVyYTGLAY7i7GOZEVUy/5PFVnViQmc7PDzKETfn6sFTSyZs7HFfE+Si3T3tTzbio6Qfdu66uXsguioEcwBSwzmWUR+Sl/70oCZ0ZG1Pjs= oneadmin@minione-11186\nssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCVzwh0EN6kMgH1Pb7jacPLIZE97OHhDIjBre7IoMk9rAda+IhK0YSy2uiFQzOLqqJy5nmljhzPpruvWnRj5airixHe4t3+GnmRQo44vahzBhwuL3t3QZ3eCcsvq9RrCs6tjU5jQ2LH87ugKhMBIqWk2s0jPfAbeUbkL5qyPKFWAZ+asp4XBRc8PgnNes2QfiebEQw8bbp8Q9yfy0Oi1a+xvyec626QxL1f7ce3kBp1nsWWAx6pATM4QTRbN29/E8WCKfmIwP6ovKBlBYTpVeONRdaUzXChSN3jI1aMWXa4egoVB2xQ7SKNvEacwJOtjd7x04cCTBzSGRY0PQ7vAWPyL7Vr7iKf8WIo8Y6Nv5lOk6zqh2Ghw2cISD4tZQvAigB/qIcdAsp6Ph1dWalg2jKz1yLpdoBQKZ88Puz/UZTOBg/YSuv0G/jgSt2s7nf/PxLpW8Vk3zkdHlItVMheZLstR4wws/1+1vwYbVsPtfjvm3e0OuJTRIMOnWUCIyiIGqM= root@minione-11186",
    "TARGET": "hda",
    "TOKEN": "YES",
    "VMID": "3"
  },
  "CPU": "1",
  "CREATED_BY": "0",
  "DISK": [
    {
      "DEV_PREFIX": "vd",
      "IMAGE_ID": "5"
    },
    {
      "DEV_PREFIX": "vd",
      "IMAGE_ID": "6"
    }
  ],
  "GRAPHICS": {
    "LISTEN": "0.0.0.0",
    "TYPE": "VNC"
  },
  "HOT_RESIZE": {
    "CPU_HOT_ADD_ENABLED": "NO",
    "MEMORY_HOT_ADD_ENABLED": "NO"
  },
  "LOGO": "images/logos/linux.png",
  "LXD_SECURITY_PRIVILEGED": "true",
  "MEMORY": "128",
  "MEMORY_RESIZE_MODE": "BALLOONING",
  "MEMORY_UNIT_COST": "MB",
  "NIC": {
    "GATEWAY": "172.16.100.1",
    "IP": "172.16.100.2",
    "MODEL": "virtio",
    "NETWORK": "vnet",
    "NETWORK_UNAME": "oneadmin",
    "SECURITY_GROUPS": "0"
  },
  "NIC_DEFAULT": {
    "MODEL": "virtio"
  },
  "OS": {
    "ARCH": "x86_64",
    "FIRMWARE_SECURE": "YES"
  },
  "READY": "YES"
}
root@minione-11186:~# oneimage list
  ID USER     GROUP    NAME                                                                                                                  DATASTORE     SIZE TYPE PER STAT RVMS
   6 oneadmin oneadmin 3-6c567eb7-disk-1                                                                                                     default       1.3G DB    No rdy     0
   5 oneadmin oneadmin 3-6c567eb7-disk-0                                                                                                     default       1.3G OS    No rdy     0
   4 oneadmin oneadmin 3 04-Jun 14.53.36                                                                                                     RBackups      117M BK   Yes rdy     1
   0 oneadmin oneadmin Alpine Linux 3.17                                                                                                     default       256M OS    No used    1

Expected behavior

SIZE should be the same one as defined on the volatile disk element.

Details

Additional context

While reproducing the issue, this bug was also noticed.

Progress Status