Looking for cheap RAID card.

R

ring.of.steel

Guest
Hi guys, im looking for the cheapest raid card i can find that i can rely on, Im looking at either raid 3 or raid 5 not too botherd wich. Can anyone reccomend me a controller >$250? I was looking at the xfx revo 64 spu. This is for a home file server.

Edit, looking at raid z with zfs, looks fast and bulletproof...
 
Hi guys, im looking for the cheapest raid card i can find that i can rely on, Im looking at either raid 3 or raid 5 not too botherd wich. Can anyone reccomend me a controller >$250? I was looking at the xfx revo 64 spu. This is for a home file server.
I would avoid the XFX. The company that made them is either out of business or hiding, and they've been noted for their tendency to drop disks and not rebuild the array when spares are put in. That makes them sorta useless. Look at Highpoint cards. See also the controller guide I wrote up.
Edit, looking at raid z with zfs, looks fast and bulletproof...
It's pretty bulletproof, in the sense that I have never managed to break an array by shuffling disks, randomly overwriting data on a single disk (!) or stuff like that. Running a stable Solaris (10u4 rather than a b7* build) is recommended, just so that more people have a similar setup in case something does go wrong. The biweekly builds are beta bits.

As for fast, I can't really speak. I'm running it in two places on dual p3 boxes, which can each handle 50 MB/s reads and writes - bottlenecked by network on those slow machines. But on faster CPUs I have no experience. Compression and checksumming are currently single-threaded, so if you have to choose between two really slow chips and one slightly faster one go with one. But if you're running on even slightly recent hardware you should be okay speedwise.

There are other downsides to ZFS, unfortunately. It's not currently possible to widen a raid-z vdev, so to expand an array you need to create another raid-z or mirrored vdev lest you not have parity for that part of the array. Here's what I mean. My brother has a machine with a zpool, here's what it looked like before we upgraded it:
Code:
will@fs:~$ zpool status
  pool: data
 state: ONLINE
 scrub: none requested
config:

        NAME        STATE     READ WRITE CKSUM
        data        ONLINE       0     0     0
          raidz1    ONLINE       0     0     0
            c2t3d0  ONLINE       0     0     0
            c2t6d0  ONLINE       0     0     0
            c2t2d0  ONLINE       0     0     0
            c2t4d0  ONLINE       0     0     0
            c2t1d0  ONLINE       0     0     0
            c2t5d0  ONLINE       0     0     0
and after:
Code:
will@fs:~$ zpool status
  pool: data
 state: ONLINE
 scrub: none requested
config:

        NAME        STATE     READ WRITE CKSUM
        data        ONLINE       0     0     0
          raidz1    ONLINE       0     0     0
            c2t3d0  ONLINE       0     0     0
            c2t6d0  ONLINE       0     0     0
            c2t2d0  ONLINE       0     0     0
            c2t4d0  ONLINE       0     0     0
            c2t1d0  ONLINE       0     0     0
            c2t5d0  ONLINE       0     0     0
          raidz1    ONLINE       0     0     0
            c0t5d0  ONLINE       0     0     0
            c0t2d0  ONLINE       0     0     0
            c0t4d0  ONLINE       0     0     0
            c0t7d0  ONLINE       0     0     0
            c0t3d0  ONLINE       0     0     0
            c0t6d0  ONLINE       0     0     0
If we were to add a single disk, it would have looked like this:
Code:
        NAME        STATE     READ WRITE CKSUM
        data        ONLINE       0     0     0
          raidz1    ONLINE       0     0     0
            c2t3d0  ONLINE       0     0     0
            c2t6d0  ONLINE       0     0     0
            c2t2d0  ONLINE       0     0     0
            c2t4d0  ONLINE       0     0     0
            c2t1d0  ONLINE       0     0     0
            c2t5d0  ONLINE       0     0     0
          c0t5d0  ONLINE       0     0     0
The indentation indicates that that disk isn't part of the raidz vdev, it's its own thing. There's still checksumming on it, so you can see if something has gone wrong with it, but there's no parity from which you could recover the lost data.

The last issue I would raise to your attention is that it's not currently possible to remove a device. Accidentally add a drive and it's necessary to have that drive plugged in on subsequent mounts. If that drive dies your whole pool goes. In short, if you plan to make a four-disk (say) raidz and later go to eight in one step, you're all set. If you want to have five, six, and seven as intermediate steps, you're out of luck.

These features are coming eventually, but it'll be a fairly substantial reworking of how raidz works.
 
Thanks that really helped my understanding!, i cant find anything on google about accessing zfs from windows. what i would like to do is create directorys on the raidz like:

Code:
/fs/music
/fs/movies
/fs/docs
/fs/apps

You get the idea, i am planning to start off with 1 volume with 3x320's as a raid-z set, im under the impression if a drive dies i can just replace it right?

Can you advise me about how to access the zfs shares nativley from the windows side?

thanks
 
It's possible to apply different properties to different filesystems in a single pool. Thus, you could set "compression=on" and "copies=2" for your documents for extra redundancy, or whatever you like, if you create a fs/docs filesystem rather than a directory. You could also set quotas or reservations per directory this way. If that doesn't sound interesting, you could just create directories, but filesystems are cheap under ZFS.

Samba is what you'll want to configure to get access from Windows; look at /etc/sfw/smb.conf (or some variant on that - I'm not at a Solaris box right now) and configure it. There are lots of readmes and so forth on how to do this, but if you hit problems post back. Then run "svcadm enable samba" and "svcadm enable wins" if you want browsing by name to work, and everything should Just Work. You could also use the Services For Unix package on the Windows side, but that's quite a hassle to set up properly.

If a drive dies you must replace it (use "cfgadm -c unconfigure disk-identifier" before you unplug the old one, and "cfgadm -c configure disk-identifier" after connecting the new one; see 'man cfgadm' for more help) and then tell ZFS you want to use the new disk as part of your array with something like "zpool replace c0t0d0 c0t0d2". Take a look at Eric Schrock's blog for more information.
 
Thanks! How do i list the drives i have connected?
 
There are three answers to this:
1) To see which drives it sees as plugged in, if they're hot-pluggable, run 'cfgadm'.
2) To see all the devices, run 'format' (with no arguments). If you just want to see them, you can hit control-D to quit.
3) To see what devices are in a particular pool, run 'zpool list'. You can also add a pool name if that's the only one you're interested in.
 
Thanks unhappy mage your a lifesaver! been messing about with this in vmare. Ive tried to setup samba but i cant get the shares to work on the zfs file system. any ideas?

Also can you tell me the command to setup a raidz with 4 disks?
 
What does your smb.conf look like?

Try "zpool create mypool raidz dev1 dev2 dev3 dev4".
 
I ran the format command, it gave me the responce

Code:
# format
Searching for disks...done


AVAILABLE DISK SELECTIONS:
       0. c0d0 <DEFAULT cyl 4092 alt 2 hd 128 sec 32>
          /pci@0,0/pci-ide@7,1/ide@0/cmdk@0,0
       1. c2t0d0 <DEFAULT cyl 1021 alt 2 hd 64 sec 32>
          /pci@0,0/pci1000,30@10/sd@0,0
       2. c2t1d0 <DEFAULT cyl 1021 alt 2 hd 64 sec 32>
          /pci@0,0/pci1000,30@10/sd@1,0
       3. c2t2d0 <DEFAULT cyl 1021 alt 2 hd 64 sec 32>
          /pci@0,0/pci1000,30@10/sd@2,0

I then ran the command

Code:
# zpool create steel raidz c2t0d0 c2tld0 c2t2d0

And got the responce

Code:
# zpool create steel raidz c2t0d0 c2tld0 c2t2d0
cannot open 'c2tld0': no such device in /dev/dsk
must be a full path or shorthand device name

Any ideas why this is?
 
Code:
       2. c2t1d0 <DEFAULT cyl 1021 alt 2 hd 64 sec 32>
          /pci@0,0/pci1000,30@10/sd@1,0
Code:
# zpool create steel raidz c2t0d0 c2tld0 c2t2d0

Compare and contrast ;) There's a 'c', a 't', and a 'd', and digits separate them.
 
Right i ran that command and it created that raid set mounted at /steel. is this redundant now?

If i remove one of the disks via vmware and reboot how will solaris tell me this? and what would i need to do to replace the disk.

Cheers

Also how to get samba to start on bootup?
 
Also another question for you (sorry) if for some reason my os dies how would i get solaris to detect the raidz when i re install without loosing data?
 
Right i ran that command and it created that raid set mounted at /steel. is this redundant now?
It is. You can even try overwriting one disk with random data, then run "zpool scrub thepool".
If i remove one of the disks via vmware and reboot how will solaris tell me this? and what would i need to do to replace the disk.
It won't provide explicit notification, but take a look at "zpool status" after you overwrite or pull the disk.
Also how to get samba to start on bootup?
If you ran 'svcadm enable samba' it'll start on bootup every time. The service framework is pretty sweet :D
Also another question for you (sorry) if for some reason my os dies how would i get solaris to detect the raidz when i re install without loosing data?
You'd have to re-import the pool. Try running 'zpool export mypool' (you can't be using it at that time) and it won't be mounted any more. Then run 'zpool import'. It may take a while - it scans all the disks to see what's there - but it should report your pool as available.

In the case that your OS died, you wouldn't have a cleanly exported pool. In that case you'd have to add the '-f' flag; this is to prevent one from using the same physical storage from two different machines.
 
Thanks!

I cannot get samba to work, the the directory where the config file should be there is just an example file so i renamed it samba.conf. I havnt used samba in a long while so i cant really rerember how it works. I basicly want to share /steel/test with read only permissions with no passwords.

Edit: sorted that out.
 
Back
Top