I used to run an 8 drive software RAID5 array on a redhat 9 system. Was fairly stable, but the difficulty of maintaining 8 IDE channels (1 drive per channel) was too much and I eventually had a catastrophic failure. I ditched software RAID and went to 3ware cards and hardware raid and haven't looked back.
Some observations from my experience:
- online expansion: back when I used s-RAID, there was a tool to resize your array, but it was slow and buggy. I never tried it
- partitions: I have always been a big fan of large single partitions. you choose the block size when building the array, so I don't see any benefit to breaking up the partitions. less drive mounting to deal with as well (under linux)
- diff sized drives: with software (and even hardware) raid you can use different sized drives. Software raid uses partitions that are all the same size to create the array, so if you had some "leftover" space on a drive, you certainly could partition and format that and use the space. You can't use it as parity within the array however, unless the "extra" space partition is large enough to be added as a member of the array, but I would advise doing that.
- access from windows network -> samba is your friend.
- ftp: linux has numerous ftp options available for remote access.
- e-sata: I see no reason why external drives couldn't be used for a software raid array, however I would be wary of having devices not powered by the same power-supply or switch members of an array. If one accidentally gets powered down, it gets kicked from the array.
- win2k3 vs linux: no experience under win2k3 for me with software raid, so no input. My experience was all with linux
your hardware specs are more than adequate for your build. one of my 3ware file servers up until just recently was a 1ghz duron with 1gig of ram.