> From: zfs-discuss-bounces at opensolaris.org [mailto:zfs-discuss-
> bounces at opensolaris.org] On Behalf Of Tony MacDoodle
>
> zpool create tank mirror c1t2d0 c1t3d0 mirror c1t4d0 c1t5d0 spare c1t6d0
>
> Is this a 0 then 1 (mirror of stripes)
> or
> 1 then 0 (stripe of mirrors)
Strictly speaking, ZFS doesn''t do striping as what you would call
striping
in raid terms. In raid terms, a stripe has logically arranged sequential
virtual blocks on different volumes, so if you read a sequence of blocks,
you''re guaranteed to hit each drive. This has some limitations, like,
all
drives in the stripe set must be same size, and if you have small files
which are larger than a single block, the stripe set actually hurts
performance, etc. Cannot expand the stripe by simply adding another device.
By comparison, raid concatenation has different limitations. It can expand
with randomly sized disks, and helps accelerate small operations, but cannot
accelerate large sequential operations.
ZFS "striping" is different. Blocks may be allocated physically on
the same
disk, or separate disks, according to whatever ZFS felt like at the time.
This gives you all the benefits of striping and concatenation, without any
of the negative effects.
Here''s a good example:
I wonder if anybody can factually confirm or deny this is the behavior of
ZFS? I am speaking hypothetically, and I don''t actually know if ZFS
behaves
this way:
Suppose you have 3 disks in a ZFS stripe. You fill them up mostly (say,
90%) and then you add another disk. A while later, after some usage, you
have 3 disks at 85% and 1 disk at 10%.
You start some massive read operation. So disks 1, 2 and 3 are entirely
utilized for reads. Meanwhile, you also create some writes. Well, disk 4
is idle, so the writes all hit disk 4, while disks 1,2,3 are all reading.
ZFS can load balance all your reads & writes to utilize the idle cycles of
your hardware optimally. This is something which cannot be done with simple
raid (raid-5 or striping) because they don''t have any knowledge of the
filesystem. They''re only able to systematically map blocks, and hope
that''s
in some way close to optimal for your usage pattern. But ZFS can actually
look at your requested usage pattern and choose to behave differently based
on pending operations and hardware utilization.