Hi list,
I would like to have a clarification how barriers and flushes work to
preserve write ordering.
From my understanding, two main methods exists to preserve write order
and to force data to stable storage:
1) write barriers, which are expanded in buffer-draining cache flush ->
write -> cache flush operations;
2) FUAs, which can *possibly* (depending on the underlying disk *and*
kernel version/bootparams) be expanded in non-draining cache flush ->
write w/FUA bit operations.
However, from drbd.conf man page I read the following:
barrier:
The first requires that the driver of the backing storage device support
barriers (called 'tagged command queuing' in SCSI and 'native command
queuing' in SATA speak). The use of this method can be enabled by
setting the disk-barrier options to yes.
flush:
The second requires that the backing device support disk flushes (called
'force unit access' in the drive vendors speak). The use of this method
can be disabled setting disk-flushes to no.
This seems confusing: write barriers do not depend on TCQ/NCQ/FUAs,
rather on the CACHE_FLUSH ATA/SCSI command. On the other hand, "flush"
seems to really refer to FUAs which, in turn, depend on NCQ (which are
only mentioned in the "barrier" paragraph).
So, is the man page outdated, or I am missing something? Which is the
safest method? Morever, as many kernels disable FUAs on SATA disks
(transforming FUAs in drain + cache flushes), does the two setting
really made any difference?
Thanks.
--
Danti Gionatan
Supporto Tecnico
Assyoma S.r.l. - www.assyoma.it
email: g.da...@assyoma.it - i...@assyoma.it
GPG public key ID: FF5F32A8
_______________________________________________
drbd-user mailing list
drbd-user@lists.linbit.com
http://lists.linbit.com/mailman/listinfo/drbd-user