Il 02/03/2014 22:29, Stanislav German-Evtushenko ha scritto:
Hello Gionatan,
Thank you for the so detailed reply!
1) simply use the writethrough cache and configure your battery
backupped RAID card to ignore fsync requests (warning, you really
_need_ a battery backupped RAID card or corruption / data loss
will
happen in case of a power failure). In this manner, you can use
the
OS-provided read cache, while passing all writes directly to the
RAID card (wich will ignore the fsync requests attached with
them).
The problem is that the writethrough config will impose a big
overhead on the OS (fsync are not cheap, even when the hardware
ignore them), resulting in low performance anyway (probably).
It looks as a way to go. I'll check if Dell RAID can be configured to
ignore flushes.
Hi,
with DELL PERC cards (which really are rebranded LSI) w/battery
backup, it should suffice to set the controller's cache to "writeback"
mode. Using the "force writeback" mode disables sync even for RAID
card without battery backup, but this is _strongly_ discouraged.
2) with relatively recent Qemu versions (CentOS 6+), you can use
the
writeback cache, enable write barriers on the guest OS and
configure
your battery backupped RAID card to ignore fsync requests (the
same
warning apply: to safely configure your RAID cache as a writeback
one, you _need_ a battery backupped card). With write barrier
enabled on the guest side, you are sure that important writes will
be synched to the RAID cache (as Qemu will pass the relative
barriers to the underling OS), while the host will cache any read
requests.
Writeback is an option when you can be sure that all of your systems
are
configured properly (with barriers enabled, etc) however this is not
always possible, so I'm trying to find a more general option.
Sure, but both Windows and recent Linux guests enable barriers by
default. An exception is Debian with EXT3 filesystem, where you should
manually enable barriers using the "barrier=1" mount option.