HighPoint RocketRAID: Installation
From Debian Clusters
This is the first page of a two part tutorial on HighPoint RocketRAID. For a bare bones introduction to RAID, see File System: RAID Arrays. The full RocketRAID tutorial includes:
- HighPoint RocketRAID: Installation
- HighPoint RocketRAID: Array Creation
Contents |
Updating the BIOS
For the new Raid hardware to work, the BIOS needs to be updated. The source for this comes from High Point's website. (Their site is set up with poorly designed frames, which makes linking and bookmarking difficult, but you're trying to get to this page.) Click on "Support" in the upper left and then choose "BIOS + Drivers".
From there, scroll down to BIOS. At the time of this writing, version 1.7 is the newest version. If there's a newer version, right-click "Download" and copy the location of the file. Otherwise, you can use the link below.
wget <location for your raid BIOS>
You'll need to unzip the file, but you might want to put it in a new directory first, because it will dump several files. (If you try to run unzip and it isn't found, you'll need to apt-get install unzip.)
mkdir rr232-biosmv RR232*.zip rr232-bioscd rr232-biosunzip RR232*.zip
Notice that the hptflash file is an .exe, a Windows executable. This won't work in Linux. From the same HighPoint webpage, find the address for and download the "Load Utility for Linux".
wget <location for your RAID Load utility>
Untar it:
tar xvzf hptflash*.tgz
Now you're ready to flash the BIOS. This will overwrite your old BIOS! If you think you may ever want your old BIOS again, make a backup before this next step! When you're ready to overwrite your BIOS, run
./hptflash rr<your RAID model and version>
You'll need to reboot after this.
Kernel Module
In order for the kernel to detect the RAID hardware at boot up, a module needs to be added to the kernel. You can either patch your existing kernel (easier option) or compile a new kernel with the patch. Either way, you'll need the source code for the kernel module from High Point. Again, this is from High Point's website. Click on "Support" in the upper left and then choose "BIOS + Drivers".
From here, click on your particular RAID model. Scroll to the bottom of the page where it says "Open Source driver" and right-click the location of the file (my documentation may not be up-to-date with the latest version). Then from your server, run
wget http://www.highpoint-tech.com/BIOS_Driver/rr232x/Linux/rr232x-linux-src-v1.8-080304-1510.tar.gz
Untar the file with
tar xvzf rr232x*tar.gz
and then cd into a new directory that was created within the new directory:
cd rr232x-linux-src*/kproduct/rr232x/linux/
You'll also need the kernel source for your current kernel.
Kernel Source
Getting the kernel source for a standard kernel is very easy. (If you're running a standard kernel, I assume know where the source is that you used to compile it.) To find out what kernel you're running, execute
uname -a | awk '{print $3}'
This your version of the kernel. To download the source for it, run
apt-get install linux-headers-<your header here>
For instance, on the machine I'm setting up, mine was
apt-get install linux-headers-2.6.24-1-amd64
Patching the Kernel
You should still be within the rr232x-linux-src*/kproduct/rr232x/linux/ directory. From here, run
make
and then
make install
This will finish with an error. The installer assumes this is a Red Hat system with the binary mkinitrd. Since this is Debian, we have mkinitramfs instead, so we'll have to do it by hand.
make[1]: Leaving directory `/usr/src/linux-headers-2.6.24-1-amd64' You made a module which is for current kernel 2.6.24-1-amd64. Deleting previous installed driver module rr232x... Install the new driver module... Updating module dependencies...Done. Checking for initrd images to be updated... Can not find command 'mkinitrd'. make: *** [install] Error 1
To finish up, we need to run mkinitramfs. This will replace the current RAM image used when the computer boots, located at /boot/initrd.img-<your kernel version>, with one that understands about the RAID controller so that the drives will be able to be accessible when it's time to access them as part of a normal boot. To create a new RAM image and replace the old one, run
mkinitramfs -o /boot/initrd.img-<your kernel> <your kernel>
-
-ospecifies where the output file should be placed - the second instance of
your kernelspecifies the kernel version
Compiling a New Kernel
The other option is to compile a new kernel. This will take significantly longer than just patching the existing kernel, but you can appended "-rr232" or whatever else you want to the name of the kernel. Cool!
From within the rr232x-linux-src*/kproduct/rr232x/linux/ directory, run
make patchkernel KERNELDIR=/usr/src/linux-source-<your kernel>
This creates a patch in the kernel directory in order for the kernel to be built again. From here, you can follow the Compiling the Kernel "The Debian Way" tutorial on how to custom compile a kernel.
Enabling the Module at Boot
Technically, this module doesn't need to be available to the kernel at boot time, unless you specifically would like to have the system boot up from a Linux install on one of the RAID drives. If you'd like to make it available at boot time, use your favorite text editor to open
/etc/modules
and add the line
rr232x
RAID Management Utilities
After you've rebooted Debian once to use the kernel with the raid patch in it, you're ready to start playing with RAID, and you'll need High Point's RAID management utilities.
These are downloaded from High Point's website. (Their site is set up with poorly designed frames, which makes linking and bookmarking difficult, but you're trying to get to this page.) Click on "Support" in the upper left and then choose "BIOS + Drivers".
From here, click on your model of RocketRAID. Then look for "RAID Management Utility" and the column headed by "CLI" (CLI stands for Command Line Interface). Right click and copy the location of this file. Then use wget to download the file onto the head node. The line should look something like this:
wget http://www.highpoint-tech.com/BIOS_Driver/HRM/Linux/CLI-Linux-2.3-3-1214.tgz
While you're here, go ahead and do the same thing for the "GUI Based" utilities.
Next, untar the two files:
tar xvzf CLI-Linux-2*.tgz
This will drop four new files into the current directory: a PDF and three .rpm files. An rpm file is a package for the Red Hat package manager (RPM). (Debian's package manager is apt, but apt doesn't know how to use rpm files.) In order to install an rpm package, Debian needs a package called rpm. Do this with
apt-get install rpm
Now we can use it to install one of the RocketRAID rpm packages. First install the hptserver package with the line below. Make sure that you select the correct package starting with hptsvr, and to choose the 64-bit package if your system is running 64-bit Debian.
rpm --nodeps -Uvh <your package here>
--nodepstells RPM not to check for dependencies before installing the package. RPM doesn't play nicely with apt, and without this command, installation with fail because RPM won't realize that the standard packages have already been installed.-Ustands for upgrade-vis for verbose, to display more information than standard to the screen so we can make sure everything is installing all right-his for hash to print the hash marks as the package is being installed with, and in combination,-vhgives a verbose display of the hash marks but in a nicer format than-halone
This will end with a message that first made me think installation had failed, but it is actually completed. (Try installing it again and you'll see that it's already installed.) Here's the finished installation message:
Starting hptsvr daemonDriver is not loaded.
Next, install the RAID configuration utility:
rpm --nodeps -Uvh hptraidconf-*.rpm
And finally, the GUI package that starts with hptraid-, selecting the correct package for 64-bit or not, as the case may be:
rpm --nodeps -Uvh <your package here>
Sanity Check
Now, start up the RAID daemon with
/etc/init.d/hptdaemon
You may get an error the first time:
Starting hptsvr daemon Driver is not loaded .
If you run an strace on the command, you'll see that the script is looking for a file called /etc/hptcfg. It wants the name of the kernel module in this file. To find out your version, run
lsmod | grep rr | grep -v scsi | awk '{print $1}'
You can use this same command to shove that information into /etc/hptcfg:
echo `lsmod | grep rr | grep -v scsi | awk '{print $1}'` > /etc/hptcfg
Of course, you always just add the line manually by using a text editor, too.
Once the line is in place, you should be able to successfully start up the daemon:
/etc/init.d/hptdaemon
Next...
If you're ready to create and initialize an array, continue on to HighPoint RocketRAID: Array Creation.

