I am doing my VCAP5-DCA prep and using the unofficial official VCAP5 DCA Study Guide to guide me true the subjects (great resource! Check it out at http://www.virtuallanger.com/vcap-dca-5/). And apparently I’m easily distracted, this time with the subject of resource optimization/management and in particular the hot plugging CPU and memory options.
As you probably know there are several device options you can add to a running VM like virtual nics and virtual disks. vSphere 5.5 even has support for hot add/remove of PCIe SSD. These normally work hot out of the box.
For CPU and memory (the virtual ones vCPU and vRAM) this is not the case. They are disabled by default. Why? Well because support of the guest OS is limited, not all hypervisor features are operable (for example FT) and for applications running in the VM support is even more limited. Often you will have to recycle the application service to let it use the added resource or there is possibility of resource degradation/stability. That means downtime and that isn’t what hot add/plug is about. What is the point of using hot add/plug when there is downtime involved? Sure a guest OS restart vs an application service restart takes probably more time on the OS part, but applications work in chains you will know which part (or all) of the layers need attention. This tends to count more for the vCPU hot add, memory hot add/plug is longer around and is incorporated in more guest OS’ses/applications then hot plug vCPU is.
Secondly if you haven’t selected hot add/plug/remove vCPU and vRAM in the creation of your VM (or template), and enabled guest OS support, you will have to power down the VM before being able to change these options. Planning ahead (capacity management) is key here, but that goes for resource management as well. You might as well adjust the resource values you require before powering on the VM.
And what about with elastic resources, is there a hot remove option? For vSphere this is currently a no no, no matter what the guest OS support on this is (on some of the Linux distributions, Windows is also a no no). Memory remove is only done by powering down the VM.
What OS’ses support hot add/plug/remove CPU/Memory?
NB. I have left out Windows Server 2003. Yes there is support in there, but this product is bound for EOL. If you are thinking on hot add for this product, rather start thinking about doing a step up in life cycle.
NB. For Linux I just included some distributions. There are of course more supported on VMware.
What applications support hot add/plug/remove CPU/Memory?
This is the harder list to create. For a very few there is public information on support (or just it can be done) of hot add vCPU/vRAM. For applications it is harder to determine whether the resource is added to the OS for usage in the application or for other purposes. Applications must support multi processors to take the full advantage of a virtual socket that is added.
IIS? No. Needs a recycle of service or application pool.
SQL Server? Needs Enterprise edition. After adding vCPUs, execution of the RECONFIGURE statement is needed before it is used.
Exchange? A maybe, again a recycle. There are performance issues rumored when using these features, some have to do with paging depletion afterwards.
Be sure to test test test.
What are you prerequisites to hot add/plug/remove CPU/Memory a running VM?
- The virtual machine has a guest operating system that supports hot functionality, and must be turned on in the OS.
- The virtual machine is using hardware version 7 or later. With KB 2050800 there is mentioned an issue with 2012 and windows 8 on hardware version 9 (5.1).
- VMware Tools is installed.
- Hot add must be enabled per VM, at the creation time or by powering off.
- The hardware must be able to support hot plug as well, else there must be resources available to evict the VM’s to an other host while doing maintenance on the physical host.
- Does not need FT.
- Does not need vNUMA.
- Use vSphere Essentials, Essentials plus, Standard, Enterprise or Enterprise Plus. The are limitations per edition you will have to take in account, and versions (for example 5.0 standard edition will not let you use hot add)
- Check application licensing, how will this effect a per core or per processor application license.
Edit settings of VM to change hot plug/add.
Do we need to enable hot plug by default on my VM’s? Depending on the usage, only set it on for VM’s that have a tendency to run out of resources quickly, are very in demand and cannot tolerate a little down time in re-configuring. For a small part of the private desktops of the VD environment this can also be a good option to configure before hand, this is normally is a small group of your users for example developers with some private type desktops. For the standard bunch of VM’s/VD’s leave it off, like the products default. You can normally plan ahead the resources for these kind of VM’s. vCenter Operations is great for resource capacity planning. So plan ahead and enable default on all your VM’s? No not yet, there is to little application support out there specially on the vCPU’s. Planning ahead means knowing some more variables and they are not around yet (on the application level that is). Planning ahead is having your resource configured and monitored correctly, when there is need to change, change the resource settings.
The limited OS support and very limited application support is the why to the non adoption of this hot plug features that have already been around a little while. Will we expect it to grow with all the cloud movements and software defined data centers? This depends, when there is a need it will be incorporated in more applications. This list is currently small.
– Back to studying.