O primeiro passo para adicionarmos discos locais, ou do storage, ao nosso servidor, é termos em mãos algumas informações de
WWNN, WWPN, para fazermos com que o Sistema Operacional entenda que um novo disco foi publicado (no caso LUN).
Para isso, usaremos comandos de manipulação de fibra óptica ou iSCSI devices.
Após a adição (local via Hot-Swap) ou publicação do disco pelo administrador do Storage (not covered), precisamos fazer com que o
GNU/Linux execute um scan para novos dispositivos.
Para isso, execute os passos abaixo de acordo com seu ambiente:
Identificando Discos Locais (via Hot-Swap)
Os comandos abaixo permitem identificar o disco sem a necessidade de reiniciar seu servidor, as informações do disco são
armazenadas no arquivo "messages".
Comando para identificação do novo disco:
# echo "- - -" > /sys/class/scsi_host/hosth/scan
Onde 'h' é a variação de host, que inicia com 0 e vai até 2.
Comando para visualizar as informações do novo disco:
# tail -f /var/log/messages
sd 2:0:0:0: [sdb] Cache data unavailable
sd 2:0:0:0: [sdb] Assuming drive cache: write through
sd 2:0:0:0: [sdb] Attached SCSI disk
Acima podemos verificar que foi encontrado um novo disco 'sdb' com sucesso. A partir de agora, podemos utilizar nosso novo disco à
vontade, e tudo isso feito sem a necessidade de boot no servidor.
Identificando discos Storage (via iSCSI)
Não irei abordar como instalar/configurar o servidor para dispositivos iSCSI, você pode encontrar como se faz isto aqui no VOL.
Após o administrador do Storage ter configurado seu iSCSI target ID e referenciá-lo ao pool de disco que seu servidor terá acesso,
devemos identificar o novo disco.
Para isso utilizaremos os comandos a seguir:
# iscsiadm -m discovery -t st -p IP_STORAGE:3260
# iscsiadm -m discovery -t sendtargets -p 10.15.85.19:3260
O comando acima irá executar um scan no Storage e irá fazer um check-sum para validar se o servidor solicitante, possui permissão
para executar a ação desejada.
Após a execução do comando (logicamente o daemon iscsd deve estar em execução), o resultado deverá ser parecido com o abaixo:
10.15.84.19:3260,2 iqn.1992-08.com.netapp:sn.33615311
10.15.85.19:3260,3 iqn.1992-08.com.netapp:sn.33615311
Neste caso, o servidor possuí dois portais: um para o IP 84, e outro para o IP 85. Para visualizar como estas informações foram
tratadas, execute o comando abaixo:
# iscsiadm -m session -P 0
A saída do comando deverá ser parecida com a exibida abaixo:
Target: iqn.1992-08.com.netapp:sn.33615311
Portal: 10.15.84.19:3260,2
Iface Name: iface2
Portal: 10.15.85.19:3260,3
Iface Name: iface2
Agora falta apenas executarmos o scan para utilizarmos nosso disco que se encontra no Storage, vamos utilizar nosso comando já
conhecido:
# echo "- - -" > /sys/class/scsi_host/hosth/scan
Após verificarmos o arquivo "/var/log/messages", que foi atualizado com as informações do novo disco, basta apenas dimensioná-lo,
criar os FS e pronto!
Perceba que não abordei nenhum tipo de configuração avançada para o iSCSI, ou seja, não está sendo utilizado (autenticação, nem
restrições de rede etc).
Identificando Discos Storage (via LUN)
Quando trabalhamos com discos que se encontram no Storage, precisamos informar os valores corretos de L (HBA number), C (HBA
Channel) e T (SCSI target ID).
Vamos precisar, também, das informações da WWNN. Abaixo segue um exemplo.
Se a WWNN do storage for: 0x5006016090203181, execute o comando abaixo:
# grep 5006016090203181 /sys/class/fc_transport/*/node_name
A saída deverá ser parecida com a está abaixo:
/sys/class/fc_transport/target5:0:2/node_name:0x5006016090203181
/sys/class/fc_transport/target5:0:3/node_name:0x5006016090203181
/sys/class/fc_transport/target6:0:2/node_name:0x5006016090203181
/sys/class/fc_transport/target6:0:3/node_name:0x5006016090203181
Analisando as informações acima, podemos dizer que foram encontrados 4 Canais de Fibra para a WWNN informado, ou seja, 2 HBAs
single-channel e cada uma delas conectada a duas portas do Storage.
Considerando que o valor da nossa LUN é 56, o comando que usaremos para configurar o primeiro caminho para o disco é:
# echo "0 2 56" > /sys/class/scsi_host/host5/scan
O comando acima irá atualizar o arquivo "/var/log/messages" com as informações do novo disco, e após ser confirmado sua
identificação, falta somente criar os FS e utilizá-lo.
Outros comandos para scanear novos discos (hardwares etc)
* Ressalto que, os comandos mencionados nesta seção, deverão ser executados somente quando necessário, para prevenir
problemas inesperados ao seu servidor.
Conforme já mencionado anteriormente, somente execute um operação de SCAN com seu Sistema com baixo LOAD e consumo de
MEMÓRIA, pois você pode ter problemas de I/O.
Lista de comandos que podem ser utilizados para scan e descrição:
1.
# echo "1" > /sys/class/fc_host/host/issue_lip
O comando acima executa um atualização na camada LIP (Loop Initialization Protocol) e scaneei os interconectores SCSI do seu
servidor. Por se tratar de um protocolo assíncrono, ele executa uma redefinição do barramento adicionando e removendo o
dispositivo. Você deve acompanhar as entradas no arquivo "/var/log/messages/messages".
Este procedimento é necessário para identificar um destino SCSI novo em um conector Fibre Channel.
2.
# /usr/bin/rescan-scsi-bus.sh
Este script foi incluído no RHEL 5.4, por default, ele executa um scan de todos os SCSI no barramento do sistema, atualizando a
camada SCSI e refletindo os novos dispositivos no barramento. Este script oferece opções de adição e remoção.
3.
# echo "- - -" > /sys/class/scsi_host/hosth/scan
Este comando já foi abordado anteriormente e executará um scan no barramento SCSI especificado (hosth).
4.
# rmmod driver-name ou modprobe driver-name
Um dos comandos acima, executará e reinicializará o estado de todos os conectores controlados pelo driver.
Embora este processo seja extremo, ele pode ser utilizado em algumas situações. Pode ser usado, por exemplo, para reiniciar o
módulo do driver com valor diferente.