I recently visited a mid size customer who is running Hyper-V for test and dev and they are interested in expanding Microsoft virtualization into their production environment with a goal of being 100% virtualized by the end of next calendar year. As part of this project they will be implementing a new SAN to consolidate their virtual machines as well as using it for advanced data protection and scalability.
Since the customer has only been running Hyper-V with servers that are used primarily for in-house development, they asked me for some advice or best practices as they move forward with a production deployment of Microsoft virtualization. Of course this is one of those "it depends" answers but below is a list of some of the items I came up with that I thought would be good to share:
- Perform an assessment of the current hardware to determine which will be able to support virtualization. There are several different tools available to assist but Microsoft's MAP (Microsoft Assessment and Planning Toolkit) is the best as it will analyze the hardware to determine what is available to use for Hyper-V. MAP will also determine any servers that are underutilized and even create a ROI report to understand the potential cost savings by virtualizing.
- When designing the application for a virtual deployment, be sure to treat the applications as you would physically. This is one of the biggest problems I see customer’s run into. Because virtualization allows customers to easily mix workloads on the same server or even mix different data types on the same physical spindles doesn’t mean you should take these shortcuts. Use tools like Microsoft performance monitor (perfmon) to understand the performance requirements of your applications before deciding which applications will reside on which Hyper-V parent server.
- Use pass-through disks when possible. This tends to give you your best performance and you can avoid the 2TB limit that VHDs have.
- Use multiple NICs so you can separate Hyper-V administration from general network traffic. This will help ensure you can always access the Hyper-V server even if there are performance problems due to high traffic between the applications. Additional NICs will be needed for storage traffic if iSCSI is used to access the server. Taking the time to design network and VM layout and separating workloads will help if\when troubleshooting needs to occur.
- Test, document and adjust. If new hardware is being deployed as part of the migration to virtualization then you’ll have the opportunity to build out the workloads in a virtual environment before hand to do some testing. Be sure to take the time to test the application while virtualized including backup, restore or tasks such as Live Migration to make sure things work as expected and are fully understood and documented by the IT team.
- Use Microsoft System Center. System Center has advanced features for managing the virtual (and physical) infrastructure as well as monitoring, management and software packaging. With SCVMM you can create and use templates for easier rapid deployment of virtual machines as well as Microsoft PRO packs for dynamic management of the virtual environment including partner packs like EMC’s Pro pack.
In the end, the best advice is to just get started. Most companies tend to put it off and in my opinion the benefits are too great. Companies also tend to shy away from virtualizing specific applications because they are afraid it can’t be done due to potential performance problems.
EMC works with Enterprise companies regularly (including a software company located in Redmond) who virtualize high-end workloads or critical applications with Hyper-V on EMC hardware (and look at our whitepaper on how we virtualized a 16 node cluster with over 1000 VMs) with great success. The only true barrier is those that are afraid of change.
Comments