2010-06-14

Data Protector on Ubuntu LTS 10.04

We use Data Protector for backup at our organization. To be quite honest, HP is not among the best, regarding packaging for Linux distributions.

For earlier versions of Ubuntu, the provided omnisetup.sh has been able to install the software, if we did some prerequisites:

  1. Install rpm: apt-get install rpm
  2. Install xinetd: apt-get install xinetd
  3. Uncomment rplay from /etc/services
  4. Allow TCP port 5555 from cell server to the host
When we tried to do this on Ubuntu LTS 10.04, we ran into the new "--force-debian" switch for RPM that breaks the install. We did some trial and error checking, and ended up extracting the RPMs from the distributed files from HP. If you just want to continue to use omnisetup.sh, the quick fix is to backup /usr/bin/rpm and replace it with a script:


# mv /usr/bin/rpm /usr/bin/rpm.old
# cat > /usr/bin/rpm
#!/bin/sh
/usr/bin/rpm-old --force-debian $@
^D


We located a file called DP_A0611_UXia64_IS.sd_depot, this file is in fact a tar archive:


# file DP_A0611_UXia64_IS.sd_depot
DP_A0611_UXia64_IS.sd_depot: POSIX tar archive


Unpack this file (I did this in /tmp):


/tmp# tar xvf /local/dataprotector/hpux_ia/DP_DEPOT/DP_A0611_UXia64_IS.sd_depot


You will find an unpacked directory called DATA-PROTECTOR

On our clients, we need three packages: core, da (disk agent) and ma (media agent). These packages are located in the OMNI-CORE-IS (core) and OMNI-OTHUX-P (da and ma) in the DATA-PROTECTOR directory:


OMNI-CORE-IS/opt/omni/databases/vendor/omnicf/gpl/i386/linux-x86/A.06.11/packet.Z
OMNI-CORE-IS/opt/omni/databases/vendor/omnicf/gpl/x86_64/linux-x86-64/A.06.11/packet.Z
OMNI-OTHUX-P/opt/omni/databases/vendor/da/gpl/i386/linux-x86/A.06.11/packet.Z
OMNI-OTHUX-P/opt/omni/databases/vendor/da/gpl/x86_64/linux-x86-64/A.06.11/packet.Z
OMNI-OTHUX-P/opt/omni/databases/vendor/ma/gpl/i386/linux-x86/A.06.11/packet.Z
OMNI-OTHUX-P/opt/omni/databases/vendor/ma/gpl/x86_64/linux-x86-64/A.06.11/packet.Z


You only need to uncompress and rename these to RPM files

To speed up this, you can use a script:

#/bin/sh

VERSION="A.06.11";

for PACKAGE_DIR in OMNI-CORE-IS/opt/omni/databases/vendor/omnicf/gpl OMNI-OTHUX-P/opt/omni/databases/vendor/da/gpl OMNI-OTHUX-P/opt/omni/databases/vendor/ma/gpl
do
for ARCH in i386/linux-x86 x86_64/linux-x86-64
do
uncompress $PACKAGE_DIR/$ARCH/$VERSION/packet.Z
RPM=$(file $PACKAGE_DIR/$ARCH/$VERSION/packet | cut -d: -f2- | cut -d\ -f6-)
if [ $ARCH = "i386/linux-x86" ]; then
RPM="${RPM}.i386.rpm"
else
RPM="${RPM}.x86_64.rpm"
fi
cp -v $PACKAGE_DIR/$ARCH/$VERSION/packet ../$RPM
done
done


I converted these RPMs to .deb packages using alien. You will have to convert the x86_64 packages on a 64 bit distro, and the i386 packages on a 32 bit.


for RPM in *.rpm; do alien -c -k -d --fixperms $RPM; done

If you want to use either the RPMs or the DEBs, install the core package first. To configure your cell server, just add the FQDN or IP in the file /etc/opt/omni/client/cell_server (it is not installed by the packages):


# echo "my.cell.server.tld" > /etc/opt/omni/client/cell_server


We installed these deb-packages, and everything seemed ok, but the client never returned any partitions to the cell manager. We found the solution, and the problems were due to the use of ext4, which Data Protector do not know about.

To fix this, you will have to add "-t ext4" to the file /opt/omni/lbin/.util. I have made a patch you can download and apply from /:

/# patch -p0 < /tmp/util.patch


To simplify the install process on Ubuntu, I made an install script. This script installs all needed packages, fixes rplay in /etc/services, adds a rule to shorewall (if found), installs core, ma and da and applies the patch.

To use this, copy your deb packages, the util.patch and the install.sh script to the same folder:

/dataprotector/DEBS# ls
install.sh ob2-da_A.06.11-1_i386.deb
ob2-core_A.06.11-1_amd64.deb ob2-ma_A.06.11-1_amd64.deb
ob2-core_A.06.11-1_i386.deb ob2-ma_A.06.11-1_i386.deb
ob2-da_A.06.11-1_amd64.deb util.patch


We share the dataprotector director using NFS:

# cat /etc/exports
/local/dataprotector *(ro,sync,no_subtree_check)


The process of installing Data Protector on an Ubuntu is the quite easy:
user@host:~$ sudo -s
[sudo] password for user:
root@host:~# mount -t nfs server:/local/dataprotector /mnt
root@host:~# cd /mnt/DEBS/
root@host:/mnt/DEBS# ./install.sh
Removing rplay from /etc/services
Installing depending package xinetd
Installing depending package ksh
Shorewall detected... checking for port 5555... missing... adding rule...
Restarting "Shorewall firewall": done.
Installing ob2-core_A.06.11-1_amd64.deb
Installing ob2-da_A.06.11-1_amd64.deb
Installing ob2-ma_A.06.11-1_amd64.deb
Post-configuring client to use my.cell.server.tld
Detected ext4... patching /opt/omni/lbin/.util
patching file /opt/omni/lbin/.util
* Stopping internet superserver xinetd [ OK ]
* Starting internet superserver xinetd [ OK ]
Finished!
root@host:/mnt/DEBS# cd
root@host:~# unmount /mnt
root@host:~# exit