In many environments, there may be a need to align all VMs to standard sizes or configurations with regards to vCPU and memory. These are often referred to as standard VM “templates”. However, the default behavior of Operations Manager is to recommend vCPU and memory changes in accordance with the specific calculated need. This default behavior can be changed so that all resize recommendations are in line with a defined list of VM template sizes.
The following is a description of the steps to take to enable the VMTurbo Economic Scheduling Engine to make a recommended action to right size a VM to match the nearest Template that will get the VM to the desired state.
1. Create the VM template in the VMTurbo UI. You can use do this from the Deploy Tab, Plan Tab, or Policy Tab. For example, go to the Policy Tab > Click on "Cluster Capacity" > Template Catalog > Add
2. SSH into the VMTurbo server. Default credentials are root/vmturbo
3. Navigate to the Topology directory:
4. Make a backup of the original:
cp ServiceEntityProfiles.profiles.topology ServiceEntityProfiles.profiles.topology.orig
5. Open the file for editing:
6. Locate the VM Template you created in step 1 by checking the "displayName" parameter. Once located, add the parameter enableResizeMatch="true" to the profile.
This is an example:
<profiles xsi:type="ServiceEntityProfiles:VirtualMachineProfile" uuid="_31G1wL6IEeKQ55_kljWXYA" name="VirtualMachine::VSI-1-2" displayName="VSI-1-2" enableResizeMatch="true" numVCPUs="2" vCPUSpeed="2266.0" vMemSize="1048576.0" vStorageSize="102400.0" vendor="anything here" description="1 Gg RAM 2vCPU anything here">
7. Save the file and restart the tomcat service
service tomcat restart
8. Resize to templates will start to appear within 24 – 48 hours of the changes introduced and you may see entries like this:
- You must carefully consider the upper and lower bounds, or the smallest and largest Templates. It is recommended that you have at least 3 templates defined in order to not waste resources.
- These are Global settings and will apply to all VMs in all VCs/Clusters. However, you can disable resize recommendations on a per group/cluster basis if certain groups of VMs should not/cannot be resized.
- Every commodity needs to be matched: vMem, vCPU and Storage. Meaning, if a VM cannot fit a template because the storage defined is smaller than the VM is now, then VMTurbo will resize to the largest template available among all 3 commodities, causing some very high increment rightsizing recommendations in vMem and vCPU. Therefore watch your vStorageSize or Storage size values in the templates.
- Enabling Templates will not automatically resize all VMs in the environment, only those that are at risk which produces a valid recommendation or need to resize
- Any resize action will match to the nearest template.
- If the current VM configuration does not equal a template (that is resize enabled) then the "From" column is blank in the UI and in the VM Rightsizing Report. You can mouse over the descriptions to see more info.
- If you have workloads defined with reservations or limits, those resources are right-sized based on those values and not templates.