VMware Cloud Community
litok
Contributor
Contributor
Jump to solution

What's the point of cluster resource pool?

Hi,

I am evaluating ESX3.5i and virtual center; and very new to VM world. I have a question on cluster resource pool. Here's the scenario:

I am interested to put 3 ESX3.5i hosts (3 different physical machines) and cluster them together so I can get more CPU and memory out of it.

In resource pool setting, I can see that the CPU of the pool increases to the sum of all CPUs in the servers (i.e. 8000Mhz = 3Ghz + 3Ghz + 2Ghz (server 1, 2, 3 respectively)). Yet, from DRS documentation, you cannot let a server inside the cluster to utilise 8Ghz. If the guest OS runs on server 3 (2Ghz CPU) and it needs say 2.9Ghz, it will move the guest to server 1 or 2 (under automatic DRS). So it's not distributed computing. I'm still confined to the limitation of each server's resource and doesn't allow me to spread the CPU utilisation.

Same story with RAM.

Anyone can clear this please?

PS. The guest OS is planned to run SAP R3. Anyone has opinion for SAP on VMware? Thanks.

Lito

0 Kudos
1 Solution

Accepted Solutions
weinstein5
Immortal
Immortal
Jump to solution

Welcome to the Forums - Before I answer your question lets talk about how CPU and memory are allocated to a VM - to start with CPU a VM's virtual CPU can only run on a single core at a time - so as you point it will only get what the host has and in your example yes DRS will move it to the ESX server that has the necessary cycles - now in terms of memory the vm still can only run on one server at a time but with memory you can over commit using tools like transparent page sharing, the balloon driver and the per vm vmkernel swap file giving vms more memory than what is available on the server - so now to answer your question - why have resource pools in a cluster - remember what a resource pool does - it allows you to carve up resources from either a standalone host or a cluster - best way to explain by a real world example - a school district I have worked is using resource pools on clusters to segment the resources to the different groups they support administrators, teachers and students in sring that students will not take so many resources to affect the teachers and administrators -

If you find this or any other answers useful please consider awarding points by marking the answer helpful or correct

If you find this or any other answer useful please consider awarding points by marking the answer correct or helpful

View solution in original post

0 Kudos
4 Replies
weinstein5
Immortal
Immortal
Jump to solution

Welcome to the Forums - Before I answer your question lets talk about how CPU and memory are allocated to a VM - to start with CPU a VM's virtual CPU can only run on a single core at a time - so as you point it will only get what the host has and in your example yes DRS will move it to the ESX server that has the necessary cycles - now in terms of memory the vm still can only run on one server at a time but with memory you can over commit using tools like transparent page sharing, the balloon driver and the per vm vmkernel swap file giving vms more memory than what is available on the server - so now to answer your question - why have resource pools in a cluster - remember what a resource pool does - it allows you to carve up resources from either a standalone host or a cluster - best way to explain by a real world example - a school district I have worked is using resource pools on clusters to segment the resources to the different groups they support administrators, teachers and students in sring that students will not take so many resources to affect the teachers and administrators -

If you find this or any other answers useful please consider awarding points by marking the answer helpful or correct

If you find this or any other answer useful please consider awarding points by marking the answer correct or helpful
0 Kudos
Ken_Cline
Champion
Champion
Jump to solution

As weinstein5 pointed out, a VM is limited to the resources available on a single host (and further limited by the VM's configuration).

Remember, the point of virtualization is the sharing of resources - not the aggregation of resources. A resource pool is used for two purposes:

- 1: Delegation of administrative responsibility

- 2: Management of resource allocation

Typically, people install VI-3 on large, robust servers. Servers that would have much more resources (CPU, RAM, network, disk) than is required by an average workload. You then combine those resources into "clusters" and use the resource pools to DIVIDE the resource among different groups. In your scenario, where you have three single-processor servers, I'm not sure the cost of the license for VI-3 Enterprise (what you would need to be able to use DRS) is justified.

Ken Cline

Technical Director, Virtualization

Wells Landers

TVAR Solutions, A Wells Landers Group Company

VMware Communities User Moderator

Ken Cline VMware vExpert 2009 VMware Communities User Moderator Blogging at: http://KensVirtualReality.wordpress.com/
litok
Contributor
Contributor
Jump to solution

Thanks Weinstein5. So the purpose of resource pool on cluster is to segment resources. So if I can recap:

1. not a good idea to overcommit CPU in a cluster resource pool? best practice is to determine the CPU limit of each host and always use less that those limits (depending how you want the vm guests to move between hosts)

2. can overcommit memory in a cluster resource pool, but, still, once it hits the memory limit on a host, it will start using file (i.e. swap/page file) which ends up slowing down the running apps?

-

0 Kudos
weinstein5
Immortal
Immortal
Jump to solution

1) you can not over commit CPU - if you set alimit for the resource you will max out at the limit or if you leave the limit to 'unlimited' that means the resource pool will use all cycles in the resource pool - using shares to prioritize how the cpu cycles will be divided between the pools - typically for resource you will want to leave the resource pool to unlimited and rely on shares to prioritize how the cycles are divided between the two pools

2) you are correct if you over commit memory and start using the per vm vmkernel swap file the vm's performance will be degraded - and please not that this per vm vmkernel swap file is different than the swap file used by the service console -

If you find this or any other answer useful please consider awarding points by marking the answer correct or helpful
0 Kudos