When deploying Microsoft Hyper-V in your environment, you are likely to focus on the key technical areas such as...
storage, failover, networks, and automation. These pieces are very important, but when you really get moving with virtualization some of the greatest enemies to an infrastructure are virtual machine (VM) sprawl and the lack of visibility into your virtual resources. The old provisioning model -- where a request for a new server would often take weeks after ordering, racking, and operating a system load -- has been cut to mere minutes.
The ease with which one can launch a new virtual machine means the old physical constraints of launching new servers are now gone. Without that constraint on your resources, it's typical to find administrators wallowing in virtual machines without understanding where they came from. All of these machines cost money, however, from the CPU and storage resources they use to the licenses required.
Tackling the issues of virtual server provisioning
So how do you gain control of the situation? You can start by keeping a check on new servers. For instance, while a physical server would rarely go unnoticed due to the effort and time involved to roll it out, a virtual machine can go up much more quickly. This is especially true when dealing with test and QA environments where new
Another problem many Windows administrators face is the storage dilemma created once a certain number of virtual machines is reached. Every time you cut another 100 GB for a new virtual machine disk file, you are getting your SAN administrator hot under the collar. Cluster Shared Volumes (CSV) help not only from a high-availability clustering perspective, but also with provisioning -- especially if you have a highly-siloed organizational structure separating you from storage technology. With Cluster Shared Volumes, instead of carving out a new LUN for every virtual machine, you can request a bigger LUN where you will be able to store many VHD files. Not only is this easier on the storage requests, it allows you to be more informed as well.
With CSVs, there is also the challenge of balancing concurrent I/O requests that can potentially affect I/O performance when unbalanced. For example, pushing several high I/O database servers to the array would likely be detrimental to performance. It sounds unlikely, but when you are deploying machines so quickly it can be easy to make that kind of mistake, especially if direct access to SAN or iSCSI storage has just been handed over to system administrators due to the heavy workload that can comes with virtualization. Instead, make sure you map out what storage is where, and note the configuration when tracking your virtual machines.
Standardizing server provisioning in a virtual environment
Don't move forward without standardization on your side. Too many virtualization environments get bogged down by manual processes and red tape. From a technical perspective, there are several things you can do move the process forward.
For starters, do the same things you would do to automate normal machines:
- Use Sysprep to create generalized images that can be stored as ready-to-go virtual machines.
- Use Windows Deployment Services to get those machines ready for deployment.
- Take advantage of WMI scripts and PowerShell commands to fully automate the deployment process (Note: Everything from virtual switches to boot devices can be configured within a script.)
Of course, there are plenty of tools you can implement for these methods that will help track VMs and add a wonderful GUI to the front of these automations. For instance, Microsoft's System Center Virtual Machine Manager, Citrix Essentials, and other third-party products like UC4 or HP Insight aim to bring better automation to your environment. On a larger scale, these tools are a smart investment. Similar to their VMware counterparts, the cost of these tools and the actual level of utilization will help determine their ROI for your organization, but the real key to these tools runs deeper than provisioning and further into application management.
Even with proper tools and automation to standardize your VMs, the old processes for provisioning often stand in the way, so you need to trace your organization's current request processes. Often, you'll see that requirements for network details like IP addresses, system accounts, and joining machines to the Active Directory will require approvals and information from a variety of groups. If you want your Hyper-V virtual infrastructure to be as agile as possible, you'll need to address these stop signs interfering with your ultimate goal -- provisioning a new virtual machine.
To do so, agree to a standard group of system settings with your networking team, including VLANs, subnets, and trunking. Discussing storage allocation with the SAN team is also important to the provisioning process. Lastly, find out how to automate accounts and implement computer domain management, possibly handing that responsibility off to a secured script.
Remember that the tools don't automate the process; the approach to the infrastructure has to be as flexible as your virtualization technology. Whether you decide to use your own scripting attached to custom processes or follow the template road of these virtualization management tools, the approach is really the same -- you are getting your organization fully ready for the agility that server virtualization provides.
ABOUT THE AUTHOR
Eric Beehler has been working in the IT industry since the mid-90's, and has been playing with computer technology well before that. He currently provides consulting and training through his co-ownership in Consortio Services, LLC.