ufs2 / softupdates / ZFS / disk write cache

Erik Trulsson ertr1013 at student.uu.se
Sat Jun 20 23:26:55 UTC 2009


On Sun, Jun 21, 2009 at 12:29:26AM +0300, Dan Naumov wrote:
> I have the following setup:
> 
> A single consumer-grade 2tb SATA disk: Western Digital Green (model
> WDC WD20EADS-00R6B0). This disk is setup like this:
> 
> 16gb root partition with UFS2 + softupdates, containing mostly static things:
> /bin /boot /etc /root /sbin /usr /var and such
> 
> a 1,9tb non-redundant zfs pool on top of a slice, it hosts things like:
> /DATA, /home, /usr/local, /var/log and such.
> 
> What should I do to ensure (as much as possible) filesystem
> consistency of the root filesystem in the case of the power loss? I
> know there have been a lot of discussions on the subject of
> consumer-level disks literally lying about the state of files in
> transit (disks telling the system that files have been written to disk
> while in reality they are still in disk's write cache), in turn
> throwing softupdates off balance (since softupdates assumes the disks
> don't lie about such things), in turn sometimes resulting in severe
> data losses in the case of a system power loss during heavy disk IO.

Note that this is not something specific to softupdates, but applies when
you are not using softupdates as well.  


> 
> One of the solutions that was often brought up in the mailing lists is
> disabling the actual disk write cache via adding hw.ata.wc=0 to
> /boot/loader.conf, FreeBSD 4.3 actually even had this setting by
> default, but this was apparently reverted back because some people
> have reported a write performance regression on the tune of becoming
> 4-6 times slower. So what should I do in my case? Should I disable
> disk write cache via the hw.ata.wc tunable? As far as I know, ZFS has
> a write cache of it's own and since the ufs2 root filesystem in my
> case is mostly static data, I am guessing I "shouldn't" notice that
> big of a performance hit. Or am I completely in the wrong here and
> setting hw.ata.wc=0 is going to adversely affect the write performance
> on both the root partition AND the zfs pool despite zfs using it's own
> write cache?

Why don't you try it and see if you notice the performance hit?
You will almost certainly see some reduced write performance if you disable
the disk's cache, but how noticable this will be for your setup and your
disk usage is something only you can answer.

My guess is that it will be quite noticable, but that is only a guess.
(Keep in mind that UFS+softupdates does quite a bit of write-caching on its
own, so just switching to ZFS is unlikely to improve write performance
significantly compared to using UFS.)


-- 
<Insert your favourite quote here.>
Erik Trulsson
ertr1013 at student.uu.se


More information about the freebsd-fs mailing list