Early impressions of CentOS 7
For reasons involving us being unimpressed with Ubuntu 14.04, we're building our second generation iSCSI backends on top of CentOS 7 (basically because it just came out in time). We have recently put the first couple of them into production so now seems a good time to report my early impressions of CentOS 7.
I'll start with the installation, which has impressed me in two different ways. The first is that it does RAID setup the right way: you define filesystems (or swap areas), tell the installer that you want them to be RAID-1, and it magically figures everything out and does it right. The second is that it is the first installer I've ever used that can reliably and cleanly reinstall itself over an already-installed system (and it's even easy to tell it how to do this). You would think that this would be trivial, but I've seen any number of installers explode; a common failure point in Linux installers is assembling existing RAID arrays on the disks then failing to completely disassemble them before it tries to repartition the disks. CentOS 7 has no problems, which is something that I really appreciate.
(Some installers are so bad that one set of build instructions I wrote recently started out with 'if these disks have been used before, completely blank them out with dd beforehand using a live CD'.)
Some people will react badly to the installer being a graphical one and also perhaps somewhat confusing. I find it okay but I don't think it's perfect. It is kind of nice to be able to do steps in basically whatever order works for you instead of being forced into a linear order, but on the other hand it's possible to overlook some things.
After installation, everything has been trouble free so far. While I
think CentOS 7 still uses NetworkManager it does it far better than how
Red Hat Enterprise 6 did; in other words the networking
works and I don't particularly notice that it's using NetworkManager
behind the scenes. We can (and do) set things up in
/etc/sysconfig/network-scripts in the traditional manner. CentOS 7
defaults to 'consistent network device naming' but unlike Ubuntu 14.04
it works and the names are generally sane. On our hardware we get Ethernet device names of
enp1s0f0, enp1s0f1, and enp7s0; the first two are the onboard 10G-T ports
and the third is the add-on 1G card. We can live with that.
CentOS 7 uses systemd and has mostly converted things away from
/etc/init.d startup scripts. Some people may have an explosive
reaction to this shift but I don't; I've been using systemd on my
Fedora systems for some time and I actually like it and think
it's a pretty good init system (see also the second
sidebar here). Everything seems to
work in the usual systemd way and I didn't have any particular
problems adding, eg, a serial
getty. I did quite appreciate that
systemd automatically activated a serial
getty based on a serial
console being configured in the kernel command line.
Overall I guess the good news is that I don't have anything much to say because stuff just works and I haven't run into any unpleasant surprises. The one thing that stands out is how nice the installer is.