Why OpenSolaris Failed To Build a Community
xtaski writes "Ted Ts'o, one of the earliest Linux developers, points out some serious flaws in OpenSolaris. There is a severe lack of developers, for one. Apparently, after 3 years, the OpenSolaris 'developer community' is still struggling to get the proper tools for developers to develop! Ted also points out some other flaws which make it clear just how disconnected the executives at Sun are from what's really going on in their 'open source communities.' He notes, 'It was never ... Sun's intention to try to promote a kernel engineering community, or at least, it was certainly not a high priority for them to do so.'"
I think Sun underestimated the importance of casual users. A lot of times the people choosing an OS for a project (be it enterprise deployment, inclusion with hardware, or just use within IT) go with what they are familiar with and also what their current interests are. When Sun open sourced Solaris, there was a lot of interest from the Linux and BSD communities. A lot of those people decided to download a copy and give it a try. The difficulty these casual users had in grabbing an installable copy and getting it running easily were significant. A lot of people just said, "meh" and moved on. The last time I grabbed a developer preview I still had to fill out a bunch of forms with my personal data then deal with Sun's "download manager" and then spend significant time getting it to install, even within a VM customized to run OpenSolaris in particular. That is still better than it used to be. I only have a success rate of about 50% in getting Solaris to install to date.
For most people I think it is just too much of a hassle and all the developer momentum is on Linux. I guess when Sun thinks about open sourcing Solaris, they see it as a way to try to stop their hardware customers from moving away from Sun, which is fine, but does little to leverage the real benefits of an OSS community such as Linux has been doing for a long time.
Another issue with opensolaris for me was the installation. Being a fairly experienced *nix user, years of sunos, aix, linux, bsd, etc.. under my belt and a fairly competent programmer. I tried quite a few times to install OpenSolaris and there was always some major problem. I never did get a stable system working and finally gave up. That said, this all comes as no surprise to me whatsoever.
"Computers are a lot like Air Conditioners" "They both work great until you start opening Windows"
Yeah, sorry about that. Thunk.org is a rather ancient machine (> 5 years old) living in a colo facility, and this is how I figured out I had been slashdotted. (The two uptime commands were about two minutes apart):
14:21:06 up 121 days, 16:47, 2 users, load average: 40.47, 12.41, 4.55
14:23:05 up 121 days, 16:49, 2 users, load average: 81.43, 36.97, 14.52
Fortuantely I'm still mirroring my blog onto my old Livejournal account; please read it there for now! The two articles that you want are this one: What Sun was trying to do with Open Solaris and this one: Organic vs. Non-organic Open Source, if you can't get through to thunk.org.
Nexenta works fantastically - I love it. I would definitely use it for any storage servers, or high availability servers that do your normal Apache/SQL/P* stack.
:)
However, for desktop and non-standard services, it still sucks. If it's not a web server, and it's not a storage server, don't use Nexenta, use Ubuntu Server. Or Debian if you know what you're doing
Linux just works? Yeah, maybe for a small system running a simple app stack.
/dev/sde came from vs /dev/sdf. When you have 20 luns mapped to the same host from two different arrays, its kinda important to know which drives come from which array and what the corresponding lun numbers are. That said, most linux admins I've talked to didnt have a clue about what I was talking about since they never had a san.
/proc and watch the fun start.
I had to setup an oracle cluster: Thanks to Oracle's support policies, we could not use Solaris x86. Nor could we use RHEL5 (no Oracle 9i support), so RHEL4.6 it was. Should be easy, right? Well tested "enterprise" class linux that can do everything the big boys can do.... We took the hardware we were going to use for solaris and switched it to linux. A pair of Sun x4600M2's, 128G of ram, 4 Dual core AMD's. Sun fully supports linux on this box and RedHat lists it on their HCL. Should be easy.
The basic OS install was more or less easy, once we battled through the serial port redirection setup (guess most linux users never used a serial port before. After all, why bother when the box sits under your desk). I stil like serial ports over video for one major reason: issue resolution (when bad things happen, having that panic string saved by a console server can really save the day)
Ok, so the system was kickstarted and now it is time to set it up for use as an oracle DB. This is a production system, and we need lots of space (4TB) and High Availability. This means redundant connections to everything, mirroring and clustering.
Issue #1: multipathing drivers for the SAN. With solaris, you just plug the thing into the san and all of the storage that the host has access to just showed up. Multipathing was instant and I didnt have to do jack. I could see what devices mapped to which physical array with a simple command. I didnt have to guess which array
Issue #2: dynamically add luns: With solaris, you just change the mapping on the array and the host picks it up and auto creates the dev links. That was easy. On Linux? you've got to be kidding me... You get to echo some crazy strings into several spots in
issue #3: IP Multipathing. With solaris, dladmin is used to create a bond (if it is going to the same switch and the switch supports bonding) or use the built in ip multipathing to do an active/failover setup if you are going to multiple switches. Very well documented and very easy to do. With linux... yeah, bonding is a fun task. Need to go to multiple switches? no such luck, you are screwed. I eventually used VCS to take over the systems main IP and uses its IPMultipathing agent to do the job for me. VCS on solaris just hands the task off to mpathd since the OS already does it for you.
Issue #4: zones: dont get me started. I dont want to run another entire OS, I just want name space isolation and chroot is so primative it is not even funny. Zones gives me everything I want with minimal overhead. It would have been nice to have since there are a few oracle products that dont play nicely with clusters (*Warehouse Builder*) because they imbed the host name everywhere. We could put it under Xen, but this is an app that moves huge amounts of data around, not exactly a good candidate for virtualization. Zones let us get around Oracle's brain dead use of the hostname, no such luck with linux.
Issue #5: 3rd party drivers vs the new kernel patch. If I install a 3rd party device driver in solaris and upgrade the kernel, I dont have to rebuild/reinstall the driver. Linux (even redhat 4.x with their "back port") forces me to rebuild/reinstall every damn time. Its great if the driver is standard with the kernel, but if you need something outside of that (lsi multipathing drivers to get around #1 and 10G NIC drivers in my case) and you are screwed. No wonder up2date ignores all of the kernel* rpm's by default.
Issue #6: Whats the system doing? Solaris: `mdb -k` and dtrace. Linux: still trying