Leythos said:
I may be missing something here, but I don't see anything that states
for something to be a raid controller that it must have a CPU or Cache.
As long as the chipset, using any firmware, handles the communications
with the drive and provides RAID 0/1/5 ability, it's Hardware Based
RAID.
If I use a non-RAID chipset and require the OS to process everything,
then it's soft RAID.
If I'm lucky enough to get cache and a CPU on the controller then I get
even faster RAID.
As I see it, the Promise or Intel RAID chipsets on some motherboards
provide the functionality needed to be considered hardware RAID. Sure,
they don't have their own CPU's, but they do have their own BIOS, do
have their own firmware, do take commands from the OS, and do allow the
creation, building, rebuilding of RAID Arrays before the OS is even
installed on the system.
My understanding of hardware raid is as follows:
For a mirror:
If the OS prepares precisely one block of memory, with data
to be read or written, and the hardware solution takes that
block of memory and reads or writes to two disks, and only
returns "complete" status to the OS when both disks finish,
that is hardware RAID. If the OS has to issue two commands
to the hardware, saying write this to disk 0, then says write
this to disk 1, that is software RAID.
For a stripe:
If the OS prepares precisely one block of memory, and
issues one command to the hardware, and the hardware
alternates writing stripe-sized chunks of data to the
two drives, that is hardware RAID. If the OS chunkifies
the original large memory block, and alternates commands
to the two channels to write a stripe of data to the drives,
that is software RAID.
The difference is in the overhead. With DMA transfer, the
largest overhead of data movement by the processor is
removed. So, these days, it will be harder to tell whether
the solution is hardware or software based underneath. It
will be hard to tell from the remaining level of overhead,
to what extent the hardware hides the details of how the
disk subsystem is wired up, and what it is
(mirror or stripe).
The quality of any solution will be measured in two
parameter - max steady state bandwidth (HDTach) and
percent CPU while doing it. So, experiment and find out.
Whether RAID is hardware or software is based on the
level of abstraction. If the OS/driver, when viewing
the hardware, thinks it is dealing with a single disk,
when in fact the controller handles all the details of
running the RAID, that is a hardware controller. If the
OS is aware of the details underneath, to achieve basic
data transport, then it is a software based controller.
Notice that my definition doesn't cover implementation,
so you don't need to know the private details of how it
is done, to have a definition.
Just my two cents,
Paul