Tuomas Leikola wrote:
>>>> We call that a "mirror" :-)
>>>>
>>> Mirror and raidz suffer from the classic blockdevice abstraction
>>> problem in that they need disks of equal size.
>> Not that I'm aware of.  Mirror and raid-z will simply use the smallest
>> size of your available disks.
>>
> 
> Exactly. The rest is not usable.

For what you are asking, forcing ditto blocks on to separate vdevs, to 
work you effectively end up with the same restriction as mirroing.

For example lets say you have a two disk pool of 50 and 100 sized disks, 
if ZFS only ever put a ditto block onto a separate vdev to the original 
block you can still only use 50 not 100.  What do you do when the disk 
of size 50 is full yet you have more ditto blocks to write ?

I can see only two options:

1) fail the write due to lack of space. Which is basically the same as 
mirroring today.

2) break the requirement that the ditto must be on an alternate vdev. 
If you break the requirement you are back to what the current design 
does which is *try* to use an alternate vdev for the ditto.

However I suspect you will say that unlike mirroring only some of your 
datasets will have ditto blocks turned on.

The only way I could see this working is if *all* datasets that have 
copies > 1 were "quotaed" down to the size of the smallest disk.

Which basically ends up back at a real mirror or a really hard to 
understand system IMO.

-- 
Darren J Moffat
_______________________________________________
zfs-discuss mailing list
zfs-discuss@opensolaris.org
http://mail.opensolaris.org/mailman/listinfo/zfs-discuss

Reply via email to