wezm.net/content/technical/2011/12/freebsd-zfs-powered-nas.html

87 lines
4.1 KiB
HTML
Raw Normal View History

2011-12-11 06:14:40 +00:00
TODO: Add photos
Recently the Time Machine drive on my Mac Pro started to randomly
disappear and Mac OS X would say that I had removed it improperly,
which was not true given it was an internal drive still inside the
machine.
I'd seen this behaviour before and in that case it resulted in the drive
being replaced due to its inability to complete a short S.M.A.R.T.
scan. This drive (also a Samsung) was suffering a similar problem except
that initiating the S.M.A.R.T. scan would actually cause it to disappear
from the SATA bus. A check on the Samsung site showed that the drive was
out of warranty so I was up for a replacement.
The Mac Pro wasn't getting used for much since I got a i7 powered Mac Book Pro.
Its main duties involved storing my iTunes library, Aperture library and
running my weather logger. It wasn't exactly a very energy efficient machine
to run all the time. It would in fact keep the study warm overnight when the
door was closed.
There was also a problem with replacing the failing drive: I couldn't afford
to do so. So I decided to move the weather logging to my [ALIX board][alix]
and sell the Mac Pro to fund building a home NAS. I was able to sell the
Mac Pro very quickly on eBay for $1500 but gave myself a budget of $1000 for
the NAS. I wanted the NAS to have reliable redundant storage, which for me
meant [ZFS]. This implied the new machine would need to run one of [Solaris],
[Illumos], [FreeBSD], [FreeNAS] or [SmartOS]. The requirement to run one of
these OS's ruled out an off the shelf NAS appliance.
[ZFS]: TODO
[alix]: TODO
[Solaris]: TODO
[Illumos]: TODO
[FreeBSD]: TODO
[SmartOS]: TODO
I did a lot of research into different ways to build the machine and
tried out all the OS options in virtual machines. I considered using
basic PC hardware, MiniITX, HP MicroServer, etc. Each had its own pros
and cons. The basic PC approach was possibly the cheapest but it was the
largest. MiniITX was more expensive and choice of multi hard drive bay
cases were limited. I ended up settling on the [HP Proliant MicroServer]
running FreeBSD.
[microserver]: http://h10010.www1.hp.com/wwpc/hk/en/sm/WF06b/15351-15351-4237916-4237917-4237917-4248009-5163345.html
The MicroSever is a neat little unit. It uses a low poert dual core AMD
Turion II CPU and comes with 2Gb ECC RAM and a 250Gb HD. I has 4 non-hot
swappable hard drive bays all packaged up in a squat little box. I ordered
mine with an extra 2Gb or RAM as ZFS likes to have plenty of RAM available
to run well.
During my reesarch hard drive prices sky rocketed due to the floods
in Thailand, however I was able to get some at pre-flood prices from
[ht.com.au][ht]. They have since put the price up $40 (TODO) and placed order
limits on them, so I got in at the right time.
For the drives I chose 2Tb Seagate Barracuda Green's. They feature SATA 3
and a 64Mb cache and run at the atypical 5900RPM. These drives seemed to be
a good balance across energy efficiency, noise, performance and price.
[ht]: http://ht.com.au/
The final parts list ended up being the rater diminuative:
* 1 × HP MicroServer (658553-371) + 2Gb extra RAM $336.82
* 3 × 2Tb Seagate Barracuda Green Hard Drives $394.85
The total cost ended up being $731.67, healthily under budget.
Installng FreeBSD and setting up the ZFS pool was very
straightforward. I'm running the drives in a RAIDZ configuration,
giving 3.6Tb of usable storage. I currently have two ZFS filsystems
on that. One in a normal configuration and the other for photos with
`copies=2` set. I plan to try out enabling ZFS deduplication on the
former filesystem soon.
So the system all ran well for a few days however on the forth day one of
the brand new drives failed and started making a terrible clicking, beeping
noise. Fortunately HT replaced it very promptly and the replacement has
been running fine since. During the time the failed drive was out for
replacement the ZFS pool continued to run fine in its degraded state, with
no data loss. Once the new drive was installed it was a simple matter of
issuing `zfs replace ada1` and it began the process of resilvering the data
onto the new drive and all it has been running well since.