Conectar-se a volumes Elastic SAN - Linux

Este artigo explica como se conectar a um volume SAN (Elastic Storage Area Network, rede de armazenamento de dados) elástica a partir de um cliente Linux individual. Para obter detalhes sobre como conectar-se a partir de um cliente Windows, consulte Conectar-se a volumes SAN elásticos - Windows.

Neste artigo, você adicionará o ponto de extremidade do serviço de armazenamento à sub-rede de uma rede virtual do Azure e, em seguida, configurará seu grupo de volumes para permitir conexões de sua sub-rede. Por fim, você configurará o ambiente do cliente para se conectar a um volume SAN elástico e estabelecer uma conexão.

Você deve usar um gerenciador de cluster ao conectar um volume SAN elástico individual a vários clientes. Para obter detalhes, consulte Usar aplicativos clusterizados no Azure Elastic SAN.

Pré-requisitos

Ligar a volumes

Configurar o ambiente do cliente

Ativar iniciador iSCSI

Para criar conexões iSCSI a partir de um cliente Linux, instale o pacote do iniciador iSCSI. O comando exato pode variar dependendo da sua distribuição, e você deve consultar a documentação deles, se necessário.

Como exemplo, com o Ubuntu você usaria sudo apt install open-iscsi, com o SUSE Linux Enterprise Server (SLES) você usaria sudo zypper install open-iscsi e com o Red Hat Enterprise Linux (RHEL) você usaria sudo yum install iscsi-initiator-utils.

Instalar Multipath I/O

Para obter IOPS e taxa de transferência mais altas para um volume e atingir seus limites máximos, você precisa criar várias sessões do iniciador iSCSI para o volume de destino com base nos recursos multi-threaded e nos requisitos de desempenho do seu aplicativo. Você precisa de E/S Multipath para agregar esses vários caminhos em um único dispositivo e melhorar o desempenho distribuindo de forma ideal a E/S em todos os caminhos disponíveis com base em uma política de balanceamento de carga.

Instale o pacote Multipath I/O para sua distribuição Linux. A instalação irá variar de acordo com a sua distribuição, e você deve consultar a documentação deles. Como exemplo, no Ubuntu o comando seria sudo apt install multipath-tools, para SLES o comando seria sudo zypper install multipath-tools e para RHEL o comando seria sudo yum install device-mapper-multipath.

Depois de instalar o pacote, verifique se /etc/multipath.conf existe. Se /etc/multipath.conf não existir, crie um arquivo vazio e use as configurações no exemplo a seguir para uma configuração geral. Como exemplo, mpathconf --enable criará /etc/multipath.conf no RHEL.

Você precisará fazer algumas modificações no /etc/multipath.conf. Você precisará adicionar a seção de dispositivos no exemplo a seguir, e a seção de padrões no exemplo a seguir define alguns padrões que são geralmente aplicáveis. Se você precisar fazer outras configurações específicas, como excluir volumes da topologia de vários caminhos, consulte a página de manual de multipath.conf.

defaults {
    user_friendly_names yes		# To create ‘mpathn’ names for multipath devices
    path_grouping_policy multibus	# To place all the paths in one priority group
    path_selector "round-robin 0"	# To use round robin algorithm to determine path for next I/O operation
    failback immediate			# For immediate failback to highest priority path group with active paths
    no_path_retry 1			# To disable I/O queueing after retrying once when all paths are down
}
devices {
  device {
    vendor "MSFT"
    product "Virtual HD"
  }
}

Depois de criar ou modificar o arquivo, reinicie o Multipath I/O. No Ubuntu, o comando é sudo systemctl restart multipath-tools.service e no RHEL e SLES o comando é sudo systemctl restart multipathd.

Anexar volumes ao cliente

Você pode usar o script a seguir para criar suas conexões. Para executá-lo, você precisará dos seguintes parâmetros:

  • subscrição: ID da subscrição
  • g: Nome do Grupo de Recursos
  • e: Nome da SAN elástica
  • v: Nome do Grupo de Volume
  • n <vol1, vol2, ...>: Nomes dos volumes 1 e 2 e outros nomes de volume que você pode precisar, separados por vírgulas
  • s: Número de sessões para cada volume (definido como 32 por padrão)

Copie o script daqui e salve-o como um arquivo .py, por exemplo, connect.py. Em seguida, execute-o com os parâmetros necessários. A seguir está um exemplo de como você executaria o script:

./connect.py --subscription <subid> -g <rgname> -e <esanname> -v <vgname> -n <vol1, vol2> -s 32

Você pode verificar o número de sessões usando sudo multipath -ll

Número de sessões

Você precisa usar 32 sessões para cada volume de destino para atingir seus limites máximos de IOPS e/ou taxa de transferência.

Próximos passos

Configurar a rede SAN elástica