Although differentiation is tough in Linux distributions today, CentOS 7 has carved out a niche as the free and open alter ego to Red Hat Enterprise Linux (RHEL). We found that CentOS, which is mandated to be binary-compatible with Red Hat 7, shares about 95% of the features of its commercial enterprise-class sibling.
There's no IBM System z port, and special variants for cloud and virtualization are more limited than with Red Hat 7. But for many common and generic applications, it's a drop-in replacement.
+ ALSO ON NETWORK WORLD CoreOS: A lean, mean virtualization machine | Ubuntu turns 10: A look back at the desktop Linux standard bearer +
The primary differences for most IT admins, systems people, and engineers/developers will be a (purchased) relationship with Red Hat and Red Hat's army of supported applications, working partnership projects and management skills.
CentOS 7 is perhaps most aptly put as the DIY twin of RHEL7--who lives in the distro ghetto across the railroad tracks.
Still, in testing different deployment payloads, and also where we chose GUIs, the look and feel between Red Hat Enterprise Linux and CentOS 7 instances were essentially the same. And the same mistakes made to either usually cause the same explosions.
You might or might not find the fix faster in a Red Hat resource. The Centos.org website doesn't have Red Hat's polish, and has many odd links to nowhere or nothing--not 404s, rather, unfinished projects. The CentOS site seemed comparatively untended to us.
What you get
There are desktop and server-focused CentOS 7 in varying sizes, and you'll need an x86_64 64-bit processor. We could not find ARM (now in Debian and Canonical resource pools) or System z ports (favored by SUSE and Red Hat).
Yes, CentOS 7 uses what some Unix-o-philes and Linux admins feel is heresy, the systemd and systemctl resource flow controller daemon. We're officially neutral on this issue.
CentOS 7 comes available either as rented/leased/spun-up cloud instances of varying builds available from your favorite cloud host, or in one of several download-able flavors in server or GUI (desktop-focused) versions.
An OpenNebula cloud version wasn't available at testing time, and so a cloud-able version under OpenNebula will have to wait. There are desktop versions available that use either Gnome or KDE as UIs. The desktop versions weren't the focus of our review, but refugees from Ubuntu or those seeking alternatives to Linux Mint may find them interesting.
The very convenient CentOS 7 Everything ISO (with a Gnome default UI) is 6.3GB, but it can be whittled down upon installation (then cloned if needed), as the installation choices almost mirror those of RHEL7's, ranging from minimal to ConquerTheEarth (web, dev, management, databases, plentiful tools, and the kitchen sink).
You can make thick builds, targeted, or skinny ones, then replicate them (importantly: at no Red Hat license instance cost) to your heart's content. The smaller build works fine for more "core" applications, and either can be used to generate PXE-bootable builds, too. Also available are ways to boot from a SAN.
The CentOS website is nice enough to help qualify the speed of its resource file storage mirrors, Choosing a fast mirror to our network, we fired up the Everything ISO. Our installation choices: Minimal, File and Print, Basic Web, Virtualization Host, Server-with-GUI, Gnome Desktop, KDE Plasma Workspaces, and Development-and-Creative Workstation. We tried them all.
With each server installation selection comes a changing list of "Add-Ons for Selected Environment". Most of these will be deja vu if you've seen Red Hat Enterprise Linux 7. We calculated that there are perhaps 1,840 possible builds, depending on software selections chosen.
Choose "Server with GUI" and the options include, Backup, DNS Name, Directory, E-mail (sic), FTP, File and Storage, Identity Management, MariaDB Database, PostgreSQL, and Print Server, along with choices for High Availability, Identity Management, Infiniband Support, Java Platform, KDE Plasma Workspaces, Large Systems Performance Tools, Mainframe Access, Performance Tools, Remote Desktop Clients, Remote Management for Linux (OpenLMI and SNMP), "Resilient Storage", Virtualization Client(s), Virtualization Hypervisor, Virtualization (image) Management, Compatibility Libraries (for older versions of CentOS compatibility), Development Tools, and SmartCard Support.
Each server-based installation option list is different, but virtually all choices can be made post-installation, too. We launched virtual machine instances, both bare metal and hosted.
Creating them is trivial, but we wish that a PxE boot answer list would be easily created for the varietal types to aid in replication--not a fault of CentOS, rather a failing of server OS makers in general. CentOS 7 can be installed onto an UEFI-protected local hard drive, but if there's already a UEFI boot partition, we recommend manually removing any UEFI occupants first.
No matter the options made at installation or later, it's possible to get many of the component parts as yum downloads, although this might mean adding source repositories, cloning git structures, etc.
Docker appliances, which can subsequently be installed as 'gets' inside their own Docker container/sandbox play as easily as they do on Red Hat. The CentOS 7 substrate, like all current Linux editions, is ready, willing, and able to use Docker components.
CentOS 7 also can be equipped with OpenStack, and other ISOs are available although links on the centos.org site were broken through the several visits we made. Building your own ISOs for internal consumption aren't tough, but not as easy as SUSE now makes them. We spun up numerous build variations, including desktop versions.
On the inside, the systemd daemon is the controller of most devices. It's not tough to use, but as systemd is an interloper between legacy scripts and device controls -- it's used plentifully as an arbiter/controller/management interface, it can break things.
System Control Daemon controls much of this distro, as it also controls Red Hat, Ubuntu editions, many Debian editions, and will likely find its way into SUSE. The systemd/syscntrl methodology is also part and parcel to Solaris, and perhaps MacOS- Darwin BSD might pick it up in a fit of compatibility.
The list of latest app kits, including Docker 1.3 including OpenStack Havana compatibility (tested), worked as they did in Red Hat 7. CentOS 7 is more of a construction kit than buying the building and getting handed a key--as is with Red Hat. We obtained the latest Docker git clone, and integrated it easily.
You should expect the same performance from CentOS 7 as from Red Hat 7, except that highly clustered configurations may benefit from Red Hat's clustering optimizations that aren't found in CentOS 7. Optimizations for one should work with the other (yes, this is a hint that you'll need to search Red Hat to find answers).
Community support for software package projects such as bundled/configured database and web packages is strong, although without the dedicated personnel that Red Hat features as part of its subscriptions.
Most all Red Hat Enterprise Linux packages should "bolt-up" to CentOS 7 unmodified. Some CentOS and Fedora users have obtained minimal Red Hat subscriptions, then cloned Red Hat's internal support to deploy free CentOS infrastructure somewhat disingenuously-- from a support and community standpoint.
We were somewhat dismayed to find that rigorous passwords aren't enforced and initial root passwords can be comparatively simple. While there's support for secondary authorization devices, CentOS doesn't make initial use of OAuth or long keys.
Herein resides another gulf between Red Hat and CentOS--Red Hat Publications, often written for advanced users, give details for these important security bits.
Installation bugs were non-existent in all of our numerous deployments. Hardware detection, like our experience with Red Hat 7, was never an issue. We found the installation UI to be sometimes leaden, a common complaint between the two. Odd hesitations, especially on slow hardware, was only mildly frustrating.
This is Red Hat's less-supported, living-the-free-life fraternal twin brother. It works really well, but you'll need either an experimenter's mentality, or black-belt Linux skills to deploy this in the wild. None of the edges are harsh, and it has much of Red Hat's polish.
How we tested centOS 7
Five variants/ISOs of CentOS 7 were tested, Everything, minimal, KDE-Plasma, Gnome, and an Openstack-enabled version. We installed these on VMs under ovirt, VMware ESXi 5.0/5.5, Microsoft Hyper-V 3.1, and Xen. Platforms included Lenovo Thinkservers, HP DL580/560/380 Gen8s, VitualBox on Mac Mavericks, and a Samsung i7-based notebook (KDE and Gnome installations).
Our lab network consisted of an HP Proliant MicroServer Gen8 (Windows 2012 with HyperV-3), and two Dell 1925 (VMware ESX 5.1) servers. Our NOC network consisted of two Lenovo ThinkServers (RD440 running ESX 5.5; RD630 running Microsoft 2012 R2/Hyper-V3.1), an HP DL580-G8 (ESX 5.5), HP DL560-G8 (ESX 5.1), and an HP Moonshoot, where we replicated 45 minimal CentOS 7 installs. We tested for hardware compatibility, footprint, payload size at defaults, and comparative performance with similar Red Hat EL 7 installs. We found no real differences in performance and where applicable, similarly selected payloads. All hosts were connected in the lab via a Gigabit Ethernet network, in turn to the NOC network at Expedient in Indianapolis which is connected via a GBE and 10G Ethernet network switched L2/L3 via Extreme Networks Summit Series Switches onto Expedient's core network. No Ubuntu instances were harmed during these tests.
Tom Henderson runs ExtremeLabs, in Bloomington, Ind. He can be reached at email@example.com.