Red Hat Enterprise Linux 6 Handles Workloads Physical and Virtual
Red Hat Enterprise Linux 6, the latest version of Red Hat's flagship Linux-based operating system, began shipping last month, boasting a bevy of core improvements around scalability, resource management and virtualization. What's more, the system ships with a slate of updated open-source software components that stand to make life easier for developers and system administrators who wish to take advantage of recent features without leaving Red Hat's support and certification umbrella to do so.
Red Hat Enterprise Linux has long been a trusty go-to operating system option for most server roles, if not in its official Red Hat branded form, then in one of its respun incarnations, such as the fee-free CentOS or the Oracle rebrand Unbreakable Linux. Based on my tests of RHEL 6, I expect this new release to continue in that tradition-the new release performed as solidly as ever, and benefits from a support term that's been lengthened from seven to 10 years.
At sites that rely on Xen for virtualization, or that wish to host .NET applications from Linux, Novell's SUSE Linux Enterprise Server will offer a better fit, as Red Hat has transitioned completely away from Xen support in RHEL 6 and has consistently turned a cold shoulder to Mono, the open-source implementation of Microsoft's .NET. Mono is, however, available through the volunteer-based Extra Packages for Enterprise Linux project that rebuilds certain software packages from Fedora for use (albeit unsupported) with RHEL.
Also, while RHEL offers a strong foundation for hosting virtual workloads, complete with distinctive capabilities such as security features rooted in SELinux, it doesn't, on its own, offer as well-integrated a virtualization management experience as do purpose-built virtualization products such as VMware's vSphere. However, I've yet to try Red Hat's separate virtualization management product, which has remained uncharacteristically proprietary in its licensing pending the completion of an effort to port the application to Java from C#.
While aimed primarily at server roles, RHEL 6 can also perform well as a desktop operating system, as it ships with recent versions of all of the usual suspects of the Linux desktop, anchored by Version 3.2 of the OpenOffice.org productivity suite and Version 3.6 of Mozilla's Firefox Web browser. RHEL includes fewer software packages than do some of its less buttoned-down Linux relations, but the EPEL repository I mentioned can fill some of these gaps in a desktop setting.
Red Hat has shifted its pricing around a bit for RHEL 6, most notably by increasing the starting cost of a supported edition of the product from $349 per year to $799 per year. Red Hat still offers a $349 edition of the product, but that edition is now "self-supported," (see here for more information). The Production Support SLA page on Red Hat's Website still lists the "basic" support tier alongside the standard and premium tiers, but Red Hat doesn't offer any RHEL SKUs with basic support, nor is basic support available on its own.
RHEL 6 is sold by annual subscription, on a per socket pair basis. An x86-64 server with two physical sockets running RHEL 6 will cost $799 annually with standard support, and $1,299 with premium support, each with an allowance for one virtualized RHEL guest instance. Red Hat also sells editions with allowances for four guests, and for unlimited guests. Red Hat charges separately for "Add-on Functionality" such as high availability, load balancing and scalable file system support. The Power architecture and IBM System z editions of RHEL 6 are priced separately. For all the details, go here.
I tested the 64-bit version of RHEL 6 on a dual-core AMD tower server with 4GB of RAM, which I used as a virtualization host, and on a handful of guests running on that machine. I also tested RHEL 6 on a Lenovo ThinkPad, which I used as a desktop system.
In all cases, RHEL 6 was easy to install-on my server machine, I was able to choose a "virtualization host" option from one of the installer screens, which took care of installing everything I needed for the headless host role I had in mind for that machine. I've looked for a similar option in my recent tests of RHEL's freely available sibling, Fedora, and haven't found it.
From my test client system, I used RHEL's virt-manager tool to connect to my host machine over an ssh tunnel and begin installing some guests instances. For storage, I stuck to the local disks on my test server-I could use RHEL's regular storage tools to hook up to some shared storage, but the process for this is far from the point and click matter it is with VMware's tools. Fortunately, RHEL 6 benefits from excellent documentation, which is available at here.
I hit my first snag after I'd installed a RHEL guest on my virtualization host and set about registering with Red Hat Network to pull down additional software and updates. I didn't have enough unused RHN entitlements to give my guest its own entitlement, and RHN, apparently, wasn't recognizing my guest as a guest.
After more searching than should have been necessary, I found that I had to install a pair of "rhn-virtualization" packages on my host to make the RHN link work. I'd like to see these included among the packages installed through the virtualization host install option. These are the sorts of entitlement-related annoyances that make the freely available CentOS such a great option for testing out (if you're able to self-support, deploying) Red Hat technologies.
I outfitted my guest instance as a Mediawiki server, tapping the newly updated PHP 5.3, MySQL 5.1 and Apache 2.2. The current version of Mediawiki will run under the PHP 5.1 version that ships with RHEL 5 but recommends Version 5.2 of higher. My guest server performed as expected, so I turned toward testing some of RHEL's resource management options, starting with the product's new support for Control Groups (cgroups), a means of grouping particular processes together and applying resource limits to them.
I created a control group to contain the libvirt daemon that manages virtual instances on RHEL 6 to ensure that virtual instances never consumed more than 3.5GB of the RAM on my host machine to guard against making my host inaccessible by committing too much RAM for my guests. I cloned my guest instance several times, committing a good 2GB beyond the amount of RAM available on my server, and the guests stuck to their overall physical memory allotment, turning instead to swap space for their needs above that amount.
This arrangement also gave me a good opportunity to check out the RHEL 6 implementation of Linux's Kernel Samepage Merging, a sort of deduplication for memory. The KSM service in RHEL 6 is switched off by default, with a separate tuning service running to activate KSM if needed. My guest cloning activity triggered KSM, and I watched as the tally of memory pages shared among my guests grew. In future tests, I'll be interested to see how KSM performs with a greater diversity of guest instance types.