Last month saw the release of CentOS 6. The move from 5 to 6 establishes the foundation for this community-run enterprise Linux distribution for the next five years. CentOS brings a new kernel, new versions of key server components, and improved virtualization support.
The new release was unexpectedly slow in arriving. In 2007, the CentOS project released CentOS 5 just 28 days after the official release of Red Hat Enterprise Linux 5. As a recompile of the Red Hat Enterprise Linux (RHEL) source code into a rebranded, zero-cost Linux distribution, CentOS is dependent on Red Hat releasing the source code before it can start its own release cycle. But it took 242 days after the release of RHEL 6.0 before the CentOS team released CentOS 6.0.
Maturity and stability are two keys to a successful enterprise Linux distribution. CentOS 6 uses version 2.6.32 of the Linux kernel, which was released at the end of 2009. 2.6.32 is the official enterprise-level Linux kernel, and although it isn't bleeding edge, it has been patched and maintained since its initial release to fix bugs and enhance security while remaining stable.
One of the key advantages of the newer kernel is its overall improved virtualization performance. CentOS drops Xen for virtualization and uses only the KVM hypervisor, which is now fully integrated into the kernel. Other virtualization improvements include the ability to assign CPU affinity for guests, and Kernel Same Page (KSM) technology, which allows the kernel to reuse identical memory pages across virtual machines.
CentOS 6 uses the ext4 filesystem by default, and allows the kernel to be booted from an ext4 partition – an operation 5.6 doesn't support. The ext4 filesystem improves large file performance (compared to ext3), keeps disk fragmentation in check, and supports 16TB filesystems.
If you're using CentOS to run a WordPress website, CentOS 6 is probably in your future. WordPress uses PHP, and recently raised its minimum supported PHP version from 4.3 to 5.2.4, meaning WordPress will no longer run on a default CentOS 5.x installation. CentOS 6 supplies PHP 5.3.2 along with MySQL 5.1.52 and Apache 2.2.15.
CentOS 6 Live DVD and CDAlong with the installation DVD (and its smaller variants), CentOS 6 also offers live DVD and live CD versions. Both boot into the CentOS 6 GNOME desktop, and both have the ability to directly install from the live media. The only difference between the two is that the DVD version contains more applications. Once booted, a live disc gives you easy access to the CentOS 6 desktop applications, including the Firefox browser. But the live discs are more than just a good way to boot up quickly into CentOS without having to install it – they also serve as excellent system recovery tools.
If its list of new features makes you eager to try a full CentOS 6 install, make sure your test server sports a DVD drive, because the full CentOS 6 installation media is no longer available on CD. However, the project does provide minimal, netinstall, and live images, all of which do fit onto a CD.
Be aware that the CentOS team does not recommend upgrading from CentOS 5.x or CentOS 4.x to CentOS 6, but rather suggests a fresh install. This is obviously a minus point, but you can consider this forced reinstall a chance to plan for the use of CentOS 6 over the next few years.
The installer offers predefined server types such as Basic Server, Web Server, and Database Server which install groups of packages; it is likely that after you have performed the initial install you will need to add more packages to suit your specific needs. Most of the predefined server types don't install a GUI, meaning that unless you install one later, you'll need to perform even the most basic system administration tasks, such as setting the IP address of the server, from the command line.
If you install the GNOME GUI, you can install new software components via the GNOME Package Manager. To start it, go to Administration -> Add/Remove Software. You can look for software packages using the search box or by browsing the various lists and collections of packages.
You can also install software from the command line using the yum utility. The downside of yum is that the name of any given package isn't always obvious, so you may have trouble finding the software you want to install. For example, the Apache server is known as "httpd" and not Apache, while "mysql" refers to the MySQL client tools and "mysql-server" to the server. You can use yum search keyword, where keyword is the service you want to install, as a way to find exact package names. Once you know the package name, installation is simple. For instance, to install Nmap, the network security scanner, open a terminal window, switch user to root (su -), and run the command yum -y install nmap.
yum search keyword
yum -y install nmap
CentOS 5.6 provided several GUI applications for configuring a server, including tools for Apache, Samba, and NFS. Most of these are absent in CentOS 6. You can still find the tool for configuring the network under Preferences -> Network Connections, but most other server administration tasks (except for managing virtual machines) are performed via the command line. Although the 5.6 tools were limited to the most basic of tasks, they did help get services up and running quickly. Windows system administrators often say you need to be a command line guru to get anything done on Linux; with CentOS 6, their complaints seem justified.
As with CentOS 5.x, the only network-accessible services running by default on CentOS 6 are the SMTP server and the OpenSSH server. This enhances system security, as system administrators need to implicitly configure services they want to start at boot up.
To configure Apache and MySQL (or any other server components) to start at boot time, go to System -> Administration -> Services. Click on a service, then click either Disable or Enable from the tool bar. You can also configure services to start automatically from a terminal window as root, with commands like:
chkconfig --levels 235 httpd onchkconfig --levels 235 mysqld on
CentOS 6 currently lacks the "extras" repository that under CentOS 5.x provides additional packages such as Horde, FreeNX, the Xfce desktop environment, and the CentOS Directory Server (based on the Red Hat Directory Server). More precisely, the repository under CentOS 6 is currently empty, and there is no indication as to when it will be filled.
One practical upshot is that system administrators who use the CentOS Directory Server rather than OpenLDAP (version 2.4.19 ships with CentOS 6) must find a different way to install it. The 2.4 series of OpenLDAP includes significant performance enhancements throughout the client and server.
CentOS 6 now uses only KVM to host virtual machines, but provides tools to convert existing Xen VMs. To create and control virtual machines, CentOS 6 provides a Virtual Machine Manager (virt-manager), available under Applications -> System Tools. It isn't as aesthetically pleasing as some third-party virtualization solutions, but it works and does let you easily control the virtual machines. Supported KVM guest operating systems include Linux, Windows XP, Windows 7 (32- and 64-bit), and Windows Server 2003 and 2008.
The CentOS team is working to release CentOS 6.1 to catch up with the already released RHEL 6.1. In the meantime the project plans to use a "continuous release" repository for 6.0 to bring all 6.1 and post-6.1 security updates to 6.0 users until CentOS 6.1 is released.
CentOS 6 is a step forward from 5.6. The inclusion of ext4, newer versions of PHP, MySQL, and Apache, and the kernel virtualization features make the new release an attractive option. However, the lack of upgrade path from CentOS 5.x is disappointing. While there is life left in the CentOS 5.x series, system administrators should use CentOS 6 to test and prepare for the inevitable migration.
Allowed tags: <a> link, <b> bold, <i> italics