Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions source/intro_release_notes/release_notes/whats_new.rst
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ OpenNebula Core

- The ability to import wild VMs into OpenNebula has been removed from code to provide a more coherent management experience across all interfaces and APIs.
- The enforce parameter has been restored for the resize operation. In this context, it only manages capacity enforcement checks (memory and CPU), while the NUMA topology is always verified independently.
- Option to define :ref:`Compute Quotas per Cluster <compute_quotas>` to achieve more granular control of resources.

Storage & Backups
================================================================================
Expand Down
46 changes: 42 additions & 4 deletions source/management_and_operations/capacity_planning/quotas.rst
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,8 @@ The attribute name is ``DATASTORE``.
| IMAGES | Maximum number of images that can be created in the datastore |
+---------------------+---------------------------------------------------------------+

.. _compute_quotas:

Compute Quotas
--------------------------------------------------------------------------------

Expand All @@ -52,6 +54,9 @@ The attribute name is ``VM``
+------------------+------------------------------------------------------------------------------+
| VM Attribute | Description |
+==================+==============================================================================+
| CLUSTER_IDS | An optional attribute used to define which clusters are included in this |
| | quota. Leave this attribute empty to apply the quota globally. |
+------------------+------------------------------------------------------------------------------+
| VMS | Maximum number of VMs that can be created |
+------------------+------------------------------------------------------------------------------+
| MEMORY | Maximum memory in MB that can be requested by user/group VMs |
Expand Down Expand Up @@ -98,6 +103,35 @@ Each generic quota is also automatically prefixed with ``RUNNING_``. For instanc

Additionally, it's important to note that each generic quota defined via ``QUOTA_VM_ATTRIBUTE`` is automatically included in the ``VM_RESTRICTED_ATTR`` set. This inclusion prevents regular users from circumventing the quota system by altering the attributes related to these generic quotas.

Per Cluster Quotas
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Use the ``CLUSTER_IDS`` attribute to achieve more granular control over Compute Quotas. This optional attribute specifies which clusters the quota applies to. If left empty, the quota will be applied globally. The value should be a comma-separated list of cluster IDs, and the quota will only affect VMs running in the specified clusters. Note that each cluster can be assigned to only one quota.

.. code-block:: bash
:caption: Example of per cluster quotas

# Global quota to allow 4 VMs
VM = [
VMS = 4
]
# Quota for cluster 0 to allow 2 VMs
VM = [
CLUSTER_IDS = "0",
VMS = 2
]
# Quota for clusters 100 and 101 to allow 3 VMs
VM = [
CLUSTER_IDS = "100,101",
VMS = 3
]

In this setup, the user can run:

* Up to **2 VMs** in **cluster 0**
* Up to **3 VMs** in **clusters 100 and 101** combined
* No more than **4 VMs** in total across all clusters

Network Quotas
--------------------------------------------------------------------------------

Expand Down Expand Up @@ -214,6 +248,8 @@ Use the ``oneuser/onegroup defaultquota`` command.

By default, the defaultquota is set to unlimited. Once the editor opens after issuing ``oneuser defaultquota`` you'll see comments regarding how to set the quotas and no quota template. Setting a quota with a template using unlimited values will translate to a blank quota. If you issue ``oneuser defaultquota`` again, you'll see the same comments with blank quota. If you set a non unlimited quota, you'll see the value of the quota that is established as default.

The Default Quotas doesn't apply for Cluster Quotas, you need to set them manually.

Checking User/Group Quotas
================================================================================

Expand All @@ -235,13 +271,15 @@ Quota limits and usage for each user/group is included as part of its standard i

VMS USAGE & QUOTAS

VMS MEMORY CPU SYSTEM_DISK_SIZE
1 / 4 1M / - 2.00 / - 0M / -
CLUSTERS VMS MEMORY CPU SYSTEM_DISK_SIZE
1 / 4 1M / - 2.00 / - 0M / -
100 0 / 0M / 128G 0.00 / 10.00 0M / -

VMS USAGE & QUOTAS - RUNNING

RUNNING VMS RUNNING MEMORY RUNNING CPU
1 / - 1M / 2M 2.00 / -
CLUSTERS RUNNING VMS RUNNING MEMORY RUNNING CPU
1 / - 1M / - 2.00 / -
100 0 / 2 0M / 128G 0.00 / -

DATASTORE USAGE & QUOTAS

Expand Down
Loading