Suggested RAID Configuration

I currently have a desktop that I would like to install FreeBSD on. I would like suggestions on configuration. What would be the best RAID option? What size and how many more hard drives do I need? I have room for 4 more. What file system(s)? I use torrents alot, watch movies, tv shows, and listen/record music. Eventually I would like to run a web server (very little traffic). This is my current hardware:

Case - COOLER MASTER HAF 932
Motherboard - Gigabyte GA-X58A-UD3R
CPU - Intel Core i7-950 Processor
RAM - Vengeance 12GB Triple Channel DDR3 Memory
Video - NVIDIA GeForce 9800 GT (2 in SLI mode)
Monitors - Samsung 27" (2)
Storage
1-Western Digital VelociRaptor 150GB (for OS)
1-Western Digital Black 2TB 7200 RPM (for Movies)
1-Western Digital Black 2TB 7200 RPM (for TV Shows)
1-Western Digital Green 2TB 7200 RPM (for Music)
1-Western Digital Green 2TB 7200 RPM (for Misc)
 
Re: Suggested Configuration

There really is no "best", it all depends on the goals. Which is the most important: maximizing storage capacity, or maximizing fault tolerance? For the first, RAIDZ1/Z2/Z3, depending on array size. For the second, use mirrors. How many SATA ports are available, and on what kind of controller?
 
Re: Suggested Configuration

Maximizing fault tolerance, since hard drives are so inexpensive now. 8 x SATA 3Gb/s connectors, 2 x SATA 6Gb/s connectors. Marvell 88SE9128 AHCI SATA controller and JMicron JMB363 AHCI SATA controller.
 
If possible, ditch the WD Green drives and replace them with WD Black drives. The WD Green are crap piled on top of crap inside a crap case with crap wrapped around them. Just don't use them. :) Ever. For anything. Not worth the headaches they will cause, especially with ZFS.

If not possible, then at least pick up another WD Black drive, and another Velociraptor.

That way, you can create a separate "root" pool using the Velociraptors in a mirror vdev, for the OS and apps. Attach these to the 6 Gbps ports.

Then, create another "storage" pool using the WD Black drives in a raidz2 vdev. Either with 4 drives (if you keep the Green) or with 6 drives (if you replace the Greens), or with 8 drives (if you replace the Greens and pick up some extras). Attach these to the 3 Gbps ports.

If you decide to keep the Greens, I'd create a separate pool for them, with a single mirror vdev, and just use that for scratch space, for data you don't really care about.
 
IIRC FreeBSD doesn't have a support for software RAID 6 so the only option in your case is RAIDZ3 which has foul tollerance 3 HDD. You can't use RAIDZ2 because you have too many or too little drives depend on the point of view.. RAIDZ1 should not be used and it is just legacy. General rule of tumbs:

Start a RAIDZ1 at at 3, 5, or 9, disks.
Start a RAIDZ2 at 4, 6, or 10 disks.
Start a RAIDZ3 at 5, 7, or 11 disks.
 
Oko said:
RAIDZ1 should not be used and it is just legacy.

I would like to see a cite for that. AFAIK, RAIDZ1 is still a valid choice provided a single-disk fault tolerance is enough. Best used with only three disks, though.

Several sources claim RAIDZ2 is similar to RAID6.
 
wblock@ said:
I would like to see a cite for that. AFAIK, RAIDZ1 is still a valid choice provided a single-disk fault tolerance is enough. Best used with only three disks, though.

A quote from the FreeNAS hardware recommendation page

RAIDZ1: ZFS software solution that is equivalent to RAID5. Its advantage over RAID 5 is that it avoids the write-hole and does not require any special hardware, meaning it can be used on commodity disks. If your FreeNAS® system will be used for steady writes, RAIDZ is a poor choice due to the slow write speed. CAUTION: RAIDZ1 "died" back in 2009 and should not be used if reliability of your data is important. Read Why RAID5 stopped working in 2009 for more information. Generally speaking, if you are using a RAIDZ1 pool and you have a single disk failure you can expect to be forced to destroy, recreate, and restore the pool from backup.


wblock@ said:
Several sources claim RAIDZ2 is similar to RAID6.
RAIDZ2 is be better than classical sofware RAID 6 IMHO as it is RAID6 and volume manager in one. As somebody who works little bit with ZFS and quite a bit more with Linux software RAID 6 the trade off is little bit higher complexity of ZFS. Again many people consider soft RAID 6 dead and ZFS the next best thing after a slice of bread.
 
Ah, that links back to that ZDNet article on why RAID5 stops working in 2009. The trick is that the article talks about capacities and failure rates. The point is that one drive of redundancy in a three-drive array is not enough for a 12TB array. One drive fails, and another unrecoverable error is likely to hit before the replacement drive is resilvered. Okay, but arrays under the 12TB size are safer. As arrays get bigger, they need more redundancy.
 
I don't consider FreeNAS to be any kind of authority in RAID, they may have put together a rather nice system for building a NAS but that doesn't make them RAID experts. They may be saying that RAID1 is dead but I trust my own judgement and that is still saying that RAID1 is a very viable solution, especially when you consider that ZFS RAID1 is not limited to 2-drive mirrors but can do 3-drive mirrors for extra redundancy and even more if really needed. Not to mention the big performance advantages RAID1 has over RAIDZ.
 
OK, I have 2 - 150 GB WD Velociraptors now and I've installed them in the 6 Gb/s ports. Should i let FreeBSD do the ZFS partitioning or should I manually do it? If manual, what are the recommended sizes?
 
JakDaRippa said:
OK, I have 2 - 150 GB WD Velociraptors now and I've installed them in the 6 Gb/s ports. Should i let FreeBSD do the ZFS partitioning or should I manually do it? If manual, what are the recommended sizes?

For a root pool, you'll need something along the lines of:
  • 512 KB freebsd-boot partition (where the boot loader is installed)
  • 140 GB freebsd-zfs partition (for use as part of the ZFS pool)
  • whatever is left (should be around 2-5 GB) for freebsd-swap partitions

Something along the lines of the following will do what you want (assuming disks are called ada0 and ada1:
Code:
# gpart create -s gpt ada0
# gpart add -t freebsd-boot -s 512K -l boot0 ada0
# gpart add -t freebsd-zfs -s 140G -l root0 -a 1M ada0
# gpart add -t freebsd-swap -l swap0 ada0
# gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 ada0

# gpart create -s gpt ada1
# gpart add -t freebsd-boot -s 512K -l boot1 ada1
# gpart add -t freebsd-zfs -s 140G -l root1 -a 1M ada1
# gpart add -t freebsd-swap -l swap1 ada1
# gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 ada1

The you create your ZFS pool using the /dev/gpt/root0 and /dev/gpt/root1 partitions. And you add /dev/gpt/swap0 and /dev/gpt/swap1 to /etc/fstab as the swap partitions.

I've always done partitioning manually, so have no idea how the installer does things if you tell it to do it automatically. I always drop to a shell at the Disk Partitioning step and get everything configured there.
 
Back
Top