Thursday Dec 18, 2008

My Home Media Server on OpenSolaris + ZFS: Part 1

A couple of people gave me some good pointers after my last blog entry, in which I was saying that doing an ssh or vncviewer into my new OpenSolaris installation was taking a while.  They pointed out that it may be reverse DNS lookups, not something about the OpenSolaris box itself, and that reminded me that recently I had changed something else about my home network setup: I had two hubs/routers active.  So, that mystery's solved; things are looking much better now and doing an ssh into the OpenSolaris box doesn't take so long.  Moving on...

My mission: use the current release of OpenSolaris (2008.11) as the basis for the main fileserver for home.  Right now, we've got several computers that have external disks attached to them for extra storage (music, photos, movies, etc.) and I want to centralize that for a couple of reasons:

  1. Friends of mine lost their house to a wildfire; fortunately, they had stored all of their critical data on a single computer with lots of disk so when they had to evacuate the house they grabbed one box and didn't lose any critical data.  Laugh all you want; when The Big One comes, I want to be ready.
  2. I'd like to simplify the administration of our home machines.  This is home, for goodness' sake; I don't want to be hiring a system administrator to keep our stuff in order.
I'll document here what I'm doing to build the home server.  My intent is to use OpenSolaris, use ZFS to manage the disks and files, and to do it with a cheap computer that I build myself from off-the-shelf parts (as opposed to, say, buying a Dell computer).  Besides, I want to put a bunch of disks in that computer and it's hard for me to find a cheap computer from Dell or HP with a bunch of internal drive bays, but you can pretty easily buy a reasonable computer enclosure with plenty of internal drive bays.  Building yourself can save money, and I'm all about saving some money on this.

But first, I'm going to try this out on a computer that is known to work with OpenSolaris.  I'll get the setup running there to make sure that ZFS + OpenSolaris really is as easy and reliable as I think it is.  Once I'm convinced that works, I'll switch to my cheapo computer and see if OpenSolaris runs on that.

So here goes...

Step 1: Data Protection

I have four disks: two 1TB drives, two 1.5 TB drives.  I'll split the larger drives into two partitions: 500GB for the operating system and the remaining TB for the big bucket-o-storage.  (let's call it my media pool: ZFS pool used primarily for storing audio, video, and photos)

So my first decision to make is: how should I have ZFS protect my data against disk failure?  After all, I'm buying consumer-grade disk drives but the server will be on 24/7.  The disks will fail.  I don't want to lose my data just because I don't want to pay extra for more reliable disks.  I want the software (ZFS) to take care of the problem for me.  I start by looking at the ZFS Best Practices Guide to see what my options are.

I'm considering three options for ZFS protecting my data:
  1. mirror
  2. raidz (shorthand for "raidz1", meaning 1 error can happen and I don't lose data)
  3. raidz2 (meaning 2 errors can happen and I don't lose data)
The guide points me to this blog entry by Roch Bourbonnais which tells me that the tradeoff I need to make is space versus performance: mirroring gives me maximum performance but cuts my disk storage in half: 4 TB of storage over 4 disks would take 50% overhead to protect the data by mirroring, leaving me a 2TB storage pool for storing movies, photos, music, and the like.  I don't need super-high performance but I want as much usable space as I can get out of my disks, so I choose raidz which should give me about 3TB of usable space; I lose 1TB to data protection, which sounds fine to me.  Later, I may buy a fifth disk and use raidz2 to give me even more robust data protection, but I'm not going to do that right now.

Now that I've decided how to protect my data, I just need to create the appropriate partitions on the larger disks, and I'll be ready to install the OS.  I'll document that in my next blog entry.

Powered by ScribeFire.


The views expressed on this blog are my own and do not necessarily reflect the views of Oracle. What more do you need to know, really?


« July 2016