Configuração de multipath em volume TrueNAS/FreeNAS iSCSI no Windows

Objetivo

Já realizamos a instalação e configuração do TrueNAS com o serviço de iSCSI nos posts Instalação e configuração TrueNAS/FreeNAS com serviço de storage iSCSI e  Configuração TrueNAS/FreeNAS para storage iSCSI. Até o momento o volume já foi apresentado ao servidor, pois durante o processo foi liberado o acesso do volume aos IPs 10.10.10.2 e 20.20.20.2. Faremos o laboratório em um servidor Windows, mas se fosse qualquer outro sistema operacional o volume também teria sido apresentado da mesma forma, o que muda é somente a forma como o sistema operacional de destino (que irá receber o volume) é configurado para configurar e formatar o disco.

Neste post iremos validar a comunicação do servidor com o storage, realizar as configurações de acesso através de multipath e finalmente formatar o volume.

Esse procedimento foi realizado em apenas um servidor, porem caso possua um ambiente em cluster bastaria adicionar os IPs dos nós no Initiators Groups do TrueNAS e realizar os passos abaixo em todos os nós.

Procedimento

O storage possui os IPs 10.10.10.1 e 20.20.20.1 e cada um responde a uma interface de rede diferente para o serviço de iSCSI.

Realize acesso ao servidor que o volume foi apresentado. O servidor Windows possui os IPs 10.10.10.2 e 20.20.20.2 para comunicação via iSCSI com o storage.

Verifique se as interfaces de rede estão configuradas com o MTU correto. Abra um prompt como administrador e execute o comando abaixo:

netsh interface ipv4 show subinterfaces

O MTU padrão do Windows é 1500. No meu laboratório é necessário alterar o MTU para 9000, execute o comando abaixo. Altere o iSCSI1 e iSCSI2 para os nomes das suas interfaces de rede.

netsh interface ipv4 set subinterface "iSCSI1" mtu=9000 store=persistent
netsh interface ipv4 set subinterface "iSCSI2" mtu=9000 store=persistent

Verifique novamente se as configurações foram aplicadas através do comando:

netsh interface ipv4 show subinterfaces

Valide a comunicação entre o servidor e o storage.

Agora vamos configurar o acesso ao volume e para isso utilizaremos o software iSCSI Initiator.

Uma observação importante é que como será configurado multipath para acesso ao disco a configuração do iSCSI Initiator precisa ser feita “duas” vezes, uma para cada interface, isso ficará mais claro no procedimento abaixo.

No Server Manager clique em Tools e selecione iSCSI Initiator.

Clique em Yes para que o serviço seja startado automaticamente após os reboots.

Clique na aba Discovery e depois clique em Discover Portal…

Será aberta a janela Discover Portal, adicione o primeiro IP do storage, mantenha a porta padrão 3260 e clique em OK

Clique em Discover Portal novamente.

Adicione o segundo IP do storage e clique em OK.

Verifique que os dois IPs do storage foram configurados.

Clique na aba Targets, verifique que o IQN do storage está como Inactive. Selecione ele e clique em Connect.

Marque a opção Enable multi-path e clique em Advanced…

Altere o Local adapter para o Microsoft iSCSI Iniciator, em Initiator IP configure o IP da primeira interface de rede iSCSI do servidor e em Target portal IP configure o primeiro IP do storage. Depois clique em OK.

Clique em OK para aplicar as configurações.

Verifique que agora o storage está conectado, e clique NOVAMEMTE (Pela segunda vez) em Connect.

Marque a opção Enable multi-path e clique em Advanced…

Agora será realizada a configuração do segundo IP do storage e do servidor. A primeira interface de rede do storage e do servidor já foi configurada no passo anterior, agora faremos a segunda. Altere o Local adapter para o Microsoft iSCSI Iniciator, em Initiator IP configure o IP da segunda interface de rede iSCSI do servidor e em Target portal IP configure o segundo IP do storage. Depois clique em OK.

Clique em OK para aplicar as configurações.

Selecione o storage e clique em Properties…

Nessa janela será exibida as sessões conectadas ao storage, duas sessões são exibidas pois realizamos duas sessões (rede 10 e rede 20). Selecione a primeira sessão e clique em MCS…

Na próxima janela em MCS policy é possível configurar a política que o aceso ao disco irá trabalhar. MCS (Multiple Connections per Session) é uma política de balanceamento de carga e failover que permite ao initiator (servidor) usar múltiplas conexões de rede simultaneamente para se comunicar com um único destino (storage), otimizando o desempenho (throughput) e a resiliência, desviando I/O de caminhos sobrecarregados e garantindo alta disponibilidade. Em vez de uma única conexão, o Initiator iSCSI (como o da Microsoft) usa várias sessões e conexões para distribuir o tráfego e lidar com falhas de link.

Vou utilizar a Policy Round Robin, verifique em Source Portal que é exibida a primeira interface configurada, clique em Cancel.

Selecione a segunda sessão e clique em MCS…

Vou utilizar a Policy Round Robin, verifique em Source Portal que é exibida a segunda interface configurada, clique em Cancel.

Clique na aba Portal Groups e verifique que é possível visualizar os IPs das redes do storage. Clique em Cancel.

Clique na aba Favorite Targets e selecione o primeiro target, clique em Details.

Verifique a conexão entre o storage e o servidor na rede 10. Clique em OK.

Selecione o segundo target, clique em Details.

Verifique a conexão entre o storage e o servidor na rede 20. Clique em OK.

Clique em OK para fechar a janela.

Com isso validamos que o multipath foi configurado corretamente o iSCSI Initiator.

Abra o Computer Management no servidor.

Em Computer Management abra o Disk Management.

Verifique que são exibidos dois discos no servidor, mas não adicionamos somente um?

Isso ocorre devido a uma configuração de caminhos múltiplos (multipath) para acesso ao disco, sem o software de gerenciamento apropriado instalado para entender que são dois caminhos e não dois discos ocorre essa “falha”. O servidor vê o mesmo disco (LUN) por duas conexões físicas ou lógicas diferentes (como duas portas Fibre Channel ou iSCSI) e as interpreta incorretamente como dois discos distintos. A solução envolve a instalação e configuração do software de E/S de caminhos múltiplos (MPIO) no sistema operacional do servidor. O MPIO agrega esses caminhos redundantes em um único dispositivo lógico, proporcionando maior largura de banda e resiliência (failover).

Para instalar o MPIO realize os seguintes passos, abra o Server Manager e clique em Add roles and features.

Clique em Next.

Deixe selecionado a opção Role-based or feature installation e clique em Next.

Deixe selecionado a opção Selected a server from the server pool e clique em Next.

Não habilite nenhuma role e clique em Next.

Em Features marque Multipath I/O e clique em Next.

Clique em Install.

Após finalizar a instalação clique em Close.

Abra o MPIO através do Server Manager.

Clique na aba Discover Multi-Paths, selecione a caixa Add support for iSCSI devices e clique em Add.

Clique em OK e com isso o suporte a multipath será habilitado.

Clique em OK novamente para fechar o MPIO.

É necessário reiniciar o servidor para que as alterações sejam aplicadas.

Após o reboot do servidor abra o MPIO novamente e verifique na aba MPIO Devices que o suporte aos devices iSCSI foram habilitados para trabalharem com multipath. Clique em Cancel para fechar a janela.

Abra o Disk Management novamente e verifique que agora o volume está sendo exibido corretamente. Após instalar e configurar o MPIO o Windows reconheceu que existem dois caminhos para o mesmo volume.

Observação: Para que o multipath funcione é necessário que o servidor possua caminhos redundantes, seja via Fibre Channel (HBA) ou Ethernet (iSCSI), ou seja, instalar somente o MPIO não garante que o volume possui multipath, e os dois são necessários.

Agora é só formatar o volume como desejar.

Se fosse um cluster esse volume seria exibido em todos os nós e você deveria seguir os passos necessários de inicialização e formatação do volume. Isso muda um pouco em um ambiente em cluster, mas futuramente criarei um post falando sobre isso.

Vamos realizar mais alguns testes que podem ser utilizados até como troubleshooting.

Vamos utilizar o comando mpclaim que é uma ferramenta de linha de comando no Windows para gerenciar o MPIO, permitindo configurar e verificar o multipath nos volumes. Ele lista os dispositivos gerenciados por MPIO, exibe informações detalhadas e pode ser usado para garantir que os caminhos do volume estejam funcionando corretamente.

Execute o comando abaixo para verificar todos os volumes do servidor. Como só possuímos um volume configurado através do MPIO ele é o volume 0.

mpclaim -s -d

Execute o comando abaixo com o 0 no final, pois o 0 é o volume descoberto no passo acima (primeiro volume). Se houver mais volumes basta executar o comando com numero do volume no final.

mpclaim -s -d 0

Verifique que o volume possui dois Patch ID do e ambos estão conectados.

Path ID 77040000 referente a rede 20 ativo e conectado.

Path ID 77040001 referente a rede 10 ativo e conectado.

Desabilite uma das interfaces de rede iSCSI, em meu laboratório desabilitei a interface iSCSI1, que é referente a rede 10.

Após desabilitar a interface a comunicação através da rede 10 parou e só possuímos um patch ativo.

Execute o comando abaixo e verifique que há somente o Path ID 77040000 referente a rede 20 ativo e conectado.

mpclaim -s -d 0

O acesso ao volume permanece OK.

Ao verificar as sessões, podemos visualizar que a sessão referente a rede 20 está conectada.

Porém a sessão referente a rede 10 não está conectada.

O multipath só exibe um caminho, sem redundância.

Habilite novamente a interface de rede e execute o comando:

mpclaim -s -d 0

Verifique que o path é reconectado e o volume volta a apresentar dois caminhos.

A sessão referente a rede 10 reconectou.

Os dois caminhos já estão normalizados.

Para finalizar execute o comando abaixo no powershell para que possamos identificar o UniqueID do volume.

get-disk | fl number, FriendlyName, TotalSize, uniqueid

Verifique que o UniqueID do disco é 6589CFC0000002CC3CEF9E82AD23AB02 que bate com o mesmo do storage.

Isso ajuda a identificar o disco em casos futuros de manutenção ou extensão do disco.

Com isso finalizamos os procedimentos para configuração do multipath em um volume no Windows. Lembrando que se for um ambiente em cluster basta adicionar os IPs dos nós no Initiators Groups do TrueNAS e realizar os passos descritos nesse post.