{"id":14288,"date":"2013-03-11T13:17:00","date_gmt":"2013-03-11T13:17:00","guid":{"rendered":"https:\/\/aidanfinn.com\/?p=14288"},"modified":"2013-03-11T13:17:00","modified_gmt":"2013-03-11T13:17:00","slug":"recommended-practices-for-hyper-v","status":"publish","type":"post","link":"https:\/\/aidanfinn.com\/?p=14288","title":{"rendered":"Recommended Practices For Hyper-V"},"content":{"rendered":"<p>Fellow MVP, Carsten Rachfahl, just retweeted an <a href=\"http:\/\/blogs.technet.com\/b\/askpfeplat\/archive\/2013\/03\/10\/windows-server-2012-hyper-v-best-practices-in-easy-checklist-form.aspx\" target=\"_blank\">interesting article<\/a> on the Ask PFE (Microsoft Premier Field Engineering \u2013 a consulting support service offered to customers with <em>lots<\/em> of money) that discusses best practices for Windows Server 2012 Hyper-V.&#160; A friend of mine is a PFE and I know how deep into weeds they can get in their jobs.&#160; That means this could be a very interesting article.&#160; I\u2019ve read it.&#160; Most of it I 100% agree with.&#160; A small bit of it I don\u2019t agree with.&#160; Some of it I\u2019d like to expand a bit on.<\/p>\n<p><strong><span style=\"text-decoration: underline\">On Server Core<\/span><\/strong><\/p>\n<p>PFEs work for Microsoft so I expected and got the company line.&#160; As you probably know, I prefer a full install because (a) it\u2019s easier to troubleshoot when things go wrong and (b) third party management and configuration software (such as that from your h\/w vendor) often relies on not just a GUI but also the presence of IE on the local machine.&#160; The ability to switch between full, Core, and Minimal UI is not there yet, in my opinion, because it requires a reboot.<\/p>\n<p>I don\u2019t care about numbers of patches, I care about numbers of reboots, which is still going to be around once per month.&#160; And thanks to Live Migration (clusters and SMB 3.0 enabled non-clustered hosts), I even don\u2019t care about the reboots because I\u2019ll patch <em>during the workday <\/em>with no service downtime.<\/p>\n<p>As for memory: you\u2019ll save a few MB with Core.&#160; When your hosts have 48 GB + (all the way up to 4 TB) RAM then a few MB is meanlingless.&#160; You might save 4 GB of disk space.&#160; When the smallest LUN I can put in a host for the management OS is 300 GB (that\u2019s the smallest disk you can get delivered from HP these days) then I really couldn\u2019t give a flying monkey about a 6 GB Windows install versus a 12 GB one <img decoding=\"async\" class=\"wlEmoticon wlEmoticon-smile\" style=\"border-top-style: none; border-left-style: none; border-bottom-style: none; border-right-style: none\" alt=\"Smile\" src=\"https:\/\/aidanfinn.com\/wp-content\/uploads\/2013\/03\/wlEmoticon-smile3.png\" \/><\/p>\n<p><strong><span style=\"text-decoration: underline\">On BIOS\/Firmware\/Drivers<\/span><\/strong><\/p>\n<p>100% agree on being up to date.&#160; Some h\/w vendors, such as IBM, will screw around with you to delay shipment of a replacement dead disk (firmwares, gathering logs, analysis of said logs by support, etc) so minimise the risks.&#160; Didier Van Hoye (MVP) has done some <a href=\"http:\/\/workinghardinit.wordpress.com\/2013\/01\/09\/logging-cluster-aware-updating-hotfix-plug-in-installations-to-a-file-share\/\" target=\"_blank\">blogging<\/a> and presenting on how to use Cluster Aware Updating to install firmware\/drivers on clustered Dell servers.<\/p>\n<p>On selection of h\/w, I\u2019m not alone in recommending that you find a mix of components that you like and are happy with, and stick to them as much as possible.&#160; Not all h\/w, drivers, and firmwares are made equal, even by the same manufacturer!&#160; You\u2019ll have a lot of eggs in these baskets and you want these baskets to be well made.<\/p>\n<p><strong><span style=\"text-decoration: underline\">Use of GPO<\/span><\/strong><\/p>\n<p>I like and use this.&#160; I put my hosts, even in the lab, in their own OU and have a GPO just for these hosts.&#160; Some of it is for overrides (e.g. not to force patch installs to my hosts like with other physical servers) and some of it can be for other customizations.&#160; I like the power plan setting idea by PFE.&#160; You could also use this GPO to push out your firewall settings, AV configs, manage services, etc.<\/p>\n<p><strong><span style=\"text-decoration: underline\">Store VM Files On Non-System Drive<\/span><\/strong><\/p>\n<p>This is important for non-HA VMs (typically not on a cluster).&#160; This is to avoid Dynamic VHDs, snapshots (AVHD\/AVHDX), Hyper-V replica logs (HRL) growing to the point of filling the system drive and rendering the host dead while pausing the VMs.&#160; Do you really want to have to boot the host up off a WinPE USB disk to resolve this issue?&#160; The most common offenders here will be small businesses, especially uneducated field engineers who are deploying their first hosts.<\/p>\n<p>Place the VMs on a dedicated LUN \u2013 I don\u2019t care how small the company or host is.&#160; We advise this <em>for a very valid reason!&#160; I don\u2019t care about nor value your \u201cvirtualisation experience\u201d on your laptop!<\/em><\/p>\n<p><strong><span style=\"text-decoration: underline\">The BIN File<\/span><\/strong><\/p>\n<p>There\u2019s a good reminder there that VMs with the \u201csave state\u201d automatic host shutdown action will maintain a BIN file.&#160; This used to be all VMs.&#160; Now, only those VMs maintain this placeholder file to write the memory to disk.&#160; This file matches the amount of RAM <em>currently<\/em> assigned to the VM.&#160; VMs with Dynamic Memory enabled will see this file grow and shrink, and you need to account for how big this file can get.<\/p>\n<p>TIP: a host with 96 GB RAM can never assign more than 96 GB RAM, and therefore cannot generate more than 96 GB of BIN file on its storage.&#160; You also cannot have more than X GB of BIN file if your VMs with the \u201csave state\u201d shutdown action have a total of X maximum RAM (dynamic memory setting).<\/p>\n<p><strong><span style=\"text-decoration: underline\">PAL<\/span><\/strong><\/p>\n<p>I\u2019d never heard of this <a href=\"http:\/\/pal.codeplex.com\/\" target=\"_blank\">tool<\/a>.&#160; Well worth noting \u2013 I have heard very interesting stories about the abilities of PFEs to troubleshoot problems based on perfmon metrics alone!<\/p>\n<p><strong><span style=\"text-decoration: underline\">VMQ<\/span><\/strong><\/p>\n<p>There\u2019s much more to VMQ than just enabling it.&#160; BE VERY CAREFUL!&#160; You need to know what you are doing, especially if implementing RSS as well or doing converged fabrics or NIC teaming.<\/p>\n<p><strong><span style=\"text-decoration: underline\">Jumbo Frames<\/span><\/strong><\/p>\n<p>I wouldn\u2019t be so liberal about recommending Jumbo Frames for iSCSI.&#160; Consult your h\/w vendor first.<\/p>\n<p><strong><span style=\"text-decoration: underline\">iSCSI and NIC Teaming<\/span><\/strong><\/p>\n<p>Correct: iSCSI NICs should not be NIC teamed.&#160; It\u2019s not supported and it will end badly.<\/p>\n<p>HOWEVER, there is a <a href=\"https:\/\/aidanfinn.com\/?p=13947\" target=\"_blank\">subtle exception to this in converged fabrics<\/a>.&#160; Note that the iSCSI virtual NICs in this design are not NIC teamed, and MPIO is used instead.&#160; The actual NIC team is abstracted beneath the virtual switch.&#160; But you should still check with your SAN manufacturer for support of this option.<\/p>\n<p><strong><span style=\"text-decoration: underline\">Recommended Networking on Hosts<\/span><\/strong><\/p>\n<p>There is something subtle here that most are missing.<\/p>\n<p>1) You only need iSCSI if you are using iSCSI.&#160; That should seem obvious to everyone \u2026 but there are always a few people \u2026<\/p>\n<p>2) Note the poster talks about the recommended number of <em>networks<\/em>.&#160; They are not talking about the recommended number of physical NICs.&#160; I can quite happily create these networks using a single 10 GbE NIC.&#160; See converged fabrics.<\/p>\n<p><strong><span style=\"text-decoration: underline\">Dynamic disks<\/span><\/strong><\/p>\n<p><img decoding=\"async\" class=\"wlEmoticon wlEmoticon-smile\" style=\"border-top-style: none; border-left-style: none; border-bottom-style: none; border-right-style: none\" alt=\"Smile\" src=\"https:\/\/aidanfinn.com\/wp-content\/uploads\/2013\/03\/wlEmoticon-smile3.png\" \/> I like that they recommend fixed VHD\/X files for production.&#160; That\u2019s what I recommend.&#160; Yes, Microsoft are back on the \u201cDynamic VHDs are just as good\u201d bandwagon, just as they were with W2008 R2.&#160; And many of us found that fragmentation caused read performance issues, particularly for relational databases.<\/p>\n<p>BTW, there is a near religious split in the MVP world over Dynamic versus Fixed VHD\/X.&#160; Some of the optimisations in VHDX (TRIM and UNMAP) muddy the waters, but I always come back to fragmentation.&#160; Storage (particularly databases) only ever grow, and tiny growth increments lead to fragmentation.&#160; Fragmentation leads to read performance issues, and that slows down queries and user interaction with applications. And that leads to helldesk calls.<\/p>\n<p>As for passthrough disks.&#160; I <em>hate <\/em>passthrough disks.&#160; If you find an engineer or consultant who says you should use passthrough disks for scalability or performance, then I want you to do this:<\/p>\n<p>Kick them in the balls.&#160; Repeatedly.<\/p>\n<p>Fixed VHDX will run (read and write) at nearly the same speed as the underlying physical disk.&#160; There will be contention across the physical spindles on your storage.&#160; More spindles = more IOPS.&#160; Creating a passthrough disk on the same disk group as a CSV is pointless and shows how dumb the engineer really is.&#160; And VHDX scales out to 64 TB.&#160; Few people need virtual LUNs bigger than 64 TB.<\/p>\n<p><strong><span style=\"text-decoration: underline\">Page File<\/span><\/strong><\/p>\n<p>The PFE blog tells us to set the paging file to 4 GB.&#160; That is my advice \u2026 for W2008 and W2008 R2 Hyper-V.&#160; However, we have been told not to do this for WS2012 Hyper-V.&#160; It is intelligent enough to figure out how to manage its own paging file.<\/p>\n<p><strong><span style=\"text-decoration: underline\">Management OS Memory Reserve<\/span><\/strong><\/p>\n<p>The PFE blog tells us to configure the MemoryReserve registry key.&#160; I also used to tell people to do this on W2008 R2 to reserve memory on the host against the needs of Dynamic Memory because the default reservation algorithm might not do enough.&#160; We are told not to use MemoryReserve in WS2012 Hyper-V unless Microsoft Support instructs you specifically to do otherwise.&#160; The memory management has changed under the hood and the default reservation algorithm should be enough.<\/p>\n<p><strong><span style=\"text-decoration: underline\">Integration Services<\/span><\/strong><\/p>\n<p>I need to disagree with the following:<\/p>\n<blockquote>\n<p>Enlightened OS&#8217;s (Server 2008 or higher, Windows 7 or higher) don&#8217;t need IS installed manually.<\/p>\n<\/blockquote>\n<p>Yes, they contain Hyper-V ICs \u2026 as they were at the release of the media \u2026 YEARS AGO.&#160; Even the built-in ICs in WS2012 and Windows 8 are already out of date (a Windows Update late last year brought an update).&#160; You should always update the ICs to (a) have bug\/security fixes and (b) gain access to new features.&#160; This can be painful if you are doing it manually (it requires a VM reboot).&#160; This is why I like ConfigMgr: I can distribute the new ICs as a custom update or as a piece of software, and schedule the install\/reboot during a maintenance window (possibly configured in my collections).<\/p>\n<p>EDIT#1<\/p>\n<p>Myself and the post author, Roger Osborne (PFE), have chatted offline.&#160; I\u2019ve also reach out to the product group to get advice on the paging file and MemoryReserve.&#160; The last we (authors of the new book) had heard from Redmond, what I posted above was correct.<\/p>\n<p><div id=\"scid:0767317B-992E-4b12-91E0-4F059A8CECA8:a9a198a9-c1d1-42d2-ac75-167bf3910e78\" class=\"wlWriterEditableSmartContent\" style=\"float: none; padding-bottom: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px\">Technorati Tags: <a href=\"http:\/\/technorati.com\/tags\/Windows+Server+2012\" rel=\"tag\">Windows Server 2012<\/a>,<a href=\"http:\/\/technorati.com\/tags\/Hyper-V\" rel=\"tag\">Hyper-V<\/a>,<a href=\"http:\/\/technorati.com\/tags\/Virtualisation\" rel=\"tag\">Virtualisation<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Fellow MVP, Carsten Rachfahl, just retweeted an interesting article on the Ask PFE (Microsoft Premier Field Engineering \u2013 a consulting support service offered to customers with lots of money) that discusses best practices for Windows Server 2012 Hyper-V.&#160; A friend of mine is a PFE and I know how deep into weeds they can get &hellip; <a href=\"https:\/\/aidanfinn.com\/?p=14288\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Recommended Practices For Hyper-V&#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":[181,195,118],"class_list":["post-14288","post","type-post","status-publish","format-standard","hentry","category-hyper-v","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\/14288","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=14288"}],"version-history":[{"count":0,"href":"https:\/\/aidanfinn.com\/index.php?rest_route=\/wp\/v2\/posts\/14288\/revisions"}],"wp:attachment":[{"href":"https:\/\/aidanfinn.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=14288"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/aidanfinn.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=14288"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/aidanfinn.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=14288"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}