ZFS question - forgive my noobness

y0bailey

Gawd
Joined
Mar 31, 2003
Messages
558
Alright folks smarter than me. I am waiting on parts to build my FreeNAS build, and I wouldn't ask this question if the parts were here and I could just MESS with the actual setup personally. Alas, that will be a week or so, so I will waste your time instead.

It all has to do with the ZFS system, and utilizing my current drives without spending any coin.

I am a hard drive peasant, and only have 2 x 2tb WD red drives, and 2 x 500gb other misc drives. All of the rest are 300gb or smaller, which aren't worth the power draw in my eyes.

What I am envisioning is 2tb+500gb "striped" being mirrored by the other 2tb+500gb drives. This may get me a bit better read/write speeds, while keeping some redundancy.

Is this doable or even worth doing? Is the performance increase going to be noticeable to add the complexity/power draw of the 2tb+500gb, or would just 2tb being mirrored make the most sense?

What would you do with this drive setup? This will basically be a plex server box and a file backup.
 
You can't mix drives quite like that. You'd have to make two mirrored arrays, the 2TB drives on one mirror, and the second mirror with the 500GB drives. Both arrays would be part of the same pool, so the net outcome would be the same.

However, you'll be happier in the long run doing things right the first time. How many total drives do you want to work with? Assuming you want four drives, then I'd highly recommend getting an extra 2x2TB drives and making a RAIDz1 as the first vdev in your ZFS pool. RAIDz1 is roughly equivalent to a RAID 5, meaning you lose one drive to parity. It's a good tradeoff for something like a media or backup server.

Later on, you could add another set of 4 drives (probably the most common addition) as a second RAIDz1 vdev. Or, you could swap out individual 2TB drives with a higher spec drive, say 4TB. After each swap a rebuild would take place. Once done for all four drives, then your pool would grow by the new drive size.
 
You can't mix drives quite like that. You'd have to make two mirrored arrays, the 2TB drives on one mirror, and the second mirror with the 500GB drives. Both arrays would be part of the same pool, so the net outcome would be the same.

However, you'll be happier in the long run doing things right the first time. How many total drives do you want to work with? Assuming you want four drives, then I'd highly recommend getting an extra 2 2TB drives and making a RAIDz1 as the first vdev in your ZFS pool.

Later on, you could add another set of 4 drives (probably the most common addition) as a second RAIDz1 vdev. Or, you could swap out individual 2TB drives with a higher spec drive, say 4TB. After each swap a rebuild would take place. Once done for all four drives, then your pool would grow by the new drive size.


Thanks for the response. I do agree that sucking it up and buying some more 2tb drives makes the most sense, unfortunately my drive situation is what it is. The wife is already mad at this project, so no more $ can be sunk in. :mad:

So IF I went the 2tbx2 and 500gbx2 route as you described, would there be ANY performance benefit? The 500gb is negligible in my mind as far as SPACE goes, but if there is some speed benefit I would do it. Does that make sense?
 
There should be a performance benefit, since you're writing to more than one vdev (each mirror is a vdev, and a pool is made of vdevs). However, you'd have to do some tests to figure out exactly how much. One issue is that ZFS will try and "balance" writes between the two. Since they're of different size vdevs, then it will obviously write more to the 2TB mirror. Practically, you're fine, but it still wouldn't be as ideal as a setup with all drives of the same size.

Another option is you create two pools. One with the 2TB drives, and the other with the 500GB drives. Have one media pool, and one backup pool. Avoids the size difference issue, and might make things easier long term to manage. Also, you can write to two different pools, which would balance your workload in that manner.

With ZFS there isn't necessarily a "wrong" way to do things, since it'll work however you set it up. It's a bit of an art to determine what's best in your use case.

You ask about performance, what's your use case? I don't think of running Plex or doing backups as very demanding on the performance scale. What's your use case?
 
There should be a performance benefit, since you're writing to more than one vdev (each mirror is a vdev, and a pool is made of vdevs). However, you'd have to do some tests to figure out exactly how much. One issue is that ZFS will try and "balance" writes between the two. Since they're of different size vdevs, then it will obviously write more to the 2TB mirror. Practically, you're fine, but it still wouldn't be as ideal as a setup with all drives of the same size.

Another option is you create two pools. One with the 2TB drives, and the other with the 500GB drives. Have one media pool, and one backup pool. Avoids the size difference issue, and might make things easier long term to manage. Also, you can write to two different pools, which would balance your workload in that manner.

With ZFS there isn't necessarily a "wrong" way to do things, since it'll work however you set it up. It's a bit of an art to determine what's best in your use case.

You ask about performance, what's your use case? I don't think of running Plex or doing backups as very demanding on the performance scale. What's your use case?

I have become an SSD snob, and right now I am performing a backup on 2 of my PC's to my NAS. About 200-300gb of mixed files (movies, documents, pictures) from each computer. Things are going copying at 50MB/s max and making me want to commit suicide. A bit more speed would be appreciated. So yes, nothing hugely demanding, but I have all of these drives around...if it gets me some performance benefits I find it worth it.
 
I don't think you'll find anything that'll make a huge difference. The slowest link will still be your hard drives.
 
50 MB/s is not so bad per se

If you want more
- do not use copy tools like Teracopy on Windows
- use Intel Nics and avoid Realtek on Server and Client side

- use Solaris or OmniOS (CIFS kernel based SMB server is mostly faster than SAMBA)
- use another protocol like NFS

- use tunings like JumboFrames
- add RAM

if you are then limited to 80 MB/s, think about a faster pool that can give you 100 MB/s.
If you want more, you need trunking or 10 GbE
 
So due to the extra 500gb being not overly helpful in the speed department, and adding to power consumption, I'm just completely abandoning everything and mirroring the 2tb drives. Keeping it simple and lower power.

Oh well, at least I learned something!

Thanks for the input folks.
 
Other idea for you to consider:

Mirror the 2x2Tb disks for your files you want protected (gives you 1x2Tb fault tolerant array).

Stripe the 2x500G disks for your backups (1x1Tb non protected array). This array is protected by the original data on the other computers, so it is no big deal if you lose that pool. 2 disks striped will give you more speed for your backups.

Best regards, Erik
 
Forgot to include the possible upgrade path in my previous post:
You can later upgrade the whole thing by adding 2x2tb to the first pool, and decommission the 2x500 drives. Spreads the cost, and maximizes what you have right now.
 
Back
Top