Tuesday, December 31, 2013

How to Setup Hyper-V Recovery Manager with a Single VMM server topology

Hyper-V Recovery Manager with single VMM server topology

Recently, Microsoft announced that a single VMM server will be sufficient in order to take advantage of Hyper-V Replica – a software as a service offering from Windows Azure, that will orchestrate DR workflows in your on-premise cloud infrastructures, managed by System Center 2012 R2 – Virtual Machine Manager.
This is a huge step in the right direction, in order to ensure HVR adoption for customers and partners.
The requirement of having two VMM infrastructures would not only be an additional cost, but also lead to administrative overhead and complexity, since a Hyper-V host can only be managed by a single VMM management server at a time.


This blog post will focus on:

·         Setup of the HVR agent on the VMM Management server
·         Creation of DR Cloud within VMM
·         Configuration of DR in HVR
·         Orchestration with HVR and VMM

Setup of the HVR agent on the VMM Management server

Before we can go ahead and deploy HVR into our environment, the following requirements must be met.

Hyper-V Recovery Manager prerequisites:

·         Windows Azure account. You will need an Azure account with the recovery services feature enabled.
·         .CER certificate that must be uploaded as a management certificate containing the public key to the Hyper-V Recovery vault, so that the VMM server can be registered with this vault. Each vault has a single .cer certificate that complies with the certificate prerequisites.
·         .PFX file. The .cer certificate must be exported as a .PFX file (with the private key), and you will import it on each VMM server that contains virtual machines that you want to protect. This blog post will only use a single VMM server.

VMM server prerequisites:

·         At least one VMM server running on System Center 2012 SP1 or System Center 2012 R2 (this blog post will demonstrate 2012 R2)
·         If you are running one VMM server, it will need two clouds configured (where the DR will occur between the clouds). If you have two or more VMM servers, at least one cloud should be configured on the source VMM server you want to protect, and one cloud on the destination VMM server that you will use for recover. The primary cloud you want to protect must contain the following:
o   One or more VMM host groups
o   One or more Hyper-V hosts servers in each host group
o   One or more Hyper-V virtual machines on each Hyper-V host
·         If you want virtual machines to be connected to a VM network after failover, you configure network mapping in Hyper-V Recovery Manager.

Once the certificate is uploaded to HVR, you can download the latest provider that you should install on your VMM management server



The installation process will require that you stop the System Center Virtual Machine Manager service prior to install, as there will be changes made to the GUI as well as extra functionality on the server

During the installation, you must point to the .pfx file of your .cer certificate and map it with the vault created in Windows Azure Hyper-V Recovery Manager.




Specify the VMM server name, and enable ‘Synchronize cloud data with the vault’. For you information, there will only be metadata that is shipped from VMM to Windows Azure.

Once the setup has completed, the setup can start the VMM server service again, and you can open the VMM console.


The next thing we will do, is to create clouds in VMM.

Creation of DR Cloud within VMM

 A cloud is an abstraction of your physical fabric resources, like virtualization hosts (host groups), networks, storage, library resources, port classifications, load balancers and eventually the user actions that you permits.

Create at least two clouds (one for production and one for DR) where you enable DR on both of them. This option is available when you assign a cloud name and a description



Also, please note that the capability profile that contains ‘Hyper-V’ should be selected as part of the cloud. This is a requirement so that only virtual machines tagged for Hyper-V, can participate in the DR workflows that is solely depending on Hyper-V as the hypervisor.


Now, if we look at the HVR service in Windows Azure again, under protected items, we should see both of our clouds listed


Note that there are currently no virtual machines enabled for protection, although there could be virtual machines running in these clouds.
If we check the clouds in VMM, we can see that status for protection shows ‘disabled’


Configuration of DR in HVR

To complete the configuration of the HVR service, we must continue to work in the Windows Azure Portal.
Click on your cloud under protected items, that should be seen as the primary cloud (running the primary workload).


In order to complete the configuration, click configure protection settings.





This will let you configure the replication location and frequency.
If you are familiar with Hyper-V Replica, you will recognize the options here.

Target location: this will be your VMM server

Target cloud: this will be the DR cloud you created in VMM, that will receive replication from the primary cloud, running the primary workload.

Copy frequency: Choose between 5 minutes (default, 30 seconds and 15 minutes – which was introduced with Windows Server 2012 R2 – Hyper-V.

Additional recovery points: Default is zero, but you can have in total 15 recover points.

Frequency of application-consistent snapshots: Hyper-V Replica does also support app-consistent snapshots in addition to crash consistent snapshots. This is ideally for SQL servers and other critical applications enabled for DR with HVR.

Data transfer compression: default is ON, so that the data is compressed during replication.

Authentication: Certificate and Kerberos is the option. HVR will let you use certificates so you can replicate between different domains if you would like, without any trust.

Port: 8084 is the default port, and a firewall rule will be enabled on the Hyper-V hosts in primary and recovery clouds to allow access to this port

Replication Method: Over the network is default – and recommended, but offline is also an option.

Replication start time: Immediately – which is good when you have the bandwidth. An initial replication will copy and replicate the entire virtual machine (with its virtual hard disks) to the recovery site. A good idea might be to schedule this to happen during night, for example.

Once you have completed the configuration, click ‘Save’.

This will initiate a job in your VMM and Hyper-V infrastructure that will pair clouds, prepare the VMM server(s) and clouds for protection configuration, and configure the settings for the clouds to start protecting virtual machines.

Once the job has completed, go back to protected items in the Azure portal and verify that DR is enabled for your clouds.


We must also map some resources in order to streamline the potential failovers between our cloud.
If you have worked with Hyper-V Replica, you may remember that after you have enabled initial replication on a new virtual machine, the wizard will send you to the virtual NIC interface on the hardware profile, so that you can configure an alternative IP configuration for the VM.
This setting in HVR let us do this at scale, so that network A on the primary cloud could always be mapped to network A2 on the DR cloud, for instance.

Click on ‘resources’ in the portal, and map your networks.
It is important that these networks are available in the cloud configuration in VMM in order to show up here.





Next, let us enable DR on our virtual machines running in the primary cloud.
In VMM, we will notice a new option under ‘Advanced’ on the hardware tab on the virtual machines.
The screenshot below shows a virtual machine running in my ‘Service Provider Cloud’ which is the primary cloud, where I enable DR.



Once this has completed, the virtual machine’s metadata should be exposed in HVR and ready to use in a recovery plan.

Note: if DR should be considered as mandatory in your environment, a good tip would be to tag the hardware profiles on your templates to be enabled for Hyper-V on the capability profile, as well as DR enabled under advanced. Then all newly created virtual machines based on your templates, will be available in the recovery plans in HVR. Also note that if Hyper-V Replica Broker is in use (in a Hyper-V Cluster), you can’t use protection on VMs that are not configured as highly available, running locally on one of the nodes.

Back in the portal, we must create a recovery plan.

Creating Recovery Plans in HVR

Now that we have a VM enabled for protection, it is time to create one or several recovery plans.
A recovery plan gathers virtual machines into groups and specifies the order in which the groups fail over. Virtual machines you select will be added to the default group (Group 1). After you create the recovery plan, you can customize it and add additional groups.
This is very useful if you have distributed applications (everyone have this!) or specific workload you would like to group. The power of HVR is the ability to orchestrate and facilitate the failovers.

Click on recovery plans in the portal, and start the wizard to create a new one.
First, you must select source and target. In my example, since using only a single VMM server, I can use the same on both source and target. Specify a name and continue.



Select virtual machines that should participate in the recovery plan. We can see the VM I enabled previously at this stage.


Once the job has completed, you should have successfully enabled a recovery plan for the virtual machine(s) and is able to perform the workflows like failover (planned, unplanned) and test failover.



Thanks for reading – and in the next blog post or so, we will look closer at DR operations at scale and how to use groups together with recovery plans to meet critical business requirements.

Happy new year!

Friday, December 20, 2013

Bringing Windows Azure into NIC 2014

I am hoping to see you at the Nordic Infrastructure Conference in January again.

It looks like we are into yet another good conference in the cold north, and this time my focus will be on the Window Azure Pack.

In details: I will cover Windows Azure Pack – under the hood, where we will look closely at the architecture around a distributed production deployment.
We will also look at the dependencies and how the communication among the components are in use.
Windows Azure Pack is truly an interesting area where we can leverage all sort of new technologies delivered through the foundation in Windows Server and System Center. Specifically Hyper-V and Virtual Machine Manager together with SPF (Service Provider Foundation) for VM Clouds.

My focus will be solely on VM Clouds to deliver Infrastructure as a Service based on your own resources. You could be a service provider that want to learn about this solution, that also wants to bring network virtualization into your environment so that you can have a secure multi-tenant infrastructure for your tenants, or you can be an enterprise customer that want to provide your users with a superb self-service experience and help them to deploy complex workloads like Exchange, SQL, Sharepoint or a domain controller.

By looking at the tenant portal and what you can do, it sure looks very simple. Behind the scenes, there is a lot of cool stuff going on that I am sure you will want to know more about.

I hope to see you at NIC, and if you have any questions before, during – or after the show, I will be around to assist you as good as I can.



Monday, December 9, 2013

Explaining Port Classifications in VMM 2012 R2

When you have installed VMM, you have probably noticed all the different settings and options in fabric, located under Networking.
In order to streamline the configuration on the hosts by using port profiles and logical switches, we also have something called port classifications that you will find useful in your cloud.

A port classification is an abstraction of the virtual port profile, that let both the administrator and the tenants (using VMM console) choose for their virtual machines virtual network interfaces, that is bundled in a logical switch in VMM.

If we take a look the default classifications, we have the following:

And if we take a look at the port profiles (virtual port profiles), we can see that these profiles match the port classification.

To get a better understanding of the classification, we must take a closer look into the virtual port profiles.
These profiles should contain configuration related to virtual network adapters. A virtual network adapter can be a vNIC on the VMs, or a vNIC on the hosts, created on a NIC team (logical switches).

We have offload settings, security settings and bandwidth settings. All of this could be different (and should be different) depending on the workload associated with the virtual network interface.
Taking bandwidth settings for example, we know that storage (iSCSI or SMB) is quite critical in the context of virtualization, and therefore would like to configure the QoS settings here so we can ensure enough bandwidth for this workload.

If we take a look at our cloud in VMM, we also see that we can make port classifications available here, that indeed maps to virtual port profiles (in our logical switch).
That means that we can provide our tenants with port classifications – that are abstracted from the underlying port profile with detailed information, and let them specify the classification.


Hyper-V in Windows Server 2012 introduced us for QoS on the vNIC for the virtual machines. But these settings are not directly expose through VMM. In order to have QoS on our virtual machine, we must instead use port classifications.

This means that we can’t control each vNIC in the same way as in Hyper-V Manager, but instead manage this at scale through port classifications and port profiles.

Thursday, November 28, 2013

Updated Whitepaper for Hybrid Cloud with NVGRE (WSSC 2012)

Updated Whitepaper for Hybrid Cloud with NVGRE

We have finally updated the Whitepaper for Hybrid Cloud with NVGRE (WSSC 2012 R2) and you can now download it from http://gallery.technet.microsoft.com/Hybrid-Cloud-with-NVGRE-aa6e1e9a

What we have done:

·         Added some new content around best practices
·         Updated to 2012 R2 RTM/GA
·         Added HA Service Template for gateway VMs
·         Good old bug fixing
·         Troubleshooting

With this foundation, I can ensure that we are already working on something new in the context of cloud computing that will take advantage of NVGRE and the fabric setup we have.

If you have any feedback, questions etc, please use the Q&A at the TechNet site

Monday, November 11, 2013

How to create a GEN2 VM with SCVMM 2012 R2

Hopefully, you are a completely aware of the support of GEN2 VMs in Hyper-V in Windows Server 2012 R2.
The virtual machine generation determines the virtual hardware and functionality that is presented to the virtual machine.

Generation 1 VMs is the legacy VMs that we have been using over the last years, that provides the same virtual hardware to the virtual machine as in previous versions of Hyper-V.

Generation 2 VMs  provides a lot of new functionality on a virtual machine, like:

-          Boot from a SCSI virtual hard disk
A well-known topic about the architecture of Hyper-V is that the boot partition always had to be associated with an IDE controller in the virtual hardware profile. This was because it would bypass the integration service requirements, so that you could boot ‘any’ guest OS on Hyper-V. The performance was identical as to SCSI controller associated disk when integration services was present, but it was simply a bypass. This gave us some challenges regarding new features we got in 2008 R2, like hot-add/remove of virtual hard disk that could only be performed on VHD’s associated with the SCSI controller. In other words, only data-partitions could be added/removed on the fly. Since a GEN2 VM now can boot from a SCSI-controller, we can also add/remove and resize these disks associated, even if it’s the boot partition. Please note that VHDX is a requirement in order to use GEN2 VMs.

-          Secure Boot (this one is enabled by default)
Secure boot is enabled by default for GEN2 VMs and is a feature that helps prevent unauthorized firmware, operating systems, or UEFI drivers from running at boot time

-          Boot from a SCSI virtual DVD
Instead of using an IDE virtual DVD, we can now use SCSI Virtual DVD

-          PXE boot by using a standard network adapter (this is for real!)
If you wanted to boot a VM and to perform a remote installation of the guest operating system using PXE boot, you had to use a legacy virtual network adapter in the virtual hardware profile – in order to bypass the integration services (since they were not present at boot time). GEN2 VMs support PXE boot by using a standard virtual network adapter (aka synthetic device) so there is no need to install a legacy network adapter, which has been removed from GEN2 VMs.

-          UEFI firmware support
The Generation 2 VM has a much more simplified virtual hardware model and supports Unified Extensible Firmware interface (UEFI) firmware instead of BIOS-based firmware. This means that most of the legacy devices are removed from GEN2 VMs.

These are the guest operating systems that are supported as GEN 2 VMs:

-          Windows Server 2012
-          Windows Server 2012 R2
-          64-bit versions of Windows 8
-          64-bit versions of Windows 8.1

By reading this, I can assume that you can see the benefits of using GEN2 VMs.

In addition, SCVMM 2012 R2 support GEN2 VMs and we can create, deploy (newly VMs or/and based on templates) through powershell and the GUI.

Please note: Services in VMM in System Center 2012 R2 do not support generation 2 virtual machines. When you create a service template in VMM, if you have created virtual machine templates (VM templates) that specify generation 2 virtual machines, you cannot add those templates to the service template. You can only add virtual machine templates that specify generation 1 virtual machines. Also, within a service template, in the virtual machine (tier) properties sheet, properties for a generation 1 virtual machine appear, but properties that are unique to generation 2 virtual machines do not appear.

Since SCVMM is fully aware of your datacenter infrastructure, it will leverage intelligent placement during VM deployment. This means that SCVMM will identify which hosts that support GEN2 VMs prior to deployment (give you a star rating) and help you to avoid faulty placement of GEN2 VMs.


How to create a GEN2 VM with SCVMM 2012 R2

1.       Logon to your SCVMM server and navigate to ‘VMs and Services’
2.       Click ‘Create Virtual Machine -- > Create Virtual Machine’ from the ribbon menu

3.       Select ‘Create a new Virtual Machine with a blank hard disk’ and click next. This is important, as you can’t use any template with GEN1 as your source

4.       On the ‘Specify virtual machine identity’ page, assign the VM a name and also specify the generation of the virtual machine. Click on the drop down list and select Generation 2

5.       On the ‘Configure hardware for the virtual machine…’ page, add an ISO image to the DVD drive, and eventually adjust any of the other hw settings to meet your requirements. Please note the absence of the legacy hardware that we had in generation 1 VMs

6.       On the ‘select destination’ page, please specify the cloud or the host group where the VM should be deployed

7.       Intelligent placement will work out its magic and detect the best suited host to run the virtual machine. Click next 3 times and finish to start the deployment

You should now have successfully deployed a GEN2 VM with SCVMM 2012 R2

The next logical steps would be as follows:

1.       Install and customize the guest operating system within the VM
2.       Shut down the VM
3.       Remove the ISO attached to the VM

4.       Create a VM template with SCVMM 2012 R2 and place it in your library

Thursday, November 7, 2013

XenDesktop Service Template for SCVMM 2012 R2

This is just a heads up to show you some amazing work by a fellow MVP, Brian Ehlert.

Let me first spend some time to explain what Brian does.
Brian is probably one of the most skillful IT-pro I know, and was actually the individual who inspired me to become a Microsoft MVP.
By sharing his deep technical insight through forums, blogging and so on, he simply sets a standard that is hard to achieve.
If you have searched through the internet looking for answers related to Hyper-V/VMM, Brian and myself, are moderators in the VMM forums. And by looking at Brian’s score, you know that he shares a lot with the community.

One of the latest work by Brian, is that he has created a Service Template for SCVMM 2012 R2 that helps organizations to deploy XenDesktop with the service model in VMM.
Microsoft has just released several service templates for you to simplify the deployment process of server applications like SQL, Sharepoint, Lync and much more (more to come!)

Get your hands on the template – and read more about this at Brian’s blog:



Tuesday, October 22, 2013

Windows Azure Gallery Items - getting started with Domain Controllers


The feed of Windows Azure Pack Gallery Resources and SCVMM Service Templates which are compatible with the RTM releases is now LIVE at:


This release includes more than 40 deployable templates including:
·         SharePoint 2013
·         SharePoint Foundation 2010
·         Microsoft SQL Server 2013
·         IIS
·         Domain Controller
·         Windows Server 2012 R2 HA Network Gateway
·         Windows Server 2012 R2
·         Windows Server 2012
·         BlogEngine.NET
·         Database Servers
o   MySQL Server (Windows and Linux)
o   Oracle Self Service Kit
·         Linux applications including
o   CentOS6 LAMP
o   Drupla
o   Joomla
o   WordPress CentOS6
·         Samples to enhance authoring
o   Custom Script
o   Custom Script with Environment Variables
o   Linux Generic
o   Service Template Example Kit
·         and more

For information on how to use this feed and import items in the Windows Azure Pack you can use the following resources
·         Downloading and Installing Windows Azure Pack Gallery Resource

Please pay attention to the gallery items that you can use with Windows Azure Pack.
These items, (blogged about them here http://kristiannese.blogspot.no/2013/08/getting-started-with-gallery-items-in.html ) is quite neat to use in a IaaS scenario.

Instead of just offering standard virtual machines (you know, those sysprep’d VMs with nothing but the OS installed) we can climb up a bunch of levels and focus on applications instead.
The hard part is to understand the difference between Service Templates (native in SCVMM) and gallery items (native in Windows Azure Pack).

Service Templates is by design, meant for the enterprise/private cloud where you need to know (at some level) specific things about the infrastructure. At least you must have access to other networks that tenants usually don’t have, and in some cases, some shared storage either presented through iSCSI or virtual FC (yup, shared VHDX may solve some of the issues here).

Gallery items on the other side, is designed and optimized for the Windows Azure Pack, where tenants – as well as internal users may deploy virtual machine roles (virtual machines with additional services or/and applications). We saw the early beginning of this in preview, where we could rapidly deploy Windows Servers enabled with IIS, where some settings were exposed already prior to the setup, for the tenant to configure.

In this blog post, I would like to highlight how the domain controller template through Windows Azure Pack is working.

First, I assume you have downloaded the bits to some place on your SCVMM server, next we will import the items in SCVMM (nope, no GUI for this) through Powershell and add them to Windows Azure Pack.

1)      On SCVMM, open the Powershell module and type the following:

$libraryShare = Get-SCLibraryShare | Where-Object {$_.Name -eq 'MSSCVMMLibrary'}
$resextpkg = $Env:SystemDrive + "\Gallery Resources\DomainController_WS2012_VMRole_Pkg\DomainControllerWindows2012.resextpkg"
Import-CloudResourceExtension –ResourceExtensionPath $resextpkg -SharePath $libsharepath -AllowUnencryptedTransfer



2)      Next, we must associate a VHDX with this cloud resource

$myVHD = Get-SCVirtualHardDisk | where {$_.Name –eq 'gallerydisk.vhdx'}
$WS2012Datacenter = Get-SCOperatingSystem | where { $_.name –eq '64-bit edition of Windows Server 2012 R2 Datacenter' }
Set-scvirtualharddisk –virtualharddisk $myVHD –OperatingSystem $WS2012Datacenter


3)      The Familyname and Release properties of the virtual hard disk must be set in order for the Windows Azure Pack portal to display the virtual hard disk as an available disk for this Gallery Resource. These values are shown in the portal drop-down list.
Familyname property values should indicate the contents of the virtual hard disk, including the Windows Server release and edition. The Readme file of the Gallery Resource should include appropriate Familyname values.
Release property values must conform to the Windows Azure versioning scheme of n.n.n.n. Examples include 1.0.0.0 and 1.0.0.1.
You can set this property using either the Virtual Machine Manager Administrator console or using Windows PowerShell.


4)      The last step in Powershell, is to perform the last tag

$myVHD = Get-SCVirtualHardDisk | where {$_.Name –eq 'gallerydisk.vhdx'}
$tags = $myVHD.Tag
if ( $tags -cnotcontains "WindowsServer2012R2" ) { $tags += @("WindowsServer2012R2") }
Set-scvirtualharddisk –virtualharddisk $myVHD –Tag $tags


Now, logon to your Windows Azure Pack Service Management portal, and perform the following tasks

1.  Open the Service Admin Portal.
2.  Navigate to the VM Clouds workspace.
3.  Click the Gallery tab.
4.  Click Import.
5.  Select and import the Resource Definition Package file for the gallery item. This will be the file with the extension resdefpkg.
6.  The gallery item should now be listed on the Gallery tab.

Finally, associate the gallery item with one of your ‘plans’ created in Windows Azure Pack.

1.  On the Gallery tab, select the version of the gallery item that you just imported.
2.  Click the arrow next to the gallery item name.
3.  Verify the details of the gallery item.
4.  Navigate back and click Make Public.
5.  Select the Plans workspace in the Service Admin Portal.
6.  Select the plan to which you want to add this gallery item.
7.  Select the Virtual Machine Clouds service.
8.  Scroll to the Gallery section.
9.  Click Add Gallery Items.
10.   Select the gallery items that you imported, and then click Save.
11.   The Virtual Machine Role is now available to the tenant as part of the selected plan.
The tenants can now logon to their tenant side, navigate to VMs, and create new.
They will have the option of using ‘Virtual Machine Roles’, and the DC item will appear with the following configuration options, shown below on the screenshots.
(This will indeed install a virtual machine with the forest/domain you specify)








Now, how cool is that?