Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Este artigo explica alguns métodos básicos para equilibrar o tráfego do cliente para todos os pontos de montagem no seu Cache HPC do Azure.
Cada cache HPC tem pelo menos três endereços IP diferentes, e caches com valores de taxa de transferência maiores podem ter até 12. É importante usar todos os endereços IP para obter todos os benefícios do Cache HPC do Azure.
Existem várias opções para balancear a carga das montagens do cliente:
- Escolha manualmente um IP de montagem diferente para cada cliente
- Inclua a rotação do endereço IP nos scripts de montagem do cliente
- Configurar um sistema DNS para rotear automaticamente as solicitações do cliente entre todos os endereços disponíveis (DNS round-robin)
O sistema de balanceamento de carga certo para você depende da complexidade do fluxo de trabalho, do número de endereços IP no cache e de um grande número de outros fatores. Consulte seu consultor do Azure se precisar de ajuda para decidir qual abordagem é melhor para você.
Atribuir endereços IP manualmente
Os endereços IP de montagem do cache são mostrados no cache Visão Geral e Instruções de montagem páginas no portal do Azure e na mensagem de sucesso que é impressa quando você cria um cache com a CLI do Azure ou o PowerShell.
Você pode usar a página de instruções de montagem para gerar um comando de montagem personalizado para cada cliente. Selecione todos os valores de endereços de montagem do cache ao criar vários comandos.
Leia o Montar a Cache HPC do Azure para obter detalhes.
Usar balanceamento de carga com script
Há várias maneiras de girar programaticamente montagens de cliente entre os endereços IP disponíveis. Eis dois exemplos.
Exemplo de cksum de script de comando Mount
Este exemplo de comando mount usa a função hash cksum e o nome do host do cliente para distribuir automaticamente as conexões do cliente entre todos os endereços IP disponíveis no cache HPC. Se todas as máquinas cliente tiverem nomes de host exclusivos, você poderá executar esse comando em cada cliente para garantir que todos os pontos de montagem disponíveis sejam usados.
mount -o hard,proto=tcp,mountproto=tcp,retry=30 $(X=(10.0.0.{1..3});echo ${X[$(($(hostname|cksum|cut -f 1 -d ' ')%3))]}):/${NAMESPACE} /mnt
Para usar este exemplo em seu fluxo de trabalho, personalize estes termos:
Na expressão
X=, use uma lista separada por espaço de todos os endereços de montagem do cache, em ordem ordenada.A expressão
(X=(10.0.0.{7..9})define a variável X como este conjunto de endereços de montagem: {10.0.0.7, 10.0.0.8, 10.0.0.9}. Use o endereço IP base do cache e os endereços exatos mostrados na página Visão geral do cache. Se os endereços não forem consecutivos, liste-os todos em ordem numérica.No
%3termo, use o número real de endereços IP de montagem que o seu cache tem (normalmente 3, 6, 9 ou 12).Por exemplo, use
%9se o cache expõe nove endereços IP de montagem para clientes.Para a expressão
${NAMESPACE}, use o caminho do namespace de destino de armazenamento que o cliente acessará.Você pode usar uma variável definida (NAMESPACE no exemplo) ou passar o valor literal em vez disso.
O exemplo de comando no final desta seção usa um valor literal para o caminho do namespace,
/blob-target-1.Se você quiser usar um caminho local personalizado em suas máquinas cliente, altere o valor
/mntpara o caminho desejado.
Aqui está um exemplo de um comando de montagem de cliente preenchido:
mount -o hard,proto=tcp,mountproto=tcp,retry=30 $(X=(10.7.0.{1..3});echo ${X[$(($(hostname|cksum|cut -f 1 -d ' ')%3))]}):/blob-target-1 /hpc-cache/blob1
Exemplo de função Round Robin
Este exemplo de código usa endereços IP de cliente como um elemento aleatório para distribuir clientes para todos os endereços IP disponíveis do cache HPC.
function mount_round_robin() {
# to ensure the clients are spread out somewhat evenly the default
# mount point is based on this client's IP octet4 % number of HPC cache mount IPs.
declare -a MOUNT_IPS="($(echo ${NFS_IP_CSV} | sed "s/,/ /g"))"
HASH=$(hostname | cksum | cut -f 1 -d ' ')
DEFAULT_MOUNT_INDEX=$((${HASH} % ${#MOUNT_IPS[@]}))
ROUND_ROBIN_IP=${MOUNT_IPS[${DEFAULT_MOUNT_INDEX}]}
DEFAULT_MOUNT_POINT="${BASE_DIR}/default"
# no need to write again if it is already there
if ! grep --quiet "${DEFAULT_MOUNT_POINT}" /etc/fstab; then
echo "${ROUND_ROBIN_IP}:${NFS_PATH} ${DEFAULT_MOUNT_POINT} nfs hard,proto=tcp,mountproto=tcp,retry=30 0 0" >> /etc/fstab
mkdir -p "${DEFAULT_MOUNT_POINT}"
chown nfsnobody:nfsnobody "${DEFAULT_MOUNT_POINT}"
fi
if ! grep -qs "${DEFAULT_MOUNT_POINT} " /proc/mounts; then
retrycmd_if_failure 12 20 mount "${DEFAULT_MOUNT_POINT}" || exit 1
fi
}
Usar balanceamento de carga DNS
Esta seção explica os conceitos básicos de configuração de um sistema DNS para distribuir conexões de cliente para todos os pontos de montagem em seu Cache HPC do Azure. Esse método não leva em conta a quantidade de tráfego que cada cliente gera, mas garante que os clientes estejam distribuídos uniformemente por todas as interfaces do cache, em vez de apenas usar uma ou duas.
Este documento não inclui instruções para configurar e gerenciar um servidor DNS para seus clientes no ambiente do Azure.
O DNS não é necessário para montar clientes usando o protocolo NFS e endereços IP. O DNS é necessário se você quiser usar nomes de domínio em vez de endereços IP para acessar sistemas NAS de hardware ou se seu fluxo de trabalho incluir determinadas configurações avançadas de protocolo.
O sistema DNS que você usa para distribuir endereços aos clientes não precisa ser acessado pelo cache HPC. Em algumas situações, poderá querer usar um sistema DNS personalizado para o cache em si, mas configurar esse sistema é muito mais complicado do que configurar este tipo de sistema de round-robin de cliente. Você deve consultar o suporte do Azure se estiver pensando em alterar o de servidor DNS do Cache HPC do para um sistema personalizado.
Configurar a distribuição em round-robin para pontos de montagem de cache
Um sistema de DNS round-robin (RRDNS) roteia automaticamente as solicitações do cliente entre vários endereços.
Para configurar esse sistema, você precisa personalizar o arquivo de configuração do servidor DNS para que, quando ele receber solicitações de montagem para o endereço de domínio principal do Cache HPC, ele atribua o tráfego entre todos os pontos de montagem do sistema de Cache HPC. Os clientes montam o cache HPC usando seu nome de domínio como argumento de servidor e são roteados para o próximo IP de montagem automaticamente.
Há duas etapas principais para configurar o RRDNS:
Modifique o arquivo
named.confdo servidor DNS para definir a ordem cíclica das consultas ao cache HPC. Essa opção faz com que o servidor percorra todos os valores de IP disponíveis. Adicione uma instrução como a seguinte:options { rrset-order { class IN A name "hpccache.contoso.com" order cyclic; }; };Configure registos A e registos de ponteiro (PTR) para cada endereço IP disponível, conforme o exemplo a seguir.
Esses comandos
nsupdatefornecem um exemplo de configuração correta do DNS para um cache HPC com o nome de domínio hpccache.contoso.com e três endereços de montagem (10.0.0.10, 10.0.0.11 e 10.0.0.12):update add hpccache.contoso.com. 86400 A 10.0.0.10 update add hpccache.contoso.com. 86400 A 10.0.0.11 update add hpccache.contoso.com. 86400 A 10.0.0.12 update add client-IP-10.contoso.com. 86400 A 10.0.0.10 update add client-IP-11.contoso.com. 86400 A 10.0.0.11 update add client-IP-12.contoso.com. 86400 A 10.0.0.12 update add 10.0.0.10.in-addr.arpa. 86400 PTR client-IP-10.contoso.com update add 11.0.0.10.in-addr.arpa. 86400 PTR client-IP-11.contoso.com update add 12.0.0.10.in-addr.arpa. 86400 PTR client-IP-12.contoso.comEsses comandos criam um registro A para cada um dos endereços de montagem do Cache HPC e também configuram registros de ponteiro para oferecer suporte a verificações reversas de DNS adequadamente.
O diagrama abaixo mostra a estrutura básica desta configuração.
Depois que o sistema RRDNS estiver configurado, instrua as máquinas clientes a utilizá-lo para resolver o endereço do cache HPC em seus comandos de "mount".
Próximos passos
- Para obter ajuda a gerir a carga dos clientes, entre em contato com o suporte.
- Para mover dados para os destinos de armazenamento do cache, leia Popular o novo armazenamento Blob do Azure.