Quick ZFS mirroring question for non-mirrored pool
Bob Friesenhahn
bfriesen at simple.dallas.tx.us
Sun May 16 00:51:19 UTC 2010
On Sat, 15 May 2010, Jeremy Chadwick wrote:
>
> What you have here is the equivalent of RAID-10. It might be more
> helpful to look at the above as a "stripe of mirrors".
>
> In this situation, you might be better off with raidz1 (RAID-5 in
> concept). You should get better actual I/O performance due to ZFS
> distributing the I/O workload across 4 disks rather than 2. At least
> that's how I understand it.
That would be a reasonable assumption but actual evidence suggests
otherwise. For sequential I/O, mirrors and raidz1 seem to offer
roughly similar performance, except that mirrors win for reads and
raidz1 often win for writes. The mirror configuration definitely wins
as soon as there are many seeks or multi-user activity.
The reason why mirrors still do well for sequential I/O is that there
is still load-sharing across the vdevs (smart "striping") but in full
128K blocks whereas the raidz1 config needs to break the 128K blocks
into smaller blocks which are striped across the disks in the vdev.
Breaking the data into smaller chunks for raidz multiplies the disk
IOPS required. Disk seeks are slow.
The main reason to choose raidz1 is for better space efficiency but
mirrors offer more performance.
For an interesting set of results, see the results summary of "Bob's
method" at "http://www.nedharvey.com/".
The only way to be sure for your own system is to create various pool
configurations and test with something which represents your expected
work load. As long as the pool is not the boot pool, zfs makes such
testing quite easy.
Bob
--
Bob Friesenhahn
bfriesen at simple.dallas.tx.us, http://www.simplesystems.org/users/bfriesen/
GraphicsMagick Maintainer, http://www.GraphicsMagick.org/
More information about the freebsd-fs
mailing list