Understanding highpoint 370 / ataraid (questions looking for answers)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Okay, so I got myself a HPT370 and a couple of 40gb drives, which I want to mirror.

Now, the physical installation goes fine, and I go into the card's BIOS and create the RAID 1 array. It sits there for half an hour copying the stuff over to the 2nd drive and everything is cool.

Oh, and beforehand, I made sure I had all the HPT controller stuff in my kernel, and lilo and fstab point to /dev/hde1 (yeah, hde, not sd1 or ataraid/d0)

Now I've did a bit of reading and found that the HPT370 is a software-raid controller, and the only way that data being written to the drives gets mirrored is if the ide driver does it itself.

It seems that the only thing that makes it a "RAID" card is that it has a BIOS the understands the concepts and gives you a big warning/error screen if one of the drives in the mirror has failed.

So if I understand this correctly, all the BIOS does when you create a mirror is to copy the data from one drive to another, and makes a note someone, presumably in nvram, so it can remember which disks are in a raid 1 set, and there's no logic in that BIOS to replicate data once an OS is running.

Now onto the tricky stuff

Linux is running, but only due to the fact that it can understand the highpoint controller card, and so accesses the drive(s) directly. Since I told it about /dev/hde1, it is accessing the first drive on that controller directly, and there's no mirroring going on here at all.

I can in fact change the hde1 references to hdg1 and reboot, and I get my linux system as it was when the mirror was first created. This just confirms that the card does no mirroring at all, and relies on the OS to do that.

There are drivers on highpoints's website for "linux", and since I don't run suse or redhat, I downloaded the "open source" one, and followed the readme to produce a nice little kernel module. Inserting that module, I was able to refer to the mirror as /dev/sda (I mounted it read-only, just to test it was there, due to the fact that I knew the two drives no longer contained identical information).

The good news was that when I inserted that module, I got a /proc/scsi/htp366, which contained RAID information.. it knew about the mirror (although it didn't seem to notice that hde and hdg weren't in sync any more due to me mounting hde directly)

One problem I have with that driver is that it emulates a scsi drive, and various howto documents suggest that there's a fair bit of overhead involved in doing that.but te biggest problem I have is that since it's a module, I wouldn't be able to boot my mirror, since the module wouldn't be accessible to load until after the mirror was mounted, and I couldn't mount the mirror without the module.. catch 22.

So, I had a look at hptraid.c in the linux kernel drivers/ide directory. It looked like it would do the job, and in fact I had already compiled it into my kernel.. so what was it thinking of things ?.. dmesg revealed that it had loaded, but had said that it only supports RAID 0 (striped) arrays. Right.. so.. I guess I can't use that.

I'm running 2.4.18, which contains hpt366.c (22536 bytes, aug 15 2001), and hptraid.c (11240 bytes, oct 16 2001). Those source code files don't seem to contain any version numbers.. so I don't know if there is a later version that supports raid 1.

So here are my questions:

- Am I supposed to use md to do the array ?
- Is there some way I can still use ataraid ? - If I do use ataraid, should I break the mirror in the BIOS, or should I leave it enabled ?
- How do I determine the state of the mirror (depends on how I created the mirror)


For what it's worth, I did a quick trawl of the achives for this list and didn't see any obvious document that answered my questions, but I apologise if this stuff has been asked a million times already.










[Index of Archives]     [Linux RAID]     [Linux Device Mapper]     [Linux IDE]     [Linux SCSI]     [Kernel]     [Linux Books]     [Linux Admin]     [GFS]     [RPM]     [Yosemite Campgrounds]     [AMD 64]

  Powered by Linux