Antes de seguir as etapas neste capítulo, consulte o Planejando para Dispatcher. Este capítulo explica como criar uma configuração básica para o componente Dispatcher do Balanceador de Carga.
Antes de iniciar as etapas de configuração nesta tabela, assegure-se de que a máquina do Dispatcher e todas as máquinas servidor estejam conectadas à rede, tenham endereços IP válidos e estejam aptas a executar ping entre si.
Tarefa | Descrição | Informações relacionadas |
---|---|---|
Configure a máquina Dispatcher. |
Defina a configuração do balanceamento de carga. |
Configurando a Máquina do Dispatcher |
Configure as máquinas a ter a carga balanceada. | Defina o alias do dispositivo loopback, verifique uma rota extra e exclua qualquer rota extra. | Configurando Máquinas Servidor para Balanceamento de Carga |
Existem quatro métodos básicos de configuração do Dispatcher:
Este é o meio mais direto de configurar o Dispatcher. Os valores de parâmetro de comando devem ser inseridos em caracteres no idioma inglês. As únicas exceções são nomes de host (usados em comandos de cluster, servidor e alta disponibilidade) e nomes de arquivo (usados em comandos de arquivo).
Para iniciar o Dispatcher a partir da linha de comandos:
É possível usar uma versão minimizada dos parâmetros do comando dscontrol digitando as letras exclusivas dos parâmetros. Por exemplo, para obter ajuda sobre o comando file save, você poderá digitar dscontrol he f em vez de dscontrol help file.
Para inicializar a interface da linha de comandos: emita dscontrol para receber um prompt de comandos dscontrol.
Para terminar a interface da linha de comandos: emita exit ou quit.
É possível inserir comandos para configurar o Dispatcher em um arquivo de script de configuração e executá-los juntos. Consulte Arquivos de Configuração do Balanceador de Carga de Amostra.
dscontrol file appendload myscript
dscontrol file newload myscript
Para salvar a configuração atual em um arquivo de script (por exemplo, savescript), execute o seguinte comando:
dscontrol file save savescript
Esse comando salvará o arquivo script de configuração no seguinte diretório:
Para obter instruções gerais e um exemplo da Graphical User Interface (GUI), consulte Figura 38.
Para iniciar a GUI, siga estas etapas:
dsserver
Para configurar o componente Dispatcher a partir da GUI, é necessário primeiro selecionar Dispatcher na estrutura em árvore. Você pode iniciar o executor e o gerenciador após se conectar a um Host. Também é possível criar clusters que contêm portas e servidores e iniciar orientadores para o gerenciador.
A GUI pode ser usada para fazer qualquer coisa que você faria com o comando dscontrol. Por exemplo, para definir um cluster que usa a linha de comandos, você inseriria o comando dscontrol cluster add cluster. Para definir um cluster a partir da GUI, clique com o botão direito do mouse no Executor, em seguida, no menu pop-up, clique com o botão esquerdo em Incluir Cluster. Insira o endereço do cluster na janela pop-up, em seguida, clique em OK.
Os arquivos de configuração do Dispatcher pré-existente podem ser carregados usando as opções Carregar Nova Configuração(para substituir completamente a configuração atual) e Anexar na Configuração Atual (para atualizar a configuração atual) apresentadas no menu pop-up Host. Você deverá salvar a configuração do Dispatcher em um arquivo usando periodicamente a opção Salvar Arquivo de Configuração Como também apresentada no menu pop-up Host. O menu Arquivo localizado na parte superior da GUI permitirá salvar as conexões do host atual em um arquivo ou restaurar conexões em arquivos existentes por meio de todos os componentes do Balanceador de Carga.
Os comandos de configuração também podem ser executados remotamente. Para obter informações adicionais, consulte Remote Method Invocation (RMI).
Para executar um comando a partir da GUI: realce o nó Host na árvore da GUI e selecione Enviar comando.... no menu pop-up Host. No campo de entrada do comando, digite o comando que deseja executar, por exemplo: executor report. Os resultados e o histórico dos comandos são executados na sessão atual e são exibidos na janela fornecida.
É possível acessar a Ajuda clicando no ícone ponto de interrogação no canto superior direito da janela do Balanceador de Carga.
Para obter informações adicionais sobre como usar a GUI, consulte Apêndice A. GUI: Instruções Gerais.
Se estiver utilizando o assistente para configuração, siga estas etapas:
dsserver
O assistente guia você passo a passo pelo processo de criação de uma configuração básica para o componente Dispatcher. Serão feitas perguntas a você sobre sua rede. Você será guiado por meio da configuração de um cluster para que o Dispatcher faça o balanceamento de carga do tráfego entre um grupo de servidores.
Antes de configurar a máquina do Dispatcher, é necessário ser o usuário root (para sistemas AIX, HP-UX, Linux ou Solaris) ou o Administrador nos sistemas Windows.
Em todas as plataformas suportadas, o Balanceador de Carga pode ter um instalado em execução. Instalação significa que o Balanceador de Carga pode residir fisicamente em uma máquina servidor com balanceamento de carga.
Para a máquina do Dispatcher, ao usar o método de encaminhamento mac, você vai precisar de pelo menos dois endereços IP válidos. Para o método de encaminhamento cbr ou nat, você vai precisar de pelo menos três endereços IP válidos:
Esse endereço IP é o principal da máquina do Dispatcher e é chamado de nonforwarding address (NFA). Ele é por padrão o mesmo endereço que o retornado pelo comando hostname. Use esse endereço para se conectar à máquina para propósitos administrativos, como fazer uma configuração remota usando Telnet ou acessando o subagente SNMP. Se a máquina do Dispatcher já puder executar ping em outras máquinas na rede, você não precisará fazer nada para configurar o nonforwarding address.
Um endereço de cluster é um endereço associado ao nome de um host (como www.yourcompany.com). Esse endereço IP é usado pelo cliente para se conectar aos servidores em um cluster. Esse é o endereço que tem a carga balanceada pelo Dispatcher.
O Dispatcher usa o endereço de retorno como seu endereço de origem ao fazer o balanceamento de carga da solicitação do cliente para o servidor. Isso garante que o servidor retornará o pacote para a máquina do Dispatcher em vez de enviar o pacote diretamente para o cliente. (O Dispatcher encaminhará o pacote IP para o cliente.) Você deve especificar o valor do endereço de retorno ao incluir o servidor. Não é possível modificar o endereço de retorno, a menos que você remova o servidor e o inclua novamente.
O número de conexões que o Balanceador de Carga pode manter ativas com o servidor de back-end é limitado pelo número de endereços de retorno que são definidos. O Load Balancer usa portas que são baseadas apenas no endereço de retorno, e não na combinação de endereço de retorno e do servidor. Quando todas as portas disponíveis estão em uso, conexões adicionais falham. Em um ambiente ocupado, use diversos endereços de retorno para evitar a falta de portas disponíveis.
Apenas sistemas Solaris:
Por exemplo, para alterar a configuração padrão, edite o arquivo /opt/ibm/edge/lb/servers/ibmlb.conf da seguinte maneira:
Por exemplo, se você planejar usar dois adaptadores Ethernet de 100Mbps, é necessário uma única linha no arquivo ibmlb.conf especificando o dispositivo eri.
Se você planejar usar um adaptador Ethernet de 10Mbps e um adaptador Ethernet de 100Mbps, precisará especificar duas linhas no arquivo ibmlb.conf: uma linha especificando o dispositivo le e uma linha especificando o dispositivo eri.
ifconfig -aSe a seguinte saída resultar em:
lo0: flags=2001000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4,VIRTUAL> mtu 8232 index 1 inet 127.0.0.1 netmask ff000000 eri0: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2 inet 9.42.93.208 netmask fffffc00 broadcast 9.42.95.255 ether 0:3:ba:2d:24:45Em seguida, você editará o arquivo ibmlb.conf da seguinte maneira:
eri -1 0 ibmlb
Por exemplo, se os clusters X e Y estiverem configurados para uso pelo componente CBR em qualquer um dos adaptadores listados em ibmlb.conf, os clusters X e Y são desconfigurados quando os comandos dscontrol executor start ou dscontrol executor stop forem emitidos. Esse pode não ser o resultado desejado. Quando os clusters X e Y estiverem configurados no script goAliases, os clusters serão reconfigurados automaticamente depois que o executor do Dispatcher for iniciado ou parado.
Assegure-se de que o encaminhamento de IP não esteja ativado para o protocolo TCP/IP.
O Figura 15 mostra um exemplo de configuração do Dispatcher com um único cluster, duas portas e três servidores.
Para ajudar com os comandos usados neste procedimento, consulte Referência de Comando para Dispatcher e CBR.
Para obter um arquivo de configuração de amostra, consulte o Arquivos de Configuração do Balanceador de Carga de Amostra.
Sistemas AIX, HP-UX, Linux ou Solaris: Para iniciar a função de servidor, digite dsserver.
Sistemas Windows: A função de servidor é iniciada automaticamente como um serviço.
Para iniciar a função do executor, insira o comando dscontrol executor start. Você também poderá alterar várias configurações do executor neste momento. Consulte Referência de Comando para Dispatcher e CBR.
O nonforwarding address é usado para se conectar à máquina para propósitos administrativos, como usar Telnet ou SMTP para essa máquina. Por padrão, esse endereço é o nome do host.
Para definir o nonforwarding address, insira o comando dscontrol executor set nfa IP_address ou edite o arquivo de configuração de amostra. O IP_address é o nome simbólico ou o endereço IP.
O Dispatcher fará o balanceamento dos pedidos enviados para o endereço do cluster para os servidores configurados nas portas para esse cluster.
O cluster é o nome simbólico, o endereço decimal pontuado ou o endereço especial 0.0.0.0 que define um cluster curinga. Para definir um cluster, emita o comando dscontrol cluster add. Para configurar opções do cluster, emita o comando dscontrol cluster set ou é possível usar a GUI para emitir comandos. Os clusters curinga podem ser usados para corresponder múltiplos endereços IP para pacotes recebidos a ter a carga balanceada. Consulte Usar Cluster Curinga para Combinar Configurações do Servidor, Usar Cluster Curinga para Balanceamento de Carga de Firewalls e Usando Cluster Curinga com Caching Proxy para Proxy Transparente para obter mais informações.
Quando o cluster tiver sido definido, você deverá configurar normalmente o endereço do cluster em uma das placas da interface de rede da máquina do Dispatcher. Para fazer isso, emita o comando dscontrol executor configure cluster_address. Ele procurará um adaptador com um endereço existente que pertence à mesma rede que a do endereço do cluster. Em seguida, ele emitirá o comando de configuração do adaptador do sistema operacional para o endereço do cluster, usando o adaptador localizado e a máscara de rede para o endereço existente localizado nesse adaptador. Por exemplo:
dscontrol executor configure 204.67.172.72
Circunstâncias nas quais você não quer configurar o endereço do cluster incluem clusters incluídos em um servidor de espera no modo de alta disponibilidade ou clusters incluídos em um dispatcher de longa distância agindo como servidor remoto. Você também não precisa executar o comando executor configure, se no modo independente, você usar o script goIdle de amostra. Para obter informações sobre o script goIdle, consulte Utilizando Scripts.
Em casos raros você poderá ter um endereço do cluster que não corresponde a nenhuma sub-rede de endereços existentes. Neste caso, use a segunda forma do comando de configuração do executor e forneça explicitamente o nome da interface e a máscara de rede. Use dscontrol executor configure cluster_address interface_name netmask.
Alguns exemplos incluem:
dscontrol executor configure 204.67.172.72 en0 255.255.0.0 (sistemas AIX) dscontrol executor configure 204.67.172.72 eth0:1 255.255.0.0 (sistemas Linux) dscontrol executor configure 204.67.172.72 eri0 255.255.0.0 (sistemas Solaris) dscontrol executor configure 204.67.172.72 en1 255.255.0.0 (sistemas Windows)
Para usar a segunda forma do comando executor configure em sistemas Windows, você deve determinar o nome da interface a ser usada. Se você tiver apenas uma placa de Ethernet em sua máquina, o nome da interface será en0. Se você tiver apenas uma placa de Token Ring, o nome da interface será tr0. Se você tiver diversas placas de qualquer tipo, será preciso determinar o mapeamento das placas. Use as seguintes etapas:
A saída será exibida na tela. Para determinar o nome da interface a ser usado para a configuração do Load Balancer, procure o endereço IP da sua máquina do Load Balancer nas listas que seguem o Número de Registros NIC.
Os endereços IP da máquina do Load Balancer serão listados como: ia->ia_addr. O nome da interface associado será listado como: ifp->if_name.
Os nomes de interface designados pelo comando executor configure são mapeados para nomes de interface listados nesse comando.
Após você obter essas informações de mapeamento, é possível criar um alias na interface de rede para o endereço de cluster.
Nos sistemas Linux ou UNIX, o comando de configuração do executor executa comandos ifconfig.
Ao usar aplicativos do servidor específicos à ligação que se ligam a uma lista de endereços IP que não contêm o IP do servidor, use o comando arp publish, em vez do ifconfig para configurar dinamicamente um endereço IP na máquina do Balanceador de Carga. Por exemplo:
arp -s <cluster> <Balanceador de Carga MAC address> pub
Para definir uma porta, insira o comando dscontrol port addcluster:port, edite o arquivo de configuração de amostra ou use a GUI. Cluster é um nome simbólico ou o endereço IP. Port é o número da porta que você está usando para esse protocolo. Você também poderá alterar várias configurações de porta neste momento. É necessário definir e configurar todos os servidores para uma porta. Consulte Referência de Comando para Dispatcher e CBR.
O número da porta 0 (zero) é usado para especificar uma porta curinga. Esta porta aceitará o tráfego de uma porta que não é destinada a nenhuma das portas definidas no cluster. A porta curinga é usada para configurar regras e servidores para qualquer porta. Essa função também pode ser usada, se você tiver um servidor idêntico e uma configuração de regra para várias portas. Portanto, o tráfego em uma porta pode afetar as decisões de balanceamento de carga para o tráfego em outras portas. Consulte Usar Porta Curinga para Direcionar Tráfego de Porta Não Configurada para obter informações adicionais sobre quando poderá desejar usar uma porta curinga.
Para definir uma máquina servidor com carga balanceada, insira o comando dscontrol server add cluster:port:server, edite o arquivo de configuração de amostra ou use a GUI. Cluster e Server são o nome simbólico ou o endereço IP. Port é o número da porta que você está usando para esse protocolo. É necessário definir mais de um servidor para uma porta em um cluster, para executar o balanceamento de carga.
Servidores específicos à ligação: Se o componente Dispatcher estiver com balanceamento de carga para servidores específicos à ligação, os servidores deverão ser configurados para serem ligados ao endereço do cluster. Como o Dispatcher encaminha os pacotes sem alterar o endereço IP de destino, quando os pacotes acessam o servidor, eles ainda conterão o endereço de cluster como o destino. Se um servidor for configurado para ligar um endereço IP diferente do endereço de cluster, o servidor não poderá aceitar os pedidos destinados para o cluster.
Para determinar se o servidor é específico de ligação, emita o comando netstat -an e procure server:port. Se o servidor não for específico à ligação, o resultado desse comendo será 0.0.0.0:80. Se o servidor for específico à ligação, você verá um endereço, como 192.168.15.103:80.
Instalação de Múltiplos Endereços: Em uma configuração instalada, o endereço da máquina servidor instalada não precisa ser idêntico ao nonforwarding address (NFA). Você poderá usar outro endereço, se a sua máquina tiver sido definida com múltiplos endereços IP. Para o componente Dispatcher, a máquina servidor colocada deve ser definida como colocada usando o comando dscontrol server. Para obter informações adicionais sobre servidores instalados, consulte Usando Servidores Instalados.
Para obter informações adicionais sobre a sintaxe de comando do servidor dscontrol, consulte dscontrol server — configurar servidores.
A função de gerenciador melhora o balanceamento de carga. Para iniciar o gerenciador, insira o comando dscontrol manager start, edite o arquivo de configuração de amostra ou use a GUI.
Os orientadores fornecem ao gerenciador mais informações sobre a habilidade das máquinas servidor com balanceamento de carga para responder a pedidos. Um orientador é específico a um protocolo. Por exemplo, para iniciar o orientador HTTP, emita o seguinte comando:
dscontrol advisor start http portPara obter uma lista de orientadores juntamente com suas portas padrão, consulte Referência de Comando para Dispatcher e CBR. Para obter uma descrição de cada orientador, consulte Lista de Orientadores.
Se você iniciar os orientadores, poderá modificar a proporção da importância fornecida às informações do orientador que está sendo incluído nas decisões de balanceamento de carga. Para configurar as proporções do cluster, emita o comando dscontrol cluster set cluster proportions. Para obter informações adicionais, consulte o Proporção de Importância Fornecida às Informações de Status.
Execute as seguintes etapas, se uma destas condições for verdadeira:
Durante o uso de um método de encaminhamento mac, o Dispatcher só fará o balanceamento de carga em servidores que permitem que o adaptador de loopback seja configurado com um endereço IP adicional, para o qual o servidor backend nunca responderá a solicitações de ARP (protocolo de resolução de endereço). Siga as etapas nesta seção para configurar as máquinas servidor com balanceamento de carga.
Para que as máquinas servidor com balanceamento de carga funcionem, você deve configurar o dispositivo loopback (ou preferivelmente alias) (frequentemente denominado lo0) como o endereço do cluster. Durante o uso do método de encaminhamento mac, o componente Dispatcher não altera o endereço IP de destino no pacote TCP/IP antes de encaminhar o pacote para uma máquina servidor TCP. Configurando ou criando o alias do dispositivo loopback para o endereço do cluster, as máquinas servidor com balanceamento de carga aceitarão um pacote que foi endereçado ao endereço do cluster.
Se você tiver um sistema operacional que suporta a criação do alias da interface de rede (como os sistemas AIX, HP-UX, Linux, Solaris ou Windows), deverá criar o alias do dispositivo loopback para o endereço do cluster. O benefício de usar um sistema operacional que suporta aliases é que você pode configurar as máquinas servidores com carga balanceada para atender vários endereços de cluster.
IMPORTANTE: Para sistemas Linux, consulte Alternativas de Criação de Alias de Loopback do Linux ao Usar Encaminhamento mac do Load Balancer.
Se você tiver um servidor com um sistema operacional que não suporta aliases, deverá configurar o dispositivo loopback para o endereço do cluster.
Use o comando para seu sistema operacional, conforme mostrado em Tabela 2 para configurar ou criar o alias do dispositivo loopback.
AIX, | |
HP-UX |
ifconfig lo0:1 cluster_address up Nota:
Se você usa aplicativos do servidor específicos de conexão que se conectam a uma lista de endereços IP que não contêm o IP do servidor, use o comando arp publish, em vez do ifconfig para configurar dinamicamente um endereço IP na máquina do Balanceador de Carga.
Por exemplo: arp -s cluster_address Load Balancer's_MAC_address pub |
Linux | Escolha um dos seguintes comandos:
|
OS/2 | ifconfig lo cluster_address |
OS/390 | Configurando um alias do loopback no sistema OS/390
|
Solaris |
|
Windows |
|
Em alguns sistemas operacionais, uma rota padrão pode ter sido criada e precisa ser removida.
route print
IMPORTANTE: Quaisquer rotas extras deverão ser ignoradas no Windows 2003. Se forem encontrados problemas com o roteamento após a criação do alias, remova o alias e inclua-o novamente usando uma máscara de rede diferente.
netstat -nr
Exemplo do Windows:
Active Routes: Network Address Netmask Gateway Address Interface Metric 0.0.0.0 0.0.0.0 9.67.128.1 9.67.133.67 1 9.0.0.0 255.0.0.0 9.67.133.158 9.67.133.158 1 9.67.128.0 255.255.248.0 9.67.133.67 9.67.133.67 1 9.67.133.67 255.255.255.255 127.0.0.1 127.0.0.1 1 9.67.133.158 255.255.255.255 127.0.0.1 127.0.0.1 1 9.255.255.255 255.255.255.255 9.67.133.67 9.67.133.67 1 127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1 224.0.0.0 224.0.0.0 9.67.133.158 9.67.133.158 1 224.0.0.0 224.0.0.0 9.67.133.67 9.67.133.67 1 255.255.255.255 255.255.255.255 9.67.133.67 9.67.133.67 1
9.0.0.0 255.0.0.0 9.67.133.158 9.67.133.158 1
Você deve excluir a rota extra. Se o comando para o sistema operacional mostrado em Tabela 3 para excluir a rota extra.
Exemplo: Para excluir a rota extra, conforme mostrado na tabela de exemplo "Active Routes" para a Etapa 2, insira:
route delete 9.0.0.0 9.67.133.158
HP-UX | route delete cluster_address cluster_address |
Windows | route delete network_address
cluster_address (em um prompt MS-DOS)
Nota:
Você deve excluir a rota extra sempre que reinicializar o servidor.
No Windows 2003, não é possível excluir rotas. Quaisquer rotas extras deverão ser ignoradas no Windows 2003. Se forem encontrados problemas com o roteamento após a criação do alias, remova o alias e inclua-o novamente usando uma máscara de rede diferente. |
Usando o exemplo mostrado em Figura 15, e configurando uma máquina servidor que está em execução e os sistemas AIX, o comando será:
route delete -net 204.0.0.0 204.67.172.72
Para verificar se um servidor backend está configurado corretamente, execute as seguintes etapas a partir de uma máquina diferente na mesma sub-rede quando o Balanceador de Carga não estiver em execução e o cluster estiver desconfigurado:
arp -d cluster
ping clusterNão deve haver nenhuma resposta. Se houver uma resposta para o ping, assegure-se de que você não executou ifconfig no endereço do cluster para a interface. Assegure-se de que nenhuma máquina tenha uma entrada ARP publicada no endereço do cluster.
arp -aNa saída do comando, o endereço MAC do seu servidor deverá ser exibido. Emita o comando:
arp -s cluster server_mac_address
arp -d cluster
Algumas versões dos sistemas Linux emitem respostas do ARP para qualquer endereço IP configurado na máquina em qualquer interface presente na máquina. É possível escolher também um endereço IP de origem do ARP para consultas who-has do ARP baseadas em todos os endereços IP presentes na máquina, independentemente das interfaces, nas quais esses endereços estão configurados. Isso faz com que todo o tráfego do cluster seja direcionado para um único servidor de uma maneira indeterminada.
Ao usar o método de encaminhamento Mac do Dispatcher, um mecanismo deve ser implementado para assegurar que o tráfego endereçado para cluster possa ser aceito pelas pilhas dos servidores de back-end, incluindo a máquina padrão com alta disponibilidade, quando ambas, a alta disponibilidade e a disposição, estão em uso.
Na maioria dos casos, você deve criar um alias para o endereço do cluster no loopback; portanto, servidores de back-end devem ter o cluster com alias no loopback, e se você usar a alta disponibilidade e a disposição, os servidores de balanceamento de carga em espera devem ter clusters com alias no loopback.
Para garantir que sistemas Linux não publiquem endereços no loopback, é possível usar qualquer uma das quatro soluções a seguir para tornar os sistemas Linux compatíveis com o encaminhamento mac do Dispatcher.
# sysctl -w net.ipv4.conf.all.hidden=1 net.ipv4.conf.lo.hidden=1Em seguida, os clusters podem estar com alias de maneira normal, como:
# ifconfig lo:1 $CLUSTER_ADDRESS netmask 255.255.255.255 up
# sysctl -w net.ipv4.conf.all.arp_ignore=3 net.ipv4.conf.all.arp_announce=2Em seguida, os clusters devem estar com alias com o seguinte comando:
# ip addr add $CLUSTER_ADDRESS/32 scope host dev loUm comando semelhante deve estar nos scripts go* nas configurações de instalação de alta disponibildade.
# iptables -t nat -A PREROUTING -d $CLUSTER_ADDRESS -j REDIRECTEsse comando faz com que os sistemas Linux façam o NAT de destino em cada pacote, convertendo o endereço do cluster no endereço da interface. Esse método possui cerca de 6,4% de penalidade de rendimento de conexões por segundo. Esse método funciona em qualquer distribuição original suportada; nenhum módulo de kernel ou patch+build+install de kernel é necessário.
# modprobe noarp # noarpctl add $CLUSTER_ADDRESS nic-primary-addrem que nic-primary-addr é um endereço na mesma sub-rede que a do endereço do cluster. Em seguida, os clusters podem estar com alias de maneira normal, como:
# ifconfig lo:1 cluster address netmask 255.255.255.255 up