I/O colgado para siempre al acceder a un dispositivo VDEV
Configurando snapshots con Hitachi VSP vimos que muchos procesos kpart estaban esperando I/O al intentar acceder a dispositivos VDEV. Eso se debe a la característica queue_if_no_path de multipath.
La cosa es que es una buena característica: si tienes brechas de tiempo muy pequeñas sin acceso al storage (transición de cluster, alguien jugando con los cables de fibra, etc.) quieres que el I/O se encole y continúe cuando la conexión vuelva a la vida.
Por otro lado, los VDEV aparecen como fallados si los snapshots no están activos, así que la mayor parte del tiempo no quieres encolar las sondas de udev (cientos de procesos en menos de un día en nuestro caso). Para resolverlo puedes habilitar la característica “fail_if_no_path” por LUN, aquí un ejemplo:
multipath {wwid 350760e9016040b000001040a00002001alias snapdata02LUno_path_retry fail}Y no te olvides de reiniciar el daemon de multipath…
Si es necesario, puedes liberar los procesos de I/O pendientes (y devolver error de I/O) con el siguiente comando:
dmsetup message snapdata02LU 0 "fail_if_no_path"Eso es todo…
Editar este artículo en GitHub · ¿encontraste un error? Los pull requests son bienvenidos.