April 10, 2009 -
To store our documents, invoices, etc. we needed a good ol' file server connected to our network, or rather, a network attached storage (NAS). We had a few requirements, like:
- Cheap, say 500 euros
- Lots of megabytes
- Easy network access from Windows and MacOSX
- User management
- Some fault tolerance
- Backup solution
- Server can be used for other purposes, like Subversion repositories and able to backup other servers
- Quiet (since it will most likely be in our office)
Okay, that's quite a list. We cannot find all this in a standard NAS-solution. Most of them, with our pricetag in mind, are between home-use and small company products. The home-use products are basically external harddisks with a network connection but are slow and not very configurable. The small business servers are just relatively expensive. Let's build our own! Here's what we come up with:
We don't need a lot of processing power, so we choose a decent, yet cheap and energy efficient CPU. It's capable to handle all the file transfers we'll ever need but we took this one for those "other purposes" that we can come up with. We put in 1 GB... okay, memory is really cheap... 2 GB of memory. Lots of megabytes are provided by 2x 1 TB disks which came up as best buy in numerous tests. We picked 2 so we can create a RAID-1 array to comply with our fault tolerance desire. If 1 disk goes down, we're still up and running.
We place all these components on a motherboard that has a gigabyte ethernet port, raid support and a video controller (handy for initial installation, and in case of problems). To meet the requirement to be quiet, we choose a bit of an expensive casing that is used for HTPCs. It looks slim and doesn't make a sound.
- 2 GB memory (2x1 GB Kingston ValueRAM, DDR 667, ECC) -- € 25,-
- AMD Sempron LE-1250, 2.2 GHz -- € 29,-
- 2x 1 TB disks (Samsung SpinPoint F1, SATA-300, 7200 RPM, 32 MB buffer) -- 2x € 77,-
- Antec New Solution NSK1380 Case -- € 96,-
- Gigabyte GA-MA74GM-S2H motherboard -- € 51,-
Price tag: € 344,-
Note: The motherboard we choose has a small problem with time synchronization under Linux. The motherboard is able to lower its power usage but this also affects the speed of the clock the way it is done in the Linux kernel. A solution to this problem is offered here.
Looking at backup solutions, we considered using Amazon's S3 or tape streamers. Tapes are not so 2.0 as we'd like to think we are and quite expensive. Also, our experience with tape software, restoring and the devices itself are not so good. So, Amazon's S3. We doubted, since it's cheap and very 2.0. Yet, we were not comfortable to put our "important" documents in some cloud on the internet. Harddisks are not so expensive anymore, so we looked at mobile harddisks. We found pretty decent ones and they're fast, easily accessible, not too big in physical size and got quite a lot of megabytes. We took 2 so we can rotate them.
- 2x Seagate FreeAgent Go, 320 GB, extern 2.5", USB -- 2x € 76,-
- Seagate FreeAgent Go Accessory Pack (dockingstation) -- € 12,-
Price tag: € 164,-
We got no money left for this. Not that we intended to spend any on this part, although time is not cheap either. We considered just using Ubuntu or Debian. We're both familiar with these distributions but they are not really made to serve as a NAS, and installing, configuring, etc. just takes so long.
Some Linux distributions/appliances are specifically made to serve as a NAS. We looked at, what seems, the two most popular ones: FreeNAS and Openfiler. Both have recent builds and an active community. Searching on Google you can find many comparisons. We choose Openfiler because it has many more features compared to FreeNAS and is faster at serving files.
Since it's a storage appliance software package running on the rPath Linux distribution, we can modify it to our desires and install almost anything (even though you really shouldn't -- we do it anyway).
I'll discuss the installation and configuration of Openfiler in another post.