NFS writes on ZFS blows chunks performance wise. The only way to increase the 
write speed is by using an slog, the problem is that a "proper" slog device 
(one that doesn't lose transactions) does not exist for a reasonable price. The 
least expensive SSD that will work is the Intel X25-E, and even then you have 
to disable the write cache, which kills performance. And if you lose 
transactions in the ZIL, you may as well not have one.

Switching to a pool configuration with mirrors might help some. You will still 
get hit with sync write penalties on NFS though. 

Before messing with that, try disabling the ZIL entirely and see if that's 
where your problems are. Note that running without a ZIL can cause you to lose 
about 30secs of uncommitted data and if the server crashes without the clients 
rebooting, you can get corrupted data (from the client's perspective). However, 
it solved the performance issue for me. 

If that works, you can then decide how important the ZIL is to you. Personally, 
I like things to be correct, but that doesn't help me if performance is in the 
toilet. In my case, the server is on a UPS, the clients aren't. And most of the 
clients use netboot anyway, so they will crash and have to be rebooted if the 
server goes down. So for me, the drawback is small while the performance gain 
is huge. That's not the case for everyone, and it's up to the admin to decide 
what they can live with. Thankfully, the next release of OpenSolaris will have 
the ability to set ZIL on/off per filesystem. 

Note that the ZIL only effects sync write speed, so if your workload isn't sync 
heavy, it might not matter in your case. However, with NFS in the mix, it 
probably is. The ZFS on-disk data state is not effected by ZIL on/off, so your 
pool's data IS safe. You might lose some data that a client THINKS is safely 
written, but the ZFS pool will come back properly on reboot. So the client will 
be wrong about what is and is not written, thus the possible "corruption" from 
the client perspective. 

I run ZFS on 2 6-disk raidz2 arrays in the same pool and performance is very 
good locally. With ZIL enabled, NFS performance was so bad it was near 
unusable. With it disabled, I can saturate the single gigabit link and 
performance in the Linux VM (xVM) running on that server improved 
significantly, to near local speed, when using the NFS mounts to the main pool. 
My 5400RPM drives were not up to ZIL's needs, though they are plenty fast in 
general, and a working slog was out of budget for a home server.
-- 
This message posted from opensolaris.org
_______________________________________________
zfs-discuss mailing list
zfs-discuss@opensolaris.org
http://mail.opensolaris.org/mailman/listinfo/zfs-discuss

Reply via email to