joshua0: (Default)
[personal profile] joshua0
Solaris has had an obvious joke about it for years. Well, the joke changes by the year, but the message is always the same. "The best kernel 2010 has to offer -- the best userland 1980 has to offer." But, you know, I've been working with it over the past week setting up a system for a few friends to share in colocation, and for all the times I find that joke to ring true, there are just as many times I've been finding myself saying, "Man, I'm glad I'm not doing this on Linux".

So, in brief, here are a few of my observations running an OpenSolaris 2009.6 system. The machine has a 60GB mirrored root ZFS pool named rpool, and a ~4.2TB RAID-Z1 (that's RAID-5 to the rest of you) user data ZFS pool named storage. And, because no review, no matter how silly!, is complete without a wankerous listing of hardware specifications, I'll also note that the machine that I'm playing with has 8GB of ECC DDR2 and a Core2 Quad Q6600.

I suspect that the first true joy of OpenSolaris to be mentioned is ZFS. Not just the filesystem on disk, although I am a firm believer in the layout of the filesystem, but what I find most enjoyable about ZFS is the mechanisms by which one manages it. This is an overarching theme that I've found in the system; in particular, "say what you mean!". Let me give an example:

$ zfs set compression=on storage/storage/backups/joshua

I want to set a property (namely, transparent data compression to on) of a zfs filesystem, and I want the property to be inherited all the way down. Say what you mean. Some contrasting mechanisms for this sort of thing might be (fictitious):

$ mount -o remount,compression=on -t something storage/storage/backups/joshua /storage/backups/joshua

or maybe:

$ echo on > /sys/fs/something/storage/storage/backups/joshua/properties/compression

Really, I don't want to do anything files or echoing to files, and I certainly don't want anything to do with how the filesystem is mounted! What I want to do is do something to a zfs filesystem; and that's exactly what the first command is telling me.

A stranger thing that happens with ZFS is that it can also manage various other parts of the system. For example,

$ zfs set sharenfs="sec=sys,root=@208.100.30.93,rw=@208.100.30.93" storage/storage

exports the storage/storage volume -- and all subvolumes -- so that the bloomy VM can get at them. I'm not sure I aesthetically like this being part of the ZFS command, but it has made my job as an administrator much easier!

Speaking of NFS, OpenSolaris's NFSv4 interoperated pretty much out of the box with the Linux VM on the machine (far and away unlike what happened when I tried this with FreeBSD). I needed to set the NFSv4 ID mapping domain, though; the command for that had a very familiar syntax:

$ sharectl set -p nfsmapid_domain=emarhavil.com nfs

Just like that -- and without touching anything further, my Linux VM instantly got the user IDs mapped properly. I was relieved not to have to touch configuration files, or guess at which services to restart (is it /etc/rc.d/nfs? /etc/rc.d/nfsshare? what are the dependencies?). On the other hand, this does make me a little uneasy -- if something went wrong, I could not tell you where that value is stored, and I have absolutely no idea how I'd fix it.

There are other things that I really like about Solaris, like the way services are run (no /etc/init.d or /etc/rc.d; service status is accessed with svcs, and service administration is done with svcadm, which automatically brings everything up in order, etc...), and boot environments (ZFS snapshots of a root filesystem that are done automatically before beginning an upgrade; this has saved my ass at least once!). In general, it's a joy to administrate. But, to be fair, I should at least point my laser pointer at the elephant standing in the room... namely, the package manager.

root@moroso:~# time pkg install bogus_package
Creating Plan /
pkg: The following pattern(s) did not match any packages in the current catalog.
Try relaxing the pattern, refreshing and/or examining the catalogs:
        bogus_package


real    0m10.174s
user    0m2.748s
sys     0m0.416s
root@moroso:~#

What the fuck. The package manager really is slow as dirt. It appears to have been built as Yet Another Package Manager for absolutely no good reason. Seriously, guys, why not use... apt? Or... ports? Or... I don't know, fucking anything except for IPS? Here's the other horror story about the packaging system: you can only get security updates if you pay Sun some ($130 or so, I think) fee per year to get access to the /support repository. If you don't want to do that, you're stuck with /dev (it's like Debian unstable, except it's actually unstable -- half the releases break your machine) or whatever was shipped at release.

But I'm such a huge fan of the rest of the modern features in OpenSolaris -- well, as long as I put /usr/gnu/bin in my path -- that I'm willing to put up with the Image Packaging Shithole. Maybe I shouldn't be so willing, but getting day to day administrivia done is so easy that it almost outweighs the remaining bits of 1980.

Almost.
Date: 2010-02-02 07:21 pm (UTC)

From: [identity profile] rincebrain.livejournal.com
To be fair, several things are worth noting here.

1) Solaris started shipping the GNU tools in the default install [not as the first thing in the PATH, but in the default install] sometime in the last 18mo.
2) Btrfs is really the most analogous comparison you could make to what ZFS on Linux would look like, or ZFS-Fuse, and in either case, you use a specific tool to cause things like compression to happen*
3) FreeBSD NFSv4 support is known experimental, and marked as such, last I checked.
4) FreeBSD jailing of ZFS filesystems is equally nice, if not better, depending on what you want (nwf has better details).
5) The package manager is new in the last year, and still uses the ancient Solaris pkg backend with a nice GUI on it.
6) I didn't know that tidbit about /support - I'm deeply amused, since I thought that oSol didn't have that requirement, but Sun has been doing that game for years, with Solaris 10 and prior.
7) Did they ship the rewritten installer yet, or did your install CD start an X session to start an xterm to run a console installer in?

* - you can also use mount -o, I understand, in the btrfs case.
Date: 2010-02-02 11:48 pm (UTC)

From: [identity profile] rincebrain.livejournal.com
Sure, I just wanted to offer my impressions.

As far as I can tell, you can only use mount -o in the btrfs case.
My mistake, I didn't get very far in muddling with it before I hung the code. Though apparently this was just a problem with every version before that day's GIT. *sigh*

I thought it was said to be working in 8.0? Either way, NFSv3 was also broken incredibly hard.
I haven't seen anything that claimed NFSv4 to be working in FBSD8, but *shrug*.

How is v3 broken? It seems sane to me.

pkg was recently rewritten entirely in Python
Well, now I've got no excuses for it to be so damn slow. I thought it was like yum on rpm, where it was still using the same backend.

Interestingly, you actually can get security updates for free with S10... just not oSol.
Really? You can't for Sol <10...you can get the Sol10uX updates for Sol10, but not the tiny packages, AFAIK, without a support contract or similar.

Rewritten installer. The console installer no longer exists.
Thank fucking god.
Page generated Mar. 30th, 2026 04:50 am
Powered by Dreamwidth Studios