Outils pour utilisateurs

Outils du site


systeme:multipath

Multipath

Voir aussi : https://access.redhat.com/solutions/137073

Variables importantes :

  • polling_interval : intervalle entre 2 check.. Quand tous les paths sont ok, cette valeur augmente jusqu’à atteindre la valeur définie par la variable max_polling_interval. (defaut : 5)
  • max_polling_interval : temps maximum entre 2 check (défaut : 4 * polling_interval)
  • checker_timeout : timeout du path (défaut : valeur de /sys/block/<path>/device/timeout)
  • fast_io_fail_tmo : temps à attendre avant que le path passe en état failed lors d'une perte de link de la carte SAN. Pendant ce temps les io sont en queue (défaut : /sys/class/fc_remote_ports/rport-<id>/fast_io_fail_tmo)
  • dev_loss_tmo : temps avant du supprimer le path lors d'une perte de link de la carte SAN. On peut définir la valeur infinity pour garder les path en état failed sans les supprimer (Default : no_path_retry * polling_interval si no_path_retry et polling_interval sont supérieurs à dev_loss_tmo, sinon : 300 si fast_io_fail_tmo est à off sinon 600) ⇒ /sys/class/fc_remote_ports/rport-<id>/dev_loss_tmo
  • no_path_retry : bloque les IO en queue si un nombre de tentatives est spécifiée. Mettre la valeur fail ou 0 pour désactiver la queue (fail immédiat sauf si fast_io_fail_tmo est spécifié alors les io seront en queue le temps de cette valeur). Spécifier la valeur queue pour qu’un path ne tombe jamais en état failed. Temps estimé avant état failed si on a positionné un nombre : max_polling_interval + (no_path_retry * polling_interval).
  • Explication d'une ligne de multipath -ll :
8:1:5:0  sdk  8:160       active ready running

Voir https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/dm_multipath/mpio_output

`- host:channel:id:lun devnode major:minor dm_status_if_known path_status online_status

Cela signifie :

  • 8 est l'identifiant de la carte HBA (host)
  • 1 est le port de la carte (channel)
  • 5 est la scsi target (id)
  • 0 est le numéro de lun (lun)
  • sdk est le nom du disque (devnode)
  • 8:160 est le major:minor device (major:minor)
  • active : le path est actif et accepte les IO. Les IO sont placés en queue si le champs suivant est en état faulty, par exemple active faulty running. Si ce champ est en état failed alors le path n'accepte plus le IO (dm_status_if_known)
  • ready : le path acceptes les IO /ou faulty (path_status)
  • running : Le path est actif. offline signifie que le périphérique scsi a été désactivé (online_status)

Exemple fichier multipath.conf :

blacklist {
    device {
        vendor  ".*"
        product ".*"
    }
}

blacklist_exceptions {
    device {
        vendor  "3PARdata"
        product "VV"
    }
}

defaults {
    max_polling_interval    10
    polling_interval        5
    checker_timeout         15
}

devices {
    device {
        vendor                  "3PARdata"
        product                 "VV"
        path_grouping_policy    "group_by_prio"
        uid_attribute           "ID_SERIAL"
        prio                    "alua"
        #path_selector           "round-robin 0"
        path_selector           "service-time 0"
        path_checker            "tur"
        hardware_handler        "1 alua"
        failback                "immediate"
        rr_weight               "uniform"
        rr_min_io_rq            1
        fast_io_fail_tmo        10 # IO 10s en queue avant path failed (avec no_path_retry à 0)
        dev_loss_tmo            14 #Prendra la valeur 14 avec no_path_retry à 0 ou 180 avec no_path_retry à 36 ou infini avec no_path_retry à queue
        #no_path_retry           "queue" #Sans mirroir / Sans Pacemaker => IO bloqués jusqu'à ce que le SAN redevienne opérationnel
        no_path_retry           36 #En mirroir sans pacemaker : 18 x polling_interval + max_polling_interval => soit environ 180s (la préco d'HP est de 18 avec un polling_interval à 10, j'ai divisé par 2 le polling_interval et multiplié par 2 le no_path_retry, ce qui a pour conséquence de mettre le dev_loss_tmo à 180 dans les 2 cas)
        #no_path_retry           0 #En mirroir avec Pacemaker
    }
}

multipaths {
    multipath {
        wwid  WWID_LUN
        alias MON_ALIAS
    }
}
systeme/multipath.txt · Dernière modification : 2018/03/08 20:58 de root