340 lines
14 KiB
Plaintext
340 lines
14 KiB
Plaintext
Linux Migration to Promise RAID Card HOWTO
|
||
|
||
Benjamin Simkin
|
||
|
||
<bensimkin (at) union.org.za>
|
||
|
||
2002-12-16
|
||
Revision History
|
||
Revision 1.5 2003-03-25 Revised by: bs
|
||
Revision 1.4 2002-12-16 Revised by: bs
|
||
Changed URL for Promise website
|
||
Revision 1.3 2002-09-04 Revised by: bs
|
||
Added Troubleshooting section
|
||
Revision 1.1 2002-08-05 Revised by: bs
|
||
|
||
|
||
This document aims to outline the steps of how to migrate an existing (Red
|
||
Hat) Linux install onto a Promise TX2 Card for the purposes of RAID-1
|
||
Mirroring. Although I am concentrating on Red Hat, the same principles may be
|
||
applied to any other distribution.
|
||
|
||
-----------------------------------------------------------------------------
|
||
Table of Contents
|
||
1. Introduction
|
||
1.1. What?
|
||
1.2. Why?
|
||
1.3. How?
|
||
1.4. Copyright and License
|
||
1.5. Disclaimer
|
||
1.6. Contact the Author
|
||
|
||
|
||
2. Module Installation
|
||
2.1. What?
|
||
2.2. How?
|
||
|
||
|
||
3. Linux Configuration
|
||
3.1. What?
|
||
3.2. How?
|
||
|
||
|
||
4. Array Configuration
|
||
4.1. Building the Array
|
||
4.2. Changing Configuration Files
|
||
|
||
|
||
5. Monitoring the Array
|
||
6. Troubleshooting
|
||
|
||
1. Introduction
|
||
|
||
This document contains two main sections, the module setup, and the
|
||
migration. Neither of these are documented anywhere on the net.
|
||
-----------------------------------------------------------------------------
|
||
|
||
1.1. What?
|
||
|
||
The Promise Fasttrak is a PCI Ultra 100 RAID Card. It can be used as a RAID
|
||
card, or as standard IDE interfaces. This documentation DOES NOT address the
|
||
issues of the 'ataraid' module, but addresses the issues of setting up the
|
||
card with the propriety module 'ft', as supplied by 'Promise Technologies'.
|
||
-----------------------------------------------------------------------------
|
||
|
||
1.2. Why?
|
||
|
||
The documentation that comes with the module contains erroneous instructions
|
||
that if followed, cause the card to not work properly. Also, upon looking
|
||
over the internet for such documentation, I found a lack.
|
||
-----------------------------------------------------------------------------
|
||
|
||
1.3. How?
|
||
|
||
Using the Promise Technology module. The module that Promise Technologies
|
||
provide works well, but the documentation they provide is somewhat lacking.
|
||
-----------------------------------------------------------------------------
|
||
|
||
1.4. Copyright and License
|
||
|
||
This document, Linux Migration to Promise RAID Card-HOWTO, is copyrighted
|
||
(c) 2002 by Benjamin Simkin. Permission is granted to copy, distribute and/or
|
||
modify this document under the terms of the GNU Free Documentation License,
|
||
Version 1.1 or any later version published by the Free Software Foundation;
|
||
with no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
|
||
Texts. A copy of the license is available at [http://www.gnu.org/copyleft/
|
||
fdl.html] http://www.gnu.org/copyleft/fdl.html.
|
||
-----------------------------------------------------------------------------
|
||
|
||
1.5. Disclaimer
|
||
|
||
No liability for the contents of this document can be accepted. Use the
|
||
concepts, examples and information at your own risk. There may be errors and
|
||
inaccuracies, that could be damaging to your system. Proceed with caution,
|
||
and although this is highly unlikely, the author does not take any
|
||
responsibility.
|
||
|
||
All copyrights are held by their by their respective owners, unless
|
||
specifically noted otherwise. Use of a term in this document should not be
|
||
regarded as affecting the validity of any trademark or service mark. Naming
|
||
of particular products or brands should not be seen as endorsements.
|
||
-----------------------------------------------------------------------------
|
||
|
||
1.6. Contact the Author
|
||
|
||
You may email me (<bensimkin (at) union.org.za>) with improvements and
|
||
suggestions etc. Please include in the subject line: "Promise RAID HOWTO".
|
||
-----------------------------------------------------------------------------
|
||
|
||
2. Module Installation
|
||
|
||
2.1. What?
|
||
|
||
You will need an existing Red Hat Linux Install, and you will need to obtain
|
||
the correct driver from the [http://www.promise.com/support/download/
|
||
download_eng.asp] Promise website.
|
||
|
||
Choose your card type, and then choose FastTrak Family Red Hat Linux Driver
|
||
Uniprocessor.
|
||
-----------------------------------------------------------------------------
|
||
|
||
2.2. How?
|
||
|
||
Put the RAID Card into the computer, but leave the hard drive(s) on the
|
||
motherboard. Boot up into Linux. Login as root. You should have the tar file
|
||
from the Promise site, if not, see "What?" section above.
|
||
-----------------------------------------------------------------------------
|
||
|
||
2.2.1. Extracting the module
|
||
|
||
<EFBFBD><EFBFBD>*<2A> Put the tar file into /tmp.
|
||
|
||
<EFBFBD><EFBFBD>*<2A>Issue this command: tar vxf ftrhup_120b9.tar
|
||
|
||
<EFBFBD><EFBFBD>*<2A>Now we have access to the modules.cgz file. Issue the following:
|
||
# gzip -dc modules.cgz > modules.cpio
|
||
# cpio -idumv < modules.cpio
|
||
|
||
|
||
A few directories will be created, so move to the correct directory,
|
||
depending on your kernel version. You can get your kernel version, by
|
||
issuing: uname -r
|
||
|
||
<EFBFBD><EFBFBD>*<2A> You will see the ft.o file. Copy this file to the /lib/modules/
|
||
kernel-version/kernel/drivers/scsi directory.
|
||
|
||
|
||
-----------------------------------------------------------------------------
|
||
2.2.2. Creating the Initial RAM Disk
|
||
|
||
The Fasttrak module, ft, needs scsi_mod. To use the card as a RAID Card, you
|
||
will also need sd_mod.
|
||
|
||
To boot off the card, we will need to create a ramdisk, with the required
|
||
modules, so that linux can see the hard drive(s).
|
||
# /sbin/mkinitrd --preload scsi_mod --preload sd_mod --with ft initrd-kernel-version.img kernel-version
|
||
|
||
If your kernel version is 2.4.2-2, you would issue the command:
|
||
# /sbin/mkinitrd --preload scsi_mod --preload sd_mod --with ft initrd-2.4.2-2.img 2.4.2-2
|
||
|
||
Now move the newly created ramdisk image to /boot. Its time to edit
|
||
lilo.conf.
|
||
|
||
Before we edit lilo.conf, its best to make a floppy boot disk with the ft
|
||
module included.
|
||
-----------------------------------------------------------------------------
|
||
|
||
2.2.3. Creating the Boot Disk
|
||
|
||
This is very important, as something may go terribly wrong. If LILO stops
|
||
working, then we just put the disk in and fix the problem. You will need the
|
||
mkbootdisk program.
|
||
# /sbin/mkbootdisk --device /dev/df0 --mkinitrdargs '--preload scsi_mid --preload sd_mod --with ft' kernel-version
|
||
|
||
If your kernel version is 2.4.2-2, then issue the following
|
||
# /sbin/mkbootdisk --device /dev/df0 --mkinitrdargs '--preload scsi_mid --preload sd_mod --with ft' 2.4.2-2
|
||
-----------------------------------------------------------------------------
|
||
|
||
3. Linux Configuration
|
||
|
||
-----------------------------------------------------------------------------
|
||
3.1. What?
|
||
|
||
Instead of editing our current working system, we merely create an entry for
|
||
our new system. So if something stuffs up, we just reboot and we're fine.
|
||
-----------------------------------------------------------------------------
|
||
|
||
3.2. How?
|
||
|
||
Example lilo.conf file:
|
||
boot=/dev/hda
|
||
map=/boot/map
|
||
install=/boot/boot.b
|
||
prompt
|
||
timeout=50
|
||
message=/boot/message
|
||
linear
|
||
default=linux
|
||
|
||
image=/boot/vmlinuz-2.4.2-2
|
||
label=linux
|
||
read-only
|
||
root=/dev/hda5
|
||
|
||
Just copy, and edit the kernel part, as follows:
|
||
image=/boot/vmlinuz-2.4.2-2
|
||
label=LinuxFromRAID
|
||
initrd=/boot/initrd-2.4.2-2.img
|
||
read-only
|
||
root=/dev/sda5
|
||
|
||
Note, how we setup the ramdisk, and we setup the root value. Don't set it as
|
||
default yet. Now run lilo, in verbose mode.
|
||
# lilo -v -v
|
||
|
||
If you don't see any errors, we're fine, so halt the system.
|
||
|
||
Put only ONE hard drive on the Card, the hard drive with the existing Linux
|
||
system.
|
||
|
||
Boot up, and go into the card bios. Delete the array of the current set.
|
||
-----------------------------------------------------------------------------
|
||
|
||
4. Array Configuration
|
||
|
||
-----------------------------------------------------------------------------
|
||
4.1. Building the Array
|
||
|
||
Add the second hard drive to the card, and turn on your computer. Go into
|
||
the card bios, and create a mirror array, selecting the appropriate source
|
||
disk. Make sure you Create and Build the array. After that is done, follow
|
||
the instructions of the next section.
|
||
-----------------------------------------------------------------------------
|
||
|
||
4.2. Changing Configuration Files
|
||
|
||
Choose "LinuxFromRaid" Option at LILO.
|
||
|
||
It should boot up without any errors. It will, however complain about swap.
|
||
Ignore that, as we will fix it in a moment.
|
||
|
||
You may receive an error about incorrect module version, or a kernel
|
||
mismatch. Please see the "troubleshooting" section about this.
|
||
|
||
After we have booted up on the new system, we must edit a few files:
|
||
|
||
|
||
|
||
<EFBFBD><EFBFBD>*<2A>/etc/lilo.conf
|
||
|
||
<EFBFBD><EFBFBD>*<2A>/etc/fstab
|
||
|
||
|
||
-----------------------------------------------------------------------------
|
||
4.2.1. /etc/lilo.conf
|
||
|
||
The parts in italics have been edited. (See the original lilo.conf file as
|
||
stated earlier on in this HOWTO)
|
||
boot=/dev/sda
|
||
map=/boot/map
|
||
install=/boot/boot.b
|
||
prompt
|
||
timeout=50
|
||
message=/boot/message
|
||
linear
|
||
default=LinuxFromRAID
|
||
|
||
image=/boot/vmlinuz-2.4.2-2
|
||
label=linux
|
||
read-only
|
||
root=/dev/hda5
|
||
|
||
image=/boot/vmlinuz-2.4.2-2
|
||
label=LinuxFromRAID
|
||
initrd=/boot/initrd-2.4.2-2.img
|
||
read-only
|
||
root=/dev/sda5
|
||
|
||
Now, save the file, and run lilo to write the boot record.
|
||
-----------------------------------------------------------------------------
|
||
|
||
4.2.2. /etc/fstab
|
||
|
||
For every entry that pointed to the old location, you must now change it to
|
||
the scsi device, but use the same partition. For example:
|
||
/dev/hda2 swap swap defaults 0 0
|
||
|
||
If you saw this in your fstab, you would need to change /dev/hda2 to /dev/
|
||
sda2 Now reboot your system. That's it. After the reboot, its best to check
|
||
the status of the RAID.
|
||
-----------------------------------------------------------------------------
|
||
|
||
5. Monitoring the Array
|
||
|
||
You can get detailed information by looking at the directory /proc/scsi/
|
||
fasttrak/
|
||
|
||
In that directory, you will see the file which corresponds to your array.
|
||
# cat /proc/scsi/fasttrak/0
|
||
Promise FastTrak Series Linux Driver Version 1.2.0.14
|
||
Adapter1 - FASTTRAK100 TX2
|
||
Array - Array[1] : 1X2 Mirror (OK)
|
||
Drive -
|
||
1 : IC Primary /Master 41174MB BASE(0xb400) BM(0xc400) IRQ(11) UDMA5
|
||
3 : IC Secondary/Master 41174MB BASE(0xbc00) BM(0xc408) IRQ(11) UDMA5
|
||
That is all.
|
||
-----------------------------------------------------------------------------
|
||
|
||
6. Troubleshooting
|
||
|
||
You may get a kernel mismatch error message. This means that you don't have
|
||
the correct version module for use with your kernel. If you cannot get the
|
||
correct module version for use with your kernel, choose the closest one, and
|
||
follow these steps;
|
||
|
||
This may not work in some instances, so remember to have your boot disk
|
||
handy.
|
||
|
||
|
||
# cd /boot
|
||
# cat initrd-2.4.2-2.img |gunzip > /tmp/myimage
|
||
# mkdir /mnt/tmp
|
||
# mount /tmp/myimage /mnt/tmp -t ext2 -o loop=/dev/loop3
|
||
# cd /mnt/tmp
|
||
# vi linuxrc
|
||
|
||
Now modify 'insmod ft' to 'insmod -f ft'.
|
||
|
||
This will force the sytem to load the module. Save the file, and exit from
|
||
vi (or emacs :))
|
||
|
||
|
||
# umount /mnt/tmp
|
||
# gzip /tmp/myimage
|
||
# cp myimage.gz /boot/initrd-2.4.2-2.img
|
||
|
||
You will obviously have to use the correct filename for your initrd file. I
|
||
am using 2.4.2-2 as example.
|
||
|
||
Now, reboot, and all should be well.
|