The CentOS Project finally announced version 7 of their RHEL derivative. I gave it a try on a VirtualBox VM and I must admit the changes are significant.
According to the official release notes CentOS 7 comes packed with the following major changes:
- Kernel updated to 3.10.0
- Support for Linux Containers
- Open VMware Tools and 3D graphics drivers out of the box
- OpenJDK-7 as default JDK
- In Place Upgrade from 6.5 to 7.0 (as already mentioned)
- LVM-snapshots with ext4 and XFS
- Switch to systemd, firewalld and GRUB2
- XFS as default file system
- iSCSI and FCoE in kernel space
- Support for PTPv2
- Support for 40G Ethernet Cards
- Supports installations in UEFI Secure Boot mode on compatible hardware
Extensive list of changes can be found here
Kernel 3.10.0 and OpenVMware Tools
The Kernel was upgraded to 3.x mainstream version with the release of CentOS 6.5 which I suppose was a step towards enabling the in place upgrade from 6.5 to 7. Personally I like the Open VMware Tools integration – no need to do fancy magic with automation tools in order to install the official ones from VMware Tools ISO.
As for the OpenJDK version bump I can’t see any positive use. In most of the cases major companies are still running their Java-Application stack using Oracle Java.
XFS as default FS
The switch to XFS as default file system is not a surprise too. It was announced back in 2012-2013 when Red Hat decided to make it the only supported file system in Red Hat Storage 2.0. Cloud applications need to store in some cases billions of small files where XFS didn’t perform as well as expected causing Kernel exceptions and OOM tracebacks, for example bug 813137. For the past 2 years Red Hat focused on fixing most of them and the result came with mainstream Kernel 3.10 which as you already know is the default in RHEL/CentOS 7. For RHEL/CentOS 6 XFS patches were still pending nearly half a year ago.
systemd, firewalld and GRUB2
For me the fanciest change is firewalld. The project became part of Fedora back in 2010 and for the past 4 years made a significant improvement. Finally one can enjoy dynamic firewalls in Linux with zones, etc. I already see the potential use of it in combination with OpenVSwitch (the Kernel datapath is available in the mainstream version but the tools are still missing in RHEL/CentOS 7). I’m going to continue my experiments around networking for the next few days before I try to sum it up in a new post.
GRUB2 is a game changer as well – better and easier configuration of various boot options, support for non-latin character-sets, dynamic loading of modules etc are just few of the new features that one can use.
systemd support is one of the most significant changes as-well. Nearly 30 years since how Sys-V initscripts work at AT&T Bell Labs were first described by Chris Negus it’s time for the evolution to take place. For those of you that need to adapt their custom Sys-V initscripts to the new systemd format Jamie Bainbridge from the Red Hat community provided few information sources he found useful. You can find them here, here and here.
This article best describes why RHEL is leaning even stronger towards NetworkManager.