Skip to main content

Quota Management (CloudStack)

CloudStack has its own quota management system at domain, account, and project levels. CMP also has a separate quota engine — and the two systems do not share state.

Two independent quota systems
SystemScopeManaged in
CMP quotasPer customer account, project, and global defaultsGlobal Resource Quotas, Account-Level Quotas
CloudStack quotasPer domain, account, and project in CloudStackCloudStack Global Settings (max.* keys)

CMP supports multiple orchestrators (CloudStack, OpenStack, VMware, and others). Because of this, CMP does not use CloudStack's quota management APIs as its quota engine. CMP enforces limits in the CMP portal; CloudStack enforces its own limits independently at the orchestrator layer.

Why CloudStack quotas still matter

CloudStack's quota system cannot be disabled. It is always active. When a customer exceeds a CloudStack limit, provisioning fails with a CloudStack quota error returned directly to CMP — even if the customer still has available quota in CMP.

The mismatch problem

This is the most common source of customer confusion:

CMP quota: Primary Storage = 1024 GB ✅ (customer sees quota available)
CloudStack: max.account.primary.storage = 200 GB ❌ (actual enforcement limit)

Customer creates a 200 GB VM → CloudStack rejects → quota error in CMP portal
Customer expectation: "I have 1024 GB quota — why did this fail?"

The customer sees CMP quota as sufficient, but CloudStack blocked the operation first. This is difficult to explain without aligning both systems.

Recommendation — set CloudStack limits high or unlimited

Set CloudStack quota global settings to higher values than your CMP quotas, or to -1 (unlimited) where supported. CloudStack limits should never be lower than the CMP limits you assign to customers.

Rule of thumb: CloudStack limit ≥ CMP limit for every resource type you sell.

Default CloudStack quota behaviour

On most CloudStack installations:

LevelTypical default
DomainUnlimited (-1) for most resource types
ProjectLimited — for example, 20 VMs, 200 GB primary storage
AccountLimited — for example, 20 VMs, 40 vCPUs, 40960 MiB memory, 200 GB primary storage

Account-level defaults are often too low for a production CMP deployment. Domain and project limits can also block provisioning if left at factory defaults.

Configuring CloudStack quotas

Step 1 — Open Global Settings

  1. Log in to the CloudStack UI as root admin
  2. Navigate to Configuration → Global Settings
  3. Search for max
  4. Set pagination to 200 rows to see all quota-related settings

Step 2 — Update account, domain, and project limits

For each max.account.*, max.domain.*, and max.project.* setting relevant to your CMP services, set the value to -1 (unlimited) or a number greater than your highest CMP quota for that resource.

Unlimited value

In CloudStack Global Settings, -1 means unlimited for most max.* quota keys.

Step 3 — Verify after CMP quota changes

When you approve a quota increase request in CMP, also verify the customer's CloudStack account and project limits still exceed the new CMP values. CMP does not update CloudStack quotas automatically.

Account-level quota settings

These defaults apply to every account in CloudStack unless overridden per account.

Global settingDescriptionDefault
max.account.user.vmsMaximum user VMs per account20
max.account.cpusMaximum vCPU cores per account40
max.account.memoryMaximum memory per account (MiB)40960
max.account.primary.storageMaximum primary storage per account (GiB)200
max.account.secondary.storageMaximum secondary storage per account (GiB)400
max.account.volumesMaximum volumes per account20
max.account.snapshotsMaximum snapshots per account20
max.account.templatesMaximum templates per account20
max.account.public.ipsMaximum public IPs per account20
max.account.networksMaximum networks per account20
max.account.vpcsMaximum VPCs per account20
max.account.projectsMaximum projects per account10
max.account.backupsMaximum backups per account20
max.account.backup.storageMaximum backup storage per account (GiB)

Domain-level quota settings

Domain limits apply across all accounts within a domain. On most setups these default to unlimited (-1).

Global settingDescriptionDefault
max.domain.user.vmsMaximum user VMs per domain-1
max.domain.cpusMaximum vCPU cores per domain-1
max.domain.memoryMaximum memory per domain (MiB)-1
max.domain.primary.storageMaximum primary storage per domain (GiB)-1
max.domain.secondary.storageMaximum secondary storage per domain (GiB)-1
max.domain.volumesMaximum volumes per domain-1
max.domain.snapshotsMaximum snapshots per domain-1
max.domain.templatesMaximum templates per domain-1
max.domain.public.ipsMaximum public IPs per domain-1
max.domain.networksMaximum networks per domain-1
max.domain.vpcsMaximum VPCs per domain-1
max.domain.projectsMaximum projects per domain50
max.domain.backupsMaximum backups per domain40
max.domain.backup.storageMaximum backup storage per domain (GiB)800

Project-level quota settings

Project limits apply within CloudStack projects. CMP maps customers to CloudStack projects — low project defaults can block provisioning even when account and CMP quotas allow it.

Global settingDescriptionDefault
max.project.user.vmsMaximum user VMs per project20
max.project.cpusMaximum vCPU cores per project40
max.project.memoryMaximum memory per project (MiB)40960
max.project.primary.storageMaximum primary storage per project (GiB)200
max.project.secondary.storageMaximum secondary storage per project (GiB)400
max.project.volumesMaximum volumes per project20
max.project.snapshotsMaximum snapshots per project20
max.project.templatesMaximum templates per project20
max.project.public.ipsMaximum public IPs per project20
max.project.networksMaximum networks per project20
max.project.vpcsMaximum VPCs per project20
max.project.backupsMaximum backups per project20
max.project.backup.storageMaximum backup storage per project (GiB)400

Mapping CMP quotas to CloudStack settings

When configuring CMP Global Resource Quotas or Account-Level Quotas, ensure the matching CloudStack settings are at least as high:

CMP quota resourceCloudStack account settingCloudStack project settingNotes
VM Instancesmax.account.user.vmsmax.project.user.vms
vCPUmax.account.cpusmax.project.cpus
RAM (GB)max.account.memorymax.project.memoryCloudStack uses MiB — multiply CMP GB × 1024
Primary / block storage (GB)max.account.primary.storagemax.project.primary.storageCloudStack uses GiB
Snapshotsmax.account.snapshotsmax.project.snapshots
Public IPsmax.account.public.ipsmax.project.public.ips
VPCs / Networksmax.account.vpcs, max.account.networksmax.project.vpcs, max.project.networks
Volumesmax.account.volumesmax.project.volumes
VM Backupsmax.account.backupsmax.project.backups
Templatesmax.account.templatesmax.project.templates

Other CloudStack max.* settings

These settings are not CMP quota mappings but can affect provisioning:

Global settingDescriptionDefault
max.template.iso.sizeMaximum template or ISO download size (GB)50
max.data.migration.wait.timeMax wait time (minutes) for data migration before spawning new SSVM15
max.ssvm.countAdditional SSVMs for concurrent data object migration5
max.number.managed.clustered.file.systemsMax managed SRs/datastores per cluster (XenServer/VMware)200
network.loadbalancer.haproxy.max.connHAProxy max concurrent connections (global)4096
network.ipv6.search.retry.maxMax retries searching for available IPv6 address10000

CMP quota settings

CMP quota configuration is managed separately in the CMP admin panel:

See also Orchestrator-Side Quota Sync for cross-orchestrator guidance.

Validation checklist

Before going live with customer provisioning:

  • CloudStack max.account.* settings are set to -1 or values your highest CMP account quotas
  • CloudStack max.project.* settings are set to -1 or values your highest CMP project quotas
  • CloudStack max.domain.* settings are -1 or sufficiently high (most default to unlimited)
  • CMP Global Resource Quotas are configured for your intended service catalogue
  • Process defined to update CloudStack limits when quota increase requests are approved in CMP
  • Test provisioning at/near quota limits — confirm errors reference the correct system when limits are hit