mirror of
https://github.com/wezm/wezm.net.git
synced 2024-12-18 18:29:54 +00:00
Finish NAS post
This commit is contained in:
parent
dc8dde9009
commit
b82a7ab706
8 changed files with 114 additions and 38 deletions
|
@ -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 × HP MicroServer (658553-371) + 2Gb extra RAM $336.82
|
* 1 × [HP MicroServer][microserver] (658553-371) + 2Gb extra RAM $336.82
|
||||||
* 3 × 2Tb Seagate Barracuda Green Hard Drives $394.85
|
* 3 × [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.
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
BIN
output/images/2012/01/IMG_0097.jpg
Normal file
BIN
output/images/2012/01/IMG_0097.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 142 KiB |
BIN
output/images/2012/01/IMG_0098.jpg
Normal file
BIN
output/images/2012/01/IMG_0098.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 119 KiB |
BIN
output/images/2012/01/_MG_0581.jpg
Normal file
BIN
output/images/2012/01/_MG_0581.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 96 KiB |
BIN
output/images/2012/01/_MG_0582.jpg
Normal file
BIN
output/images/2012/01/_MG_0582.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 76 KiB |
BIN
output/images/2012/01/_MG_0583.jpg
Normal file
BIN
output/images/2012/01/_MG_0583.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 86 KiB |
BIN
output/images/2012/01/_MG_0584.jpg
Normal file
BIN
output/images/2012/01/_MG_0584.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 65 KiB |
Loading…
Reference in a new issue