VMware vSphere - What is the correct way to right size a virtual machine? (Situation 2: Sizing using Virtualization Assessment Tools)
I got some great feedback on my last post (Situation 1: Sizing for an RFP Response), so here I am continuing with the part 2 of this post.
Now, if you are facing this situation, then you can be sure about the fact that you are already engaged in a project with the customer. The customer would now let you in his Datacenter and ask you to do whatever you can to find out what they are running and size the close to final target virtual infrastructure for the them.
For such a sizing we cannot depend on assumptions and we would need to be more realistic with the numbers. The only way to be realistic with the numbers, is to use tools which can go and sniff out the existing physical infrastructure and help you gather data which can be processed into useful information.
In this post, I will speak about the various options available, to collect this data and then see how to process it and come to final sizing of the virtual infrastructure. This will take you one step closer to the final goal of adopting or implementing Virtualization in a customer's environment.
Before we begin, I cannot stress more in saying that this is the most important step in the entire project as this would decide if the Virtualization initiative taken by the CIO of the organization is a success or a failure. Yes, sizing is very important. If you have a look at any virtual environment which has performance issues, 95% of the times this would be due to incorrect sizing of the virtual machines.
So lets begin the joyride....
Lets see what are the options available...
Now in the life-cycle of a Virtualization and consolidation project this phase is termed as ASSESSMENT. An assessment of the As-is state helps you find the GAP between the As-is and the To-Be (target) state. This process is called Gap Analysis. To perform such analysis for a Virtualization project, there are a number of tools available in the market. I will talk about the most famous and frequently used tools here:-
I - VMware Capacity Planner - This, I believe is the most widely used tool for carrying out a Virtualization assessment. As the name suggests this tool is from VMware. Originally this product was owned by a company named AOG. VMware has been quite strategic with its acquisitions and hence they were quick to realize the importance of this tool and acquired this in the year 2005 and named it VMware Capacity Planner.
To add to this, VMware decided to offer this tool for free to partners. So if you are a VMware partner and looking to assess a customer's environment, then you can actually do it for FREE. You just need to finish a MyLearn course which is self paced and free of cost. Here is the link to the course:-
Once done with this course you would need to go to the following link:--
Here you would be able to click on the link to "Request a New Account" (if you are a registered partner with VMware) and the rest of the process is pretty standard.
Once you have this account in place, you would be able to log in on the capacity planner portal and create assessment projects for Server Virtualization and Desktop Virtualization.
Let me get back to the track now. Using this tool would be simple enough once you finish that 5 hours self-paced course. The important thing is to ensure that you are using the tool to get you the best possible results. Here are a few pointers which I can give you:-
a) Ensure that the assessment period is a minimum of 4 weeks to get sufficient samples from the tools.
b) Try to cover the peaks and drops of the business during your assessment.
c) Be ready to make assumptions for certain periods which you cannot cover during the assessment, such as Quarter Ends, Year Ends etc. Also, make sure that your customer gives you the maximum inputs in order to make these assumptions as accurate as possible.
d) Needless to say that you would need Local Admin / Root credentials to ensure that you are able to collect the data from your physical workloads without any issues.
Now, this tool has one unique feature which might be a positive or a negative feature. The tool actually uses a local Data Collector which is a piece of software installed on a box which will be sitting in the datacenter of the customer and collecting all the performance values, to name a few important one's
a) CPU Utilization
b) Memory Utilization
c) Disk utilization & IOPS
d) Network Utilization
This data is then uploaded on to the VMware Data warehouse over the internet. This Data warehouse is linked to the VMware Capacity Planner portal. The beauty of the product is that this portal will automatically do the assessment of the data which is uploaded and at the end of the assessment will provide you with an assessment report which will go to the details of sizing the entire target ESXi infrastructure for you. Needless to say that it uses the utilization data of the current physical servers and uses its algorithms to define the size of these machines once they are virtualized.
Along with sizing, this tool would also let you down-select the good candidates for Virtualization by looking at the utilization of the physical servers. This ability helps you to ensure that you are taking the right step forward towards Virtualization.
The only reason why I would not use this tool is if my customer is sensitive about uploading his inventory information to an unknown destination where it is processed. Though there are options to hide the information such as host name, IP addresses etc within the tool, this is more to do with the Security Standards of the customer than an actual risk. Hence there are customers who would not go this route.
Lets see how we work with such customers.
II - Platespin Recon - might help you in such a situation. This is not only an assessment tool but a tool which helps you to create Virtualization and migration projects on a whole. Moreover, this can be installed on premise i.e. in the customer datacenter and the entire assessment study can be done within the datacenter. This also links with the other product of Novell which is widely used for P2V's, V2V's, P2P's & V2P's. The product is call Platespin Migrate.
But as we all know "Their are no Free Lunches", this tool comes with a cost. You would pay for the assessment and then if you would want to use the Migrate tool, you would have to shell out a few bucks for that as well. You can get more information about the pricing & packaging of these products on the Novell Website:- http://www.novell.com/solutions/virtualization-workload/
To know more about these products and how they compare with each other, you can visit the following blogs which have tons of great information about them:-
Now, you would also find customers who would not want to use any tools, yes I have faced some of those as well. They could have there own reasons, but it does not help a consultant for sure. Lets see how to do your assessment in such situations.
Note: - This one is only applicable to Windows environment as we will be using the native performance tool aka PERFMON.
III - Perfmon (Performance Monitor) - This utility is u sally leveraged by all the capacity assessment tools in order to capture data from Windows servers.
Here are a few steps can use to configure Perfmon :
1 - Click start, run, type Perfmon and click OK
2 - Right click on User Defined as shown in the screenshot and click on “New->Data Collector Set”.
3- Type the server name as “<Servername>_Perfdata_DBS” in the name field and select the radio button “Create from a template (Recommended)” and click on Next.
4- Click on Browse and select the file “Perfdata_DBS” and click on OPEN. (Perfdata_DBS) is a template which can be created in perfmon for collecting the following metrics:-
- Total CPU Peak Utilization: from “% Processor Time”
- Memory Peak Utilization: from “Available Mbytes”
- Disk Peak IOPS: from “Disk Transfers/sec” \
- Network Peak BPS: from “Bytes Total/sec”
- CPU Queue Peak: from “Processor Queue Length” (optional)
- Disk Queue Peak: from ”Current Disk Queue Length” (optional)
5- Click next to select the output file location.
6- Click Next and Click Finish on the following Screen
7- On the Perfmon screen right click on the listed job and click Properties.
8- Click on Schedule TAB to define the job Schedule. Add a start DATE and an END Date. (This period should be anywhere between 2 to 4 weeks. It’s good to have 4 weeks of DATA.)
9- Now right click on the JOB and click on START.
Once the Job is ran for the defined period, fetch the .CSV file which has the results.
Along with the performance data you can use tools such as WinAudit to collect information about the physcial servers. Now with these results you will be able to get the Peak utilization values. The best way to size with these numbers is to use the the percentile formula in mathematics.
In simpler terms, pick the 10% of values which are with peaks for all the counters. Average these values to get the Peak Average Utilization. Add a buffer to 20% to this data for each virtual machine (for CPU & Memory), this will help you derive the final size.
Below is how the VM resources are obtained
a) vCPU – The Peak CPU utilization will be obtained based on the 90th Percentile. This figure will be in Mhz. An added buffer of 20% would be added to this value for a head room. Determine the vCPU required for the VM by dividing the CPU cycles required by the Mhz per core. Each VM will be given a minimum of 2 vCPU.
The vCPU allocated to the VM will be in increments of 2. This is to cater for applications which can only support even number for vCPU. e,g 2vCPU, 4vCPU, 6vCPU….
example : Peak CPU utilization based on 90 percentile = 3550 Mhz
Utilization after adding 20% Buffer = 4260 Mhz
Mhz per Core = 2660 (approximate value on the new server)
Proposed vCPU required = 4260/2660
= 2 (rounded to the nearest 2vCPU)
b) Memory - The Peak Memory utilization will be obtained based on the 90th Percentile. This figure will be in MB. An added buffer of 20% would be added to this value for a head room. This figure will be further rounded up to the nearest GB. Each VM will be given a minimum of 2 GB.
example : Peak Memory utilization based on 90 percentile = 722 MB
Utilization after adding 20% Buffer = 866MB
Memory required after rounding to the nearest GB is 1024MB.
So with the exercise you would be able to size each virtual machine. Though this is a crude way of doing things, but this might fetch the results for you to get the information you need. You can refer to my previous post to see how would you arrive to the number of ESXi servers required to run the virtual machines.
Well, I would end this series with this high level overview and approach. I will come back with some more topics which would help you understand and learn more about the Virtual World.