ZFS: How to enable cache and logs.
Daniel Kalchev
daniel at digsys.bg
Wed May 11 10:37:14 UTC 2011
On 11.05.11 13:06, Jeremy Chadwick wrote:
> On Wed, May 11, 2011 at 07:25:52PM +1000, Danny Carroll wrote:
>> When I move to v28 I will probably wish to enable a L2Arc and also
>> perhaps dedicated log devices.
>>
> In the case of ZFS intent logs, you definitely want a mirror. If you
> have a single log device, loss of that device can/will result in full
> data loss of the pool which makes use of the log device.
This is true for v15 pools, not true for v28 pools. In ZFS v28 you can
remove log devices and in the case of sudden loss of log device (or
whatever) roll back the pool to a 'good' state. Therefore, for most
installations single log device might be sufficient. If you value your
data, you will of course use mirrored log devices, possibly in hot-swap
configuration and .. have a backup :)
By the way, the SLOG (separate LOG) does not have to be SSD at all.
Separate rotating disk(s) will also suffice -- it all depends on the
type of workload. SSDs are better, for the higher end, because of the
low latency (but not all SSDs are low latency when writing!).
The idea of the SLOG is to separate the ZIL records from the main data
pool. ZIL records are small, even smaller in v28, but will cause
unnecessary head movements if kept in the main pool. The SLOG is "write
once, read on failure" media and is written sequentially. Almost all
current HDDs offer reasonable sequential write performance for small to
medium pools.
The L2ARC needs to be fast reading SSD. It is populated slowly, few
MB/sec so there is no point to have fast and high-bandwidth
write-optimized SSD. The benefit from L2ARC is the low latency. Sort of
slower RAM.
It is bad idea to use the same SSD for both SLOG and L2ARC, because most
SSDs behave poorly if you present them with high read and high write
loads. More expensive units might behave, but then... if you pay few k$
for a SSD, you know what you need :)
Daniel
More information about the freebsd-fs
mailing list