Gentoo in the server room?


Author: Preston St. Pierre

When people think of Gentoo Linux, they usually associate it solely with Linux gurus who love to tinker with their operating system — strictly on a desktop level, of course. But while it may be a challenging distraction for home users, Gentoo Linux is increasingly being used on Web servers — a task traditionally relegated to BSD variants (FreeBSD, primarily) and commercial GNU/Linux distributions (Red Hat, primarily) as well as Windows. Is Gentoo truly ready for “real” work? Is it just some silly distraction for programmers, or can you really use this source-based operating system to your advantage in a production environment?

Before the hosting service company offered Gentoo-based servers for their various hosting services, FreeBSD was the operating system of choice for most of Tek Alchemy‘s customers. Nowadays most customers request Gentoo Linux on the machines they’re paying to use. “Gentoo is a really nice distro,” said Dave Thomas, a senior engineer with the company. “It’s easy to work with and we can do a custom install with no XFree86 or other stuff that we don’t need or want on the system.” But you can get a similarly configured FreeBSD system up in less time and with reportedly greater reliability. What is it about Gentoo that people value in a Web server?

It may seem crude to ask that question, because by itself Gentoo Linux is one of the most advanced GNU/Linux distributions available. The Portage software management system delivers a great deal of power and convenience for administrators who need to keep software up-to-date for security reasons. A simple cron job can download and install updates for the base distribution plus whatever else you have installed. In many ways Gentoo is a lot like FreeBSD; the installation, configuration, and maintenance are very similar in practice. Also like FreeBSD, Gentoo doesn’t have any fancy administration tools that would make it competitive with commercial distributions from Sun, Novell, Red Hat, and others. But there is a difference between a machine that hosts Apache, MySQL, and Sendmail on a rented server and a machine that runs local network services like NFS, NIS, and DHCP for the network that runs the business. Usually you’ll find Red Hat or some other corporate-supported commercial distribution in the back room or on the sysadmin’s desk, not a community-based distro. Gentoo makes a good rented server because of its speed and flexibility, but can it handle back room servers that enable the same hosting companies to make money off of their rented servers?

Gentoo as a production server

One company that eats its own dog food is Seven L Networks. It uses Gentoo Linux on almost all of its back room production servers as well as most of the hosting and dedicated servers that it rents out. It runs its mail services and its own company Web site, and stores all of its data backups on Gentoo-based computers. The only critical system that does not run Gentoo is the firewall, which is graced by the legendary OpenBSD.

“Todd Berman of the Mono project helped us out when we started up, and served as our sort of CTO,” said Daniel Lang, a Seven L representative. “Todd pushed us to use Gentoo; he was really excited about its customizability and flexibility.”

Lang also added that Seven L — like Tek Alchemy — has an excellent working relationship with the Gentoo project. “One of the things I like about Gentoo is the community. There’s always lots of help available, and you’re not afraid to ask questions, unlike some other distros.”

Daniel went on to say that using Gentoo on the customer servers is a mixed experience; while it’s easy to use and maintain, and the customers who prefer Gentoo are generally more knowledgable, it does take a long time to install. Seven L engineers will do a stage 2 Gentoo install — meaning GCC, GlibC, and other necessary programs for bootstrapping are precompiled, but the base system is not — and then use custom precompiled binaries for some of the programs that take a particularly long time to build from source. While Seven L currently uses the 2004.1 edition of Gentoo, it plans to switch to the new 2004.2 release soon. This is not much of an issue because starting from a stage 2 tarball and then updating the source code before compiling the system means that you’re getting the latest edition of Gentoo Linux one way or the other.

The underestimated distro?

With operating systems — especially GNU/Linux distributions — the key to trouble-free operation is choosing the right tool for the right job. Gentoo can be made into several different tools; it can be a competent and speedy desktop system, it can be used to host chroot jails, or as a Web or email server. It can securely and safely store critical data backups, or host NFS directories.

What makes Gentoo Linux stand above other distros is not just its flexibility — Slackware and Debian are just as flexible — but its customizability. Whereas with Debian’s stable distribution you’re left using software that is months or years old (including the kernel), Gentoo uses the latest tested editions of the Linux kernel, the GNU project’s userland utilities and compiler, and the more than 7,000 ported programs in Portage. Slackware, although just as moldable as Gentoo and Debian, does not have an automatically updatable package management system and compiles nothing from source by default.

Gentoo is not a hacker’s toy; it is a professional’s tool. Let’s hear from some people who use Gentoo in production environments — we already know it makes a good custom desktop. What else do you use Gentoo for?

Jem Matzan is the author of three books, a freelance journalist and the editor-in-chief of The Jem Report.