{"id":14936,"date":"2013-06-24T13:00:00","date_gmt":"2013-06-24T12:00:00","guid":{"rendered":"https:\/\/aidanfinn.com\/?p=14936"},"modified":"2013-06-24T13:00:00","modified_gmt":"2013-06-24T12:00:00","slug":"windows-server-2012-r2-hyper-v-guest-clustering-with-shared-vhdx","status":"publish","type":"post","link":"https:\/\/aidanfinn.com\/?p=14936","title":{"rendered":"Windows Server 2012 R2 Hyper-V \u2013 Guest Clustering With Shared VHDX"},"content":{"rendered":"<p>Windows Server 2012 Hyper-V allows you to create guest clusters of up to 64 nodes.\u00a0 They need some kind of shared storage and that came in the form of:<\/p>\n<ul>\n<li>SMB 3.0 file shares<\/li>\n<li>iSCSI<\/li>\n<li>Fibre Channel<\/li>\n<\/ul>\n<p>There are a few problems with this:<\/p>\n<ul>\n<li>It complicates host architecture. Take a look at my converged network\/fabric designs for iSCSI.\u00a0 Virtual Fibre Channel is amazing but there\u2019s plenty of work: virtual SANs, lots of WWNs to zone, and SAN vendor MPIO to install in the guest OS.<\/li>\n<li>It creates a tether between the VMs and the physical infrastructure that limits agility and flexibility<\/li>\n<li>In the cloud, it makes self-service a near (if not total) impossibility<\/li>\n<li>In a public cloud, the hoster is going to be unwilling to pierce the barrier between infrastructure and untrusted tenant<\/li>\n<\/ul>\n<p>So in Windows Server 2012 R2 we get a new feature: Shared VHDX.\u00a0 You attach a VHDX to a SCSI controller of your VMs, edit the Advanced settings of the VHDX, and enable sharing.\u00a0 This creates a persistent reservation passthrough to the VHDX, and the VMs now see this VHDX as a shared SAS disk.\u00a0 You can now build guest clusters with this shared VHDX as the cluster storage.<\/p>\n<p><a href=\"https:\/\/aidanfinn.com\/wp-content\/uploads\/2013\/06\/image10.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;\" title=\"image\" src=\"https:\/\/aidanfinn.com\/wp-content\/uploads\/2013\/06\/image_thumb10.png\" border=\"0\" alt=\"image\" width=\"404\" height=\"264\" \/><\/a><\/p>\n<p>There are some requirements:<\/p>\n<ul>\n<li>Obviously you have to be clustering the VMs to use the storage.<\/li>\n<li>The hosts must be clustered.\u00a0 This is to get a special filter driver (svhdxflt.sys).<\/li>\n<li>The VHDX must be on shared storage, either CSV or SMB 3.0.<\/li>\n<\/ul>\n<p>Yes, this eliminates running a guest cluster with Shared VHDX on Windows 8.1 Client Hyper-V.\u00a0 But you can do it on a single WS2012 R2 machine by creating a single node host cluster.\u00a0 Note that this is a completely unsupported scenario and should be for demo\/evaluation labs only<\/p>\n<p>Another couple of gotchas:<\/p>\n<ul>\n<li>You cannot do host-level backups of the guest cluster.\u00a0 This is the same as it always was.\u00a0 You will have to install backup agents in the guest cluster nodes and back them up as if they were physical machines.<\/li>\n<li>You cannot perform a hot-resize of the shared VHDX.\u00a0 But you can hot-add more shared VHDX files to the clustered VMs.<\/li>\n<li>You cannot <em>Storage<\/em> Live Migrate the shared VHDX file.\u00a0 You can move the other VM files and perform normal Live Migration.<\/li>\n<\/ul>\n<p>Even with the gotchas, that I expect MSFT will sort out quickly, this is a superb feature.\u00a0 I would have loved Shared VHDX when I worked in the hosting business because it makes self-service and application HA a realistic possibility.\u00a0 And I will absolutely eat it up in my labs <img decoding=\"async\" class=\"wlEmoticon wlEmoticon-smile\" style=\"border-style: none;\" src=\"https:\/\/aidanfinn.com\/wp-content\/uploads\/2013\/06\/wlEmoticon-smile10.png\" alt=\"Smile\" \/><\/p>\n<p>EDIT1:<\/p>\n<p>I had a question from Steve Evans (MVP, ASP.NET\/IIS) about using Shared VHDX: Is Shared VHDX limited to a single cluster?\u00a0 On the physical storage side, direct-attached CSV is limited to a single cluster.\u00a0 However, SMB 3.0 file shares are on different physical infrastructure and can be permissioned for more than one host\/cluster.\u00a0 Therefore, in theory, a guest cluster could reside on more than one host cluster, with the Shared VHDX stored on a single SMB 3.0 file share (probably SOFS with all this HA flying about).\u00a0 Would this be supported?\u00a0 I checked with <a href=\"https:\/\/twitter.com\/JoseBarreto\">Jose Barreto<\/a>: it&#8217;s a valid use case and should be supported.\u00a0 So now you have a solution to quadruple HA your application:<\/p>\n<ol>\n<li>Use highly available virtual machines<\/li>\n<li>Use more than one host cluster to host those HA VMs<\/li>\n<li>Create guest clusters from the HA VMs<\/li>\n<li>Store the shared VHDX on SOFS\/SMB 3.0 file shares<\/li>\n<\/ol>\n<div id=\"scid:0767317B-992E-4b12-91E0-4F059A8CECA8:2ba67ad7-e056-40d4-af59-01bf0519399d\" class=\"wlWriterEditableSmartContent\" style=\"float: none; margin: 0px; display: inline; padding: 0px;\">Technorati Tags: <a rel=\"tag\" href=\"http:\/\/technorati.com\/tags\/Windows+Server+2012+R2\">Windows Server 2012 R2<\/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>,<a rel=\"tag\" href=\"http:\/\/technorati.com\/tags\/Storage\">Storage<\/a>,<a rel=\"tag\" href=\"http:\/\/technorati.com\/tags\/Failover+Clustering\">Failover Clustering<\/a><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Windows Server 2012 Hyper-V allows you to create guest clusters of up to 64 nodes.\u00a0 They need some kind of shared storage and that came in the form of: SMB 3.0 file shares iSCSI Fibre Channel There are a few problems with this: It complicates host architecture. Take a look at my converged network\/fabric designs &hellip; <a href=\"https:\/\/aidanfinn.com\/?p=14936\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Windows Server 2012 R2 Hyper-V \u2013 Guest Clustering With Shared VHDX&#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,99,195,120],"class_list":["post-14936","post","type-post","status-publish","format-standard","hentry","category-hyper-v","tag-failover-clustering","tag-hyper-v","tag-storage","tag-virtualisation","tag-windows-server-2012-r2"],"aioseo_notices":[],"jetpack_featured_media_url":"","amp_enabled":true,"_links":{"self":[{"href":"https:\/\/aidanfinn.com\/index.php?rest_route=\/wp\/v2\/posts\/14936","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=14936"}],"version-history":[{"count":0,"href":"https:\/\/aidanfinn.com\/index.php?rest_route=\/wp\/v2\/posts\/14936\/revisions"}],"wp:attachment":[{"href":"https:\/\/aidanfinn.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=14936"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/aidanfinn.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=14936"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/aidanfinn.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=14936"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}