Update: 29/1/17 – This is all old. Currently I’m using a HP Microserver and FreeNAS. Server Wise, FreeNAS is glorious for a NAS compared to OpenSolaris.
At the moment for storage, I use a set of external hard drives for storing all my data.
On my MacBook, I have: 500gb + 500gb + 200gb + 300gb External Firewire drives and a 500gb internal drive. This was going good for me, except for a few issues:
1. In the middle of the night drives would randomly spin up, unless they were positioned perfectly the hum would go through the wall and straight to my bed. This got annoying.
2. There is no redundancy in any of my drives, if a drive fails, I’ve lost all my data.
3. My music drive is only 200gb, I have more than 200gb of music, so my music collection is split into multiple places.
4. All the other computers in the house link through mine for music/movies. All our stored TV Shows (recorded through the media PC) get stored on my external drives and then accessed through the network. If I take my laptop to work, then there’s no access to movies.
5. Firewire is being phased out on the Mac Laptops, I’m due for a new laptop early next year and it most likely won’t have firewire, leaving me with no access to my drives.
So, because of all these issues, I decided to build myself a new server.
Now, I could run off and grab myself a nice HP ProLiant DL380 server for a mere $5,900 (plus extra for the drives). I’ve worked with similar servers at my work, but they’re loud and overkill for what I want to do.
I decided to do a bit of shopping around to see what I could get, I used my 2 main sources of cheap parts, umart and PC Case Gear. Difference between the two is that PC Case Gear has awesome support, a bigger range, faster shipping and and nicer looking website (but is a tad more expensive).
Now, the parts. I decided to go with an AMD Board and CPU, I’ve already built 2 Core2Duo machines and I HATE the way the CPU heatsink clips on, if you’ve ever had to push something onto a motherboard while watching the board flex as you do it, you know exactly what I’m talking about.
CPU: AMD Athlon 64 5200+AM2 – Price: $87
I went as cheap as I could on the CPU, anything new enough can handle what I had in mind for it.
RAM: Corsair DDR2 Twin2X 6400C5 4gb – Price: $68
Corsair makes great quality, fast ram. For what I had in mind, 4gigs would be enough. This comes as 2x2gb sticks. Note that the speed is 800mhz and not 667mhz, so it’s not the slowest stuff. (The motherboard will support upto 1200mhz ram, if I could afford it).
Motherboard: Gigabyte GA-MA780G-UD3H AMD780G FSB5200 4DDR2 1200OC VGA PCIE2.0 GbLA — $143
I’ve generally always cheaped out on motherboards, this time I didn’t so much. It has onboard Video, 4 slots for Ram, Gigabit LAN, 6 SATA plugs and something I didn’t know it came with, but is great, was the fact that the board uses 2oz copper, I don’t know exactly what they mean by that, but the board is thicker than usual motherboards and doesn’t bend anywhere as easily as the cheaper ones do. It also has high quality capacitors, so it *should* be a durable board. Note that the board has no fans on it, this means it will run silently.
Case: Antec Three Hundred Tower Gaming Case – Black — $104
I could have gone as cheap as I could on the case, but I’ve learned that having a good case will keep everything running together smoothly and quietly. The case also comes with 2 12cm fans (the bigger the fan, the more air it can move, the slower it has to run and all that means the fans can run silently).
Power Supply: Corsair VX-450 450Watt Power Supply – $125
This was the only part I bought from PC Case Gear, as I couldn’t find a suitable one from UMart. I actually wanted the 400Watt version of this, but they wouldn’t have it in stock till later this month so they gave me the option of getting this one instead. You should always make sure it has enough connectors for what you want to do, I was planning on running at least 4 SATA Drives on it, this PSU comes with 6 (perfect).
Hard Drives: 2x Seagate SATAII NCQ 7200RPM 32mb Cache 1tb – $159ea
1xSeagate SATAII 7200RPM 32mb Cache (earlier model) 1tb – Already Owned
1xWestern Digital SATA2 5400RPM 32mb Cache GreenPower 1tb – Already Owned
I already owned 2 of the drives and had them sitting in cases that I was using for long term storage, I cleared them off and shuffled data around till I could have them empty to use in the server. I didn’t realise one of the drives was 5400RPM, and I suggest against doing this, one 5400RPM drive could slow down performance for your entire raid.
Postage: umart – $39
PC Case Gear – $17
The umart order got posted with fastways. I got a message from umart saying they’ve shipped my order at 8pm one night, at 7:20am the next morning the order arrived at my door.
The PC Case gear order took 2 days to arrive.
As for setting everything up, it was relatively pain free. There was a screw hole on the motherboard that wouldn’t line up with anything on the case which was a little dissapointing. The case was pretty solidly built (some cases you can easily flex the metal of the case).
If you go to use an Antec case with the bottom mounted PSU, you should probably check to see if the cables from the Power Supply are long enough, because I got the umart order earlier and was just waiting on the power supply to test it, I tried to put a cheap powersupply in but the cables weren’t long enough to fit.
As what happened with the last machine I built, the cable for the power light on the case has a 3 pin plug (with only the two outside pins being used) but the motherboard will only let me plug in a 2 pin plug. I really with someone would set a proper standard for this as it’s happened to me twice. I ignored it, connected the power light to the hard drive activity light so I can at least see when the computer is turned on. At a later stage I might rewire the connector so I can plug everything into where it’s supposed to go.
The CPU heatsink felt a little dodgy going on, I may have done it slightly wrong, but when I did get all clipped on it felt sturdy (unlike previous Core2Duo heatsinks that felt like they weren’t clipped on properly).
Getting all the Hard Drives in took a while to get it all neat, carefully folding cables and moving everything around until it fit right. I also used a 40gig IDE Drive as the system drive. I was hoping it wouldn’t affect performance too much, it seems ok. (note, I carefully tested the drive for all forms of errors before using it, if you’re planning on using an old drive for anything, you should always use Spinrite or HDD Regenerator to test for errors (1 or 2 errors is reason enough to throw it out)).
I didn’t put in a CD Drive, I’m planning on borrowing a CD Drive from another machine to install the OS, after it’s installed I won’t need a CD Drive for running it.
System and Software
Now, for the system I wasn’t sure what I wanted to use for the OS. I knew I wanted to raid the drives together some how to add some redundancy in, I also wanted to have the system usable for other purposes as well (like web hosting, ssh access etc).
I had done a load of research on different raid levels, and I decided on using a RAID-Z, this is very similar to a RAID-5, where you get: Drive Size * (Number of Drives – 1) of usable storage space. In my case with 4x1tb drives: 1tb * (4 – 1) = 3tb of space.
This setup means that any one drive can fail without the system going down or any sort of data loss.
To use a RAID-Z, I need to use a form of Solaris, I chose OpenSolaris, it’s free and Open Source. It’s not exactly Linux either, it runs differently in a few ways. Though a lot of the commands are still the same.
I had some trouble getting the network sharing to work right, I followed a few different guides but found this one to be pretty good. If you’re going to do something similar, I suggest you do a lot of reading about everything so you know what you’re trying to do.
Now for some numbers 😛
Transferring from my Mac to the Server, I get upto 60MiB/s, I get around the same from my Windows Vista Ultimate machine (Over gigabit ethernet).
On the server end, the network peaked at about 91MiB/s with both the Mac and the PC transferring files to the server. Compared to my Firewire drives, this is getting near double the theoretical maximum of Firewire. (Firewire does 400Mbit/s, a theoretical max of 50MiB/s, in practice I get upto 40-45MiB/s over Firewire).
Using the command: “yes > crapfile” on the server resulted in the drives being written to at upto 140MiB/s. Thus, with the gigabit connection to the server running at a max of 91MiB/s, the hard drives are no longer a bottleneck. (I don’t know how reliable the “yes > crapfile” command is, but it seemed to do the job pretty well 😉 )
Here’s a screenshot of the server during transferring data, note that the CPU usage is nowhere near being maxed out, the RAM is maxed out due to RAM caching, but it isn’t affecting the network speed so everything seems to be handling it well.
The server is currently in testing phases at the moment, I still need to set up permissions, reformat the machine to be 64bit (the version I’m using for testing was actually installed on a Pentium 4 then I moved the drive to the server machine), set up Apache/MySQL/PHP as well as build a web interface for administratrion. In the future I’m also working on building the comptuer into a “Home Server” machine that will handle as many things as I can think will be cool 😛
I figured I’d add, I named the computer Zoe, after a character from the TV Series called Caprica (currently there’s only a pilot released). I called the Raid “Caprica” too 🙂
In conclusion, I’m very happy with all the parts for the server, there’s still a bit left to work out software side too though.
The total cost for it all was: $585.84 without drives
With 4x1tb drives the cost is: $1221.84 (that’s $636 worth of drives)