• Some users have recently had their accounts hijacked. It seems that the now defunct EVGA forums might have compromised your password there and seems many are using the same PW here. We would suggest you UPDATE YOUR PASSWORD and TURN ON 2FA for your account here to further secure it. None of the compromised accounts had 2FA turned on.
    Once you have enabled 2FA, your account will be updated soon to show a badge, letting other members know that you use 2FA to protect your account. This should be beneficial for everyone that uses FSFT.

zfs striped mirror setup question?

tangoseal

[H]F Junkie
2FA
Joined
Dec 18, 2010
Messages
9,777
Explain how I should set up two mirrors or more in a pool using different vdevs for max performance?

If I have 8 drives what would be the best scenario for read wr ?

Stripe a bunch of two disk mirrored vdevs or...... ?

Thanks.
 
Best read perf: zpool create foo mirror A B mirror C D mirror E F mirror G H

Awesome so the math works out like this.....

Drives (ABCDEFGH)

Pool named: Pool0 For instance

Mirror 1 - AB------- > Vdev x2-----------\ Stripe these two pairs
Mirror 2 - CD ------ > Vdev x2-----------/
.................................................................................|---> Add both stripes to another Stripe (A stripe of stripes? lol) -----------> or just add to pool? Is this right? So basically Raid 10.
Mirror 3 - EF ------ > Vdev x2 -----------\
Mirror 4 - GH ------ > Vdev x2 -----------/ Stripe these two pairs

Would this be the appropriate setup?

I was a little confused because in a traditional raid 1 setup the mirrors have the performance of just one single drive but in ZFS it reads fromr mirrors as if it were raid 0 to my understanding. Please confirm both my chart as well as my understanding of ZFS mirroring.

Lastly as far as volume space if my math is correct it would be ....
2tb + 2tb AB Vdev = 1.8tb formatted
2tb + 2tb CD Vdev = 1.8tb formatted
2tb + 2tb EF Vdev = 1.8tb formatted
2tb + 2tb GH Vdev = 1.8tb formatted Added all above together I would have 7.2tb total but if I stripe the two stripes of 4 VDEVs then I will only have 3.1 TB of space out of 16 ouch? . So I would lose exactly 75% of 16TB worth of drives. Expensive but I am sure it is fast.

If the above is accurate for fastest possible read speeds then what would be the following: (in a nutshell please)

1. Best compromise of space and speed overall (read)
2. Best format for write speeds.
3. Best balance of write and read and space.
 
Last edited:
no

A/B = mirror
C/D = mirror
E/F = mirror
G/H = mirror

the stripe (for the sake of explanation) goes across ACEG although in the event of failure any device that can be read or written to is.

also, best read performance isn't necessarily accurate. random read performance, yes, mirroring will be best. however for large sequential reads parity is often faster.

In actuality the stripe goes across the vdevs. the vdevs are made up of 2 or more drives which form the mirror.
 
Yeah, you're right. Should have been more specific vis-a-vis random vs sequential. I tend to focus more on the former, since I'm using my pool for several VMs...
 
no

A/B = mirror
C/D = mirror
E/F = mirror
G/H = mirror

the stripe (for the sake of explanation) goes across ACEG although in the event of failure any device that can be read or written to is.

also, best read performance isn't necessarily accurate. random read performance, yes, mirroring will be best. however for large sequential reads parity is often faster.

In actuality the stripe goes across the vdevs. the vdevs are made up of 2 or more drives which form the mirror.

Thanks for clearing that up.

As far as large seq reads you are saying that a RaidZ1 would be ideal or 2 or 3 since they are all basically the same principle? I understand that write performance is the speed of 1 drive regardless if I had 2 or 60 drives with a RaidZ anything setup. Is this also right?
 
random write performance is always limited to single 'drives' aka vdevs in zfs. sequential write performance however is the same as sequential read. the more drives per vdev, the higher your sustained sequential throughput.

sustained sequential actually scales with vdevs better using z1/2/3 than mirroring since performance is not only the sum of the vdevs but also the sum of the drives in each vdev.

however in typical production environments mirroring and or (multiple pools not z2 and mirroring in the same pool) 4 disk raidz2 are IMO superior unless your specific workload is backups or something like raw video editing.

with 8 drives you're best general performance config is 4 x 2 disk mirrors or 2 x 4 disk raidz2. with mirroring you will have twice the random IO for writes and 4 times for reads with slightly worse availability.

with raidz2 you will have slightly better sustained throughput and much better availability.

in both scenarios the effective usable space is 50% of total raw.

if your desire is maximum usable space and best availability you can use a 7 disk raidz3 leaving one more disk for a hot spare.

you could do a 6 disk raidz2 pool and a 2 disk mirror pool as well.
 
random write performance is always limited to single 'drives' aka vdevs in zfs. sequential write performance however is the same as sequential read. the more drives per vdev, the higher your sustained sequential throughput.

sustained sequential actually scales with vdevs better using z1/2/3 than mirroring since performance is not only the sum of the vdevs but also the sum of the drives in each vdev.

however in typical production environments mirroring and or (multiple pools not z2 and mirroring in the same pool) 4 disk raidz2 are IMO superior unless your specific workload is backups or something like raw video editing.

with 8 drives you're best general performance config is 4 x 2 disk mirrors or 2 x 4 disk raidz2. with mirroring you will have twice the random IO for writes and 4 times for reads with slightly worse availability.

with raidz2 you will have slightly better sustained throughput and much better availability.

in both scenarios the effective usable space is 50% of total raw.

if your desire is maximum usable space and best availability you can use a 7 disk raidz3 leaving one more disk for a hot spare.

you could do a 6 disk raidz2 pool and a 2 disk mirror pool as well.

Outstanding breakdown. Thanks a million. Basically applying that logic, even in an altered way for other forms of disk layout, will help me envision the process much better.

The more I learn about ZFS, and through the process of implementation, I am seeing the growing obsolete nature of standard issue vanilla raid environments.
 
Last edited:
Back
Top