Servers consolidated onto a physical server as virtual machines still need similar amounts of compute, memory and storage resources. Therefore, it is essential to get the server sizing right for virtualization. There is no ideal figure for the number of virtual machines hosted on a physical server. Typically, the types of hosted applications determine the number of virtual machines.
Resource utilization estimations
The first step in server sizing is a detailed analysis of existing physical server sprawl to determine central processing unit (CPU), memory, storage, input/output (I/O) and bandwidth utilization at different points of time, based on the hosted applications. Most server virtualization technology vendors offer tools that can assess the resource utilization requirements of physical servers.
After determining utilization levels, you can look at migrating physical servers to virtual machines. Taking a phased approach allow tweaking of your server sizing estimations. Organizations can start by migrating one server first for testing and behavior analysis.
Server sizing estimations should consider the following components:
CPU: In most server virtualization deployments, organizations move from a legacy to virtual server infrastructure. The new infrastructure will have multi-core processors with better processing capabilities. An application with certain utilization levels on the legacy servers will show lesser usage with present generation CPUs.
For instance, each server running a high performance application might approximately show 30% utilization levels with an Intel Xeon processor, as opposed to 5% with the quad-core Intel Nehalem processor. This will allow consolidation of more virtual machines on lesser hardware during server sizing.
Most vendors offer processor benchmarks for applications. This gives a better estimation of the number of virtual machines that can be run on a physical server based on the application type.
Memory: Non-memory-intensive applications such as Web or email servers use only a percentage of each server’s physical memory. Consolidating these applications onto a physical server requires lesser memory. Server sizing for a physical machine supporting 10 virtual machines, each running a Web server application will require only 24 GB of RAM (as opposed to 40 GB with each physical server being allotted 4 GB of RAM).
Server sizing for physical servers running memory-intensive applications such as online analytical processing, online transaction processing or databases require allotting the same amount of memory to each virtual machine as in the physical world. This could lead to over provisioning of memory resources. However, memory requirements for these applications could grow over the period. Over provisioning helps avoid memory level bottlenecks in the long run.
Storage: Storage provisioning during server sizing for virtual machines requires calculation of the amount of storage consumed by each application, and not the allocated storage on physical servers. Storage can be over provisioned by 30% when compared to the applications’ physical storage requirements. Procuring physical storage could take at least a month’s time. Over provisioning will help meet the increase in demand, while being able to procure additional storage.
With technologies such as thin provisioning and storage area network (SAN), there’s lesser amount of physical storage required to store data from servers. A fiber channel SAN offers good performance for supporting virtual server environments. A good server sizing practice is to have large volume redundant array of independent disk (RAID) groups to store virtual machines. Page files can be stored on a separate RAID group, ensuring even I/O distribution.
Network: In virtualized environments, 10 to 12 virtual machines are backed up on one or two physical servers. It’s a good server sizing practice to have two network interface controllers (NICs) of 1 Gbps or more per physical server to avoid I/O bottlenecks. It is essential to have a separate switch (to create a virtual LAN) for the virtualized environment. Using a storage appliance with source-based data deduplication for backing up virtual machines brings down backup storage requirements. This practice also reduces I/O pressure on NICs during backups.
Over provisioning memory and CPU resources while buying a physical server is a good server sizing practice. This ensures that a sudden increase in resource requirements is met upfront.
About the author: Satish Pai is the system administration manager at Marico. He played an instrumental role during Marico’s blade server virtualization implementation.
(As told to Harshal Kallyanpur.)