AOng Rate Limit Integration
The Rate Limit integration is not part of the Abiquo core product, and as such, it is not supported by Abiquo.
The Rate Limit integration is designed to limit the bandwidth available to any network interface by setting the port speed/limit on the hypervisor public network NIC. The initial release uses API calls to set the limit data and outbound API integration to update the hypervisor settings.
This feature has been introduced because customers in certain parts of the world suffer from very high internet access costs, so they often have relatively slow connections. In a standard Abiquo environment each VM network interface can have a port speed which would enable the VM to take a significant proportion of the internet bandwidth, denying other customers the service they expect.
This feature addresses that need, by allowing an Enterprise's public network interfaces to be constrained to a level which matches the service for which they are contracted.
Use the AOng (API Outbound next generation) to monitor power on events on VMs and the rate limit integration to set hypervisor quality of service for the NICs.
Prerequisites for the plugin
The plugin uses different tools for configuring KVM and ESX hypervisors.
For KVM hypervisors the plugin requires libvirt version 0.10.2 or higher. See http://libvirt.org/
For ESX hypervisors the plugin uses a Python script that requires Python version 2.6 or higher. The Python script depends on pyvmomi (see https://pypi.python.org/pypi/pyvmomi) and PyYaml (see https://pypi.python.org/pypi/PyYAML).
Install package dependencies:
yum install gcc gcc-c++ make python python-devel python-pip python-setuptools
Install Python dependencies using pip or easy_install.
For pip:
pip install pyvmomi pyyaml argparse
For easy_install:
easy_install pyvmomi pyyaml argparse
Configure plugin for ESX
Edit config/vmware_creds.yml and include in it all necessary users and passwords for each ESX server as well as the vCenter server.
The ESXi block has an entry for each ESXi server IP address that Abiquo may use (i.e. all the IPs of the servers listed in Abiquo) and for each one, the username and password are required. The port is optional and the default value of 443 will be used if no value is supplied.
A sample file could be:
ESXi: 192.168.5.53: username: root password: temporal port: 443 192.168.5.55: username: root password: temporal vCenter: 192.168.5.213: username: root password: vmware
Configure Abiquo enterprise
For the Rate Limit integration, set three properties in the Abiquo enterprise. These properties describe the max burst size, the maximum peak rate and the average rate for each public network. The properties are named with the network name and a suffix for each property. For example, for a public network named ```publicNet``` you will need to set ```publicNet_burst```, ```publicNet_peak``` and ```publicNet_average```. Supply the properties in Kb/s.
An example request to set these properties is:
curl -v -k -u admin:xabiquo https://abiquo.example.com:443/api/admin/enterprises/1/properties -X PUT -H 'Content-Type: application/vnd.abiquo.enterpriseproperties+json' -d '{"properties": {"publicNet_burst": 300, "publicNet_peak": 300, "publicNet_average": 200}}'
See the Abiquo API documentation about the EnterprisesResource and Update enterprise properties via API
Configure AOng rules
Configure the rules that filter Abiquo Outbound API messages and perform the required actions.
Command rules
Field | Value |
---|---|
NAME | ApplyQoS |
ACTION | QoSUpdate |
Rule group
Field | Value |
---|---|
NAME | Rate Limit |
Rules
Field | Value |
---|---|
SEVERITY | INFO |
ACTION | VIRTUAL_MACHINE: VSM_CHANGE_STATE |
PRIORITY | 10 |
RULE GROUP | Rate Limit |
COMMAND | ApplyQoS |
When a VM in an enterprise with a rate limit successfully changes state, AOng will update the QoS parameters for the public NIC in the VM definition on the hypervisor