Thursday, April 9, 2015

Upgrading to CentOS 7 – Deciding on a Lightweight Desktop Environment

Introducing a new voice to the 45 Drives blog – Brett Kelly, one of the R&D engineers for 45 Drives, who shares his experience with upgrading to CentOS 7. 

45 Drives is built on the idea of highly customizable storage servers in the form of our Storinators. Whatever your configuration, including operating system, we can build it.  This includes choice of OS – we regularly configure and ship systems with a range of Linux distros, FreeBSD and Microsoft Server 2012.

With all that said, the default OS in Storinators is CentOS, and rightly so – it’s a popular choice for our users, especially the hardcore server users.  In fact, more than 85% of our customers opt for CentOS (FreeNAS would be next in popularity).

Over the last month or so, we’ve been mulling over changing the default OS in our Storinator from CentOS 6 to CentOS 7. This seems like an easy and painless change, but some things had to be considered and tested before we just started shipping the newer OS.

Since I led the project to evaluate our options when upgrading to CentOS 7 as the default, I’m writing this post to share our (my) love of CentOS and provide some background into our testing and decision making.

Why CentOS?

I’m a big fan of CentOS, as it’s as close to enterprise level as it can be while still being free and open source. It is built off Red Hat Enterprise Linux and like RHEL, it runs only the most stable versions of software packages, ensuring system stability for those mission critical applications. You could say our very stable system running CentOS will almost never crash, and if it does, it is usually a soft landing.

Along with its solid stability, CentOS offers very mature security features, including an incredibly powerful firewall and the SELinux policy mechanism. The one downside of this high stability, however, is that the development cycle is much slower than other Linux distributors. CentOS has a new major release every 3-5 years while most distros ranges between 18 months and 3 years. However, CentOS releases are supported for a long time, even after a newer version is offered. For example, CentOS 5 (released mid-2007) received updates up until early 2014 and CentOS 6 will receive updates until mid-2017.

So Why Change to CentOS7?

Many of our customers have been pleased with our Storinators running CentOS 6.6, but we’ve had some who have asked if we’re stuck in the past. CentOS 7 has been out for almost a year now, after all. There’s one mantra, “If it ain’t broke, don’t fix it.” But on the other hand, we’re a tech company focused on innovation and improvements, and so, it was getting to the time to make a change!

The move to CentOS 7 really came down to, ultimately, a newer kernel (3.10). CentOS 7 offers the same solid stability and security features of previous CentOS versions, but with a more recent kernel. It also offers newer features and changes from CentOS 6 and the ability to use newer-third party software such as Bcache. Bcache was the first software package I came across that forced me to upgrade to CentOS 7 for testing, as CentOS 6 did not have a recent enough kernel. Once I made the switch, I haven’t looked back.

What About the Desktop Environment?

The desktop Linux distros are moving towards graphic-heavy GUIs that include items like pretty gradients and sparkly 3D backgrounds. Despite its server orientation, CentOS 7 has followed the trend.  And I have to say that the new default desktop environment GNOME is just beautiful. The people behind the GNOME project did a wonderful job. But although it is aesthetically pleasing, it comes with a price:  it can negatively impact I/O performance in server applications.

The base Storinator models don’t use a dedicated graphics card – not because we can’t offer a dedicated graphic card, or because the cost is too high. The fact is, our hardcore server users usually tell us that they don’t want a storage pod loaded with a graphics card, because they don’t need one. For them, pretty graphics are superfluous to having solid workhorse server performance.

These same hardcore server users are also comfortable using command line interface (CLI). But even then, they appreciate the convenience of a GUI for certain tasks. Thus, we wanted to be able to offer the convenience of a GUI, without suffering a performance hit or having to add a graphics card.

I found two possible candidates that met our criteria: MATE and Xfce. Both were very simple to install, had all the required packages, but most of all, they were lightweight enough that it didn’t hurt the I/O performance of our basic pods.

While both were quite suitable, we decided on MATE. It looks the most similar to previous CentOS versions (and the current CentOS 7 GNOME desktop). Secondly, although only a minor inconvenience to us, the terminal in Xfce had to be added post installation and just didn’t feel as right compared to MATE. This is a matter of personal preference and in no way a slight to the Xfce desktop environment, as it is very capable.

Conclusion – The New Default

So our default OS for our Storinators will now be CentOS 7 running the MATE desktop environment. It’s lightweight enough to do everything we want it to do, while still holding onto some of GNOME’s signature aesthetics.

And with all that said, at the end of the day, 45 Drives and our parent company Protocase are all about customization. We don’t want to limit your imagination – we can build or install (almost) anything you want. We have solid, stable products for people in need of a straightforward storage pod with no graphics card, but we’ve also got solid, stable products that can be customized for people who want to dream big and do something different.

What’s your experience with CentOS, and the various lightweight desktop environments? Share your thoughts in the comments.

If you already own a Storinator, and want to upgrade to CentOS 7, check out our wiki for step-by-step instructions on upgrading to CentOS 7 MATE desktop environment.

No comments:

Post a Comment