Using PowerCLI to Shutdown a VM resize vCPU and Memory and Power back on!

You ever been in that situation of “Oh no, I need to modify a VM to increase/decrease the number of vCPUs and Memory, but I can’t do it during normal business hours” Or whatever the situation may be?  Well, fellow #vExpert @BoBolander and I were discussing this recently, and worked together to create this!  This also will apply if you’re doing this to multiple virtual machines!

Well, look no further. :) You can script this, as in to execute it as a script to happen while you’re at home asleep during your maintenance window, but also even if you’re modifying a simple VM and want the LEAST amount of time and effort possible, minimizing the downtime of the VM this will work also!

Shutting down your Virtual Machine via PowerCLI

This will seem simple, that is because it frankly is.  For the purpose of these descriptions I’m going to use a long VM name so you know this works if a VM has a name with quotes or spaces in it.  So for these purposes, the VM in question will be named, “VMware vCenter Log Insight 1.0.4”

Shutdown-VMGuest –VM “VMware vCenter Log Insight 1.0.4” –Confirm:$False

Wow, that was simple! So I run that and my virtual machine is shut down? Yes. Yes it is.

Changing your Virtual Machines vCPU and Memory

There you are, your VM is currently rocking out at 4GB of Memory and 1vCPU and you’re all “I really want this to be 8GB of memory and 2vCPUs! You know, because I did the analysis and notice that it’ll perform better, no I’m not just blindly following some vendors ‘best practices’” Ok, if you’re serious about this, here you go!

Set-VM “VMware vCenter Log Insight 1.0.4” –MemoryGB 8 –NumCPU 2 –Confirm:$False

Whoa, that was it? My VM now has its resources resized just like that? Yes. Just like that. You’re done!

Please Power my VM Back on! I have work to do!

Alright alright, you want to power your VM back on, you’ve made your change and you’re set! Well, here you go just as simply…

Start-VM –VM “VMware vCenter Log Insight 1.0.4”

And poof your VM will start back up and you’ll be set!

You can combine The Set-VM and Start-VM ya know!

Yea, that’s correct! You can instead run the last two components as a single one-liner command like;

Get-VM “VMware vCenter Log Insight 1.0.4” | Set-VM –MemoryGB 8 –NumCPU 2 –Confirm:$False | Start-VM

Unfortunately I’ve yet to find a way to combine the VM Shutdown component and the Set-VM Component without it breaking, thus…

Hey but wait, I thought you said this was scriptable

You’re all like, “I can’t just copy and paste these in sequence because my VM hasn’t shut down in time and I get an error trying to use CPU hot plug, and I can’t power the VM back on because it’s still shutting down!!!”    Yep, you got it, you’re absolutely correct! The initial steps were more to provide the steps of how you can go about modifying all of this from the PowerCLI command line, now if we’re really serious about this, here’s a multi-liner which will perform all of these tasks in sequence! Will this work if you don’t have VMware Tools installed? No. No it will not. Get your tools installed, ya’here! :)

  • $vm_name = Get-VM “VMware vCenter Log Insight 1.0.4”
  • ForEach ($vm in $vm_name){
  • $vm_name | Shutdown-VMGuest –Confirm:$False
  • Sleep 60
  • $vm_name | Set-VM –MemoryGB 8 –NumCpu 2 –Confirm:$False
  • $vm_name | Start-VM
  • }

A few things… I had to do this in a bulleted list because otherwise the spacing between it was ridiculous, and secondly, am I proud of the utter lack of elegance of this code? No. Not in the least. I think this is the ugliest thing I’ve ever seen. Does it work? Yes. It works QUITE well.  I can equally execute this as an Import-CSV to perform this against a whole series of Virtual Machines but that is outside the scope of this particular blog post. :)

If you happen to have a more elegant want to execute a VMGuest Shutdown while ALSO executing a Set-VM within the same command-set, preferably within one line, feel free to include it in the comments, otherwise this will work and can be scripted whether you’re performing against one virtual machine or more.   I personally will use this to script/execute easy modification of resources when I need to grow or shrink a virtual machines allocations without having to go through and ‘right click – wait’ over and over again, and especially so when I’m performing this against more than one virtual machine.

Good luck, I look forward to your comments, thoughts, and any improvements you may have! Hopefully this helps improve your own management!

37,000 Desktops called and they want their VDI back

If you knew how many various different titles I thought through before deciding on that one, you might say ‘You have too much time on your hands!’ though seriously, I went through thousands of options in the minute I thought about this.   The point of this is – Did you know that a company which owns a considerable amount of VMware actually eats its own dog food when it comes to Virtual Desktop Infrastructure?  Yea if you’re like me, your thoughts around VDI are “Show me who’s doing what, what they’re doing right, wrong, and what are some practices we can discuss around this”  Some people say “Check out my reference architecture!” Yea, That’s all fine and dandy – But show me the names, show me the real people.  I want to see the scars that people went through so I can make sure YOU don’t have to encounter those same scars when it comes to VDI.

What’s cool about this (video) and this particular site image is that these are real people, talking about their real journey and challenges encountered along the way – So you have something real and concrete to take away from it.

What is really cool about this, is this site – discussing EMC’s IT’s Journey through Virtualization is it covers the whole stack – Server, Virtual Desktop, Consolidation, Management and Automation, and especially Private Cloud.   This isn’t a pipe dream – This is a transparent view into what is really physically going on within a large company, so you can relate it to your own business.  We’re all going through the same challenges economically, managementwise, and management and power consumption aren’t going to go down on their own!

So, check out the site/blog, and you may gain a better understanding that you are not alone in the challenges you face, and you may just learn something! :)