Shared Nothing Live Migration: Goodbye Shared Storage?
Many smaller companies and individuals with home labs see shared storage – usually a SAN (Storage Area Network) device as the impediment to Live Migration. In April of 2011 Microsoft released the iSCSI Software Target 3.3 as a free (and supported) download. At the time Pierre and I wrote a series of articles in this space as guest bloggers (The Microsoft iSCSI Software Target is now free, All for SAN and SAN for All!, Creating a SAN using Microsoft iSCSI Software Target 3.3, Creating HA VMs for Hyper-V with Failover Clustering using FREE Microsoft iSCSI Target 3.3). It seems that those articles were so well liked that Pierre and I are now the resident technical bloggers for this space!
Ok, but seriously… Software SANs make life easier for smaller companies with smaller environments. The fact that you can now build a failover environment without investing in an expensive SAN is a great advancement for IT Professionals, and especially for those who want to do Live Migration. Windows Server 2012 now includes the iSCSI Software Target out of the box, and IT Pros are taking full advantage.
Now let’s go one step further. You have started to play with Hyper-V… or maybe you have a small environment built on a single host. You get to the point where you are going to add a second host, but you are still not ready to create shared storage. Are you stuck with two segregated hosts? Not anymore!
Shared Nothing Live Migration allows you to have VMs stored on local (direct attached) storage, and still be able to migrate them between hosts. With absolutely no infrastructure other than two Hyper-V hosts (and the appropriate networking) you can now live migrate virtual machines between hosts.
Any live migration, whether it be Hyper-V or any other platform, have a number of requirements in order to work.
- Both hosts must have chipsets in the same family – that is, you cannot live migrate an Intel to an AMD or vice-versa. If the processors are similar enough (i7 to i5 is fine, i7 to Core2 Duo is not) then no action is necessary. In the event that you do have dissimilar processors (newer and older but still within the same family, then you have to configure your virtual machine’s CPU compatibility, as outlined in the article Getting Started with Hyper-V in Server 2012 and Windows 8 .
- If your virtual machine is connected to a virtual switch then you need to have an identically named virtual switch on the destination host. If not your migration will be paused while you specify which switch to use on the destination server.
- The two virtualization hosts must be connected by a reliable network.
In order to perform Live Migration you have to configure it in the Hyper-V Settings.
1) In Hyper-V Manager click Hyper-V Settings… in the Actions Pane.
2) In the Hyper-V Settings for the host, click on the Live Migrations tab on the left. In the details pane ensure that the Enable incoming and outgoing live migrations box is checked, and that you have selected an option under Incoming live migrations. In this screenshot you will see that I have left the default 2 Simultaneous live migrations, and that I selected the option to Use any available network for live migration. Depending on your network configuration and bandwidth availability you can adjust these as you like.
NOTE: These steps must be performed on both hosts, although the configuration options do not have to be the same.
Migrating a VM
Performing a Live Migration is easy.
1) In the Hyper-V Manager right-click on the virtual machine that you want to migrate and click Move…
NOTE: In this screenshot I am managing both hosts from the same MMC console. This is NOT a requirement.
2) On the Before You Begin screen click Next> .
3) On the Choose Move Type screen select Move the virtual machine and click Next> .
4) On the Specify Destination Computer screen enter the name of the destination host and click Next> . You also have the option to browse other hosts in Active Directory.
5) On the Choose Move Options screen select what you want to do with the virtual machine’s items (see screen capture). I usually select the option Move the virtual machine’s data to a single location. This option allows you to specify one location for all of the VM’s items, including configuration files, memory state, and virtual storage. Click Next> .
6) On the Choose a new location for virtual machine screen enter (or browse to) the location on the destination host where you would like to move the VM. This screen will also tell you how big your files are (note the Source Location in the screen capture says 9.5 GB). Click Next> then on the Summary screen click Finish.
Now that your virtual machine migration is in progress you can watch the progress bar in two places: In the Performing the Move progress bar, and in the Hyper-V Manager under Status.
The one place where you would not be able to watch the progress is from within the virtual machine. There is nothing to see. If you are in the VM while the migration is happening there is no indication of it, and you (and all of your processes and networking) will be able to continue as normal. The operating system within the VM itself has no concept that it is virtualized, and therefore has no concept that it is being moved. Should the live migration fail (as has been known to happen) the VM would experience… nothing. It would continue to work on the source host as if nothing had happened. In fact the only time it ceases to work on the source host is when it is fully operational on the destination host.
Notice now that the virtual machine SWMI-DC2, which we moved from SWMI-HOST5 to SWMI-HOST6 is now running as normal on the destination host. You will see that the Uptime is reset – that is because the uptime is tied to the VM on the host, and not the uptime of the guest OS.
Now that you understand how it works, why not watch the video of my performing a Shared Nothing Live Migration. For the sake of good TV I cut out the three minutes of waiting while the migration performed, but everything else is in real time. Check it out here: