Summary
Virtual machines often need to have their CPU and/or Memory configurations modified because of performance tuning efforts, resource capacity reclamation (rightsizing), licensing requirements, or other business-related reasons. Virtual infrastructure administrators are challenged with reconfiguring the CPU & Memory configurations of existing (powered on) virtual machines because they typically need to be powered off to make the necessary changes. Powering off virtual machines that are in production and providing business value requires careful planning and scheduling with different departments/application owners to minimize impacts to the business. VMDSC aims to solve this problem.
Other solutions have attempted to solve this problem by scheduling the desired state to take effect at a certain date/time; however, this approach requires coordinating with the business to determine when the virtual machine can be powered off safely. This coordination is extremely time consuming and results in an avoidance to perform the rightsizing of the virtual machine(s).
Virtual Machine Desired State Configuration (VMDSC) allows virtual administrators to specify VM CPU/Memory desired state which will take effect upon the next Guest OS reboot. This removes the burden of having to schedule a downtime window with the business/app owners… VMs realize their desired state the next time they are rebooted which happens naturally because of regular lifecycle operations (OS patching, application updates, etc.). When integrated with vRealize, VMDSC allows VI Admins to automatically rightsize workloads based on vRealize Operations recommendations. Users can rightsize directly from vROps at the VM level or for all VMs within a folder/cluster/resource pool which has a much greater sustainability impact for organizations.

Requirements
- vCenter 7.x or above (not tested with earlier versions of vCenter but may work)
- vSphere Service Account with the following permissions:
- System.Read
- System.View
- VirtualMachine.Interact.PowerOff
- VirtualMachine.Interact.PowerOn
- VirtualMachine.Interact.Reset
- VirtualMachine.Config.CPUCount
- VirtualMachine.Config.Memory
- VirtualMachine.Config.AdvancedConfig
- VirtualMachine.Config.Settings
- Sessions.ValidateSession
- See the User Guide for vRealize Suite integration requirements
Instructions
High-Level Steps
- Create a VMDSC vCenter Service Account
- Deploy VMDSC OVA
- Leverage Postman to configure VM desired state configurations (download & install VMDSC Postman Collection)
- Integrate with vRealize Orchestrator
- Integrate with vRealize Operations
Please review the VMDSC User Guide for detailed instructions.
Video
Changelog
Version 1.1.3 (4092207)
-
Fixes an issue that could lead to VMs being stuck in BIOS mode after VMDSC configs are created and then the VMDSC service is restarted.
Version 1.1.2 (4042404)
- Fixes an issue that led to the API failing with the error “”error”: “pq: sorry, too many clients already”.” along with inconsistent results when applying configurations with the potential of VMs being stuck in BIOS mode.
Version 1.1.1 (3884518)
- Fixes an issue with the vRealize Log Insight Content Pack where events were not being included in the dashboard because the queries did not match the VMDSC service account username regex value.
Version 1.1.0 (3884518)
- Includes the ability to specify cores_per_socket in addition to the original cpu & memory desired state values.
- Includes additional CPU validation logic to ensure the Cores per Socket value is a multiple of the total number of desired vCPUs.
- Includes the ability to specify only the desired VMDSC elements when making API calls rather than all of them (e.g. - you can specify just the CPU desired state, or memory, or cores_per_socket rather than all three of them).
- vRealize Orchestrator package
- Postman Collection
- PowerVMDSC PowerShell Module
- vRealize Log Insight Content Pack
- VMDSC User Guide
- Pagination updates to the GET /configs API request.
- Updates to the following items to include the new cores_per_socket capabilities:
Version 1.0.1 - Build Number: 3071237
- Fixes an issue where the VMDSC service could leverage the wrong vCenter service account while re-establishing the govmomi connection.
- Appliance startup script now checks whether the optional vCenter CA certificate URL provided is encoded as DER or PEM and imports appropriately.
- Includes the vRealize Log Insight VMDSC Content Pack (1.0) which provides a dashboard for historical VMDSC events.
- Includes support for the PowerVMDSC Powershell Module which provides users the ability to interact with VMDSC directly from Powershell.
User Guide v1.2 Updates - Added “Change Settings” to VMDSC vCenter role and added the need to import the vROps certificate into vRO.
Launch Version 1.0.0 (Goldblum) - Build Number: 2636821
Contributors
Similar Flings

vSphere Mobile Client
vSphere Mobile Client enables administrators to monitor and manage vSphere.

Cross vCenter VM Mobility - CLI
Cross vCenter VM Mobility - CLI is a command line interface (CLI) tool that can be used to migrate or clone a VM from one host to another host managed by a linked or isolated vCenter (VC) instance.

vRealize Build Tools
vRealize Build Tools provides tools to development and release teams implementing solutions based on vRealize Automation (vRA) and vRealize Orchestrator (vRO).