Like many other folks, we've got a small server at home which runs nameservice for our personal domain along with mail and even a webserver from time to time. To my shame (or just as a testament to my laziness/ability to leave things alone which Just Work), it had been happily running FreeBSD 2.2.mumble for over a decade. Yes. The 2.2 branch. Before modern conveniences like ELF as the default binary format, and an MT kernel. Taking a moment to pause and laugh at the antiquity of this part of my home infrastructure is entirely appropriate.
In my defense, the NFS server has been running Solaris for a very long time. Laptops run OpenSolaris, of course. We had also bought a small shuttle box quite a while ago with the intent to retire the FreeBSD box in favour of Solaris. Just never quite got around to the migration.
Yesterday morning, I received a phonecall from a friend saying that my email had been bouncing for days. Sure enough, the nameserver wasn't serving, and the machine wasn't pinging. Not much could be done about the problem from work, so after we're home around 8:30pm, I trundle down the basement stairs to the console and find the system wedged. Hard. There was no response to the keyboard, many bizarre messages from various drivers on console. All attempts to soft-reset the system failed, and I power cycled. Unsurprisingly, a fsck of the filesystems was required. / and user data responded favourably to fsck -y, but /var was totally scrogged. Rather than spend time trying to nurse it back to health, figured we'd see how quickly we could switch to the new hardware and OpenSolaris.
Fortunately, by 1am the system was installed with OpenSolaris build 111 from http://pkg.opensolaris.org/dev, configured, nameservice configuration was migrated, and I learned enough about postfix to get it up and running rather than trying to migrate ancient sendmail configuration.
Details were fairly straightforward. pkg search -l in.named revealed that SUNWbind was already installed. No big deal to migrate that config, and svcadm enable dns/server.
There's no IPS package for postfix yet (and I really hope that Ceri will have the time to integrate mailwrapper, as described in PSARC 2008/759). System V packages for third-party software work great on OpenSolaris, so I would have used the lovely postfix package distributed by Ihsan Dogan, but it's compiled against a different version of libssl than we have in OpenSolaris. Downloaded the postfix source, pkg uninstall SUNWsndm; svcadm disable sendmail; svcadm disable sendmail-client, pkg install SUNWgcc, and the compile was quick and clean. To keep the software manageable, though, I did use his makePostfixPkg script to create my own package which I could install and remove at will. After pkgadd of the new package, configured main.cf, svcadm enable postfix, and mail was back online too.
It's really nice to be on OpenSolaris and a sensible upgrade path, with planned biweekly pkg image-update. But right now, I'm mostly reveling in the safety of a mirrored ZFS root. Should have upgraded a long time ago.