commit 1704c603015412c1b094dddf8ddc4fead843ae6d Author: Eitan Adler Date: Thu Nov 15 22:52:33 2012 -0500 Add a section in the FAQ about ZFS Reviewed by: ??? Approved by: ??? diff --git a/en_US.ISO8859-1/books/faq/book.xml b/en_US.ISO8859-1/books/faq/book.xml index 7ad4974..1bcaee9 100644 --- a/en_US.ISO8859-1/books/faq/book.xml +++ b/en_US.ISO8859-1/books/faq/book.xml @@ -5367,6 +5367,107 @@ C:\="DOS" + + + ZFS + + + + + What is the minimum amount of RAM one should have to + run ZFS? + + + + A minimum of 4GB of RAM is required for comfortable + usage, but individual workloads can vary widely. + + + + + + What is the ZIL and when does it get used? + + + + The ZIL ((ZFS + intent log) is a write log used to implement posix write + commitment semantics across crashes. Normally writes + are bundled up into transaction groups + and written to disk when filled (Transaction Group + Commit). However syscalls like &man.fsync.2; + require a commitment to stable storage before returning. + The ZIL is needed for writes that have been acknowledged + as written but which are not yet on disk as part of a + transaction. The transaction groups are timestamped. + In the event of a crash the last valid timestamp is + found and missing data is merged in from the ZIL. + + + + + + Do I need a SSD for ZIL? + + + + By default, ZFS stores the ZIL in the pool with all + the data. If your application has a heavy write load, + storing the ZIL in a separate device that has very fast + synchronous, sequential write performance can improve + overall system. For other workloads, a SSD is unlikely + to make much of an improvement. + + + + + + What is the L2ARC? + + + + The L2ARC is a read cache stored + on a fast device such as an SSD. + This cache is not persisent across + reboots. Note that RAM is used as the first layer + of cache and the L2ARC is only needed if there is + insufficient RAM. + + L2ARC needs space in the ARC to index it. So, + perversely, a working set that fits perfectly in the + ARC will not fit perfectly any more if a L2ARC is used + because part of the ARC is holding the L2ARC index, + pushing part of the working set into the + L2ARC which is slower than RAM. + + + + + + Is enabling deduplication advisable? + + + + Generally speaking, no. + + Deduplication takes up a significant amount + of RAM and may slow down read and write + disk access times. Unless one is storing data that is + very heavily duplicated (such as virtual machine images, + or user backups) it is possible that deduplication will + do more harm than good. Another consideration is the + inability to revert deduplication status. If + deduplication is enabled, data written, and then dedup + is disabled, those blocks which were deduplicated will + not be duplicated until they are next modified. + + Deduplication can also lead to some unexpected + situations. In particular deleting files may become much + slower. + + + +