>>
> You are severely RAM limited.  In order to do dedup, ZFS has to maintain
> a catalog of every single block it writes and the checksum for that
> block. This is called the Dedup Table (DDT for short).
>
> So, during the copy, ZFS has to (a) read a block from the old
> filesystem, (b) check the current DDT to see if that block exists and
> (c) either write the block to the new filesytem (and add an appropriate
> DDT entry for it), or write a metadata update with the dedup reference
> block reference.
>
> Likely, you have two problems:
>
> (1) I suspect your source filesystem has lots of blocks (that is, it's
> likely made up smaller-sized files).  Lots of blocks means lots of
> seeking back and forth to read all those blocks.
>
> (2) Lots of blocks also means lots of entries in the DDT.  It's trivial
> to overwhelm a 4GB system with a large DDT.  If the DDT can't fit in
> RAM, then it has to get partially refreshed from disk.
>
> Thus, here's what's likely going on:
>
> (1)  ZFS reads a block and it's checksum from the old filesystem
> (2)  it checks the DDT to see if that checksum exists
> (3) finding that the entire DDT isn't resident in RAM, it starts a cycle
> to read the rest of the (potential) entries from the new filesystems'
> metadata.  That is, it tries to reconstruct the DDT from disk.  Which
> involves a HUGE amount of random seek reads on the new filesystem.
>
> In essence, since you likely can't fit the DDT in RAM, each block read
> from the old filesystem forces a flurry of reads from the new
> filesystem. Which eats up the IOPS that your single pool can provide.
> It thrashes the disks.  Your solution is to either buy more RAM, or find
> something you can use as an L2ARC cache device for your pool.  Ideally,
> it would be an SSD.  However, in this case, a plain hard drive would do
> OK (NOT one already in a pool).    To add such a device, you would do:
> 'zpool add tank mycachedevice'
>
>

That was an awesome response!  Thank you for that :-)
I tend to config my servers with 16G of ram minimum these days and now I
know why.


-- 
Dennis Clarke
dcla...@opensolaris.ca  <- Email related to the open source Solaris
dcla...@blastwave.org   <- Email related to open source for Solaris


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

Reply via email to