SmartProxy Affinity

How to configure and use SmartProxy affinity

Posted by Christian Jung on Thu, Feb 23, 2017
In CloudForms, ManageIQ
Tags smartproxy, ssa, smartstate

SmartState Analysis

CloudForms and ManageIQ can collect information from the configured providers to build its internal inventory. For virtual machines or instances this includes information like the name, associated IP addresses, virtual hardware specification and many more. Additional information can be retrieved by executing a SmartState Analysis. SmartState is implemented agentless and uses temporary snapshots to analyze virtual machines and templates.

To collect the information from VMware, the VDDK library has to be installed on all applicable appliances manually. For CloudForms there is a knowledge base article which describes the setup process in detail.

Zones and Regions

When designing large deployments, multiple appliances are usually deployed. Zones and regions make it possible to implement security isolation and to distribute actions between multiple appliances. SmartState Analysis is comprised of two roles which can be enabled or disabled on each individual appliance. Details about roles can be found in the General Configuration Guide.

Role assignment

When a user requests a SmartState Analysis to be performed, ManageIQ or CloudForms tries to assign the job to an appropriate appliance. It’s using the information about the regions and zones and tries to find an appliance which is in the same zone as the provider on which the virtual machine or instance is located.

Any appliance which is in the same zone as the parent provider, is eligable to execute the job.

Smart Proxy Affinity

In some cases the above logic is not ideal. The following is a list of different scenarios, where the automatic assignment is not ideal or not possible. This is not a complete list, just some examples.

No appliance is in the appropriate zone

To make the described logic work, at least one appliance has to be in the same zone as the provider on which the VM or instance is located. For small providers (for example test environments) it might not be necessary to have dedicated appliances, so this provider has to be managed by appliances which are in the same zone, but not running on the same provider.

OpenStack best practice

For OpenStack OverCloud and UnderCloud providers, it is often considered best practice to run the management infrastructure outside of the OpenStack environment. In such a setup the appliance would run on a different virtual infrastructure, but with the necessary connectivity in place to reach the API endpoints.

Performance and Sociability

For very large providers or if a lot of SmartState Analysis jobs are executed, it might be necessary to assign specific appliances to a subset of the infrastructure.

Affinity assignment

For those few special cases where the normal automatic logic based on zones and regions doesn’t work, SmartProxy Affinity can be used to manually assign appliances to specific parts of the infrastructure.

The configuration can be found by navigating to the configuration menu (click on the user name on the top right menu), on the tree in the left pane, select the zone and then the tab “SmartProxy Affinity”. It is possible to drill down and enable or disable the affinity for fine grained control.

SmartProxy Affinity


If SmartProxy Affinity assignments are used, changes of the infrastructure will require the settings to be updated. For example if a new datastore or hypervisor is added, none of the appliances will be assigned until the configuration is updated.