OK, esta é minha configuração:
FC Switches Tecidos independentes IBM / Brocade, Switch1 e Switch2,
Servidor IBM x3650 M2, 2x QLogic QLE2460, 1 conectado a cada switch FC.
Armazenamento IBM DS3524, controladores 2x com 4 portas FC cada, mas apenas 2x conectados em cada.
+-----------------------------------------------------------------------+
| HBA1 Server HBA2 |
+-----------------------------------------------------------------------+
| |
| |
| |
+-----------------------------+ +------------------------------+
| Switch1 | | Switch2 |
+-----------------------------+ +------------------------------+
| | | |
| | | |
| | | |
| | | |
| | | |
+-----------------------------------+-----------------------------------+
| Contr A, port 3 | Contr A, port 4 | Contr B, port 3 | Contr B, port 4 |
+-----------------------------------+-----------------------------------+
| Storage |
+-----------------------------------------------------------------------+
Meu /etc/multipath.conf é do redbook IBM para o DS3500, exceto que eu uso uma configuração diferente para prio_callout , a IBM usa / sbin / mpath_prio_tpc , mas de acordo com o link , este foi renomeado para / sbin / mpath_prio_rdac , que estou usando.
devices {
device {
#ds3500
vendor "IBM"
product "1746 FAStT"
hardware_handler "1 rdac"
path_checker rdac
failback 0
path_grouping_policy multibus
prio_callout "/sbin/mpath_prio_rdac /dev/%n"
}
}
multipaths {
multipath {
wwid xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
alias array07
path_grouping_policy multibus
path_checker readsector0
path_selector "round-robin 0"
failback "5"
rr_weight priorities
no_path_retry "5"
}
}
A saída de multipath -ll
com o controlador A como o caminho preferido:
root@db06:~# multipath -ll
sdg: checker msg is "directio checker reports path is down"
sdh: checker msg is "directio checker reports path is down"
array07 (xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx) dm-2 IBM ,1746 FASt
[size=4.9T][features=1 queue_if_no_path][hwhandler=0]
\_ round-robin 0 [prio=2][active]
\_ 5:0:1:0 sdd 8:48 [active][ready]
\_ 5:0:2:0 sde 8:64 [active][ready]
\_ 6:0:1:0 sdg 8:96 [failed][faulty]
\_ 6:0:2:0 sdh 8:112 [failed][faulty]
Se eu alterar o caminho preferencial usando o IBM DS Storage Manager para o Controlador B, a saída será trocada de acordo:
root@db06:~# multipath -ll
sdd: checker msg is "directio checker reports path is down"
sde: checker msg is "directio checker reports path is down"
array07 (xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx) dm-2 IBM ,1746 FASt
[size=4.9T][features=1 queue_if_no_path][hwhandler=0]
\_ round-robin 0 [prio=2][active]
\_ 5:0:1:0 sdd 8:48 [failed][faulty]
\_ 5:0:2:0 sde 8:64 [failed][faulty]
\_ 6:0:1:0 sdg 8:96 [active][ready]
\_ 6:0:2:0 sdh 8:112 [active][ready]
Segundo a IBM, o caminho inativo deve ser "[ativo] [fantasma]", não "[falhou] [com falha]".
Apesar disso, não pareço ter problemas de E / S, mas meu syslog está sendo spamado a cada 5 segundos:
Jun 1 15:30:09 db06 multipathd: sdg: directio checker reports path is down
Jun 1 15:30:09 db06 kernel: [ 2350.282065] sd 6:0:2:0: [sdh] Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
Jun 1 15:30:09 db06 kernel: [ 2350.282071] sd 6:0:2:0: [sdh] Sense Key : Illegal Request [current]
Jun 1 15:30:09 db06 kernel: [ 2350.282076] sd 6:0:2:0: [sdh] <<vendor>> ASC=0x94 ASCQ=0x1ASC=0x94 ASCQ=0x1
Jun 1 15:30:09 db06 kernel: [ 2350.282083] sd 6:0:2:0: [sdh] CDB: Read(10): 28 00 00 00 00 00 00 00 08 00
Jun 1 15:30:09 db06 kernel: [ 2350.282092] end_request: I/O error, dev sdh, sector 0
Jun 1 15:30:10 db06 multipathd: sdh: directio checker reports path is down
Jun 1 15:30:14 db06 kernel: [ 2355.312270] sd 6:0:1:0: [sdg] Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
Jun 1 15:30:14 db06 kernel: [ 2355.312277] sd 6:0:1:0: [sdg] Sense Key : Illegal Request [current]
Jun 1 15:30:14 db06 kernel: [ 2355.312282] sd 6:0:1:0: [sdg] <<vendor>> ASC=0x94 ASCQ=0x1ASC=0x94 ASCQ=0x1
Jun 1 15:30:14 db06 kernel: [ 2355.312290] sd 6:0:1:0: [sdg] CDB: Read(10): 28 00 00 00 00 00 00 00 08 00
Jun 1 15:30:14 db06 kernel: [ 2355.312299] end_request: I/O error, dev sdg, sector 0
Alguém sabe como posso obter o caminho inativo para mostrar "[ativo] [fantasma]" em vez de "[falhou] [com defeito]"? Presumo que, uma vez conseguido, o spam no meu syslog também terminará.
Uma última coisa que vale a pena mencionar é que o doc do IBM Redbook tem como alvo o SLES 11, então estou assumindo que há algo um pouco diferente no Ubuntu que eu ainda não descobri.
Atualização: Como sugerido pelo Mitch , eu tentei remover o / etc / multipath .conf, e agora a saída de multipath -ll
se parece com isto:
root@db06:~# multipath -ll
sdg: checker msg is "directio checker reports path is down"
sdh: checker msg is "directio checker reports path is down"
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxdm-1 IBM ,1746 FASt
[size=4.9T][features=0][hwhandler=0]
\_ round-robin 0 [prio=1][active]
\_ 5:0:2:0 sde 8:64 [active][ready]
\_ round-robin 0 [prio=1][enabled]
\_ 5:0:1:0 sdd 8:48 [active][ready]
\_ round-robin 0 [prio=0][enabled]
\_ 6:0:1:0 sdg 8:96 [failed][faulty]
\_ round-robin 0 [prio=0][enabled]
\_ 6:0:2:0 sdh 8:112 [failed][faulty]
Então é mais ou menos o mesmo, com a mesma mensagem no syslog a cada 5 minutos como antes, mas o agrupamento mudou.