Using an EMC CX3-10 Storage with CentOS5

I have had the mixed pleasure of setting up an EMC CX3-10 Storage (fibrechannel and iSCSI) on a couple of CentOS5 machines, lately, and I’m going to share here the tweaks I had to make to the provided software. I hope this will come handy to someone else on the planet.

Before you proceed, the standard disclaimer:
If you break your costly servers and storage appliances using these instructions, you can keep the pieces. This is simply my experience, use at your own risk, and don’t come crying if you mess up🙂

The Drivers

CentOS5 recognized the HBA cards right away, so no sweat here. Hey, it’s RedHat Enterprise 5, after all, under the hood.

The EMC CX3-10 Storage comes with a couple of packages (namely NaviSphere and PowerPath) that install drivers and stuff so that the system can see the disks correctly. And here comes the quirky part: the software has to ensure that it’s been installed on a supported platform, and while RHEL5 is officially supported, CentOS5 is not: the software refuses to start, and if started manually it spews a phrase like “Ensure to install this software on a RedHat Enterprise machine”, or something.

Now, we all know CentOS is binary compatible with RHEL… what’s missing?

I’ll tell you what: the software is performing some tests that are a wee bit too clever… to work around them, perform these steps:

First things first, edit the file /etc/redhat-release and put in the single line
Red Hat Enterprise Linux Server release 5 (Tikanga)
so that the system is now identifying itself as a RHEL machine.

But it’s not enough for PowerPath;

Edit the file /etc/opt/emcpower/EMCpower.LINUX-5.0.1/enable, and substitute the lines that say

rhel_version=`rpm -qf /etc/issue | \
sed 's/redhat-release-\([0-9]\)Server.*/\1/'`

with these:

rhel_version=`rpm -qf /etc/issue | \
sed 's/centos-release-\([0-9]\).*/\1/'`

This way the script will be able to find the ‘5’ version number in the name of the package it is seeking (which is centos-release, instead of redhat-release).

The init scripts

The provided init scripts are a bit amateurish, to say the least, but proprietary software vendors are not really known for their ability to comply to the LSB specifications… even when they want them as mandatory…

So, edit the file /ect/init.d/PowerPath and add the line
# chkconfig: 345 20 40
just above the one that starts with # description:. Then, use the command chkconfig --add PowerPath to make that service manageable from the standard LSB tools. Just to be sure, also use
chkconfig PowerPath reset

chkconfig PowerPath on
chkconfig --list | grep PowerPath
and check that the service is configured as on.

Other than that, follow the normal instructions, and make sure that the naviagent service starts before the PowerPath service, which it should if you are using my numbers: naviagent already has LSB start and stop priorities, and they by default 25 and 35.

2 comments on “Using an EMC CX3-10 Storage with CentOS5

  1. Roberto says:


    Did you manage to have this situation supported by EMC as an atipic configuration?

    • renatoram says:

      Uh… the engineer that performed the initial setup and install didn’t seem to mind much about it. I fixed it, it worked. CentOS is 100% binary compatible with RHEL, it’s by all means the exact same distribution, so… it’s not my fault as a paying customer that they’re not able to write install scripts.

      Wanna hear a funny one? We have a proprietary HP package on another system and THEY install it on CentOS (it’s in the official HP documentation, complete with specific versions supported) and then when installing the HP system support rpms they perform the exact same trick: a script changes the /etc/redhat-release to the RHEL one and then changes it back.

      Who knows, maybe some day the ISVs will learn to stop messing with standard linux install procedures and take some time to learn actual packaging…

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s