O balanceador de carga distribui solicitações de serviço de entrada entre vários servidores de forma que a distribuição de carga seja transparente para os usuários. O balanceamento de carga ajuda a obter o melhor uso dos recursos, maximizando a taxa de transferência, minimizando o tempo de resposta e evitando a sobrecarga.
O balanceador de carga do NSX oferece suporte a dois mecanismos de balanceamento de carga. O balanceador de carga de camada 4 é baseado em pacote e fornece processamento rápido de caminhos. O balanceador de carga de camada 7 é baseado em soquete e oferece suporte para estratégias avançadas de gerenciamento de tráfego e mitigação de DDOS para serviços de back-end.
O balanceamento de carga para um edge gateway do NSX Data Center for vSphere é configurado na interface externa porque esse edge gateway equilibra a carga do tráfego de entrada proveniente da rede externa. Ao configurar servidores virtuais para balanceamento de carga, especifique um dos endereços IP disponíveis no VDC da organização.
Estratégias e conceitos de balanceamento de carga
Uma estratégia de balanceamento de carga baseada em pacote é implementada na camada TCP e UDP. O balanceamento de carga baseado em pacote não interrompe a conexão nem armazena em buffer a solicitação inteira. Em vez disso, depois de manipular o pacote, ele o envia diretamente ao servidor selecionado. As sessões TCP e UDP são mantidas no balanceador de carga, para que os pacotes de uma única sessão sejam direcionados para o mesmo servidor. Você pode selecionar a opção Aceleração Habilitada tanto na configuração global quanto na configuração de servidor virtual relevante para habilitar o balanceamento de carga baseado em pacote.
Uma estratégia de balanceamento de carga baseada em soquete é implementada sobre a interface do soquete. Duas conexões são estabelecidas para uma única solicitação: uma voltada para o cliente e outra voltada para o servidor. A conexão voltada para o servidor é estabelecida após a seleção do servidor. Para a implantação baseada em soquete HTTP, a solicitação inteira é recebida antes do envio ao servidor selecionado com a manipulação L7 opcional. Para uma implementação baseada em soquetes HTTPS, as informações de autenticação são trocadas na conexão voltada para o cliente ou na conexão voltada para o servidor. O balanceamento de carga baseado em soquete é o modo padrão para servidores virtuais TCP, HTTP e HTTPS.
Os principais conceitos do balanceador de carga do NSX são o servidor virtual, o pool de servidores, o membro do pool de servidores e o monitor de serviços.
- Servidor virtual
- Resumo de um serviço de aplicativo, representado por uma combinação exclusiva de IP, porta, protocolo e perfil de aplicativo, como TCP ou UDP.
- Pool de servidores
- Grupo de servidores back-end.
- Membro do pool de servidores
- Representa o servidor back-end como membro em um pool.
- Monitor de serviços
- Define como testar o status de integridade de um servidor back-end.
- Perfil de Aplicativo
- Representa a configuração de TCP, UDP, persistência e certificado para um determinado aplicativo.
Visão geral da configuração
Comece definindo opções globais para o balanceador de carga. Em seguida, crie um pool de servidores que consista em membros do servidor back-end e associe um monitor de serviços a esse pool para gerenciar e compartilhar os servidores back-end de forma eficiente.
Em seguida, crie um perfil de aplicativo para definir o comportamento do aplicativo comum em um balanceador de carga, como SSL do cliente, SSL do servidor, x-forwarded-for ou persistência. Persistência envia solicitações subsequentes com características semelhantes, como IP ou o cookie de origem, que devem ser distribuídas para o mesmo membro do pool, sem executar o algoritmo de balanceamento de carga. O perfil do aplicativo pode ser reutilizado em servidores virtuais.
Em seguida, crie uma regra de aplicativo opcional para definir as configurações específicas do aplicativo para manipulação de tráfego, como corresponder uma determinada URL ou um nome de host, para que solicitações diferentes possam ser manipuladas por pools diferentes. Em seguida, você cria um monitor de serviços específico para o seu aplicativo ou pode usar um monitor de serviços existente se ele atender às suas necessidades.
Opcionalmente, você pode criar uma regra de aplicativo para oferecer suporte à funcionalidade avançada de servidores virtuais L7. Alguns casos de uso para regras de aplicativo incluem comutação de conteúdo, manipulação de cabeçalho, regras de segurança e proteção DOS.
Por último, crie um servidor virtual que conecte seu pool de servidores, o perfil de aplicativo e qualquer regra de aplicativo potencial.
Quando o servidor virtual recebe uma solicitação, o algoritmo de balanceamento de carga considera a configuração do membro do pool e o status do tempo de execução. Em seguida, o algoritmo calcula o pool apropriado para distribuir o tráfego que inclui um ou mais membros. A configuração de membros do pool inclui definições como peso, conexão máxima e status da condição. O status de tempo de execução inclui as informações atuais de status de resposta, tempo de resposta e status da verificação de integridade. Os métodos de cálculo podem ser round-robin, round-robin ponderado, menor conexão, hash de IP de origem, menores conexões ponderadas, URL, URI ou cabeçalho HTTP.
Cada pool é monitorado pelo monitor de serviços associado. Quando o balanceador de carga detecta um problema com um membro do pool, ele é marcado como DOWN. Somente o servidor no estado UP é selecionado ao escolher um membro do pool de servidores. Se o pool de servidores não estiver configurado com um monitor de serviços, todos os membros do pool serão considerados UP.