Windows Server 2012 added a new possibility of making a simultaneous live migration of virtual machines from one cluster node to another (or more).
This is very interesting when we are in hurry and want to rapidly evacuate a node for maintenance or restart. Maybe we don’t feel it when we have 2 or 3 virtual machines to move, but think when you have 20 or 30 or more !!
Migrating multiple virtual machines is nice, Windows Server 2012 don’t impose any limitation of the simultaneous number (2, 3, 20…) of VMs to move, but give you the possibility to configure the maximum authorized number of simultaneous live migrated machines. Think about it, it’s not like moving 10 VMs from one node to another using 5 Gbit link, like moving them over 1 Gbit link. So, depending in your policy and your SLAs, you will calculate a reasonable number to configure. Don’t forget that live migration duration depends on the Live Migration network link speed, virtual machine memory and virtual machine load.
- How to configure maximum simultaneous live migrations ?
Simultaneous live migration settings can be configured per node basis, each node in the cluster (or even in a non cluster configuration, Nothing Shared Live Migration) can have it’s own configuration. In addition, don’t forget that the configured value is for In/Out simultaneously live migration ; in other words, if you configure a maximum of 5 simultaneous live migration operations, this node will accept a max of 5 IN and Out live migration at once (3 IN and 2 Out, 4 IN and 1 Out…).
To configure simultaneous Live Migration maximum count setting, go to Hyper-V Manager, Hyper-V Settings, Live Migrations. Type the desired value in the Simultaneous live migration box
How to easily live migrate all my virtual machines from one node to another ?
Now, what if i want to live migrate all my virtual machines from one node to the rest of the nodes, in other words, what if i want to empty a given node from all the virtual machines that runs on (i need to restart it!)
- First method : The direct method is to select all the virtual machines, right click, Move, Live migration, Select node. The matter here is that i can select only one node, so if i have 30 virtual machines, i have to place them on a single node !! not very practical, i need to select some virtual machines, migrate them to a node, then select some other virtual machines and migrate them to another node, and so on. Boring, time consuming, and i need to know if my target node will handle all the virtual machines to move to.
- Second Method : The Microsoft Failover cluster team has thought about it, there’s an excellent method to migrate all the virtual machines from one node and spread them to the other nodes. In the Failover cluster console, Nodes, right click the node that holds the VMs to migrate, Pause, Drain roles. This will start live migrating and queuing VMs to the rest of the cluster nodes. The node will be placed to paused state, so it will not accept ingoing live migration or virtual machine placement.
You can see that only the maximum simultaneous live migration operations is happening at the same time, the other virtual machines are placed in a a queue. The nice other thing is that you can move back you virtual machines to this node after doing your maintenance or restart. Just right click it, Resume, Fail back roles ; All the virtual machines that were on this node will be live migrated back to this node.