Last year, Nirmal Sharma wrote a fantastic article on this blog titled 23 Best Practices to improve Hyper-V and VM Performance. This sparked up a very lively discussion in the comments section; some were very strongly in favor of some items, some very strongly opposed to others. What I think was perhaps missed in some of these comments was that, as Nirmal stated in the title, his list was specifically “to improve Hyper-V and VM performance.” If squeezing every last drop of horsepower out of your Hyper-V host is your goal, then it’s pretty hard to find any serious flaws with his list.
Dynamic Memory is one of Hyper-V’s most misunderstood and underutilized technologies. Many people believe that it’s not working when it’s doing exactly what it’s supposed to. Too many won’t use it at all based on incorrect assumptions. Most don’t understand the conditions in which it will operate. Unfortunately, there’s really not a simple guide to using it properly, or you’d find articles on it everywhere. If you want to squeeze the most out of your virtual environment, you’re going to need to get your hands dirty with some of the grease that’s down in the guts of your systems
Native adapter teaming is a hot topic in the world of Hyper-V. It’s certainly nice for Windows Server as well, but the ability to spread out traffic for multiple virtual machines is practically a necessity. Unfortunately, there is a still a lot of misunderstanding out there about the technology and how to get it working correctly.
In the first article of the Hyper-V and PowerShell series, we talked about using tab completion to ease the typing burden. There are other tricks that can reduce it even further. Of those, I’m going to illustrate splatting and profiles. Of the two, I usually get much more mileage out of profiles. However, I’m going to introduce splatting first as it will explain some of the things I do with my profile. If you’re someone who does use PowerShell but does not write script files, splatting may not seem like something that can be of use to you. Nothing could be farther from the truth.
Late last year, we published an eBook about licensing Microsoft server operating systems in a virtual environment. This was followed up with a webinar by Thomas Maurer and Andrew Syrewicze. Toward the end of that session, they took some questions. Since then, we’ve received a few more. We’ll use this article to answer those questions and to further expand on some of the ideas in the eBook.
In our article on common Hyper-V deployment mistakes, one item we discussed was the creation of too many Hyper-V virtual switches. This article will expand on that thought and cover various Hyper-V virtual switch deployment scenarios. One Switch will Usually Suffice The first and most important point to make is the same as mentioned in the earlier article: one virtual switch is enough for most Hyper-V hosts. We’ll start by showing how advancements in Windows and Hyper-V technologies address problems that necessitated multiple virtual switches in earlier versions. Native OS Teaming is Now Available In 2008 R2 and earlier, you could only team network adapters by using software provided by the network card manufacturer. This software was often buggy and unstable. Furthermore, Microsoft would not officially support any system that used such teaming. In those situations, Hyper-V administrators would often choose to leave the physical adapters unteamed and create multiple… Read More»
One of the great things about the Hyper-V virtual switch is that it can be used to very effectively isolate your virtual machines from the physical network. This grants them a layer of protection that’s nearly unparalleled. Like any security measure, this can be a double-edged sword. Oftentimes, these isolated guests still need some measure of access to the outside world, or they at least need to have access to a system that can perform such access on their behalf. There are a few ways to facilitate this sort of connection. The biggest buzzword-friendly solution today is network virtualization, but that currently requires additional software (usually System Center VMM) and a not-unsubstantial degree of additional know-how. For most small, and even many medium-sized organizations, this is an unwelcome burden not only in terms of financial expense, but also in training/education and maintenance. A simpler solution that’s more suited to smaller… Read More»
New year, new products! Some time in 2015, we’re all going to be graced with the newest edition of Windows and Windows Server, and along with them, Hyper-V. I wish I had a slick code name to give you, like “Viridian”, but it seems like most in-progress Microsoft products are now just code-named “vNext”. I’ve spent some time going over the published feature list. Some of the introductions will be very welcome. Some make me a bit less than enthusiastic. Sole Sourcing I’ve been burned more than once by writing about pre-release features and software conditions, even within a few months of release. The next version of Hyper-V is still quite a ways away, so there is still time for significant change. To that end, I’m only going to work with the officially published material on Hyper-V. Even that material could still be considered malleable at this point, but, in… Read More»
Hyper-V is no longer the newcomer in the virtualization space. After springing forth from its Virtual Server parent, it’s now had over half a decade to mature into the reliable, enterprise-grade hypervisor that it is today. As with any complex software, Hyper-V is composed of many parts, like the branches and leaves of a great tree. Like a tree, some of those branches form into major trunks that define the tree’s silhouette. Others become a twisted impediment to the proper growth of the larger organism and must be pruned away for its overall well-being. In Hyper-V, one of those latter branches is the pass-through disk. Many of you are already aware of this fact and have long since moved on. The reasoning behind this post is that there are still a handful of people out there clinging to this old tech, wishing that branches that were solid in 2008 weren’t… Read More»
In the article that contains the Restart-VM script, I mentioned that a VM that can’t be stopped with Stop-VM requires you to kill its VMWP process. It might not be obvious how to determine which process that is. I’ve written a script to help you do that. This article is part of the “Hyper-V and PowerShell” series. This script is extremely straightforward so it doesn’t require a lot of explanation. I opted to only allow you to input a single VM name at a time. If you use the pipeline, it will run once for each input object as normal. As with the Restart-VM script, I designed this one as a function that must be dot-sourced. Please read that article for directions. Parameters There are only three parameters: Name, ComputerName, and VM. Name: The name of the virtual machine whose process you wish to retrieve. Cannot be used with VM.… Read More»
Like any creative work, a blog post is never really done; it’s just abandoned. Unlike many other mediums, blogs do allow us to easily refresh those older articles, but we so rarely ever do it. To close out this year, a few of us on the editorial team got together and selected a few highlights from the past year. Our 14 selections from 2014 (in no particular order): Hyper-V Guest Licensing This was our first licensing article directly related to guest licensing. We followed it up with a downloadable eBook that was expanded to include a number of examples, and Andy Syrewicze and Thomas Maurer gave a fantastic webinar on the topic. We’ve received quite a few questions and some great feedback. Keep an eye out for a follow-up post that takes on some of those questions and incorporates some of the suggestions. If you’ve got questions or suggestions of… Read More»
While not common, there are times when you might need to know the MAC address for a virtual machine. This is a quick script to help you quickly retrieve that information. This article is part of the “Hyper-V and PowerShell” series. This script is meant to be as much a matter of teaching as functionality, and may be even more useful in that regard. I literally took the script from the earlier Get-VMIPAddresses script and made the necessary changes to produce this script. That’s a common way to get a head start on making tools that you need when none already exist: start from one that’s close to what you want. Parameters Name: The name of the virtual machine whose MAC address you wish to retrieve. Cannot be used with VM. ComputerName: The name of the host that contains the virtual machine whose MAC address you wish to receive. Cannot… Read More»
Retrieving a virtual machine’s IP addresses isn’t an especially difficult process, but it’s still something you might do often enough that it would be convenient to have a quicker way. For me, I don’t do it often, but I still like to have a single function. I’ve improved the one I use to make it more useful for a variety of purposes. This article is part of the Hyper-V and PowerShell series. The script is quite simple. It just needs a VM, either by name or by using a VM object. I gave it a few extra parameters. Parameters Name: The name of the virtual machine whose IP addresses you wish to retrieve. Cannot be used with VM. ComputerName: The name of the host that contains the virtual machine whose IP addresses you wish to receive. Cannot be used with VM. VM: The VM object whose IP addresses you wish… Read More»
In the introductory article of this series, we talked about objects in PowerShell and how the large and grandiose uses of PowerShell are difficult to explain. While reflecting on that article, I realized that out of all the programming languages that I know, PowerShell’s verb-noun convention is probably the best way there is. This article will revisit that subject along with an investigation of the Get-VM cmdlet. If you’ve already got a good understanding of PowerShell objects and just want to learn about Get-VM, skip to the second half. PowerShell Objects The concept of objects in PowerShell is extremely important, as they are what sets it apart from almost every other interactive command-line system. In comparison, let’s examine a typical Windows command-line: a directory listing: Now, let’s look at the same thing in PowerShell: They look mostly the same, don’t they? Well, it turns out that they’re quite a bit different.… Read More»
Our monthly commentary and link round-up for November 2014. Don’t Underestimate the Sniff Test If you read very much of what I write, you’ll know that I don’t put a lot of stock in fancy titles or credentials and I certainly pay little attention to self-anointed experts, regardless of how many popularity contests they’ve won. The only thing I pay attention to is what really, truly works, and it doesn’t matter at all to me who says it. This has been my only principle ever since the first time I was at the mercy of a support “technician” that had no idea what to do and whose only goal was to get me off the phone. Over the course of the past decade and a half, I’ve gotten fairly good at quickly determining who the fraud in the room is. It’s not always simple. I still get fooled from time… Read More»