Linux has been in use for quite some time, especially in the world of the Internet. The majority of web servers are Linux machines. More and more, however, corporate IT organizations are turning to Linux to host workloads that had traditionally run on Windows and UNIX.
For many years, many organizations have run their big database workloads on big expensive proprietary UNIX hardware from SUN, HP, and IBM, using RISC and Itanium-based processor architectures. Over the past several years, the Intel x64 architecture has become strong enough to take over this space, and this is the architecture supported by most Linux distributions.
Linux for Servers
The majority of Linux servers out there, at least in the enterprise where a professionally supported operating system is desired, run Red Hat Enterprise Linux (RHEL). However, in the new world of virtualization and cloud computing, we may deploy many more servers than before, and commercial software licenses become very expensive. The alternative is the use of free, open-source Linux distributions. CentOS is probably the closest to Red Hat, in that it’s built from almost the exact same source code. The difference is that it’s free.
There are many free Linux distros, almost too many to count. You may have your preferences, I certainly do. I’ve tested a lot of them. I’ve found that the most popular ones are popular for a reason. Either they’re particularly easy to use, relatively trouble free, or supported by a vibrant community of users and experts. From my research, I’d say that the short list of viable alternatives for the Enterprise include:
I mention OpenSUSE and Fedora because they are well documented and widely used, but to be honest, I’ve run into difficulties with both of them. In my mind, only CentOS and Ubuntu are really viable for stable use.
For use on physical server hardware (non-virtual), I recommend CentOS. CentOS has support for VLANs and multipath storage connections by default (even discovering multipath storage devices during installation), so it’s fairly easy to install and configure on enterprise hardware. By comparison, Ubuntu requires manual configuration to support these features. In fact, if you don’t have connectivity on VLAN 0, you won’t be able to reach the Internet to install the VLAN support package, so you’l have to copy the package onto removable media to get it installed.
Like I mentioned above, CentOS is highly compatible with RHEL, so RHEL documentation and forums (as well as others dedicated to CentOS) can be consulted when working with CentOS,
Ubuntu on the other hand, is very easy to use and is also well documented. I prefer Ubuntu for virtual machines, which generally don’t require VLANs and multipath storage. One of the great strengths of Ubuntu (and other Debian-based Linux distros) is the Apt package manager. Apt is the tool for installing packages from Internet-based package repositories, similar to the yum tool used on Red hat-based distros.
Apt packages tend to do a do a more complete job setting up packages than yum, taking care of tasks after installing packages, such as setting services to start automatically and opening the appropriate ports on the firewall. Yum leaves these tasks to be handled by you, manually.
Often, a simple install on Ubuntu would otherwise be a bit more complicated on CentOS for this reason. For example, installing MySQL on Ubuntu requires one simple command: apt-get install mysql-server. Apt installs the software, prompts you for a root password, opens the port on the firewall, sets the service to start automatically and starts it. On CentOS, yum install mysql-server installs the software, but leaves the root password blank, leaves the service stopped and not set to start automatically and doesn’t adjust the firewall. It’s up to you to add a firewall rule, set the password, and set the service to startup.
Some Linux purists might argue that these steps should be manual, and that any good Linux admin worth their salt should be able to perform these tasks in their sleep. I tend to agree in principle, but in the enterprise, time is money, and extra steps lead to slower deployment and more opportunities to make mistakes. This is why Ubuntu is my favorite Linux server OS at home and on VMs. Only when installing Linux on physical, enterprise-class hardware do I prefer CentOS.
I’ll mention quickly that I use Ubuntu 12.04 as my desktop OS as well, though that’s a topic for another day…