2244 Commits
Author SHA1 Message Date
Jan Orel 708c69158a M #-: Bump version 7.0.1 (#3889) 2025-10-22 09:59:48 +02:00
MarioRobres 9c6d788327 B OpenNebula/one#6951: delete cluster_vnc_bitmap record when deleting a cluster (#3882)
(cherry picked from commit 77c59fb1c5)
2025-10-17 10:42:40 +02:00
Pavel Czerný 37b6502328 B #7256: Fix get_client_ip to work with newer versions of xmlrpc-c (#3842)
(cherry picked from commit e44205279d)
2025-10-01 12:11:01 +02:00
Ruben S. Montero 7f2997ce1b M #-: Add support for ARM virt machine type
Provides a similar configuration as the one performed for q35 on intel
hosts

(cherry picked from commit 2608a730a1)
2025-09-20 19:09:54 +02:00
Pavel Czerný 2d4b7e8b0b M #-: VN Template remove non-working check restricted attributes (#3788) 2025-09-15 09:44:12 +02:00
Ruben S. Montero 5c693d6741 M #-: Update incremental backup check.
This commit reverts the backup_incremental test. Now we check for not supported
configurations:

- qcow2 disks with snapshots
- raw disks in local/shared TM's
- lvm with lvm thin disabled
2025-09-03 09:35:29 +02:00
MarioRobres 66bdd581d9 F OpenNebula/one#7097: Retrieve BRIDGE from Core for Backups (#3701)
Add LAST_BRIDGE To the backup operation. OpenNebula oned selects and stores the bridge in the BACKUP metadata. The drivers can use the selected bridge to perform the different backup phases (on the same bridge)

(cherry picked from commit 18e251659d)
2025-07-14 12:56:22 +02:00
Tino Vázquez a2d59b8f0c M #-: Bump version 7.0.0 2025-06-24 13:40:39 +02:00
Ruben S. Montero 441b4e6ae0 F OpenNebula/one#7077: NUMA PCIe topology
This commits adds support for generating a NUMA PCIe hierarchy by adding
a pcie-expander-bus in each virtual node. When a PCI passthrough or
SR-IOV device is added is attached to the same virtual node as the
physical server. Changes include:

 - Generate VM_* device parameters when the allocation is performed
 - Generate CONTEXT PCIi_ADDRESS parameters at deployment time
 - Refactor of the HostSharePCI to simplify argument passing.

The hierarchy created is as follows (example 2 NUMA nodes):

                      +-----------+
                      |           |
                      | PCIe Root |
                      |           |
                      +--+-----+--+
                         | ... |
                   +-----+     +-----+
    NUMA node 0    |                 |    NUMA node 1
              +----+-----+      +----+-----+
              | expander |      | expander |
              |    bus   |      |    bus   |
              +----+-----+      +----+-----+
                   |                 |
                   |                 ...
                   |
                   +------> port (0)
                   |        ...
                   +------> port (3)
                   |
                   |    +-----------+
                   | up |   PCIe    +-----> downstream port (0)
                   +----+  Switch   |       ...
                        |           +-----> downstream port (8)
                        +-----------+
2025-06-13 14:12:36 +02:00
Pavel Czerný 215d93ea56 F #7067: Add MODTIME to Images (#3655) 2025-06-04 17:59:08 +02:00
Pavel Czerný 7e66b09aa3 M #-: Cache Cluster object in Host (#3651)
* It avoids multiple read of Cluster object during lifetime of Host
2025-05-27 12:46:26 +02:00
Tino Vázquez 0642d83e7d M #-: Bump version 6.99.90 2025-05-22 11:30:52 +02:00
Pavel Czerný 1bc7c1f882 B #6857: Disable KEEP_LAST for CEPH (#3614) 2025-05-05 12:26:31 +02:00
Pavel Czerný 490b847ec8 F #6937: New orphan mode LINEAR (#3597) 2025-04-28 10:53:20 +02:00
Ruben S. Montero 28fb7b4fe5 F #6992: Fix PCI attribute setup
Do not blindly set DEVICE/CLASS/VENDOR to PCI attributes
2025-04-21 12:58:59 +02:00
Ruben S. MonteroandValentyn Bohdan e9a9751fdc F #6992: Add PCI PROFILE selection to Host/Cluster templates.
co-authored-by: Valentyn Bohdan <vbohdan@opennebula.io>
2025-04-17 12:00:24 +02:00
Tino Vázquez 79ac91e538 M #-: Bump to 6.99.85 2025-04-16 11:54:16 +02:00
Pavel Czerný 4ef389d70c F #1550: After placement finish start a new one (#3530) 2025-04-02 10:26:20 +02:00
Guillemo RamosandRuben S. Montero 8b7595477b F OpenNebula/one#6911: LVM thin
Signed-off-by: Guillermo Ramos <gramos@opennebula.io>
Co-authored-by: Ruben S. Montero <rsmontero@opennebula.org>
2025-04-01 10:03:35 +02:00
Ruben S. Montero 5ba213e2b1 F #6991: Fix bug not updating HostShare Totals 2025-03-27 11:33:23 +01:00
Valentyn BohdanandRuben S. Montero 6c8fc58148 F #6991: Add support for PCI filtering at cluster/host level (#3501)
Two new attributes are supported for the Host/Cluster template:

- PCI_FILTER. Format is vendor:device:class with "*" as wild card. Example PCI_FILTER="10de:*,386e:0edc"
- PCI_SHORT_ADDRESS. Comma separated list of short PCI address. Example
  PCI_SHORT_ADDRESS="c1:00.2,c1:00.3,01:00.5"

When any of these attributes are defined any PCI device returned by the monitor system is filtered using this attributes. If the device does not match PCI_FILTER and PCI_SHORT_ADDRESS it is discarded.

Signed-off-by: Valentyn Bohdan <vbohdan@opennebula.io>
Co-authored-by: Ruben S. Montero <rsmontero@opennebula.org>
2025-03-26 14:25:32 +01:00
Jan Orel b8d453fa51 M #-: Remove ebtables virtual network driver
Also remove VCENTER enum in VirtualNetwork
2025-03-26 10:11:27 +01:00
Valentyn Bohdan bfbc4c16c6 B OpenNebula/one#6892: Add check for password upper limit (#3460)
Signed-off-by: Valentyn Bohdan <vbohdan@opennebula.io>
2025-03-18 17:28:02 +01:00
Pavel Czerný 63c6969a32 F #1550: DRS automation 2025-03-18 16:24:07 +01:00
Pavel Czerný a3275cdf59 F #1550: Fix history plan_id for migration, fix capacity scheduling (#3475) 2025-03-18 09:36:24 +01:00
Pavel Czerný f207ae66b2 F #1550: Add action labeling (#3448) 2025-03-14 17:16:49 +01:00
Pavel Czerný 44e1454c94 F #1550: Fix mem leak in rank scheduler (#3467) 2025-03-13 12:16:58 +01:00
Valentyn Bohdan f1a0d82e7a Applied suggested improvements
Signed-off-by: Valentyn Bohdan <vbohdan@opennebula.io>
2025-03-11 08:59:50 +01:00
Valentyn Bohdan 1e16fdb91d F #1550: Fix broken merge_cluster_to_host()
Signed-off-by: Valentyn Bohdan <vbohdan@opennebula.io>
2025-03-10 19:12:48 +01:00
Pavel Czerný 5f439ebc0c F #1550: Fix overcommitment, fix crash on exit (#3452)
+ update default config values to match old scheduler
2025-03-07 10:00:21 +01:00
Ruben S. Montero 494ed0b470 F #1550: Fix cluster elements in Host template for schedulers 2025-03-06 20:23:35 +01:00
Ruben S. Montero f881148422 F #1550 - #6885: Support for forecasting probes 2025-03-06 14:35:54 +01:00
108065eac5 F #6885: Forecasting metrics
This commit includes metrics forecasting for VMs and Hosts. It provides
basic algorithms for linear regression.

* VM prediction includes the following metrics:
    - cpu
    - memory
    - netrx
    - nettx
    - diskrdbytes
    - diskwrbytes
    - diskrdiops
    - diskwriops

* Host prediction includes:
    - usedcpu
    - freecpu
    - usedmemory
    - freememory
    - netrx
    - nettx

The prediction framework uses a time series DB per VM (stored in the VM
folder) to compute the forecast.

co-authored-by: Marco Mancini <mmancini@opennebula.io>
co-authored-by: Jakub Walczak <jwalczak@opennebula.io>
co-authored-by: dmingolla <dmingolla@opennebula.io>
2025-03-06 12:18:32 +01:00
Valentyn Bohdan 822e86ac40 F #1550: Add validation of Cluster template one_drs (#3442)
Signed-off-by: Valentyn Bohdan <vbohdan@opennebula.io>
2025-03-05 12:48:49 +01:00
Pavel Czerný ed69f05801 F #1550: Fix monitoring failure message (#3443) 2025-03-05 10:32:01 +01:00
Pavel Czerný a5687e9251 F 1550: Use update/insert to store plan in DB (#3436)
* bootsrap empty placement plan
* Create empty plan, when creating a cluster
2025-03-03 13:45:51 +01:00
Ruben S. Montero edce8d4813 F #1550: Remove hybrid 2025-03-02 20:37:07 +01:00
Ruben S. Montero 9da8ea1a5d F #-: Remove legacy code for Hybrid Cloud 2025-03-02 17:29:14 +01:00
Tino Vázquez a64f071808 M #-: Bump year 2025 2025-02-28 11:56:18 +01:00
eda55567b1 F #1550: New Scheduler Framework for OpenNebula & DRS scheduler
This commits introduces a new framework for OpenNebula, it is based on
standard the OpenNebula middleware access driver (mad) model. Benefits
compared to the current implementation:

* Less overhead on API server and streamlined communications
* Ease integration with third party schedulers
* New "optimize" action to balance the workload of a cluster
* Embedded Plan Manager to apply optimization and deployment plans with
  custom parameters for the scheduling window
* Custom optimization policies per cluster

This commits introduces 2 schedulers:

* Rank scheduler based on the match-making algorithm present in 6.x
  series
* OpenNebula DRS an optimization algorithm based on an ILP solver for
  placement and cluster optimization

Also new API calls has been added for onecluster as well as the CLI
updates to expose them.

co-authored-by: MarioRobres <mrobres@opennebula.io>
co-authored-by: Pavel Czerny <pczerny@opennebula.io>
co-authored-by: Mirko Stojiljkovic <mstojiljkovic@opennebula.io>
co-authored-by: Valentyn Bohdan <vbohdan@opennebula.io>
2025-02-27 16:33:05 +01:00
Pavel Czerný 5599a242dd B #6823: Fix VM quota exceeded in deploy and recover action (#3351) (#3374) 2025-01-21 10:23:21 +01:00
Guillemo RamosandRuben S. Montero 696e69a957 F #6752: AutoNFS (#3331)
This feature auto mounts NFS volumes for datastores. The behavior can be controlled with the following template attributes:

- ANFS_ENABLE: YES/NO to enable the automatic NFS management
- ANFS_HOST: hostname/IP of the NFS server
- ANFS_PATH: of the NFS share for this datastore
- ANFS_OPTS: Comma separated options (fstab-like) used for mounting the NFS shares

The shared drivers also performs a "garbage-collector" like to unmount NFS volumes on the hypervisors when the datastores are deleted. This operation is performed in a "lazy" way, when VMs are deployed on the hypervisor.

* oneimage create: mount/umount DS on demand

Signed-off-by: Guillermo Ramos <gramos@opennebula.io>

* Move sh mount/umount logic to libfs.sh

Signed-off-by: Guillermo Ramos <gramos@opennebula.io>

* oneimage delete: mount/umount DS on demand

Signed-off-by: Guillermo Ramos <gramos@opennebula.io>

* Limit NFS mount/umount from SH code to 30s

Signed-off-by: Guillermo Ramos <gramos@opennebula.io>

* oneimage clone: mount/umount DS on demand

Signed-off-by: Guillermo Ramos <gramos@opennebula.io>

* onevm deploy: mount DS on demand

Signed-off-by: Guillermo Ramos <gramos@opennebula.io>

* Temporal mount only when needed

Signed-off-by: Guillermo Ramos <gramos@opennebula.io>

* onevm deploy: mount DS on demand (persisten)

Signed-off-by: Guillermo Ramos <gramos@opennebula.io>

* Linter

Signed-off-by: Guillermo Ramos <gramos@opennebula.io>

* onevm deploy: umount unneeded DS

Signed-off-by: Guillermo Ramos <gramos@opennebula.io>

* Allow mount/umount/sed from sudoers

Signed-off-by: Guillermo Ramos <gramos@opennebula.io>

* Temporal mount: use NFS_AUTO_OPTS

Signed-off-by: Guillermo Ramos <gramos@opennebula.io>

* Do AutoNFS cleanup even during non-related ops

Signed-off-by: Guillermo Ramos <gramos@opennebula.io>

* Final refactor and improvements

Signed-off-by: Guillermo Ramos <gramos@opennebula.io>

* ro values for Datastore object

* Wording for AutoNFS RO attributes

Signed-off-by: Guillermo Ramos <gramos@opennebula.io>

* NFS_AUTO_ENABLE: change 'true' to 'yes'

Signed-off-by: Guillermo Ramos <gramos@opennebula.io>

* sudoers: merge everythng into ONE_NFS

Signed-off-by: Guillermo Ramos <gramos@opennebula.io>

* Quote NFS_AUTO_OPTS

Signed-off-by: Guillermo Ramos <gramos@opennebula.io>

* Fix difference between sudoers specs

Signed-off-by: Guillermo Ramos <gramos@opennebula.io>

* Touch .automounted in AutoNFS mounts

Signed-off-by: Guillermo Ramos <gramos@opennebula.io>

* Update sudoers.rb

* Update rm

* Quote bash variable expansion

Signed-off-by: Guillermo Ramos <gramos@opennebula.io>

---------

Signed-off-by: Guillermo Ramos <gramos@opennebula.io>
Co-authored-by: Ruben S. Montero <rsmontero@opennebula.org>
2025-01-20 16:55:22 +01:00
Ruben S. MonteroandPavel Czerny d2c0104747 F #6342: Support for cluster quotas
This feature adds support for VM quotas at cluster level. CLUSTER_IDS
can be set for a VM quota so the admin can limit the number of resources (e.g. VMs) a
user/group can create in a given cluster.

This commit also fixes:

- B #2226
- B #6823

Co-authored-by: Pavel Czerny <pczerny@opennebula.io>
2025-01-20 09:50:06 +01:00
Valentyn Bohdan dc7c9ce4ab B OpenNebula/one#6678: Fix the "enforce" argument for the resize (#3314)
This commit recovers the "enforce" argument for the resize operation onevm resize request. In this case the flag is only applied to the capacity, the NUMA topology is always evaluated in the resize operation.


Signed-off-by: Valentyn Bohdan <vbohdan@opennebula.io>
2025-01-02 07:22:23 +01:00
Pavel Czerný a15f729488 M #-: Resolve cppcheck issues version 2.13 (#3334)
* Fixed performance issues
* Suppresed style issues
2025-01-02 07:02:44 +01:00
Valentyn Bohdan 5aebf691e3 B OpenNebula/one#6759: Add extra checks for ports in SecurityGroup validation (#3319)
Signed-off-by: Valentyn Bohdan <vbohdan@opennebula.io>
2024-12-11 12:58:32 +01:00
Valentyn Bohdan c5ef4434fa B OpenNebula/one#6750: Fix iotune attributes not being passed to VM
This commit solves the problem by improving the overflow in integer
types

Signed-off-by: Valentyn Bohdan <vbohdan@opennebula.io>
2024-11-27 12:05:16 +01:00
Pavel Czerný fa73142e7d F #6723: Remove onehost importvm (#3231)
* Remove vm_import table from DB
* Remove imported vms actions
* Fix fsck for image and network
* onedb fsck fix running_vms only for non-backup images
2024-11-21 17:31:47 +01:00
Valentyn Bohdan c1725ddfbb M #-: Replace raw pointers with references/smart pointers. (#3285)
* M #-: Replace raw pointers with references/smart pointers.
- Change PoolSQL::allocate method's signature to accept reference instead of pointer and fix all method calls.
- Remove some of the error-handling goto, to be able initialize some variables during declaration.

Signed-off-by: Valentyn Bohdan <vbohdan@opennebula.io>
2024-11-21 13:19:12 +01:00
Ruben S. MonteroandGuillermo Ramos 5f7b370c52 F #6411 + B #6741: Incremental backups for Ceph datastore
Implementation overview:

- Incremental points are saved as dedicated rbd snapshots under the
  "one_backup_<increment_id>" namespace. This snapshots are used to
  generate delta files in rbdiff format.

- The rbdiff formats are stored in the backup server to restore the rbd volumes.

- The restore process is performed directly on the Ceph cluster
  importing the base image (first full backup in the chain, rbd import)
  and then applying the increments (rbd import-diff) up to the target
  increment.

- Two new pseudo-protocols has been implemented to adopt the restore
  pattern above (restic+rbd, rsync+rbd). This protocols bundle of the
  rbdiff files in a tarball for transfer from the backup server. Note:
  reconstruct process uses the Ceph BRIDGE_LIST and not the backup
  server (as opposed to qcow2 backups)

Other bug fixes

- This commit also fixes #6741, resetting the backup chain after a
  restore

- The original ceph drivers do not receive the full action information,
  this now has been fixed by including VM information in the STDIN string sent
  to the driver.

Compatibility note.

- backup actions should return now the backup format used raw, rbd, ...
  If not provided oned (6.10.x) will use raw as a default to accommodate any
  third party driver implementation. It is recommended to include this
  third argument.

Signed-off-by: Guillermo Ramos <gramos@opennebula.io>
Co-authored-by: Guillermo Ramos <gramos@opennebula.io>
2024-10-04 20:28:10 +02:00