mpt-statusd: detected non-optimal RAID status

I have noticed that mpt-status gets installed by default in Debian 7 Wheezy when running on VMware. Since the virtual machine does not use RAID mpt-statusd reports "non-optimal" RAID status in the log every 10 minutes.

mpt-statusd: detected non-optimal RAID status

The mpt-status package is used to query the status of LSI SCSI HBAs so unless your machine is using such HBA cards the mpt-status package should be safe to remove.

sudo service mpt-statusd stop
sudo apt-get purge mpt-status


Installing RALUS client on Debian with 3.0 kernel

1. Unpack the archive provided by Symantec

  • tar xzf RALUS_RMALS_RAMS-2896.9.tar.gz

2. Stop the RALUS service if it is already installed and runnig

  • /etc/init.d/VRTSralus.init stop

3. Very important, if you are under a 64 bit Linux you have to this

  • Extract debian package :
    tar xzf RALUS64/pkgs/Linux/VRTSralus.tar.gz
  • Install debian package :
    dpkg -i VRTSralus-13.0.2896-0.x86_64.deb
  • Start installation :
    ./RALUS64/installralus
  • If you get "./installralus: line 50: ../perl/Linux/bin/perl: No such file or directory", simply edit ./RALUS64/installralus, and change line 50 :

  • from:

    • if [ $LOCAL_PERL -eq 1 ] ; then
        ../perl/$OS/bin/perl -I.. -I$PATH -I$VXIF_HOME -I../perl/$OS/lib/$PERL_VER ./installralus.pl $*
      else
        perl -I.. -I$PATH -I$VXIF_HOME ../installralus.pl $*
      fi
    •  
      to:
      #if [ $LOCAL_PERL -eq 1 ] ; then
      # ../perl/$OS/bin/perl -I.. -I$PATH -I$VXIF_HOME -I../perl/$OS/lib/$PERL_VER ./installralus.pl $*
      #else
        perl -I.. -I$PATH -I$VXIF_HOME ../installralus.pl $* 
      #fi
      C) If the installation is sucessful but VRTSralus refuses to start, launch /opt/VRTSralus/bin/beremote –-log-console to see the error.

    If you get error while loading shared libraries: libstdc++.so.5: cannot open shared object file: No such file or directory you simply need to install the package :

    • Under Debian : apt-get install libstdc++5

      However the service will fail to start afterwards.

Change into ralus directory
#cd /opt/VRTSralus/bin

Make a backup of libbesocket.so
#cp libbesocket.so libbesocket.so.orig

Install objdump
apt-get install binutils binutils-multiarch

Disassemble the binary to a file
#objdump -D libbesocket.so > libbesocket.asm

Open file and search for ‘$0x8938?

#nano libbesocket.asm
Type ctrl+w to search
Type '$0x8938' and press enter

Find the following lines and locate the hex highlighted in red in front of the jump-no-sign instruction.
In my case it happens to be ’79 19?.

23840:       31 c0                   xor    %eax,%eax
23842:       be 38 89 00 00          mov    $0x8938,%esi
23847:       e8 2c df fe ff          callq  11778 <ioctl@plt>
2384c:       85 c0                   test   %eax,%eax
2384e:       79 19                   jns    23869 <_Z10getifaddrsPP7ifaddrs+0xb9>
23850:       e8 d3 df fe ff          callq  11828 <__errno_location@plt>
23855:       83 38 16                cmpl   $0x16,(%rax)
23858:       0f 85 40 03 00 00       jne    23b9e <_Z10getifaddrsPP7ifaddrs+0x3ee>
2385e:       c7 84 24 ec 00 00 00    movl   $0x20,0xec(%rsp)

Install hex editor and open the file

#apt-get install hexer
#hexer libbesocket.so

Search for the hex we found earlier

Type '/' to search
Type '\xx 79 19' and press enter

NOTE: Only change the code where the hex matches the preceeding chunks of code in the middle column earlier in that exact order. This is what my line looked like.
00023840:  31 c0 be 38 89 00 00 e8  2c df fe ff 85 c0 78 19  1..8....,.....x.

Using arrow keys move cursor into position and change value from ’79’ to ’78’

Type 'r' to edit
Type '78' and press enter
Type ':wq' and press enter to quit while saving

Now go and start the service
/etc/init.d/VRTSralus.init start