How do you make a PC that is fast, quiet, and cool? Oh, and it has to support the ambitious training needs of a professional software developer.
I did it by building one from scratch, with parts I bought mostly at my local Micro Center. I used an ASUS Sabertooth X58 motherboard, with an Intel I7 960 processor, which is a quad-core hyper-threaded processor which gives me 8 threads. I included 24 GB RAM. I added an Adaptec 6805 RAID controller, that I later purchased online from Insight, and attached five solid-state drives (SSD) (OCZ Agility 3) in a RAID 6 configuration. The resulting disk array has an average transfer rate of 334 MB per second, with an average access time of 0.3 ms. RAID 6 means I can lose two drives and not lose any data. I know the solid-state drives are more expensive than regular disk storage, but they are so quiet, they run so cool, and they are so stinking fast, that I will never give them up, now that I have experienced them.
I run Windows server 2008 R2 with Hyper-V, supporting six or seven virtual servers: a domain controller, a database server, a dedicated server for Team Foundation Server which serves as my source control system, Windows 7 client machine with Visual Studio installed, and various assorted servers for different training exercises such as CRM, Biztalk, SharePoint, and whatever strikes my fancy that week.
The result is a machine that allows me to train on the latest software products, and install them again and again, quickly and easily.
By the way, it really is quite a lot of tedious effort to get all the pieces to work together well. I would not blame you if you wanted to buy a machine from a reputable vendor like Dell and simply be done with it. But if you have way too much time on your hands, it’s a lot of fun to solve the compatibility problems.
If you intend to build your own computer, I will share some lessons I learned along the way. First of all, the sales guy was really smart and gave me good advice in many ways. But he recommended a video card that is overkill for my situation. After all, it is a server and I normally connect to it through Remote Desktop. I’m not playing games on it, so video performance is irrelevant. I don’t care that I spent a few extra dollars that I did not need to spend. The annoyance is that a powerful video card takes up a lot of real estate on your motherboard. But I don’t want one too cheap, or it cannot drive the resolution of my monitor.
Another lesson worth noting: in my initial configuration, I used the Intel RAID controller built into the motherboard. But it turned out that it was not very reliable. Every couple of days, the raid controller would report that it had degraded because one of the drives was no longer functioning. I would reboot the machine and it would be fine. Two days later, it reported a different disk drive failed. I could not believe that all the disk drives were defective. I could have returned the motherboard. Maybe a new BIOS update is available.. But it occurred to me that I would be better served by having a high-quality dedicated RAID controller card anyway. The dedicated disk controller card turned out to be a good idea. It performs amazingly well and is utterly reliable. Under this new arrangement, I don’t have any problems at all with my solid-state disks. And the Adaptec controller has good management software that will allow me to add additional drives to transparently expand the RAID array. That will come in handy if I happen to use up all of the available space. I thought disk space would be a problem for all of these virtual servers, but ever since I discovered differencing disks in Hyper-V, I find that I’m saving tons of space.