Link to home
Create AccountLog in
Avatar of jpletcher1
jpletcher1Flag for United States of America

asked on

Using resouce pools in VMware to divide resouces between development and production

I've read a lot of articles on this and have seen this done many different ways.  Please clarify and comment on the best method to accomplish this.
We have 4 ESXi 5.0 hosts in 1 cluster.  I want to implement resouce pools so we can divide our CPU and memory resouces between production vms and test/dev vms.  I'd like to keep it at about 80% for production and 20% for test/dev.

Would I:

1.  Create one resouce pool under the cluser called Dev, assign it low shares, then put the dev machines in that.  Then all the production machines would reside at top level in cluster and get full resouces?

2.  Create two resource pools.  One for Dev with low shares and one for Prod with high shares.  Move all machines into one or the other.

3.  Create one resouce pool under the cluster named Prod, then a child resouce pool under the Prod resouce pool called Dev?

Any better methods?
Avatar of vmwarun - Arun
vmwarun - Arun
Flag of India image

Link to home
Create an account to see this answer
Signing up is free. No credit card required.
Create Account
Avatar of Andrew Hancock (VMware vExpert PRO / EE Fellow/British Beekeeper)
Option 2
Avatar of jpletcher1


Hanccocka - can you please give your reasoning at to why that option is best and why the others aren't as good?
This is how Development and Test Resources are restricted, Resources to govern dev, and ringfenced and protected resources for production.

BUT do you currently have Resource issues between production and Dev and Test?

or are you trying to charge back a department?
I suggested option 1 since I assumed that you wanted to restrict only the Dev environment which can be achieved by a single resource pool. Prod VMs would be directly deployed under the cluster.
We used to have a 3 host ESX4.x cluster that we used for production servers and a 1 host standalone free version ESX4.x machine that all our dev stuff ran on.  We wanted to be able to manage our dev servers from within vCenter, so we purchased a new server and brought it into our vCenter environment and planned to move our dev machines onto it.  

With that said, we don't have an issue now, but I wanted to put something in place before I move our dev machines over to our vCenter envirnoment.  I am open to prod and dev sharing resources, but I want to make sure that prod always wins if there is contention.  I am also open to setting hard limits for dev if that is the best method in this case.
Link to home
Create an account to see this answer
Signing up is free. No credit card required.
Create Account
We do not usually create Dev and Production Resource Pools, until Development servers start causing issues with total resources in the farm.

The other reason that our clients like to create pools, is because they like to charge out their resources to deparments, or their department purchased a single development server for the cluster.

So they purposely ring fence those resources of 4 x CPU@2GHz, and 32GB of RAM, in a resource pool, because that's the server they've purchased. (but they have not physically purchased a server in real like, they think they have, but what they have purchased is part of the resource pool in the cluster - if you follow).
hanccocka - I understand, but given my reasons and circumstances, would you agree with arunraju's suggestion to create one resource pool for dev and leave production out at the top of the cluster?
If you are not wanting to charge, or allocate purchased resources.

Personally, I would not create ANY!

Unless, at present your resources are STARVED!

If the situations changes in the future, and Dev does start to affect the performance of the cluster.

The other alternatives is to allocate Reservations and GUARANTEE-ING resources to VMs.
Thanks for the comments guys.  In my case, I wanted something in place to put hard limits on our development servers so that they will never affect production machines.  I could get by without any resource pools as of now, but as our environment fills up I wanted to put some sort of restriction in place for resouces.