{"id":13715,"date":"2012-11-05T08:00:00","date_gmt":"2012-11-05T08:00:00","guid":{"rendered":"https:\/\/aidanfinn.com\/?p=13715"},"modified":"2012-11-05T08:00:00","modified_gmt":"2012-11-05T08:00:00","slug":"you-pause-a-clustered-hyper-v-host-and-low-priority-vms-are-quick-migrated","status":"publish","type":"post","link":"https:\/\/aidanfinn.com\/?p=13715","title":{"rendered":"You Pause A Clustered Hyper-V Host And Low Priority VMs are QUICK MIGRATED!"},"content":{"rendered":"<p>Wh-at!?!?!? Isn\u2019t Quick Migration dead?\u00a0 Nope. Here\u2019s why and here\u2019s how to change this default behaviour:<\/p>\n<p>Live Migration uses a LM network to copy\/synchronize a running VM\u2019s changing memory from a source host to a destination host. We have simultaneous LMs and we can do lots of those over 10 GbE, RoCE, or Infiniband to vacate a host for maintenance.<\/p>\n<ul>\n<li>What if you have to get VMs off of a host really quickly?\u00a0 You could find your bandwidth becomes a limit.<\/li>\n<li>What if you have converged fabrics? Transferring VMs over that could hammer the network.<\/li>\n<\/ul>\n<p>But you want to get the host offline as quickly as possible.\u00a0 What to do?\u00a0 We have the ability in WS2012 Hyper-V to <a href=\"https:\/\/aidanfinn.com\/?p=12682\" target=\"_blank\">prioritise VMs for failover ordering<\/a>:<\/p>\n<ul>\n<li>High: first<\/li>\n<li>Medium: second<\/li>\n<li>Low: last<\/li>\n<\/ul>\n<p>Microsoft heard from some people that they wanted to treat low priority VMs differently when they pause a host (and <em>only<\/em> when they pause a host). They wanted to move the low priority VMs without the network\/system interrupts of LM. They wanted to use Quick Migration.\u00a0 So here is what happens (by default) if you <a href=\"http:\/\/blogs.msdn.com\/b\/clustering\/archive\/2012\/04\/03\/10290554.aspx\" target=\"_blank\">pause a clustered host<\/a> with high, medium, and low priority VMs):<\/p>\n<ol>\n<li>High priority VMs will LM first<\/li>\n<li>Medium priority VMs will LM second<\/li>\n<li>Low priority VMs will move using Quick Migration \u2013 and this happens in parallel with the others<\/li>\n<\/ol>\n<p>Quick Migration will:<\/p>\n<ul>\n<li>Put a VM into saved state. Make sure the Virtual Machines folder of the VM has sufficient space. It needs to match the currently allocated amount of RAM (Dynamic Memory changes this)<\/li>\n<li>Transfers ownership of the VM files to the destination host<\/li>\n<li>Starts the VM from the saved state<\/li>\n<li>The VM is offline for X seconds, depending on storage bandwidth, storage speed, and the amount of RAM assigned to the VM<\/li>\n<\/ul>\n<p>The load of Quick Migration is placed on the storage rather than on the LM network. But it implies that Low priority means that the VM has a lesser SLA, and it can be brought offline to move it when you put a host in maintenance mode (such as Cluster Aware Updating, or unplanned h\/w maintenance).<\/p>\n<p>I personally think this is not how most people will understand Low priority. Most of us consider Low Priority as an ordered mechanism in Failover Cluster VM failover, not as an SLA bracket.\u00a0 I\u2019ll be quite honest; I did not know about this default behaviour until <a href=\"http:\/\/twitter.com\/hypervserver\" target=\"_blank\">Carsten Rachfahl<\/a> (MVP) talked about it in a cluster presentation at TEC2012. We fired up my lab at work and proved it.\u00a0 I asked MSFT if you could change this default behaviour.\u00a0 We can.<\/p>\n<p>Run this PowerShell to see why Quick Migration is used:<\/p>\n<p><em>PS C:Usersadministrator.DEMO&gt; Get-ClusterResourceType &#8220;Virtual Machine&#8221; | Get-ClusterParameter | fl *<\/em><\/p>\n<p><em>\u2026.<\/em><\/p>\n<p><em><\/em><em>ClusterObject : Virtual Machine<br \/>\nName\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 : MoveTypeThreshold<br \/>\nIsReadOnly\u00a0\u00a0\u00a0 : False<br \/>\nParameterType : UInt32<\/em><em><span style=\"background-color: #0000ff;\"><br \/>\n<\/span><\/em><em>Value\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 :<strong> <\/strong><\/em><em><span style=\"background-color: #0000ff;\"><strong>2000<\/strong><\/span><\/em><\/p>\n<p>Priority is a numeric value that that is assigned to VMs.\u00a0 Low = 2000.\u00a0 Changing the value of this VM attribute is not supported.\u00a0 Note the highlighted results above.\u00a0 The threshold for using QuickMigration is 2000.\u00a0 OK!\u00a0 While we cannot (for support reasons) customize the priority numeric value of the VM, we can change the threshold for doing Quick Migration:<\/p>\n<p><em>Get-ClusterResourceType &#8220;Virtual Machine&#8221; | Set-ClusterParameter MoveTypeThreshold <span style=\"background-color: #0000ff;\">1000<\/span><\/em><\/p>\n<p>Now when you pause a host, a Low Priority VM (2000) will not cross the threshold for Quick Migration (1000) and it will be live migrated just like the high and medium priority VMs. Problem solved.<\/p>\n<p><em>Note: If there is contention across the cluster after host failures, low priority VMs will be powered down to make room for higher priority VMs.<\/em><\/p>\n<div id=\"scid:0767317B-992E-4b12-91E0-4F059A8CECA8:3caece01-c255-4dd3-88ee-135f04382b48\" class=\"wlWriterEditableSmartContent\" style=\"margin: 0px; display: inline; float: none; padding: 0px;\">Technorati Tags: <a rel=\"tag\" href=\"http:\/\/technorati.com\/tags\/Windows+Server+2012\">Windows Server 2012<\/a>,<a rel=\"tag\" href=\"http:\/\/technorati.com\/tags\/Failover+Clustering\">Failover Clustering<\/a>,<a rel=\"tag\" href=\"http:\/\/technorati.com\/tags\/Hyper-V\">Hyper-V<\/a>,<a rel=\"tag\" href=\"http:\/\/technorati.com\/tags\/Virtualisation\">Virtualisation<\/a><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Wh-at!?!?!? Isn\u2019t Quick Migration dead?\u00a0 Nope. Here\u2019s why and here\u2019s how to change this default behaviour: Live Migration uses a LM network to copy\/synchronize a running VM\u2019s changing memory from a source host to a destination host. We have simultaneous LMs and we can do lots of those over 10 GbE, RoCE, or Infiniband to &hellip; <a href=\"https:\/\/aidanfinn.com\/?p=13715\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;You Pause A Clustered Hyper-V Host And Low Priority VMs are QUICK MIGRATED!&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_uf_show_specific_survey":0,"_uf_disable_surveys":false,"footnotes":""},"categories":[20],"tags":[63,181,195,118],"class_list":["post-13715","post","type-post","status-publish","format-standard","hentry","category-hyper-v","tag-failover-clustering","tag-hyper-v","tag-virtualisation","tag-windows-server-2012"],"aioseo_notices":[],"jetpack_featured_media_url":"","amp_enabled":true,"_links":{"self":[{"href":"https:\/\/aidanfinn.com\/index.php?rest_route=\/wp\/v2\/posts\/13715","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/aidanfinn.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/aidanfinn.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/aidanfinn.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/aidanfinn.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=13715"}],"version-history":[{"count":0,"href":"https:\/\/aidanfinn.com\/index.php?rest_route=\/wp\/v2\/posts\/13715\/revisions"}],"wp:attachment":[{"href":"https:\/\/aidanfinn.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=13715"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/aidanfinn.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=13715"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/aidanfinn.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=13715"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}