VLAN allocation algorithm

When a user deploys a virtual appliance with Abiquo, the allocation module will decide which is the most suitable physical machine in the physical infrastructure according to the User's enterprise limits and the availability of the candidate machine in terms of computing, network and storage resources.

For virtual datacenter allocation

The VLAN allocation algorithm allocates virtual datacenters to racks based on the available VLAN tags. It checks for available VLAN tags that will be required for all types of networks at virtual datacenter level. Public networks and their tags and IPs are managed manually by cloud administrators.

Introduction to VLAN allocation

Network resources
As an Abiquo user, you can define your own private network configuration in your virtual datacenters. You can configure your virtual machines' networks in the Virtual Machine Configuration. All of these networks will coexist with other users' networks in the physical infrastructure. In order to provide this network management without security issues and packet collisions, Abiquo uses VLANs. The number of VLANs an enterprise can use are defined in the User's enterprise limits. If no limits are set, the default is 8 VLANs per virtual datacenter, which can be changed in Abiquo configuration properties.

Rack restriction
Abiquo infrastructure requirements specify that each rack must be connected to a switch to manage the internal VLANs. The switch attached to this rack will not allow the user-created networks to go outside the switch. If you require Internet access for all your machines, create a VM gateway. In short, in order for all the user's virtual machines to see each other on the private network, all the virtual machines within a virtual datacenter must be deployed in the same rack.

How the VLAN allocation algorithm works

The VLAN allocation algorithm is used to decide:

The Rack Network Parameters are very important in the allocation process.

 

Which rack is most suitable?

When the first virtual machine of a virtual datacenter is deployed the VLAN Allocation Algorithm decides which rack is the most suitable (then the rest of the virtual machines will be deployed in the same rack). The allocation algorithm obtains all the racks that can manage all the VLANs of the virtual datacenter then chooses the one with the most available resources for the VDC. This decision is based on an estimate of the average number of VLANs that each VDC will really use. And there is an additional pool of reserved VLANs to meet the needs of any datacenter that exceeds the estimate.

The VLAN pool size for VDCs that exceed reservation (VLANPS) is the percentage of VLANs you want to reserve for the future expansion of existing virtual datacenters that have already been deployed but have not yet used all of their VLANs. These VLANs will not be considered available for new virtual datacenter deployments. The VLAN allocation algorithm will only allocate these tags to existing datacenters. However, they are not reserved for any specific virtual datacenter or group of virtual datacenters. The cloud administrator should control how many VLANs a virtual datacenter can use by setting appropriate allocation limits and system properties.

Simplified VLAN allocation algorithm

This is a simplified version of the VLAN allocation algorithm:

#availableVLANtags = (A-(A*VLANPS))-(B*C)

where

A: Number of tags defined (VLAN ID max - VLAN ID min - Number of excluded VLAN IDs + 1)
B: Reserved VLANs per VDC.
C: Number of virtual datacenters already allocated.
VLANPS: VLAN pool size for VDCs that exceed reservation


VLAN allocation example

The image below illustrates this example: there are 6 virtual datacenters deployed. Each virtual datacenter is using 2 physical machines. This means that 75% of computing resources are used and 25% are available. Each virtual datacenter is using 4 VLAN tags. This means that 24 tags are used and 8 tags are available. The VLANPS (percentage) is 15%, which means that these tags are reserved for deployments of existing machines.

 

We can calculate the number of available VLAN tags using the equation above.

#availableVLANtags = (32(tags)-(32(tags)*15%(VLANPS)))-(5(reserved VLANs per VDC)*6(VDCs currently deployed))

#availableVLANtags = (32-(32*0.15))-(5*6) = -2.8

As you can see, the result is negative, so there are no tags available. This means that you will not be able to deploy another virtual datacenter in the rack. The unused resources on this rack (25% of the computer resources and 25% of the VLAN tags) have been kept for the future needs of the existing virtual datacenters.

Conclusion

The VLAN allocation algorithm is designed to balance quality of service and the advantages and flexibility of the cloud philosophy. A user with the Manage infrastructure elements privilege can use the Reserved VLANs per VDC and the VLAN pool size for VDCs that exceed reservation fields to implement an appropriate service policy.

Sample VLAN allocation configurations

The following configurations are examples of how to use the VLAN parameters. The default balanced configuration is recommended.

Default balanced configuration

  • Reserved VLANs per VDC = low number (default = 1)

  • VLAN pool size for VDCs that exceed reservation = 10%

    • balances VLAN allowance with number of VDCs per rack

    • allows low average number of VLANS for each VDC

    • small pool of VLANs for VDCs that require more than reserved VLANs

    • if you wish to control the maximum number of VLANs per VDC, set appropriate allocation limits

Guaranteed maximum number of VLANs for each virtual datacenter

  • Reserved VLANs per VDC = Highest maximum VLANs per VDC (maximum allocation limits)

  • VLAN pool size for VDCs that exceed reservation = 0

    • using the highest maximum value of the allocation units

    • guarantees all VDCs can use the maximum number of VLANs

    • low number of VDCs deployed per rack

    • can result in a large number of unused VLANs

    • will result in very inefficient use of physical machine resources unless the switch has a relatively high number of VLAN tags

Minimum number of VLANs for each virtual datacenter

  • Reserved VLANs per VDC = 1

  • VLAN pool size for VDCs that exceed reservation = 0

    • large number of VDC deployments per rack

    • no pool for VDCs that require more than reserved VLANs

    • no guarantee of VLANs if maximum VLANs per VDC > 1

    • if you wish to control the maximum VLANs per VDC, set appropriate allocation limits

Which VLAN tag will the VLAN use?

To decide which VLAN Tag will be assigned to the VLAN, the allocation algorithm returns the next free available tag in the switch range tags defined by the fields VLAN ID min, VLAN ID max and Excluded VLANs ID in the Network Parameters form for the rack.

 

Explanation of reserved VLANs per VDC

If the allocation algorithm allowed for the maximum number of VLANs per VDC for each datacenter, there would be many VLANs that would remain unused. For example: if reserved tags = 8 and used tags = 4 per VDC, then no more VDCs can deploy and 50% of resources are wasted.

 

To ensure that there are not too many unused tags, the allocation algorithm calculates the Reserved VLANs per VDC instead of the maximum number.

Explanation of VLAN pool size for VDCs that exceed reservation

Some users will probably create more VLANs than the reservation. So if only the reserved average VLANs per VDC are allowed for, some users may not be able to create all the VLANs they need. For example: if reserved tags = 4 and used tags = 4 per VDC, and another VDC deploys, then no users can create more than the reservation. 

 

For this reason a pool of VLANs are reserved for any VDC that requires more VLANs.

Copyright © 2006-2024, Abiquo Holdings SL. All rights reserved