Network Operating Systems: Hard(ware) Choices
In the first two installments of our series on networking operating systems, we considered your choices from the perspective of their usefulness as an administrator's desktop or a provider of networked services. This installment, we're going to consider how hardware factors into your choice. Let's review a few details that can't be ignored.
If switching operating systems is something you're considering, don't forget to think about how your decision might limit future hardware purchases. There are tons of things that Linux and BSD will run on, but like all other ventures into the untested waters, you can never be certain that everything will work. Perhaps it's beneficial to purchase hardware from a manufacturer that has tested these devices alongside their operating system?
The Sun Revelation
Sun Microsystems has begun selling AMD64 servers and workstations that come pre-installed with Solaris 10. They're amazingly fast, as are all AMD64 machines, but they come at quite a cost—anywhere between 3-5 times as much as building your own AMD64 server. This is a completely new market for Sun, and the company isn't exactly shy about touting its achievements. But what does purchasing a V-series Sun server really mean? You know it will run Solaris 10. You know you're getting an extremely fast AMD64 chip. And then you can't help but wonder why it was so expensive.
If you're married to the idea of running only Solaris, then the decision to purchase a Sun-built AMD64 server probably isn't very hard. Solaris 10 just doesn't support enough hardware to make purchasing the parts separately worth it. If you stick to the hardware compatibility matrix, though, build-your-own is an option. If you're looking to run Windows, Linux or a BSD on an AMD64 server, the Sun servers probably aren't the best purchase. Tyan has started producing a barebones 1U server kit, the Transport, which rivals the cost of purchasing all the parts separately at online retailers. When compared to the Sun offerings, there's just no contest. The warranty is the same; the parts are basically the same. It all comes down to quality control. Who has the better track record, Tyan, your motherboard manufacturer of choice, or Sun? Many people endlessly profess Sun's superiority in hardware quality, to the point of buying V-series AMD64 servers on which to run Linux. The decision is ultimately yours.
But wait, there's more. Apple's hardware has historically been very reliable. We know that Apple is planning on using all Intel chips by 2007, so what does that mean? Will OS X become available for non-Apple hardware? We can hope. But more importantly, the Apple Xserve may become a viable piece of hardware to look at for running a Linux server. The same arguments about reliability and performance as used in the Sun discussion apply here as well.
Plug and ?
What happens when you need to connect another SCSI RAID array to your file server? Or, you need another Fiber Channel port for connecting to the SAN switch? You have options, but not many. If you're running Windows, it's pretty much guaranteed that any SCSI or Fiber Channel card you purchase will come with drivers. Beware, Linux and BSD users: you aren't as lucky.
There are hardware compatibility lists for both FreeBSD and Linux. You can generally find a supported card by looking on that list, but this isn't a straightforward procedure. Oftentimes there are many devices that use the same chipsets but aren't listed. The cheaper devices made by the discount vendors will sometimes work just the same, but you'd never know it without trying—the chipset they use isn't printed on the package. We're left with relying on the hardware compatibility lists, and Google. Once a supported device is found, the fun begins.
In FreeBSD and Linux, you must have the correct kernel modules built to deal with the device you're trying to use. Sometimes, if you're careful in the selection process, new devices will ship with the drivers required for FreeBSD and Linux. It isn't hard to find PCI cards claiming *nix support nowadays, so this becomes a little less troublesome. In the good old days, getting hardware (even supported hardware) working was no picnic. Countless hours have been spent in Linux trying to figure out why a driver won't attach to a device it's supposed to work with. To be fair, with the 2.6 Linux kernel these problems aren't as frequent. On the other hand, if a device is supported in FreeBSD, and the option is selected in the kernel config file (or the module is loaded), the drivers reliably attach. This is arguably the biggest advantage to FreeBSD. Whichever open source system you prefer, you're always going to be careful about hardware selection. The good news is that if you can find a device that's been around for more than a year, it will have a much better chance of "just working."
Believe it or not, there are actually some open source drivers that work with Solaris. Ignoring those strange beasts, we're left with basically two options when purchasing hardware for Sun machines. Buy from Sun, spend a lot of money; or buy from a random vendor that ships with Solaris drivers (and hope they work). The die-hard Sun fans don't have a problem buying, for example, a Qlogic Fiber Channel card with Sun's firmware for twice the price. The same card, with drivers from Qlogic, can be purchased directly from them. These third party drivers usually work, but Sun support isn't going to help you with them.
In short, pay attention to what other people say in online forums about specific add-on devices and your chosen operating system. Better yet, when you hit a brick wall, set up a test server and try out troublesome devices in a different operating system. You might be surprised.