- SHORT_ADDRESS can be used to select specific devices (useful on
homogenous clusters or nic attach operations). This name has been
selected because of:
1. It is the attrbute shown host info
2. It does not collide with the reserved ADDRESS attribute
- New test and add functions that considers both allocation methods: by
name (VENDOR/CLASS/DEVICE) or address (SHORT_ADDRESS)
- Parameter check on VM creation
- revert and add method use the same pci_attribute function to add info
to the VM PCI attribute
- Remove well-known attributes when parsing PCI devices (ADDRESS,
PREV_ADDRES, BUS, FUNCTION, SLOT, NUMA_NODE, UUID)
- Support for attach and detach NIC with PCI attributes
* onevm_exec.rb looks for PCI devices for ATTACH=YES when attaching/detaching an interface
* script action are now written in Ruby
* KVM module with common actions (hostdev/interface device str)
* Minor changes in xmlparser and OpenNebulaVM classes
- PCI selection options to onevm nic-attach:
* pci short_address
* pci_device device ID
* pci_vendor vendor ID
* pci_class class ID
- VF can be configured by setting some parameters through IP link (e.g.
MAC or VLAN_ID). This commit includes a mixin to activate_vf.
* one_vmm_exec.rb looks for PCI VN_MAD drivers
* VM class (VNM) adds a @pcis array
* activate_vf should be called in the pre stage. The following drivers
acticate VFs (VLAN_ID is implemented as 802.1Q tag)
- 802.1Q
- bridge
- fw
- ovswitch
- Improve integration with Libvirt/QEMU:
* When attach, only activate the VF being attached
* Attach: Use <interface> and not <hostdev> for VF. There seems to be a race
condition between accessing the vfio device and permission setup.
* Attach: Remove address on attach as it may fail beacuse PCI controller
is not present, e.g.:
ATTACHNIC: Could not attach NIC to 28534240: error: Failed to attach device
from /dev/fd/63 error: XML error: Invalid PCI address 0000:01:01.0.
Only PCI buses up to 0 are available ExitCode: 1
* Detach: Detach always use <hostdev> as libvirt fails to identified the
device just by address when using <interface>
* VNETs include state to flag their configuration status
(READY/ERROR/LOCK)
* Hooks can be program based on VNET state transitions
* Include Java/Go/Ruby bindings
* New vCenter network drivers
* Place-holder to customize actions (create/delete) for other netowrk drivers
* Sunstone integration
* OneFlow syncs flow creation on VNET status
* Remove deprecated vcenter hooks and autoregistration
co-authored-by: Frederick Ernesto Borges Noronha <fborges@opennebula.io>
co-authored-by: Alejandro Huertas <ahuertas@opennebula.io>
co-authored-by: Pavel Czerny <pczerny@opennebula.systems>
* New probe to get CGROUP_VERSION to the host
* LibvirtKVM driver set shares based on version (1024/100)
* Limits for min and max are check and enforced
SchedActions are now a complete managed type. It is in in /TEMPLATE and
not /USER_TEMPLATE and includes dedicated API Calls to manage the
entries:
- one.vm.schedadd (add new sched_action)
- one.vm.schedupdate (update an exiting sched_action)
- one.vm.scheddelete (delete an action)
The scheduler now use this API. This will prevent race conditions
between update operations from different processes.
co-authored-by: Pavel Czerný <pczerny@opennebula.systems>
Includes the following commits from f-5353:
- 62d3d38d7fb135b82874a5076a7f06c23675e0b7
- 52f3f066603c478061891175c008a58cfed3dc43
- 0e82f9e5471c3cf0e21969393299279c6e739138
- 8c32050940f528ea876e8293e6fbbf56a373bd54
* Shareable only on supported hypervisors
* Fix disk-attach
* Restrict shareable disks to SHARED datastores
* On image clone: copy SHAREABLE depends on DEFAULT_IMAGE_PERSISTENT flag