iSCSI Multipath Como Funciona E Como Configurar

      7 de setembro de 2025 David Ross 8 min de leitura
      iSCSI Multipath Como Funciona E Como Configurar

      iSCSI Multipath permite que um servidor estabeleça múltiplas conexões independentes para o mesmo target iSCSI (o storage). Cada conexão utiliza um caminho físic...

      Compartilhar:

      iSCSI Multipath Como Funciona E Como Configurar

      A Essência do iSCSI Multipath

      iSCSI Multipath permite que um servidor estabeleça múltiplas conexões independentes para o mesmo target iSCSI (o storage). Cada conexão utiliza um caminho físico distinto, como uma placa de rede (NIC) diferente, switch, ou até mesmo controladoras de storage separadas. Se um caminho falhar, o tráfego é automaticamente roteado para um dos caminhos restantes, sem interrupção do serviço. Além da resiliência, o multipath pode aumentar a taxa de transferência agregada, distribuindo a carga de I/O entre os múltiplos caminhos disponíveis.

      Arquitetura iSCSI multipath: múltiplos caminhos entre o servidor e o storage.

      Desvendando o Protocolo iSCSI

      Para entender o iSCSI multipath, é crucial conhecer o protocolo iSCSI em si. iSCSI (Internet Small Computer System Interface) é um protocolo de camada de transporte que permite o transporte de comandos SCSI (usados para comunicação com dispositivos de armazenamento) sobre uma rede IP. Ele encapsula comandos SCSI em pacotes TCP/IP, permitindo que servidores acessem storage remoto como se fossem discos locais conectados diretamente.

      O iSCSI opera em um modelo cliente-servidor. O servidor, chamado de iSCSI initiator, envia comandos SCSI para o dispositivo de armazenamento, conhecido como iSCSI target. O target, por sua vez, executa os comandos e retorna os resultados para o initiator.

      Note: A comunicação iSCSI depende fortemente da confiabilidade da rede TCP/IP. Problemas de rede, como congestionamento, perda de pacotes ou alta latência, podem impactar negativamente o desempenho do iSCSI.

      A Lógica por Trás: Múltiplas Estradas para o Mesmo Destino

      Imagine uma cidade com apenas uma estrada ligando-a a um centro de distribuição. Se essa estrada for bloqueada, todo o fluxo de mercadorias é interrompido. Agora, imagine a mesma cidade com múltiplas estradas independentes conectando-a ao centro de distribuição. Se uma estrada for bloqueada, o tráfego pode ser redirecionado para as outras estradas, garantindo a continuidade do fluxo. Além disso, se todas as estradas estiverem abertas, o tráfego pode ser distribuído entre elas, reduzindo o congestionamento e aumentando a taxa de entrega total. iSCSI multipath funciona de forma análoga, fornecendo múltiplos caminhos para o mesmo storage, garantindo resiliência e melhorando o desempenho.

      iSCSI Multipath em Ação: Resgatando a Madrugada

      Considere um cenário real: um servidor de virtualização executando dezenas de máquinas virtuais (VMs), todas armazenadas em um storage iSCSI. Durante uma manutenção de rotina, um dos switches de rede que conecta o servidor ao storage falha inesperadamente. Sem iSCSI multipath, todas as VMs seriam interrompidas, causando um impacto massivo nos serviços.

      Com iSCSI multipath configurado, o sistema detecta a falha do caminho e automaticamente redireciona o tráfego para os caminhos restantes. As VMs continuam a funcionar sem interrupção, e os usuários finais nem sequer percebem a falha. A equipe de TI pode então solucionar o problema do switch com calma, sem a pressão de um incidente de produção.

      Configuração Passo a Passo no Linux (com multipath-tools)

      A configuração do iSCSI multipath no Linux geralmente envolve o pacote multipath-tools.

      1. Instale o multipath-tools:

        sudo apt update
        sudo apt install multipath-tools -y
        
      2. Configure o multipathd: O arquivo de configuração principal é /etc/multipath.conf. Edite-o para definir as configurações globais, blacklist de dispositivos e configurações específicas para diferentes arrays de storage.

        Um exemplo básico de configuração:

        defaults {
                user_friendly_names yes
                path_grouping_policy multibus
                path_selector "service-time 0"
                failback immediate
                no_path_retry queue
        }
        
        blacklist {
                devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*"
                devnode "^hd[a-z][0-9]*"
                wwid 360050763008106d70000000000001111
        }
        
        devices {
                device {
                        vendor "DELL"
                        product "MD32xx"
                        path_grouping_policy group_by_prio
                        path_selector "service-time 0"
                        failback immediate
                        rr_weight uniform
                        no_path_retry 5
                }
        }
        
        • defaults: Define as configurações padrão para todos os dispositivos multipath.
          • user_friendly_names: Usa nomes de dispositivos amigáveis (ex: mpatha) em vez de WWIDs.
          • path_grouping_policy: Como os caminhos são agrupados (ex: multibus - um grupo por controlador).
          • path_selector: Algoritmo para selecionar o melhor caminho.
          • failback: Quando um caminho volta a ficar online, o failback acontece imediatamente.
          • no_path_retry: Como o sistema reage quando todos os caminhos falham.
        • blacklist: Dispositivos que não devem ser gerenciados pelo multipath (ex: discos locais).
        • devices: Configurações específicas para determinados arrays de storage (identificados por vendor e product).

        Warning: Configurações incorretas no multipath.conf podem impedir que o multipath funcione corretamente ou até mesmo causar problemas de acesso ao storage. Valide cuidadosamente as configurações antes de reiniciar o serviço.

      3. Descubra os targets iSCSI:

        sudo iscsiadm -m discovery -t st -p <IP do target iSCSI>
        
      4. Faça login nos targets iSCSI:

        sudo iscsiadm -m node -T <IQN do target iSCSI> -l
        
      5. Reinicie o serviço multipathd:

        sudo systemctl restart multipathd
        
      6. Verifique o status do multipath:

        sudo multipath -ll
        

        Este comando exibe informações detalhadas sobre os dispositivos multipath detectados, incluindo os caminhos disponíveis, o estado de cada caminho e o dispositivo mapeado.

      Diagnóstico: Decifrando os Sinais

      Para garantir o bom funcionamento do iSCSI multipath, é crucial monitorar a saúde do sistema e identificar potenciais problemas o mais cedo possível.

      Sinais de Saúde:

      • multipath -ll: Exibe todos os caminhos ativos e disponíveis.
      • iostat -xz /dev/mapper/mpatha: Mostra a utilização dos dispositivos multipath.
      • Logs do sistema (/var/log/syslog ou /var/log/messages): Não há erros relacionados ao multipathd ou iscsid.
      • Latência consistente: A latência de I/O permanece dentro de limites aceitáveis.

      Sinais de Perigo:

      • Caminhos inativos: Alguns caminhos estão marcados como failed ou offline no multipath -ll.
      • Erros nos logs: O sistema registra erros relacionados ao multipathd, iscsid ou falhas de I/O.
      • Alta latência: A latência de I/O aumenta significativamente, indicando congestionamento ou problemas de desempenho.
      • Dispositivos ausentes: O multipath -ll não exibe todos os dispositivos esperados.

      Note: A interpretação dos logs e métricas requer um bom entendimento da configuração do sistema e das características do storage. Monitore regularmente o sistema e estabeleça linhas de base para identificar anomalias.

      Otimização: Levando o Desempenho ao Limite

      A configuração básica do iSCSI multipath garante resiliência, mas a otimização é essencial para obter o máximo desempenho.

      • Algoritmo de balanceamento de carga: O path_selector no multipath.conf controla como o tráfego é distribuído entre os caminhos. Diferentes algoritmos podem ser mais adequados para diferentes cargas de trabalho.
        • service-time 0: Seleciona o caminho com o menor tempo de resposta.
        • round-robin: Distribui o tráfego uniformemente entre os caminhos.
        • queue-length 0: Seleciona o caminho com a menor fila de I/O.
      • Tamanho do MTU (Maximum Transmission Unit): Aumentar o MTU para 9000 bytes (jumbo frames) pode reduzir a sobrecarga do protocolo e melhorar o desempenho, mas requer suporte em todos os dispositivos da rede.
      • Múltiplas sessões iSCSI: Alguns arrays de storage se beneficiam de múltiplas sessões iSCSI por caminho. Isso pode aumentar o número de comandos pendentes e melhorar a utilização do storage.
      • Afinidade de CPU: Em sistemas com múltiplos processadores, configurar a afinidade de CPU para os processos iscsid e multipathd pode melhorar o desempenho, garantindo que eles sejam executados nas mesmas CPUs que as aplicações que acessam o storage.

      Ganho de performance com iSCSI multipath (IOPS).

      Armadilhas Comuns e Como Evitá-las

      • Blacklisting incorreta: Blacklisting incorreta de dispositivos no multipath.conf pode impedir que o multipath gerencie corretamente os dispositivos de storage, levando a problemas de acesso e até mesmo perda de dados. Revise cuidadosamente a blacklist e use WWIDs para identificar os dispositivos corretamente.
      • Configurações inconsistentes: Configurações inconsistentes entre o initiator e o target iSCSI podem causar problemas de conectividade e desempenho. Verifique se as configurações de autenticação, CHAP e ACLs estão corretas e consistentes em ambos os lados.
      • Sobrecarga da rede: O iSCSI é sensível à latência e ao congestionamento da rede. Monitore a rede e certifique-se de que haja largura de banda suficiente para suportar o tráfego iSCSI. Considere o uso de VLANs dedicadas para isolar o tráfego iSCSI e priorizá-lo usando QoS (Quality of Service).
      • Firmware desatualizado: Firmware desatualizado nos adaptadores iSCSI, switches de rede ou arrays de storage pode conter bugs ou problemas de desempenho. Mantenha o firmware atualizado para garantir a estabilidade e o desempenho do sistema.

      Além do Básico: Cenários Avançados

      • Integração com LVM (Logical Volume Manager): O iSCSI multipath pode ser integrado com o LVM para criar volumes lógicos que abrangem múltiplos dispositivos iSCSI. Isso permite aumentar a capacidade do storage e simplificar o gerenciamento.
      • Integração com sistemas de virtualização: A maioria dos sistemas de virtualização, como VMware vSphere e KVM, suporta iSCSI multipath nativamente. A integração com o sistema de virtualização permite que as VMs se beneficiem da resiliência e do desempenho do multipath.
      • Monitoramento e alertas: Implemente um sistema de monitoramento abrangente para monitorar a saúde do iSCSI multipath e gerar alertas em caso de problemas. Use ferramentas como Nagios, Zabbix ou Prometheus para monitorar as métricas relevantes e configurar alertas para caminhos inativos, alta latência ou erros nos logs.

      Veredito: Invista no Multipath

      iSCSI Multipath não é um luxo, é uma necessidade para qualquer ambiente que dependa de storage iSCSI. A resiliência que ele oferece protege contra interrupções de serviço, e a otimização correta pode aumentar significativamente o desempenho. A configuração inicial exige um pouco de tempo e atenção aos detalhes, mas o retorno em termos de disponibilidade e performance compensa o esforço. Não espere uma falha para implementar o multipath. Faça isso agora.

      #Storage #Server
      David Ross

      David Ross

      Linux Sysadmin Veterano

      Vive no terminal. Mantenedor de diversos módulos kernel de storage. Acredita que GUI é bloatware.