Versions Compared

Key

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

Abiquo 4.5 introduces new The platform uses configuration properties to provide greater control over the number of concurrent operations for a hypervisor or provider, device, or backup manager. 

...

The platform controls concurrency for VMs, which means the following operations that are managed through the provider/hypervisor, device, or backup manager.

  • VM state changes (powerOn, powerOff, etc)
  • Configure/Deconfigure/Reconfigure VM
  • Register/Unregister/Update VM with Firewall Policy / Load Balancer / Nat Rule (question)
  • Perform Backup / Schedule Backup / Restore From Backup of a VM (question)

An example of when concurrency limits apply is when you are deploying a virtual appliance with multiple VMs.

Control concurrency at the platform level

The most basic top level of concurrency configuration is the existing control at the platform level. This limits the number of concurrent operations for the same connection (hypervisor IP or endpoint), device, or backup manager.

Code Block
java
java

abiquo.virtualfactory.openSession
abiquo.virtualfactory.device.openSession
abiquo.virtualfactory.backup.openSession

For example, to allow 2 connections to vCenter1 + 2 two connections to vCenter2 + 2 connections to each of the public cloud regionsregion and hypervisor, set openSession to 2. 

Code Block
java
java

abiquo.virtualfactory.openSession=2

...

This means that you can perform 2 concurrent operations on the same vCenter (for VMX_04 or CLUSTER plugins) or AWS regiontwo concurrent operations on vCenter1, and two on vCenter2, and two on of the public cloud regions.



Control concurrency by

...

the type of hypervisor or public cloud provider, device, or backup manager

To limit concurrency for specific plugins, devices, or backup managers.If not specified by type, then the defaults are the platform level , set specific properties.

Code Block
java
java
abiquo.virtualfactory.{pluginTypeInLowerCase}.openSession
abiquo.virtualfactory.{backupManagerLowerCase}.backup.openSession
abiquo.virtualfactory.{deviceLowerCase}.device.openSession

If you do not specify a value, then the default is the platform level property.

For example, to allow two connections to AWS.


Control concurrency at the virtual datacenter level

Concurrency control at the VDC level means that the platform will apply the properties for concurrency values (including plugin type, device, and backup manager) to an individual VDC.

The default values allow concurrent operations to the same provider type, device, and backup manager.If you do not specify these properties, the default values are false, which means that concurrent operations are limited by the type of hypervisor/public cloud provider, device, or backup manager. Or at the platform level. 

Code Block
java
java
abiquo.virtualfactory.openSession.byvdc=false
abiquo.virtualfactory.device.openSession.byvdc=false
abiquo.virtualfactory.backup.openSession.byvdc=false

...

Note that when using ''openSession.byvdc'', the platform does not limit the maximum number of concurrent connections to the same ConnectionData (provider endpoint or hypervisor IP). 

so  openSession.vf.vCloud1.openSession=2, plus byvdc=true, can have openSession max = vdc x 2.

openSession.vf.vCloud1.openSession.byvdc=false → only 2 sessions for vCloud1.

Allow fast VM state changes

...

For example, with the following configuration, the platform will only allow one configure/deconfigure/reconfigure at a time, but state changes can occur concurrently.

Code Block
java
java

abiquo.virtualfactory.openSession.faststatechanges=true
abiquo.virtualfactory.openSession=1


 

Limitations

* the properties only apply to the virtualfactory (vm centric ops) so don't expect other operations with entities related to virtualdatacenter are also executed in the same pool (eg: create private network doesn't follow this concurrency limitations)

* byvdc requires a Vpc interface implementation
** compute plugin also implements Vpc. eg: PCR vcloud
** compute plugin + networking device. eg: vcenter + nsx device (question)* when using ''faststatechanges'' the max number of concurrent operations coulb be <= opensessions x 2 for deploy operations (configure + powerOn) or unlimited if performing other state changes in vms.

* changing the behavior of the pool when using a provider also capable of device ops (public clouds with lb,fw, net or nat features), previously using 2 pools (opensessions + device.opensessions), now a plugin capable of executin device ops only use the opensessions pool. (question)

Examples

no concurrency in a virtualdatacenter (by type)

Panel

Given
abiquo.properties:

  • abiquo.virtualfactory.vcd.openSession=1
  • abiquo.virtualfactory.vcd.openSession.byvdc=true
    a vcloud public cloud region
    2 virtualdatacenters (2 vapps in vcloud)

When
deploy a vapp with +1 vm in each vdc
Then
only one concurrent operation for each virtualdatacenter
concurrent operations can affect different virtualdatacenters

no limitation if not specified by type

Panel

Given
abiquo.properties:

  • abiquo.virtualfactory.vcd.openSession=1
  • abiquo.virtualfactory.vcd.openSession.byvdc=true
    an amazon public cloud region
    2 virtualdatacenters

When
deploy a vapp with +1 vm in each vdc
Then
the default is applied (abiquo.virtualfactory.openSession=2 / abiquo.virtualfactory.openSession.byvdc=false)
only 2 concurrent operations independent of the virtualdatacenter

change the default concurrency context

Panel

Given
abiquo.properties:

  • abiquo.virtualfactory.openSession.byvdc=true
    a vcloud public cloud region
    2 virtualdatacenters (2 vapps in vcloud)

When
deploy a vapp with +1 vm in each vdc
Then
only one concurrent operation for each virtualdatacenter
concurrent operations can affect different virtualdatacenters

compute plugin without vpc device

Panel

Given
abiquo.properties:

  • abiquo.virtualfactory.openSession.byvdc=true
    a esx datacenter without any networking device (or using a device not implementing Vpc - nowadays all implements Vpc)
    2 virtualdatacenters

When
deploy a vapp with +1 vm in each vdc
Then
vms doesnt have the sense of virtualdatacenter (any?=(no)? Vpc plugin capable of setting the vpc/vdcProviderId)
only 2 concurrent operations independent of the virtualdatacenter
this means the same result will apply with the same setup but using the default openSession.byvdc=false

fast powerOn

Panel

Given
abiquo.properties:

  • abiquo.virtualfactory.vmx_04.openSession=1
  • abiquo.virtualfactory.vmx_04.openSession.faststatechanges=true
    a esx-vcenter private datacenter (with or without device)
    2 virtualdatacenters

When
deploy a vapp with +1 vm in each vdc
Then
only one configure operation concurrently, but all powerOn after the configure of the vm (regardless if performing other powerOns or other vm configure)

fast powerOn during configure

...

Given
abiquo.properties:

  • abiquo.virtualfactory.vmx_04.openSession=1
  • abiquo.virtualfactory.vmx_04.openSession.faststatechanges=true
    a esx-vcenter private datacenter (with or without device)

...