What do you say?
commit e57f9f7a7b8f838e750864ce332436a0f36321d7 Author: Lars Ellenberg <[email protected]> Date: Mon Feb 20 20:38:49 2012 +0100 Medium: Filesystem: improve read/write checks for CHECK_LEVEL 10, 20 Some devices don't support 512 byte direct writes anymore, the "physical" block size is 4kByte. Changing "bs=512 count=16" to "bs=4k count=1" also helps to avoid spurious timeouts. I've seen badly tuned (and/or totally overloaded) IO stacks exposing a synchronous single-request IO latency of many seconds (under load). If we need 16 of those, we can easily violate timeout settings. diff --git a/heartbeat/Filesystem b/heartbeat/Filesystem index a31931b..5f1ecfe 100755 --- a/heartbeat/Filesystem +++ b/heartbeat/Filesystem @@ -837,7 +837,7 @@ Filesystem_monitor_10() ocf_log warn "$DEVICE is not a block device, monitor 10 is noop" return $OCF_SUCCESS fi - dd_opts="iflag=direct bs=512 count=16" + dd_opts="iflag=direct bs=4k count=1" err_output=`dd if=$DEVICE $dd_opts 2>&1 >/dev/null` if [ $? -ne 0 ]; then ocf_log err "Failed to read device $DEVICE" @@ -853,11 +853,11 @@ Filesystem_monitor_20() { if [ "$blockdevice" = "no" ] ; then # O_DIRECT not supported on cifs/smbfs - dd_opts="oflag=sync bs=512 conv=fsync,sync" + dd_opts="oflag=sync bs=4k conv=fsync,sync" else # Writing to the device in O_DIRECT mode is imperative # to bypass caches. - dd_opts="oflag=direct,sync bs=512 conv=fsync,sync" + dd_opts="oflag=direct,sync bs=4k conv=fsync,sync" fi status_dir=`dirname $STATUSFILE` [ -d "$status_dir" ] || _______________________________________________________ Linux-HA-Dev: [email protected] http://lists.linux-ha.org/mailman/listinfo/linux-ha-dev Home Page: http://linux-ha.org/
