Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • KVM hypervisor only.
  • New cluster-scoped config vm.cdromiso.max.count to cap the number of CD-ROMs per VM. Per-cluster overrides are supported.
  • Multi-ISO state persists across stop/start cycles.
  • UI: action menu and modal dialogs become multi-ISO aware; instance detail page lists all attached ISOs with their slot labels.

...

ParameterScopeTypeDefaultDescription
vm.cdromiso.max.countClusterInteger1Maximum number of CD-ROM drives (ISOs) that may be attached to a single VM. Enforced at attach and deploy time. Per-cluster overrides are supported.

The effective max for a given VM is: min(vm.cdromiso.max.count.valueIn(clusterId), host-advertised hypervisor cap). The hardcoded "2 for KVM, 1 for others" logic has been removed from the management server; the hypervisor cap is now discovered at runtime (see Hypervisor Cap Discovery below).

...

  • The KVM agent advertises 2 (LibvirtVMDef.MAX_CDROMS_PER_VM), co-located with the slot-allocation logic in getDevLabel that places CD-ROMs at hdc (TemplateManager.CDROM_PRIMARY_DEVICE_SEQ = 3) and hdd.
  • libvirt itself does not expose a CD-ROM slot count as a capability — domcapabilities lists supported buses but not slot counts. The number is a function of CloudStack's own slot-allocation choices, not a hypervisor-discoverable fact.
  • The effective cap for a given VM = min(vm.cdromiso.max.count.valueIn(clusterId), host-advertised cap).

Misconfiguration Handling:

If vm.cdromiso.max.count is set above the host-advertised cap, attach and deploy operations now log an error and throw InvalidParameterValueException with the recommended maximum in the message. The old behavior of silently clamping to the hypervisor cap has been removed.

...