The challenge for most VMware admins is get their infrastructure as close to perfect as they can. Of course, no infrastructure is ever perfect, but the best ones will be efficient, highly available, resilient and offer great performance. So how do you get there? By following these tips (and then periodically reapplying them), you'll be as close to perfect as you can be.
1. Do it right the first time (don't skimp)
We're talking about building a VMware virtual infrastructure, but it's important to keep in mind that before you build anything, you must properly design it. The design of VMware virtual infrastructures is a substantial topic. vSphere design is covered in
Any proper design starts with knowing your constraints, business requirements and application requirements. With those in hand, you can map the requirements to logical and physical designs.
The physical design shouldn't skimp on the most critical resources that your virtual infrastructure will need: CPU, memory, storage I/O and network I/O.
While it may be tempting to start small, you're investing in the future, so fight that temptation and go big (or as big as your budget reasonably allows). Hardware vendors are now selling physical servers that can run hundreds of virtual machines (like Cisco UCS). Vendors like VCE are selling pre-sized racks that can run thousands of virtual machines (like the VCE Vblock). If you might need that kind of scale, then you should plan for it from the beginning.
2. Maximize resources
So much of virtualization is about maximizing resources. We try to do more with less by consolidating many physical servers onto few physical servers, virtualized as VMs. Thus, one of the main goals when building and managing your virtual infrastructure is maximizing your resources.
For example, one of the main questions is how many virtual machines you are able to consolidate on a host (and still maintain performance within your service-level agreement). What hardware should you use to run the most virtual machines for the lowest price?
Once you have your virtual infrastructure built, capacity needs to be managed closely. Virtualization performance and capacity management is all about the balance between over- and under-utilization of your resources (the physical servers' CPU, RAM, storage I/O and network I/O).
To straddle that resource fence, you'll need at least one tool to help you monitor things like disk cluster latency, cluster memory and CPU capacity, and possibly even application response (if you have the right apps and tool). Examples of tools that help might be VMware vCenter Operations Manager (vCOPS) and vKernel/Quest/Dell vOPS Server Explorer.
3. Choose the right edition of vSphere
With vSphere available in three editions (not including the two Essentials editions for the SMB and vSphere with Operations Management), there's a lot to consider. While it may be tempting to buy all that VMware offers in vSphere Enterprise Plus and the vCloud Suite, your company could save hundreds of thousands of dollars (depending on the number of licenses you are purchasing) by going with vSphere Standard or Enterprise. if your company and its applications don't need the advanced features of the highest editions.
In order to make that decision, you have to understand the benefits of those features in relation to the needs of your company. Does your company need the performance of the vStorage API for Array Integration (VAAI)? Do you need resource balancing with features like Distributed Resources Scheduler (DRS), storage DRS or network I/O control? Do you need a cloud service director like vCloud Director?
4. Be realistic
Every vendor has its own best practices, and there may be conflicts between them. There's also no "one size fits all" for virtual data centers. The best practices for a large virtual infrastructure likely don't fit a small three-server data center. Similarly, the best practices for high-performance Tier-1 virtual machines also don't apply to the hundred or more virtual machines that you may have running on the same servers.
By being realistic and trying not to go crazy with best practices, you'll save yourself a lot of stress. Of course, there can be value in comparing your infrastructure to the best practices to see what you learn.
Here are some general best practices guides:
- VMware vSphere Performance Best Practices
- VMware vSphere vMotion Architecture, Performance, and Best Practices
- VMware vSphere High Availability Best Practices
- Best Practices for running vSphere on Network Attached Storage
5. Know your apps
The data center is only justified by the business-critical apps that run inside it. With so many types of best practices available (related to storage, network, hypervisor, database and application), you'll best be able to take advantage of them by knowing your applications. What are your most critical Tier-1 apps? Where do those apps store their data? For example, if you have critical SQL servers transacting data, then you should consider the SQL server best practices. On the other hand, if you have SQL Express servers that were installed by some simple management apps, then those aren't SQL servers you need to worry about.
These are best practice documents for several virtualized applications:
- Running Oracle Databases on VMware vSphere
- Enterprise Java Applications in vSphere
- Deploying Exchange in VMware vSphere Best Practices
- Microsoft SQL Server and VMware vSphere Best Practices
Only by knowing your applications will you be able to understand where virtual machines are running and what talks to what.
There are numerous tools available to help with application inventory. Many of those tools use agents that run inside the guest operating systems. VMware's vCenter Infrastructure Navigator (VIN) is innovative, in that no agents run inside the virtual machines. Instead, VIN analyzes packets going to and from the virtual network to learn about the applications being run and what application is talking to what. VIN is part of vCOPS, used to track application performance.
The bottom line is: Don't build your virtual infrastructure before you have spent time planning and designing it. The design should not only maximize your resources, but also ensure that you are covered for the future. You'll need to make sure that you have a full understanding of the vSphere features, in order to help you specify what vSphere edition to use for the virtual infrastructure build-out. From there, make sure you have a tool in place to help plan capacity. Don't try to apply every best practice you can find. Instead, be realistic, know your apps and leverage the power of virtualization in your favor.
This was first published in May 2013