Ubuntu 10.04 e IBM DS3524 com multipath do FC, o caminho inativo é [falhou] [com falha] em vez de [ativo] [fantasma]

0

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.

    
por ThatGraemeGuy 01.06.2012 / 15:45

2 respostas

1

Eu finalmente encontrei uma configuração que funciona aqui: link . Resumindo aqui caso alguém mais tenha isso no futuro.

device {
    vendor "IBM"
    product "1745|1746"
    path_grouping_policy group_by_prio
#   getuid_callout "/sbin/scsi_id -g -u -s /block/%n"
    path_selector "round-robin 0"
    path_checker rdac
    features "2 pg_init_retries 50"
    hardware_handler "1 rdac"
    prio_callout "/sbin/mpath_prio_rdac /dev/%n"
    failback immediate
    rr_weight uniform
    no_path_retry 15
    rr_min_io 1000
}

Eu comentei getuid_callout porque o Ubuntu coloca o programa scsi_id em /lib/udev , não /sbin , e o valor padrão do Ubuntu para getuid_callout é /lib/udev/scsi_id -g -u -s , então eu não coloquei na minha configuração explicitamente .

Nenhuma configuração específica é necessária em um bloco multipath { ... } , mas é possível criar nomes de alias amigáveis, se necessário, usando:

multipaths {
  multipath {
    wwid xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    alias array07
  }
}

multipath -ll output agora é assim:

root@db06:~# multipath -ll                                                                                                                                                                                                                                             
array07 (xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx) dm-1 IBM     ,1746      FASt
[size=4.9T][features=3 queue_if_no_path pg_init_retries 50][hwhandler=1 rdac]
\_ round-robin 0 [prio=0][enabled]
 \_ 5:0:1:0 sdd 8:48  [active][ghost]
 \_ 5:0:2:0 sde 8:64  [active][ghost]
\_ round-robin 0 [prio=6][active]
 \_ 6:0:1:0 sdg 8:96  [active][ready]
 \_ 6:0:2:0 sdh 8:112 [active][ready]

Não estou mais recebendo spam em / var / log / syslog e o failover / failback está funcionando perfeitamente.

    
por ThatGraemeGuy 04.06.2012 / 12:01
1

Eu realmente não sei muito sobre o IBM DS3524. Mas se for algo como um EMC Clariion CX-4, então:

Tente mover o multipath.conf da pasta etc e reinicie o multipath-tools .

    
por Mitch 02.06.2012 / 11:29