Resource pools, child pools, and who gets what…

I know there have been numerous blog posting on this topic already which are all very good, but this is mainly for my own understanding as I try to understand this topic a bit further.

So what are resource pools?

They are a logical abstraction for management so you can delegate control over the resources of a host (or a cluster). They can be grouped into hierarchies and used to progressively segment out accessible CPU and memory resources.

Resource pools use a construct called shares to deal with possible contention (noisy neighbor syndrome)

Setting CPU share values Memory share values
High 2000 shares per vCPU 20 shares per megabyte of configured VM memory
Normal 1000 shares per vCPU 10 shares per megabyte of configure VM memory
Low 500 shares per vCPU 5 shares per megabyte of configured VM memory

*Taken from the 5.5 vSphere Resource Management document

My biggest issue with even getting into any contention issues is why would you architect a design that has the possibility to have contention if you can avoid it. I understand that a good design takes into account for the worst case scenario in which all VMs would be running at 100% of provisioned resources, therefore possibly generating an over-commitment issue with potential contention but that’s when you go to the business to request more funds for more resources. I know it’s the one of the benefits of virtualization that you can do this, but should you rely on it?.. It’s also a comfort level of over allocation in which the level depends on the individual architect. Keep to the rule of protecting the workload and I don’t see an issue with this. I keep the worst case scenario in mind, but I don’t ever want to get there, but this is more of a rant than anything else.

Frank Denneman(@FrankDenneman), Rawlinson Rivera(@PunchingClouds), Duncan Epping(@DuncanYB) and Chris Wahl(@ChrisWahl) have already set us straight on the impacts of using resource pools incorrectly and the best ways to most efficiently use RPs.

The main takeaways of resource pools are:

  • Don’t use them as folders for VMs
  • Don’t have VMs on the same level as resource pools without understanding the impacts
  • If VMs are added to the resource pools after the shares have been set, then you’ll need to update those share values
  • Don’t go over eight (8) levels deep [RP limitation; and why would you]

Additional Resources:
Chris Wahl: Understanding Resource Pools in VMware vSphere

Frank Denneman and Rawlinson Rivera: VMworld 2012 Session VSP1683: VMware vSphere Cluster Resource Pools Best Practices

Duncan Epping: Shares set on Resource Pools

CCDA Study: What is PPDIOO?

Studying for CCDA: What is PPDIOO?

I’ve been studying for the Cisco Certified Design Associate (CCDA) to give me a better insight and view of the Cisco design methodology. I’m trying to be well rounded overall and this is one of weaker areas. It’s been interesting and I’m learning a lot in the way of how Cisco sees the building blocks for a network design.

I came across the acronym PPDIOO which stands for Prepare, Plan, Design, Implement, Operate, and Optimize.

This is the network lifecyle. Each phase builds up to the next phase and provides a roadmap of how a network should be implemented, designed and upgraded.

PPDIOO Phase Description
Prepare Establishes organizational and business requirements, develops a network strategy, and proposes a high-level architecture
Plan Identifies the network requirements by characterizing and assessing the network, performing a gap analysis
Design Provides high availability, reliability, security, scalability, and performance
Implement Installation and configuration of new equipment
Operate Day-to-day network operations
Optimize Proactive network management; modifications to the design

These different phases sound very familiar and match up to other design frameworks, ontologies or methodologies. But they all have a central focus on logically breaking down each step to provide a repeatable process in which all points are thought out.

How-To: Delete a VM via a PowerCLI Scheduled Task

This is a PowerCLI script that you can use to delete a VM which can be put into a Windows scheduled task job to be ran at a specified time and date. Below is the code snippet for the script:

Add-PSSnapin VMware*

$VISRV = “vc.lab.local”

$dieVM = “VM-001”

Connect-VIServer $VISRV

$VMToDelete = Get-VM $dieVM

If  ($VMToDelete.PowerState –eq “PoweredOn”) {

Shutdown-VMGuest –VM $dieVM


Remove-VM $dieVM –DeletePermanently –confirm:$false –RunAsync

To set a scheduled task by PowerCLI in Windows you can follow the well-known Alan Renouf’s walkthrough called Running a PowerCLI Scheduled Task

How-To: Create a VMkernel Adapter on a vSphere Standard Switch

Create a VMK adapter on VSS in the vSphere Web Client

This is a walk-through of how to setup a VMkernel port adapter on a vSphere Standard Switch using the web client.


  1. Once you’re logged into the web client then navigate to the host to where you would like to setup the vmk adapter:

  1. Choose Manage, select Networking and then select VMkernel adapters.

3. Click on Add host networking.

  1. On the Select Connection type page, select VMkernel Network Adapter and click Next

  1. On the Select target device page, select either an existing standard switch or a New vSphere standard switch. In this example I’m choosing an existing VSS called vSwitch0.

  1. On the Port properties page, configure the following settings:

Network label (name of vmk adapter): (for example: Management traffic)

VLAN ID: (for example: 666)

TCP/IP stack: (for example: Default)

Enable services: Management traffic

  1. On the IPv4 settings page, select an option for obtaining an IP address. For this example, I’ve chosen to use a static IP address of 168.199.5 and Subnet mask of


  1. On the Ready to complete page then review your setting selections and click on Finish

vSphere Cluster Size

I’ve pondered over this question before, “how big should I make my cluster”. At that point you have to take a step back and think about the tradeoffs with the potential impacts that your next decision is going to bring.

So you have a design decision: Should you design a vertical or horizontal vSphere HA cluster?

At this point you have some design choices to make. Let’s assume that you have an already established cluster of 5 nodes with HA and DRS enabled. There is money in the budget to buy additional servers to accommodate future growth.

There is a considerable amount of information in order for you to consider in order to make the most appropriate decision, such as cost, power, cooling, floor space and max cluster limitations to name a few. There are advantages and disadvantages to designing a vertical or horizontal cluster.

Scale-up cluster

Advantage Disadvantage
Managing fewer host reduces administrative cost HA failover potential takes longer to complete
Less hardware to provide redundancy vice splitting the cluster in two and needing more host for failover Need to be careful to stay within the cluster VM pert Host maximums. Potentially resulting in VMs not being restarted after a failure.
More cluster resources reserved for failure
For DRS, fewer migration choices available to balance out the cluster
Patching large clusters can take longer

Scale-out cluster

Advantage Disadvantage
A host failure affects fewer VMs Potential affects the maximum size that a VM can be configured
HA failover takes less time More data center floor space
Fewer resources reserved for failover Increase costs, i.e. power, cooling
Less of a concern with staying within the cluster VM per Host maximums
For DRS, it provides a greater migration choice and more opportunities for a better workload balance

On top of these advantages/disadvantages then you have to decide if your current design is meeting the demand of the business to achieve the performance, scalability and the return on investments. Gathering a current state assessment will aid the decision making process to guide you towards a design. Getting back to the scenario above it definitely depends on a multitude of factors, but if you can identify all of these different interdependencies. There is not enough information to make a decision up front, but you can start to formalize a game plan to get you in the right direction.

With these choices being taken into account, then one must decide whether you’re meeting the requirement of the business needs. I definitely enjoy making those decisions and figuring out the best possible solution available.

Useful resources