{"id":11390,"date":"2011-07-26T17:18:00","date_gmt":"2011-07-26T17:18:00","guid":{"rendered":"https:\/\/aidanfinn.com\/?p=11390"},"modified":"2011-07-26T17:18:00","modified_gmt":"2011-07-26T17:18:00","slug":"why-i-dislike-dynamic-vhd-in-production","status":"publish","type":"post","link":"https:\/\/aidanfinn.com\/?p=11390","title":{"rendered":"Why I Dislike Dynamic VHD in Production"},"content":{"rendered":"<p>With this post, I\u2019m going to try explain why I recommend against using Dynamic VHD in production.<\/p>\n<p><strong><u>What is Dynamic VHD?<\/u><\/strong><\/p>\n<p>There are two types of VHD you may use in production:<\/p>\n<ul>\n<li>Fixed: This is where all of the allocated storage is consumed at once.&#160; For example, if you want 60 GB of virtual machine storage, a VHD file of around 60 GB is created, consuming all of that storage at once.<\/li>\n<li>Dynamic: This is where the VHD will only consume as much as is required, plus a little buffer space.&#160; If you allocate 60 GB of storage, a tiny VHD is created.&#160; It will grow by small chunks to accommodate new data, always leaving a small amount of free space.&#160; It kind of works like a SQL Server database\/log file.&#160; Eventually the VHD will reach 60 GB and you\u2019ll run out of space in the virtual disk.<\/li>\n<\/ul>\n<p>With Windows Server 2008 we knew that Dynamic VHD was just too slow for production.&#160; The VHD would grow in very small amounts, and often lots of growth was required at once, creating storage write latency.<\/p>\n<p><strong><u>Windows Server 2008 R2<\/u><\/strong><\/p>\n<p>We were told that was all fixed when Windows Server 2008 R2 was announced.&#160; Trustworthy names stood in front of large crowds and told us how Dynamic VHD would nearly match Fixed VHD in performance.&#160; The solution was to increase the size of the chunks that were added to the Dynamic VHD.&#160; After RTM there were performance reports that showed us how good Dynamic VHD was.&#160; And sure enough, this was all true \u2026 in the perfect, clean, short-lived, lab.<\/p>\n<p>For now, lets assume that the W008 R2 Dynamic VHD can grow fast enough to meet write activity demand, and focus on the other performance negatives.<\/p>\n<p><strong><u>Fragmentation<\/u><\/strong><\/p>\n<p>Let\u2019s imagine a CSV with 2 Dynamic VHDs on it.&#160; Both start out as small files:<\/p>\n<p><a href=\"https:\/\/aidanfinn.com\/wp-content\/uploads\/2011\/07\/image4.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px\" title=\"image\" border=\"0\" alt=\"image\" src=\"https:\/\/aidanfinn.com\/wp-content\/uploads\/2011\/07\/image_thumb4.png\" width=\"504\" height=\"94\" \/><\/a><\/p>\n<p>Over time, both VHDs will grow.&#160; Notice that the growth is fragmenting the VHDs.&#160; That\u2019s going to impact reads and overwrites.<\/p>\n<p><a href=\"https:\/\/aidanfinn.com\/wp-content\/uploads\/2011\/07\/image5.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px\" title=\"image\" border=\"0\" alt=\"image\" src=\"https:\/\/aidanfinn.com\/wp-content\/uploads\/2011\/07\/image_thumb5.png\" width=\"504\" height=\"94\" \/><\/a><\/p>\n<p>And over the long term, it doesn\u2019t get any better.<\/p>\n<p align=\"center\"><a href=\"https:\/\/aidanfinn.com\/wp-content\/uploads\/2011\/07\/image6.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px\" title=\"image\" border=\"0\" alt=\"image\" src=\"https:\/\/aidanfinn.com\/wp-content\/uploads\/2011\/07\/image_thumb6.png\" width=\"504\" height=\"94\" \/><\/a><\/p>\n<p>Now imagine that with dozens of VMs, all with one or more Dynamic VHDs, all getting fragmented.<\/p>\n<p>The only thing you can do to combat this is to run a defrag operation on the CSV volume.&#160; Realistically, you\u2019d have to run the defrag at least once per day. Defrag is an example of an operation that\u2019s going to kick in Redirected Mode (or Redirected Access).&#160; And unlike backup, it cannot make use of a Hardware VSS Provider to limit the impact of that operation.&#160; Big and busy CSVs will take quite a while to defrag, and you\u2019re going to impact on the performance of production systems.&#160; And you really need to be aware of what that impact would be on multi-site clusters, especially those that are active(site)-active(site).<\/p>\n<p><em>Odds are you probably should be doing the occasional CSV defrag even if you use Fixed VHD.&#160; Stuff gets messed up over time on any file system.<\/em><\/p>\n<p><strong><u>Storage Controllers<\/u><\/strong><\/p>\n<p>I am not a storage expert.&#160; But I talked with some Hyper-V engineers yesterday who are.&#160; They told me that they\u2019re seeing SAN storage controllers that really aren\u2019t dealing well with Dynamic VHD, especially if LUN thin provisioning is enabled.&#160; Storage operations are being queued up, leading to latency issues.&#160; Sure, Dynamic VHD and thin provisioning may reduce the amount of disk you need, but at what cost to the performance\/stability of your LOB applications, operations, and processes?<\/p>\n<p><strong><u>CSV and Dynamic VHD<\/u><\/strong><\/p>\n<p>I became aware of this one a while back thanks to my fellow Hyper-V MVPs.&#160; It never occurred to me at all \u2013 but it does make sense.<\/p>\n<p>In scenario 1 (below) the CSV1 coordinator role is on Host1.&#160; A VM is running on Host1, and it has Dynamic VHDs on CSV1.&#160; When that Dynamic VHD needs to expand, Host1 can take care of it without any fuss.<\/p>\n<p><a href=\"https:\/\/aidanfinn.com\/wp-content\/uploads\/2011\/07\/image7.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px\" title=\"image\" border=\"0\" alt=\"image\" src=\"https:\/\/aidanfinn.com\/wp-content\/uploads\/2011\/07\/image_thumb7.png\" width=\"504\" height=\"279\" \/><\/a><\/p>\n<p>In scenario 2 (below) things are a little different.&#160; The CSV1 coordinator role is still on Host1, but the VM is now on Host3.&#160; Now when the Dynamic VHD needs to expand, we see something different happen.<\/p>\n<p><a href=\"https:\/\/aidanfinn.com\/wp-content\/uploads\/2011\/07\/image8.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px\" title=\"image\" border=\"0\" alt=\"image\" src=\"https:\/\/aidanfinn.com\/wp-content\/uploads\/2011\/07\/image_thumb8.png\" width=\"504\" height=\"279\" \/><\/a><\/p>\n<p>Redirected Mode\/Access kicks in so the CSV coordinator (Host1) for CSV1 can expand the Dynamic VHD of the VM running on Host3.&#160; That means all storage operations for that CSV, on Hosts2-3 must travese the CSV network (maybe 1 Gbps) to Host1, and then go through its iSCSI or fibre channel link.&#160; This may be a very brief operation, but it\u2019s still something that has a cumulative effect on latency, with potential storage I\/O bottlenecks in the CSV network, Host1, Host1 HBA, or Host1 SAN connection.<\/p>\n<p><a href=\"https:\/\/aidanfinn.com\/wp-content\/uploads\/2011\/07\/image9.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px\" title=\"image\" border=\"0\" alt=\"image\" src=\"https:\/\/aidanfinn.com\/wp-content\/uploads\/2011\/07\/image_thumb9.png\" width=\"504\" height=\"312\" \/><\/a><\/p>\n<p>Now take a moment to think bigger:<\/p>\n<ul>\n<li>Imagine lots of VMs, all with Dynamic VHDs, all growing at once.&#160; Will the CSV ever not be in Redirected Mode?&#160; <\/li>\n<li>Now imagine there are lots of CSVs with lots of Dynamic VHDs on each.<\/li>\n<li>When you\u2019re done with that, now imagine that this is a multi-site cluster with a WAN connection adding bandwidth and latency limitations for Redirected Mode\/Access storage I\/O traffic from the cluster nodes to the CSV coordinator.<\/li>\n<li>And then imagine that you\u2019re using something like a HP P4000\/LeftHand where each host must write to each node in the storage cluster, and that redirected storage traffic is going back across that WAN link!<\/li>\n<\/ul>\n<p>Is your mind boggled yet?&#160; OK, now add in the usual backup operations, and defrag operations (to handle Dynamic VHD fragmentation) into that thought!<\/p>\n<p>You could try to keep the VMs on CSV1 running on Host1.&#160; That\u2019ll eliminate the need for Redirected Mode.&#160; But things like PRO, and Dynamic Optimization of SCVMM 2012 will play havoc with that, moving VMs all over the place if they are enabled \u2013 and I\u2019d argue that they should be enabled because they increase service uptime, reliability, and performance.<\/p>\n<p>We need an alternative!<\/p>\n<p><strong><u>Sometimes Mentioned Solution<\/u><\/strong><\/p>\n<p>I\u2019ve seen some say that they use Fixed VHD for data drives where there will be the most impact.&#160; That\u2019s a good start, but I\u2019d argue that you need to think about those System VHDs (the ones with the OS).&#160; Those VMs will get patched. Odds are that will happen at the same time and you could have a sustained level of Redirected Mode while Dynamic VHDs expand to handle the new files.&#160; And think of the fragmentation!&#160; Applications will be installed\/upgraded, often during production hours.&#160; And what about Dynamic Memory?&#160; The VMs paging file will increase, thus expanding the size of the VHD: more Redirected I\/O and fragmentation.&#160; Fixed VHD seems to be the way to go for me.<\/p>\n<p><strong><u>My Experience<\/u><\/strong><\/p>\n<p>Not long after the release of Windows Server 2008 R2, a friend of mine deployed a Hyper-V cluster for a business here in Ireland.&#160; They had a LOB application based on SQL Server.&#160; The performance of that application went through the floor.&#160; After some analysis, it was found that the W2008 R2 Dynamic VHDs were to blame.&#160; They were converted to Fixed VHD and the problem went away.<\/p>\n<p>I also went through a similar thing in a hosting environment.&#160; A customer complained about poor performance of a SQL VM.&#160; This was for read activity \u2013 fragmentation would cause the disk heads to bounce and increase latency.&#160; I converted the VHDs to fixed and the run time for reports was immediately improved by 25%.<\/p>\n<p><strong><u>SCVMM Doesn\u2019t Help<\/u><\/strong><\/p>\n<p>I <em>love<\/em> the role of the library in SCVMM. It makes life so much easier when it comes to deploying VMs, and SCVMM 2012 expands that exponentially with the deployment of a <em>service<\/em>. <\/p>\n<p>If you are running a larger environment, or a public\/private cloud, with SCVMM then you will need to maintain a large number of VM templates (VHDs in MSFT lingo but the rest of the world has been calling them templates for quite a long time). You may have Windows Server 2008 R2 with SP1 Datacenter, Enterprise, and Standard. You may have Windows Server 2008 R2 Datacenter, Enterprise, and Standard. You may have W2008 with SP1 x64 Datacenter, Enterprise, and Standard. You may have W2008 with SP1 x86 Datacenter, Enterprise, and Standard. You get the idea. Lots of VHDs. <\/p>\n<p>Now you get that I prefer Fixed VHDs.&#160; If I build a VM with Fixed VHD and then create a template from it, then I\u2019m going to eat up disk space in the library.&#160; Now it appears that some believe that disk is cheap.&#160; Yes, I can get 1TB of a disk for \u20ac80.&#160; But that\u2019s a dumb, slow, USB 2.0 drive.&#160; That\u2019s not exactly the sort of thing I\u2019d use for my SCVMM library, let alone put in a server or a datacenter.&#160; Server\/SAN storage is expensive, and it\u2019s hard to justify 40 GB + for each template that I\u2019ll store in the library.<\/p>\n<p>The alternative is to store Dynamic VHDs in the library.&#160; But SCVMM does not convert them to Fixed VHD on deployment.&#160; That\u2019s a manual process \u2013 and that\u2019s one that is not suitable for the self-service nature of a cloud.&#160; The same applies to storing a VM in the library; it seems pointless to store Fixed VHDs for an offline VM, but there\u2019s a manual conversion process to convert the stored VMs to Dynamic VHD.<\/p>\n<p>It seems to me that:<\/p>\n<ul>\n<li>If you\u2019re running a cloud then you realistically have to use Fixed VHDs for your library templates (library VHDs in Microsoft lingo)<\/li>\n<li>If you\u2019re a traditional IT-centric deploy\/manage environment, then store Dynamic VHD templates, deploy the VM, and then convert from Dynamic VHD to Fixed VHD before you power up the VM.<\/li>\n<\/ul>\n<p><strong><u>What Do The Microsoft Product Groups Say?<\/u><\/strong><\/p>\n<p><a href=\"http:\/\/technet.microsoft.com\/library\/cc794548(en-us,EXCHG.80).aspx\" target=\"_blank\">Exchange<\/a>: <em>\u201cVirtual disks that dynamically expand are not supported by Exchange\u201d.<\/em><\/p>\n<p><a href=\"http:\/\/support.microsoft.com\/kb\/957054\" target=\"_blank\">Dynamics CRM<\/a>: <em>\u201cCreate separate fixed-size virtual disks for Microsoft Dynamics CRM databases and log files\u201d<\/em>.<\/p>\n<p><a href=\"http:\/\/download.microsoft.com\/download\/d\/9\/4\/d948f981-926e-40fa-a026-5bfcf076d9b9\/SQL2008inHyperV2008.docx\" target=\"_blank\">SQL Server<\/a>: <em>&quot;Dynamic VHDs are not recommended for performance reasons\u201d<\/em>.<\/p>\n<p>That seems to cover most of the foundations for LOB applications in a MSFT centric network.<\/p>\n<p><strong><u>Recommendation<\/u><\/strong><\/p>\n<p>Don\u2019t use Dynamic VHD in production environments.&#160; Use Fixed VHD instead (and passthrough in those <em>rare <\/em>occasions where required<em>)<\/em>.&#160; Yes, you will use more disk for Fixed VHD for all that white space, but you\u2019ll get the best possible performance while using flexible and more manageable virtual disks.&#160; <\/p>\n<p>If you have implemented Dynamic VHD:<\/p>\n<ul>\n<li>Convert to Fixed VHD (requires VM shut down) if you can. Defrag, and set up a less frequent defrag job.<\/li>\n<li>If you cannot convert, then figure out when you can run frequent defrag jobs.&#160; Try to control VM placement relative to CSV coordinator roles to minimize impact.&#160; The script will need to figure out the CSV coordinator for the relevant CSV (because it can failover), and Live Migrate VMs on that CSV to the CSV coordinator, assuming that there is sufficient resource and performance capacity on that host.&#160; Yes, the Fixed VHD option looks much more attractive!<\/li>\n<\/ul>\n<div style=\"padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px\" id=\"scid:0767317B-992E-4b12-91E0-4F059A8CECA8:ee57e715-fe9d-453e-9af2-ce5ee8acd21a\" class=\"wlWriterEditableSmartContent\">Technorati Tags: <a href=\"http:\/\/technorati.com\/tags\/Hyper-V\" rel=\"tag\">Hyper-V<\/a>,<a href=\"http:\/\/technorati.com\/tags\/Virtualisation\" rel=\"tag\">Virtualisation<\/a>,<a href=\"http:\/\/technorati.com\/tags\/Failover+Clustering\" rel=\"tag\">Failover Clustering<\/a><\/div>\n","protected":false},"excerpt":{"rendered":"<p>With this post, I\u2019m going to try explain why I recommend against using Dynamic VHD in production. What is Dynamic VHD? There are two types of VHD you may use in production: Fixed: This is where all of the allocated storage is consumed at once.&#160; For example, if you want 60 GB of virtual machine &hellip; <a href=\"https:\/\/aidanfinn.com\/?p=11390\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Why I Dislike Dynamic VHD in Production&#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,"_uf_show_specific_survey":0,"_uf_disable_surveys":false,"_wpcom_ai_launchpad_first_post":false,"footnotes":""},"categories":[20],"tags":[63,181,195],"class_list":["post-11390","post","type-post","status-publish","format-standard","hentry","category-hyper-v","tag-failover-clustering","tag-hyper-v","tag-virtualisation"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"With this post, I\u2019m going to try explain why I recommend against using Dynamic VHD in production. What is Dynamic VHD? There are two types of VHD you may use in production: Fixed: This is where all of the allocated storage is consumed at once. For example, if you want 60 GB of virtual machine\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"AFinn\"\/>\n\t<meta name=\"google-site-verification\" content=\"TDKjbi2McB2eLIfL6KwPB3aQqv5E-mbcb2QYIcovGaI\" \/>\n\t<link rel=\"canonical\" href=\"https:\/\/aidanfinn.com\/?p=11390\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_GB\" \/>\n\t\t<meta property=\"og:site_name\" content=\"Aidan Finn, IT Pro - A blog covering Azure, Hyper-V, Windows Server, desktop, systems management, deployment, and so on ...\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"Why I Dislike Dynamic VHD in Production | Aidan Finn, IT Pro\" \/>\n\t\t<meta property=\"og:description\" content=\"With this post, I\u2019m going to try explain why I recommend against using Dynamic VHD in production. What is Dynamic VHD? There are two types of VHD you may use in production: Fixed: This is where all of the allocated storage is consumed at once. For example, if you want 60 GB of virtual machine\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/aidanfinn.com\/?p=11390\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2011-07-26T17:18:00+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2011-07-26T17:18:00+00:00\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary\" \/>\n\t\t<meta name=\"twitter:site\" content=\"@joe_elway\" \/>\n\t\t<meta name=\"twitter:title\" content=\"Why I Dislike Dynamic VHD in Production | Aidan Finn, IT Pro\" \/>\n\t\t<meta name=\"twitter:description\" content=\"With this post, I\u2019m going to try explain why I recommend against using Dynamic VHD in production. What is Dynamic VHD? There are two types of VHD you may use in production: Fixed: This is where all of the allocated storage is consumed at once. For example, if you want 60 GB of virtual machine\" \/>\n\t\t<meta name=\"twitter:creator\" content=\"@joe_elway\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/aidanfinn.com\\\/?p=11390#article\",\"name\":\"Why I Dislike Dynamic VHD in Production | Aidan Finn, IT Pro\",\"headline\":\"Why I Dislike Dynamic VHD in Production\",\"author\":{\"@id\":\"https:\\\/\\\/aidanfinn.com\\\/?author=1#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/aidanfinn.com\\\/#person\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/aidanfinn.com\\\/wp-content\\\/uploads\\\/2011\\\/07\\\/image_thumb4.png\",\"@id\":\"https:\\\/\\\/aidanfinn.com\\\/?p=11390\\\/#articleImage\",\"width\":504,\"height\":94},\"datePublished\":\"2011-07-26T17:18:00+01:00\",\"dateModified\":\"2011-07-26T17:18:00+01:00\",\"inLanguage\":\"en-GB\",\"commentCount\":11,\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/aidanfinn.com\\\/?p=11390#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/aidanfinn.com\\\/?p=11390#webpage\"},\"articleSection\":\"Hyper-V, Failover Clustering, Hyper-V, Virtualisation\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/aidanfinn.com\\\/?p=11390#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/aidanfinn.com#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/aidanfinn.com\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/aidanfinn.com\\\/?cat=20#listItem\",\"name\":\"Hyper-V\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/aidanfinn.com\\\/?cat=20#listItem\",\"position\":2,\"name\":\"Hyper-V\",\"item\":\"https:\\\/\\\/aidanfinn.com\\\/?cat=20\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/aidanfinn.com\\\/?p=11390#listItem\",\"name\":\"Why I Dislike Dynamic VHD in Production\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/aidanfinn.com#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/aidanfinn.com\\\/?p=11390#listItem\",\"position\":3,\"name\":\"Why I Dislike Dynamic VHD in Production\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/aidanfinn.com\\\/?cat=20#listItem\",\"name\":\"Hyper-V\"}}]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/aidanfinn.com\\\/#person\",\"name\":\"AFinn\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/aidanfinn.com\\\/?p=11390#personImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/65fde4aa9f2ab1cf1514ae320a37ec682d9398ce5791d3c2dd1e8670a71ceea0?s=96&d=mm&r=g\",\"width\":96,\"height\":96,\"caption\":\"AFinn\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/aidanfinn.com\\\/?author=1#author\",\"url\":\"https:\\\/\\\/aidanfinn.com\\\/?author=1\",\"name\":\"AFinn\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/aidanfinn.com\\\/?p=11390#authorImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/65fde4aa9f2ab1cf1514ae320a37ec682d9398ce5791d3c2dd1e8670a71ceea0?s=96&d=mm&r=g\",\"width\":96,\"height\":96,\"caption\":\"AFinn\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/aidanfinn.com\\\/?p=11390#webpage\",\"url\":\"https:\\\/\\\/aidanfinn.com\\\/?p=11390\",\"name\":\"Why I Dislike Dynamic VHD in Production | Aidan Finn, IT Pro\",\"description\":\"With this post, I\\u2019m going to try explain why I recommend against using Dynamic VHD in production. What is Dynamic VHD? There are two types of VHD you may use in production: Fixed: This is where all of the allocated storage is consumed at once. For example, if you want 60 GB of virtual machine\",\"inLanguage\":\"en-GB\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/aidanfinn.com\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/aidanfinn.com\\\/?p=11390#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/aidanfinn.com\\\/?author=1#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/aidanfinn.com\\\/?author=1#author\"},\"datePublished\":\"2011-07-26T17:18:00+01:00\",\"dateModified\":\"2011-07-26T17:18:00+01:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/aidanfinn.com\\\/#website\",\"url\":\"https:\\\/\\\/aidanfinn.com\\\/\",\"name\":\"Aidan Finn, IT Pro\",\"description\":\"A blog covering Azure, Hyper-V, Windows Server, desktop, systems management, deployment, and so on ...\",\"inLanguage\":\"en-GB\",\"publisher\":{\"@id\":\"https:\\\/\\\/aidanfinn.com\\\/#person\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"Why I Dislike Dynamic VHD in Production | Aidan Finn, IT Pro","description":"With this post, I\u2019m going to try explain why I recommend against using Dynamic VHD in production. What is Dynamic VHD? There are two types of VHD you may use in production: Fixed: This is where all of the allocated storage is consumed at once. For example, if you want 60 GB of virtual machine","canonical_url":"https:\/\/aidanfinn.com\/?p=11390","robots":"max-image-preview:large","keywords":"","webmasterTools":{"google-site-verification":"TDKjbi2McB2eLIfL6KwPB3aQqv5E-mbcb2QYIcovGaI","miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/aidanfinn.com\/?p=11390#article","name":"Why I Dislike Dynamic VHD in Production | Aidan Finn, IT Pro","headline":"Why I Dislike Dynamic VHD in Production","author":{"@id":"https:\/\/aidanfinn.com\/?author=1#author"},"publisher":{"@id":"https:\/\/aidanfinn.com\/#person"},"image":{"@type":"ImageObject","url":"https:\/\/aidanfinn.com\/wp-content\/uploads\/2011\/07\/image_thumb4.png","@id":"https:\/\/aidanfinn.com\/?p=11390\/#articleImage","width":504,"height":94},"datePublished":"2011-07-26T17:18:00+01:00","dateModified":"2011-07-26T17:18:00+01:00","inLanguage":"en-GB","commentCount":11,"mainEntityOfPage":{"@id":"https:\/\/aidanfinn.com\/?p=11390#webpage"},"isPartOf":{"@id":"https:\/\/aidanfinn.com\/?p=11390#webpage"},"articleSection":"Hyper-V, Failover Clustering, Hyper-V, Virtualisation"},{"@type":"BreadcrumbList","@id":"https:\/\/aidanfinn.com\/?p=11390#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/aidanfinn.com#listItem","position":1,"name":"Home","item":"https:\/\/aidanfinn.com","nextItem":{"@type":"ListItem","@id":"https:\/\/aidanfinn.com\/?cat=20#listItem","name":"Hyper-V"}},{"@type":"ListItem","@id":"https:\/\/aidanfinn.com\/?cat=20#listItem","position":2,"name":"Hyper-V","item":"https:\/\/aidanfinn.com\/?cat=20","nextItem":{"@type":"ListItem","@id":"https:\/\/aidanfinn.com\/?p=11390#listItem","name":"Why I Dislike Dynamic VHD in Production"},"previousItem":{"@type":"ListItem","@id":"https:\/\/aidanfinn.com#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/aidanfinn.com\/?p=11390#listItem","position":3,"name":"Why I Dislike Dynamic VHD in Production","previousItem":{"@type":"ListItem","@id":"https:\/\/aidanfinn.com\/?cat=20#listItem","name":"Hyper-V"}}]},{"@type":"Person","@id":"https:\/\/aidanfinn.com\/#person","name":"AFinn","image":{"@type":"ImageObject","@id":"https:\/\/aidanfinn.com\/?p=11390#personImage","url":"https:\/\/secure.gravatar.com\/avatar\/65fde4aa9f2ab1cf1514ae320a37ec682d9398ce5791d3c2dd1e8670a71ceea0?s=96&d=mm&r=g","width":96,"height":96,"caption":"AFinn"}},{"@type":"Person","@id":"https:\/\/aidanfinn.com\/?author=1#author","url":"https:\/\/aidanfinn.com\/?author=1","name":"AFinn","image":{"@type":"ImageObject","@id":"https:\/\/aidanfinn.com\/?p=11390#authorImage","url":"https:\/\/secure.gravatar.com\/avatar\/65fde4aa9f2ab1cf1514ae320a37ec682d9398ce5791d3c2dd1e8670a71ceea0?s=96&d=mm&r=g","width":96,"height":96,"caption":"AFinn"}},{"@type":"WebPage","@id":"https:\/\/aidanfinn.com\/?p=11390#webpage","url":"https:\/\/aidanfinn.com\/?p=11390","name":"Why I Dislike Dynamic VHD in Production | Aidan Finn, IT Pro","description":"With this post, I\u2019m going to try explain why I recommend against using Dynamic VHD in production. What is Dynamic VHD? There are two types of VHD you may use in production: Fixed: This is where all of the allocated storage is consumed at once. For example, if you want 60 GB of virtual machine","inLanguage":"en-GB","isPartOf":{"@id":"https:\/\/aidanfinn.com\/#website"},"breadcrumb":{"@id":"https:\/\/aidanfinn.com\/?p=11390#breadcrumblist"},"author":{"@id":"https:\/\/aidanfinn.com\/?author=1#author"},"creator":{"@id":"https:\/\/aidanfinn.com\/?author=1#author"},"datePublished":"2011-07-26T17:18:00+01:00","dateModified":"2011-07-26T17:18:00+01:00"},{"@type":"WebSite","@id":"https:\/\/aidanfinn.com\/#website","url":"https:\/\/aidanfinn.com\/","name":"Aidan Finn, IT Pro","description":"A blog covering Azure, Hyper-V, Windows Server, desktop, systems management, deployment, and so on ...","inLanguage":"en-GB","publisher":{"@id":"https:\/\/aidanfinn.com\/#person"}}]},"og:locale":"en_GB","og:site_name":"Aidan Finn, IT Pro - A blog covering Azure, Hyper-V, Windows Server, desktop, systems management, deployment, and so on ...","og:type":"article","og:title":"Why I Dislike Dynamic VHD in Production | Aidan Finn, IT Pro","og:description":"With this post, I\u2019m going to try explain why I recommend against using Dynamic VHD in production. What is Dynamic VHD? There are two types of VHD you may use in production: Fixed: This is where all of the allocated storage is consumed at once. For example, if you want 60 GB of virtual machine","og:url":"https:\/\/aidanfinn.com\/?p=11390","article:published_time":"2011-07-26T17:18:00+00:00","article:modified_time":"2011-07-26T17:18:00+00:00","twitter:card":"summary","twitter:site":"@joe_elway","twitter:title":"Why I Dislike Dynamic VHD in Production | Aidan Finn, IT Pro","twitter:description":"With this post, I\u2019m going to try explain why I recommend against using Dynamic VHD in production. What is Dynamic VHD? There are two types of VHD you may use in production: Fixed: This is where all of the allocated storage is consumed at once. For example, if you want 60 GB of virtual machine","twitter:creator":"@joe_elway"},"aioseo_meta_data":{"post_id":"11390","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"breadcrumb_settings":null,"limit_modified_date":false,"ai":null,"created":"2020-12-21 03:53:18","updated":"2025-06-04 14:34:50","seo_analyzer_scan_date":null,"focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/aidanfinn.com\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/aidanfinn.com\/?cat=20\" title=\"Hyper-V\">Hyper-V<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tWhy I Dislike Dynamic VHD in Production\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/aidanfinn.com"},{"label":"Hyper-V","link":"https:\/\/aidanfinn.com\/?cat=20"},{"label":"Why I Dislike Dynamic VHD in Production","link":"https:\/\/aidanfinn.com\/?p=11390"}],"amp_enabled":true,"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/aidanfinn.com\/index.php?rest_route=\/wp\/v2\/posts\/11390","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=11390"}],"version-history":[{"count":0,"href":"https:\/\/aidanfinn.com\/index.php?rest_route=\/wp\/v2\/posts\/11390\/revisions"}],"wp:attachment":[{"href":"https:\/\/aidanfinn.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=11390"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/aidanfinn.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=11390"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/aidanfinn.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=11390"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}