{"id":7551,"date":"2008-06-27T09:02:00","date_gmt":"2008-06-27T09:02:00","guid":{"rendered":"https:\/\/blogs.msdn.microsoft.com\/bharry\/2008\/06\/27\/tfs-on-hyper-v\/"},"modified":"2018-08-14T00:27:17","modified_gmt":"2018-08-14T00:27:17","slug":"tfs-on-hyper-v","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/bharry\/tfs-on-hyper-v\/","title":{"rendered":"TFS on Hyper-V"},"content":{"rendered":"<p>With the <a class=\"\" href=\"http:\/\/blogs.technet.com\/virtualization\/archive\/2008\/06\/26\/wu-hoo-only-12-days-to-wu.aspx\">announcement<\/a> of the release of the new Microsoft Hyper-V virtualization technology, I&#8217;ve seen a surge of questions about TFS support for Hyper-V.&nbsp; We have tested TFS running in a Hyper-V virtual machine.&nbsp; It works well and is officially supported.<\/p>\n<h3>TFS Components &amp; Support<\/h3>\n<p>One thing to keep in mind is that there are 2 major components of a TFS server.&nbsp; The first is the TFS application tier.&nbsp; It runs fine in Hyper-V, Virtual Server and VMWare.&nbsp; You must remember that the TFS application tier in TFS 2005 and TFS 2008 is 32-bit only &#8211; so, if you are going to use it on a 64-bit Win2008 machine running Hyper-V, for example, you will need to run a 32-bit OS in its VM.&nbsp; Our support team will work with you on support issues regardless of which virtualization technology you use.&nbsp; However, we may ask you to reproduce problems outside of the virtual environment if we suspect it is causing a problem.&nbsp; The exception to this is Hyper-V.&nbsp; With Hyper-V, we are introducing full support on the virtual environment.&nbsp; We (Microsoft) are also working on a certification program so that all virtualization technologies that meet the requirements can achieve the same level of support.\nThe second major component of a TFS server is the data tier.&nbsp; The data tier is a SQLServer and the only TFS code that runs on it is TSQL stored procedures.&nbsp; Of course, in a single server TFS install the application tier and the data tier run on the same machine.&nbsp; My understanding is that SQL server 2005 and before do not officially support any virtualization technology.&nbsp; SQL is introducing virtualization support with SQL 2008.&nbsp; If you are going to use TFS with SQLServer 2008, make sure you use TFS 2008 SP1 (to be released this summer).&nbsp; In general, my advice to TFS customers has been that it&#8217;s fine to run the TFS application tier in a 32-bit VM but always run the SQLServer on native hardware (preferably on 64-bit if you need the system to scale).&nbsp; One reason for this is for performance (see more below).&nbsp; Another reason is that I have seen one or two instances of data corruption problems with SQLServer running in an improperly configured VM &#8211; the one that comes to mind was a customer who was running SQLServer in a VMWare VM and had delayed I\/O enabled in the VM.&nbsp; Delayed I\/O is not something you want at all on a SQLServer machine &#8211; it violates key guarantees that SQL relies on to guarantee data durability.<\/p>\n<h3>Virtual Machine Performance Guidance<\/h3>\n<p>I often get asked about recommendations about hardware configuration for virtualization.&nbsp; I generally focus on 2 things: memory and disk I\/O.&nbsp; The memory recommendation is pretty easy.&nbsp; If you want to run TFS in a VM, remember that there is also a host OS running.&nbsp; Sum up the memory requirements of every app in every VM you are running on the system and add about 1GB for the host OS.&nbsp; I&#8217;ve generally found that algorithm to work well for people and I expect it will work well for Hyper-V as well.\nThe more complicated one is I\/O.&nbsp; One of the historical problems with virtualization technology is that it adds overhead when virtualizing I\/O (in this case I&#8217;m mostly concerned about disk I\/O).&nbsp; A high scale TFS server performs a ton of I\/O and any overhead can be a problem.&nbsp; Fortunately, disk I\/O on the application tier is generally not too high (except in the most high scale systems).&nbsp; The only major source of I\/O is a file cache that reduces the load on the SQLServer for commonly requested files.&nbsp; TFS&#8217;s use of SQLServer, however, can be very I\/O intensive.&nbsp; My advice to anyone running any I\/O intensive application in a VM is to make sure you have a high performance disk subsystem.&nbsp; Error on the side of extra disk performance.&nbsp; For example, use 10K RPM or better drives, consider using RAID 10 that enables more concurrent I\/O.&nbsp; Make sure you have a good disk controller card.&nbsp; If your system is particularly high scale, consider using a high performance SAN.\nSome of this guidance may change over time with Hyper-V.&nbsp; Hyper-V is a very efficient virtualization technology but I don&#8217;t have enough experience with it yet to say for sure how it will affect these recommendations.&nbsp; As I learn more I&#8217;ll keep you up to date.\nGood luck and let me know if you have good or bad experiences with TFS and Hyper-V.<\/p>\n<p>Brian<\/p>\n","protected":false},"excerpt":{"rendered":"<p>With the announcement of the release of the new Microsoft Hyper-V virtualization technology, I&#8217;ve seen a surge of questions about TFS support for Hyper-V.&nbsp; We have tested TFS running in a Hyper-V virtual machine.&nbsp; It works well and is officially supported. TFS Components &amp; Support One thing to keep in mind is that there are [&hellip;]<\/p>\n","protected":false},"author":244,"featured_media":14617,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1],"tags":[5],"class_list":["post-7551","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized","tag-tfs"],"acf":[],"blog_post_summary":"<p>With the announcement of the release of the new Microsoft Hyper-V virtualization technology, I&#8217;ve seen a surge of questions about TFS support for Hyper-V.&nbsp; We have tested TFS running in a Hyper-V virtual machine.&nbsp; It works well and is officially supported. TFS Components &amp; Support One thing to keep in mind is that there are [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/bharry\/wp-json\/wp\/v2\/posts\/7551","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/bharry\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/bharry\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/bharry\/wp-json\/wp\/v2\/users\/244"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/bharry\/wp-json\/wp\/v2\/comments?post=7551"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/bharry\/wp-json\/wp\/v2\/posts\/7551\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/bharry\/wp-json\/wp\/v2\/media\/14617"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/bharry\/wp-json\/wp\/v2\/media?parent=7551"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/bharry\/wp-json\/wp\/v2\/categories?post=7551"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/bharry\/wp-json\/wp\/v2\/tags?post=7551"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}