Ask Slashdot: IDE Software RAID?
Edward Schlunder asks:
"After setting up
Software RAID on a SCSI system at work,
I want to do the same at home for fun.
Call me crazy, but I'm just completely
geeked up about this after seeing it working.
The Software RAID documentation says that
each hard disk should be on a separate IDE
cable and that RAID5 requires at least 3
hard drives. I want to use my two existing
IDE hard drives and get the large, fast,
and cheap IBM IDE ATA/66
Deskstar 22GXP hard drive to make up
the third..." There's one small problem
though. Hit the link for more.
"My motherboard only has two IDE ports. So, my question is, what IDE controller card can I get that satisfies the following:
- Supports Linux (obviously!)
- High speed, preferrably ATA/66 and PCI
- Lets you use multiple controllers in one system (that is, it can co-exist with the onboard IDE controller on my SuperMicro P6DBE motherboard)
Please refrain from suggesting that I should just use SCSI -- the goal here isn't absolute greatest speed and reliability, but a cheap way to teach myself more about RAID5 and provide a test system to blow things up on without causing users unnecessary grief ;-)"
Your motherboard has 2 ide ports.... you can have 1 master and 1 slave on each port, therefore having 3 drives is no problem, as well as a cdrom.
If you want a cheap way to add another ide port, because you have a cdrom and a cdwriter, why not pick up and old soundblaster 16 card with an IDE port on it? I used to run 5 drives that way before I upgraded to a newer sound card. Worked pretty well under linux. Not exactly high performance I suppose.
Aaron
well, you can get a PCI ide controller and hang some more drives off your machine, but it sounds like your setup wouldn't work too well with raid, for the following reasons:
- You're using different models/sizes of drives.
- You're trying to use a UDMA/66 drive with UDMA/33 drives.
For hardware raid, you need to have very similar, or ideally, identical drives. I don't know about software RAID, but I can see potential problems with it if you're using all sorts of weird different media. Since RAID 5 is striping and mirroring, you want to be able to swap out a drive and have it mirrored by the rest of the drives in the RAID... this wouldn't work if one drive was larger than the others. I'd take a look at how software raid works before you jump in and try it.
You also might want to take a look at Promise's line of IDE RAID controllers... they provide a hardware solution that would probably give you better performance than software RAID.
jc.
Anonymous Coward cuz I dont have my password at work
Just a word of caution:
I have a spanking new system with a Promise
UltraDMA/66 PCI card controller. I think they
are the only 66 IDE card vendor out there yet. Anyhow,
my BIOS thinks it's a SCSI controller. I already
have two standard 33 IDE controllers on the
motherboard. Problem is, I can't seem to address
the Promise card. Seems the IO address is out
of range. Any non-MS OS thinks it is IDE (it is) and not SCSI and tries to assign it to on board IO addresses. I need to fiddle with it, but doing an install on it was impossible, it did not see the drive at all. Of course I want to keep the drive on that controller, it's a WD UDMA/66 drive and it even came with the special cable, so putting it back on the onboard IDE let me do the install, but I don't have that warm 66 feeling anymore.
Promise included a Windows driver floppy...grrr.
I am sure support for the controller is forthcoming, I have not looked into RH 6.0 yet.
Back in the day before Enhanced IDE I remember being able to purchase add on IDE cards. The only problem is that the motherboard BIOS is made so it won't handle more then 2 controllers. There may be some odd motherboard that supports more then that but I have not seen nor heard of any.
If you need more ide slots, get an ide expansion card. I have one by siig ( www.siig.com), works great, but it looks like they only go up to 33Mb/s. Should be OS independent.
Also maybe of interest is a hardware RAID 1 setup (look at www.arcoide.com) for ~$230. It goes on your ide port and splits to two hard drives, and is OS independent. It's supposed to work at 66mb/s. It works fine on NT, I'll know how it works on Linux at 66mb/s next week (or whenever the new one gets here...). I know this won't give the speedup of striping, but it I don't worry so much about a hard drive crashing. You could use this as part of a RAID 10 setup (http://www.acnc.com/raid10.html). Also, you should have similar size drives for this.
Mike
I love you, you know that don't you?
Edward, there is a possiblity, although it may be a long shot.
You may remember back in the early 90's when many CD-ROMs were still
using
proprietary interfaces (ie, Panasonic, Mitsumi, and Sony.) Well, when
the first IDE
CD-ROMs started showing up, they were using the tertiary and quaternary
I/O ports and IRQs. It is entirely possible to use these last 2 IDE
ports for HDDs, even if only through a driver and not BIOS. I've only
seen it done in DOS and Windoze, but it may be possible to write a
driver for Linux if it has not already been done. The port settings are:
PRIMARY: 1F0-1F7, 3F6, IRQ14
SECONDARY: 170-177, 376, IRQ15 (You know these, already)
TERTIARY: 1E8-1EF, 3EE, IRQ11
QUATERNARY 168-16F, 3??, IRQ10. (I am uncertain about the secondary
I/O
port on the 3rd & 4th ports)
Please keep in mind that these ports are supported by most operatings
systems, most likely including Linux, but the HDDs WILL NOT be BIOS
controlled. Come to think of it, Promise Technology may have something
like this. Please let me know
how you fair.
Arcturus
No, you don't NEED three IDE connectors. I have 2 RAID 0 devices in my Linux box (md0 & md1). Each is made up of 2 IDE drives on a single channel. ie I have 2 Quantum 640Mb drives on the Primary IDE channel & 2 840Mb Seagates on the Secondary IDE. Linux DOES access both drives in each RAID array at the same time (or at least the lights flash at the same time). It's NOT fast, but it works (faster than a single IDE drive though). I'm sure RAID 5 would work too (needed the space and speed over the extra data security).
I would just get two old ISA I/O controllers from a 486. I mean, to test it out. Then just disable all of the ports on the controllers except the IDE and set them to all different IRQ's. PCI isn't neccessary, right? I'd hook the new drive directly to the MB and the other two to the cards though. Hi! My name is Stew Pid #2938!
Abit seems to have a separate ATA66 controller for sale called "Hot Rod 66".
Take a look at their site: Abit.
EIDE Controllers will let you use 4 disks. Two on each controller.
(You mentioned getting a big,cheap disk for the third...) Check the docs again about RAID5. I don't think it will let you use disks with diff sizes for RAID5. I think they need to be the same size,rpm among other things.
From the forum at www.promise.com i heard they're
also working on Linux support.
I have a linux NFS server with a 50G of SCSI disk doing software RAID 5 (linux-2.0.36+RAID patches). there are about a hundred clients hitting on it most of the time.
i just checked it, it's been up for over 100 days now, no problems at all. nuff said.
We built a box last year that had a single boot disk and RAID5 with 8 12Gb Quantum BigFoot drives. It turned out to be a bit of a pain (we had to modify the kernel) but we got the system going and it worked fairly reliably for several months. Now, however, we have started using IDE-SCSI solutions
from Arena. Much less hassle, and not a lot of extra price. We recently lost one of the promise
controllers which screwed up our RAID 5.
The drives should be identical for best results. Actually, it works off partitions so they have to be the same. If you have a 2 gig, 6 gig, and 22 gig drive, the largest raid5 array you can possibly get will give you 4 gigs of space (2 gigs on each drive). Of course someone is going to suggest "put 3 2gig partitions on the 6 gig and 11 on the 22 gig and now you have 28 gigs!" Well, dont! Not only are the drives used un-equally (the 22 gig is hit 11x the 2 gig) but you have no failure protection. Raid-5 protects against a single failure. If your 6 gig drive dies, you just had 3 failures. I won't even mention the 22 gig...
/dev/hdX1 was a 2.5 gig partition on each drive. The extra space on the 3.1 was used as swap and on the space on the 4.1 was used for the root partition (can't boot from software raid drives..) and some other stuff. The system worked great. I even had a drive fail and didn't know it until I checked the logs. Make sure to apply the latest raid patch for best results and some nice things like hot-reconstruction (ability to mount+use the array while a new drive is bought into sync). You also need the raidtools package in there too. The patch gets one reject against 2.2.10's 'fs.h' which seems easy to patch by hand. Everything else applied pretty clean but I'm not sure if it will actually run.
I have done two Linux raid systems myself. One was done with software raid on a pair of 2.5 gigs, a 3.1 gig, and a 4.1 gig drive.
The major problem with software raid is you can't swap to a raid device. The kernel does support swap "interleaving" but if the drive dies you are swapping on, the system will crash. It is possible however to use a swapfile on a raid partition but that is somewhat slower.
The other raid I setup was using an ICP Vortex card. They don't come cheap! They have nice Linux utilities and drivers for their cards which makes things easy. The main reason I chose hardware raid was the ability to boot the system with a failed drive and of course the swap issue.
I had one too. Very fast for normal use under Windows/DOS. The only problem was that everything had to go thru the cache memory. We tested it out pretty extensively, and on sustained transfers of large files we found out that it was limited to 990 k/sec or so. Uncached, the same drive would do 6 m/sec. For reading the same data over & over the cache is ideal.
Richard Silver
rsilver@deltacomdotnet
Is there any support in Linux for IDE Hardware RAID controllers like the Promise FastTrack, FastSwap Pro, or SuperTrak?
I'm not sure of specifics but if the controller advertises "OS Independent" there should be no problem. In IDE land, if it would show up as a standard IDE controller, Linux should be able to see it fine. The same is true for SCSI. All external RAIDs are supported because they simply show up as a single SCSI id. You may to configure it with a DOS/Win program first but it should work in Linux. Some hardware controllers like DPT (???) and ICP-Vortex are supported while stuff like the Adaptec RAID won't work.
IDE can't perform operations on two drives on the same channel (cable) at the same time. I believe what you want to do is to put a 640mb and a 8--mb on each channel, then you should see a good speed-up. If you want to verify this try copying from one channel to another versus drives on the same channel. Right now you're just screwing yourself out of some speed.
Anonymous Spanker
We use the Promise FastTrack at work using Linux as the OS. We have them setup to mirror the 1st HD. Works great! We tested it and once the 1st hd went down the other kicked in and had exactly the same stuff on it!
Natas
is it like a hard-drive?
Silly puppy, that's why he asked about using a third IDE controller. Yes, you have to tie up the IDE bus the whole time. You MUST have just one drive per IDE "controller".
I have some experience with the Promise cards. If they work under linux then they are the way to go. They allow you to *add* two more IDE channels to the existing two. I believe the product is called the "Promise IDEMax II" get the II becuase I had some problems trying to add more IDE channels with the other ones but the II worked great.
-Pepe
hmm..
At COMDEX I saw a RAID array product that uses only IDE drives, but the interface to the host computer system is SCSI. This isn't exactly what you proposed, but similar.
The idea was that their special custom RAID controller would, in effect, give each IDE drive its own controller. Since IDE pretty much sucks for multiple drives, they used SCSI for the interface to the RAID itself.
I don't remember the name of the company, but a web search could probably turn them up if you are interested.
Anonymous coward, hmm I should really make myself an account (should I press the create account link above? nahh, later).
Ok, now for the reply:
Hardware-wise I don't think you should have any problems. Now, I don't own a tertiary PCI IDE ATA/66 controller, but I have two tertiary capable ISA IDE controllers on an old 486:
- an IDE interface in a soundblaster 16.
- and a UMC68-something base dual IDE controller.
Both of which can be set for any of the four standard IDE interfaces.
AFAIK as these IDE interface are standard (i.e. each interface has a defined IO space and IRQ)you should also have no problem with linux supporting them (linux does have ide0-2 devices).
I think your best option would be:
1. Go to a computer store and ask to purchase a PCI IDE ATA/66 controller.
2. Repeat 1 until you find one in which they don't give you a glazed expression and try to sell you a celleron instead.
3. Install at home.
Why don't you try getting some recent hands on experience before mouthing off?????
Just put together a 65GB file server using the linux RAID tools, Promise controller and new 18GB WD/IBM hard drives and.....
IT SCREAMSSSS
Sure in the old days what you say had some truth. But with the new high density drives and promise Ultra33 controllers, it's another story.
Oh and the cost $1116 + $45 for the card (oh say about 1/2 the price of SCSI).
A few months ago I dumped FreeBSD for my low cost file server when i Discovered that the Promise Ultra/33 was not properly supported.
Has this changed?
thanx!
motjuste@briefcase.com
You can have two devices (PRI and SLA) on an IDE "channel", but only one device can be working at one instance. Since the idea of RAID5 is to get the drives to work (read & write) in parallel, having two drives on one IDE channel sort of puts a big Doh! into the works when both drives are attempted to be accessed at the same time...
Ive been trying to work it out for ages, and am about to buy another drive to experiment myself.
The way i see it.
The fastest speed you can read from an ide drive in 10MB/s (9.5MB/s max with my quantum EL).
As far as i understand the only way a single drive could use the full 33MB/s is if its reding/writting to the drives cache (which is why burst rates are faster), the actual reading from the drive is the bottleneck, not the cache or the interface.
With a primary and secondary drive the maximum transfer speed the ide interface should have to use if 20MB/s, which is 60% (20/33) of the interfaces maximum.
So why does it slow down, does anyone have any benchmarks to show how much it slows down?
I accidently unplugged the power to an ide drive a year or so ago, i realised the power was on when i saw a somewhat beatifull arc appear between the power connector and the drive as i removed the power connector.
:(
Neadles to say the drive was never detected by the BIOS again
But then again it wanst my drive, hehehe
You need the "real" RAID patches on ftp.XX.kernel.org in /pub/linux/daemons/raid/alpha. Get the raidtools too because those have probably changed. The only reject when applying the latest raid version against linux 2.2.10 is in fs.h, but it is pretty easy to fix by hand. RedHat may be using the 0.50 version in their kernels.. I am not sure. The new raidtools can do a simple upgrade on the array with (hopefully) no data loss.
I've got a "standard PC" with ide0 and ide1 already filled (IBM 10GB, IBM 25GB, IBM 25GB, CD), and I've just a PCI-Add-On-Ultra-IDE card sitting on my desk.
Its an "ExSys EX-3201 Intelligent Controller" and features a CMD646U2 chip, and, quoting the "manual", "3201 can coexist with M/B IDE port, so you can add 3201 to add 4 device into your system" (spelling errors copied as is).
Sadly, the "manual" does not state how to jumper this, so I have to try it myself. I'll give a detailed report ASAP (Monday? Tuesday?) as a reply to this forum.
If anybody has experiences with this particular board/chip, please mail me ASAP (before I start testing on Friday, preferably) to ct@braehler.com
Yours, Christian Treczoks
A zip drive (parallel port even) and 100 meg SCSI drive worked... Not sure why I ever tried that! You may have noticed the "Network block device support" option in the kernel config. You can export a block device accross the network to another system and raid that! Maybe... It's obviously not possible to mount it read/write on multiple systems but read-only should be ok. That would be funny to have the other 1/2 to your array sitting on the other side of the world! The CODA project has a much more sane way to do this.
The problem is that the controller can only read or write to one channel at a time, so if the two drives you are using for an array are on the same controller, it kind of defeats the purpose of RAID 0 or RAID 5.
The Promise IDE RAID controllers are only supported under Linux as basic IDE controllers, i.e. no RAID.
Although the Fast Trak isn't supported as a HW RAID controller yet, it is supported as a basic IDE controller just like the Promise Ultra/33. So you could use it as part of a software RAID solution until the HW RAID support is available.
You can definately fry your controller by trying to hot swap an IDE drive, even if you spin the drive down first. The problem is that the IDE cable has to be terminated into a device on one end and the controller on the other. If you disconnect the drive end while the controller is driving signals onto the cable, the instantaneous open circuit can cause a voltage spike. I think it may be safer to remove the drive on the middle of the cable, but still not advisable.
The reason why performance sucked in your case was because you put the two drives on the same controller. The controller can only access one channel at a time.
I do believe you need separate controllers if you want to see any performance gain on large sequential block reads. The drives only come close to their peak sustained transfer rates when streaming data continuously and no seeks are involved. If the controller has to ask for one stripe from one drive, and the next stripe from the other drive, each drive does a seek for each stripe. If your stripes are small (for optimum performance with small, distributed file accesses) then the drives spend much more time seeking than streaming data and your sustained throughput on large file accesses sucks. On the other hand, if you make the stripes very big you are still just using one drive at a time.
Either way, you simply can't exceed the sustained transfer rate of one drive when you put both on the same controller.
Even if identical drives aren't strictly required, it would be a waste of money to put one very fast drive in an array with two much slower drives.
Well, it's two IDE controllers are still supported, just not the HW RAID.
If ATA only allows the controller to access one drive at a time, then how could placing a two drive array on one controller provide any speedup at all, on either small or big reads? In order to realize any increase in performance, the two (or more) drives must be seeking or reading data AT THE SAME TIME, which isn't possible if they are on the same controller.
With small, random accesses read ahead doesn't help at all (obvious).
Also, if the stripe size is greater than the amount of read ahead, it doesn't help (also obvious). This should be typical with arrays set up for large sequential accesses.
Finally, if the stripe size is equal to or less than the amount of read ahead, then theoretically you could eliminate half of the seeks. Every other read request to each drive could be filled from read ahead. However, that would get essentially the same performance as using a stripe size twice as big since at such small stripe sizes you are primarily limited by the time spent seeking.
The amount of read ahead that most drives use is just too small to be of much value in this case. To see any performance gain from an IDE RAID configuration, you really need to put each drive on its own controller/bus.
And UltraDMA33 mode was not supported on the promise card.
Is the new promise card supported in Ultra/66 mode????
That would be a great addition to the Linux IDE driver. However, don't we first need controllers that support it?
It's hard to believe that people would waste their effort trying to add SCSI scatter/gather like functionality to an interface that only supports two devices!
When you add an controller, it will usually provide its own BIOS setup. This will work in addition to your motherboards BIOS much the same way that a SCSI card does. IF the OS recognizes the card, your motherboards BIOS will not be a factor except for managing IRQs and such.
You may need to use a separate controller for each drive for performance reasons as many IDE controllers do not actually send requests to the channels asynchronously. Good ones do tho.
For simple IDE RAID1, I recommend ARCO Duplidisk http://www.arcoide.com
The FastTrak and the Ultra33 use identical hardware -- the FastTrak is a Promise Ultra33 with a special BIOS that allows for convenient partitioning and for some performance tuning.
Of course, the BIOS doesn't do the protected-mode I/O under Win95 or NT. Given that, it ought to be obvious that the FastTrak RAID features are software RAID. Since software RAID works under Windows, it ought to be possible for it to work just as well under Linux.
I'm just specing a machine with Maxtor 91303D6 drives -- each is 13GB, 5400RPM, runs cool and works unusually well according to Storage Review. One will be the boot/swap/OS drive, and the other two RAID-0 on a FastTrak.
Cheap, fast, cool: pick three!
FYI: Lilo version 21 has support for /dev/hde and higher. You can get lilo v21 from metalab.
- intrep
I've seen a lot of posts on this subject but no one has really hit the nail on the head. True raid5 has 3 controllers for the simple fact that if one of the controllers were to blow out, you would still have your 2 disks running. If you slave any of your disks on 1 controller, and that controller blows up, you're out of luck. But for home use I would set up a raid5 and then just pull the plug on the harddrive that is sitting on the ide all by itself. Then your geekdom may blossom when you notice that the drives are still working. Forget raid0 like some other posts recomended. Its for wusses that can't think big enough for raid 5. And in respect to having all the same hd's: You don't gotta. You can implement a software raid5 on any 3 hds. Just remember that the size of the 'partitiion' is going to be 2x where x=smallest hard drive. the extra part of each unused hard drive still can be used just not as part of the raid5. Fun fun fun. Although the real fun is have a hot swappable raid5 array of 3 30gig hd's.. muhawhahaha
-
The question that you should really be asking yourself is not how many controllers do you need but when using raid5 (disk stiping with parity) what ever is the size of your smallest drive will be the size of your stripe set. I am kinda new to Linux (used it but did not install it myself), are you going to be able to use the rest of your drive space left on the other drives? i know with NT (heaven forbid I mention that here) on a strip set the remainder of the frive is inaccessable. So if you were to buy a new drive, than do NOT buyone larger than your smallest drive in the set because you will not be able to use it. It is just as if you had three buckets all of different sizes. However much stuff you put in to the smallest one is the maximum fill level of all three. And the total amount that you are able to store is equal to the smallest bucket times 2. Since, the third volume is used for parity.
SO DO WASTE YOUR MONEY BUYING AN EXTREMELY LARGE HARD DRIVE, YOU WILL NOT BE ABLE TO USE iT aLL.
-Jeffibus
The standard kernels do have RAID, but an earlier version (without autorun support). RedHat patches their kernels with alpha RAID stuff including autorun support.
a lpha
/etc/raidtab
;), /dev/md? devices in /etc/fstab as normal and have them fsck'd automatically on boot along with normal filesystems, which is nice.
To get autorun to actually work, you have to:
1) Use a RedHat-supplied kernel or patch your own with the patches from:
ftp://ftp.fi.kernel.org/pub/linux/daemons/raid/
2) Set the partition type of the RAID partitions to 0xFD (type 'fd' in fdisk)
3) Include the option:
'persistent-superblock 1'
in
4) Use raidtools 0.90 or later to create or
upgrade your RAID.
If you do all of the above, your kernel will
autorun the RAID(s) on boot (note this does
_not_ include booting off the RAID, that's a whole different matter I haven't got working yet
and autostop the RAID's on shutdown (ie. get rid
of RAID stuff from your init scripts). You can
use
These steps are documented in the current Software-RAID HOWTO.
The first thing you should know is that this is the wrong way to go about doing raid. For example if you want to do RAID-5, you need a minimum of 3 drives like you stated. But that's just the tip of the iceberg. You aught to have at least 4 drives if you are going to do RAID-5 because if you have one of your disks fail you only have a short window, maybe an hour or 2 before your data begins to get corrupted.
The second thing to remember is that in a RAID configuration, all your drives need to be exacltly the same size. Also, don't expect to get 18Gb. out of a RAID system with 3 6Gb disks. You'll only get around 8-10Gb depepending on the configuration.
Lastly software RAID is by far inferior to hardware RAID. If you are dead-set on using IDE, I'd reccomend disabling your on-board IDE controller and installing the Promise Ultra ATA-66 RAID controller. It lets you do RAID-0 (mirroring) and rivals the performance of SCSI RAID. I believe it also lets you unplug the drives hot, but on that I'm not absolutely sure..
Good luck with this!
Of course you will be able to use the excess space on the drive, just partition it as a seperate drive. The requirement that Stripe sets be the same size is a requirement of stripe sets, so in NT you just partition the remaining space and use it all by itself. Linux will also work that way :) I thought I'd yell too.
So save yourself some long term money and BUY THE BIGGER DRIVE
I use the promise ultra66 controller. There is a linux driver, but DMA mode 4 is not support (yet).
I see not significant advantage to the FreeBSD offering, except some snob appeal. OS speed is not an issue - were are talking mechanical latencies here. As a matter of fact, you might be worse off going with FreeBSD - according to previous posts several IDE controllers are poorly supported, bits and pieces of the code are licensed in nasty ways, and it lacks some nice features of the Linux offering.
In other words we have a typical Linux/FreeBSD case: Some FreeBSD user touts a mystical advantage of their code and makes a snide comment about Linux. Most Linux users can only respond with bluster and abuse, but some manage to point out that FreeBSD is not the bees knees, and that the Linux version is more feature rich and better supported (ie actually better). But that gets lost in the noise, leaving the rest of the readers with the impression that Linux is inferior, and that Linux users are nasty. Ouch.
actually ziff proved apache was slower than IIS..not linux. they showed linux was 33% faster when serving win9x clients than NT server.
One thing not mentioned.. to take advantage of DMA33/ATA66 you must have ALL other drives on the cable be DMA33 or ATA66 also. If you had a DMA33 and a regular IDE drive all on the same cable.. the DMA33 will be accessed at regular IDE speeds, NOT the 33M/sec burst rates.
Can you please tell me what extra IDE controller that you are using that supports IRQs other than 14/15? all the carded PCI EIDE controllers I have seen only support IRQ 14/15, and thus the onboard controller must be disabled.
sgraham@home.com
Is "SoftUpdates" a fluffy euphemism for
asynchronous writing?
I have seen something along those lines being sold at CompUSA in NY. YMMV elsewhere
FUCKING WHORE. FUCK YOU. FUCK. FUCK. SHITFUCK! FUCK YOU! ASS FUCK. FUCKER. UNCLE FUCKER.
The RAID5 module of the Vinum driver is not distributed with Vinum - likely because the author wants to maintain a more restrictive license. While this is good for the author, it's bad for FreeBSD. This also shows the fundamental problem with BSD software: arbitrary 'valuable' chunks can be taken off and distributed 'separately'. The Linux RAID0/RAID1/RAID4/RAID5 driver is completely GPL. (AFAIK maintained by some RedHat guy) The Linux software RAID driver also appears to be much more feature-complete than Vinum: background reconstruction [no need to wait for the RAID array to reconstruct before fscking/mounting the filesystem], hot sparing and hot-add/hot-remove are supported. According to the configuration options the Linux RAID5 driver also has an MMX checksumming feature - this reportedly speeds RAID5 operation up.
That limitaton was fixed when EIDE came out, now you can talk to both drives on one controller at once, though apparently it still doesn't do that as well as SCSI does. So if he just wants to play he should be able to do it with just two controllers.
Otherwise the Promise PCI DMA/66 card sounds nice.
-dantheperson
For controllers, western digital has URL's at this main link. Click on the "Solutions" link to go to suggested solutions for common problems with UDMA/66. For prebuilt IDE RAID system, try here.
FreeBSD can definitely have performance advantages over Linux, especially in this area. I brought up this suggestion because I wouldn't limit myself to one good, open OS. If better performance could be had elsewhere, with stability as well (Note: I am _not_ saying Linux is unstable; I meant stable as well as how stable Linux is nowadays [much better than it used to be, although nothing's perfect]).
I'd like to point out (or rather, I hoped it would seem as such that I did point out earlier) that a 'problem' (in this case, getting great performance with little money) can be solved in multiple ways. Until you try all of the (at least free) solutions, are you really done looking? He limited himself by saying "no SCSI", but SCSI is probably still a better idea.
Brian Fundakowski Feldman
Vinum's very good software, but I don't doubt that Linux's software RAID could probably be as fast, and possibly faster. The main point was that SoftUpdates and a very tunable kernel (NBUF, et al) could provide a huge boost in performance, and the striping's there. He has a good solution for inexpensive RAID, and a good platform. Why not try something new? I didn't say something that was Linux-specific because I don't want to see people limiting themselves (choose what you like best, right?)
Vinum does implement RAID-5 in a separate version. As an aside, ccd and other much more primitive striping systems have been doing at least the lowest levels of RAID for years.
Brian Fundakowski Feldman
Was this possibly in the 2.2.X branch? I know that above that, Promise is _very_ well-supported.
Brian Fundakowski Feldman
As long as you have good IDE controllers (no huge bottlenecks), try FreeBSD's RAID/LVM system "Vinum." It would require trying an OS other than the media baby of today, but that's definitely worth it anyway.
If you _REALLY_ want to see great performance, try FreeBSD using Vinum and setting SoftUpdates on on the Vinum volume.
(Now just watch this be moderated down for being a troll, because I suggested something different...)
Brian Fundakowski Feldman
I'm running out of drive space, and I've run out of IDE locations. I've also run out of power connectors, but that's easier to work around (snip, melt, mmm, smell that resin:). I've also got the problem of where to mount an extra drive. As it is, my fourth HD is taped to an other with old floppy slide cover providing support. Gets a tad warm.
Bill - aka taniwha
--
Leave others their otherness. -- Aratak
Thanks, but after a little ferretting, WD's site takes you here.
Bill - aka taniwha
--
Leave others their otherness. -- Aratak
Actually, what he's proven is that you can't allow division by zero.
...phil
...phil
"For a list of the ways which technology has failed to improve our quality of life, press 3."
Posted by The Technical Revolutionary:
In my experience you should not have a problem adding a third ide controller, as long as you have the resources - especially if its pci. Linux does have to support it though, but I think that Linux supports tertiary, and quadriary IDE controllers. Basically, plug it in and it should work..
We don't know of any Linux RAIDframe ports; we've occasionally toyed with the idea of doing one, but we really don't have time to do it now (our efforts are focused on the NASD project these days). If you're interested in porting it to Linux, though, please let us know.
That's "Bluptharg" eh'. Sheez what ;).
a dummy
CC
"Pray arm me further by your reply" Winston Churchill
Mainly because you provide ample support for my statements that FreeBeasties are just as nasty as any "Linux biggot" around.
--
Ben Kosse
Remember Ed Curry!
Correct me if I'm wrong, but I don't think I am.
Incoming correction.
The IDE standard allows for only two IDE controllers in one system. Newer motherboards have both of the allowed controllers built in (hence the four IDE devices). If you plug in another PCI controller it will not work because of the two controllers already opperating in the system.
BIOS can only deal with (currently) two controllers. However, the IDE spec allows at least 4 controllers to be present. Whether this conflicts with anything else in the system is another matter.
Everything I have read on RAID (I'm not an expert but I have read a lot), has said it will not work on IDE systems. Here are the two reasons I can think of;
1) RAID trys to write accross at least 3 drives at once. Exactly what it writes to each drive depends on which type of RAID (0, 5...).
s/3/2/ RAID 0 and 1 require only two drives. RAID 4 and 5 require at least 3 and RAID 5 performs better with more drives.
This is no problem for SCSI drives on the same cable, because each drive operates seperatly. On IDE the drives work in the master/slave fashion and the slave is truly dependant on the master and must wait for the master to respond. Because of the master/slave issue, each drive would need to be on another cable. Which brings up problem...
There is no reason in software RAID that each drive needs to be on its own cable. You may not get as good of speed, but it is possible to run software RAID 0 or 1 on a single controller system while you need 2 controllers for RAID 4, 5, or "10" (RAID 0/1 combined).
If I'm wrong, I'd like to know, because I wouldn't mind running RAID on IDE's too.
It can be done, but it's not recommended.
--
Ben Kosse
Remember Ed Curry!
I could set the IRQ to 13 or 11
--
Ben Kosse
Remember Ed Curry!
As many people have already noted, using the Promise Ultra33 is an excellent way to approach Software RAID with IDE drives. There is some very useful information at Erik Hendriks' website at NASA Goddard:
http://www.beowulf.org/bds/disks.html
They found that most of the "dual" channel IDE ports built into motherboards are not truly independent because of a shared buffer in the controller. This is a "feature" of the IDE controllers used and effectively limits the collective performance of the two IDE channels to roughly that of a single channel. The IDE channels on the Promise board are truly independent though. As their benchmarks show, placing one drive on one of the motherboard controllers and one on each of the Promise controllers yielded nearly three times the disk bandwidth of a single channel. Of course, this is for data striping, not RAID5, but the principle is the same.
For those interested in building a RAID5 server, this configuration makes a lot of sense. Use two disks on each channel of the Promise and two disk on the motherboard controller...five data and one parity and roughly 3x the bandwidth of a single drive.
IDE has no notion of "disconnect" like SCSI, so the bus is held for the full duration of a read or write, which limits the usable full bus bandwidth to one device per bus. Technically there's no reason why you couldn't run a RAID5 on three or four IDE devices on two IDE busses, but it isn't practical since you're basically halving your bandwidth per device.
This shouldn't stop you from playing around, though... I once made a RAID0 with two old 80mb IDE drives on the same bus. It was slower than a single drive, but had twice the capacity. :)
NetBSD: the cathedral vs the bizzare.
So.. I tried upgrading to the newest kernel 2.2.10 but then I lost my raid device. So two questions here..
About a year ago I played with the raid0 and md linux stuff and found that I was able to raid any set of devices. I had scsi and ide drives on the same raid set.
:) Remember, this is *nix, any mountable /dev should work. It's up to you to decide how silly to make it.
I remember reading that it didn't even care if you use MFM drives although that would really slow things down. Since it's software, I don't see any reason why you couldn't raid0 a set of floppy drives... just to see how slow you can make you disk access
-- I have a private email server in my basement.
Thought nobody would catch on to the head-seek issue.
Stating on Slashdot that I like cheese since 1997.
No. In fact with 2D/1C (2 disks on 1 ctrlr), you will still get getter performance 1D/1C in most cases. Under general use, you're doing small-size reads distributed across the disk, so the real bottleneck is head-seek. Even with big contiguous-block reads, you'll still notice an improvement.
First off, RH-kernels are far from stock linux kernels. Do an 'rpm -qpl [file].src.rpm' on one of their kernel SRPM's and you'll see a bunch of (non-dist) patches. Amoung them is the raid patch
Support for the new Ultra/66 hasn't hit the 2.2.x tree yet(I think). Check 2.3.5+ for new Ultra/(33,66) support.
( I've never tried it ) I suspect that you'd might see (marginally) better read-speeds, but you might even see degradation on write or mixed rdwr perfs ( since every write yanks two out of three heads across the platters )
This won't work for raid5, not unless you want most of the large disk unprotected. Consider instead striping (for example) hda3+hdb3==md0, and then making a raid0 or raid1 volume md0+hdc3==md1.
Better yet, get four disks of the same size...
For hardware raid controllers, yes, go with identical disks. This is not needed for any kind of s/w raid I've dealt with (linux, disksuite, veritas-vm, xlv). For linux s/w-raid, you should be safe making a raid5-vol by mixing two ide-partitions, a scsi-disk, a loopback off of a file and a few NBD's (so long as they are the same size).
Scary, risky and very unwise.
So I'm not the only one...
/* MAGIC THEATRE
ENTRANCE NOT FOR EVERYBODY
MADMEN ONLY */
I run it at work, 4 IBM OEM Deskstar 22GPX @ RAID-5. Have it in our NFS server (Dual celeron 450, 256 Mbyte RAM). 10 diskless clients mounts thier root from it, works great.
According to what you just quoted, the answer would be "no." It says separate cables, not separate controllers.
My advice is try it and see. You are gonna buy the extra disk anyway, so it's not going to cost you anything. Maybe even save you from having to screw with another controller if it works fast enough for your needs.
/dev
"There's no secret. You just press the accelerator to the floor and keep turning left." -- Bill Vukovich
The difference in speed while compiling a kernel on this controller/drive vs my SCSI-3 (80 MB/sec) Tekram DC-390U2W controller and a Quantum 9.1 GB SCSI-3 drive is minimal.
The EIDE drive runs much quieter, cooler, and costs only about 1/3 as much per megabyte.
Daniel Butler
striping - yeah you wast one disk, but read performance is awsome. On a home system, so long as you back up your stuff, the fact that it increases failure possibilities should be too much of a problem. I would rather do this than RAID5.
Of course is fault tolerance is actually what you want, and not speed, then maybe you should just try simple mirroring.
I do not think you can do RAID5 because there is no way to have more than 2 ATA controllers that I know of.
support gun control: take guns from cops
So we are starting to see RAID implementations, and that's wonderful, BUT, what we do not have,
is the tuned, log-structured filesystem to stripe onto those lovely disks. We also lack the buffer cache implemented in NVRAM, and we still have severe performance problems with NFS. Backup systems are probably OK, but what about disk monitoring tools?
I only bring up these points in case somebody is
thinking that we have anything in the linux camp
that can eliminate the need for NetApp, EMC, or Auspex filers. I WISH we did, but I have to wonder if we ever will. Maybe with the release
of XFS we will have the filesystem, and that's a start, but there is much more to be done...
-fb Everything not expressly forbidden is now mandatory.
Well there's the IRQ holders / PCI steering thing for using multiple devices on a single IRQ, I've got a Matrox Millenium sharing IRQ3 with my Yamaha sound card and a TNT sharing with my PS2 mouse and things work fine. An yes I am using windows on my game computer with multiple monitors and the only trouble I can see with the IRQ sharing seems to be when I disable the second monitor the mouse quits uintill a restart, but that wouldn't be a problem if I never had to disable the second monitor, but Q3 seems to not like the dual situation.
matguy
Net. Admin.
matguy(.com)
I tried one of those Promise cards "waybackintheday"(tm) when Win95 was still the standard for me and the cards as ultra33 just came out. I bought one because I had an abundance of 1.2gig ide drives just sitting around and I wanted to use as many of them as possible and I hated puting a bunch of drives on the same cable. First, it was pretty finicky as to what would fit where, but I figured it all out and things ran, well for a while. After a few weeks I started getting protection errors constantly, yeah usually on startup, but in win(whatever) you restart a lot, so it was a pretty big annoyance. So I ended up returning it and then just relied on scsi for large numbers of drives.
Something else I had wondered about, would it be possible to have a small adapter type of thing to put a ide drive on a scsi chain, now there you would have something as long as it was pretty low priced. I do think it would be feasable and it would solve the problem. All it would take would be some kind of translation and an autodetecting chipset, it should work real well in an external case. It's something I've been thinking about since my mac days back in school, we had these macs with these little 200mb drives and our pc's over there with their 800mb drives that cost less. I always thought it just made sense, but no one in the industry would want to do it I'm sure.
matguy
Net. Admin.
matguy(.com)
A few weeks ago, I installed RAID-0 across two IDE disks--one 8G the other 6G. Other than booting (doesn't load up at boot--have to do it manually), it's performed flawlessly (but slowly).
I've RAID-0'd the two disks on one controller (master-slave) so it is SLLLLOOOOOOOOOWWWW. The other controller runs the system (RH 6.0) OS disk. It may be slow but it's still functional which is what I was shooting for.
Unless your card is something really, really odd... that is two controllers. Actually, probably only one controller, but with two "channels". Each 40 pin header is one channel and can support two devices. I've never seen otherwise, and I've seen lots of oddball hardware. P.S. If that is a CMD640 chip on it, consider replacing it.
See that "Preview" button?
we did have ide raid cards that are from promise here at my work
t =Drives&sku=205-1033
we are out of them at the at this time but here
is the ad for them
http://www.compgeeks.com/cgi-bin/details.asp?ca
YOU CAN'T FIX STOOOPID
Back when I had my 486 I had a Promise caching IDE controller card(2 IDE channels per card for a total of 4 devices). It would allow you to have 2 of those cards in your system(or your onboard controller plus the Promise board). Not exactly sure how it worked, but when I had just the one card in my system it was fast! You could put up to 16MB on the card(I had 4MB and was quite happy with it). Not sure if Promise still makes it, but worth looking into!
Yes, having 2 IDE controllers, each with support for a primary and a master, will give you 4 drives, but you can't access all 4 of them simultaneously; having all of your drives accessable simultaneously is probably very desirable in a RAID system.
One IDE controller can only control one disk at a time, so you can't read a file from two disks simultaneously, and you can't actually read from one disk write to another while you do so, even though it sortof looks like it, when you do something like copy a file from one drive to another, because the task is being swapped between disks so quickly.
-rozzin.
To clarify the point, software RAID under Linux (any mode) does not absolutely require that each hard disk be on a seperate controller. I have had plenty of success using Software RAID on drives on the same controller. I haven't seen system performance bog down too much with this configuration either. On the newer bus-mastering Ultra33/Ultra66 controllers, CPU time for IDE access isn't really as big a problem as it used to be. So, if you're just talking three drives for a test machine, I don't know that the extra expense for a slick PCI IDE controller is going to be all that justified. Try it with your onboard controllers and then upgrade if you decide you need it.
Another question is this: Is there any support in Linux for IDE Hardware RAID controllers like the Promise FastTrack, FastSwap Pro, or SuperTrak? Obviously, Hardware IDE RAID solutions are much less expensive than traditional SCSI RAID controllers and drives and can offer comparable performance on smaller workstations or smaller workgroup servers.
~GoRK
As far as I know, with onboard IDE controllers, it can only be writing or reading from only one of the drives at a time. So in effect, yes he would need 3 different controllers to be writing to all 3 drives at once (which is what makes RAID so fast).
8Complex
Be careful with this one or that fryguy might be visiting you sooner than you think ;)
The safest way to handle an IDE hotswap is to unplug the power first and let the drive totally spin down, and then unplug the data cable. When powering a hotswapped drive back up do it the other way - data cable then power cable. Never mess with that data cable if the drive is running. Unplugging the data cable first can cause bad things to happen, or so I have been told. We had a hardware course at the college I attended. The guy who was teaching it really knew his hardware and that was the way he recommended doing it. He explained why but it has been too long... something about toasting the controller.
A neat trick based on this is hotswapping for data recovery. If you lose a hard drive to a bad ondisk controller and you have another identical hard drive, boot from the good drive, then follow the above steps to swap them - chances are that you can get your data back this way unless the controller on your bad drive is really fried.
Just my $0.02
Hell is being intelligent in a world full of idiots.
Actually, I *believe* you can have 3-4 IDE controllers on a single mobo. Most only have 2 for economic reasons, and the bios only controls the 2 on the mobo. There are adapter cards that can be plugged into the motherboard, which may have seperate bios setups (like SCSI), I'm not sure.
I do think there is a limit in memory mapping or bus mapping or something silly like that. It just happens to be 3 or 4. But I could be wrong or mis-remembering.
Also, you run out of IRQs quickly, but I don't recall if an IRQ is used per drive or controller. I think things like Promise's IDE HW RAID uses some form of IRQ overlays, using one IRQ for multiple drives/controllers.
While every bios I have ever used only supports two controllers(each with a master and slave), each using there own irq. The offboard cards have there own bios' to detect drives and know how to talk to the drive. You do not have to disable the onboard ide they work fine.
My Ultra/33 has two connectors and supports up-to four drives.
It is not really a problem sense like 2.0.35, even the dreaded products of M$ will let you use these things I ran two HD, a zip disk, a cdrom, a cdron changer, and a cd-burnner, No problem. But there was a notable differace in speed when you transfered between things on the same cable.
One day people will learn the folly of Winbloze, Linux Rules!
You might try striping (RAID-0) instead. It offers performance advantages like real RAID but does not provide redundancy. It only requires two disks, though more disks gives better concurrency (unless they're on the same IDE chain!).
It's less reliable than real RAID for sure, but it's also even less reliable than using seperate disks as seperate disks. If one fails you effectively lose the contents of both.
Still, for an experimental box, or a box where you care more about performance than the data safety (USENET server), it's cheaper than RAID-5.
Can you not put the system OS disk and one of the striped disks on the primary controller, and the other striped disk on the secondary?
The idea is to split things up so that disks you are likely to be accessing at the same time will be on seperate controllers. The system disk probably doesn't matter as much as the stripped disks, because the frequently accessed stuff on the system disk tends to stay in RAM anyway.
By the way, do you have to do anything special to keep your system cool with three disks? I had a 1 GB and a 340 MB disk in my system not long ago, and they warmed the inside of the whole box, even with two fans. My single 13 GB is cooler. (I guess 5400 RPM produces less heat than 3600 RPM + 3600 RPM)
I have four IDE drives on 2 interfaces and they're 17.4gig Maxtors and they seem to work just fine.I think that you do not need to have a separate channel for each drive. As a matter of fact...this is the 3rd machine I have built this way and they all built the same way....working. ;-)
So my advice is....if you want to use 3 drives..go ahead.
Kevin
I have the exact same motherboard, and I simply filled up all the on board controllers and needed more hard drive space. I got the Promise Ultra33 card, and it works wonderfully. With it, I can even boot off of hde3! If you want a *lot* of drives, the Promise card is well behaved enough that you can have more than one of them in your system and they won't step on each other. I highly recommend it!
-Cheetah
A typical motherboard today has two onboard (E)IDE controllers, called the primary and the secondary. The primary controller is usually assigned IRQ14, and the secondary IRQ15.
Each controller can control two (E)IDE devices, but can only actually read or write to ONE of those devices at a given moment. The first device is called the 'master' and the second device the 'slave'.
However, the controllers are independent of each other, meaning that you can access a drive on the primary controller while simultaneously accessing a drive on the secondary controller.
For example, one way to essentially double your disk swapping performance is to put half your swapspace on a drive attached to the primary controller, and the other half on a drive attached to a secondary controller. (Note that when 'swapon'ing the swapfiles or swap partitions, they need to be assigned the same priority. 'man swapon' for details.)
Hope this helps.
mdm
Here is a review of the Fast Trak IDE RAID Controller on AGN Hardware. It costs between $60-80, and in a RAID 0 did increase performance a bit. It supports RAID 0, 1, and 0+1. Not sure if it'll work in linux though.
He said, "You'll be able to tell your grandchildren that you helped assemble the first NT supercomputer," and I cringed.
I got the impression he didn't care much about overall throughput, he's just trying to have fun.
And remember: He'll still get the fault-tolerance advantage of RAID, no matter how he hooks up the drives. Heck, he could even use floppy drives. ;-)
As copyright owner of this comment, I authorize everyone to defeat any technological measure which limits access to it.
I have an ATA card that has 2 cable plugs on it. Does this count as one controller or two?
At home I've been running an old Digital 386DX/16 workstation, as a server for a while. It initially came with an Adaptec SCSI controller and a 40MB Scsi hard drive. It used the SCSI BIOS to boot the HD. The system bios itself could only select a floppy and the SCSI drive as an option to boot. Right now, I don't have any scsi hard drives in it at all. It has 2 small IDE drives and a Hardcard, with a copy of the kernel in the floppy drive. It boots off the floppy, and then uses the IDE drives, despite the fact that the BIOS doesn't support them.
This only thing IMHO that could prevent you from having eight IDE controllers is a lack of IRQ's or some other possible limitation, that I don't know of, placed by the PCI bus.
This is explained in more detail in the Large-Disk mini-HOWTO
The Software RAID documentation says that each hard disk should be on a separate IDE cable and that RAID5 requires at least 3 hard drives
Yes.
Actually, I *believe* you can have 3-4 IDE controllers on a single mobo. Most only have 2 for economic reasons, and the bios only controls the 2 on the mobo. There are adapter cards that can be plugged into the motherboard, which may have seperate bios setups (like SCSI), I'm not sure.
I believe you are correct. As a matter of fact, I would bet a chunk of pretty polly that the number of IDE channels allowed has nothing to do with the mobo or the BIOS. It is merely a function of how many IDE channels are on the mobo and how many are on your "additional" controller.
Of course having more than one "extra" controller in a box might be a bit tricky...
Just needed to tell the community: IBM has released a few drivers for their ServeRAID controllers (model I, II, 3H and 3L) under GPL. It can be found here
-- MicAttAck
Religon is an insult to human dignity.
And you're helping whichever OS you use... Of course, you're an "Anonymous Coward", so you are probably just one of the 'nets great trolls... Jeez, if you REALLY want a troll, how 'bout this one?
linux sucks, Linus sucks, ESR sucks, Windows rules forever!!!!
Hmmm, I wonder if I can set the record for lowest score on
[rant on] But seriously, the Linux community is in danger of falling in to the same trap that is fighting against the Macintosh. Fans of the system are becoming so rabid in their fanaticism that they take offense at any slight against it, even if it's true. Take the [ominous music here] infamous Mindcraft survey; other, independent sources (Ziff Davis, maybe not the greatest of sources, but still independent) have confirmed that under the testing conditions supplied, Linux really is slower than Windows NT Server. But, do most Linux users sit down and say "Hmmm, well, that's a surprise. Now how do we go about fixing Linux so it is faster?" No, the vast majority of the posts on Slashdot were ones to the effect of "Mindcraft is evil, they must be burned at the stake for heresy!"
Remember, in your religious pursuit, don't go so far as to refuse to accept facts, just because they go against your beliefs. Personally, I think that the worst at this is none other than good 'ol Eric S. Raymond. Yup. He is the Rev. Falwell of the Open Source movement. Fine, fine, he did plenty of good things, but he should stick to coding, as he does not make a good spokesperson.
[rant off] Remember, we should not only be open source, but open minded.
Another non-functioning site was "uncertainty.microsoft.com."
The purpose of that site was not known.
WARNING: This is from personnal experience only, take what I say with caution and don't try this unless you have experiemental hardware. You have been warned.
I have done hot swapping of ide drives at my work place. I didn't want to shut the system down (was erasing about 30 ide drives and rebooting would have been a pain). As far as sw goes, linux can reprobe for ide drives provided you compiled ide as a module (there goes booting, but this was an nfs root booting from floppy). I hear there is an ioctl() you can call to have it do the same thing. Basically, just rmmod ide-probe and insmod ide-probe.
Now as far as hardware goes, this has always worked for me but I won't be responsible for someone trying this on their hardware and frying it! The way I have always done this is to plug in the power cable first and let the drive spin up (this goes for all ide and scsi drives). Once they have spun up, plug in the ide cable. Make sure you plug it in right! rmmod and insmod the ide-probe and you should be in business. I did hot adding of a cdrom to a linux server today (scsi bus) and didn't have any problems, had to reboot since the sync rate was set in the scsi bios to 5mb/sec instead of 20.
WARNING: You could fry your drives. I have been lucky and waiting for the day when the fryguy comes =)
Lab test show that use of micro$oft causes deadly cancer in lab animals.
RAID5 is not striping and mirroring.
One IRQ per controller, tipicaly IRQ 14 for IDE 1 and 15 for IDE 2, if you're looking for spair IRQs try 10 and 11, they're usuaily SCSI controller 1 and 2.
-Ted
Promise (and most likely, other companies,) makes a port expander card. This is an older card, but still does the job. EIDE compatible, no UDMA on this one. This will give you 4 IDE channels (most modern motherboards have 2 built in, this gives you an ADDITIONAL 2 channels.) It can be found here. Note: This is an ISA card.
Promise also makes their Ultra33 expander card. This card supports UDMA33, and once again, adds an additional 2 channels. It can be found here. Note: This is a PCI card.
For those who really want speed, once again, Promise comes through with their Ultra66 expander card. This card supports UDMA66, and, like their previous cards, adds 2 channels, leaving your original 2 free for other devices (or more hard drives). It can be found here. Note: This is a PCI card.
By giving your machine 4 IDE channels, you will have the option of connecting up to 8 IDE devices, including hard drives, cd-rom drives, and the like. You should (if I'm thinking correctly..) be able to read/write from 4 of these devices simultaneously (one device from each channel). This is probably what the HOWTO or whatever is talking about (needing 3 controllers/channels/whatever). Accessing 2 devices on the same channel will be somewhat slower.
Don Head
UNIX/Linux Administrator
Personally I use a Promise Ultra33 controller and two 8.4 gig Western Digital drives under FreeBSD's vinum (striped) with great results. I picked up the controller for $26 at a computer show recently. Performance-wise, on a single controller (master/slave configuration), performance was about equal to a single drive. With each drive set up as the master on each of the Promise's controllers, I can get ~13 M/sec (dd-stone) continuously. I had to hack the driver a bit on FreeBSD, but Linux didn't seem to have a problem with it.
If I understand your description correctly, this is one controller. Each EIDE controller can control up to four devices, two primary and two secondary. The primary devices exist on one cable and the secondary on another, therefore you can communicate with only one primary and one secondary device at any particular time.
"I think the mistake a lot of us make is thinking the state-appointed shrink is our friend." --Jack Handey
Actually, my understanding is that you cant write to two disks on the same /channel/ at the same time, however most modern EIDE controllers have two channels, each one capable of controlling two drives. Therefore, it is possible to write to two disks, provided they are on different channels.
"I think the mistake a lot of us make is thinking the state-appointed shrink is our friend." --Jack Handey
Correct me if I'm wrong, but I don't think I am.
The IDE standard allows for only two IDE controllers in one system. Newer motherboards have both of the allowed controllers built in (hence the four IDE devices). If you plug in another PCI controller it will not work because of the two controllers already opperating in the system.
Everything I have read on RAID (I'm not an expert but I have read a lot), has said it will not work on IDE systems. Here are the two reasons I can think of;
1) RAID trys to write accross at least 3 drives at once. Exactly what it writes to each drive depends on which type of RAID (0, 5...). This is no problem for SCSI drives on the same cable, because each drive operates seperatly. On IDE the drives work in the master/slave fashion and the slave is truly dependant on the master and must wait for the master to respond. Because of the master/slave issue, each drive would need to be on another cable. Which brings up problem...
2) only two controllers work in one system but three are needed to avoid slaving any drives. Three cables, three master drives, three controllers.
IMHO it can't be done.
If I'm wrong, I'd like to know, because I wouldn't mind running RAID on IDE's too.
The two most common things in the Universe are hydrogen and stupidity. -- Harlan Ellison
If you're just looking to screw around with it, do you need to have three controllers, or is that just to get better performance out of it? What happens if you put two of them on one controller and the third on the second?
You may be able to find controller cards that came with CD-ROM that are dedicated tertiary controllers. I found that they no longer make these boards anymore (too bad) You also had to get special drivers or OS support for them.
The BIOS will only reconize the primary and secondary controllers. It used to be that it would only reconize the primary controller. They made boards with on-board BIOS extentions to reconize the secondary and/or tertiary/quatinary cards. Then you could add hard drives and/or CD-roms to any system. (Anyone remember the 40mb HARDcards?)
make Linux, not Microsoft. sin(beast) = -0.809016994374947424102293417182819
I'm running a software IDE raid on my box, Pentium 233 MMX, and it runs fine, if a little slow. Using the default 2 channels built into the motherboard, I have PriMaster as the boot drive and the PriSlave+SecMaster+SecSlave as the Raid5. I'm sure it would be faster with separate controllers / cables for each drive, but I was looking for redundancy, not speed.
http://www.pdl.cs.cmu.edu/RAIDframe/ is the URL for CMU's RAIDframe project.
Dunno whether it works with Linux, but it's already been integrated into NetBSD. (http://www.cs.usask.ca/staff/oster/raid.html)
I was actually talking to my friend about this the other day and he said that when he researched it that there were limitations in the x86 architecture that allowed for only 4 controllers, and he had it working on his machine. That is, two on his motherboard and a card with two. I think he did it was because he had 8 drives they were throwing away at work, and a card. So he threw them in an old server case and loaded linux on it, it worked fine apparently.
> X=Y;X^2=XY;X^2-Y^2=XY-Y^2;(X+Y)(X-Y)=Y(X-Y);X+Y=Y; 2Y=Y;2=1
This is all true except for the "2=1" thing if X=0 and Y=0.
i.e. you have proven nothing.
-- Wodin
I don't think I know of a pci ide controller that doesn't work in Linux actually. The controller should have its own bios on it and have a little init screen after your system's original bios does its thing. Only problem I've had is that lilo doesn't know how to write the mbr on it and the 2.2.x kernel option to have the drives on it show as the primary/secondary instead of tertiary/4th doesn't work but it doesn't seem that this will cause a problem for what you're trying to do.
~Kevin
:)
AFAIK you can only have 2 IDE channels on a motherboard. You'll notice in the BIOS that there is only room to identify 4 drives - Primary Master & Slave and Secondary Master & Slave. I've never come across any hardware which allows for three (or more) channels.
That being said, there could be some wierd freaky mobo which allows it... I've had experience with several types & versions of SuperMicro Boards (they are THE BEST(tm) IMHO) and I'm fairly sure none of them will support it - you have to disable the onboard IDE channel to get a offboard one to work type idea...
Perhaps someone knows of a mobo/bios combo which allows this? Or has a hack around it? heh, feel like coding in hex? (or whatever they make BIOSes out of these days)
I used to have a cool sig.
And ABSOLUTELY NO LINUX SUPPORT!
Yes, you can do more with SCSI. But I see good performance on modern IDE in the only combo I have tried, using 2.2.10 kernel, BX onboard UDMA, and Maxtor 92048D8 (20G/7200RPM/1Mcache) drives. It seems a shame to ignore the potential of adding fast, inexpensive storage on channels already available. Note that I only tried one drive per channel, so I don't know what effects lack of scsi disconnect and other features might otherwise cause. I suspect the 20MB/s+ reads from the Maxtors would make the 33MB/s UDMA a bottleneck with more than one per channel anyway.
There are three reasone to use RAID:
1. Reliability
You need to buy another controler and get disks as similar as possible. Use Raid 5 or 1 (mirroring).
2. Performance
Buy another controler (as MB controlers aren't independent (as mentioned)) and run RAID 0 _and_back_it_up_to_tape_ for fastest reads/writes or RAID 1 for faster reads.
Again, get similar disks as you will be limited by the weakest link in the chain
3. Just want to play/can say you have RAID
If you can't justify buying a controler/disks (read: no real reason to run RAID), do Linear Append on two disks on your "seperate" IDE cables.
Because of the way the ext2 FS statistically distributes data across the disks you should get slightly better performance if both disks are reasonable fast (don't do this with a old slow dog and a fast new disk).
The real answers for "the best RAID setup" depend on exactly what you want to do with it. eg., most web servers want fast reads an don't care too much about writes vs. production database servers want fast reads and writes but care most about data integrity (RAID 5 or 0+1).
or in mantra form:
If you want performace stripe it; if you want reliability mirror it; if you neeed space append it.
Just because I like to deconstruct things doesn't make me a Deconstructionist.
I'm curious about IDE software RAID as well. Here
are a couple bits of info that may be relevant. I
haven't tried any of this yet.
First, http://www.linuxhq.com/doc23/ide.txt
This claims 2.1/2.2 kernels have:
> - support for up to *four* IDE interfaces on one or more IRQs
> - support for any mix of up to *eight* IDE drives
And further in the document there is info on
configuring such a system, which claims that you
can run as many as 6 interfaces (3 controllers?):
> This is the multiple IDE interface driver, as evolved from hd.c.
> It supports up to six IDE interfaces, on one or more IRQs (usually 14 & 15).
> There can be up to two drives per interface, as per the ATA-2 spec.
>
> Primary: ide0, port 0x1f0; major=3; hda is minor=0; hdb is minor=64
> Secondary: ide1, port 0x170; major=22; hdc is minor=0; hdd is minor=64
> Tertiary: ide2, port 0x1e8; major=33; hde is minor=0; hdf is minor=64
> Quaternary: ide3, port 0x168; major=34; hdg is minor=0; hdh is minor=64
> fifth.. ide4, usually PCI, probed
> sixth.. ide5, usually PCI, probed
For UDMA/66, the only controller I know of is the
Promise one. From the Ultra-DMA Mini-Howto:
> 5.2 Promise Ultra66
>
> This is essentially the same as the Ultra33 with
> support for the new UDMA mode 4 66 MB/sec transfer
> speed. Unfortunately it is not yet supported by
> 2.2.x
>
> There is a patch for 2.0.x and 2.2.x kernels
> availabe at
> http://www.dyer.vanderbilt.edu/server/udma/, and
> support is included in the 2.3.x development
> kernel series at least as of 2.3.3.
>
> However to get far enough to patch or upgrade the
> kernel you'll have to pull the same dirty tricks
> as for the Ultra33 as in the section above.
You mail also want to check out the linux raid
mailing list
http://linuxwww.db.erau.edu/mail_archives/.
Good luck! Please post your results to the mailing
list and/or comp.os.linux.hardware.
Joel Auslander
ausland@digital-integrity.com
Promise makes a great IDE Raid controller.. it's about 200 bucks canadian. It will allow you to have 4 cards and enable you to also use your onboard motherboard IDE drive ports as well. I've used two of these cards, with 6 drives. Wow and FAST are all I can say. The neatest thing: Multiple cards... The Site link is http://www.promise.com/Products/ideraid/fasttrak.h tm some stuff from their page: IDE RAID 0,1,0+1 card Supports up to 4 UDMA/EIDE drives Up to 25MB/sec sustained data transfers Fault-tolerant data protection for entry-level network
-=-Ze End-=-
the company PROMISE makes a ATA66 compatible IDE RAID controller card called FASTRACK66 (http://www.promise.com). like the original FASTRACK card, it allows you to own yer own RAID 0 or RAID 1 array. pretty neat. only thing is i dont know if it will let you combine ATA66 and ATA33 drives. i wouldn't think so. there is a review of it in the new maximum pc (http://www.maximumpc.com). i have the original hooked up to 4 WD 6.4 drives, and it works flawlessly. i am in the process of building a new box and am salivating over the new ATA66 drives. hope this helps.
"searching for a soul..."
First Try
/home. This worked flawlessly, even under heavy load, and all from ide0 on a '386. Of course, it was not the real performance tiger, but it did the job.
Back in "Ye Olden Times" I striped the larger parts of two 540MB disks into one: hda1 was root, hdb1 was swap, hda2 and hdb2 together were
Second Try
Later, I used a stripe running over five disks: hdb2 was the upper part of an 1.6GB, and hdc1, hdd1, hde1 and hdf1 were 1.2GB disks. The ide0 was on the motherboard, ide1 and ide2 were $10 add-on-cards with one dil-something chip, originally designed for CDROMs, but capable of being jumpered to anything from ide0 to ide3.
Another "works, but does not scream" solution.
Current Experiment
Just this weekend, I added a second PCI-based IDE-adapter to my (new [1]) machine. When I asked my hardware dealer for an additional IDE under Linux, he shrugged, as even they never had experiences with additional IDEs, leave alone ones running under Linux. So I gave it a try, in desperate search for more HD space... And it worked.
I bought a "3201 Ultra DMA-33MHZ IDE Card". The "Manual" (a folded 8"x6" paper, propably translated from chinese to english by some martian) stated that the "3201 can co-exist with M/B IDE port, so you can add 3201 to add 4 devices into your system." (their spelling, not mine).
As I could not derive which jumper(s) to set or not set from the "Manual", I just plugged it in, with one spare drive attached to give the machine something to find. At first, it found nothing. Then I disabled the MBs onboard IDE and changed the drive types in the bios to "AUTO". At the next boot, the on-board EProm kicked in and searched and found the drive attached to the 3201. I rebooted again, re-activated the MBs IDE, and, behold, it found the drives from the onboard IDE and the drive on the plugin IDE. Linux immediately recognized ide2 with hde attached, and worked flawlessly. Drawback: ide2 eats IQR11, and so far I found no way to map it to 14/15. the ide3 is not yet in use, so I'm not sure wether it eats an additional IRQ or not.
Description of the Card
The 3201 features a CMD 646U2, a bugfixed and improved version of the CMD640 when I read the chips manuals correctly. There is an EPROM with the BIOS on the card, the ide-connectors, jumpers, a connector for the LED, and quite a bunch of resistor arrays (terminators, pull-downs, etc). The name of the company is printed on the boy, not on the "Manual", so I can't look it up now. The card is "made in taiwan" and seems to be of good quality (although there *is* room for improvement). The price was DM 139 (roughly US$75), which is propably due to the low demand for cards like this (the chip is available for US$9 in quantities).
[1] Well, newer than the one before... Its there for disk space, not for speed.
Segfault???
censorship is a form of noise, which actively seeks to drown out content with silence - Crash Culligan
It can be done, yes. You won't see much of a performance improvement by adding a third IDE channel, though. I'd just stick the two stripped drives on one channel, and the parity drive on the second channel (with the CD-ROM, if you have it...).
IDE is NOT going to yield good performance, period. Just because it is slow, though, doesn't mean you won't be able to get it to work perfectly. Play with it on IDE, and if you think it is worth it, invest in SCSI hardware.
SCSI costs more, but there's a reason for that extra $$$... You can plain DO more with SCSI!