Friends Don't Let Friends Use eSATA

Over the last year I have come to a simple conclusion: friends don’t let friends use eSATA.

First, a bit of background: my disk needs aren’t that excessive, but I generally want at least 3 main types of partition for a SOHO server build: a system partition (mirrored with LVM), an encrypted data partition, and an unencrypted data partition. That’s an easy 4 - 8 drives, depending on size, speed, and so on; for my personal server it’s currently 4.

Over the last year or so I’ve been moving away from the great-big-case-of-drives model for this (apparently making me an Apple-level design intellect). There are a bunch of reasons, but the ongoing irritation of dealing with swapping, cooling, and powering drives are the main, err, drivers. This came to a head when adding a drive to an array and having the power supply (which was rated as adequate for the task) decide to give me an entertaining time of it by running just low enough a level of supply to cause what looked an awful lot like random drive failures.

Boy, was that hilarious.

At that point I swore enough, and decided to go a different path: external enclosures. There are bunch of things to love about multi-disk external enclosures. I can expand more-or-less arbitrarily simply by chaining more enclosures off the back of the server. Each enclosure has its own cooling and power supply, scaling with the number of drives I need, but without having to upgrade the server case or PSU to do so. Initially I looked at eSATA, thinking it would bet the logical choice; instead it was a learning experience. And not the good sort.

eSATA’s many shortcomings include:

  • The base standard doesn’t actually allow for mapping multiple drives per eSATA port1.
  • The extended standard does allow for it, but the port sharing schemes are hilariously shit2. The best of them is… a clone of the USB switching mode.
  • Plenty of chipsets claim hardware support for port multiplication, but don’t ship working drivers or documentation so anyone else can use them.
  • Chipsets aren’t required to support any of this to claim eSATA compliance.
  • And even if your hardware and software notionally support everything required, there’s no guarantee the silicon in your SATA adapter and the silicon in the drive interface will play nice. But they’ll advertise that they work, in theory.

To call this a shit sandwich is grossly defamatory to purveyors of excrement-laden wheat products.

A couple of years ago this is where I’d have thrown my hands up in disgust and muttered in astonishment something about not being able to believe it possible to come up with something even worse than the experience of working with SCSI setups in the 80s3. But now there is an answer.

USB 3.

Imagine my surprise. USB 2 wasn’t terrible, I guess, but I’d never use it for anything more than, say, backup drives. I certainly wouldn’t consider it for sticking 4 drives in an external enclosure and RAIDing them up, not least because it would be throwing most of the performance away. But I read some encouraging things about USB 3 enclosures and bit the bullet. And lo, I have been delighted. With a NEC PCIe-1 HBA I can easily sustain 120 MB/s with a pair of SATA Barracudas, with nary a driver glitch.

…all of which is, I guess, a roundabout way of thanking Sarah Sharp (and friends) for her work in making the USB 3 drivers for Linux robust and fast enough that I no longer give any fucks about battling with old (SCSI), expensive (SAS), or crappy (eSATA) ways of attaching arrays of disks to SOHO servers.

  1. I don’t trust the RAID on cheap external cans. Actually, I don’t trust most hardware RAID full stop; anything that doesn’t come with battery backup4 is probably atrocious short-run junk built on whatever chipset was lying around. And even if it’s decent, three years later when the card fails you’ll be finding out the hard way that you can’t find a replacement that understands the on-disk format that your disks were RAIDed with. So sad, you have backups, right?
  2. Fixed switching allocations that don’t adjust for load is one option. WAT.
  3. Yes, really. Sacrificial goats, magical black terminators and all.
  4. And, let’s face it, some proportion of stuff that does.