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