vCloud Resource Management – Reservation Pool

imagiris_vcloud

A couple of weeks ago I posted some information on how the vCloud Allocation Pool Model manages resources with Elastic vDC is not enabled as well as when Elastic vDC is enabled.  This is the follow-up post to run through the same scenario except using the Reservation Pool model.  The reason I wanted to do this is that I feel the reservation pool model gives the user the most control of all their resources from an individual machine level.  This can be extremely useful especially if you are savvy enough to understand per virtual machine reservations and limits.  You can get finite control of your machines to allow your applications to run better.  A common use case for this is JAVA based applications where you want to reserve the machine’s memory for the application.  Let’s again start again with what the service provider might tell you they are giving you.

What You Get

We will use slightly different numbers:

  • 30Ghz CPU
  • 120GB vRam
  • “X” Amount of storage
  • “X” Amount of bandwidth
  • “X” number of public IP’s

Now, I will explain how this affects the resources you are given above.  In some aspects the Reservation Pool model is the easiest to understand.  However, one downside from a provider perspective is unlike Elastic vDC, this cannot span ESX clusters.  You will see why in a moment.

Example vCloud Reservation Pool Settings

What makes the Reservation Pool different is that you the user are given one fixed bucket of resources that vSphere manages through a resource pool.  You as the use then have the control of how much or how little you want to over commit based on the individual virtual machine reservations and limits.  That control is exposed to you through vCloud Director as we will see in a moment.

What The vRAM Resources of 120GB Means

  • 120GB Memory Allocation in vCloud Director
  • 100% Memory Resources Guaranteed in vCloud Director

reservation_pool_mem

Where this differs from the Allocation pool is at the vSphere settings.  With this model a single Reservation Pool is created with a 120GB memory reservation along with an equal limit.  This means the resources in this pool will be controlled solely by vSphere.

reservation_pool_vSphere_mem

We will look at the effects of powering on virtual machines in a little bit since I want to show the granular control you have along with the resource pool’s updates.  Now let’s examine the CPU settings.

What The vCPU Resources of 30Ghz Means

  • 30Ghz CPU Allocation in vCloud Director
  • 100% CPU Resources guaranteed in vCloud Director

reservation_pool_cpu_setting

Just like with the memory we see the vSphere resource pool is configured with 100$ CPU reservation along with a matching limit.

reservation_pool_vSphere_cpu

The easy thing to remember here is that you the consumer in this example get a fixed pool of resources to work with.  Once you start deploying virtual machines you can decide how you want to reserve resources in this pool to each machine, or simply over commit.  Let’s take a look now at a quick example of some machines we will deploy.

The Individual Virtual Machine Settings

In this part of the example let’s use the following virtual machines to be deployed.

  • Web Server – 2CPU 2GB Memory.  No Reservation Required
  • Database Server – 4CPU 4GB Memory.  100% Memory Reservation Only

We are assuming that the web servers in this application can just run with the default settings and no resource reservations.  However we have decided the database server will get all of it’s configured memory reserved so we can ensure some memory performance on the machine.  Why do this?  We don;t want the memory for this machine to be over committed.  First we configure this in vCloud Director on each virtual machine’s Resource Allocation Tab.  We do this after they are deployed, and while they are powered off.

Here you can see the Web Server:

reservation_pool_web

 

And the Database Server:

reservation_pool_db

You will notice this is almost exactly the same representation as the vSphere resource settings.  As you can note, we have set the database servers memory to a 4GB reservation which is the same as the machine’s configuration.  Once we power these on we can see the change in the vSphere resource pool that now reflects the database server’s reservation taken from the resources in the original pool leaving less reservation available for additional virtual machines.  It should be noted that the overhead reservations are also accounted for in this view.

reservation_pool_db_vSphere

Why Is This Version Important?

Hopefully you can see that this model actually provides you the consumer with the most control of the pool of resources given to you.  You can decide if you wanted, to set no per virtual machine reservations or limits at all and over commit your entire vDC.  Conversely, you can pick and choose the machines that you know need access to more physical resources and assign those resources to them.  One thing to not is that once the pool of resources is used, you will eventually not be able to power any more machines on.  The reservation pool has the hard limit set, so either way you can fill up to the brim at some point.  That will either happen through overhead reservations only if you set nothing, or through a combination of fixed reservations and overhead combined.

This model combined with the vCloud Networking capabilities, is in my humble opinion one of the better options for true enterprise control of your applications.  That is provided you fully understand the applications needs and capabilities so you can manipulate these settings to your advantage.  Hopefully this arms you with some power to make decisions on which provider’s offering, based on the allocation model in use is best for you.

Please leave comments and questions below.

Leave a Reply

Your email address will not be published. Required fields are marked *

*

Scroll To Top
%d bloggers like this: