Tuesday, January 1, 2013

Part 1: NAS and Backup Strategy

"Never let a good crisis go to waste."

People I work with have heard me utter that phrase many times. For instance, when that production server decided to come down, it's especially frustrating when you know there was some action you could have implemented to avoid the crisis all together: unless we do X, Y might happen.  X is usually a minor inconvenience/expense up front, almost always less than the potential Y, but X is never mandatory. Businesses go through these quite frequently, and it's no different in our personal lives.

The reality is, that in many cases, a crisis is the only way to change behavior and improve things for the better. It's funny how life works like that. 

Consider the following:
  • A burglar breaks into your house and steals your valuables.
  • Your basement gets flooded, your house burns down, etc. 
  • Your hard drive crashes and you didn't have a recent backup.
All of the above are unpleasant situations (of varying degrees, certainly) that usually result in not-so-fun consequences. 
  • "I should have installed that alarm system" ($40 / month vs. priceless things gone forever)
  • "Why did I wait to replace that sump pump?"  ($500 vs. $1000's in clean up costs)
  • "I wish I would have been more faithful about backing up my system" ($xx vs. priceless things gone forever)
Sadly, I speak from personal experience with the above items (with the exception of being burglarized). By nature, I am a planner as well. I like to do as much as I can to avoid a crisis. "Be Prepared" as the old Boy Scout motto says.

I've decided that 2013 needs to be different, so this year I'm trying to address a few things on the consideration list. The focus of this point forward is a follow up to a recent post: my backup strategy for 2013. And yes, I am somewhat reacting to a crisis, but fortunately that crisis was averted.

Backup Strategy

My backup strategy is fairly simple. In concept, I am going with the "defense in depth" approach. Wikipedia does a good job explaining the concept: the purpose is to "... defend a system against any particular attack using several, varying methods. It is a layering tactic, conceived by the National Security Agency (NSA) as a comprehensive approach to information and electronic security"

In the context of data, the "attacker" is not necessarily a person, but the construct still applies. My assumption is not a matter of "if" a hard drive will fail, but "when" it will fail. Since I've been using PC's with  hard drives since the late 80's, I've witnessed more than 5 hard drives physically bite it. This has been for a variety of reasons: lightning strikes, power outage/brownouts, old drives eventually giving out (ie, "click of death"), and within the last few years, a few drives to plain old crappy manufacturing / poor quality.

My strategy is thus quite simple: create many backups (>3) of stuff that is important, and have at least one of those backups off site. 

On a related note- if you're looking for some good write ups on backup strategies I recommend reading Scott Hanselman. Scott always has a lot of good tips and I've been following him for years. His articles are straight forward, to the point and make a lot of sense. Some of my tactics are derived from Scott's tips.

Tactical Approach

The strategy is pretty simple, but the tactics are where the rubber meets the road. There are SO MANY OPTIONS to choose from. Before I get into my specific plan, I'd like to give a little background into my thought process which will be in the form of recommendations.

First, think about your overall current state context. 
  • Type of devices you want to back up, thinking by OS if a computer is usually helpful
    • PC's
    • Mac's
    • Linux
    • Phones
    • Tablets
  • Use of Data
    • Small sized but critical data that you  frequently work on day-to-day and typically resides on your computer: source code (if you're a programmer), documents, spreadsheets, etc.
    • Large sized local critical data (if you're a creative type)- HD video WIP projects, photoshop files, etc. 
    • Stuff you want to share, such as videos, photos, etc with other devices eg Apple TV, Media Center, other PC's, etc.
    • Less important but sentimental things that just need to be archived somewhere (old emails, old work files)
    • Stuff that comes and goes (eg. DVR recordings from Media Center)
  • Priority of Data / Data Equality
    • High Priority: Stuff that is super important that you can't replace: family photos, videos, etc. 
    • Medium Priority: Stuff that you could rebuild if you had to, but would prefer not to (your OS install, program installs, rips of DVD's or Blu-Rays you own, iTunes/mp3 purchases)
    • Low Priority: Stuff that would be a minor headache if you lost: ISO disc images of programs, your downloads folder, DVR recording
  • Current Data
    • How much data have you amassed?
    • What extent of this is "high priority" data that needs a defense in depth approach to backup?
A good tactical plan should cover growth for at least the next 2-3 years. You may not have all the answers to the above, but it helps thinking through it. I spent a few hours sketching out the different types of data that  I have. I spent a week pondering my options, and several days researching once I had narrowed it down. Don't make a hasty decision- your data is at stake!

Now, on to the implementation.

As you might expect, one could spend a small fortune on implementing a backup strategy. Many corporations do this! However, most of us do not have the deep pockets of a corporation. I'm glad to say that there are still some good options out there for just about any budget.

I've already invested a lot into professional camera equipment. It is a passion, hobby, and much needed creative outlet- I film weddings, church events, kids sporting events, dances, and home videos to name a few. If I had set aside even half the money I've spent on my camera equipment I'd be able to rival the backup plans of most small businesses. However, I didn't do that- refer back to my opening remarks. :) Fortunately, my implementation will allow me to grow and adjust over time.

My overall implementation will look like this:
  • NAS (NOT a backup, but has redundant storage)
    • Choice of Nas: FreeNAS  
      • an Open Source software built on FreeBSD, for my SAN.
      • FreeNAS will allow me to use ZFS, which is a software based RAID. 
      • I will be using a RaidZ1 setup with 5 2 TB drives. RaidZ1 is very similar to Raid 5, meaning I will have good performance and good reliability. If one drive goes bad, I won't lose my data. (RaidZ2 is even better but higher cost / lower performance- two drives can go bad and you won't suffer any data loss)
  • The NAS will:
    • Store backups of all priority data across my network (with the source machines having my primary copy)
    • Store copies of backups for my Mac's 
    • Will serve as a work in process location for my video editing
    • Will be the primary storage used for video sharing
    • Should have steady performance of around 100 MB/sec (megabytes) read and write, with expansion up to 200-250 MB/sec using Link Aggregation
      • Side note: I need high performance because of my WIP video editing needs.
  • Mirrored 1 TB "poor man's backups" 
    • I will continue to copy the high priority stuff including photos, raw videos, finished videos to this drive.
    • Goal: discipline myself to copy my final videos to my dual backup until I automate my workflow to backup the high priority stuff from NAS.
    • In 3-6 months I will upgrade my mirrored 1 TB drives, send one of them to my parents (for off site backup) and upgrade to dual 3 TB drives.
  • Time Machine on Time Capsule
    • I will continue to use my Time Machine for backups of the Mac's we have
    • It is a 1.5 TB drive. It keeps incremental history and I can go back quite a ways
    • Since there is no disk redundancy, I want to back this up to the NAS as per above in case I lose it.
  • Blu-Ray
    • For archiving the high priority stuff
  • CrashPlan Cloud Storage
    • Because fires and floods happen, off site backup is required.
    • For about $120 or so a year, I will backup my high priority files to the cloud (active backup)
    • ALL data is encrypted
    • There is an option to "seed' the backup with 1TB of data for additional cost, otherwise it may take several weeks or even months to backup all my data.
    • If I want to recover, I can pay a fee to get 1TB of data sent to me.
    • If my family / friends sign up, I can store backups on their machines (based on what space they make available) if I so desire. I believe this is also encrypted. Another cool option for redundancy. I would gladly open up some space on my SAN for other friends / family willing to trade space.
  • SmugMug (also Cloud storage and paid site for photos/final videos)
    • I've been using this site for a little over a year. It's great for photo sharing and even videos, though there is a 20 minute / 8 GB limit on videos.
    • I don't put everything on this site, mostly stuff I want to share with others.  
    • Allows me to download all my photos in one zip if I ever need them.
    • Unlimited video / photo storage.
    • It's about $150 a year but price seems to go up frequently. 
  • A "Restore" Roadmap
    • On a related note,  my wife and I are going to set up a Will / Trust this year. It's not fun to think about, but you need to consider that someone else many need to recover the data. 
    • With all the trouble I'm going through to set this up, it would be a tragic waste if I didn't consider this.
  • APS UPS Power Supplies
    • In the event of a power outage:
      • I want to make sure my networking components, including Time Capsule is available.
        • I will use a APC 450 VA for this. I should have about 30 minutes of availability, which should allow enough time for things to shut down properly.
      •  My NAS needs to be on a UPS.
        • I will use an APC 750 for this.  Since the NAS will be headless, I anticipate about 30 minutes backup. FreeNAS can be configured to auto-shut down if the UPS signals that the power is out after X amount if time. I will be using this feature.
Why FreeNAS? Many reasons, but to summarize:
  • I looked at Synology, QNap, Buffalo and many other vendors. 
    • While the idea of just buying it and getting done with it appealed to me, the value proposition wasn't quite there. FreeNAS offers more features than most out-of-the-box. 
    • In my research, I also came across many forum posts (and even Amazon reviews) who had gone with a vendor device and ultimately decided to go FreeNAS because they had issues.
    • Performance also seemed limited (less than 100 MB/ sec) due to the crappy system specs in these units (ATOM processors, 512 GB Memory). Some people upgraded them and saw improvements, but lost the warranty.
  • Software Raid (ZFS) was designed with data integrity from the ground up. In most cases it's just plain better than hardware RAID. Much is written on the subject
  • RaidZ1 allows me to avoid the "Raid 5 write hole" while having performance and redundancy of traditional hardware Raid 5. (This basically means I should avoid corruption due to a power loss)
  • Overall price vs. other vendors seems to be slightly better especially when considering future growth.
  • There will be some learning curve, but the folks on the FreeNAS forums seem very helpful so far.
  • I really enjoy tweaking and computing is still a hobby for me. While some may shy away, this is an exciting challenge for me and I look forward to tackling it.
In Part 2 I will cover the specific hardware and installation of the FreeNAS. Stay tuned!


No comments:

Post a Comment