Finish NAS post

This commit is contained in:
Wesley Moore 2012-01-21 17:09:55 +11:00
parent dc8dde9009
commit b82a7ab706
8 changed files with 114 additions and 38 deletions

View file

@ -1,81 +1,131 @@
TODO: Add photos ## Summary
Recently the Time Machine drive on my Mac Pro started to randomly Here's the tl;dr version: I sold my Mac Pro to fund building a home
NAS. The result is a HP MicroServer with 4Gb RAM and 3 × 2Tb hard
drives running FreeBSD from the system drive and a ZFS pool across the
three 2Tb drives. Total cost: AU$731.67.
## Rationale
Recently the Time Machine drive in my Mac Pro started to randomly
disappear and Mac OS X would say that I had removed it improperly, 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 which was not true given it was an internal drive still inside the
machine. machine.
I'd seen this behaviour before and in that case it resulted in the drive I've 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. 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 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 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 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. 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. The Mac Pro wasn't getting used for much since I got a i7 powered Mac
Its main duties involved storing my iTunes library, Aperture library and Book Pro. Its main duties involved storing my iTunes library, Aperture
running my weather logger. It wasn't exactly a very energy efficient machine library and running my weather logger. It wasn't exactly a very energy
to run all the time. It would in fact keep the study warm overnight when the efficient machine to run all the time. It would in fact keep the study
door was closed. warm overnight when the door was closed during winter.
There was also a problem with replacing the failing drive: I couldn't afford 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] 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 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 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 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], 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 [illumos], [FreeBSD], [FreeNAS] or [SmartOS]. The requirement to run one of
these OS's ruled out an off the shelf NAS appliance. these OS's ruled out an off the shelf NAS appliance.
[ZFS]: TODO [ZFS]: http://www.opensolaris.org/os/community/zfs/
[alix]: TODO [alix]: /2011/12/openwrt-on-alix/
[Solaris]: TODO [Solaris]: http://oracle.com/solaris
[Illumos]: TODO [illumos]: https://www.illumos.org/
[FreeBSD]: TODO [FreeBSD]: http://www.FreeBSD.org/
[SmartOS]: TODO [SmartOS]: http://smartos.org/
[FreeNAS]: https://www.illumos.org/
I did a lot of research into different ways to build the machine and 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 tried out all the OS options in virtual machines. I considered using
basic PC hardware, MiniITX, HP MicroServer, etc. Each had its own pros basic PC hardware, MiniITX, HP MicroServer, etc. Each had its own
and cons. The basic PC approach was possibly the cheapest but it was the pros and cons. The basic PC approach was possibly the cheapest but it
largest. MiniITX was more expensive and choice of multi hard drive bay was the largest. MiniITX was more expensive and choice of multi hard
cases were limited. I ended up settling on the [HP Proliant MicroServer] drive bay cases were limited. I ended up settling on the [HP Proliant
running FreeBSD. MicroServer][microserver] running FreeBSD.
[microserver]: http://h10010.www1.hp.com/wwpc/hk/en/sm/WF06b/15351-15351-4237916-4237917-4237917-4248009-5163345.html [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 <script type="text/javascript" charset="utf-8">
$(function () {
var alt = $(document.createElement('img')).attr('src', '/images/2012/01/_MG_0581.jpg');
$('#inside-outside-view').toggle(function() {
$(this).attr('src', alt.attr('src'))
}, function() {
$(this).attr('src', '/images/2012/01/_MG_0582.jpg')
});
});
</script>
<figure>
<img id="inside-outside-view" src="/images/2012/01/_MG_0582.jpg" width="600" height="600" alt="" />
<figcaption>The end result. Click/tap to toggle inside view.</figcaption>
</figure>
<figure>
<img src="/images/2012/01/_MG_0583.jpg" width="600" height="600" alt="" />
<figcaption>CD for size comparison.</figcaption>
</figure>
<figure>
<img src="/images/2012/01/_MG_0584.jpg" width="600" height="600" alt="" />
<figcaption>Oblique view (excuse the finger prints).</figcaption>
</figure>
## The Build
The MicroServer is a neat little unit. It uses a low power dual core AMD
Turion II CPU and comes with 2Gb ECC RAM and a 250Gb HD. I has 4 non-hot 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 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 mine with an extra 2Gb or RAM as ZFS likes to have plenty of RAM available
to run well. to run well.
During my reesarch hard drive prices sky rocketed due to the floods During my research hard drive prices sky rocketed due to floods
in Thailand, however I was able to get some at pre-flood prices from 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 [ht.com.au][ht]. They have since put the price up ~$40 and placed order
limits on them, so I got in at the right time. limits on them.
For the drives I chose 2Tb Seagate Barracuda Green's. They feature SATA 3 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 and a 64Mb cache and run at an atypical 5900RPM. These drives seemed to be
a good balance across energy efficiency, noise, performance and price. a good balance across energy efficiency, noise, performance and price.
[ht]: http://ht.com.au/ [ht]: http://ht.com.au/
The final parts list ended up being the rater diminuative: The final parts list ended up being rather diminutive:
* 1 &times; HP MicroServer (658553-371) + 2Gb extra RAM $336.82 * 1 &times; [HP MicroServer][microserver] (658553-371) + 2Gb extra RAM $336.82
* 3 &times; 2Tb Seagate Barracuda Green Hard Drives $394.85 * 3 &times; [2Tb Seagate Barracuda Green Hard Drives][hard-drives] $394.85
[hard-drives]: http://www.ht.com.au/cart/1/part/V0531-Seagate-Barracuda-Green-ST2000DL003-hard-drive-2-TB-SATA-600/detail.hts
The total cost ended up being $731.67, healthily under budget. The total cost ended up being $731.67, healthily under budget.
Installng FreeBSD and setting up the ZFS pool was very <figure>
straightforward. I'm running the drives in a RAIDZ configuration, <img src="/images/2012/01/IMG_0097.jpg" width="600" height="600" alt="" />
giving 3.6Tb of usable storage. I currently have two ZFS filsystems <figcaption>Installing the extra RAM.</figcaption>
on that. One in a normal configuration and the other for photos with </figure>
`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 <figure>
<img src="/images/2012/01/IMG_0098.jpg" width="600" height="600" alt="" />
<figcaption>Installing the hard drives.</figcaption>
</figure>
## Software
Installing 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 file systems
on that. One in a normal configuration and the other for photos with
`copies=2` set.
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 the brand new drives failed and started making a terrible clicking, beeping
noise. Fortunately HT replaced it very promptly and the replacement has noise. Fortunately HT replaced it very promptly and the replacement has
been running fine since. During the time the failed drive was out for been running fine since. During the time the failed drive was out for
@ -84,3 +134,29 @@ 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 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. onto the new drive and all it has been running well since.
$ zpool status
pool: storage
state: ONLINE
scan: resilvered 1.07T in 9h32m with 0 errors on Tue Nov 29 07:13:29 2011
config:
NAME STATE READ WRITE CKSUM
storage ONLINE 0 0 0
raidz1-0 ONLINE 0 0 0
ada1 ONLINE 0 0 0
ada2 ONLINE 0 0 0
ada3 ONLINE 0 0 0
errors: No known data errors
After setting up the OS and file systems the only other thing I
needed to so was make the storage available to other machines on the
network. Since my house is all Macs I built [netatalk] via the FreeBSD
ports collection to make the storage available via <abbr title="Apple
Filing Protocol">AFP</abbr>.
[netatalk]: http://netatalk.sourceforge.net/
With that done it's the sever shows up in the Finder via Bonjour and
copying/accessing data is dead simple.

View file

@ -1,9 +1,9 @@
--- ---
title: Home NAS Powered by FreeBSD and ZFS title: Home NAS Powered by FreeBSD and ZFS
extra: TODO extra: Building a home NAS with a HP MicroServer running FreeBSD and ZFS.
kind: article kind: article
section: technical section: technical
created_at: 2011-12-08 17:57:00 created_at: 2012-01-21 17:08:00
keywords: keywords:
- zfs - zfs
- freebsd - freebsd

Binary file not shown.

After

Width:  |  Height:  |  Size: 142 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 119 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 96 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 86 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 65 KiB