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 lineRed 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 sayrhel_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.