Como forçar o iniciador iscsi a efetuar login apenas uma vez

1

Tentando configurar alguns nós do CentOS para se conectar a um array MD3600i da Dell, estou com o problema de o MD3600i mostrar 4 portais diferentes (com diferentes endereços IP). Quando eu inicio o iniciador no lado do host, ele se conecta a cada endereço IP que ele viu durante a fase de descoberta; resultando em duplicatas.

Como posso 'forçar' o iniciador a descartar todos os outros endereços IP e permitir que eu escolha apenas um portal de endereços IP para se conectar?

    
por Disco 26.06.2012 / 21:48

2 respostas

2

Geralmente, um único storage array está servindo dados para várias redes diferentes, onde cada iniciador que se conecta a ele tem suas interfaces apenas em um subconjunto das redes.

                           -----------------------     ------------------------
department 1(vlan1,3)  --  |                     | -- |storage ctlr 1(vlan 1-4)|
                           |shared storage fabric|    |                        |
department 2(vlan2,4)  --  |                     | -- |storage ctlr 2(vlan 1-4)|
                           -----------------------     ------------------------

O Multipath "mesclaria" quatro destinos acessíveis para deparmtent 1 host em um nó do mapeador de dispositivos. No entanto, ele não salvaria da espera de alvos inacessíveis vlan2 e vlan4 para tempo limite durante a inicialização.

A descoberta iSCSI retorna todos os endereços IP de destino, acessíveis e não alcançáveis. As distribuições baseadas em SuSE possuem um applet de configuração do Iniciador iSCSI do YaST para configurar quais alvos descobertos devem ser conectados automaticamente e quais não devem. Para distribuições baseadas em RedHat, é necessário alterar manualmente o modo de inicialização nas descrições de destino armazenadas em /var/lib/iscsi/nodes/ de automatic to manual .

Estou usando um script para procurar os arquivos e atualizar a linha do modo de inicialização:

#!/bin/bash
for tgt in /var/lib/iscsi/nodes/*/* ; 
do 
   echo $tgt 
   if [ -f "$tgt"/default ] ; then 
     mode=$( grep node.startup "$tgt"/default | sed -e 's/^.*=//' -e 's/ //g' )
     if [ "$mode" = "automatic" ] ; then 
       echo "Switch to manual [y/n]?" 
       read ANS 
       case $ANS in 
          y|Y) echo "BEFORE:" 
               head -3 $tgt/default 
               perl -p -i -e \
                  "s{node.startup = automatic}{node.startup = manual}" \
                  $tgt/default 
               echo "AFTER:" 
               head -3 $tgt/default ;; 
          n|N) echo "ok, will keep as is" ;; 
          *) echo "wrong answer" ;; 
       esac
     else
      echo "Already in manual mode" 
     fi # mode is automatic
   fi # defaults exist
done
    
por 28.06.2012 / 05:15
4

Já pensou em executar o Multipath? Em uma situação como essa, o Multipath ainda permitiria todas as conexões para o dispositivo, no entanto, no caso de um cair, o outro pode assumir o controle. Alternativamente, você pode configurar o Multipath para usar todos os links para o armazenamento para aumentar a largura de banda para o seu dispositivo de armazenamento. De qualquer maneira, o Multipath pode ser usado para fazer com que todos os dispositivos vistos apareçam como um único dispositivo, quando todos eles representam o mesmo LUN de armazenamento.

A documentação do RHEL 5 pode ser encontrada aqui: link

RHEL 6: link

    
por 26.06.2012 / 21:53

Tags