Removendo dispositivos MPxIO sem uma reinicialização no Solaris 10

1

Estou realizando uma migração de armazenamento entre dois arrays EMC conectados por canal de fibra ótica. Já movi os dados dos discos da matriz antiga para os discos na nova matriz. Agora quero remover os discos antigos do sistema operacional para que o array não seja zoneado sem que o SO perceba e aumente os alertas porque os discos desapareceram. Eu realmente não quero ter que reiniciar para conseguir isso.

Eu posso fazer isso sem problemas com discos não-MPxIO, mas para discos MPxIO minha técnica usual não está funcionando.

Minha técnica usual é usar

luxadm -e offline /dev/rdsk/cXtXdXs2
devfsadm -Cvc disk

Aqui está um exemplo. Isso está no meu laboratório de teste que não está conectado a arrays EMC, mas a um antigo SENA (A5100), mas deve funcionar da mesma maneira para qualquer disco FC conectado. Como você pode ver, não funciona nada

v480:root $ stmsboot -L | grep /dev/rdsk/c6t20000020371AC414d0
/dev/rdsk/c5t22d0       /dev/rdsk/c6t20000020371AC414d0
/dev/rdsk/c2t22d0       /dev/rdsk/c6t20000020371AC414d0
v480:root $ luxadm -e offline /dev/rdsk/c6t20000020371AC414d0s2
v480:root $ stmsboot -L | grep /dev/rdsk/c6t20000020371AC414d0
/dev/rdsk/c5t22d0       /dev/rdsk/c6t20000020371AC414d0
/dev/rdsk/c2t22d0       /dev/rdsk/c6t20000020371AC414d0

Tentar remover os dispositivos subjacentes não funciona

v480:root $ luxadm -e offline /dev/rdsk/c5t22d0s2
Error: Invalid pathname (/dev/rdsk/c5t22d0s2)
v480:root $ luxadm -e offline /dev/rdsk/c2t22d0s2
Error: Invalid pathname (/dev/rdsk/c2t22d0s2)

Alguém sabe como isso é feito?

    
por Pete Stubbs 21.06.2015 / 23:14

1 resposta

0

Encontrei a resposta para essa pergunta nos documentos do Solaris . Tudo se resume a desconfigurar ( cfgadm -c unconfigure ) o dispositivo usando o dispositivo wwn dado por cfgadm -al e limpando com devfsadm . A dificuldade então é identificar os wwns que correspondem ao dispositivo MPxIO que você deseja remover. Este pequeno script deve imprimir o dispositivo wwn e seu arquivo de dispositivo correspondente.

    fcinfo hba-port | awk '/HBA Port WWN: / { HBAwwn=$NF} /OS Device Name:/ {print $NF, HBAwwn}' | sed 's/\/dev\/cfg\///g' | while read ctlr HBAwwn
    do
      fcinfo remote-port -sp $HBAwwn  | awk '/Remote Port WWN: / {rpwwn=$NF} /OS Device Name/ {print "'$ctlr'::" rpwwn, $NF}'
    done

por exemplo,

    c0::500000e010f3eaf2 /dev/rdsk/c0t1d0s2
    c0::500000e010f23c62 /dev/rdsk/c0t0d0s2
    c5::21000020371ac414 /dev/rdsk/c6t20000020371AC414d0s2
    c2::22000020371ac414 /dev/rdsk/c6t20000020371AC414d0s2

Então, aqui para soltar /dev/rdsk/c6t20000020371AC414d0s2 você executaria

    cfgadm -c unconfigure c5::21000020371ac414 c2::22000020371ac414
    devfsadm -Cvc disk

O sistema de gerenciamento de tráfego do Storage Manager da Oracle® MPxIO ou o STMS tornaram os documentos mais difíceis de encontrar.

Os documentos equivalentes do Solaris 11 são aqui . Eles parecem quase idênticos aos do Solaris 10. Não consegui encontrar documentos para a versão anterior, mas a falta do comando fcinfo e dos drivers do FC pré-leadville deve torná-lo uma verdadeira tarefa.

    
por 29.06.2015 / 12:20

Tags