SGI's Linux Server
More details of SGI's upcoming Linux server have emerged. According to the article, SGI is already shipping a 4 processor machine, and plans to ship 8-way and 2-way machines at a later time. Both Linux and NT are available pre-installed. The servers look like they're not your mother's typical x86-based server, and come with some interesting hardware features that I didn't even know Linux supported (hot swap drives). Am I not well-informed, or is it possible SGI has some patches (that they're hopefully itching to give us)? Regardless, I'm glad to see a big Unix vendor shipping Linux, and touting it so highly.
[Note that SMP is very different from clustering, so forget all you've heard about Beowulf, Mosix, and such for this discussion.]
Yes, Linux supports SMP. If you have a bunch of user processes that are doing mostly user-space computation, then you should get a mostly linear speedup even with a 2.0 kernel. But if the processes depend on a bunch of kernel services, watch the kernel version carefully.
You see, with SMP the kernel has to be sure that two processors don't try to modify the same data structure at the same time so as to avoid confusion (e.g, deadlock or a crash). The 2.0 kernels supported SMP by putting one big lock on the kernel, so only one process can be doing something in the kernel at a time. One of the major features of 2.2 is that this one big lock was broken up, allowing Linux to scale far better. Unfortunately, there are still many places where the locks need to be broken up further, and work is ongoing.
I believe that it was such a locking issue that caused Linux problems in the Mindcraft benchmarks when multiple network cards were in use.
So the performance of SMP will vary depending on your application and your system. (I've heard, for example, that building the kernel on a 4-way box gave a 3.7 times speedup in one case, which is pretty good.)
Note that many of the commercial Unixes scale better than Linux (i.e., have finer grained locking). I know Solaris has a very good reputation for large numbers of processors. I would suspect that Irix must be good, based on the systems that SGI sells. Linux is getting there. Upto 4 CPUs should be fine for most tasks. I haven't heard reports of Linux with more than 4 SMP CPUs.
Chances are, SGI servers running Linux offer hotswap capabilities thru dedicated hardware. But it's also possible to use software only solutions. There are a few requirements :
:-)
- the hardware must handle it, I mean, you must be able to add/remove a drive to a IDE bus/SCSI chain without everything going mad. Most hardware I met doesn't care if you remove a (umount'ed) drive.
- the software must handle it. With IDE drive, there are ways to force Linux to redetect hard disk geometry (with 2.2 kernels, use modules, with 2.0 kernels, there are unofficial kernel patches to do that. check http://www.enix.org/~skaya/ for an ugly patch allowing to do hotswap with your secondary IDE channel with 2.0.36 kernels)
If you want really good performance/reliability, go for RAID-5. Hardware support is not required anymore. Linux supports software RAID-5 since quite a long time (with the appropriate raidtools), but on-the-fly reconstruction is a recent update. And if you want things like LVM ("oh dear, my 80 gigs pool is full, nah, just add another 18 gigs scsi drive, and poof! I have 18 gigs more free"), you will have to play with latest 2.3.* kernels. It's a domain where Linux hasn't reached (yet) the level of others like HP-UX, but it's improving (it's a big work, because there are filesystems consideration underneath - how do I resize an ext2 filesystem, etc)
A last note about SMP Linux boxen : according to Alan Cox if I remember well, Linux scales very well to 2 CPUs, poorly to 4, and not at all to 8. To solve that, give 'em linux coders octo-xeon servers to play with, I promise they will do their best