How to Install EMC Powerpath under Oracle Linux 6

In this article we are going to show you how to install EMC Powerpath and Navisphere agent under Oracle Linux. We had to install Oracle Linux 6 and Oracle Database 12c Release 1 with EMC VNX storage Multipathing LUNS but surprisingly EMC Powerpath service was failed to run.

How to resolve this issue?

Create the repo:


[root@labsrv mnt]# cd /media
[root@A1UAC3DB10 media]# ls
OL6.0 x86_64 Disc 1 20110203
[root@A1UAC3DB10 media]# cd OL6.0\ x86_64\ Disc\ 1\ 20110203/^C
[root@A1UAC3DB10 media]# cd /etc/yum-re.repos.d/
[root@A1UAC3DB10 yum.repos.d]# ls
packagekit-media.repo
[root@A1UAC3DB10 yum.repos.d]# vi rhel-cd.repo
“rhel-cd.repo” [New File]~
INSERT –[rhel-cd]
name=Red Hat Enterprise Linux $releasever - $basearch - CD
baseurl=file:///media/OL6.0\ x86_64\ Disc\ 1\ 20110203
enabled=1
gpgcheck=0:wq
“rhel-cd.repo” [New] 5L, 145C written
Now to disable the other repos present:
[root@A1UAC3DB10 yum.repos.d]# cat packagekit-media.repo
[InstallMedia]
name=Oracle Linux 6.0
mediaid=1296776772.49
metadata_expire=-1
gpgcheck=0
cost=500
enabled=0

Update through yum:
[root@A1UAC3DB10 yum.repos.d]# yum update
Loaded plugins: refresh-packagekit, rhnplugin
This system is not registered with ULN.
ULN support will be disabled.
rhel-cd
| 3.7 kB 00:00
rhel-cd/primary_db 100%
[===============================] 0.0 B/s | 48 kB –:– ETA
Setting up Update Process
No Packages marked for Update

Clean the yum cache.
[root@A1UAC3DB10 yum.repos.d]# yum clean all
Loaded plugins: refresh-packagekit, rhnplugin
Cleaning up Everything

When installing the PowerPath rpm the package complains about libraries present in gcc (why gcc is not fully installed by default on this distro is beyond me)

[root@A1UAC3DB10 media]# yum install gcc.x86_64 gcc-c++.x86_64
search gccupdatecleanupdatesearch gccinstall gcc.x86_64 gcc-c++.x86_64
Loaded plugins: refresh-packagekit, rhnplugin
This system is not registered with ULN.
ULN support will be disabled.
rhel-cd/primary_db
| 3.1 MB 00:15
Setting up Install Process
Resolving Dependencies
–> Running transaction check
Transaction Summary
=====================================================
Install 10 Package(s)
Upgrade 0 Package(s)
Total download size: 24 M
Installed size: 58 M
Is this ok [y/N]: y
Downloading Packages:
—————————————————
Installing : gcc-c++-4.4.4-13.el6.x86_64
()
Installed:
gcc.x86_64 0:4.4.4-13.el6 gcc-c++.x86_64 0:4.4.4-13.el6
Complete!

So far, so good, so let’s try again:
[root@A1UAC3DB10 media]# cd /tmp
[root@A1UAC3DB10 tmp]# cd EMC_PowerPath
[root@A1UAC3DB10 EMC_PowerPath]# ls -l
total 174388
-rw-r–r–. 1 root root 121546424 Jun 24 11:50 EMCPower.LINUX.5.3.SP1.b111.tar.gz
-rw-r–r–. 1 root root 57024083 Jun 24 11:50 EMCPower.LINUX.5.6.GA.b143.tar.gz
[root@A1UAC3DB10 EMC_PowerPath]# tar -xvf EMCPower.LINUX.5.6.GA.b143.tar.gz
EMCPower.LINUX-5.6.0.00.00-143.RHEL5.i386.rpm
EMCPower.LINUX-5.6.0.00.00-143.RHEL5.x86_64.rpm
EMCPower.LINUX-5.6.0.00.00-143.RHEL6.i386.rpm
EMCPower.LINUX-5.6.0.00.00-143.RHEL6.x86_64.rpm
[root@A1UAC3DB10 EMC_PowerPath]# rpm -ivh EMCPower.LINUX-5.6.0.00.00-143.RHEL6.x86_64.rpm
Preparing…
1:EMCpower.LINUX ################### [100%]
All trademarks used herein are the property of their respective owners.
NOTE:License registration is not required to manage the CLARiiON AX series array.

Nice, now to Navisphere agent and CLI:
[root@A1UAC3DB10 EMC_PowerPath]# cd ..
[root@A1UAC3DB10 tmp]# rpm -ivh NaviCLI-Linux-64-x86-en_US-7.30.11.0.38-1.x86_64.rpm
error: Failed dependencies:
libc.so.6 is needed by NaviCLI-Linux-64-x86-en_US-7.30.11.0.38-1.x86_64
libc.so.6(GLIBC_2.0) is needed by NaviCLI-Linux-64-x86-en_US-7.30.11.0.38-1.x86_64
libc.so.6(GLIBC_2.1) is needed by NaviCLI-Linux-64-x86-en_US-7.30.11.0.38-1.x86_64
libc.so.6(GLIBC_2.3) is needed by NaviCLI-Linux-64-x86-en_US-7.30.11.0.38-1.x86_64
libdl.so.2 is needed by NaviCLI-Linux-64-x86-en_US-7.30.11.0.38-1.x86_64
libdl.so.2(GLIBC_2.0) is needed by NaviCLI-Linux-64-x86-en_US-7.30.11.0.38-1.x86_64
libdl.so.2(GLIBC_2.1) is needed by NaviCLI-Linux-64-x86-en_US-7.30.11.0.38-1.x86_64
[root@A1UAC3DB10 tmp]# cd NaviHostAgent-Linux-6.26.32.0.72
[root@A1UAC3DB10 NaviHostAgent-Linux-6.26.32.0.72]# ls
ESX_install.sh ESX_uninstall.sh libgd2-2.0.33-2_11.el6.x86_64.rpm naviagentcli-6.26.32.0.72-1.noarch.rpm
[root@A1UAC3DB10 NaviHostAgent-Linux-6.26.32.0.72]# rpm -ivh libgd2-2.0.33-2_11.el6.x86_64.rpm
warning: libgd2-2.0.33-2_11.el6.x86_64.rpm: Header V4 DSA/SHA1 Signature, key ID 66534c2b: NOKEY
Preparing…
1:libgd2 (100%)########################################### [100%]
[root@A1UAC3DB10 NaviHostAgent-Linux-6.26.32.0.72]# rpm -ivh naviagentcli-6.26.32.0.72-1.noarch.rpm
error: Failed dependencies:
libc.so.6 is needed by naviagentcli-6.26.32.0.72-1.noarch
libc.so.6(GLIBC_2.0) is needed by naviagentcli-6.26.32.0.72-1.noarch
libc.so.6(GLIBC_2.1) is needed by naviagentcli-6.26.32.0.72-1.noarch
libc.so.6(GLIBC_2.1.3) is needed by naviagentcli-6.26.32.0.72-1.noarch
libc.so.6(GLIBC_2.2) is needed by naviagentcli-6.26.32.0.72-1.noarch
libc.so.6(GLIBC_2.3) is needed by naviagentcli-6.26.32.0.72-1.noarch
libdl.so.2 is needed by naviagentcli-6.26.32.0.72-1.noarch
libdl.so.2(GLIBC_2.0) is needed by naviagentcli-6.26.32.0.72-1.noarch
libdl.so.2(GLIBC_2.1) is needed by naviagentcli-6.26.32.0.72-1.noarch
libm.so.6 is needed by naviagentcli-6.26.32.0.72-1.noarch
libm.so.6(GLIBC_2.0) is needed by naviagentcli-6.26.32.0.72-1.noarch
libnsl.so.1 is needed by naviagentcli-6.26.32.0.72-1.noarch
libpthread.so.0 is needed by naviagentcli-6.26.32.0.72-1.noarch
libpthread.so.0(GLIBC_2.0) is needed by naviagentcli-6.26.32.0.72-1.noarch
libpthread.so.0(GLIBC_2.1) is needed by naviagentcli-6.26.32.0.72-1.noarch
libpthread.so.0(GLIBC_2.2) is needed by naviagentcli-6.26.32.0.72-1.noarch
libpthread.so.0(GLIBC_2.3.2) is needed by naviagentcli-6.26.32.0.72-1.noarch

So, even with gcc for the current architecture it complains.
What else de we have on the media?

[root@A1UAC3DB10 NaviHostAgent-Linux-6.26.32.0.72]# yum search glibc
Loaded plugins: refresh-packagekit, rhnplugin
This system is not registered with ULN.
ULN support will be disabled.
=== Matched: glibc ====================
glibc-common.x86_64 : Common binaries and locale data for glibc
glibc.i686 : The GNU libc libraries
glibc.x86_64 : The GNU libc libraries
glibc-devel.i686 : Object files for development using standard C libraries.
glibc-devel.x86_64 : Object files for development using standard C libraries.
glibc-headers.x86_64 : Header files for development using standard C libraries.
glibc-utils.x86_64 : Development utilities from GNU C library
compat-glibc-headers.x86_64 : Header files for development using standard C libraries.
kernel-headers.x86_64 : Header files for the Linux kernel for use by glibc
kernel-uek-headers.x86_64 : Header files for the Linux kernel for use by glibc
compat-glibc.x86_64 : Compatibility C library
latrace.i686 : LD_AUDIT feature frontend for glibc 2.4+
latrace.x86_64 : LD_AUDIT feature frontend for glibc 2.4+
nscd.x86_64 : A Name Service Caching Daemon (nscd).
nss_db.i686 : An NSS library for the Berkeley DB
nss_db.x86_64 : An NSS library for the Berkeley DB
plpa-libs.i686 : Portable Linux Processor Affinity Libraries
plpa-libs.x86_64 : Portable Linux Processor Affinity Libraries
yp-tools.x86_64 : NIS (or YP) client programs
yum-plugin-protect-packages.noarch : Yum plugin to prevents Yum from removing itself and other protected packages
[root@A1UAC3DB10 NaviHostAgent-Linux-6.26.32.0.72]# yum install glibc-utils.x86_64 compat-glibc-headers.x86_64
64 compat-glibc.x86_64
Loaded plugins: refresh-packagekit, rhnplugin
This system is not registered with ULN.
ULN support will be disabled.
Setting up Install Process
Resolving Dependencies
–> Running transaction check
—> Package compat-glibc.x86_64 1:2.5-46.2.0.1 set to be updated
—> Package compat-glibc-headers.x86_64 1:2.5-46.2.0.1 set to be updated
—> Package glibc-utils.x86_64 0:2.12-1.7.el6 set to be updated
–> Finished Dependency Resolution
Dependencies Resolved
===
Install 3 Package(s)
Upgrade 0 Package(s)
Total download size: 1.8 M
Installed size: 8.4 M
Is this ok [y/N]: y
Downloading Packages:
(…)
Complete!

Another try:
[root@A1UAC3DB10 tmp]# rpm -ivh NaviCLI-Linux-64-x86-en_US-7.30.11.0.38-1.x86_64.rpm
error: Failed dependencies:
libc.so.6 is needed by NaviCLI-Linux-64-x86-en_US-7.30.11.0.38-1.x86_64
libc.so.6(GLIBC_2.0) is needed by NaviCLI-Linux-64-x86-en_US-7.30.11.0.38-1.x86_64
libc.so.6(GLIBC_2.1) is needed by NaviCLI-Linux-64-x86-en_US-7.30.11.0.38-1.x86_64
libc.so.6(GLIBC_2.3) is needed by NaviCLI-Linux-64-x86-en_US-7.30.11.0.38-1.x86_64
libdl.so.2 is needed by NaviCLI-Linux-64-x86-en_US-7.30.11.0.38-1.x86_64
libdl.so.2(GLIBC_2.0) is needed by NaviCLI-Linux-64-x86-en_US-7.30.11.0.38-1.x86_64
libdl.so.2(GLIBC_2.1) is needed by NaviCLI-Linux-64-x86-en_US-7.30.11.0.38-1.x86_64


Hmm… still not enough. This was when I had the idea to install the gcc for a 32bits system:

[root@A1UAC3DB10 tmp]# yum install glibc.i686
Loaded plugins: refresh-packagekit, rhnplugin
This system is not registered with ULN.
ULN support will be disabled.
Setting up Install Process
Resolving Dependencies
–> Running transaction check
—> Package glibc.i686 0:2.12-1.7.el6 set to be updated
–> Processing Dependency: libfreebl3.so(NSSRAWHASH_3.12.3) for package: glibc-2.12-1.7.el6.i686
–> Processing Dependency: libfreebl3.so for package: glibc-2.12-1.7.el6.i686
–> Running transaction check
—> Package nss-softokn-freebl.i686 0:3.12.7-1.1.el6 set to be updated
–> Finished Dependency Resolution
Dependencies Resolved
Transaction Summary
=======================
Install 2 Package(s)
Upgrade 0 Package(s)
Total download size: 4.4 M
Installed size: 13 M
Is this ok [y/N]: y
Downloading Packages:
—————-
Total 203 kB/s | 4.4 MB 00:22
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Installed:
glibc.i686 0:2.12-1.7.el6
Dependency Installed:
nss-softokn-freebl.i686 0:3.12.7-1.1.el6
Complete!

New attempt:
[root@A1UAC3DB10 tmp]# rpm -ivh NaviCLI-Linux-64-x86-en_US-7.30.11.0.38-1.x86_64.rpm
Preparing…
1:NaviCLI-Linux-64-x86-en ############ [100%]
Please enter the verifying level(low|medium|l|m) to set?
medium
Setting medium verifying level

That was it… it was asking for the 32 bits gcc…
Now, let’s start both from the init.d scripts:

[root@A1UAC3DB10 etc]# cd init.d
[root@A1UAC3DB10 init.d]# cd ./PowerPath start
Starting PowerPath: FATAL: Error inserting emcp (/lib/modules/2.6.32-100.28.5.el6.x86_64/powerpath/emcp.ko): Invalid module format
PowerPath could not load module emcp
Error loading PowerPath kernel modules
failed
[root@A1UAC3DB10 init.d]# uname -a
Linux A1UAC3DB10 2.6.32-100.28.5.el6.x86_64 #1 SMP Wed Feb 2 18:40:23 EST 2011 x86_64 x86_64 x86_64 GNU/Linux

What the hell? Why is the 2.6.32-100 kernel here when the libraries were compiled against the old 2.6.32-71 kernel? Probably my mistake during the server installation…
Let’s change grub and restart the server:

[root@A1UAC3DB10 init.d]# cd /etc/grub /etc/grubv /etc/grubi /etc/grub.conf
“/etc/grub.conf” 21L, 1259C# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You have a /boot partition. This means that
# all kernel and initrd paths are relative to /boot/, eg.
# root (hd0,0)
# kernel /vmlinuz-version ro root=/dev/mapper/vg_a1uac3db10-lv_root
# initrd /initrd-[generic-]version.img
#boot=/dev/cciss/c0d0
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title Oracle Linux Server-uek (2.6.32-100.28.5.el6.x86_64)
title Oracle Linux Server-base (2.6.32-71.el6.x86_64)
~
default==1:wq
“/etc/grub.conf” 21L, 1259C written
[root@A1UAC3DB10 init.d]# shutdown -r now
Broadcast message from root@A1UAC3DB10
(/dev/pts/0) at 12:00
The system is going down for reboot NOW!

Done. Let’s check the kernel again:
[root@A1UAC3DB10 ~]# uname -a
Linux A1UAC3DB10 2.6.32-71.el6.x86_64 #1 SMP Wed Dec 15 12:36:54 EST 2010 x86_64 x86_64 x86_64 GNU/Linux
[root@A1UAC3DB10 init.d]# cd /tmp
[root@A1UAC3DB10 tmp]# cd NaviHostAgent-Linux-6.26.32.0.72
[root@A1UAC3DB10 NaviHostAgent-Linux-6.26.32.0.72]# ls
ESX_install.sh ESX_uninstall.sh libgd2-2.0.33-2_11.el6.x86_64.rpm naviagentcli-6.26.32.0.72-1.noarch.rpm

Let’s try to install the CLI for naviagent again:
[root@A1UAC3DB10 NaviHostAgent-Linux-6.26.32.0.72]# rpm -ivh naviagentcli-6.26.32.0.72-1.noarch.rpm
Preparing…
1:naviagentcli (100%)########################################### [100%]

Nice. What about the init.d scripts?
[root@A1UAC3DB10 NaviHostAgent-Linux-6.26.32.0.72]# cd /etc/init.d
[root@A1UAC3DB10 init.d]# ./naviagent start
Starting Navisphere agent: [ OK ]
[root@A1UAC3DB10 init.d]# ./PowerPath start
Starting PowerPath: done

Great. Let’s check the devices and see if PowerPath is ready to work with the luns that are going to be presented to the server:
[root@A1UAC3DB10 init.d]# cd /dev
[root@A1UAC3DB10 dev]# ls -l emcpower
crw-r–r–. 1 root root 10, 56 Jun 24 12:09 emcpower

Yep… and the powermt tool is also working:
[root@A1UAC3DB10 dev]# powermnt display dev=all
Device(s) not found.
[root@A1UAC3DB10 dev]# powermt -help
Usage:
powermt <command> [class=all|clariion|ess|hitachi|hpxp|invista|symm]
powermt check [force] [hba=<hba#>|all] [dev=|all]
powermt check_registration
powermt config
powermt disable hba=<hba#>
powermt display nonvirtual {dev=<device>|all} [every=<#seconds>] [class=invista|all]
[width=<#col>]
powermt display [ports] [dev=<device>|all] [every=<#seconds>]
[width=<#col>]
powermt display hba_mode
powermt display latency [dev=<device>|all] [every=<#seconds>]
[width=<#col>]
powermt display options
powermt display paths [every=<#seconds>] [width=<#col>]
powermt display port_mode
powermt display unmanaged
powermt enable hba=<hba#>
powermt load [file=<filename>]
powermt manage {dev=<device> | class=<storage array class>}
powermt release
powermt remove [force] hba=<hba#>|all | dev=|all
powermt restore [hba=<hba#>|all] [dev=|all]
powermt save [file=<filename>]
powermt set mode=active|standby [hba=<hba#>|all] [dev=|all]
powermt set path_latency_monitor=on|off
powermt set path_latency_threshold=<seconds>
powermt set periodic_autorestore=on|off
powermt set policy={ad|co|lb|li|re|rr|so|si} [dev=<device>|all]
powermt set port_disable={true|false} dev=<device>
powermt set streamio_threshold=<threshold_count> [dev=<device>|all]
powermt unmanage {dev=<device> | class=<storage array class>}
powermt update lun_names
powermt version [format={verbose|legacy}]

All good now. Hope this might help someone out there scratching it’s head on a similar problem.

No comments:

Powered by Blogger.