It's hard to increase your vSphere infrastructure resources in a short time when you don't have a plan. It's easy to buy and rent equipment and install vSphere to add new servers to your cluster, but you will have to buy the licenses for that, and is that really the best approach? Or, do you buy more memory or disks for your existing servers to satisfy the short term resource shortage? You might be spending a lot of money on a solution that in hindsight would not have been the best choice. So be prepared when you need to provide more resources for your virtualization environment.
First, monitor your usage and use the trends from the analysis tools to identify problems before they occur. A tool, such as vCenter Operations Manager (vCOPs), can predict when you will run out of resources. These tools can help determine the best and most cost-effective solution. In addition, vCOPS will also help identify resource usage waste in your vSphere infrastructure. You could be running VMs with too many vCPUs, too much RAM or using excessive disk space. When you reconfigure those machines in your environment, you might be able to reduce the resource usage sufficiently enough to keep running your virtualized data center or at least extend the time you have before running out of resources.
Stay in house or use the cloud?
First things first, you have to make a decision in a timely manner on how to provide more resources for your vSphere infrastructure. Are you going to grow your own data center or has the time come to move your resources to a provider of compute resources, such as with VMware's vCloud Hybrid Service (vCHS)?
How do you want to add resources?
When you decide to add resources to your existing vSphere environment, there are two general approaches:
- Scale up and increase the resources of existing servers/storage/networking, or
- scale out and add more servers/storage/networking to your environment.
One important thing to investigate is where you are running short on resources. When memory is the bottleneck, the simple solution could be to just add more RAM. Remember that when you add more VMs to your host, the number of vCPUs also increases and a new bottleneck might present itself.
When you need more compute resources, that is more difficult to correct. Depending on your server's architecture and motherboard, it might be possible to swap a dual-core processor with a quad-core CPU or replace it with a faster CPU, but this could be an expensive solution with a small gain. It's not as simple as adding memory or adding disks to you host or storage solution. CPU-compatibility with regards to vMotion is something else to watch out for.
When you scale up
When scaling up hosts to run more VMs, the impact when a server fails is bigger. You also need to re-examine spare capacity in a high availability cluster. An advantage of scaling up is you won't have to buy additional vSphere licenses, since they are sold on a per-CPU basis. As a result, the amount of RAM or number of cores per CPU doesn't matter.
When you scale out
With the scale-out option, adding new servers brings more CPU power and memory. You might be able to buy faster CPUs but keep your vMotion compatibility in mind. An advantage of the scale-out approach is resources are spread throughout your cluster, which decreases the impact in case of a failure. An important disadvantage is the additional vSphere licenses you might have to purchase. Also, new servers will have to be connected to the physical network and storage network, which requires space.
A third option -- scale away
Another approach is to run workloads on the vSphere environment of a public cloud provider. This allows you to create new VMs on demand and rapidly provide additional applications and services for your business. There are several VMware vCloud Service Providers that use vSphere as the base for their cloud, as well as VMware with vCHS.
In addition to creating new VMs when needed, scale away allows administrators to move existing workloads to a cloud provider. VMware customers can use vCloud Connector to connect, view, copy and operate vSphere-virtualized applications across vSphere-based environments.
A benefit of running workloads in a provider's cloud environment is you can scale up and scale down when demand fluctuates without investing in new hardware. For example, when you're unsure of how many resources a business application -- running in a tiered, multi-VM environment -- uses, you can operate it in the cloud first, which can pinpoint the needed resources. It also gives you time to order the right hardware and schedule moving the workload to your own data center.
Running workloads in your private cloud and a public cloud gives you the flexibility to resize your virtualization environment very rapidly, which will buy you time to look for the best solution that could be right under your nose.