Introduction

Network Attached Storage and the portable, digital lifestyle

Steve Jobs may have declared 2003 to be the "year of the laptop" at Apple, but he was really riding a much larger wave of portable popularity that has been steadily building for quite some time. With a large and growing proportion of new computer purchases now being portables of some sort, more and more people are finding themselves with a laptop as their primary PC.

As I found out in November of 2001 when I took the Apple plunge and bought a 667MHz Titanium Powerbook, using a laptop as your main workhorse PC has its advantages and disadvantages. One of the biggest disadvantages is that it's not that easy to add storage. As a DIY PC system builder, I was accustomed to opening my case and popping in a second hard drive whenever I needed more storage, but with a laptop this isn't an option. My Ars articles, school work and personal documents take up a lot of storage space, especially since I'm a compulsive who has the first email he ever sent back in 1994 as well as loads of taped and digitized classroom lectures, scanned handouts, PDFs of websites created with Acrobat's Web Capture function, graphics, etc. And that was before I switched to the Mac and discovered iTunes--after that I started running out of storage pretty quickly.

I considered an external Firewire hard drive solution, but two main factors prevented this from being a viable option. First, I like all of my data to be available to me anywhere there's an Internet connection. Using my home broadband connection I host my own website on a Cobalt Qube 3 Pro, a wonderful little box that also serves as my broadband router and my LAN file server. This means that I can log in to the Qube via SSH and grab anything I need ? homework, articles, music, movies, etc. ? from anywhere I can get a 'net connection. This makes it painless for me work away from home, which means that I can throw my laptop in a bag and go to the library ? or home for Christmas ? without having to worry about syncing up versions of documents and/or leaving behind data that I might end up needing access to. (For syncing my TiBook to my Qube 3, I use Chronosync. It's a great tool, and I highly recommend it.)

If I started putting data on a Firewire hard drive connected to my Mac, then what would I do if I were somewhere and had neglected to pack the drive? Or, what if I had left both the drive and the laptop at home and I needed access to something on my file server? With my current setup I could get into my server from any 'net-connected PC with a web browser and an FTP client; this wouldn't be the case if data were sitting on a firewire disk attached to my Mac.

The second problem is that I want all my media to be accessible via my LAN, without having to unpack my laptop and plug in a Firewire drive. I still use my Windows XP-based desktop PC for a lot of things, especially media. (It's nice to be able to play movies on my 19" monitor.) So I want my media files to be constantly and easily accessible over both my LAN and the Internet.

The clear answer for me was network attached storage (NAS), but the question was in what form?

For a while I tried using my XP box to host my media files. The problem is that XP doesn't exactly play well with Samba, which is what my Mac and my Qube both use. I had problems with dropped connections and other headaches, all of which made it clear that my XP desktop just wasn't cut out to do double duty as a NAS server on a heterogenous LAN like mine.

I then started thinking seriously about building a small form factor (SFF) Linux box and using that for a NAS device. It had to be SFF, because at the time I was living in one bedroom of a four-bedroom apartment, so I didn't exactly have a lot of space for multiple towers. I made a few news posts about SFF computing and NAS and was contacted by the folks at Snap Appliance to see if I wanted to review their product. After checking it out on the web, it seemed like a perfect fit for my needs so I told them to send along a review unit.

Introducing the Snap Server 1100

The review unit I was sent is a Snap Server 1100, a small server about the size of a brick. The 1100 is the smallest and least expensive in a product line that goes all the way up to much more elaborate and costly enterprise NAS solutions. Strictly speaking, the Snap Server is called a "server appliance" because it works kind of like a microwave or a CD player ? you plug it into the wall and into the network, turn it on, and use it. And having used it for the past two months I can attest to the fact that it does indeed live up to the "appliance" moniker. It's always on, always accessible, requires zero maintenance, is relatively silent (you can hear the hard drive sometimes), and always works. It is actually the single most hassle-free computing device I've ever used, and that includes things like my Qube (I have to keep it patched because it's online) and my iPod (occasional lock-ups, updates, etc.).

The Snap Server's hassle-free nature is due mainly to its simplicity. Functionally, it's basically an 80GB hard drive with a 10/100 Ethernet port on it, and then the absolute minimum amount of hardware and software thrown in to enable you to access that drive from a variety of network clients. That other hardware and software are what make the Snap Server interesting, so let's take a closer look at them.

The Snap server uses a Pentium 166MHz with 64MB RAM, which is extremely modest (to say the least) by today's standards. But in practice the hardware works quite well for this particular application. It's very low power, which means that the hard drive is the hottest thing in the unit. Thus only a small, silent fan is needed to cool the entire appliance.

Snap Appliance rolled their own OS, the SnapOS, for use in the server. The SnapOS was originally based on a FreeBSD kernel, but the SA engineers stripped out support for all the stuff that a headless NAS unit wouldn't need, like video, printing, keyboard, mouse, and the like. So the OS is extremely lightweight, with no unsed parts to take up unecessary memory and/or accidentally break.

The networking subsystem of the SnapOS supports the following transport and file transfer protocols through a mix of Samba and custom coding. (This info, along with much more detailed info the networking capabilities of the Snap Server, is available in this general datasheet and in this SnapOS datasheet.)

Network Transport Protocols

TCP/IP

IPX

NetBEUI

AppleTalk

Network File Protocols

Microsoft Networks (CIFS/SMB)

Novell NetWare (NCP)

UNIX (NFS)

Apple (AFP)

WWW (HTTP 1.0)

File Transport Protocol (FTP)

For CIFS/SMB support, SA started with Samba 1.4 and added their own extensive modifications to support NT error codes, opportunistic locking and NetBEUI. The AFP and IPX support was written from scratch, as were all the drivers and the BIOS for the 1100.

Speaking of the BIOS, the OS and bootstrap code are stored partially in flash and partially on the hard drive. So the box won't boot with a third-party hard drive installed. This lack of hackability is the price you pay for all the custom work.

My one gripe about the Snap Server's hardware is the lack of Gigabit Ethernet. I use the Snap Server to store my iTunes library, as well as all my movies and other media files. Anyone who's ever tried to manage an iTunes library over 100Mbit Ethernet knows that it can require some serious patience, especially if you're editing ID3 tags in batches (e.g. to change the genre lables of 100 or so songs at once.) Also, syncing files to my iPod is bottlenecked by the 100Mbit connection, which is why I only do it once in blue moon. But for playing songs via the TiBook, which I have plugged into my stereo system, and for watching movies the connection is more than adequate.

(Note that I'm told by the folks at Snap Appliance that we may see Gigabit Ethernet in a future version of the Snap Server.)