Thinking about Changing UNIXes
Traditionally, whatever version of UNIX I’m running hasn’t mattered all that much to me. I’ve used a lot of them - a number of Linuxes, FreeBSD, Solaris 7, and adapted pretty much successfully to all of them. They have their quirks, but generally they all work pretty much the same.
I’ve actually got the most experience with Debian Linux, which is funny because I’m actually qualified (a long time ago) in Solaris. Right now I’m running RHEL4, which I didn’t choose for any particular reason - didn’t have much experience with it at the time, heard it’s pretty reliable, and since the price of it was included with my dedicated server I thought I’d give it a try.
But I’ve never particularly liked RHEL - while highly reliable, it’s too conservative for me. It can be months, years or never before updates to popular software becomes available - software which is highly reliable, but which never seems to become available for Red Hat. Just recently I had a considerable amount of difficulty updating Apache to 2.2; there’s no good reason this wasn’t made available for RHEL4. Apache is pretty much the gold standard for stable, well tested OSS and I was annoyed I had to basically illegitimise my RHEL4 system to get it installed. One wonders, if you have to step outside of the supported software included with your OS to gain necessary functionality, what’s the point of using that OS in the first place?
Admittedly, my needs are pretty far removed from the “Enterprise” presumably targeted by Red Hat Enterprise Linux. My upgrade was spurred by my need to accommodate Rails applications - hardly time-proven “enterprise” software! But that’s what I’m saying here - I’m not an “enterprise”, don’t have “enterprise” priorities, and am thinking about moving away from software targeted to them. My main priority isn’t covering my ass with name-brand software. It’s having highly reliable, but cutting edge, software.
The “cutting edge” thing I want the most right now is, of course, OS-level VM support. I’m at the point where I’ll need to toss my hat into the ring with one of the major VM solutions sooner or later. That’s my reason for not just sticking with my hacked RHEL4.
With the release of RHEL5 six months ago, a number of key systems have been updated, including VM support. I could perform a full reinstall of RHEL5 on my current server, get all the new software I need, and return to the “support garden” which is the whole point of RHEL. But I’m thinking - that’s all well and good right now, but what happens when I need to upgrade again in 6 months, and Red Hat hasn’t gotten around to approving the software yet? Seems like me and Red Hat just have fundamentally differing needs in an OS. I wonder whether I’m not better served just choosing something else.
As always, what the “something else” should be is far from clear. RHEL5, as mentioned, has VM support but I don’t like its backporting philosophy, which could be summed up as “no backports that aren’t security necessities!”. Sun Solaris has some nice things like ZFS, VM support (”zones”) and java nicely built in (seems the best solutions for hosting Rails could well be Java-based soon) but lacks a good package manager. Debian has the best package management system around but is a bit .. weird, in the “this OS is stuck together with gaffer tape and chewing gum” kind of way. Ubuntu Server has apparently made a lot of progress but I can’t see any reason it’s better than Debian if you don’t need the GUI, which of course I don’t. FreeBSD is of little interest to me at this point, same with Gentoo or any of the portage-style time-wasters. I don’t have any experience whatsoever with SUSE, Mandrake, Slackware, or any of them, and don’t plan to get any without a very good reason.
Right now I’m basically thinking it should be RHEL5 or Solaris.
RHEL5 Pros:
- Well known, easy to find documentation, software is targeted to this platform
- I know how to set it up and use it, and mostly trust it
- Decent package management system (yum in RHEL5)
- Mostly up to date, for now
RHEL5 Cons:
- update strategy incompatible with my own, as detailed above. I don’t care if the OS is still supported in 15 years’ time, I want the new shit, within reason
- I do not like or trust EXT3 and want to move away from it
- I do not have strong confidence in Xen (RH’s favoured VM system) - witness the emergency security update from just a couple of days ago - doesn’t smell mature to me
- Costs money, which may matter if I start buying more servers and leasing them privately. Could always use CentOS I guess.
- Packages available extremely limited compared to other unixes - can only be solved by compiling from source, removing the point of using RH in the first place, or using 3rd party repositories, again removing the point
Solaris Pros:
- I kind of remember how to use it, mostly. I can add users, anyway
- Heaps of good tech, active development. Specifically ZFS, Sun’s LDAP server, java preinstalled, Zones (Solaris VM) are supposedly excellent, dtrace
- Free
- Good hardware options in the future
- Solaris seems like it’s on a good progressive track right now, whereas Linux is, as always, bogged down. Witness Sun’s ability to ram through the changes necessary for ZFS. Sometimes it’s good to have a strong leader in OS development, and Sun seems to be doing a good job of progressing the state of server OSs right now. This is a fuzzy point, I know, but that’s the feeling I get.
Solaris Cons:
- Lack of user base of RH, may be difficult to find help and/or packages targeted to the platform
- Weak package management compared to Linuxes
- Possible lack of support for the things I want to do, and lack of other people who seem to be trying, ie, a seeming community consensus AWAY from Solaris; makes me uneasy
- A general weird feeling I get since I’m really a Linux-on-the-server guy and I just don’t know Solaris that well, not for over 8 years
- Weak support from hosting companies
Hm. Well, there’s only one thing I can do faced with this choice. Try them out! Well, I don’t feel I need to try out RHEL5 - it’s mostly the same as 4, just newer, and most of the new stuff I’ve managed to get running on 4 anyway - even yum, which is seriously better than up2date.
But I really don’t know what Solaris feels like to use and that’s the main thing. So right now I’m downloading the DVD of Solaris 10 8/07; I’ll install it in a vmware container and see what I think. Ironically when Solaris 10 first came out I got them to send me a DVD .. unfortunately I left it in Japan! Ah well.
Thank fucking god for being able to run real VMs on Macs now, btw!
UPDATE:
October 6th, 2007 at 2:00 am
I’ve written a reply here:
http://wincent.com/a/about/wincent/weblog/archives/2007/10/thinking_about.php
October 6th, 2007 at 3:21 am
Thanks for the reply. After spending a few hours installing and playing around with Solaris in a VM, I’m struck by how weird it seems after years of linux.
Example: sudo. Second nature to you or me, but it’s not included in Solaris, it’s a 3rd party install. No idea why it’s not included.
Another: top. Again, second nature. Not included. There’s probably an alternative but honestly I’m not sure I want to start learning alternatives for perfectly good systems like this. And they’re not partitions, they’re “slices”. And it doesn’t use anything GNU which is more of a problem than it might seem. And “zones” aren’t real VMs, they’re more like FreeBSD jails. And ntp isn’t enable by default (!). ZFS is cool but .. I think I’m gonna stick with linux.
Tend to agree that RHEL5 is looking like the winner. I’m tempted to just bite the bullet, wipe and install this weekend.
Are you likely to upgrade any time soon? If so, I’d welcome some kind of mutual ssh/sftp-access agreement, as it makes it way easier to bounce files around for a copy off-copy on reinstall if you have access to another nice fast server.
October 7th, 2007 at 8:57 pm
It’s a big move and not a decision to be taken lightly, but I’m currently in talks with Rackspace (my current provider) and INetU (an alternative I’m considering). It’s a move I might make towards the end of the year, or early next year.
I’ve always been very happy with Rackspace’s service, but they haven’t yet officially “certified” RHEL 5 yet so they don’t support yet. They claim they’ll support it “near the end of the year”, but we’ll see. The lack of firm dates is a problem as it impedes planning.
The other problem is that Rackspace doesn’t really offer any customer-friendly upgrade pathways, as far as I can tell. Basically you’re looking at $$$ and downtime; for example setting up a new machine with a clean install on it, installing the drive from the old machine into the new box, and then bringing all the data over.
I spoke to INetU and they do offer nice upgrade pathways, and so that’s why I’m talking with Rackspace now to see if they can offer me the same. If Rackspace can’t deliver then I probably will switch. The prices are comparable. INetU claims that their “standard” support is roughly equivalent to Rackspace’s “Intensive” plans (ie. they can get involved at application-level support). INetU offers better hardware and more capacity for the money, the same 1-hour hardware replacement guarantee, what appears to be more extensive server monitoring, more IPs. They have also scored well in Netcraft’s hosting reliability surveys.
Specifically, as far as upgrades go, INetU’s offering includes the right to migrate to new hardware every two years at no extra cost, and you can keep the old server online for 30 days to give you plenty of time to migrate everything over in a controlled fashion, once again free of charge.
This addresses one of my main gripes with Rackspace; you sign up for a dedicated server in 2005 with hardware that is “reasonable” for that timeframe, but two years later in 2007 you’re still running the same hardware which is now decidedly underpowered compared with what’s being offered in the marketplace, but you’re still paying the same price. Basically you’re stuck on that hardware until it dies, or until you decide to migrate, incurring costs. So basically, the value for money gradually gets worse over time.
That’s another of the reason’s I’ve held back on deploying any Rails apps. If I am going to deploy a Rails app I want to do it on 2007 or 2008 hardware, not on 2005 hardware. We both know that Rails is an absolute resource hog.