Hyper-V Network Virtualization, sometimes referred to as HNV, is a technology designed primarily for cloud hosting providers. It helps cloud hosting providers run multiple customer virtual machines (VMs) with the same IP scheme and network topologies. Customers can easily move virtualized workloads to the Shared IaaS cloud without requiring any configuration changes at the networking layer.
One of the most common questions regarding Microsoft HNV is which which method should be used to deploy HNV. Is it better to use System Center Virtual Machine Manager 2012 R2, which is part of the System Center suite, or use PowerShell cmdlets? Today we'll cover when to use SCVMM or PowerShell to deploy HNV.
Microsoft offers two methods for deploying HNV configuration on Hyper-V hosts: System Center Virtual Machine Manager 2012 R2 and HNV PowerShell cmdlets.
You can choose either of the methods, but you must understand what can go wrong if you deploy HNV using any of the methods mentioned above. I have seen many virtual administrators deploying HNV configuration using HNV PowerShell cmdlets without knowing what could happen if a Hyper-V host is restarted due to a failure with the Operating System.
It is imperative to understand that whichever method you chose to deploy HNV configuration, both tools use PowerShell HNV classes to configure the HNV policies on the destination Hyper-V hosts. Each method has its own advantages and disadvantages, which we'll cover shortly.
First we'll cover the basic things you need to know about SCVMM and then we'll cover the advantages and disadvantages when deploying HNV configuration using SCVMM and PowerShell cmdlets.
The initial thing to note with SCVMM is that it's a complex datacenter management product. If you want to deploy HNV configuration using SCVMM, you need to make sure you have:
- Sufficient working knowledge of SCVMM and its components.
- Working knowledge of how to create logical networks, VM networks, virtual subnets, and IP Pools in SCVMM.
- A strong understanding of cloud computing and its components
- Knowledge on deployments of gateway services through SCVMM.
- A good understanding of SQL Server.
If you've been using SCVMM for quite awhile and have working knowledge of cloud computing then you can use SCVMM as a deployment method for implementing HNV across Hyper-V Servers. But before you use SCVMM method, we want to cover the advantages and disadvantages associated with this deployment approach as explained below:
Advantages of Implementing HNV using SCVMM:
- HNV configuration is not lost after Hyper-V hosts restart. HNV configuration remains intact even after a Hyper-V host restart.
- SCVMM acts as a centralized tool to record all the actions performed on the Hyper-V hosts participating in the Hyper-V Network Virtualization.
- It is easy to manage HNV policies once deployed via SCVMM.
- Tenants can be created on the fly and without any downtime.
- Since Microsoft provides an Inbox HNV Gateway, it is easy to deploy a gateway service for multi-tenants via SCVMM.
- In SCVMM, the VMM server is responsible for automatically updating each VMM host with updated HNV configuration information as needed. Each VMM host will be provisioned with a subset of the entire address virtualization mapping table as needed based on the network configuration in use by the virtual machines hosted on each server.
Disadvantages of Implementing Hyper-V Networking Virtualization using SCVMM:
- It becomes hard to manage HNV configuration manually on Hyper-V hosts if the SCVMM connection is lost or the operating system holding SCVMM crashes for any reason.
- A misconfiguration in SCVMM could lead to downtime for all Hyper-V hosts and it could take a considerable amount of time to fix the issues.
- Since SCVMM uses SQL Server to store its configuration, any connection issues with the SQL database could cause SCVMM not to work, and the end result would be that you couldn't configure HNV for a new tenant.
So far the earlier sections focused on the advantages and disadvantages of implementing HNV using SCVMM. Let's take a look at the advantages and disadvantages associated with the PowerShell deployment method.
Advantages of implementing HNV using PowerShell Cmdlets
- Suitable for small cloud hosting providers that host virtual machines for a few customers.
- Easy to make any HNV configuration changes if there are only two to three customer virtual machines running on the Hyper-V hosts.
- Deploying HNV using PowerShell cmdlets helps you learn how HNV works under the hood.
- In case you need to remove a HNV policy entry for a customer on a Hyper-V host, you can do so by executing a single PowerShell command, which is much easier than doing the same task in SCVMM.
Disadvantages of implementing HNV using PowerShell Cmdlets
- In the case of any maintenance activities — for example, applying windows updates — the HNV configuration is lost when a Hyper-V server restarts. This is the biggest disadvantage over the SCVMM deployment method. Virtualization administrators must create PowerShell scripts and run them to rebuild the HNV configuration after a Hyper-V host restarts. The HNV PowerShell script must be executed on all Hyper-V hosts that are participating in the Hyper-V Network Virtualization.
- It is hard to maintain the HNV configuration in a PowerShell script if new tenants are added.
- Things can become unmanageable when cloud hosting providers host virtual machines for multiple customers.
- Another disadvantage of deploying HNV configuration using PowerShell cmdlet is that there is not an easy way to configure a gateway service.
We have detailed some of the prominent advantages and disadvantages of deploying HNV configuration via SCVMM and PowerShell cmdlets, but when it comes to troubleshooting HNV on Hyper-V hosts, the best approach is to use HNV PowerShell cmdlets. As a result, we recommend initially trying to deploy a HNV configuration in a test environment using HNV PowerShell cmdlets. This not only helps you understand how HNV works under the hood but also helps you troubleshoot the issues using HNV PowerShell cmdlets.
If you are unsure which HNV PowerShell cmdlets you can use to deploy a HNV configuration, please take a look at our Hyper V Network Virtualization Q&A article.
Nirmal Sharma is a MCSEx3, MCITP and Microsoft MVP in Directory Services. He has specialized in Microsoft Technologies since 1994 and has followed the progression of Microsoft Operating System and software. In his spare time, he likes to help others and share some of his knowledge by writing tips and articles on various sites and contributing to Solution IDs for www.Dynamic-SpotAction.com. Nirmal can be reached at email@example.com.