multipathd: "san_path_err" failure optimization
authorChongyun Wu <wu.chongyun@h3c.com>
Wed, 2 Oct 2019 06:48:07 +0000 (06:48 +0000)
committerChristophe Varoqui <christophe.varoqui@opensvc.com>
Wed, 2 Oct 2019 07:13:24 +0000 (09:13 +0200)
commitfaa76f9ad8309589eae5c2f32ac789b1b98f553c
tree488eedee90ec5888626000b546fab64ae57fbfc1
parente8c250303c71b74ecf51299b8c04e2221c4c1002
multipathd: "san_path_err" failure optimization

Let san_path_err_recovery_time path unstable can be
detected and not reinstate it until this path keep up in
san_path_err_recovery_time. It will fix heavy IO delay
caused by parts of paths state shaky in multipath device.

Test and result:
Run up eth1 30s and down eth1 30s with 100 loops script to
make some paths shaky in each multipath devices.
Using below multipath.conf configure in defaults section:
    san_path_err_recovery_time 30
    san_path_err_threshold 2
    san_path_err_forget_rate 6
After test, not found any IO delay logs except several logs in the very
beginning which before san_path_err filter shaky path works .
If without above config and this patch there will be lots of IO delay
in syslog and some paths state change from up to down again and again.

Signed-off-by: Chongyun Wu <wu.chongyun@h3c.com>
multipathd/main.c