Nexenta != "Ubuntu on OpenSolaris"

To read the many glowing reviews of Nexenta, would lead one to believe that they took Ubuntu, and slapped in the good essentials of OpenSolaris (namely the amazing ZFS).

First let me disclaim that I don't mean to disparage the good folks at Nexenta, nor the accidental spreaders of misinformation working in tech journalism and active members of tech forums. Although Nexenta themselves don't go to great lengths to technically explain the limited nature of their hybrid product (as of writing), they also don't deliberately misinform.

The misinformation comes in part from tech journalism, blogs like this, and tech forums.

So what is Nexenta?

Nexenta is none of the following

  • OpenSolaris on Ubuntu
  • Ubuntu on OpenSolaris
  • OpenSolaris with an Ubuntu kernel
  • Ubuntu with an OpenSolaris kernel
  • OpenSolaris with Ubuntu userland tools

That last, oft-repeated phrase is arguably the closest to being technically accurate, but still very misleading by itself.

Nexenta is all of the following

  • A late OpenSolaris dev build (from before Oracle bought Sun), with some additional custom bug fixes and enhancements from the Nexenta community themselves.
  • Some GNU userland utilities ported and/or recompiled for OpenSolaris.
  • The apt-get repository system from an older version of Ubuntu, ported and recompiled for OpenSolaris.
  • A comparatively small collection of applications and tools, ported and/or recompiled for OpenSolaris, available through the Nexenta-specific apt-get binary repository database.

Many references, reviews, and especially forum posts about Nexenta innocently mislead (if not negligently mis-state) the notion that Nexenta can run the whole gamut of Linux applications available in the Ubuntu apt-get repository. That is not true. Let me restate:

Nexenta cannot run applications compiled for Ubuntu or any flavor of Linux.

...Whether available from the Debian or Ubuntu apt-get repositories, RMP, Yum, or any other Linux binary repository. (And by "Linux" I am of course aliasing the more technically correct phrase "a GNU/Linux distribution".) Furthermore, getting applications written for Linux to run on UNIX is not generally as trivial as it might seem (for starters Solaris uses different C libraries). It is not necessarily a simple matter of recompiling the same source code on different platforms.

Nexenta's commercial enterprise products and appliances may very well be appealing to enterprise customers (but certainly not because of anything Ubuntu-ey or Linux-ey about them). So my thoughts below don't really apply to that class.

Nexenta Core Platform ("Nexenta CP" or "NCP") is the free, open-source, GUI-less base product. Make no mistake: after installing, you have a UNIX installation. Specifically, an OpenSolaris installation along with all of [Open]Solaris' advances and quirks over more legacy-ish UNIX variants. Oh, and you also have the apt-get binary package manager, and a handful of GNU utilities typical common to Linux distros.

In no way, shape, or form do you have Ubuntu or anything remotely like Ubuntu.

The end result is an often times confusing mishmash of Linux and UNIX commands to contend with. While you can set an option that gives you a mostly "pure" set of OpenSolaris commands (and I highly advise you use it), the opposite is not true: You cannot expose a "pure" (or even mostly) set of Linux commands.

I could see Nexenta CP v3 potentially appealing to casual users new to UNIX-like operating systems. Perhaps ironically, hard-core administrators/developers who are fluent in both [Open]Solaris and GNU/Linux, will probably be the group most frustrated by Nexenta (at least until they switch it into "Solaris-only flavor").

The only way to configure the core system, including network interfaces, disk drives, etc. - is via [Open]Solaris commands. There are generally no Linux equivalents.

Perhaps the most unfortunate set of expectations with Nexenta CP, is that you can install an Ubuntu GUI on top of it. You can't. With considerable effort, you can (and I did) install the X-Window system, and GNOME (and even GDM). It might superficially resemble any other GNOME installation (e.g. Ubuntu...or [Open]Solaris), but it is a woefully incomplete GNOME implementation. Furthermore, you cannot really manage the system with the provided GUI tools, as your options are very limited compared to an Ubuntu or [Open]Solaris build. If you need or wish to run a web browser and a terminal that supports cross-app copy and paste (e.g. GNOME Terminal emulator), you're better off SSH'ing in from some other client anyway (say Linux, Solaris, Mac, Windows, Commodore, iPhone, Android...etc.). In other words, it probably just isn't worth the time to get a GUI working on Nexenta. (Of course, in order to SSH in you have to have a working network configuration first. That may or may not be automagic [pun intended].)

And now for the good

As long as you go into Nexenta CP understanding its true nature, there are plenty of nice things about it to like, such as:

  • The Nexenta CP v3 text-based installer is competent and solid. (Much easier than, say FreeBSD's installer.)
  • The installer can optionally put the root system on a bootable mirror - rather than having to hack one together after the fact (as with [Open]Solaris [Express] 2009.06 and 2010.11). Nice!
  • Nexenta CP v3.0.1 supports ZFS ZPool v22, which includes deduplication (but not yet encryption as with ZPool v30 and later). It is a higher ZPool version than ZFS on FreeBSD 8.1 (v15), but not as high as Solaris 11 Express 2010.11 (v31 which supports encryption), or even ZFS on FUSE (v28).
  • Unlike the NexentaStor CE product (free but limit of 18 TB) or NexentaStor trial (45 days), the Core Platform product has no limitations - well, besides not including the NexentaStor web GUI and some other nice enterprise features. However, many free third-party tools exist to (arguably) bring Nexenta CP up to grossly approximate parity with NexentaStor in terms of features.
  • While the repository is slim compared to a typical Linux distribution, the Nexenta port of apt-get is apt-get - which means it does a good job of managing dependencies, unlike [Open]Solaris' pkg_* utilities which does not (nor claim to).

Bottom line: A more accurate Nexenta CP product positioning statement

Nexenta: It's like OpenSolaris - but with a better package manager, some ported Linux applications available through it, and a handful of GNU utilities thrown in; all without a useful GUI.

Hope that clears a few things up!

Appendix