Premier Field Engineer, Microsoft Services Customer Service and Support
(This blog post is part of a series of posts on the new VSTS Pioneer TFS dogfood server.)
While running the main TFS server for ~3,500 users in Developer Division we got a pretty good idea of the hardware required to support our enormous number of files, local versions & branches.
We knew that:
Servers
We wanted to purchase and setup hardware that was flexible enough and designed to scale as our needs do. For this reason we settled on two identical servers that are part of the Microsoft IT recommended systems for our needs:
According to Joe Chang who studies SQL Server performance, the “The X7460 (Dunnington) is a clear winner at 4-way for the high-call volume apps.” The 6-core CPUs also offer a pretty significant performance boost over the older quad-core CPUs:
Virtual Machines
We are running 5 virtual machines at the moment with almost identical configurations. Since we’ll be constantly upgrading things like the .NET CLR that often don’t support build-to-build upgrades or clean uninstall, running the application tiers as VM’s makes perfect sense. It also improves our rollback story if we have a failed upgrade. (More about upgrade in a future post).
VM
Purpose
Configuration
AT01, AT02, AT03
TFS Application Tier
Windows Server 2008 R2
4 Virtual processors
4GB RAM
2 Virtual NICs
1 VHD for C$
1 VHD for version control cache
MIRROR
TFS-TFS Connector tool runs here
Windows Server 2008 RTM
1 Virtual NIC
1 VHD for version control temporary workspace
MOSS
Microsoft Office SharePoint 2007 SP2 (Complete install)
Web Front End, Excel Services, Search Services & Shared Services Provider
Databases reside on physical SQL server
Storage
Since these servers are hosted by the DevDiv IT guys, we went with their recommendation for storage. They already have a massive storage infrastructure for build & drop servers built on Xiotech technology, so it was easy for them to add additional ISE units to meet our size & performance requirements. In the end we ended up with the following configuration:
The SQL Customer Advisory Team’s – Storage Top 10 Best Practices is a great resource when planning your own TFS deployment. In particular we specifically considered the following:
Here’s how the virtual disks (LUNs) are configured on the server:
SERVER1 (SQL, SSRS, SSAS)
Drive
Storage Type
Size (Gb)
E$
SQL backup dump drive
Balanced
2741
G$
LocalVersion filegroup
Performance
1673
I$
OLAP data
25
J$
All database data
1833
K$
Version filegroup
971
O$
Transaction Logs
1500
T$
TempDB
500
SERVER2 (Hyper-V Host)
Type
Hyper-V VM's
743
What’s cool about the Xiotech stuff is that it’s like Lego blocks – as you need more storage or more performance, you just buy more blocks and plug them in. What’s even cooler about it, is that you can control the SAN using web services – the build lab uses the SANMan tool they built to move virtual disks between build servers and automate the provisioning of disk space.
Topology
At just over 400 users, we probably don’t need three AT machines in a NLB configuration. However, NLB is an important new feature of TFS2010 and it’s a scenario that we need to dogfood for ourselves.
Here’s some quick facts about our topology:
That’s it for hardware and topology, next post is on performance and Dogfood statistics.
This is great info. Thanks Grant!
Thanks Grant. We are planning on migrating to TFS 2010. Is it possible to have the baseline Hyper V available for download? This will help me a lot in my POC and hands on experimentation to understand the product.
Oops. I meant baseline Hyper V VHD ...
Hi Grant,
I read through your blog and it's a wonderful stuff!
I'm a VSTS consultant and working out a hardware requirement for one of our key clients.
Where the client in planning to start of with a user base of close 8,000 users and scale upto 25,000 users in the next 2 years. I'm unable to find any data for this massive deployment.
Kindly assist us in achieving the same. Look forward for your help in this regard.
Cheers,
Srini