Making OpenSolaris into a storage appliance OS

With Sun’s recent release of their X4500 “Thumper” server which can be decked-out with up to 48 500GB SATA2 hard drives and two dual-core AMD Opteron CPUs and comes with quad gigabit ethernet, a new albeit currently infantile era of flexible storage platform has been born. Combined with the storage management capabilities of the Solaris 10 and a OpenSolaris-based OS, this unit can give pause to makers of the traditional RAID array or NAS appliance.

Reflecting on this, there are still just a few missing pieces of the puzzle that would make this box the Swiss Army Knife of data storage. At the same time, many formerly missing pieces are now in place. Let’s review:

What we have:

  • Solaris 10 / OpenSolaris, with:
  • ZFS – this represents the One True marriage of the disk layer and the data layer. It brings us what we’ve been missing (whether we knew it or not) in the area of hardware abstraction and volume management for the past 10 years, and so many other products (SVM, Vertias VM/FS) were close to but never crossed the finish line
  • Leadville – This is the Solaris fibre channel driver stack. High-performance and multi-pathing.
  • iSCSI Initiator – One of the best. In these times where FC switch ports cost waaay more than even gig-e switch ports, and FC HBAs still cost more than they should, mounting remote drives over iSCSI is the way to go
  • NFS server/client – pick your version. Any one of those that you pick is the best implementation of it in the industry, bar none.
  • SMB – Serve your data out with the flexible and familiar Samba server.

But, as I mentioned, I feel some important components are still missing:

  • A FCP Target and iSCSI Target server – Having either or both is completely neccessary in order to make a box such as the X4500 into a real contender with the NetApps and EMCs of the world. Now, the latter is already being worked on. It is said that the former can be a component of the latter. Work on this is promising, but it still needs time to mature.
  • And the last – and the main reason why I’m writing this post – an integrated CLI and Web UI that’s storage-oriented and can bind all those mentioned parts together into a flexible, intuitive storage configurator.

Why? As awesome as Solaris is and with the large number of options it provides, a person still has to spend quite a bit of quality time with this OS to learn the ins and outs regarding attaining a desired storage result. Mucking with a plethora of commands, this can be daunting. Think about NetApp’s CLI or Symcli. It shoud be easy. Point-and-click easy, if possible. So I’m proposing a project called Solaris Integrated Storage Commander.

My goal with this is to take all those underlying storage-related subsystems of Solaris (ZFS, format(1m), fcinfo(1m), cfgadm(1m), Samba, NFS, and so on) and abstract them into one consistent CLI and corresponding web UI. I’ve begun to sketch out some flow routines, and perhaps in the coming days I’ll put up a project page for SISC and refine the scope.

By the way, I would like to see SISC flexible enough to be of use on Thumpers as well as on the home-built system with a bunch of firewire or SATA drives plugged into it. Powerful storage for the everyperson.