After deciding that I would use Sun Solaris and its ZFS file system as the foundation for a home fileserver, the next part was to select compatible hardware, as Solaris has fairly limited driver support for hardware.
After hunting around on the internet and the Sun Solaris Hardware Compatibility List, I decided on some hardware to make a Solaris/ZFS-based fileserver. Here’s an image that shows the design brief/constraints that were important to me (click it to view it full size) :
Finally, here is the list of components I finally chose and their prices in Europe around mid-January 2008:
So this choice of components gave a very quiet fileserver, about 1.4 TB of redundant data storage: 2 disks of ~692GB = ~1.4TB for data, plus 1 disk of ~692GB for parity data. It’s incredible that this marketing swindle is allowed to continue, where you always lose a substantial amount of space compared to the amount quoted on the case and in the advertised specs — where is the European Commission on this one, I wonder? I mean, you buy a 750GB disk and end up with 692GB — what a con!
ZFS works best with a 64-bit processor and lots of RAM, the more the better, apparently. I did tests with 2GB of RAM and it worked well, but as RAM is so cheap, I splashed out on 4GB of RAM to ensure I created a 100% kickass fileserver, where I can throw around vast amounts of data, especially video, without the machine sweating too much 😉
Let’s just run through the component list:
- Case: Antec P182: Not the cheapest case, but is superb quality, really quiet, has Antec TriCool fans, lockable front door (kid proof), front has 2 x USB2, 1 x Firewire 400 and audio ports. Inside, there is a 4 x 3.5″ drive bay that has its own wind tunnel chamber for efficient cooling of the 4 drives. Additional 2 x 3.5″ drive bay. All drives have silicone rubber grommets to absorb drive vibrations and prevent transmission to case chassis, making a really quiet machine.
- Power Supply: Enermax ELT500AWT Liberty 500W SLI: Not cheap, but is a high quality, rock solid, stable and efficient power supply, modular so you attach as many supplied cables as you need for drive power to 4-pin molex & SATA power connectors. Has additional SLI power connectors which I don’t use. All supplied power leads are protected from scratches/cuts with a plastic mesh shroud.
- Motherboard: Asus M2N-SLI Deluxe: Superb quality motherboard with 6 SATA ports powered by NVidia nForce 570 SLI chipset, additional 7th onboard SATA port powered by the JMicron JMB363 chipset which also powers an external eSATA port on the motherboard’s IO back panel, 2 x Gigabit ethernet network ports, Firewire 400, 4 x USB2, Audio etc. The motherboard allows re-flashing the BIOS from a USB stick/thumbdrive, which avoids using obsolete floppy drives. Nice!
- Processor: AMD Athlon X2 BE-2350: Chosen for its energy efficiency (45W TDP) and the fact that it’s a dual-core 64 bit processor (one of ZFS’ hardware requirements — 32-bit processors are not recommended for ZFS to work well).
- Memory: Kingston 4GB DDR2 800 ECC RAM (KVR800D2E5K2/2G): This is 2 kits, each containing 2 DIMMs of unbuffered ECC dual-channel memory. I chose ECC RAM as it can detect and correct single bit parity errors and it was only about 10% more expensive than the non-ECC memory, so it’s a bargain. As ZFS is all about end-to-end data integrity, let’s have some good RAM too 🙂
- Disks: Western Digital WD7500AAKS: I got 3 of these 750GB drives to give around 2.1TB of capacity, distributed as ~1.4TB for data and ~0.7TB for parity data (redundancy). The drives have excellent properties for low noise, low vibration, fast read/write speeds and they run fairly cool. I considered getting the Samsung HD753LJ drives but there were reports of variable quality batches, many DOA, some with vibration issues/loud noises (see newegg.com), and somewhere I saw some compatibility issues with NVidia motherboard chipsets. Also the Samsung drives were failing Samsung’s own drive diagnostic tool tests! Scary.
- Video card: Asus EN6200LE: Cheap, energy-efficient, passively cooled (quiet, as heatsink only) video card that works great. Only used for setup and configuration so doesn’t need to be fast — we’re not playing high-speed video games on this machine 🙂
- DVD-ROM: Samsung SH-D162C: Cheap DVD-ROM drive — only used to install Solaris, so no burner required.
I used a mouse & keyboard from my spare parts box to save money. Also, I used an old spare IDE disk (Parallel ATA) as the Solaris boot disk and root filesystem/swap etc, again to save money and make use of otherwise redundant old hardware I had lying around. The beauty of this is that the OS is completely separate from the ZFS data pool and this is important whilst I am experimenting with new Solaris builds as they are released. When a new release is available that gives some required bug fix or new driver functionality, I can simply reinstall the OS without zapping my data. When the new OS has installed and the machine boots, the ZFS data pool is recognised and auto-mounted. Nice!
With all the above hardware installed, with 3 drives for the ZFS data pool and the IDE boot disk running the OS, my power meter shows an idle power usage of around 115 Watts. This is more than I had hoped for, but here, I see that someone says that Solaris can not currently manage dual-core processors for lower power modes (CPU frequency scaling?). The guy says that the same hardware under Linux used 30 Watts less power, so hopefully Sun will fix this ASAP.
Overall, the machine using this hardware seems to run really well and performs well. The only thing that didn’t work under Solaris (SXCE snv_b82+) was the audio, but I don’t care about that at all.
Also the power management doesn’t yet seem to support suspend mode, but I understand Sun have a project underway to sort that out, so one day…
Once Sun also fix the dual-core power management to reduce the power to the dual-core processor when it’s idle, this will help in reducing power consumption too.
In the meantime, this is a great, well-performing machine which handles data in and out of the machine pretty quickly for a relatively cheap, general-purpose fileserver.
It’s possible to save about 300 euros off the above component list cost, by buying a combined case/power supply (- ~150 EUR), for example Antec NSK6580, using a cheaper processor (- ~30 EUR) and installing only 2GB non-ECC RAM (- ~60 EUR), plus the disks dropped 20 EUR each since I bought them (- ~60 EUR).
Now, I’ll move on to the software configuration and some useful Solaris and ZFS commands to help make this system work in the next part.