On 6/28/2010 12:53 PM, Roy Sigurd Karlsbakk wrote:
2. Are the RAM requirements for ZFS with dedup based on the total
available zpool size (I'm not using thin provisioning), or just on how
much data is in the filesystem being deduped? That is, if I have 500
GB of deduped data but 6 TB of possible storage, which number is
relevant for calculating RAM requirements?
It's based on the data stored in the zpool. You'll need about 200 bytes of per 
DDT (data deduplication table) entry, meaning about 1,2GB per 1TB stored on 
128kB blocks. With smaller blocks (smaller files are stored in smaller blocks), 
that means more memory. With only large files, 1,2GB or 1,5GB per 1TB stored 
data should sufffice.

Actually, I think the rule-of-thumb is 270 bytes/DDT entry. It's 200 bytes of ARC for every L2ARC entry.

DDT doesn't count for this ARC space usage

E.g.: I have 1TB of 4k files that are to be deduped, and it turns out that I have about a 5:1 dedup ratio. I'd also like to see how much ARC usage I eat up with a 160GB L2ARC.

(1)    How many entries are there in the DDT:
            1TB of 4k files means there are 2^30 files (about 1 billion).
However, at a 5:1 dedup ratio, I'm only actually storing 20% of that, so I have about 214 million blocks.
            Thus, I need a DDT of about 270 * 214 million  =~  58GB in size

(2) My L2ARC is 160GB in size, but I'm using 58GB for the DDT. Thus, I have 102GB free for use as a data cache. 102GB / 4k =~ 27 million blocks can be stored in the remaining L2ARC space. However, 26 million files takes up: 200 * 27 million =~ 5.5GB of space in ARC Thus, I'd better have at least 5.5GB of RAM allocated solely for L2ARC reference pointers, and no other use.





4. How does the L2ARC come into play? I can afford to buy a fast Intel
X25M G2, for instance, or any of the newer SandForce-based MLC SSDs to
cache the dedup table. But does it work that way? It's not really
affordable for me to get more than 16 GB of RAM on this system,
because there are only four slots available, and the 8 GB DIMMS are a
bit pricey.
L2ARC will buffer the DDT along with the data, so if you get some good SSDs 
(such as Crucial RealSSD C300), this will speed things up quite a bit.

5. Could I use one of the PCIe-based SSD cards for this purpose, such
as the brand-new OCZ Revo? That should be somewhere between a
SATA-based SSD and RAM.
If your budget is low, as it may seem, good SATA SSDs will probably be the 
best. They can help out quite a bit.

Just remember that dedup on opensolaris is not thoroughly tested yet. It works, 
but AFAIK there are still issues with long hangs in case of unexpected reboots.

Disclaimer: I'm not an Oracle (nor Sun) employee - this is just my advice to 
you based on testing dedup on my test systems.

Vennlige hilsener / Best regards

roy

While I'm an Oracle employee, but I don't have any insider knowledge on this. It's solely my experience talking.

--
Erik Trimble
Java System Support
Mailstop:  usca22-123
Phone:  x17195
Santa Clara, CA

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

Reply via email to