O Gateway Load Balancer (GWLB) realiza verificações de integridade nos servidores de backend para monitorar a disponibilidade deles. Se um servidor de backend falhar em uma verificação de integridade, o GWLB deixa de encaminhar novas solicitações a ele e as distribui para outros servidores íntegros. Quando o servidor se recupera, o GWLB retoma automaticamente o encaminhamento de tráfego para ele.
Estados da verificação de integridade
Os servidores de backend podem estar nos seguintes estados de verificação de integridade.
|
Estado |
Descrição |
|
Inicializando |
Uma instância do GWLB foi configurada para verificações de integridade e está inicializando a lista de servidores de backend. |
|
Íntegro |
O servidor de backend está funcionando conforme o esperado. |
|
Não íntegro |
O servidor de backend falhou na verificação de integridade ou não respondeu. |
|
Não utilizado |
O servidor de backend não está em uso. |
|
Desativado |
As verificações de integridade estão desativadas. |
Como funciona
Durante uma verificação de integridade, o GWLB não encapsula os pacotes de solicitação com o protocolo Geneve.
Verificação de integridade TCP
O GWLB usa sondas TCP personalizadas para verificar o status dos servidores de backend de maneira eficiente.
O processo de verificação de integridade TCP funciona da seguinte forma:
-
Com base na configuração do listener, o GWLB envia um pacote TCP SYN para o IP privado e a porta de verificação de integridade do servidor de backend.
-
Se a porta do servidor de backend estiver escutando, o servidor responde com um pacote SYN+ACK.
-
Se o GWLB não receber um pacote SYN+ACK do servidor de backend dentro do tempo limite de resposta especificado, a verificação de integridade falha.
-
Se o GWLB receber um pacote SYN+ACK do servidor de backend dentro do tempo limite de resposta, a verificação de integridade é bem-sucedida. Em seguida, o GWLB envia um pacote RST para encerrar a conexão TCP.
Verificação de integridade HTTP
As verificações de integridade HTTP enviam solicitações GET para obter informações de status dos servidores de backend.
O processo de verificação de integridade HTTP segue as seguintes etapas:
-
Com base na configuração do listener, o GWLB envia uma solicitação HTTP GET para o IP privado, a porta de verificação de integridade e o caminho de verificação do servidor de backend. A solicitação inclui o nome de domínio configurado.
-
O servidor de backend retorna um código de status HTTP com base em seu estado operacional.
-
Se o GWLB não receber uma resposta do servidor de backend dentro do tempo limite de resposta especificado, a verificação de integridade falha.
-
Se o GWLB receber uma resposta dentro do tempo limite, ele compara o código de status retornado com o código esperado. Se forem iguais, a verificação de integridade é bem-sucedida. Caso contrário, a verificação falha.
Janela de tempo da verificação de integridade
Para evitar failovers frequentes causados por falhas transitórias, o GWLB altera o estado de integridade de um servidor somente após ele passar ou falhar consecutivamente em um número especificado de verificações. A janela de tempo da verificação de integridade é determinada por três fatores:
-
Intervalo de verificação de integridade: o intervalo entre as verificações.
-
Tempo limite de resposta: o tempo máximo de espera por uma resposta.
-
Limiar de verificação de integridade: o número de verificações consecutivas necessárias para alterar o estado de integridade de um servidor.
Use as seguintes fórmulas para calcular a janela de tempo da verificação de integridade:
-
Janela de tempo de falha = tempo limite de resposta × limiar de não integridade + intervalo de verificação de integridade × (limiar de não integridade - 1)

-
Janela de tempo de sucesso = (tempo de resposta de uma verificação bem-sucedida × limiar de integridade) + intervalo de verificação de integridade × (limiar de integridade - 1)
nullO tempo de resposta de uma verificação de integridade bem-sucedida corresponde à duração entre o envio da solicitação de verificação e o recebimento da resposta. Em uma verificação TCP, esse tempo é desprezível porque a sonda apenas verifica se a porta está ativa. Em uma verificação HTTP, esse tempo depende do desempenho e da carga do servidor de aplicação, mas normalmente fica na ordem de segundos.

O estado da verificação de integridade afeta o encaminhamento de solicitações da seguinte forma:
-
Se um servidor de backend falhar em uma verificação de integridade, o GWLB deixa de distribuir novas solicitações a ele. Essa alteração não afeta o acesso do cliente.
-
Se um servidor de backend passar em uma verificação de integridade, o GWLB volta a distribuir novas solicitações a ele. O acesso do cliente prossegue normalmente.
-
Se um servidor de backend apresentar um problema, mas ainda não tiver atingido o limiar de não integridade, o GWLB continua enviando solicitações a ele, o que pode causar falhas nessas solicitações. Por padrão, o limiar de não integridade é de três falhas consecutivas.
Exemplo: tempo limite de resposta e intervalo de verificação de integridade
Considere as seguintes configurações de verificação de integridade:
-
response timeout: 5 seconds
-
health check interval: 2 seconds
-
healthy threshold: 3
-
unhealthy threshold: 3
Janela de tempo de falha = tempo limite de resposta × limiar de não integridade + intervalo de verificação de integridade × (limiar de não integridade - 1). Neste exemplo, a janela de tempo é de 19 segundos: 5 × 3 + 2 × (3 - 1) = 19 segundos. Após 19 segundos de verificações com falha, o estado do servidor muda para não íntegro.
A figura a seguir ilustra o processo de transição de um servidor do estado íntegro para o estado não íntegro.

Janela de tempo de sucesso = (tempo de resposta de uma verificação bem-sucedida × limiar de integridade) + intervalo de verificação de integridade × (limiar de integridade - 1). Considerando que o servidor leva 1 segundo para responder, a janela de tempo é de 7 segundos: (1 × 3) + 2 × (3 - 1) = 7 segundos. Após 7 segundos de verificações bem-sucedidas, o estado do servidor muda para íntegro.
A imagem abaixo mostra o processo de transição de um servidor do estado não íntegro para o estado íntegro, considerando que o servidor leva 1 segundo para responder às solicitações.

Nome de domínio para verificações de integridade HTTP
A especificação de um nome de domínio para verificações de integridade HTTP é opcional. No entanto, alguns servidores de backend validam o cabeçalho host das solicitações recebidas. Se você especificar um nome de domínio, o GWLB o inclui no cabeçalho host da sonda de verificação de integridade. Se você não especificar um nome de domínio e selecionar Use private IP of the backend server, o GWLB usa o endereço IP privado e a porta do servidor como valor do cabeçalho host. O servidor de backend pode rejeitar essa solicitação se não reconhecer o valor, causando a falha da verificação de integridade.
Portanto, se o servidor de backend validar o cabeçalho host, configure um nome de domínio para garantir o funcionamento correto das verificações de integridade.