Installation
OpenSolaris is installed from a live-CD, a concept popularised by Knoppix and now employed by many Linux distributions. It's a considerable improvement upon the Solaris installer that we've become so familiar with in the past.



Installation is very straightforward. Pick a disk, set the timezone, set the root password, enter the name of a user and it then installs itself on your disk.


That said, there's not all that much flexibility to the installer. You can't choose the layout of the filesystems, and you can't install the operating system mirrored across two disks, although, it's fair to say that ZFS makes the first issue somewhat redundant (no more fixed partitions) and the second trivial to deal
with.

The CD boot screen gives an option of a text-console view, but once booted, there doesn't appear to be any way to install the operating system without starting up X. If there is, it isn't documented particularly well. It would be a shame to omit this functionality, because - on Sparc at least - being able to install a server entirely from a serial console line is one of the best features of the old Solaris installer.
First boot
One of the first things I noticed, once booted, was that the default install of a Opensolaris box still has some of the issues that dogged Solaris in the past; far too many services running and no firewalling (although it's nice to see that ipf is now provided to do this, if necessary. The ipf firewall was always one of the first things I installed on a new Solaris server).
It's interesting to note that, even after all these years, Sun
still does not appear to like the Domain Name System; the nsswitch.conf file is configured so that hostname lookups only look at the /etc/hosts file, and completely ignore DNS.
The default mail agent is still sendmail; frankly, I think this is a bad idea, as there are a number of considerably better mail agents available today, and OpenSolaris gives Sun a chance to move away from sendmail permanently. Worse still, sendmail is listening on an external port, which is simply asking for trouble.
OpenSolaris doesn't have anywhere near the range of drivers available for it that Linux does; I found a couple of key devices in my PC didn't work at all. Firstly, the live-CD couldn't see my motherboard's SATA controller, and nor could it see the onboard Marvell Gigabit ethernet. This would be understandable if the motherboard was a recent release, but it's three years old. Basically, I was left with little choice other than to use a PATA disk. Fortunately, the ethernet issue was solved - there's an independent driver (skge) available for the interface (although one wonders why the OpenSolaris people haven't included it themselves).
Desktop
OpenSolaris uses Gnome as the default desktop, as was the case with Solaris 10. It's nice to see that CDE has been done away with completely - and all the better for it.
The default colour scheme is pleasant enough; far better than that provided by Ubuntu, but otherwise nothing out of the ordinary. The usual smattering of standard Gnome utilities and marginally entertaining games is provided, although they are slightly older than those that came with recent releases of Ubuntu, Fedora and OpenSuSE.
Firefox 2 is the default (and only) web browser supplied; with a release so close to the launch of Firefox 3, it's a shame they couldn't have provided beta versions of the newer product, as was done with Ubuntu, because Firefox 2 will become obsolete very rapidly now.
For email, there's a choice of either Thunderbird or the perpetually frustrating Evolution (which managed to hang when I first attempted to use it). Nothing particularly exciting here, both applications work as one would expect them to.
Oddly enough, OpenOffice isn't provided on the installer CD; presumably this is due to space considerations, but it would have made a nice showcase for Sun if it had been included. Nevertheless, packages are provided via the installer system, so it's just a matter of waiting for it to download.
There was one really niggling annoyance that I had. For some reason, I couldn't get the DHCP client working (which is most likely my fault, and that's not what I'm complaining about), and every time I logged into the box, a message popped up on the screen telling me about this, and I had to respond to it before I could proceed any further. Now, as far as I'm concerned, this is sort of behaviour should have been abandoned along with Windows 3.1. Sure, notify me, preferably in a small popup box down in the bottom right-hand corner that I can ignore, but please, don't force me to acknowledge it every time I log in!
Command Line
It's great to see that many GNU utilities are now standard in OpenSolaris and that the default PATH includes them before any of the legacy Sun utilities. Most of these are vastly more powerful than their legacy Solaris counterparts (just compare GNU tar with Solaris tar, for example).
Unfortunately, it's only a limited set of utilities, and there's a number of omissions - for example, GNU findutils, leaving the user with the maddeningly ancient Solaris find command.
Sadly, OpenSolaris is continuing what appears to be becoming a tradition in each new Solaris release, of deprecating configuration files and replacing them with new cryptic commands that store their configurations in binary files. Even ZFS mostly does away with /etc/vfstab, although it's still necessary to have a few filesystems listed there (notably, the root filesystem, swap, /dev and /proc).
A brief glance tells me that /etc/inittab has been done away with and replaced with the confusing Solaris Management Facility, /etc/inetd.conf is replaced with inetdadm, and even the /etc/{init.d,rcX.d} files are on their last legs.
I consider this to be a regression for a couple of reasons. There's considerably less risk of error when a system administrator has to edit a file and send a SIGHUP to a daemon, than if they have to issue a command to reconfigure a service. It's easy to create a backup of a configuration file before it is modified, and to later copy it back in if something goes wrong. This is problematic when forced to use commands to modify services. What files do these commands modify? How does one back-out of changes?
Furthermore, if a system is hosed, and you're in single-user mode trying to recover it, it's usually simple to work with configuration files. Editing /etc/vfstab in a console is trivial. The same can't be said of scanning the output from commands trying to make sense of a system's current setup; and if the command manipulates a binary file (as is the case with /etc/svc), the sysadmin has very little idea what's going on under the hood.
ZFS
ZFS is a radical departure from the standard file system handling that has been provided with Solaris in the past; ZFS provides not only a new filesystem for the OS, but a volume manager and software RAID facilities too.
Gone are fixed partitions; instead, you can create millions (well, 2^64, to be more precise) of filesystems within a pool, and resize them on demand. Linux users will be somewhat familiar with some of these concepts via LVM, but ZFS leaves LVM for dead. Having spent an entire weekend putting new disks in my LVM-on-RAID1 Linux systems and wasting much time trying to copy across the OS and data without resorting to a complete reinstall, I can see how much easier ZFS would have made the process.
Mirroring the system disk is simple; no more messing around with Disksuite and having to reboot, it's just a matter of running
zpool attach rpool c3d0s0 c3d0s1 and bang, your mirror is running.
That said, it's not all goodness and light with ZFS. One major issue that I have with it is that it has no support for user or group quotas - by design. The idea here is that you're meant to create a completely separate ZFS filesystem for every user (which, of course, ZFS can easily handle) and then impose a limit on the size of each filesystem. So this means, if you have 10000 users on your system, you're going to end up with 10000 filesystems, which will make the df command next to useless for getting a quick overview of the state of your filesystems. I guess that's just a matter of aesthetics and is something I'll just have to put up with.
More importantly, however, are the speed issues that arise from this. As a test, I tried creating 10000 users and a filesystem for each. Now, I'll freely admit that I don't have the fastest computer around (2005-era Athlon 3200 with 1Gb of memory), but even so, I should reasonably expect to be able to serve files to that many users from this system with adequate performance; however after about five minutes, it had only created around 300 or so filesystems. I hope that this is just a bug, not the usual performance of ZFS, because it will need to do better than that, if I have to do without user quotas.
I decided to run
Russell Coker's
Bonnie++ benchmarking tool on this system, while running a combination of Linux (ext2, ext3, xfs, reiserfs) and Solaris (ufs, zfs) filesystems:
Version 1.03c ------Sequential Output------ --Sequential Input- --Random-
-Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP /sec %CP
linux-ext2 2G 39096 91 49561 8 21307 4 39380 82 47634 5 169.7 0
linux-ext3 2G 36127 87 41850 12 21125 5 38900 82 48127 5 163.6 0
linux-reiserfs 2G 35495 89 46021 16 21645 6 38810 83 48127 7 163.5 0
linux-xfs 2G 41750 92 50572 11 22701 5 42736 86 49102 5 168.7 0
solaris-ufs 2G 42781 50 41972 9 7216 2 47894 60 49450 9 141.9 0
solaris-zfs 2G 25941 26 27586 6 17993 4 47917 56 50466 3 208.3 0
------Sequential Create------ --------Random Create--------
-Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
files:max:min /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP
linux-ext2 16 4804 96 +++++ +++ +++++ +++ 4894 93 +++++ +++ 17388 99
linux-ext3 16 +++++ +++ +++++ +++ +++++ +++ +++++ +++ +++++ +++ +++++ +++
linux-reiserfs 16 +++++ +++ +++++ +++ 24398 83 +++++ +++ +++++ +++ 27329 100
linux-xfs 16 344 1 +++++ +++ 311 1 365 1 +++++ +++ 246 1
solaris-ufs 16 8169 32 +++++ +++ 15370 55 14912 52 +++++ +++ 1694 9
solaris-zfs 16 24000 93 +++++ +++ +++++ +++ 18323 99 +++++ +++ +++++ +++
The +++ symbols indicate where an operation took less than 500ms to complete, and hence bonnie won't give an accurate result. As can be seen, there's a bit of a performance hit taken by zfs over ufs when writing files, although it's fairly even for reading.
Package Management
Critics of Solaris's package management system have a little bit to cheer them up; although OpenSolaris still uses the same cryptic, inflexible system that Solaris always has, it does have a new graphical and text frontend.
Alas, the graphical frontend is next to useless; poorly designed, slow and quite painful to use. I stuck with it for about five minutes, until I realised that it was nowhere near flexible enough for my needs. It didn't even appear capable of showing information about packages that were available in the repository, but not yet installed, which - to me - appears to defeat the purpose of having a package manager at all.
The new command-line frontend, however, is a definite improvement upon the regular Solaris packaging tools. Installing and updating packages is simpler than ever before - almost Debianesque. Almost. The tool is clearly powerful - but is, unfortunately, rather needlessly complex. Just getting a listing of the contents of one package requires this:
pkg contents -t dir,file,link,hardlink -o action.name,mode,pkg.size,path,target SUNWzfs
Compare this to the simplicity of 'dpkg -L' under Debian, or 'rpm -ql' under Redhat.
Where it really shines, however, is its ability to integrate package upgrades with zfs, and perform them within a snapshot of the existing system. This, called an image-upgrade, allows the system administrator to backout of an upgrade easily, if necessary. And it certainly came in handy, when an issue with the upgrade process caused my server to become unbootable; going back to the original installation image fixed this easily.
Zones
Solaris Zones are a simple, low-overhead approach to virtualisation. If you've ever played with Xen under Linux, you'll know just how painful it can be to set up. It took me only 25 minutes to get a working Solaris Zone up and running, from scratch, with no prior experience in having done this.
It's even possible to create a zone as a ZFS clone of the host operating system, so that the guest zone uses very little space at all - the only extra space used is that which needs to be different from the host.
The light overhead of Solaris zones comes at a price however - not all operations are allowed within a guest zone, and certain kernel operations (even something as simple as mknod) won't work.
Conclusion
There's a lot to like about OpenSolaris 2008.05, especially if you've come from a Solaris background. If, on the other hand, you've come from a Linux background, you may find yourself fairly unimpressed with the various niggles, lack of drivers and annoyingly old set of command-line tools. Nevertheless, I found that OpenSolaris is a marked improvement upon Solaris 10, and especially from a server point of view, and look forward to seeing its features rolled out in the forthcoming Solaris 11.
If you found this article helpful, consider making a donation to offset the costs of running this server, to one of these addresses:
Tracked: Jul 25, 07:29