HomeServer
From KallestadWiki
Contents |
Home NAS and More
I've been wanting a home server for quite some time and I think it's time to start putting one together.
I spec'ed out a system at newegg today for about $1300 $1800 - it seems like a lot and I could definitely slim down on a few things but I'm comfortable with the system as it is.
Originally, i wanted just a simple home NAS. There are plenty of commercial options for home NAS drives, but building my own system allows me to expand on the capabilities and take better advantage of the hardware.
At this point, I want a couple of things:
- Lots of fast network storage - I want to get rid of all of my firewire/usb external drives because they lack reliability.
- DNS Cache - The perceptive speed difference in having a local ns cache is amazing. (http://cr.yp.to/djbdns/run-cache-x.html)
- Proxy Cache - http://www.squid.org - This I think can make things seem a bit faster at home and it can get me thinking a bit about how to deal with internet monitoring and management when my little ones get a bit bigger.
- Mr. House - http://misterhouse.sourceforge.net/I have a lot of home automation things set up and I'd like to have a dedicated server to help manage it.
- Local Application Server - I do a lot of development and I do a lot of it on remote servers. A local server option would be nice.
- CVS - http://www.nongnu.org/cvs/ again, having a local CVS / SVN repository would make me very happy, and I would probably use it a lot more frequently.
- Automated Backups - For my *nix boxes, there are plenty of scripts that use rsync, etc. For windows, I need to review this slashdot article - Slashdot, and I have already identified these two potential solutions: http://backuppc.sourceforge.net/info.html and http://bacula.org/
- Virtual Machine Images - http://www.vmware.com/products/server/ It would be nice to have multiple images accessible on my network instead of bogging down my local machine with them. There's also the potential of going entirely open source rather than vmware, but I haven't looked into it yet.
- Database Server - MySQL, PostGres, and Oracle - this will make for a good and powerful sandbox
If I think about the $600 cost of a NAS device that performs poorly and doesn't offer me a lot of freedom in management and compare it with a $1300 $1800 machine that can do all this and more the cost begins to be a little bit easier to swallow. Of course, I could make it a lot more expensive with a higher end cpu, but for most of the tasks I have slated for the machine CPU isn't the big concern, disk performance is.
The Machine
So here is the machine I'm looking at:
- 3ware 9650SE-4LPML SATA II Controller Card
This is one of the big pieces of the puzzle. 3ware performance is pretty darn good but for a home server it's a hefty price to pay. I could get away with onboard controllers, but the difference in speed is quite noticeable. I'm primarily concerned with performance, RAID isn't something I'm compelled to play with. I realize that some RAID configurations can provide performance benefits, but they also increase the amount of trouble you have to go through in a recovery scenario.
- (4) HITACHI Deskstar T7K500 HDT725050VLA360 500GB 7200 RPM SATA 3.0Gb/s Hard Drive
I'm not sure how I'm going to configure these drives at the moment. Potentially 2 of them in a mirroring setup for important data and the remaining two as JBOD. Maybe all of them JBOD to maximize space and manually mirror what I want to via RSYNC. Who knows.
- Intel BLKD975XBX2KR LGA 775 Intel 975X ATX Intel Motherboard
This particular motherboard was chosen because it's on the 3ware 9650 compatibility list. I know from long painful experience that when you buy a high end card you absolutely must have a supported motherboard if you want to get any sleep the week it arrives. Lucky for me, this particular motherboard was available for less than $100 as an open box.
- Intel Core 2 Duo E4500 Allendale 2.2GHz LGA 775 65W Processor Model BX80557E4500
64 bits and reasonable performance at a bargain basement price.
- Intel Core 2 Quad Q6600 Kentsfield 2.4GHz LGA 775
Before I placed my order, I did a little bit of research and the quad core processor could be had for less than $300. It was difficult to resist.
- (2)G.SKILL 4GB(2 x 2GB) 240-Pin DDR2 SDRAM DDR2 800 (PC2 6400)
8 Gigs of RAM is probably not necessary short term, but the cache will make any performance issues with the CPU seemingly disappear. The price was the main reason for this particular grab. 8 gigs for less than $250. I couldn't resist.
- SAPPHIRE 100591L-BK Radeon X300 128MB 128-bit DDR PCI Express x16 Video Card
Cheapo VGA card to get everything configured before I go headless
- Linkworld F3131-C2628-P4 Black/Silver Steel ATX Mid Tower Computer Case 400W Power Supply
I'm a bit concerned about the noise factor with a cheapo case, but if it turns out to be too much of an issue I can replace the power supply. I'm not sure where I'm going to put this server, but a closet location isn't entirely out of the question yet.
- NZXT HUSH Black SECC Steel/ Aluminum/ Plastic ATX Mid Tower Computer Case
I did a little bit of research and this machine was going to require a 500W power supply, so I decided to spend a bit more on a quiet and higher quality case
- SeaSonic S12 Energy Plus SS-550HT ATX12V / EPS12V 550W Power Supply
To go along with the quiet case, I added a quiet power supply. Bigger slower fans and the padding in the case should make this machine pretty silent. We'll see when it gets here.
- Sony NEC Optiarc Black IDE DVD-ROM Drive Model DDU1615/B2s
In all my excitement about putting together the server I almost forgot about an optical drive to install the OS! Maybe not the highest quality component out there, but for a one-time OS install a $20 DVD drive wins.
OS
I like ubuntu, but I want to get to know a few other linux distros as well. I haven't played with Debian much, so I think I'm going to give it a try. That or Gentoo, but Debian I think is going to offer me the wide support that I want and I've never met a disgruntled debian user.
My largest concern in deciding which Linux OS to use is the likely availability of application software for that platform, that and Not RedHat. CentOS is RedHat and that's nice, but my concern with RedHat doesn't have anything to do with any Anti-RedHat feelings of my own, it's just that because RH is so popular it is the biggest linux target for those looking for security breeches. Since there are plenty of other linux variants out there, I would prefer not to use the OS that happens to be wearing the biggest target on it's chest.
Personally, I'm not big on using packages for the big stuff. They are great when you need a dependent library installed, or if you want to get a desktop app going quickly and easily, but I prefer to go with the source and compile it myself for the most part. First and foremost - when security patches are released, they come out in the source first and in the packages whenever the package maintainers get around to it. Secondly, I have found in the past that the package maintainers generally get things compiled for general use and not necessarily in an optimal configuration for my own needs.
So from an application availability perspective, I suppose my biggest needs are: Oracle and MySQL. VMWare is a need, but there are other options and VMWare isn't an absolute requirement.
OK - so my decision has been made based on external software requirements. I'll be building this with CentOS 4 (which is basically RHEL 4). I could use a virtual machine to meet the CentOS requirement, but I decided it was time for me to start spending more time with RedHat and to get to know some of the new features.
CentOS ended up not being desirable because the install requires multiple CDs, which was more time than I wanted to spend this evening. Instead, I went with Ubuntu 64 as it was the easiest to get going. The machine is powerful enough that I can meet my CentOS/RHEL requirements in a virtual machine.
FileSystem
For the squid cache, a RAID array doesn't make sense and it would make sense to have a separate volume mounted without no atime being tracked. Perhaps I'll look into zfs, but for now I'm leaning towards reiser or ext3 for performance on that volume.
I'm also wondering if maybe I shouldn't add another hard disk to boot from. It could save my rear end if the RAID card ever dies.
