Question about ZFS with log and cache on SSD with GPT

Willem Jan Withagen wjw at digiware.nl
Sun Jan 22 16:13:15 UTC 2012


On 22-1-2012 9:10, Peter Maloney wrote:
> Am 21.01.2012 23:06, schrieb Alexander Leidinger:
>>> Corsair reports:
>>>> Max Random 4k Write (using IOMeter 08): 50k IOPS (4k aligned)
>>>> So I guess that suggests 4k aligned is required.
>> Sounds like it is.
>>
> I'm not an SSD expert, but I read as much as I can, and found that many
> say that the sector size is not the only thing that matters on an SSD,
> but also the *erase boundary*. The size of the erase boundary varies,
> but 2MiB is a common factor (or 1MiB for 99% of them), so you can use
> that for all.
> 
> The theory I read about is that when the SSD wants to write something,
> it must erase the whole erase block first. If it needs to erase a whole
> erase boundary space to write 512 bytes, that is just normal. But if you
> are misaligned, it often needs to erase 2 erase boundary spaces.
> 
> Here is an example from our FreeBSD forum:
> http://forums.freebsd.org/showthread.php?t=19093

Thanx for this thread, there is a lot of usefull info there.
pithy thing is to blow 66Mb, but then again on 40 or 120 Gb SSDs it is
only marginal. (Guess it stems from the time that HDs where 5Mb :) )

I'm still not really shure that that is needed it the bios has nothing
to do with these disks, as in our case: SSDs are only used as caches
under ZFS.

Especially the testing methods are useful. They are of course valid for
any type partinioning...
So getting things right on this level is the first required.

>> I create the first partition at the usual 63 sectors offset from the
>> start of the disk (track 1) which is /unaligned/ with the SSD erase
>> block. The second partition is set to start at sector 21030912
>> (10767826944 bytes) which is /aligned/ with the SSD erase block.
> 
>> SSD erase block boundaries vary from manufacturer to manufacturer, but
>> a safe number to assume should be 1 MiB (1048576 bytes).

I'd consider using 1Mib as a boundary.
And compare that to the ~66MB boundary as suggested by aragon.

> In my testing, it made no difference. But as daniel mentioned:
> 
>> With ZFS, the 'alignment' is on per-vdev -- therefore you will need to recreate the mirror vdevs again using gnop to make them 4k aligned. 
> But I just resilvered to add my aligned disks and remove the old. If
> that applies to erase boundaries, then it might have hurt my test.

I'm not treally fluent in ZFS lingo, but the vdev is what makes up my
zfsdata pool? And the alignment in there carries over to the caches
underneath?

So what is the consequence if ashift = 9, and the partitions are nicely
aligned even on the rease-boundary.....

--WjW





More information about the freebsd-fs mailing list