Commit Graph
2266 Commits
Author SHA1 Message Date
Ruben S. Montero ccc7da98c5 M #-: Bump version 7.2.0 2026-03-30 09:47:57 +02:00
Pavel Czerný e219d6e872 M #-: C++ linting (#4122) 2026-03-25 12:20:23 +01:00
d8e0ee2036 F #7373: FSaaS (File System as a Service) for OpenNebula
NAME   = test_ds
DS_MAD = virtiofs
TM_MAD = local
TYPE   = IMAGE_DS
DISK_TYPE = FILESYSTEM

oneadmin@ubuntu2204-kvm-ssh-7-0-f4a9-0:~$ cat img.txt
NAME="test_fs"
TYPE="FILESYSTEM"
PATH="/var/tmp/sharedfs_test"
PERSISTENT="YES"
PERSISTENT_TYPE="SHAREABLE"

DISK=[
  IMAGE_ID="21" ]

Notes:

* Same FS image cannot be used twice in the same VirtualMachine, nor the
  same tag twice
* OpenNebula will generate a MOUNT_POINT = /mnt/one-fs-<image_id> and a
  MOUNT_TAG = one-tag-<image_id>. Both can be overwritten at DISK level.
* When using Hugepages in the VM that will be used for virtiofs and
  memory access will default to shared. Do not use
  MEMORY_ACCESS='private'
* If not using hugepages the VM will use memfd as memoryBacking source
  if it includes a filesystem.
* OpenNebula will map FS access (UID/GID) to a given user that can be
  configured per host, cluster or globally in vmm_exec_kvm.conf. By
  default all access is mapped to oneadmin account.
* Datastore monitorization will report 0 free/used/total size. Images,
  representing the FS folder, reports size as the result of a du -sb
  command.
* Most of the disk operations do not apply to filesystem disks: resize, snapshots,
  save-as, backup.

co-authored-by: MarioRobres <mrobres@opennebula.io>
co-authored-by: Marco Mancini <mmancini@opennebula.io>

Signed-off-by: MarioRobres <mrobres@opennebula.io>
Signed-off-by: Marco Mancini <mmancini@opennebula.io>
2026-03-18 09:57:54 +01:00
Ruben S. Montero 830e34a38a F #7511: DPDK nic attach and socket paths
- vmm,vnm: unify OVS DPDK vhost socket handling
- Use a shared /var/lib/one/vhost-sockets path for OVS DPDK interfaces in the KVM and Open vSwitch drivers, and create the directory when needed.
- Also fix DPDK NIC attach/detach to use the vhostuser device XML.
2026-03-16 16:16:30 +01:00
Ruben S. Montero 81fd8e353b Revert "F #7373: FSaaS (File System as a Service) for OpenNebula"
This reverts commit fa72e8fd7f.
2026-02-26 19:24:53 +01:00
Ruben S. Montero bb6bb45a2a F #913: Add DS_LIVE_MIGRATE attribute
Add new attribute to prevent migrations on unsopported drivers. Add
migrator to add it to DS templates

coauthored-by: Guillermo Ramos <gramos@opennebula.io>
Signed-off-by: Guillermo Ramos <gramos@opennebula.io>
2026-02-26 11:58:33 +01:00
fa72e8fd7f F #7373: FSaaS (File System as a Service) for OpenNebula
NAME   = test_ds
DS_MAD = virtiofs
TM_MAD = local
TYPE   = IMAGE_DS
DISK_TYPE = FILESYSTEM

oneadmin@ubuntu2204-kvm-ssh-7-0-f4a9-0:~$ cat img.txt
NAME="test_fs"
TYPE="FILESYSTEM"
PATH="/var/tmp/sharedfs_test"
PERSISTENT="YES"
PERSISTENT_TYPE="SHAREABLE"

DISK=[
  IMAGE_ID="21",
  MOUNTPOINT="/mnt",
  TARGET="disk0_tag" ]

co-authored-by: MarioRobres <mrobres@opennebula.io>
co-authored-by: Marco Mancini <mmancini@opennebula.io>

Signed-off-by: MarioRobres <mrobres@opennebula.io>
Signed-off-by: Marco Mancini <mmancini@opennebula.io>
2026-02-26 11:18:38 +01:00
Ruben S. Montero 36ac49b8d6 M #-: Support multiple BRIDGE_TYPES in VN_MAD
BRIDGE_TYPE can be now a comma separated list "openvswitch,
openvswitch_dpdk". When created a VNET any value from the list for that
driver can be set.

NOTE: This commit includes oned.conf changes

(cherry picked from commit aa33731c288ca928c9d13c18e1ca5a67ff692262)

add oned.conf
2026-02-18 16:09:14 +01:00
bffbecedc0 F #913: Storage live migration
The following TM's now support storage live migrations:

- File system based (local and shared variants)
- LVM based (pure LVM, and LVM thin)

The LVM TM's does not support migrating a VM with disk snapshots.

co-authored-by: Guillermo Ramos <gramos@opennebula.io>
co-authored-by: josepselga <jselga@opennebula.io>

Author: Guillermo Ramos <gramos@opennebula.io>
2026-02-17 09:45:33 +01:00
deb127c59b F one#6534: Support for assigning IPs to several VMs
This commit adds support for sharing IPs among several VMs. When a AR is
marked as shared several VMs can request the same IP address either
through a NIC or NIC_ALIAS.

- Shared AR's cannot assign IP address automatically, an specific IP
  needs to be requested.
- Shared AR's have some restrictions:
      - Shared AR cannot use external IPAM
      - Shared AR can only be of type IP4 or IP6_STATIC
      - Shared AR cannot update IPAM or SHARED attribute
      - Shared AR cannot make reservations
      - Shared AR cannot hold by mac
- NICs / NIC_ALIAS using Shared IP will include SHARED=YES

co-authored-by: Jorge Miguel Lobo Escalona <jlobo@opennebula.io>
co-authored-by: MarioRobres <mrobres@opennebula.io>
2026-02-10 10:28:06 +01:00
Pavel Czerný d81a2ca4d3 M #-: Fix build to work with newer grpc lib (#4051)
* Remove unneeded breaks, support Enum as slices
* use cassert instead of GPR_ASSERT
* Use pkg-config for grpc dependencies
* Make Client destructor virtual
2026-02-10 08:49:46 +01:00
Pavel Czerný a29cf07b0b F #6778: Fix build with grpc=no (#4029) 2026-02-02 12:29:40 +01:00
Ruben S. Montero df02fc6b24 F #7448: Adds support for the GB200 Blackwell architecture:
* Support for "empty" NUMA nodes. Each GB200 GPU requires eight dedicated NUMA
  nodes for MIG support. Nodes cannot be shared with other resources (i.e.
  memory, CPU or other GPUs)

* FEATURES. New features attributes:
  - GIC = General Interrupt Controller, aarch64 architectures uses GIC
    through APIC interface

  - RAS = Report host memory errors to a guest using ACPI and guest external abort exceptions

  - PCIHOLE64 defines MMIO space for GPU support, GB200 needs aprox 4T
    (4294967296 KiB)

* New PCIe topology for dedicated devices. It also removes the PCI
  switches. Each numa node includes a pci-expander-bus with 8 pci-root
  ports.

* PCI. New attributes for PCI passthrough devices:
  - ACPI_NODESET = <libvirt nodeset> NUMA nodes for ACPI
  - ROOT = <dedicated|shared> to attach the PCI to its own expander bus
    or the common one
  - IOMMUFD= <Yes|No> enables iommufd in the hostdev driver to propagate DMA
    mappings to the kernel for VM-assigned host device.
  - IOMMU = <Yes|No> add a dedicated iommu device.

* IOMMU. New attribute to add a iommu device, includes:
  - MODE = <single|device> Add a single iommu device or one for each PCI
    passthrough device that request it
  - MODEL = <smmuv3|intel|amd|virtio> for the iommu device
  - OPTIONS = <whitespace-separated list of options> for the driver
    element

* NUMA_NODE. New attribute, uses the node-set syntax with distance
  e.g. 0:254,3-15:20,23:10
  - DISTANCE to set cross NUMA node distance

co-author: Pavel Czerny <pczerny@opennebula.io>
2026-01-26 18:36:38 +01:00
8f57c337e1 F OpenNebula/one#6778: Introduces a gRPC API server for OpenNebula Demon
This commit introduces a new API server based on the gRPC/Protobuf. The
API follow the design of the existing xml-rpc to ease the transition to
the new server and support the current state management engine.

Both API servers can be run in parallel.

Main changes:

- Decouple Generic and XMLRPC specific logic and add gRPC classes.
- Source code re-structure to include logic for each server
- New compilation options to generate gRPC stubs
- Client code for C++, Ruby, Python and Go

co-authored-by: Jan Orel <jorel@opennebula.io>
co-authored-by: Pavel Czerny <pczerny@opennebula.io>
co-authored-by: MarioRobres <mrobres@opennebula.io>
2026-01-12 14:58:55 +01:00
Pavel Czerný 6828b3c962 F #7355: Do not allow space in group name (#3996) 2026-01-09 14:20:35 +01:00
Ruben S. Montero 0e18f96f87 F #7323: Get OS/MACHINE from vmm_kvm_exec.conf when parsing VM
Setting the MACHINE default when parsing VM attributes make the default
available when assigning the CD-ROM prefix.

NOTE: This prvents to set MACHINE at host or cluster level.
2025-12-22 17:22:45 +01:00
Ruben S. Montero 7c6445c13c F #7323: Update CD-ROM dev prefix based on VM chipset
- pf-440 VMs uses IDE
- virt and q35 uses SATA/iSCSI
- arm64/vmm_exec_kvm.conf defaults ARCH set to aarch64

IMPORTANT: DEV_PREFIX in CD-ROM Images is now ignored and cleared for
new images. Users can still force a CD-ROM bus/prefix by setting it in the
DISK/CONTEXT attribute.
2025-12-18 13:13:41 +01:00
Ruben S. Montero bebf710f8a F #7331: Add support for memory encryption
This commit adds support for memory encryption. It includes:

* A new VM template attribute to set memory encryption
* A host probe to gather the memory extensions available (SEV,
  SEV-ES...)
* When selected AUTOMATIC_REQUIREMENTS include memory encryption as a
  requirement
* Domain XML generation has been updated to include memory encryption
  attributes
* A kvm.conf attribute MEMORY_TUNE_OFFSET to add an additional memory
  offset for encryption.

Author: MarioRobres <mrobres@opennebula.io>
Author: Daniel Clavijo Coca <dclavijo@opennebula.io>
2025-12-17 09:46:23 +01:00
Ruben S. Montero 3582f79c2c B #7408: Fix PCI device to virtual NUMA node mapping
When using q35 machines and NUMA pinning a specialized PCIe topology is
generated to resemble the one presented by the host. In this case PCI
devices can be mapped to the incorrect node, missmatching CPU+Mem and PCI pinning.

(cherry picked from commit 52ba320d0dd27f85131da7e681d98dbef748eaeb)
2025-12-11 18:31:02 +01:00
MarioRobres 826f630f00 F OpenNebula/one#7299: Add new API calls to execute commands on a Virtual Machine (#3954)
This commit adds support for remote execution of commands in a VM through qemu Guest Agent (GA). The feature includes:

* New API calls so create, cancel and retry command execution
* Command results are included in VM information
* Command line tool exposing this functionality
* Monitor probe to reap execution of commands
2025-12-10 09:41:07 +01:00
MarioRobres 77c59fb1c5 B OpenNebula/one#6951: delete cluster_vnc_bitmap record when deleting a cluster (#3882) 2025-10-17 10:36:09 +02:00
Pavel Czerný e44205279d B #7256: Fix get_client_ip to work with newer versions of xmlrpc-c (#3842) 2025-10-01 12:07:54 +02:00
Ruben S. Montero 2608a730a1 M #-: Add support for ARM virt machine type
Provides a similar configuration as the one performed for q35 on intel
hosts
2025-09-20 19:09:03 +02:00
Pavel Czerný 25c5b5e0e9 M #-: VN Template remove non-working check restricted attributes (#3788)
(cherry picked from commit 2d4b7e8b0b)
2025-09-15 09:45:04 +02:00
Pavel Czerný f68c826ac8 F #951: Quota for PCI devices (#3756)
This commit adds support for PCI device quotas. It includes the following new attributes:

- PCI_NIC (and RUNNING_PCI_NIC), to account for PCI devices of TYPE = NIC
-  PCI_DEV (and RUNNING_PCI_DEV), to account for generic PCI devices  

This commits also includes:
  - Simpler naming of the onegroup/oneuser quota names (RUNNING is now just label as RUN and SYSTEM_DISK_SIZE  is now DISK SIZE)
- Consolidation of some duplicated logic in oned
- Golang bindings has been extended to include the new quota
- fsck update for the new quotas
- migrator for 7.2.0 release
2025-09-10 09:54:44 +02:00
Ruben S. Montero b2465d999b 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

(cherry picked from commit 5c693d6741)
2025-09-03 09:36:24 +02:00
MarioRobres 18e251659d 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)
2025-07-14 12:54:21 +02:00
Pavel Czerný 29e7a6e970 M #-: Bump DB version (#3714) 2025-07-04 09:24:01 +02:00
Tino Vázquez 93aaa76c1f M #-: Bump version 7.1.80 2025-07-03 12:39:15 +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