What do you do when you want to run an enterprise grade server but don’t have any money to spare for the software? You use free software. Not free as in freedom (Windows Servers cannot be called enterprise grade, so all available enterprise grade server operating systems are freedom software), but free, as in cost.
Let’s take the money out of this. If money were no issue, you’d buy a subscription for Red Hat Enterprise Linux. You’d get a copy of RHEL 5.3 and some technical support, and you’d be entitled to upgrades to RHEL.
Bring money back into the equation and you’ll think again. A basic subscription for RHEL with two server sockets will set you back about Rs 23,380 per year. That’s a basic subscription, meant for SMEs and it’s expensive. The most expensive subscription is about Rs 1,67,140 per year.
Now what if I were to tell you that you can get a copy of RHEL, with community support, for use on unlimited servers for an unlimited amount of time — all for free! Yes, it’s called CentOS, and it’s supposed to be the best free Enterprise Linux out there.
This is what Wikipedia has to say: “Red Hat Enterprise Linux is a commercial product, available only through a paid subscription service that provides access to software updates and varying levels of technical support. The product is largely composed of software packages distributed under open source licenses, and the source code for those packages is made public by Red Hat.”
It’s this source code that makes Community Enterprise Operating System possible. CentOS builds this source code in such a way that the final product is an almost exact clone of RHEL. It’s binary compatible with RHEL, to the extent that updates for RHEL can be used in CentOS and vice versa. If you’re running CentOS, you’re running RHEL.
There are a few key differences between RHEL and CentOS. Red Hat uses proprietary software for systems management, including the infamous up2date, which is used to download system updates from the Red Hat Update Network. CentOS replaces all the proprietary parts of the OS with open source components. Up2date is replaced with YUM (YellowDog Updater, Modified), the same tool used in Fedora, and CentOS uses YUM repositories for updates and software installation.
So what features does CentOS offer?
- It’s free of cost, and has community support. It’s binary compatible with Red Hat Enterprise Linux.
- It’s rock solid — suitable for use in servers, clusters and workstations, as well as desktops and laptops.
- It has integrated virtualisation support with a Xen kernel.
- Included are tools for clustering and storage clustering.
- The ability to run as just another desktop OS with all standard desktop features.
So let’s get started with the review.
A copy of Sun xVM VirtualBox 3.0.2 runs on Fedora 11’s PAE kernel on an Intel Core2Duo E7200 processor (2.53 GHz and without VT). The VM has 1 GB of RAM.
Before version 5.3, I’d used a customised version of CentOS 5.1. The first thing that struck me, from the installer itself, was the new Artwork stack. The CentOS developers have outdone themselves in this sphere, where it’s normally accepted that all servers should look ugly. Speaking of installation, it’s the same old Anaconda at version 188.8.131.52, with all the usual options. Check the installation box for details.
In CentOS, you can choose between KDE 3.5.4 and GNOME 2.16.0. Though I prefer neither, for stability and familiarity’s sake, I chose GNOME for the review. Visually, nothing has changed; it’s the same old icons, the same old pointers and the same old GNOME. Something that could have been done was to add more shortcuts to administration tools. The new wallpaper, however, is refreshing.
The kernel version stands at 2.6.18-125.2.1.el5. Throughout a major version of CentOS and RHEL (such as 5.x), the versions of software cannot change. So, because CentOS 5.0 came out with KDE 3.5.4 (and kernel 2.6.18), all minor versions of CentOS 5 have to carry those versions of software. No cosmetic fixes are provided. Updates are necessary bug fixes or security fixes only. Therefore, OpenOffice stands at version 2.3, The GIMP at version 2.2, GCC at version 4.1.2, etc. So laugh out loud.
The server within
Jokes apart, let’s come in to what CentOS actually is — a server operating system. Right from installation, CentOS is optimised for server functions. The ‘Recommended Partitioning Scheme’ involves creating a separate /boot partition, and puts all the other partitions into an LVM. Pretty cool, because ‘Dynamic Storage Scalability’ (whatever that may be) is a big thing in servers.
At the Web stable, Apache version 2.2.3-22 heads the stack, with PHP at version 5.1.6. I have had bad experiences with that PHP version; it would not let me run RoundCube Webmail on it. MySQL and PostgreSQL are at versions 5.0.45 and 8.1.11. There you have it, your LAMP or LAPP stack. Personally, I’ve got nothing against this except the old PHP. PHP 5.2.10 and 5.3 SRPMs (Source RPMs) for CentOS are available at http://www.clfsrpm.net/php/. You’ll need to build them. You’ll also need to have the EPEL repositories added.
When it comes to FTP, VSFTPD 2.0.5 just doesn’t cut it. It isn’t as popular as ProFTPD, and people say it’s not as easy to configure. I say, ditch it and install ProFTPD, which is available in the RPMForge repos.
Note: Any CentOS user should have at least the RPMFusion, RPMForge and EPEL repos added. Lots of software is available in these repos that not only make our lives easier, but are also necessary for some tasks.
As for a LDAP server, CentOS includes CentOS Directory Server version 8.1.0. CentOS-DS is just a rebranded copy of Fedora Directory Server, so anyone with experience in FDS or Red Hat DS would have absolutely no trouble using CentOS-DS.
Now, let’s come to virtualisation. CentOS includes Xen and QEMU. I was surprised to see something like KVM absent. Looks like KVM is in the Extras repository. I didn’t install it, because my CPU doesn’t support VT.
Virtualisation is provided by QEMU and Xen. Though management is a completely different matter. It is provided by some tool called Virt-Manager. Accessible from Applications -> System Tools -> Virtual Machine Manager, this tool has somewhat revolutionised virtualisation on Linux. It first made its mainstream appearance in Fedora 10. This tool follows a connection-based architecture. You open up this tool and connect to one or several machines and choose your Hypervisor of choice. It currently supports Xen, KVM and QEMU, so you’re covered unless you are a VirtualBox fanatic like me.
Once you are connected to a machine, you create a new VM on it, using a wizard. Because it can use QEMU as a backend, in fully-virtualised mode, you can have i686, x86_64, ppc, sparc, mips and mipsel as architectures. Of course, in para-virtualised mode, you can only use your host arch. All other options are standard to what you would expect from VirtualBox. It’s a very powerful tool. I say stick with it.
The other software are pretty typical. For DNS, a CHROOTed BIND 9.3.4 is installed. A ‘Legacy Servers’ group includes servers for Telnet, BootParamD, XinetD, RARPD, RSH, RUsers, RWho, Talk and TFTP. The Network Servers group includes, amongst other things, OpenLDAP, Amanda-server, DHCP, DHCPv6, Quagga, Privoxy, etc. There are GUI tools to manage servers, available from System -> Administration -> Server Settings. These GUI tools make life for sysadmins a lot easier. However, they do cut out some functionality, leaving no option but to manually edit files to change advanced settings.
Last but not the least, at the e-mail section, Dovecot is used as the default IMAP and POP3 daemon, but even though Postfix is included, Sendmail is still used as the default MTA. It’s just a matter of removing Sendmail and installing Postfix, though.
Issues while running natively
My PC has an nVidia nForce Networking Controller. CentOS 5.3 refuses to work with it. To resolve this issue, manually download the latest kmod-forcedeth package from the updates repo and install it, then run modprobe forcedeth. Instant fix.
Another issue is that since NTFS is broken in the kernel, it is not provided and you have to install ntfs-3g from RPMForge. Even after installing it, drives are not recognised in the GNOME and KDE virtual filesystems and have to be mounted and browsed, manually.
We have better-looking and more expensive enterprise Linux options with more up-to-date software, but nothing beats CentOS. It’s free, and it’s so very modular that you can use it as your home OS with all multimedia codecs and 3D effects, and without any server software. It’s so stable that only a power cut can bring it down. CentOS is just not something that can be laughed at. It might well be the world’s best freebie out there.